@carto/kepler.gl 0.0.73 → 0.0.75-alpha.deckv9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/action-wrapper.js +20 -48
- package/dist/actions/actions.js +10 -19
- package/dist/actions/identity-actions.js +8 -17
- package/dist/actions/index.js +7 -24
- package/dist/actions/map-state-actions.js +10 -19
- package/dist/actions/map-style-actions.js +20 -35
- package/dist/actions/provider-actions.js +26 -42
- package/dist/actions/ui-state-actions.js +42 -70
- package/dist/actions/vis-state-actions.js +102 -162
- package/dist/cloud-providers/index.js +8 -8
- package/dist/cloud-providers/provider.js +55 -94
- package/dist/components/bottom-widget.js +47 -48
- package/dist/components/common/action-panel.js +39 -38
- package/dist/components/common/animation-control/animation-control.js +40 -38
- package/dist/components/common/animation-control/animation-controller.js +47 -70
- package/dist/components/common/animation-control/animation-speed-slider.js +28 -38
- package/dist/components/common/animation-control/floating-time-display.js +56 -67
- package/dist/components/common/animation-control/playback-controls.js +64 -80
- package/dist/components/common/animation-control/speed-control.js +26 -24
- package/dist/components/common/checkbox.js +31 -52
- package/dist/components/common/color-legend.js +40 -72
- package/dist/components/common/data-table/button.js +29 -22
- package/dist/components/common/data-table/canvas.js +21 -10
- package/dist/components/common/data-table/cell-size.js +54 -58
- package/dist/components/common/data-table/grid.js +30 -31
- package/dist/components/common/data-table/index.js +91 -133
- package/dist/components/common/data-table/option-dropdown.js +29 -33
- package/dist/components/common/dataset-label.js +21 -13
- package/dist/components/common/error-boundary.js +25 -30
- package/dist/components/common/field-selector.js +35 -69
- package/dist/components/common/field-token.js +21 -16
- package/dist/components/common/file-uploader/file-drop.js +40 -55
- package/dist/components/common/file-uploader/file-upload-progress.js +32 -30
- package/dist/components/common/file-uploader/file-upload.js +52 -91
- package/dist/components/common/file-uploader/upload-button.js +31 -42
- package/dist/components/common/histogram-plot.js +32 -27
- package/dist/components/common/icons/add.js +27 -27
- package/dist/components/common/icons/anchor_window.js +3 -9
- package/dist/components/common/icons/arrow-down-alt.js +27 -27
- package/dist/components/common/icons/arrow-down-solid .js +27 -27
- package/dist/components/common/icons/arrow-down.js +27 -27
- package/dist/components/common/icons/arrow-left.js +27 -27
- package/dist/components/common/icons/arrow-right.js +27 -27
- package/dist/components/common/icons/arrow-up-alt.js +27 -27
- package/dist/components/common/icons/arrow-up-solid.js +27 -27
- package/dist/components/common/icons/arrow-up.js +27 -27
- package/dist/components/common/icons/base.js +38 -42
- package/dist/components/common/icons/bug.js +27 -27
- package/dist/components/common/icons/cancel.js +27 -27
- package/dist/components/common/icons/checkmark.js +27 -28
- package/dist/components/common/icons/chevron-right.js +27 -27
- package/dist/components/common/icons/clipboard.js +27 -27
- package/dist/components/common/icons/clock.js +27 -27
- package/dist/components/common/icons/close.js +27 -27
- package/dist/components/common/icons/code-alt.js +27 -28
- package/dist/components/common/icons/copy.js +27 -28
- package/dist/components/common/icons/crosshairs.js +27 -28
- package/dist/components/common/icons/cube-3d.js +27 -27
- package/dist/components/common/icons/cursor-click.js +27 -27
- package/dist/components/common/icons/data-table.js +27 -27
- package/dist/components/common/icons/db.js +27 -27
- package/dist/components/common/icons/delete.js +27 -27
- package/dist/components/common/icons/docs.js +27 -27
- package/dist/components/common/icons/drag-n-drop.js +27 -27
- package/dist/components/common/icons/draw-polygon.js +27 -27
- package/dist/components/common/icons/email.js +27 -27
- package/dist/components/common/icons/expand.js +27 -27
- package/dist/components/common/icons/eye-seen.js +27 -27
- package/dist/components/common/icons/eye-unseen.js +27 -27
- package/dist/components/common/icons/file-type.js +23 -16
- package/dist/components/common/icons/file.js +27 -27
- package/dist/components/common/icons/files.js +24 -26
- package/dist/components/common/icons/filter-funnel.js +27 -27
- package/dist/components/common/icons/free-window.js +3 -9
- package/dist/components/common/icons/gear.js +27 -27
- package/dist/components/common/icons/hash.js +27 -27
- package/dist/components/common/icons/histogram.js +24 -25
- package/dist/components/common/icons/index.js +63 -138
- package/dist/components/common/icons/info.js +27 -28
- package/dist/components/common/icons/layers.js +27 -27
- package/dist/components/common/icons/left-arrow.js +27 -28
- package/dist/components/common/icons/legend.js +27 -27
- package/dist/components/common/icons/line-chart.js +27 -27
- package/dist/components/common/icons/login.js +27 -27
- package/dist/components/common/icons/logout.js +27 -27
- package/dist/components/common/icons/map-icon.js +27 -28
- package/dist/components/common/icons/map.js +27 -28
- package/dist/components/common/icons/messages.js +27 -27
- package/dist/components/common/icons/minus.js +27 -27
- package/dist/components/common/icons/pause.js +27 -27
- package/dist/components/common/icons/picture.js +24 -26
- package/dist/components/common/icons/pin.js +27 -27
- package/dist/components/common/icons/play.js +27 -27
- package/dist/components/common/icons/polygon.js +27 -27
- package/dist/components/common/icons/rectangle.js +27 -27
- package/dist/components/common/icons/reduce.js +27 -27
- package/dist/components/common/icons/reset.js +27 -27
- package/dist/components/common/icons/rocket.js +27 -27
- package/dist/components/common/icons/save.js +27 -27
- package/dist/components/common/icons/save2.js +27 -27
- package/dist/components/common/icons/search.js +27 -27
- package/dist/components/common/icons/settings.js +27 -27
- package/dist/components/common/icons/share.js +27 -27
- package/dist/components/common/icons/split.js +27 -27
- package/dist/components/common/icons/square-select.js +27 -27
- package/dist/components/common/icons/swap-horizontal.js +27 -28
- package/dist/components/common/icons/table.js +27 -27
- package/dist/components/common/icons/trash.js +27 -27
- package/dist/components/common/icons/upload.js +27 -27
- package/dist/components/common/icons/vert-dots.js +27 -27
- package/dist/components/common/icons/vert-three-dots.js +27 -27
- package/dist/components/common/icons/warning.js +27 -28
- package/dist/components/common/image-preview.js +36 -29
- package/dist/components/common/info-helper.js +26 -25
- package/dist/components/common/item-selector/accessor.js +3 -5
- package/dist/components/common/item-selector/chickleted-input.js +41 -43
- package/dist/components/common/item-selector/dropdown-list.js +44 -74
- package/dist/components/common/item-selector/item-selector-submenu.js +29 -38
- package/dist/components/common/item-selector/item-selector.js +36 -84
- package/dist/components/common/item-selector/typeahead.js +37 -83
- package/dist/components/common/line-chart.js +39 -36
- package/dist/components/common/loading-spinner.js +33 -25
- package/dist/components/common/logo.js +24 -22
- package/dist/components/common/map-layer-selector.js +23 -16
- package/dist/components/common/modal.js +36 -61
- package/dist/components/common/portaled.js +56 -97
- package/dist/components/common/progress-bar.js +29 -20
- package/dist/components/common/range-brush.js +63 -104
- package/dist/components/common/range-plot.js +47 -52
- package/dist/components/common/range-slider.js +52 -78
- package/dist/components/common/slider/mouse-event.js +11 -37
- package/dist/components/common/slider/slider-bar-handle.js +31 -39
- package/dist/components/common/slider/slider-handle.js +35 -44
- package/dist/components/common/slider/slider.js +55 -82
- package/dist/components/common/styled-components.js +64 -169
- package/dist/components/common/switch.js +22 -16
- package/dist/components/common/time-range-slider-time-title.js +24 -19
- package/dist/components/common/time-range-slider.js +41 -38
- package/dist/components/common/time-slider-marker.js +36 -41
- package/dist/components/common/toolbar-item.js +22 -16
- package/dist/components/common/toolbar.js +21 -10
- package/dist/components/common/vertical-toolbar.js +21 -10
- package/dist/components/container.js +49 -70
- package/dist/components/context.js +6 -10
- package/dist/components/editor/constants.js +6 -8
- package/dist/components/editor/editor.js +40 -72
- package/dist/components/editor/feature-action-panel.js +35 -43
- package/dist/components/editor/feature-styles.js +35 -40
- package/dist/components/editor/handle-style.js +35 -37
- package/dist/components/filters/components.js +21 -10
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +14 -25
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +14 -21
- package/dist/components/filters/filter-panels/new-filter-panel.js +13 -23
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +13 -25
- package/dist/components/filters/filter-panels/range-filter-panel.js +14 -21
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +14 -21
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +14 -23
- package/dist/components/filters/index.js +11 -17
- package/dist/components/filters/multi-select-filter.js +3 -9
- package/dist/components/filters/polygon-filter.js +8 -18
- package/dist/components/filters/range-filter.js +3 -8
- package/dist/components/filters/single-select-filter.js +3 -9
- package/dist/components/filters/time-range-filter.js +7 -18
- package/dist/components/filters/time-widget.js +41 -51
- package/dist/components/geocoder/geocoder.js +95 -128
- package/dist/components/geocoder-panel.js +37 -62
- package/dist/components/index.js +356 -498
- package/dist/components/injector.js +42 -58
- package/dist/components/kepler-gl.js +65 -158
- package/dist/components/map/coordinate-info.js +4 -13
- package/dist/components/map/layer-hover-info.js +40 -48
- package/dist/components/map/layer-selector-panel.js +17 -30
- package/dist/components/map/locale-panel.js +13 -27
- package/dist/components/map/map-control-panel.js +27 -24
- package/dist/components/map/map-control-toolbar.js +21 -11
- package/dist/components/map/map-control-tooltip.js +4 -11
- package/dist/components/map/map-control.js +26 -27
- package/dist/components/map/map-draw-panel.js +12 -29
- package/dist/components/map/map-legend-panel.js +17 -34
- package/dist/components/map/map-legend.js +52 -70
- package/dist/components/map/map-popover.js +41 -57
- package/dist/components/map/split-map-button.js +13 -25
- package/dist/components/map/toggle-3d-button.js +10 -21
- package/dist/components/map-container.js +98 -145
- package/dist/components/maps-layout.js +24 -26
- package/dist/components/modal-container.js +60 -112
- package/dist/components/modals/add-map-style-modal.js +37 -67
- package/dist/components/modals/cloud-tile.js +36 -36
- package/dist/components/modals/data-table-modal.js +51 -81
- package/dist/components/modals/delete-data-modal.js +24 -20
- package/dist/components/modals/error-display.js +3 -10
- package/dist/components/modals/export-data-modal.js +37 -54
- package/dist/components/modals/export-image-modal.js +31 -28
- package/dist/components/modals/export-map-modal/components.js +27 -27
- package/dist/components/modals/export-map-modal/export-html-map.js +27 -27
- package/dist/components/modals/export-map-modal/export-json-map.js +22 -22
- package/dist/components/modals/export-map-modal/export-map-modal.js +20 -40
- package/dist/components/modals/image-modal-container.js +9 -16
- package/dist/components/modals/load-data-modal.js +29 -33
- package/dist/components/modals/load-storage-map.js +42 -77
- package/dist/components/modals/loading-dialog.js +24 -18
- package/dist/components/modals/modal-dialog.js +3 -7
- package/dist/components/modals/modal-tabs.js +29 -29
- package/dist/components/modals/overwrite-map-modal.js +29 -28
- package/dist/components/modals/provider-modal-container.js +27 -27
- package/dist/components/modals/save-map-modal.js +43 -48
- package/dist/components/modals/share-map-modal.js +42 -53
- package/dist/components/modals/status-panel.js +24 -25
- package/dist/components/modals/storage-map-viewer.js +30 -43
- package/dist/components/notification-panel/notification-item.js +33 -47
- package/dist/components/notification-panel.js +30 -36
- package/dist/components/performance.js +11 -36
- package/dist/components/plot-container.js +42 -72
- package/dist/components/side-panel/cloud-storage-dropdown.js +4 -10
- package/dist/components/side-panel/common/dataset-info.js +20 -13
- package/dist/components/side-panel/common/dataset-tag.js +21 -12
- package/dist/components/side-panel/common/dataset-title.js +37 -52
- package/dist/components/side-panel/common/source-data-catalog.js +26 -22
- package/dist/components/side-panel/common/source-data-selector.js +34 -40
- package/dist/components/side-panel/custom-panel.js +5 -9
- package/dist/components/side-panel/filter-manager.js +18 -29
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +30 -30
- package/dist/components/side-panel/filter-panel/filter-panel.js +36 -55
- package/dist/components/side-panel/interaction-manager.js +5 -12
- package/dist/components/side-panel/interaction-panel/brush-config.js +23 -19
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +36 -59
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +34 -74
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +28 -40
- package/dist/components/side-panel/layer-manager.js +51 -82
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +3 -10
- package/dist/components/side-panel/layer-panel/color-palette.js +27 -23
- package/dist/components/side-panel/layer-panel/color-range-selector.js +52 -98
- package/dist/components/side-panel/layer-panel/color-selector.js +36 -67
- package/dist/components/side-panel/layer-panel/column-selector.js +26 -25
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +2 -6
- package/dist/components/side-panel/layer-panel/custom-palette.js +37 -71
- package/dist/components/side-panel/layer-panel/custom-picker.js +32 -45
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +8 -16
- package/dist/components/side-panel/layer-panel/hex-column-config.js +12 -34
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +2 -10
- package/dist/components/side-panel/layer-panel/layer-column-config.js +31 -27
- package/dist/components/side-panel/layer-panel/layer-config-group.js +46 -80
- package/dist/components/side-panel/layer-panel/layer-configurator.js +162 -250
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +52 -66
- package/dist/components/side-panel/layer-panel/layer-panel.js +33 -54
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +28 -22
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +22 -18
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +29 -32
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +35 -40
- package/dist/components/side-panel/layer-panel/single-color-palette.js +32 -42
- package/dist/components/side-panel/layer-panel/text-label-panel.js +31 -42
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +39 -52
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +10 -19
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +28 -29
- package/dist/components/side-panel/map-manager.js +32 -46
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +28 -31
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +26 -24
- package/dist/components/side-panel/panel-dropdown.js +28 -35
- package/dist/components/side-panel/panel-header-action.js +38 -43
- package/dist/components/side-panel/panel-header.js +54 -92
- package/dist/components/side-panel/panel-tab.js +24 -20
- package/dist/components/side-panel/panel-title.js +21 -10
- package/dist/components/side-panel/panel-toggle.js +26 -23
- package/dist/components/side-panel/side-bar.js +37 -53
- package/dist/components/side-panel.js +56 -65
- package/dist/connect/keplergl-connect.js +5 -14
- package/dist/connect/with-local-selector.js +33 -38
- package/dist/constants/action-types.js +5 -6
- package/dist/constants/color-palette.js +12 -23
- package/dist/constants/color-ranges.js +32 -31
- package/dist/constants/custom-color-ranges.js +9 -14
- package/dist/constants/default-settings.js +154 -239
- package/dist/constants/index.js +95 -103
- package/dist/constants/keyevent.js +3 -7
- package/dist/constants/tooltip.js +7 -10
- package/dist/constants/user-feedbacks.js +5 -6
- package/dist/constants/user-guides.js +12 -20
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +29 -32
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +10 -43
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +54 -75
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +29 -32
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +29 -30
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +29 -30
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +10 -21
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +75 -132
- package/dist/deckgl-layers/layer-utils/shader-utils.js +1 -5
- package/dist/deckgl-layers/line-layer/line-layer.js +27 -34
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +26 -30
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +33 -39
- package/dist/index.js +4 -23
- package/dist/layers/aggregation-layer.js +63 -97
- package/dist/layers/arc-layer/arc-layer-icon.js +27 -27
- package/dist/layers/arc-layer/arc-layer.js +48 -73
- package/dist/layers/base-layer.js +257 -406
- package/dist/layers/cluster-layer/cluster-layer-icon.js +27 -27
- package/dist/layers/cluster-layer/cluster-layer.js +33 -44
- package/dist/layers/default-layer-icon.js +27 -27
- package/dist/layers/geojson-layer/geojson-layer-icon.js +27 -27
- package/dist/layers/geojson-layer/geojson-layer.js +54 -87
- package/dist/layers/geojson-layer/geojson-utils.js +35 -47
- package/dist/layers/grid-layer/grid-layer-icon.js +27 -27
- package/dist/layers/grid-layer/grid-layer.js +30 -41
- package/dist/layers/grid-layer/grid-utils.js +6 -9
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +27 -27
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +48 -80
- package/dist/layers/h3-hexagon-layer/h3-utils.js +10 -21
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +27 -27
- package/dist/layers/heatmap-layer/heatmap-layer.js +45 -72
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +27 -27
- package/dist/layers/hexagon-layer/hexagon-layer.js +30 -42
- package/dist/layers/hexagon-layer/hexagon-utils.js +3 -15
- package/dist/layers/icon-layer/icon-info-modal.js +23 -26
- package/dist/layers/icon-layer/icon-layer-icon.js +27 -27
- package/dist/layers/icon-layer/icon-layer.js +59 -97
- package/dist/layers/index.js +38 -39
- package/dist/layers/layer-factory.js +38 -42
- package/dist/layers/layer-text-label.js +7 -17
- package/dist/layers/layer-update.js +3 -14
- package/dist/layers/line-layer/line-layer-icon.js +27 -27
- package/dist/layers/line-layer/line-layer.js +46 -66
- package/dist/layers/mapbox-utils.js +38 -51
- package/dist/layers/mapboxgl-layer.js +43 -58
- package/dist/layers/point-layer/point-layer-icon.js +27 -27
- package/dist/layers/point-layer/point-layer.js +57 -90
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +41 -73
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +27 -27
- package/dist/layers/s2-geometry-layer/s2-utils.js +5 -11
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +21 -15
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +27 -27
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +52 -75
- package/dist/layers/trip-layer/trip-info-modal.js +21 -16
- package/dist/layers/trip-layer/trip-layer-icon.js +27 -27
- package/dist/layers/trip-layer/trip-layer.js +51 -93
- package/dist/layers/trip-layer/trip-utils.js +16 -39
- package/dist/layers/types.js +3 -6
- package/dist/localization/en.js +22 -11
- package/dist/localization/formatted-message.js +5 -10
- package/dist/localization/index.js +7 -13
- package/dist/localization/locales.js +7 -12
- package/dist/middleware/index.js +2 -5
- package/dist/processors/data-processor.js +113 -177
- package/dist/processors/file-handler.js +200 -276
- package/dist/processors/index.js +33 -35
- package/dist/reducers/combined-updaters.js +35 -46
- package/dist/reducers/composer-helpers.js +28 -27
- package/dist/reducers/composers.js +25 -12
- package/dist/reducers/core.js +13 -46
- package/dist/reducers/index.js +24 -38
- package/dist/reducers/map-state-updaters.js +53 -65
- package/dist/reducers/map-state.js +31 -26
- package/dist/reducers/map-style-updaters.js +92 -136
- package/dist/reducers/map-style.js +31 -26
- package/dist/reducers/provider-state-updaters.js +92 -167
- package/dist/reducers/provider-state.js +32 -25
- package/dist/reducers/root.js +44 -50
- package/dist/reducers/ui-state-updaters.js +102 -202
- package/dist/reducers/ui-state.js +32 -26
- package/dist/reducers/vis-state-merger.js +102 -166
- package/dist/reducers/vis-state-selectors.js +5 -10
- package/dist/reducers/vis-state-updaters.js +386 -663
- package/dist/reducers/vis-state.js +32 -25
- package/dist/schemas/dataset-schema.js +36 -56
- package/dist/schemas/index.js +38 -45
- package/dist/schemas/map-state-schema.js +28 -24
- package/dist/schemas/map-style-schema.js +34 -48
- package/dist/schemas/schema-manager.js +44 -62
- package/dist/schemas/schema-utils.js +11 -15
- package/dist/schemas/schema.js +32 -27
- package/dist/schemas/versions.js +5 -9
- package/dist/schemas/vis-state-schema.js +109 -309
- package/dist/styles/base.js +367 -640
- package/dist/styles/index.js +1 -5
- package/dist/styles/media-breakpoints.js +21 -9
- package/dist/tasks/tasks.js +22 -50
- package/dist/templates/export-map-html.js +3 -6
- package/dist/utils/aggregate-utils.js +23 -27
- package/dist/utils/color-utils.js +36 -38
- package/dist/utils/custom-scales.js +1 -7
- package/dist/utils/data-scale-utils.js +11 -20
- package/dist/utils/data-utils.js +78 -137
- package/dist/utils/dataset-utils.js +71 -88
- package/dist/utils/dom-to-image.js +15 -93
- package/dist/utils/dom-utils.js +34 -116
- package/dist/utils/export-utils.js +65 -102
- package/dist/utils/filter-utils.js +170 -320
- package/dist/utils/gl-utils.js +39 -23
- package/dist/utils/gpu-filter-utils.js +46 -59
- package/dist/utils/index.js +68 -80
- package/dist/utils/interaction-utils.js +26 -50
- package/dist/utils/layer-utils.js +58 -63
- package/dist/utils/locale-utils.js +23 -21
- package/dist/utils/map-info-utils.js +2 -3
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +72 -71
- package/dist/utils/map-style-utils/mapbox-utils.js +3 -5
- package/dist/utils/mapbox-utils.js +2 -5
- package/dist/utils/notifications-utils.js +36 -35
- package/dist/utils/observe-dimensions.js +36 -41
- package/dist/utils/projection-utils.js +9 -20
- package/dist/utils/searcher-utils.js +1 -4
- package/dist/utils/split-map-utils.js +36 -32
- package/dist/utils/table-utils/data-container-utils.js +27 -23
- package/dist/utils/table-utils/data-row.js +2 -13
- package/dist/utils/table-utils/index.js +1 -2
- package/dist/utils/table-utils/indexed-data-container.js +65 -84
- package/dist/utils/table-utils/kepler-table.js +83 -126
- package/dist/utils/table-utils/row-data-container.js +62 -87
- package/dist/utils/utils.js +51 -69
- package/package.json +4 -3
- package/src/components/kepler-gl.d.ts +0 -1
- package/src/components/kepler-gl.js +0 -7
- package/src/components/map-container.js +0 -3
- package/src/components/modal-container.d.ts +0 -1
- package/src/components/modal-container.js +0 -2
- package/src/components/modals/add-map-style-modal.js +0 -3
- package/src/components/side-panel/layer-panel/layer-configurator.js +11 -9
- package/src/layers/base-layer.js +1 -1
- package/src/utils/gl-utils.js +16 -15
- package/CHANGELOG.md +0 -948
|
@@ -1,70 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
9
|
-
|
|
7
|
+
exports.pointVisConfigs = exports.iconRequiredColumns = exports.iconPosAccessor = exports.iconOptionalColumns = exports.iconAccessor = exports["default"] = exports.SVG_ICON_URL = void 0;
|
|
10
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
19
|
-
|
|
20
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
13
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
24
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
15
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
26
16
|
var _window = _interopRequireDefault(require("global/window"));
|
|
27
|
-
|
|
28
17
|
var _extensions = require("@deck.gl/extensions");
|
|
29
|
-
|
|
30
18
|
var _svgIconLayer = _interopRequireDefault(require("../../deckgl-layers/svg-icon-layer/svg-icon-layer"));
|
|
31
|
-
|
|
32
19
|
var _iconLayerIcon = _interopRequireDefault(require("./icon-layer-icon"));
|
|
33
|
-
|
|
34
20
|
var _defaultSettings = require("../../constants/default-settings");
|
|
35
|
-
|
|
36
21
|
var _iconInfoModal = _interopRequireDefault(require("./icon-info-modal"));
|
|
37
|
-
|
|
38
22
|
var _baseLayer = _interopRequireDefault(require("../base-layer"));
|
|
39
|
-
|
|
40
23
|
var _layerTextLabel = require("../layer-text-label");
|
|
41
|
-
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
27
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // Copyright (c) 2022 Uber Technologies, Inc.
|
|
28
|
+
//
|
|
29
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
30
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
31
|
+
// in the Software without restriction, including without limitation the rights
|
|
32
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
33
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
34
|
+
// furnished to do so, subject to the following conditions:
|
|
35
|
+
//
|
|
36
|
+
// The above copyright notice and this permission notice shall be included in
|
|
37
|
+
// all copies or substantial portions of the Software.
|
|
38
|
+
//
|
|
39
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
40
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
41
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
42
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
43
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
44
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
45
|
+
// THE SOFTWARE.
|
|
50
46
|
var brushingExtension = new _extensions.BrushingExtension();
|
|
51
|
-
var SVG_ICON_URL = "".concat(_defaultSettings.CLOUDFRONT, "/icons/svg-icons.json");
|
|
52
|
-
exports.
|
|
53
|
-
|
|
54
|
-
var iconPosAccessor = function iconPosAccessor(_ref) {
|
|
47
|
+
var SVG_ICON_URL = exports.SVG_ICON_URL = "".concat(_defaultSettings.CLOUDFRONT, "/icons/svg-icons.json");
|
|
48
|
+
var iconPosAccessor = exports.iconPosAccessor = function iconPosAccessor(_ref) {
|
|
55
49
|
var lat = _ref.lat,
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
lng = _ref.lng,
|
|
51
|
+
altitude = _ref.altitude;
|
|
58
52
|
return function (dc) {
|
|
59
53
|
return function (d) {
|
|
60
54
|
return [dc.valueAt(d.index, lng.fieldIdx), dc.valueAt(d.index, lat.fieldIdx), (altitude === null || altitude === void 0 ? void 0 : altitude.fieldIdx) > -1 ? dc.valueAt(d.index, altitude.fieldIdx) : 0];
|
|
61
55
|
};
|
|
62
56
|
};
|
|
63
57
|
};
|
|
64
|
-
|
|
65
|
-
exports.iconPosAccessor = iconPosAccessor;
|
|
66
|
-
|
|
67
|
-
var iconAccessor = function iconAccessor(_ref2) {
|
|
58
|
+
var iconAccessor = exports.iconAccessor = function iconAccessor(_ref2) {
|
|
68
59
|
var icon = _ref2.icon;
|
|
69
60
|
return function (dc) {
|
|
70
61
|
return function (d) {
|
|
@@ -72,20 +63,14 @@ var iconAccessor = function iconAccessor(_ref2) {
|
|
|
72
63
|
};
|
|
73
64
|
};
|
|
74
65
|
};
|
|
75
|
-
|
|
76
|
-
exports.
|
|
77
|
-
var
|
|
78
|
-
exports.iconRequiredColumns = iconRequiredColumns;
|
|
79
|
-
var iconOptionalColumns = ['altitude'];
|
|
80
|
-
exports.iconOptionalColumns = iconOptionalColumns;
|
|
81
|
-
var pointVisConfigs = {
|
|
66
|
+
var iconRequiredColumns = exports.iconRequiredColumns = ['lat', 'lng', 'icon'];
|
|
67
|
+
var iconOptionalColumns = exports.iconOptionalColumns = ['altitude'];
|
|
68
|
+
var pointVisConfigs = exports.pointVisConfigs = {
|
|
82
69
|
radius: 'radius',
|
|
83
70
|
opacity: 'opacity',
|
|
84
71
|
colorRange: 'colorRange',
|
|
85
72
|
radiusRange: 'radiusRange'
|
|
86
73
|
};
|
|
87
|
-
exports.pointVisConfigs = pointVisConfigs;
|
|
88
|
-
|
|
89
74
|
function flatterIconPositions(icon) {
|
|
90
75
|
// had to flip y, since @luma modal has changed
|
|
91
76
|
return icon.mesh.cells.reduce(function (prev, cell) {
|
|
@@ -95,38 +80,27 @@ function flatterIconPositions(icon) {
|
|
|
95
80
|
return prev;
|
|
96
81
|
}, []);
|
|
97
82
|
}
|
|
98
|
-
|
|
99
|
-
var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
83
|
+
var IconLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
|
|
100
84
|
(0, _inherits2["default"])(IconLayer, _Layer);
|
|
101
|
-
|
|
102
|
-
var _super = _createSuper(IconLayer);
|
|
103
|
-
|
|
104
85
|
function IconLayer() {
|
|
105
86
|
var _this;
|
|
106
|
-
|
|
107
87
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
108
88
|
(0, _classCallCheck2["default"])(this, IconLayer);
|
|
109
|
-
_this =
|
|
110
|
-
|
|
89
|
+
_this = _callSuper(this, IconLayer, [props]);
|
|
111
90
|
_this.registerVisConfig(pointVisConfigs);
|
|
112
|
-
|
|
113
91
|
_this.getPositionAccessor = function (dataContainer) {
|
|
114
92
|
return iconPosAccessor(_this.config.columns)(dataContainer);
|
|
115
93
|
};
|
|
116
|
-
|
|
117
94
|
_this.getIconAccessor = function (dataContainer) {
|
|
118
95
|
return iconAccessor(_this.config.columns)(dataContainer);
|
|
119
|
-
};
|
|
120
|
-
|
|
96
|
+
};
|
|
121
97
|
|
|
98
|
+
// prepare layer info modal
|
|
122
99
|
_this._layerInfoModal = (0, _iconInfoModal["default"])();
|
|
123
100
|
_this.iconGeometry = props.iconGeometry || null;
|
|
124
|
-
|
|
125
101
|
_this.getSvgIcons();
|
|
126
|
-
|
|
127
102
|
return _this;
|
|
128
103
|
}
|
|
129
|
-
|
|
130
104
|
(0, _createClass2["default"])(IconLayer, [{
|
|
131
105
|
key: "type",
|
|
132
106
|
get: function get() {
|
|
@@ -186,20 +160,18 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
186
160
|
key: "getSvgIcons",
|
|
187
161
|
value: function getSvgIcons() {
|
|
188
162
|
var _this2 = this;
|
|
189
|
-
|
|
190
163
|
var fetchConfig = {
|
|
191
164
|
method: 'GET',
|
|
192
165
|
mode: 'cors',
|
|
193
166
|
cache: 'no-cache'
|
|
194
167
|
};
|
|
195
|
-
|
|
196
168
|
if (_window["default"].fetch) {
|
|
197
169
|
_window["default"].fetch(SVG_ICON_URL, fetchConfig).then(function (response) {
|
|
198
170
|
return response.json();
|
|
199
171
|
}).then(function () {
|
|
200
172
|
var parsed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
201
173
|
var _parsed$svgIcons = parsed.svgIcons,
|
|
202
|
-
|
|
174
|
+
svgIcons = _parsed$svgIcons === void 0 ? [] : _parsed$svgIcons;
|
|
203
175
|
_this2.iconGeometry = svgIcons.reduce(function (accu, curr) {
|
|
204
176
|
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, curr.id, flatterIconPositions(curr)));
|
|
205
177
|
}, {});
|
|
@@ -211,19 +183,19 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
211
183
|
key: "calculateDataAttribute",
|
|
212
184
|
value: function calculateDataAttribute(_ref3, getPosition) {
|
|
213
185
|
var dataContainer = _ref3.dataContainer,
|
|
214
|
-
|
|
186
|
+
filteredIndex = _ref3.filteredIndex;
|
|
215
187
|
var getIcon = this.getIconAccessor(dataContainer);
|
|
216
188
|
var data = [];
|
|
217
|
-
|
|
218
189
|
for (var i = 0; i < filteredIndex.length; i++) {
|
|
219
190
|
var index = filteredIndex[i];
|
|
220
191
|
var rowIndex = {
|
|
221
192
|
index: index
|
|
222
193
|
};
|
|
223
194
|
var pos = getPosition(rowIndex);
|
|
224
|
-
var icon = getIcon(rowIndex);
|
|
225
|
-
// deck.gl can't handle position = null
|
|
195
|
+
var icon = getIcon(rowIndex);
|
|
226
196
|
|
|
197
|
+
// if doesn't have point lat or lng, do not add the point
|
|
198
|
+
// deck.gl can't handle position = null
|
|
227
199
|
if (pos.every(Number.isFinite) && typeof icon === 'string') {
|
|
228
200
|
data.push({
|
|
229
201
|
index: index,
|
|
@@ -231,7 +203,6 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
231
203
|
});
|
|
232
204
|
}
|
|
233
205
|
}
|
|
234
|
-
|
|
235
206
|
return data;
|
|
236
207
|
}
|
|
237
208
|
}, {
|
|
@@ -239,15 +210,14 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
239
210
|
value: function formatLayerData(datasets, oldLayerData) {
|
|
240
211
|
var textLabel = this.config.textLabel;
|
|
241
212
|
var _datasets$this$config = datasets[this.config.dataId],
|
|
242
|
-
|
|
243
|
-
|
|
213
|
+
gpuFilter = _datasets$this$config.gpuFilter,
|
|
214
|
+
dataContainer = _datasets$this$config.dataContainer;
|
|
244
215
|
var getPosition = this.getPositionAccessor(dataContainer);
|
|
245
|
-
|
|
246
216
|
var _this$updateData = this.updateData(datasets, oldLayerData),
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
217
|
+
data = _this$updateData.data,
|
|
218
|
+
triggerChanged = _this$updateData.triggerChanged;
|
|
250
219
|
|
|
220
|
+
// get all distinct characters in the text labels
|
|
251
221
|
var textLabels = (0, _layerTextLabel.formatTextLabelData)({
|
|
252
222
|
textLabel: textLabel,
|
|
253
223
|
triggerChanged: triggerChanged,
|
|
@@ -277,35 +247,32 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
277
247
|
key: "renderLayer",
|
|
278
248
|
value: function renderLayer(opts) {
|
|
279
249
|
var _this$config$columns$,
|
|
280
|
-
|
|
281
|
-
|
|
250
|
+
_this3 = this;
|
|
282
251
|
var data = opts.data,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
252
|
+
gpuFilter = opts.gpuFilter,
|
|
253
|
+
objectHovered = opts.objectHovered,
|
|
254
|
+
interactionConfig = opts.interactionConfig;
|
|
286
255
|
var radiusScale = this.getRadiusScale();
|
|
287
256
|
var layerProps = {
|
|
288
257
|
radiusScale: radiusScale,
|
|
289
258
|
radiusUnits: 'pixels',
|
|
290
259
|
radiusMaxPixels: 500
|
|
291
260
|
};
|
|
292
|
-
|
|
293
261
|
var updateTriggers = _objectSpread({
|
|
294
262
|
getPosition: this.config.columns,
|
|
295
263
|
getFilterValue: gpuFilter.filterValueUpdateTriggers
|
|
296
264
|
}, this.getVisualChannelUpdateTriggers());
|
|
297
|
-
|
|
298
265
|
var defaultLayerProps = this.getDefaultDeckLayerProps(opts);
|
|
299
266
|
var brushingProps = this.getBrushingExtensionProps(interactionConfig);
|
|
300
267
|
var getPixelOffset = (0, _layerTextLabel.getTextOffsetByRadius)(radiusScale, data.getRadius);
|
|
301
|
-
var extensions = [].concat((0, _toConsumableArray2["default"])(defaultLayerProps.extensions), [brushingExtension]);
|
|
268
|
+
var extensions = [].concat((0, _toConsumableArray2["default"])(defaultLayerProps.extensions), [brushingExtension]);
|
|
302
269
|
|
|
270
|
+
// shared Props between layer and label layer
|
|
303
271
|
var sharedProps = _objectSpread({
|
|
304
272
|
getFilterValue: data.getFilterValue,
|
|
305
273
|
extensions: extensions,
|
|
306
274
|
filterRange: defaultLayerProps.filterRange
|
|
307
275
|
}, brushingProps);
|
|
308
|
-
|
|
309
276
|
var labelLayers = (0, _toConsumableArray2["default"])(this.renderTextLabelLayer({
|
|
310
277
|
getPosition: data.getPosition,
|
|
311
278
|
sharedProps: sharedProps,
|
|
@@ -340,17 +307,15 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
340
307
|
key: "findDefaultLayerProps",
|
|
341
308
|
value: function findDefaultLayerProps(_ref4) {
|
|
342
309
|
var _ref4$fieldPairs = _ref4.fieldPairs,
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
310
|
+
fieldPairs = _ref4$fieldPairs === void 0 ? [] : _ref4$fieldPairs,
|
|
311
|
+
_ref4$fields = _ref4.fields,
|
|
312
|
+
fields = _ref4$fields === void 0 ? [] : _ref4$fields;
|
|
346
313
|
var notFound = {
|
|
347
314
|
props: []
|
|
348
315
|
};
|
|
349
|
-
|
|
350
316
|
if (!fieldPairs.length || !fields.length) {
|
|
351
317
|
return notFound;
|
|
352
318
|
}
|
|
353
|
-
|
|
354
319
|
var iconFields = fields.filter(function (_ref5) {
|
|
355
320
|
var name = _ref5.name;
|
|
356
321
|
return name.replace(/[_,.]+/g, ' ').trim().split(' ').some(function (seg) {
|
|
@@ -359,12 +324,11 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
359
324
|
});
|
|
360
325
|
});
|
|
361
326
|
});
|
|
362
|
-
|
|
363
327
|
if (!iconFields.length) {
|
|
364
328
|
return notFound;
|
|
365
|
-
}
|
|
366
|
-
|
|
329
|
+
}
|
|
367
330
|
|
|
331
|
+
// create icon layers for first point pair
|
|
368
332
|
var ptPair = fieldPairs[0];
|
|
369
333
|
var props = iconFields.map(function (iconField) {
|
|
370
334
|
return {
|
|
@@ -387,6 +351,4 @@ var IconLayer = /*#__PURE__*/function (_Layer) {
|
|
|
387
351
|
}]);
|
|
388
352
|
return IconLayer;
|
|
389
353
|
}(_baseLayer["default"]);
|
|
390
|
-
|
|
391
|
-
exports["default"] = IconLayer;
|
|
392
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaWNvbi1sYXllci9pY29uLWxheWVyLmpzIl0sIm5hbWVzIjpbImJydXNoaW5nRXh0ZW5zaW9uIiwiQnJ1c2hpbmdFeHRlbnNpb24iLCJTVkdfSUNPTl9VUkwiLCJDTE9VREZST05UIiwiaWNvblBvc0FjY2Vzc29yIiwibGF0IiwibG5nIiwiYWx0aXR1ZGUiLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsImljb25BY2Nlc3NvciIsImljb24iLCJpY29uUmVxdWlyZWRDb2x1bW5zIiwiaWNvbk9wdGlvbmFsQ29sdW1ucyIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsIm9wYWNpdHkiLCJjb2xvclJhbmdlIiwicmFkaXVzUmFuZ2UiLCJmbGF0dGVySWNvblBvc2l0aW9ucyIsIm1lc2giLCJjZWxscyIsInJlZHVjZSIsInByZXYiLCJjZWxsIiwiZm9yRWFjaCIsInAiLCJwdXNoIiwicG9zaXRpb25zIiwiSWNvbkxheWVyIiwicHJvcHMiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsImdldEljb25BY2Nlc3NvciIsIl9sYXllckluZm9Nb2RhbCIsImljb25HZW9tZXRyeSIsImdldFN2Z0ljb25zIiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJJY29uTGF5ZXJJY29uIiwiY29sb3IiLCJhY2Nlc3NvciIsImRlZmF1bHRWYWx1ZSIsInNpemUiLCJwcm9wZXJ0eSIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsImlkIiwidGVtcGxhdGUiLCJtb2RhbFByb3BzIiwidGl0bGUiLCJmZXRjaENvbmZpZyIsIm1ldGhvZCIsIm1vZGUiLCJjYWNoZSIsIndpbmRvdyIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwianNvbiIsInBhcnNlZCIsInN2Z0ljb25zIiwiYWNjdSIsImN1cnIiLCJnZXRQb3NpdGlvbiIsImZpbHRlcmVkSW5kZXgiLCJnZXRJY29uIiwiZGF0YSIsImkiLCJsZW5ndGgiLCJyb3dJbmRleCIsInBvcyIsImV2ZXJ5IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJkYXRhc2V0cyIsIm9sZExheWVyRGF0YSIsInRleHRMYWJlbCIsImRhdGFJZCIsImdwdUZpbHRlciIsInVwZGF0ZURhdGEiLCJ0cmlnZ2VyQ2hhbmdlZCIsInRleHRMYWJlbHMiLCJhY2Nlc3NvcnMiLCJnZXRBdHRyaWJ1dGVBY2Nlc3NvcnMiLCJnZXRGaWx0ZXJWYWx1ZSIsImZpbHRlclZhbHVlQWNjZXNzb3IiLCJib3VuZHMiLCJnZXRQb2ludHNCb3VuZHMiLCJ1cGRhdGVNZXRhIiwib3B0cyIsIm9iamVjdEhvdmVyZWQiLCJpbnRlcmFjdGlvbkNvbmZpZyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzU2NhbGUiLCJsYXllclByb3BzIiwicmFkaXVzVW5pdHMiLCJyYWRpdXNNYXhQaXhlbHMiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJkZWZhdWx0TGF5ZXJQcm9wcyIsImdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyIsImJydXNoaW5nUHJvcHMiLCJnZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzIiwiZ2V0UGl4ZWxPZmZzZXQiLCJnZXRSYWRpdXMiLCJleHRlbnNpb25zIiwic2hhcmVkUHJvcHMiLCJmaWx0ZXJSYW5nZSIsImxhYmVsTGF5ZXJzIiwicmVuZGVyVGV4dExhYmVsTGF5ZXIiLCJob3ZlcmVkT2JqZWN0IiwiaGFzSG92ZXJlZE9iamVjdCIsInBhcmFtZXRlcnMiLCJkZXB0aFRlc3QiLCJTdmdJY29uTGF5ZXIiLCJnZXRJY29uR2VvbWV0cnkiLCJnZXREZWZhdWx0SG92ZXJMYXllclByb3BzIiwiZ2V0RmlsbENvbG9yIiwiaGlnaGxpZ2h0Q29sb3IiLCJmaWVsZFBhaXJzIiwiZmllbGRzIiwibm90Rm91bmQiLCJpY29uRmllbGRzIiwiZmlsdGVyIiwibmFtZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaXQiLCJzb21lIiwic2VnIiwiSUNPTl9GSUVMRFMiLCJ0IiwiaW5jbHVkZXMiLCJwdFBhaXIiLCJtYXAiLCJpY29uRmllbGQiLCJsYWJlbCIsInBhaXIiLCJ2YWx1ZSIsImlzVmlzaWJsZSIsIkxheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsaUJBQWlCLEdBQUcsSUFBSUMsNkJBQUosRUFBMUI7QUFFTyxJQUFNQyxZQUFZLGFBQU1DLDJCQUFOLDBCQUFsQjs7O0FBRUEsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQjtBQUFBLE1BQUVDLEdBQUYsUUFBRUEsR0FBRjtBQUFBLE1BQU9DLEdBQVAsUUFBT0EsR0FBUDtBQUFBLE1BQVlDLFFBQVosUUFBWUEsUUFBWjtBQUFBLFNBQTBCLFVBQUFDLEVBQUU7QUFBQSxXQUFJLFVBQUFDLENBQUM7QUFBQSxhQUFJLENBQ2xFRCxFQUFFLENBQUNFLE9BQUgsQ0FBV0QsQ0FBQyxDQUFDRSxLQUFiLEVBQW9CTCxHQUFHLENBQUNNLFFBQXhCLENBRGtFLEVBRWxFSixFQUFFLENBQUNFLE9BQUgsQ0FBV0QsQ0FBQyxDQUFDRSxLQUFiLEVBQW9CTixHQUFHLENBQUNPLFFBQXhCLENBRmtFLEVBR2xFLENBQUFMLFFBQVEsU0FBUixJQUFBQSxRQUFRLFdBQVIsWUFBQUEsUUFBUSxDQUFFSyxRQUFWLElBQXFCLENBQUMsQ0FBdEIsR0FBMEJKLEVBQUUsQ0FBQ0UsT0FBSCxDQUFXRCxDQUFDLENBQUNFLEtBQWIsRUFBb0JKLFFBQVEsQ0FBQ0ssUUFBN0IsQ0FBMUIsR0FBbUUsQ0FIRCxDQUFKO0FBQUEsS0FBTDtBQUFBLEdBQTVCO0FBQUEsQ0FBeEI7Ozs7QUFNQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZTtBQUFBLE1BQUVDLElBQUYsU0FB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RUFEa0M7QUFFekMvRixVQUFBQSxPQUFPLEVBQUU7QUFDUGpDLFlBQUFBLEdBQUcsRUFBRXVJLE1BQU0sQ0FBQ0ksSUFBUCxDQUFZM0ksR0FEVjtBQUVQQyxZQUFBQSxHQUFHLEVBQUVzSSxNQUFNLENBQUNJLElBQVAsQ0FBWTFJLEdBRlY7QUFHUFEsWUFBQUEsSUFBSSxFQUFFO0FBQ0ptSSxjQUFBQSxLQUFLLEVBQUVILFNBQVMsQ0FBQ1gsSUFEYjtBQUVKdkgsY0FBQUEsUUFBUSxFQUFFa0ksU0FBUyxDQUFDbEk7QUFGaEI7QUFIQyxXQUZnQztBQVV6Q3NJLFVBQUFBLFNBQVMsRUFBRTtBQVY4QixTQUFMO0FBQUEsT0FBeEIsQ0FBZDtBQWFBLGFBQU87QUFBQ2pILFFBQUFBLEtBQUssRUFBTEE7QUFBRCxPQUFQO0FBQ0Q7OztFQTNIb0NrSCxxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge0JydXNoaW5nRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcblxuaW1wb3J0IFN2Z0ljb25MYXllciBmcm9tICdkZWNrZ2wtbGF5ZXJzL3N2Zy1pY29uLWxheWVyL3N2Zy1pY29uLWxheWVyJztcbmltcG9ydCBJY29uTGF5ZXJJY29uIGZyb20gJy4vaWNvbi1sYXllci1pY29uJztcbmltcG9ydCB7SUNPTl9GSUVMRFMsIENMT1VERlJPTlR9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCBJY29uSW5mb01vZGFsRmFjdG9yeSBmcm9tICcuL2ljb24taW5mby1tb2RhbCc7XG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge2dldFRleHRPZmZzZXRCeVJhZGl1cywgZm9ybWF0VGV4dExhYmVsRGF0YX0gZnJvbSAnLi4vbGF5ZXItdGV4dC1sYWJlbCc7XG5cbmNvbnN0IGJydXNoaW5nRXh0ZW5zaW9uID0gbmV3IEJydXNoaW5nRXh0ZW5zaW9uKCk7XG5cbmV4cG9ydCBjb25zdCBTVkdfSUNPTl9VUkwgPSBgJHtDTE9VREZST05UfS9pY29ucy9zdmctaWNvbnMuanNvbmA7XG5cbmV4cG9ydCBjb25zdCBpY29uUG9zQWNjZXNzb3IgPSAoe2xhdCwgbG5nLCBhbHRpdHVkZX0pID0+IGRjID0+IGQgPT4gW1xuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxuZy5maWVsZElkeCksXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbGF0LmZpZWxkSWR4KSxcbiAgYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTEgPyBkYy52YWx1ZUF0KGQuaW5kZXgsIGFsdGl0dWRlLmZpZWxkSWR4KSA6IDBcbl07XG5cbmV4cG9ydCBjb25zdCBpY29uQWNjZXNzb3IgPSAoe2ljb259KSA9PiBkYyA9PiBkID0+IGRjLnZhbHVlQXQoZC5pbmRleCwgaWNvbi5maWVsZElkeCk7XG5cbmV4cG9ydCBjb25zdCBpY29uUmVxdWlyZWRDb2x1bW5zID0gWydsYXQnLCAnbG5nJywgJ2ljb24nXTtcbmV4cG9ydCBjb25zdCBpY29uT3B0aW9uYWxDb2x1bW5zID0gWydhbHRpdHVkZSddO1xuXG5leHBvcnQgY29uc3QgcG9pbnRWaXNDb25maWdzID0ge1xuICByYWRpdXM6ICdyYWRpdXMnLFxuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJyxcbiAgcmFkaXVzUmFuZ2U6ICdyYWRpdXNSYW5nZSdcbn07XG5cbmZ1bmN0aW9uIGZsYXR0ZXJJY29uUG9zaXRpb25zKGljb24pIHtcbiAgLy8gaGFkIHRvIGZsaXAgeSwgc2luY2UgQGx1bWEgbW9kYWwgaGFzIGNoYW5nZWRcbiAgcmV0dXJuIGljb24ubWVzaC5jZWxscy5yZWR1Y2UoKHByZXYsIGNlbGwpID0+IHtcbiAgICBjZWxsLmZvckVhY2gocCA9PiB7XG4gICAgICBwcmV2LnB1c2goXG4gICAgICAgIC4uLltpY29uLm1lc2gucG9zaXRpb25zW3BdWzBdLCAtaWNvbi5tZXNoLnBvc2l0aW9uc1twXVsxXSwgaWNvbi5tZXNoLnBvc2l0aW9uc1twXVsyXV1cbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIFtdKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBjb25zdHJ1Y3Rvcihwcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhwb2ludFZpc0NvbmZpZ3MpO1xuICAgIHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvciA9IGRhdGFDb250YWluZXIgPT4gaWNvblBvc0FjY2Vzc29yKHRoaXMuY29uZmlnLmNvbHVtbnMpKGRhdGFDb250YWluZXIpO1xuICAgIHRoaXMuZ2V0SWNvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PiBpY29uQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG5cbiAgICAvLyBwcmVwYXJlIGxheWVyIGluZm8gbW9kYWxcbiAgICB0aGlzLl9sYXllckluZm9Nb2RhbCA9IEljb25JbmZvTW9kYWxGYWN0b3J5KCk7XG4gICAgdGhpcy5pY29uR2VvbWV0cnkgPSBwcm9wcy5pY29uR2VvbWV0cnkgfHwgbnVsbDtcbiAgICB0aGlzLmdldFN2Z0ljb25zKCk7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2ljb24nO1xuICB9XG5cbiAgZ2V0IHJlcXVpcmVkTGF5ZXJDb2x1bW5zKCkge1xuICAgIHJldHVybiBpY29uUmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbmFsQ29sdW1ucygpIHtcbiAgICByZXR1cm4gaWNvbk9wdGlvbmFsQ29sdW1ucztcbiAgfVxuXG4gIGdldCBjb2x1bW5QYWlycygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9pbnRDb2x1bW5QYWlycztcbiAgfVxuXG4gIGdldCBsYXllckljb24oKSB7XG4gICAgcmV0dXJuIEljb25MYXllckljb247XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy5jb2xvclxuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgLi4uc3VwZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSxcbiAgICAgICAgcHJvcGVydHk6ICdyYWRpdXMnLFxuICAgICAgICByYW5nZTogJ3JhZGl1c1JhbmdlJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogJ3JhZGl1cycsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0UmFkaXVzJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAxXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGdldCBsYXllckluZm9Nb2RhbCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6ICdpY29uSW5mbycsXG4gICAgICB0ZW1wbGF0ZTogdGhpcy5fbGF5ZXJJbmZvTW9kYWwsXG4gICAgICBtb2RhbFByb3BzOiB7XG4gICAgICAgIHRpdGxlOiAnbW9kYWwuaWNvbkluZm8udGl0bGUnXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGdldFN2Z0ljb25zKCkge1xuICAgIGNvbnN0IGZldGNoQ29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgIGNhY2hlOiAnbm8tY2FjaGUnXG4gICAgfTtcblxuICAgIGlmICh3aW5kb3cuZmV0Y2gpIHtcbiAgICAgIHdpbmRvd1xuICAgICAgICAuZmV0Y2goU1ZHX0lDT05fVVJMLCBmZXRjaENvbmZpZylcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgICAudGhlbigocGFyc2VkID0ge30pID0+IHtcbiAgICAgICAgICBjb25zdCB7c3ZnSWNvbnMgPSBbXX0gPSBwYXJzZWQ7XG4gICAgICAgICAgdGhpcy5pY29uR2VvbWV0cnkgPSBzdmdJY29ucy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwgY3VycikgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgW2N1cnIuaWRdOiBmbGF0dGVySWNvblBvc2l0aW9ucyhjdXJyKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLl9sYXllckluZm9Nb2RhbCA9IEljb25JbmZvTW9kYWxGYWN0b3J5KHN2Z0ljb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7ZmllbGRQYWlycyA9IFtdLCBmaWVsZHMgPSBbXX0pIHtcbiAgICBjb25zdCBub3RGb3VuZCA9IHtwcm9wczogW119O1xuICAgIGlmICghZmllbGRQYWlycy5sZW5ndGggfHwgIWZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBub3RGb3VuZDtcbiAgICB9XG5cbiAgICBjb25zdCBpY29uRmllbGRzID0gZmllbGRzLmZpbHRlcigoe25hbWV9KSA9PlxuICAgICAgbmFtZVxuICAgICAgICAucmVwbGFjZSgvW18sLl0rL2csICcgJylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAuc29tZShzZWcgPT4gSUNPTl9GSUVMRFMuaWNvbi5zb21lKHQgPT4gdC5pbmNsdWRlcyhzZWcpKSlcbiAgICApO1xuXG4gICAgaWYgKCFpY29uRmllbGRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG5vdEZvdW5kO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSBpY29uIGxheWVycyBmb3IgZmlyc3QgcG9pbnQgcGFpclxuICAgIGNvbnN0IHB0UGFpciA9IGZpZWxkUGFpcnNbMF07XG5cbiAgICBjb25zdCBwcm9wcyA9IGljb25GaWVsZHMubWFwKGljb25GaWVsZCA9PiAoe1xuICAgICAgbGFiZWw6IGljb25GaWVsZC5uYW1lLnJlcGxhY2UoL1tfLC5dKy9nLCAnICcpLnRyaW0oKSxcbiAgICAgIGNvbHVtbnM6IHtcbiAgICAgICAgbGF0OiBwdFBhaXIucGFpci5sYXQsXG4gICAgICAgIGxuZzogcHRQYWlyLnBhaXIubG5nLFxuICAgICAgICBpY29uOiB7XG4gICAgICAgICAgdmFsdWU6IGljb25GaWVsZC5uYW1lLFxuICAgICAgICAgIGZpZWxkSWR4OiBpY29uRmllbGQuZmllbGRJZHhcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZVxuICAgIH0pKTtcblxuICAgIHJldHVybiB7cHJvcHN9O1xuICB9XG5cbiAgY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSh7ZGF0YUNvbnRhaW5lciwgZmlsdGVyZWRJbmRleH0sIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZ2V0SWNvbiA9IHRoaXMuZ2V0SWNvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IGRhdGEgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaW5kZXggPSBmaWx0ZXJlZEluZGV4W2ldO1xuICAgICAgY29uc3Qgcm93SW5kZXggPSB7aW5kZXh9O1xuICAgICAgY29uc3QgcG9zID0gZ2V0UG9zaXRpb24ocm93SW5kZXgpO1xuICAgICAgY29uc3QgaWNvbiA9IGdldEljb24ocm93SW5kZXgpO1xuXG4gICAgICAvLyBpZiBkb2Vzbid0IGhhdmUgcG9pbnQgbGF0IG9yIGxuZywgZG8gbm90IGFkZCB0aGUgcG9pbnRcbiAgICAgIC8vIGRlY2suZ2wgY2FuJ3QgaGFuZGxlIHBvc2l0aW9uID0gbnVsbFxuICAgICAgaWYgKHBvcy5ldmVyeShOdW1iZXIuaXNGaW5pdGUpICYmIHR5cGVvZiBpY29uID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIGljb25cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBmb3JtYXRMYXllckRhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSkge1xuICAgIGNvbnN0IHt0ZXh0TGFiZWx9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3Qge2dwdUZpbHRlciwgZGF0YUNvbnRhaW5lcn0gPSBkYXRhc2V0c1t0aGlzLmNvbmZpZy5kYXRhSWRdO1xuXG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG5cbiAgICBjb25zdCB7ZGF0YSwgdHJpZ2dlckNoYW5nZWR9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuXG4gICAgLy8gZ2V0IGFsbCBkaXN0aW5jdCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGxhYmVsc1xuICAgIGNvbnN0IHRleHRMYWJlbHMgPSBmb3JtYXRUZXh0TGFiZWxEYXRhKHtcbiAgICAgIHRleHRMYWJlbCxcbiAgICAgIHRyaWdnZXJDaGFuZ2VkLFxuICAgICAgb2xkTGF5ZXJEYXRhLFxuICAgICAgZGF0YSxcbiAgICAgIGRhdGFDb250YWluZXJcbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICB0ZXh0TGFiZWxzLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyLCBnZXRQb3NpdGlvbikge1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kc30pO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWQsIGludGVyYWN0aW9uQ29uZmlnfSA9IG9wdHM7XG5cbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcbiAgICBjb25zdCBsYXllclByb3BzID0ge3JhZGl1c1NjYWxlLCByYWRpdXNVbml0czogJ3BpeGVscycsIHJhZGl1c01heFBpeGVsczogNTAwfTtcblxuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge1xuICAgICAgZ2V0UG9zaXRpb246IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMsXG4gICAgICAuLi50aGlzLmdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycygpXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgYnJ1c2hpbmdQcm9wcyA9IHRoaXMuZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyhpbnRlcmFjdGlvbkNvbmZpZyk7XG4gICAgY29uc3QgZ2V0UGl4ZWxPZmZzZXQgPSBnZXRUZXh0T2Zmc2V0QnlSYWRpdXMocmFkaXVzU2NhbGUsIGRhdGEuZ2V0UmFkaXVzKTtcbiAgICBjb25zdCBleHRlbnNpb25zID0gWy4uLmRlZmF1bHRMYXllclByb3BzLmV4dGVuc2lvbnMsIGJydXNoaW5nRXh0ZW5zaW9uXTtcblxuICAgIC8vIHNoYXJlZCBQcm9wcyBiZXR3ZWVuIGxheWVyIGFuZCBsYWJlbCBsYXllclxuICAgIGNvbnN0IHNoYXJlZFByb3BzID0ge1xuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGRhdGEuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZmlsdGVyUmFuZ2U6IGRlZmF1bHRMYXllclByb3BzLmZpbHRlclJhbmdlLFxuICAgICAgLi4uYnJ1c2hpbmdQcm9wc1xuICAgIH07XG5cbiAgICBjb25zdCBsYWJlbExheWVycyA9IFtcbiAgICAgIC4uLnRoaXMucmVuZGVyVGV4dExhYmVsTGF5ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICBnZXRQb3NpdGlvbjogZGF0YS5nZXRQb3NpdGlvbixcbiAgICAgICAgICBzaGFyZWRQcm9wcyxcbiAgICAgICAgICBnZXRQaXhlbE9mZnNldCxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2Vyc1xuICAgICAgICB9LFxuICAgICAgICBvcHRzXG4gICAgICApXG4gICAgXTtcbiAgICBjb25zdCBob3ZlcmVkT2JqZWN0ID0gdGhpcy5oYXNIb3ZlcmVkT2JqZWN0KG9iamVjdEhvdmVyZWQpO1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgIC8vIGljb25zIHdpbGwgYmUgZmxhdCBvbiB0aGUgbWFwIHdoZW4gdGhlIGFsdGl0dWRlIGNvbHVtbiBpcyBub3QgdXNlZFxuICAgICAgZGVwdGhUZXN0OiB0aGlzLmNvbmZpZy5jb2x1bW5zLmFsdGl0dWRlPy5maWVsZElkeCA+IC0xXG4gICAgfTtcblxuICAgIHJldHVybiAhdGhpcy5pY29uR2VvbWV0cnlcbiAgICAgID8gW11cbiAgICAgIDogW1xuICAgICAgICAgIG5ldyBTdmdJY29uTGF5ZXIoe1xuICAgICAgICAgICAgLi4uZGVmYXVsdExheWVyUHJvcHMsXG4gICAgICAgICAgICAuLi5icnVzaGluZ1Byb3BzLFxuICAgICAgICAgICAgLi4ubGF5ZXJQcm9wcyxcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzLFxuICAgICAgICAgICAgZ2V0SWNvbkdlb21ldHJ5OiBpZCA9PiB0aGlzLmljb25HZW9tZXRyeVtpZF0sXG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSB0cmlnZ2Vyc1xuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgICAgICBleHRlbnNpb25zXG4gICAgICAgICAgfSksXG5cbiAgICAgICAgICAuLi4oaG92ZXJlZE9iamVjdFxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgbmV3IFN2Z0ljb25MYXllcih7XG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgICAgIC4uLmxheWVyUHJvcHMsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICBnZXRSYWRpdXM6IGRhdGEuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgICAgIGdldEljb25HZW9tZXRyeTogaWQgPT4gdGhpcy5pY29uR2VvbWV0cnlbaWRdXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG5cbiAgICAgICAgICAvLyB0ZXh0IGxhYmVsIGxheWVyXG4gICAgICAgICAgLi4ubGFiZWxMYXllcnNcbiAgICAgICAgXTtcbiAgfVxufVxuIl19
|
|
354
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZXh0ZW5zaW9ucyIsIl9zdmdJY29uTGF5ZXIiLCJfaWNvbkxheWVySWNvbiIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfaWNvbkluZm9Nb2RhbCIsIl9iYXNlTGF5ZXIiLCJfbGF5ZXJUZXh0TGFiZWwiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsImJydXNoaW5nRXh0ZW5zaW9uIiwiQnJ1c2hpbmdFeHRlbnNpb24iLCJTVkdfSUNPTl9VUkwiLCJleHBvcnRzIiwiY29uY2F0IiwiQ0xPVURGUk9OVCIsImljb25Qb3NBY2Nlc3NvciIsIl9yZWYiLCJsYXQiLCJsbmciLCJhbHRpdHVkZSIsImRjIiwiZCIsInZhbHVlQXQiLCJpbmRleCIsImZpZWxkSWR4IiwiaWNvbkFjY2Vzc29yIiwiX3JlZjIiLCJpY29uIiwiaWNvblJlcXVpcmVkQ29sdW1ucyIsImljb25PcHRpb25hbENvbHVtbnMiLCJwb2ludFZpc0NvbmZpZ3MiLCJyYWRpdXMiLCJvcGFjaXR5IiwiY29sb3JSYW5nZSIsInJhZGl1c1JhbmdlIiwiZmxhdHRlckljb25Qb3NpdGlvbnMiLCJtZXNoIiwiY2VsbHMiLCJyZWR1Y2UiLCJwcmV2IiwiY2VsbCIsInAiLCJwb3NpdGlvbnMiLCJJY29uTGF5ZXIiLCJfTGF5ZXIiLCJfaW5oZXJpdHMyIiwiX3RoaXMiLCJwcm9wcyIsInVuZGVmaW5lZCIsIl9jbGFzc0NhbGxDaGVjazIiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsImdldEljb25BY2Nlc3NvciIsIl9sYXllckluZm9Nb2RhbCIsIkljb25JbmZvTW9kYWxGYWN0b3J5IiwiaWNvbkdlb21ldHJ5IiwiZ2V0U3ZnSWNvbnMiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiZ2V0IiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJJY29uTGF5ZXJJY29uIiwiY29sb3IiLCJfZ2V0MiIsImFjY2Vzc29yIiwiZGVmYXVsdFZhbHVlIiwic2l6ZSIsInByb3BlcnR5IiwicmFuZ2UiLCJjaGFubmVsU2NhbGVUeXBlIiwiaWQiLCJ0ZW1wbGF0ZSIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsInZhbHVlIiwiX3RoaXMyIiwiZmV0Y2hDb25maWciLCJtZXRob2QiLCJtb2RlIiwiY2FjaGUiLCJ3aW5kb3ciLCJmZXRjaCIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJwYXJzZWQiLCJfcGFyc2VkJHN2Z0ljb25zIiwic3ZnSWNvbnMiLCJhY2N1IiwiY3VyciIsImNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUiLCJfcmVmMyIsImdldFBvc2l0aW9uIiwiZmlsdGVyZWRJbmRleCIsImdldEljb24iLCJkYXRhIiwiaSIsInJvd0luZGV4IiwicG9zIiwiZXZlcnkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImZvcm1hdExheWVyRGF0YSIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwidGV4dExhYmVsIiwiX2RhdGFzZXRzJHRoaXMkY29uZmlnIiwiZGF0YUlkIiwiZ3B1RmlsdGVyIiwiX3RoaXMkdXBkYXRlRGF0YSIsInVwZGF0ZURhdGEiLCJ0cmlnZ2VyQ2hhbmdlZCIsInRleHRMYWJlbHMiLCJmb3JtYXRUZXh0TGFiZWxEYXRhIiwiYWNjZXNzb3JzIiwiZ2V0QXR0cmlidXRlQWNjZXNzb3JzIiwiZ2V0RmlsdGVyVmFsdWUiLCJmaWx0ZXJWYWx1ZUFjY2Vzc29yIiwidXBkYXRlTGF5ZXJNZXRhIiwiYm91bmRzIiwiZ2V0UG9pbnRzQm91bmRzIiwidXBkYXRlTWV0YSIsInJlbmRlckxheWVyIiwib3B0cyIsIl90aGlzJGNvbmZpZyRjb2x1bW5zJCIsIl90aGlzMyIsIm9iamVjdEhvdmVyZWQiLCJpbnRlcmFjdGlvbkNvbmZpZyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzU2NhbGUiLCJsYXllclByb3BzIiwicmFkaXVzVW5pdHMiLCJyYWRpdXNNYXhQaXhlbHMiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJkZWZhdWx0TGF5ZXJQcm9wcyIsImdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyIsImJydXNoaW5nUHJvcHMiLCJnZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzIiwiZ2V0UGl4ZWxPZmZzZXQiLCJnZXRUZXh0T2Zmc2V0QnlSYWRpdXMiLCJnZXRSYWRpdXMiLCJleHRlbnNpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInNoYXJlZFByb3BzIiwiZmlsdGVyUmFuZ2UiLCJsYWJlbExheWVycyIsInJlbmRlclRleHRMYWJlbExheWVyIiwiaG92ZXJlZE9iamVjdCIsImhhc0hvdmVyZWRPYmplY3QiLCJwYXJhbWV0ZXJzIiwiZGVwdGhUZXN0IiwiU3ZnSWNvbkxheWVyIiwiZ2V0SWNvbkdlb21ldHJ5IiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImdldEZpbGxDb2xvciIsImhpZ2hsaWdodENvbG9yIiwiZmluZERlZmF1bHRMYXllclByb3BzIiwiX3JlZjQiLCJfcmVmNCRmaWVsZFBhaXJzIiwiZmllbGRQYWlycyIsIl9yZWY0JGZpZWxkcyIsImZpZWxkcyIsIm5vdEZvdW5kIiwiaWNvbkZpZWxkcyIsIl9yZWY1IiwibmFtZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaXQiLCJzb21lIiwic2VnIiwiSUNPTl9GSUVMRFMiLCJpbmNsdWRlcyIsInB0UGFpciIsIm1hcCIsImljb25GaWVsZCIsImxhYmVsIiwicGFpciIsImlzVmlzaWJsZSIsIkxheWVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVycy9pY29uLWxheWVyL2ljb24tbGF5ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCB7QnJ1c2hpbmdFeHRlbnNpb259IGZyb20gJ0BkZWNrLmdsL2V4dGVuc2lvbnMnO1xuXG5pbXBvcnQgU3ZnSWNvbkxheWVyIGZyb20gJ2RlY2tnbC1sYXllcnMvc3ZnLWljb24tbGF5ZXIvc3ZnLWljb24tbGF5ZXInO1xuaW1wb3J0IEljb25MYXllckljb24gZnJvbSAnLi9pY29uLWxheWVyLWljb24nO1xuaW1wb3J0IHtJQ09OX0ZJRUxEUywgQ0xPVURGUk9OVH0gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IEljb25JbmZvTW9kYWxGYWN0b3J5IGZyb20gJy4vaWNvbi1pbmZvLW1vZGFsJztcbmltcG9ydCBMYXllciBmcm9tICcuLi9iYXNlLWxheWVyJztcbmltcG9ydCB7Z2V0VGV4dE9mZnNldEJ5UmFkaXVzLCBmb3JtYXRUZXh0TGFiZWxEYXRhfSBmcm9tICcuLi9sYXllci10ZXh0LWxhYmVsJztcblxuY29uc3QgYnJ1c2hpbmdFeHRlbnNpb24gPSBuZXcgQnJ1c2hpbmdFeHRlbnNpb24oKTtcblxuZXhwb3J0IGNvbnN0IFNWR19JQ09OX1VSTCA9IGAke0NMT1VERlJPTlR9L2ljb25zL3N2Zy1pY29ucy5qc29uYDtcblxuZXhwb3J0IGNvbnN0IGljb25Qb3NBY2Nlc3NvciA9ICh7bGF0LCBsbmcsIGFsdGl0dWRlfSkgPT4gZGMgPT4gZCA9PiBbXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbG5nLmZpZWxkSWR4KSxcbiAgZGMudmFsdWVBdChkLmluZGV4LCBsYXQuZmllbGRJZHgpLFxuICBhbHRpdHVkZT8uZmllbGRJZHggPiAtMSA/IGRjLnZhbHVlQXQoZC5pbmRleCwgYWx0aXR1ZGUuZmllbGRJZHgpIDogMFxuXTtcblxuZXhwb3J0IGNvbnN0IGljb25BY2Nlc3NvciA9ICh7aWNvbn0pID0+IGRjID0+IGQgPT4gZGMudmFsdWVBdChkLmluZGV4LCBpY29uLmZpZWxkSWR4KTtcblxuZXhwb3J0IGNvbnN0IGljb25SZXF1aXJlZENvbHVtbnMgPSBbJ2xhdCcsICdsbmcnLCAnaWNvbiddO1xuZXhwb3J0IGNvbnN0IGljb25PcHRpb25hbENvbHVtbnMgPSBbJ2FsdGl0dWRlJ107XG5cbmV4cG9ydCBjb25zdCBwb2ludFZpc0NvbmZpZ3MgPSB7XG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICByYWRpdXNSYW5nZTogJ3JhZGl1c1JhbmdlJ1xufTtcblxuZnVuY3Rpb24gZmxhdHRlckljb25Qb3NpdGlvbnMoaWNvbikge1xuICAvLyBoYWQgdG8gZmxpcCB5LCBzaW5jZSBAbHVtYSBtb2RhbCBoYXMgY2hhbmdlZFxuICByZXR1cm4gaWNvbi5tZXNoLmNlbGxzLnJlZHVjZSgocHJldiwgY2VsbCkgPT4ge1xuICAgIGNlbGwuZm9yRWFjaChwID0+IHtcbiAgICAgIHByZXYucHVzaChcbiAgICAgICAgLi4uW2ljb24ubWVzaC5wb3NpdGlvbnNbcF1bMF0sIC1pY29uLm1lc2gucG9zaXRpb25zW3BdWzFdLCBpY29uLm1lc2gucG9zaXRpb25zW3BdWzJdXVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcHJldjtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29uTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIGNvbnN0cnVjdG9yKHByb3BzID0ge30pIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKHBvaW50VmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PiBpY29uUG9zQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG4gICAgdGhpcy5nZXRJY29uQWNjZXNzb3IgPSBkYXRhQ29udGFpbmVyID0+IGljb25BY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcblxuICAgIC8vIHByZXBhcmUgbGF5ZXIgaW5mbyBtb2RhbFxuICAgIHRoaXMuX2xheWVySW5mb01vZGFsID0gSWNvbkluZm9Nb2RhbEZhY3RvcnkoKTtcbiAgICB0aGlzLmljb25HZW9tZXRyeSA9IHByb3BzLmljb25HZW9tZXRyeSB8fCBudWxsO1xuICAgIHRoaXMuZ2V0U3ZnSWNvbnMoKTtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAnaWNvbic7XG4gIH1cblxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGljb25SZXF1aXJlZENvbHVtbnM7XG4gIH1cblxuICBnZXQgb3B0aW9uYWxDb2x1bW5zKCkge1xuICAgIHJldHVybiBpY29uT3B0aW9uYWxDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGNvbHVtblBhaXJzKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb2ludENvbHVtblBhaXJzO1xuICB9XG5cbiAgZ2V0IGxheWVySWNvbigpIHtcbiAgICByZXR1cm4gSWNvbkxheWVySWNvbjtcbiAgfVxuXG4gIGdldCB2aXN1YWxDaGFubmVscygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHtcbiAgICAgICAgLi4uc3VwZXIudmlzdWFsQ2hhbm5lbHMuY29sb3IsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0RmlsbENvbG9yJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLmNvbG9yXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICAuLi5zdXBlci52aXN1YWxDaGFubmVscy5zaXplLFxuICAgICAgICBwcm9wZXJ0eTogJ3JhZGl1cycsXG4gICAgICAgIHJhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiAncmFkaXVzJyxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRSYWRpdXMnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IDFcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZ2V0IGxheWVySW5mb01vZGFsKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ2ljb25JbmZvJyxcbiAgICAgIHRlbXBsYXRlOiB0aGlzLl9sYXllckluZm9Nb2RhbCxcbiAgICAgIG1vZGFsUHJvcHM6IHtcbiAgICAgICAgdGl0bGU6ICdtb2RhbC5pY29uSW5mby50aXRsZSdcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZ2V0U3ZnSWNvbnMoKSB7XG4gICAgY29uc3QgZmV0Y2hDb25maWcgPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgbW9kZTogJ2NvcnMnLFxuICAgICAgY2FjaGU6ICduby1jYWNoZSdcbiAgICB9O1xuXG4gICAgaWYgKHdpbmRvdy5mZXRjaCkge1xuICAgICAgd2luZG93XG4gICAgICAgIC5mZXRjaChTVkdfSUNPTl9VUkwsIGZldGNoQ29uZmlnKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgIC50aGVuKChwYXJzZWQgPSB7fSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtzdmdJY29ucyA9IFtdfSA9IHBhcnNlZDtcbiAgICAgICAgICB0aGlzLmljb25HZW9tZXRyeSA9IHN2Z0ljb25zLnJlZHVjZShcbiAgICAgICAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgICBbY3Vyci5pZF06IGZsYXR0ZXJJY29uUG9zaXRpb25zKGN1cnIpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuX2xheWVySW5mb01vZGFsID0gSWNvbkluZm9Nb2RhbEZhY3Rvcnkoc3ZnSWNvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmluZERlZmF1bHRMYXllclByb3BzKHtmaWVsZFBhaXJzID0gW10sIGZpZWxkcyA9IFtdfSkge1xuICAgIGNvbnN0IG5vdEZvdW5kID0ge3Byb3BzOiBbXX07XG4gICAgaWYgKCFmaWVsZFBhaXJzLmxlbmd0aCB8fCAhZmllbGRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG5vdEZvdW5kO1xuICAgIH1cblxuICAgIGNvbnN0IGljb25GaWVsZHMgPSBmaWVsZHMuZmlsdGVyKCh7bmFtZX0pID0+XG4gICAgICBuYW1lXG4gICAgICAgIC5yZXBsYWNlKC9bXywuXSsvZywgJyAnKVxuICAgICAgICAudHJpbSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5zb21lKHNlZyA9PiBJQ09OX0ZJRUxEUy5pY29uLnNvbWUodCA9PiB0LmluY2x1ZGVzKHNlZykpKVxuICAgICk7XG5cbiAgICBpZiAoIWljb25GaWVsZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbm90Rm91bmQ7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIGljb24gbGF5ZXJzIGZvciBmaXJzdCBwb2ludCBwYWlyXG4gICAgY29uc3QgcHRQYWlyID0gZmllbGRQYWlyc1swXTtcblxuICAgIGNvbnN0IHByb3BzID0gaWNvbkZpZWxkcy5tYXAoaWNvbkZpZWxkID0+ICh7XG4gICAgICBsYWJlbDogaWNvbkZpZWxkLm5hbWUucmVwbGFjZSgvW18sLl0rL2csICcgJykudHJpbSgpLFxuICAgICAgY29sdW1uczoge1xuICAgICAgICBsYXQ6IHB0UGFpci5wYWlyLmxhdCxcbiAgICAgICAgbG5nOiBwdFBhaXIucGFpci5sbmcsXG4gICAgICAgIGljb246IHtcbiAgICAgICAgICB2YWx1ZTogaWNvbkZpZWxkLm5hbWUsXG4gICAgICAgICAgZmllbGRJZHg6IGljb25GaWVsZC5maWVsZElkeFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaXNWaXNpYmxlOiB0cnVlXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtwcm9wc307XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtkYXRhQ29udGFpbmVyLCBmaWx0ZXJlZEluZGV4fSwgZ2V0UG9zaXRpb24pIHtcbiAgICBjb25zdCBnZXRJY29uID0gdGhpcy5nZXRJY29uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3QgZGF0YSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCByb3dJbmRleCA9IHtpbmRleH07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbihyb3dJbmRleCk7XG4gICAgICBjb25zdCBpY29uID0gZ2V0SWNvbihyb3dJbmRleCk7XG5cbiAgICAgIC8vIGlmIGRvZXNuJ3QgaGF2ZSBwb2ludCBsYXQgb3IgbG5nLCBkbyBub3QgYWRkIHRoZSBwb2ludFxuICAgICAgLy8gZGVjay5nbCBjYW4ndCBoYW5kbGUgcG9zaXRpb24gPSBudWxsXG4gICAgICBpZiAocG9zLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkgJiYgdHlwZW9mIGljb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgaWNvblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGZvcm1hdExheWVyRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKSB7XG4gICAgY29uc3Qge3RleHRMYWJlbH0gPSB0aGlzLmNvbmZpZztcbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBkYXRhQ29udGFpbmVyfSA9IGRhdGFzZXRzW3RoaXMuY29uZmlnLmRhdGFJZF07XG5cbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcblxuICAgIGNvbnN0IHtkYXRhLCB0cmlnZ2VyQ2hhbmdlZH0gPSB0aGlzLnVwZGF0ZURhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG5cbiAgICAvLyBnZXQgYWxsIGRpc3RpbmN0IGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgbGFiZWxzXG4gICAgY29uc3QgdGV4dExhYmVscyA9IGZvcm1hdFRleHRMYWJlbERhdGEoe1xuICAgICAgdGV4dExhYmVsLFxuICAgICAgdHJpZ2dlckNoYW5nZWQsXG4gICAgICBvbGRMYXllckRhdGEsXG4gICAgICBkYXRhLFxuICAgICAgZGF0YUNvbnRhaW5lclxuICAgIH0pO1xuXG4gICAgY29uc3QgYWNjZXNzb3JzID0gdGhpcy5nZXRBdHRyaWJ1dGVBY2Nlc3NvcnMoe2RhdGFDb250YWluZXJ9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZ2V0UG9zaXRpb24sXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlQWNjZXNzb3IoZGF0YUNvbnRhaW5lcikoKSxcbiAgICAgIHRleHRMYWJlbHMsXG4gICAgICAuLi5hY2Nlc3NvcnNcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlTGF5ZXJNZXRhKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgYm91bmRzID0gdGhpcy5nZXRQb2ludHNCb3VuZHMoZGF0YUNvbnRhaW5lciwgZ2V0UG9zaXRpb24pO1xuICAgIHRoaXMudXBkYXRlTWV0YSh7Ym91bmRzfSk7XG4gIH1cblxuICByZW5kZXJMYXllcihvcHRzKSB7XG4gICAgY29uc3Qge2RhdGEsIGdwdUZpbHRlciwgb2JqZWN0SG92ZXJlZCwgaW50ZXJhY3Rpb25Db25maWd9ID0gb3B0cztcblxuICAgIGNvbnN0IHJhZGl1c1NjYWxlID0gdGhpcy5nZXRSYWRpdXNTY2FsZSgpO1xuICAgIGNvbnN0IGxheWVyUHJvcHMgPSB7cmFkaXVzU2NhbGUsIHJhZGl1c1VuaXRzOiAncGl4ZWxzJywgcmFkaXVzTWF4UGl4ZWxzOiA1MDB9O1xuXG4gICAgY29uc3QgdXBkYXRlVHJpZ2dlcnMgPSB7XG4gICAgICBnZXRQb3NpdGlvbjogdGhpcy5jb25maWcuY29sdW1ucyxcbiAgICAgIGdldEZpbHRlclZhbHVlOiBncHVGaWx0ZXIuZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2VycyxcbiAgICAgIC4uLnRoaXMuZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzKClcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdExheWVyUHJvcHMgPSB0aGlzLmdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyhvcHRzKTtcbiAgICBjb25zdCBicnVzaGluZ1Byb3BzID0gdGhpcy5nZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzKGludGVyYWN0aW9uQ29uZmlnKTtcbiAgICBjb25zdCBnZXRQaXhlbE9mZnNldCA9IGdldFRleHRPZmZzZXRCeVJhZGl1cyhyYWRpdXNTY2FsZSwgZGF0YS5nZXRSYWRpdXMpO1xuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBbLi4uZGVmYXVsdExheWVyUHJvcHMuZXh0ZW5zaW9ucywgYnJ1c2hpbmdFeHRlbnNpb25dO1xuXG4gICAgLy8gc2hhcmVkIFByb3BzIGJldHdlZW4gbGF5ZXIgYW5kIGxhYmVsIGxheWVyXG4gICAgY29uc3Qgc2hhcmVkUHJvcHMgPSB7XG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgIGV4dGVuc2lvbnMsXG4gICAgICBmaWx0ZXJSYW5nZTogZGVmYXVsdExheWVyUHJvcHMuZmlsdGVyUmFuZ2UsXG4gICAgICAuLi5icnVzaGluZ1Byb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IGxhYmVsTGF5ZXJzID0gW1xuICAgICAgLi4udGhpcy5yZW5kZXJUZXh0TGFiZWxMYXllcihcbiAgICAgICAge1xuICAgICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICAgIHNoYXJlZFByb3BzLFxuICAgICAgICAgIGdldFBpeGVsT2Zmc2V0LFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgICAgIH0sXG4gICAgICAgIG9wdHNcbiAgICAgIClcbiAgICBdO1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xuICAgICAgLy8gaWNvbnMgd2lsbCBiZSBmbGF0IG9uIHRoZSBtYXAgd2hlbiB0aGUgYWx0aXR1ZGUgY29sdW1uIGlzIG5vdCB1c2VkXG4gICAgICBkZXB0aFRlc3Q6IHRoaXMuY29uZmlnLmNvbHVtbnMuYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTFcbiAgICB9O1xuXG4gICAgcmV0dXJuICF0aGlzLmljb25HZW9tZXRyeVxuICAgICAgPyBbXVxuICAgICAgOiBbXG4gICAgICAgICAgbmV3IFN2Z0ljb25MYXllcih7XG4gICAgICAgICAgICAuLi5kZWZhdWx0TGF5ZXJQcm9wcyxcbiAgICAgICAgICAgIC4uLmJydXNoaW5nUHJvcHMsXG4gICAgICAgICAgICAuLi5sYXllclByb3BzLFxuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgICAgICBnZXRJY29uR2VvbWV0cnk6IGlkID0+IHRoaXMuaWNvbkdlb21ldHJ5W2lkXSxcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHRyaWdnZXJzXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgICAgICAgIGV4dGVuc2lvbnNcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIC4uLihob3ZlcmVkT2JqZWN0XG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICBuZXcgU3ZnSWNvbkxheWVyKHtcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcygpLFxuICAgICAgICAgICAgICAgICAgLi4ubGF5ZXJQcm9wcyxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICBnZXRQb3NpdGlvbjogZGF0YS5nZXRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgICAgICBnZXRGaWxsQ29sb3I6IHRoaXMuY29uZmlnLmhpZ2hsaWdodENvbG9yLFxuICAgICAgICAgICAgICAgICAgZ2V0SWNvbkdlb21ldHJ5OiBpZCA9PiB0aGlzLmljb25HZW9tZXRyeVtpZF1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcblxuICAgICAgICAgIC8vIHRleHQgbGFiZWwgbGF5ZXJcbiAgICAgICAgICAuLi5sYWJlbExheWVyc1xuICAgICAgICBdO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7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
|
package/dist/layers/index.js
CHANGED
|
@@ -1,82 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
8
|
+
exports.KeplerGlLayers = void 0;
|
|
9
|
+
Object.defineProperty(exports, "LAYER_ID_LENGTH", {
|
|
11
10
|
enumerable: true,
|
|
12
11
|
get: function get() {
|
|
13
|
-
return _baseLayer
|
|
12
|
+
return _baseLayer.LAYER_ID_LENGTH;
|
|
14
13
|
}
|
|
15
14
|
});
|
|
16
|
-
Object.defineProperty(exports, "
|
|
15
|
+
Object.defineProperty(exports, "LAYER_VIS_CONFIGS", {
|
|
17
16
|
enumerable: true,
|
|
18
17
|
get: function get() {
|
|
19
|
-
return
|
|
18
|
+
return _layerFactory.LAYER_VIS_CONFIGS;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
22
|
-
Object.defineProperty(exports, "
|
|
21
|
+
Object.defineProperty(exports, "Layer", {
|
|
23
22
|
enumerable: true,
|
|
24
23
|
get: function get() {
|
|
25
|
-
return _baseLayer
|
|
24
|
+
return _baseLayer["default"];
|
|
26
25
|
}
|
|
27
26
|
});
|
|
28
|
-
|
|
27
|
+
exports.LayerClasses = void 0;
|
|
28
|
+
Object.defineProperty(exports, "OVERLAY_TYPE", {
|
|
29
29
|
enumerable: true,
|
|
30
30
|
get: function get() {
|
|
31
|
-
return _baseLayer.
|
|
31
|
+
return _baseLayer.OVERLAY_TYPE;
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
|
-
Object.defineProperty(exports, "
|
|
34
|
+
Object.defineProperty(exports, "colorMaker", {
|
|
35
35
|
enumerable: true,
|
|
36
36
|
get: function get() {
|
|
37
|
-
return
|
|
37
|
+
return _baseLayer.colorMaker;
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
-
exports.LayerClasses = exports.KeplerGlLayers = void 0;
|
|
41
|
-
|
|
42
40
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
43
|
-
|
|
44
41
|
var _pointLayer = _interopRequireDefault(require("./point-layer/point-layer"));
|
|
45
|
-
|
|
46
42
|
var _arcLayer = _interopRequireDefault(require("./arc-layer/arc-layer"));
|
|
47
|
-
|
|
48
43
|
var _lineLayer = _interopRequireDefault(require("./line-layer/line-layer"));
|
|
49
|
-
|
|
50
44
|
var _gridLayer = _interopRequireDefault(require("./grid-layer/grid-layer"));
|
|
51
|
-
|
|
52
45
|
var _hexagonLayer = _interopRequireDefault(require("./hexagon-layer/hexagon-layer"));
|
|
53
|
-
|
|
54
46
|
var _geojsonLayer = _interopRequireDefault(require("./geojson-layer/geojson-layer"));
|
|
55
|
-
|
|
56
47
|
var _clusterLayer = _interopRequireDefault(require("./cluster-layer/cluster-layer"));
|
|
57
|
-
|
|
58
48
|
var _iconLayer = _interopRequireDefault(require("./icon-layer/icon-layer"));
|
|
59
|
-
|
|
60
49
|
var _heatmapLayer = _interopRequireDefault(require("./heatmap-layer/heatmap-layer"));
|
|
61
|
-
|
|
62
50
|
var _h3HexagonLayer = _interopRequireDefault(require("./h3-hexagon-layer/h3-hexagon-layer"));
|
|
63
|
-
|
|
64
51
|
var _scenegraphLayer = _interopRequireDefault(require("./scenegraph-layer/scenegraph-layer"));
|
|
65
|
-
|
|
66
52
|
var _tripLayer = _interopRequireDefault(require("./trip-layer/trip-layer"));
|
|
67
|
-
|
|
68
53
|
var _s2GeometryLayer = _interopRequireDefault(require("./s2-geometry-layer/s2-geometry-layer"));
|
|
69
|
-
|
|
70
54
|
var _types = require("./types");
|
|
71
|
-
|
|
72
55
|
var _baseLayer = _interopRequireWildcard(require("./base-layer"));
|
|
73
|
-
|
|
74
56
|
var _layerFactory = require("./layer-factory");
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
57
|
+
var _LayerClasses; // Copyright (c) 2022 Uber Technologies, Inc.
|
|
58
|
+
//
|
|
59
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
60
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
61
|
+
// in the Software without restriction, including without limitation the rights
|
|
62
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
63
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
64
|
+
// furnished to do so, subject to the following conditions:
|
|
65
|
+
//
|
|
66
|
+
// The above copyright notice and this permission notice shall be included in
|
|
67
|
+
// all copies or substantial portions of the Software.
|
|
68
|
+
//
|
|
69
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
70
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
71
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
72
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
73
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
74
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
75
|
+
// THE SOFTWARE.
|
|
76
|
+
// base layer
|
|
77
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
78
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
78
79
|
// individual layers
|
|
79
|
-
var KeplerGlLayers = {
|
|
80
|
+
var KeplerGlLayers = exports.KeplerGlLayers = {
|
|
80
81
|
PointLayer: _pointLayer["default"],
|
|
81
82
|
ArcLayer: _arcLayer["default"],
|
|
82
83
|
LineLayer: _lineLayer["default"],
|
|
@@ -91,7 +92,5 @@ var KeplerGlLayers = {
|
|
|
91
92
|
TripLayer: _tripLayer["default"],
|
|
92
93
|
S2GeometryLayer: _s2GeometryLayer["default"]
|
|
93
94
|
};
|
|
94
|
-
exports.
|
|
95
|
-
|
|
96
|
-
exports.LayerClasses = LayerClasses;
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvaW5kZXguanMiXSwibmFtZXMiOlsiS2VwbGVyR2xMYXllcnMiLCJQb2ludExheWVyIiwiQXJjTGF5ZXIiLCJMaW5lTGF5ZXIiLCJHcmlkTGF5ZXIiLCJIZXhhZ29uTGF5ZXIiLCJHZW9qc29uTGF5ZXIiLCJDbHVzdGVyTGF5ZXIiLCJJY29uTGF5ZXIiLCJIZWF0bWFwTGF5ZXIiLCJIM0xheWVyIiwiU2NlbmVncmFwaExheWVyIiwiVHJpcExheWVyIiwiUzJHZW9tZXRyeUxheWVyIiwiTGF5ZXJDbGFzc2VzIiwiTEFZRVJfVFlQRVMiLCJwb2ludCIsImFyYyIsImxpbmUiLCJncmlkIiwiaGV4YWdvbiIsImdlb2pzb24iLCJjbHVzdGVyIiwiaWNvbiIsImhlYXRtYXAiLCJoZXhhZ29uSWQiLCJ0cmlwIiwiczIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBbUNBOzs7O0FBakNBO0FBQ08sSUFBTUEsY0FBYyxHQUFHO0FBQzVCQyxFQUFBQSxVQUFVLEVBQVZBLHNCQUQ0QjtBQUU1QkMsRUFBQUEsUUFBUSxFQUFSQSxvQkFGNEI7QUFHNUJDLEVBQUFBLFNBQVMsRUFBVEEscUJBSDRCO0FBSTVCQyxFQUFBQSxTQUFTLEVBQVRBLHFCQUo0QjtBQUs1QkMsRUFBQUEsWUFBWSxFQUFaQSx3QkFMNEI7QUFNNUJDLEVBQUFBLFlBQVksRUFBWkEsd0JBTjRCO0FBTzVCQyxFQUFBQSxZQUFZLEVBQVpBLHdCQVA0QjtBQVE1QkMsRUFBQUEsU0FBUyxFQUFUQSxxQkFSNEI7QUFTNUJDLEVBQUFBLFlBQVksRUFBWkEsd0JBVDRCO0FBVTVCQyxFQUFBQSxPQUFPLEVBQVBBLDBCQVY0QjtBQVc1QkMsRUFBQUEsZUFBZSxFQUFmQSwyQkFYNEI7QUFZNUJDLEVBQUFBLFNBQVMsRUFBVEEscUJBWjRCO0FBYTVCQyxFQUFBQSxlQUFlLEVBQWZBO0FBYjRCLENBQXZCOztBQWdCQSxJQUFNQyxZQUFZLHdFQUN0QkMsbUJBQVlDLEtBRFUsRUFDRmYsc0JBREUsbURBRXRCYyxtQkFBWUUsR0FGVSxFQUVKZixvQkFGSSxtREFHdEJhLG1CQUFZRyxJQUhVLEVBR0hmLHFCQUhHLG1EQUl0QlksbUJBQVlJLElBSlUsRUFJSGYscUJBSkcsbURBS3RCVyxtQkFBWUssT0FMVSxFQUtBZix3QkFMQSxtREFNdEJVLG1CQUFZTSxPQU5VLEVBTUFmLHdCQU5BLG1EQU90QlMsbUJBQVlPLE9BUFUsRUFPQWYsd0JBUEEsbURBUXRCUSxtQkFBWVEsSUFSVSxFQVFIZixxQkFSRyxtREFTdEJPLG1CQUFZUyxPQVRVLEVBU0FmLHdCQVRBLG1EQVV0Qk0sbUJBQVlVLFNBVlUsRUFVRWYsMEJBVkYsbURBV3RCSyxtQkFBWSxJQUFaLENBWHNCLEVBV0ZKLDJCQVhFLG1EQVl0QkksbUJBQVlXLElBWlUsRUFZSGQscUJBWkcsbURBYXRCRyxtQkFBWVksRUFiVSxFQWFMZCwyQkFiSyxpQkFBbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2RlZmF1bHQgYXMgUG9pbnRMYXllcn0gZnJvbSAnLi9wb2ludC1sYXllci9wb2ludC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgQXJjTGF5ZXJ9IGZyb20gJy4vYXJjLWxheWVyL2FyYy1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgTGluZUxheWVyfSBmcm9tICcuL2xpbmUtbGF5ZXIvbGluZS1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgR3JpZExheWVyfSBmcm9tICcuL2dyaWQtbGF5ZXIvZ3JpZC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSGV4YWdvbkxheWVyfSBmcm9tICcuL2hleGFnb24tbGF5ZXIvaGV4YWdvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgR2VvanNvbkxheWVyfSBmcm9tICcuL2dlb2pzb24tbGF5ZXIvZ2VvanNvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgQ2x1c3RlckxheWVyfSBmcm9tICcuL2NsdXN0ZXItbGF5ZXIvY2x1c3Rlci1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSWNvbkxheWVyfSBmcm9tICcuL2ljb24tbGF5ZXIvaWNvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSGVhdG1hcExheWVyfSBmcm9tICcuL2hlYXRtYXAtbGF5ZXIvaGVhdG1hcC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSDNMYXllcn0gZnJvbSAnLi9oMy1oZXhhZ29uLWxheWVyL2gzLWhleGFnb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFNjZW5lZ3JhcGhMYXllcn0gZnJvbSAnLi9zY2VuZWdyYXBoLWxheWVyL3NjZW5lZ3JhcGgtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFRyaXBMYXllcn0gZnJvbSAnLi90cmlwLWxheWVyL3RyaXAtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFMyR2VvbWV0cnlMYXllcn0gZnJvbSAnLi9zMi1nZW9tZXRyeS1sYXllci9zMi1nZW9tZXRyeS1sYXllcic7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICcuL3R5cGVzJztcblxuLy8gYmFzZSBsYXllclxuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyLCBPVkVSTEFZX1RZUEUsIExBWUVSX0lEX0xFTkdUSCwgY29sb3JNYWtlcn0gZnJvbSAnLi9iYXNlLWxheWVyJztcblxuLy8gaW5kaXZpZHVhbCBsYXllcnNcbmV4cG9ydCBjb25zdCBLZXBsZXJHbExheWVycyA9IHtcbiAgUG9pbnRMYXllcixcbiAgQXJjTGF5ZXIsXG4gIExpbmVMYXllcixcbiAgR3JpZExheWVyLFxuICBIZXhhZ29uTGF5ZXIsXG4gIEdlb2pzb25MYXllcixcbiAgQ2x1c3RlckxheWVyLFxuICBJY29uTGF5ZXIsXG4gIEhlYXRtYXBMYXllcixcbiAgSDNMYXllcixcbiAgU2NlbmVncmFwaExheWVyLFxuICBUcmlwTGF5ZXIsXG4gIFMyR2VvbWV0cnlMYXllclxufTtcblxuZXhwb3J0IGNvbnN0IExheWVyQ2xhc3NlcyA9IHtcbiAgW0xBWUVSX1RZUEVTLnBvaW50XTogUG9pbnRMYXllcixcbiAgW0xBWUVSX1RZUEVTLmFyY106IEFyY0xheWVyLFxuICBbTEFZRVJfVFlQRVMubGluZV06IExpbmVMYXllcixcbiAgW0xBWUVSX1RZUEVTLmdyaWRdOiBHcmlkTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5oZXhhZ29uXTogSGV4YWdvbkxheWVyLFxuICBbTEFZRVJfVFlQRVMuZ2VvanNvbl06IEdlb2pzb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmNsdXN0ZXJdOiBDbHVzdGVyTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5pY29uXTogSWNvbkxheWVyLFxuICBbTEFZRVJfVFlQRVMuaGVhdG1hcF06IEhlYXRtYXBMYXllcixcbiAgW0xBWUVSX1RZUEVTLmhleGFnb25JZF06IEgzTGF5ZXIsXG4gIFtMQVlFUl9UWVBFU1snM0QnXV06IFNjZW5lZ3JhcGhMYXllcixcbiAgW0xBWUVSX1RZUEVTLnRyaXBdOiBUcmlwTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5zMl06IFMyR2VvbWV0cnlMYXllclxufTtcblxuZXhwb3J0IHtMQVlFUl9WSVNfQ09ORklHU30gZnJvbSAnLi9sYXllci1mYWN0b3J5JztcbiJdfQ==
|
|
95
|
+
var LayerClasses = exports.LayerClasses = (_LayerClasses = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _types.LAYER_TYPES.point, _pointLayer["default"]), _types.LAYER_TYPES.arc, _arcLayer["default"]), _types.LAYER_TYPES.line, _lineLayer["default"]), _types.LAYER_TYPES.grid, _gridLayer["default"]), _types.LAYER_TYPES.hexagon, _hexagonLayer["default"]), _types.LAYER_TYPES.geojson, _geojsonLayer["default"]), _types.LAYER_TYPES.cluster, _clusterLayer["default"]), _types.LAYER_TYPES.icon, _iconLayer["default"]), _types.LAYER_TYPES.heatmap, _heatmapLayer["default"]), _types.LAYER_TYPES.hexagonId, _h3HexagonLayer["default"]), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _types.LAYER_TYPES['3D'], _scenegraphLayer["default"]), _types.LAYER_TYPES.trip, _tripLayer["default"]), _types.LAYER_TYPES.s2, _s2GeometryLayer["default"]));
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcG9pbnRMYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FyY0xheWVyIiwiX2xpbmVMYXllciIsIl9ncmlkTGF5ZXIiLCJfaGV4YWdvbkxheWVyIiwiX2dlb2pzb25MYXllciIsIl9jbHVzdGVyTGF5ZXIiLCJfaWNvbkxheWVyIiwiX2hlYXRtYXBMYXllciIsIl9oM0hleGFnb25MYXllciIsIl9zY2VuZWdyYXBoTGF5ZXIiLCJfdHJpcExheWVyIiwiX3MyR2VvbWV0cnlMYXllciIsIl90eXBlcyIsIl9iYXNlTGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sYXllckZhY3RvcnkiLCJfTGF5ZXJDbGFzc2VzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiS2VwbGVyR2xMYXllcnMiLCJleHBvcnRzIiwiUG9pbnRMYXllciIsIkFyY0xheWVyIiwiTGluZUxheWVyIiwiR3JpZExheWVyIiwiSGV4YWdvbkxheWVyIiwiR2VvanNvbkxheWVyIiwiQ2x1c3RlckxheWVyIiwiSWNvbkxheWVyIiwiSGVhdG1hcExheWVyIiwiSDNMYXllciIsIlNjZW5lZ3JhcGhMYXllciIsIlRyaXBMYXllciIsIlMyR2VvbWV0cnlMYXllciIsIkxheWVyQ2xhc3NlcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiYXJjIiwibGluZSIsImdyaWQiLCJoZXhhZ29uIiwiZ2VvanNvbiIsImNsdXN0ZXIiLCJpY29uIiwiaGVhdG1hcCIsImhleGFnb25JZCIsInRyaXAiLCJzMiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtkZWZhdWx0IGFzIFBvaW50TGF5ZXJ9IGZyb20gJy4vcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEFyY0xheWVyfSBmcm9tICcuL2FyYy1sYXllci9hcmMtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIExpbmVMYXllcn0gZnJvbSAnLi9saW5lLWxheWVyL2xpbmUtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdyaWRMYXllcn0gZnJvbSAnLi9ncmlkLWxheWVyL2dyaWQtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhleGFnb25MYXllcn0gZnJvbSAnLi9oZXhhZ29uLWxheWVyL2hleGFnb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdlb2pzb25MYXllcn0gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIENsdXN0ZXJMYXllcn0gZnJvbSAnLi9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEljb25MYXllcn0gZnJvbSAnLi9pY29uLWxheWVyL2ljb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhlYXRtYXBMYXllcn0gZnJvbSAnLi9oZWF0bWFwLWxheWVyL2hlYXRtYXAtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEgzTGF5ZXJ9IGZyb20gJy4vaDMtaGV4YWdvbi1sYXllci9oMy1oZXhhZ29uLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTY2VuZWdyYXBoTGF5ZXJ9IGZyb20gJy4vc2NlbmVncmFwaC1sYXllci9zY2VuZWdyYXBoLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBUcmlwTGF5ZXJ9IGZyb20gJy4vdHJpcC1sYXllci90cmlwLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTMkdlb21ldHJ5TGF5ZXJ9IGZyb20gJy4vczItZ2VvbWV0cnktbGF5ZXIvczItZ2VvbWV0cnktbGF5ZXInO1xuaW1wb3J0IHtMQVlFUl9UWVBFU30gZnJvbSAnLi90eXBlcyc7XG5cbi8vIGJhc2UgbGF5ZXJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllciwgT1ZFUkxBWV9UWVBFLCBMQVlFUl9JRF9MRU5HVEgsIGNvbG9yTWFrZXJ9IGZyb20gJy4vYmFzZS1sYXllcic7XG5cbi8vIGluZGl2aWR1YWwgbGF5ZXJzXG5leHBvcnQgY29uc3QgS2VwbGVyR2xMYXllcnMgPSB7XG4gIFBvaW50TGF5ZXIsXG4gIEFyY0xheWVyLFxuICBMaW5lTGF5ZXIsXG4gIEdyaWRMYXllcixcbiAgSGV4YWdvbkxheWVyLFxuICBHZW9qc29uTGF5ZXIsXG4gIENsdXN0ZXJMYXllcixcbiAgSWNvbkxheWVyLFxuICBIZWF0bWFwTGF5ZXIsXG4gIEgzTGF5ZXIsXG4gIFNjZW5lZ3JhcGhMYXllcixcbiAgVHJpcExheWVyLFxuICBTMkdlb21ldHJ5TGF5ZXJcbn07XG5cbmV4cG9ydCBjb25zdCBMYXllckNsYXNzZXMgPSB7XG4gIFtMQVlFUl9UWVBFUy5wb2ludF06IFBvaW50TGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5hcmNdOiBBcmNMYXllcixcbiAgW0xBWUVSX1RZUEVTLmxpbmVdOiBMaW5lTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5ncmlkXTogR3JpZExheWVyLFxuICBbTEFZRVJfVFlQRVMuaGV4YWdvbl06IEhleGFnb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmdlb2pzb25dOiBHZW9qc29uTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5jbHVzdGVyXTogQ2x1c3RlckxheWVyLFxuICBbTEFZRVJfVFlQRVMuaWNvbl06IEljb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmhlYXRtYXBdOiBIZWF0bWFwTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5oZXhhZ29uSWRdOiBIM0xheWVyLFxuICBbTEFZRVJfVFlQRVNbJzNEJ11dOiBTY2VuZWdyYXBoTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy50cmlwXTogVHJpcExheWVyLFxuICBbTEFZRVJfVFlQRVMuczJdOiBTMkdlb21ldHJ5TGF5ZXJcbn07XG5cbmV4cG9ydCB7TEFZRVJfVklTX0NPTkZJR1N9IGZyb20gJy4vbGF5ZXItZmFjdG9yeSc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsZUFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFVBQUEsR0FBQVosc0JBQUEsQ0FB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
|