@kepler.gl/components 3.0.0-alpha.0 → 3.0.0-alpha.2
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/bottom-widget.d.ts +11 -38
- package/dist/bottom-widget.js +42 -118
- package/dist/common/action-panel.d.ts +2 -2
- package/dist/common/action-panel.js +3 -23
- package/dist/common/animation-control/animation-control.d.ts +19 -18
- package/dist/common/animation-control/animation-control.js +58 -100
- package/dist/common/animation-control/animation-controller.d.ts +6 -2
- package/dist/common/animation-control/animation-controller.js +49 -55
- package/dist/common/animation-control/animation-speed-slider.js +1 -21
- package/dist/common/animation-control/animation-window-control.js +3 -21
- package/dist/common/animation-control/floating-time-display.d.ts +2 -2
- package/dist/common/animation-control/floating-time-display.js +1 -21
- package/dist/common/animation-control/play-control.d.ts +2 -2
- package/dist/common/animation-control/play-control.js +3 -21
- package/dist/common/animation-control/playback-controls.d.ts +7 -7
- package/dist/common/animation-control/playback-controls.js +5 -25
- package/dist/common/animation-control/reset-control.d.ts +2 -2
- package/dist/common/animation-control/reset-control.js +3 -21
- package/dist/common/animation-control/speed-control.d.ts +2 -2
- package/dist/common/animation-control/speed-control.js +1 -21
- package/dist/common/animation-control/window-action-control.d.ts +2 -2
- package/dist/common/animation-control/window-action-control.js +3 -21
- package/dist/common/checkbox.d.ts +2 -2
- package/dist/common/checkbox.js +2 -22
- package/dist/common/color-legend.d.ts +3 -3
- package/dist/common/color-legend.js +10 -36
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/button.js +1 -21
- package/dist/common/data-table/canvas.js +1 -21
- package/dist/common/data-table/cell-size.js +43 -32
- package/dist/common/data-table/display-format.d.ts +25 -0
- package/dist/common/data-table/display-format.js +149 -0
- package/dist/common/data-table/grid.d.ts +5 -2
- package/dist/common/data-table/grid.js +44 -24
- package/dist/common/data-table/header-cell.d.ts +4 -1
- package/dist/common/data-table/header-cell.js +65 -48
- package/dist/common/data-table/index.d.ts +27 -34
- package/dist/common/data-table/index.js +147 -81
- package/dist/common/data-table/option-dropdown.d.ts +17 -3
- package/dist/common/data-table/option-dropdown.js +85 -32
- package/dist/common/dataset-label.d.ts +2 -2
- package/dist/common/dataset-label.js +2 -22
- package/dist/common/error-boundary.d.ts +6 -2
- package/dist/common/error-boundary.js +1 -21
- package/dist/common/field-selector.d.ts +10 -3
- package/dist/common/field-selector.js +4 -22
- package/dist/common/field-token.d.ts +12 -0
- package/dist/common/field-token.js +6 -22
- package/dist/common/file-uploader/file-drop.d.ts +3 -2
- package/dist/common/file-uploader/file-drop.js +1 -21
- package/dist/common/file-uploader/file-upload-progress.js +1 -21
- package/dist/common/file-uploader/file-upload.d.ts +2 -6
- package/dist/common/file-uploader/file-upload.js +1 -21
- package/dist/common/file-uploader/upload-button.d.ts +1 -0
- package/dist/common/file-uploader/upload-button.js +1 -21
- package/dist/common/flex-container.d.ts +3 -0
- package/dist/common/flex-container.js +23 -0
- package/dist/common/histogram-plot.d.ts +2 -2
- package/dist/common/histogram-plot.js +17 -31
- package/dist/common/icon-button.d.ts +3 -2
- package/dist/common/icon-button.js +1 -21
- package/dist/common/icons/add.d.ts +2 -2
- package/dist/common/icons/add.js +1 -21
- package/dist/common/icons/anchor_window.d.ts +2 -2
- package/dist/common/icons/anchor_window.js +6 -22
- package/dist/common/icons/arrow-down-alt.d.ts +2 -2
- package/dist/common/icons/arrow-down-alt.js +1 -21
- package/dist/common/icons/arrow-down-small.d.ts +14 -0
- package/dist/common/icons/arrow-down-small.js +72 -0
- package/dist/common/icons/arrow-down-solid.d.ts +2 -2
- package/dist/common/icons/arrow-down-solid.js +1 -21
- package/dist/common/icons/arrow-down.d.ts +2 -2
- package/dist/common/icons/arrow-down.js +1 -21
- package/dist/common/icons/arrow-left.d.ts +2 -2
- package/dist/common/icons/arrow-left.js +1 -21
- package/dist/common/icons/arrow-right.d.ts +2 -2
- package/dist/common/icons/arrow-right.js +1 -21
- package/dist/common/icons/arrow-up-alt.d.ts +2 -2
- package/dist/common/icons/arrow-up-alt.js +1 -21
- package/dist/common/icons/arrow-up-solid.d.ts +2 -2
- package/dist/common/icons/arrow-up-solid.js +1 -21
- package/dist/common/icons/arrow-up.d.ts +2 -2
- package/dist/common/icons/arrow-up.js +1 -21
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/base.js +1 -21
- package/dist/common/icons/bug.d.ts +2 -2
- package/dist/common/icons/bug.js +1 -21
- package/dist/common/icons/calendar.d.ts +10 -0
- package/dist/common/icons/calendar.js +66 -0
- package/dist/common/icons/cancel.d.ts +2 -2
- package/dist/common/icons/cancel.js +1 -21
- package/dist/common/icons/checkmark.d.ts +2 -2
- package/dist/common/icons/checkmark.js +1 -21
- package/dist/common/icons/clipboard.d.ts +2 -2
- package/dist/common/icons/clipboard.js +1 -21
- package/dist/common/icons/clock.d.ts +2 -2
- package/dist/common/icons/clock.js +1 -21
- package/dist/common/icons/close.d.ts +2 -2
- package/dist/common/icons/close.js +1 -21
- package/dist/common/icons/code-alt.d.ts +2 -2
- package/dist/common/icons/code-alt.js +1 -21
- package/dist/common/icons/copy.d.ts +2 -2
- package/dist/common/icons/copy.js +1 -21
- package/dist/common/icons/crosshairs.d.ts +2 -2
- package/dist/common/icons/crosshairs.js +1 -21
- package/dist/common/icons/cube-3d.d.ts +2 -2
- package/dist/common/icons/cube-3d.js +1 -21
- package/dist/common/icons/cursor-click.d.ts +2 -2
- package/dist/common/icons/cursor-click.js +1 -21
- package/dist/common/icons/cursor-point.d.ts +14 -0
- package/dist/common/icons/cursor-point.js +69 -0
- package/dist/common/icons/data-table.d.ts +2 -2
- package/dist/common/icons/data-table.js +1 -21
- package/dist/common/icons/db.d.ts +2 -2
- package/dist/common/icons/db.js +1 -21
- package/dist/common/icons/delete.d.ts +2 -2
- package/dist/common/icons/delete.js +1 -21
- package/dist/common/icons/docs.d.ts +2 -2
- package/dist/common/icons/docs.js +1 -21
- package/dist/common/icons/drag-n-drop.d.ts +2 -2
- package/dist/common/icons/drag-n-drop.js +1 -21
- package/dist/common/icons/draw-polygon.d.ts +2 -2
- package/dist/common/icons/draw-polygon.js +1 -21
- package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
- package/dist/common/icons/effects/brightness-contrast.js +88 -0
- package/dist/common/icons/effects/color-halftone.d.ts +14 -0
- package/dist/common/icons/effects/color-halftone.js +127 -0
- package/dist/common/icons/effects/dot-screen.d.ts +14 -0
- package/dist/common/icons/effects/dot-screen.js +122 -0
- package/dist/common/icons/effects/edge-work.d.ts +14 -0
- package/dist/common/icons/effects/edge-work.js +81 -0
- package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
- package/dist/common/icons/effects/hexagonal-pixelate.js +148 -0
- package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
- package/dist/common/icons/effects/hue-saturation.js +79 -0
- package/dist/common/icons/effects/ink.d.ts +14 -0
- package/dist/common/icons/effects/ink.js +78 -0
- package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
- package/dist/common/icons/effects/light-and-shadow.js +67 -0
- package/dist/common/icons/effects/magic-wand.d.ts +14 -0
- package/dist/common/icons/effects/magic-wand.js +79 -0
- package/dist/common/icons/effects/magnify.d.ts +14 -0
- package/dist/common/icons/effects/magnify.js +86 -0
- package/dist/common/icons/effects/noise.d.ts +14 -0
- package/dist/common/icons/effects/noise.js +132 -0
- package/dist/common/icons/effects/sepia.d.ts +14 -0
- package/dist/common/icons/effects/sepia.js +79 -0
- package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
- package/dist/common/icons/effects/tilt-shift.js +88 -0
- package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
- package/dist/common/icons/effects/triangle-blur.js +83 -0
- package/dist/common/icons/effects/vibrance.d.ts +14 -0
- package/dist/common/icons/effects/vibrance.js +79 -0
- package/dist/common/icons/effects/vignette.d.ts +14 -0
- package/dist/common/icons/effects/vignette.js +72 -0
- package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
- package/dist/common/icons/effects/zoom-blur.js +107 -0
- package/dist/common/icons/email.d.ts +2 -2
- package/dist/common/icons/email.js +1 -21
- package/dist/common/icons/expand.d.ts +2 -2
- package/dist/common/icons/expand.js +1 -21
- package/dist/common/icons/eye-seen.d.ts +2 -2
- package/dist/common/icons/eye-seen.js +1 -21
- package/dist/common/icons/eye-unseen.d.ts +2 -2
- package/dist/common/icons/eye-unseen.js +1 -21
- package/dist/common/icons/file-type.d.ts +2 -2
- package/dist/common/icons/file-type.js +1 -21
- package/dist/common/icons/file.d.ts +2 -2
- package/dist/common/icons/file.js +1 -21
- package/dist/common/icons/files.d.ts +1 -1
- package/dist/common/icons/files.js +1 -21
- package/dist/common/icons/filter-funnel.d.ts +2 -2
- package/dist/common/icons/filter-funnel.js +1 -21
- package/dist/common/icons/free-window.d.ts +2 -2
- package/dist/common/icons/free-window.js +6 -22
- package/dist/common/icons/gear.d.ts +2 -2
- package/dist/common/icons/gear.js +1 -21
- package/dist/common/icons/globe.d.ts +15 -0
- package/dist/common/icons/globe.js +72 -0
- package/dist/common/icons/hash.d.ts +2 -2
- package/dist/common/icons/hash.js +1 -21
- package/dist/common/icons/histogram.d.ts +1 -1
- package/dist/common/icons/histogram.js +1 -21
- package/dist/common/icons/index.d.ts +26 -0
- package/dist/common/icons/index.js +209 -21
- package/dist/common/icons/info.d.ts +2 -2
- package/dist/common/icons/info.js +1 -21
- package/dist/common/icons/layers.d.ts +2 -2
- package/dist/common/icons/layers.js +1 -21
- package/dist/common/icons/left-arrow.d.ts +2 -2
- package/dist/common/icons/left-arrow.js +1 -21
- package/dist/common/icons/legend.d.ts +2 -2
- package/dist/common/icons/legend.js +1 -21
- package/dist/common/icons/line-chart.d.ts +2 -2
- package/dist/common/icons/line-chart.js +1 -21
- package/dist/common/icons/location-marker.d.ts +14 -0
- package/dist/common/icons/location-marker.js +77 -0
- package/dist/common/icons/login.d.ts +2 -2
- package/dist/common/icons/login.js +1 -21
- package/dist/common/icons/logout.d.ts +2 -2
- package/dist/common/icons/logout.js +1 -21
- package/dist/common/icons/map-icon.d.ts +2 -2
- package/dist/common/icons/map-icon.js +1 -21
- package/dist/common/icons/map.d.ts +2 -2
- package/dist/common/icons/map.js +1 -21
- package/dist/common/icons/messages.d.ts +2 -2
- package/dist/common/icons/messages.js +1 -21
- package/dist/common/icons/minus.d.ts +2 -2
- package/dist/common/icons/minus.js +1 -21
- package/dist/common/icons/moon.d.ts +14 -0
- package/dist/common/icons/moon.js +77 -0
- package/dist/common/icons/order-by-dataset.d.ts +2 -2
- package/dist/common/icons/order-by-dataset.js +6 -22
- package/dist/common/icons/order-by-list.d.ts +2 -2
- package/dist/common/icons/order-by-list.js +6 -22
- package/dist/common/icons/pause.d.ts +2 -2
- package/dist/common/icons/pause.js +1 -21
- package/dist/common/icons/picture.d.ts +1 -1
- package/dist/common/icons/picture.js +1 -21
- package/dist/common/icons/pin.d.ts +2 -2
- package/dist/common/icons/pin.js +1 -21
- package/dist/common/icons/play.d.ts +2 -2
- package/dist/common/icons/play.js +1 -21
- package/dist/common/icons/polygon.d.ts +2 -2
- package/dist/common/icons/polygon.js +1 -21
- package/dist/common/icons/rectangle.d.ts +2 -2
- package/dist/common/icons/rectangle.js +1 -21
- package/dist/common/icons/reduce.d.ts +2 -2
- package/dist/common/icons/reduce.js +1 -21
- package/dist/common/icons/reset.d.ts +2 -2
- package/dist/common/icons/reset.js +1 -21
- package/dist/common/icons/rocket.d.ts +2 -2
- package/dist/common/icons/rocket.js +1 -21
- package/dist/common/icons/save.d.ts +2 -2
- package/dist/common/icons/save.js +1 -21
- package/dist/common/icons/save2.d.ts +2 -2
- package/dist/common/icons/save2.js +1 -21
- package/dist/common/icons/search.d.ts +2 -2
- package/dist/common/icons/search.js +1 -21
- package/dist/common/icons/settings.d.ts +2 -2
- package/dist/common/icons/settings.js +1 -21
- package/dist/common/icons/share.d.ts +2 -2
- package/dist/common/icons/share.js +1 -21
- package/dist/common/icons/split.d.ts +2 -2
- package/dist/common/icons/split.js +1 -21
- package/dist/common/icons/square-select.d.ts +2 -2
- package/dist/common/icons/square-select.js +1 -21
- package/dist/common/icons/sun.d.ts +14 -0
- package/dist/common/icons/sun.js +93 -0
- package/dist/common/icons/sunrise.d.ts +14 -0
- package/dist/common/icons/sunrise.js +89 -0
- package/dist/common/icons/sunset.d.ts +14 -0
- package/dist/common/icons/sunset.js +89 -0
- package/dist/common/icons/trash.d.ts +2 -2
- package/dist/common/icons/trash.js +1 -21
- package/dist/common/icons/vert-dots.d.ts +2 -2
- package/dist/common/icons/vert-dots.js +1 -21
- package/dist/common/icons/vert-three-dots.d.ts +2 -2
- package/dist/common/icons/vert-three-dots.js +1 -21
- package/dist/common/icons/warning-sign.d.ts +2 -2
- package/dist/common/icons/warning-sign.js +1 -21
- package/dist/common/icons/warning.d.ts +2 -2
- package/dist/common/icons/warning.js +1 -21
- package/dist/common/image-preview.d.ts +2 -2
- package/dist/common/image-preview.js +1 -21
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.js +7 -21
- package/dist/common/info-helper.d.ts +2 -2
- package/dist/common/info-helper.js +1 -21
- package/dist/common/item-selector/accessor.js +5 -22
- package/dist/common/item-selector/chickleted-input.d.ts +1 -0
- package/dist/common/item-selector/chickleted-input.js +104 -44
- package/dist/common/item-selector/dropdown-list.d.ts +30 -8
- package/dist/common/item-selector/dropdown-list.js +150 -46
- package/dist/common/item-selector/item-selector.d.ts +5 -3
- package/dist/common/item-selector/item-selector.js +16 -24
- package/dist/common/item-selector/typeahead.d.ts +16 -12
- package/dist/common/item-selector/typeahead.js +23 -32
- package/dist/common/line-chart.d.ts +2 -2
- package/dist/common/line-chart.js +1 -21
- package/dist/common/loading-spinner.js +1 -21
- package/dist/common/logo.d.ts +2 -2
- package/dist/common/logo.js +1 -21
- package/dist/common/map-layer-selector.d.ts +2 -2
- package/dist/common/map-layer-selector.js +2 -23
- package/dist/common/modal.d.ts +24 -11
- package/dist/common/modal.js +25 -28
- package/dist/common/portaled.d.ts +526 -2
- package/dist/common/portaled.js +1 -21
- package/dist/common/progress-bar.d.ts +2 -2
- package/dist/common/progress-bar.js +1 -21
- package/dist/common/range-brush.js +1 -21
- package/dist/common/range-plot.d.ts +6 -2
- package/dist/common/range-plot.js +3 -22
- package/dist/common/range-slider.d.ts +6 -2
- package/dist/common/range-slider.js +8 -22
- package/dist/common/slider/mouse-event.js +6 -22
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-bar-handle.js +1 -21
- package/dist/common/slider/slider-handle.d.ts +1 -1
- package/dist/common/slider/slider-handle.js +1 -21
- package/dist/common/slider/slider.d.ts +7 -5
- package/dist/common/slider/slider.js +7 -24
- package/dist/common/styled-components.d.ts +8 -3
- package/dist/common/styled-components.js +161 -68
- package/dist/common/switch.d.ts +3 -2
- package/dist/common/switch.js +1 -21
- package/dist/common/time-range-slider-time-title.d.ts +2 -2
- package/dist/common/time-range-slider-time-title.js +1 -21
- package/dist/common/time-range-slider.d.ts +6 -3
- package/dist/common/time-range-slider.js +32 -33
- package/dist/common/time-slider-marker.d.ts +1 -1
- package/dist/common/time-slider-marker.js +2 -22
- package/dist/common/timeline-slider.d.ts +13 -0
- package/dist/common/timeline-slider.js +153 -0
- package/dist/common/tippy-tooltip.d.ts +4 -2
- package/dist/common/tippy-tooltip.js +22 -30
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar-item.js +5 -23
- package/dist/common/toolbar.js +1 -21
- package/dist/common/vertical-toolbar.js +1 -21
- package/dist/connect/keplergl-connect.d.ts +5 -1
- package/dist/connect/keplergl-connect.js +6 -22
- package/dist/connect/with-local-selector.js +1 -21
- package/dist/container.js +1 -21
- package/dist/context.d.ts +11 -0
- package/dist/context.js +20 -24
- package/dist/dnd-context.d.ts +13 -0
- package/dist/dnd-context.js +157 -0
- package/dist/editor/editor.d.ts +11 -10
- package/dist/editor/editor.js +96 -122
- package/dist/editor/feature-action-panel.d.ts +8 -6
- package/dist/editor/feature-action-panel.js +57 -55
- package/dist/effects/compact-color-picker.d.ts +10 -0
- package/dist/effects/compact-color-picker.js +130 -0
- package/dist/effects/effect-configurator.d.ts +17 -0
- package/dist/effects/effect-configurator.js +302 -0
- package/dist/effects/effect-list.d.ts +15 -0
- package/dist/effects/effect-list.js +153 -0
- package/dist/effects/effect-manager.d.ts +22 -0
- package/dist/effects/effect-manager.js +142 -0
- package/dist/effects/effect-panel-header.d.ts +45 -0
- package/dist/effects/effect-panel-header.js +206 -0
- package/dist/effects/effect-panel.d.ts +24 -0
- package/dist/effects/effect-panel.js +149 -0
- package/dist/effects/effect-time-configurator.d.ts +20 -0
- package/dist/effects/effect-time-configurator.js +340 -0
- package/dist/effects/effect-time-selector.d.ts +16 -0
- package/dist/effects/effect-time-selector.js +181 -0
- package/dist/effects/effect-time-slider.d.ts +34 -0
- package/dist/effects/effect-time-slider.js +220 -0
- package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
- package/dist/effects/effect-type-dropdown-list.js +77 -0
- package/dist/effects/effect-type-list-item.d.ts +22 -0
- package/dist/effects/effect-type-list-item.js +105 -0
- package/dist/effects/effect-type-selector.d.ts +30 -0
- package/dist/effects/effect-type-selector.js +92 -0
- package/dist/effects/side-panel-title.d.ts +7 -0
- package/dist/effects/side-panel-title.js +47 -0
- package/dist/effects/timezone-selector.d.ts +19 -0
- package/dist/effects/timezone-selector.js +71 -0
- package/dist/filter-animation-controller.d.ts +17 -0
- package/dist/filter-animation-controller.js +73 -0
- package/dist/filters/components.js +1 -21
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +7 -23
- package/dist/filters/filter-panels/multi-select-filter-panel.js +7 -23
- package/dist/filters/filter-panels/new-filter-panel.js +6 -22
- package/dist/filters/filter-panels/polygon-filter-panel.js +7 -23
- package/dist/filters/filter-panels/range-filter-panel.js +7 -23
- package/dist/filters/filter-panels/single-select-filter-panel.js +7 -23
- package/dist/filters/filter-panels/time-range-filter-panel.js +24 -27
- package/dist/filters/filter-panels/types.d.ts +2 -1
- package/dist/filters/filter-panels/types.js +0 -20
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.js +17 -21
- package/dist/filters/multi-select-filter.js +6 -22
- package/dist/filters/polygon-filter.js +18 -24
- package/dist/filters/range-filter.js +9 -23
- package/dist/filters/single-select-filter.js +6 -22
- package/dist/filters/time-range-filter.d.ts +2 -1
- package/dist/filters/time-range-filter.js +15 -27
- package/dist/filters/time-widget-top.d.ts +8 -0
- package/dist/filters/time-widget-top.js +103 -0
- package/dist/filters/time-widget.d.ts +3 -7
- package/dist/filters/time-widget.js +34 -111
- package/dist/filters/types.d.ts +7 -3
- package/dist/filters/types.js +0 -20
- package/dist/geocoder/geocoder.d.ts +1 -3
- package/dist/geocoder/geocoder.js +10 -27
- package/dist/geocoder-panel.d.ts +9 -3
- package/dist/geocoder-panel.js +29 -38
- package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
- package/dist/hooks/use-cloud-list-provider.js +57 -0
- package/dist/hooks/use-dnd-effects.d.ts +9 -0
- package/dist/hooks/use-dnd-effects.js +88 -0
- package/dist/hooks/use-dnd-layers.d.ts +9 -0
- package/dist/hooks/use-dnd-layers.js +95 -0
- package/dist/hooks/use-feature-flags.d.ts +5 -0
- package/dist/hooks/use-feature-flags.js +21 -0
- package/dist/index.d.ts +78 -21
- package/dist/index.js +695 -116
- package/dist/injector.d.ts +4 -4
- package/dist/injector.js +1 -21
- package/dist/kepler-gl.d.ts +59 -17
- package/dist/kepler-gl.js +88 -53
- package/dist/layer-animation-controller.d.ts +13 -0
- package/dist/layer-animation-controller.js +58 -0
- package/dist/map/coordinate-info.js +6 -22
- package/dist/map/effects/effect-control.d.ts +16 -0
- package/dist/map/effects/effect-control.js +63 -0
- package/dist/map/layer-hover-info.d.ts +2 -2
- package/dist/map/layer-hover-info.js +26 -30
- package/dist/map/layer-selector-panel.js +6 -22
- package/dist/map/lazy-tippy.js +1 -21
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +6 -22
- package/dist/map/map-control-panel.d.ts +6 -0
- package/dist/map/map-control-panel.js +64 -28
- package/dist/map/map-control-toolbar.js +2 -22
- package/dist/map/map-control-tooltip.js +6 -22
- package/dist/map/map-control.d.ts +15 -7
- package/dist/map/map-control.js +5 -26
- package/dist/map/map-draw-panel.d.ts +2 -2
- package/dist/map/map-draw-panel.js +6 -29
- package/dist/map/map-legend-panel.d.ts +12 -1
- package/dist/map/map-legend-panel.js +31 -34
- package/dist/map/map-legend.d.ts +1 -1
- package/dist/map/map-legend.js +1 -21
- package/dist/map/map-popover-content.d.ts +28 -0
- package/dist/map/map-popover-content.js +35 -0
- package/dist/map/map-popover.d.ts +11 -14
- package/dist/map/map-popover.js +93 -34
- package/dist/map/split-map-button.js +6 -22
- package/dist/map/toggle-3d-button.js +6 -22
- package/dist/map-container.d.ts +33 -9
- package/dist/map-container.js +544 -194
- package/dist/map-view-state-context.d.ts +17 -0
- package/dist/map-view-state-context.js +117 -0
- package/dist/maps-layout.d.ts +5 -2
- package/dist/maps-layout.js +6 -22
- package/dist/modal-container.d.ts +4 -8
- package/dist/modal-container.js +19 -76
- package/dist/modals/add-map-style-modal.d.ts +1 -3
- package/dist/modals/add-map-style-modal.js +15 -73
- package/dist/modals/cloud-components/cloud-header.d.ts +8 -0
- package/dist/modals/cloud-components/cloud-header.js +65 -0
- package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
- package/dist/modals/cloud-components/cloud-item.js +72 -0
- package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-item.spec.js +105 -0
- package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
- package/dist/modals/cloud-components/cloud-maps.js +63 -0
- package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-maps.spec.js +112 -0
- package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
- package/dist/modals/cloud-components/provider-loading.js +29 -0
- package/dist/modals/cloud-components/provider-select.d.ts +7 -0
- package/dist/modals/cloud-components/provider-select.js +40 -0
- package/dist/modals/cloud-tile.d.ts +8 -8
- package/dist/modals/cloud-tile.js +184 -75
- package/dist/modals/data-table-modal.d.ts +11 -2
- package/dist/modals/data-table-modal.js +74 -43
- package/dist/modals/delete-data-modal.js +1 -21
- package/dist/modals/error-display.js +15 -26
- package/dist/modals/export-data-modal.d.ts +1 -3
- package/dist/modals/export-data-modal.js +1 -21
- package/dist/modals/export-image-modal.d.ts +1 -3
- package/dist/modals/export-image-modal.js +1 -21
- package/dist/modals/export-map-modal/components.d.ts +2 -2
- package/dist/modals/export-map-modal/components.js +1 -21
- package/dist/modals/export-map-modal/export-html-map.js +1 -21
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.js +1 -21
- package/dist/modals/export-map-modal/export-map-modal.d.ts +2 -2
- package/dist/modals/export-map-modal/export-map-modal.js +6 -22
- package/dist/modals/image-modal-container.d.ts +2 -3
- package/dist/modals/image-modal-container.js +12 -34
- package/dist/modals/load-data-modal.d.ts +0 -5
- package/dist/modals/load-data-modal.js +1 -21
- package/dist/modals/load-storage-map.d.ts +3 -24
- package/dist/modals/load-storage-map.js +69 -282
- package/dist/modals/load-storage-map.spec.d.ts +1 -0
- package/dist/modals/load-storage-map.spec.js +237 -0
- package/dist/modals/loading-dialog.js +1 -21
- package/dist/modals/modal-dialog.js +6 -22
- package/dist/modals/modal-tabs.d.ts +1 -1
- package/dist/modals/modal-tabs.js +1 -21
- package/dist/modals/overwrite-map-modal.d.ts +2 -2
- package/dist/modals/overwrite-map-modal.js +39 -32
- package/dist/modals/save-map-modal.d.ts +3 -5
- package/dist/modals/save-map-modal.js +99 -119
- package/dist/modals/save-map-modal.spec.d.ts +1 -0
- package/dist/modals/save-map-modal.spec.js +218 -0
- package/dist/modals/share-map-modal.d.ts +1 -5
- package/dist/modals/share-map-modal.js +57 -81
- package/dist/modals/share-map-modal.spec.d.ts +1 -0
- package/dist/modals/share-map-modal.spec.js +202 -0
- package/dist/modals/status-panel.js +1 -21
- package/dist/modals/storage-map-viewer.d.ts +1 -1
- package/dist/modals/storage-map-viewer.js +1 -21
- package/dist/notification-panel/notification-item.d.ts +7 -10
- package/dist/notification-panel/notification-item.js +44 -32
- package/dist/notification-panel.js +1 -21
- package/dist/plot-container.js +20 -28
- package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
- package/dist/side-panel/add-by-dataset-button.js +153 -0
- package/dist/side-panel/cloud-storage-dropdown.d.ts +2 -2
- package/dist/side-panel/cloud-storage-dropdown.js +6 -22
- package/dist/side-panel/common/dataset-info.d.ts +10 -3
- package/dist/side-panel/common/dataset-info.js +1 -21
- package/dist/side-panel/common/dataset-tag.d.ts +15 -1
- package/dist/side-panel/common/dataset-tag.js +13 -30
- package/dist/side-panel/common/dataset-title.d.ts +16 -2
- package/dist/side-panel/common/dataset-title.js +70 -124
- package/dist/side-panel/common/source-data-catalog.d.ts +22 -3
- package/dist/side-panel/common/source-data-catalog.js +1 -21
- package/dist/side-panel/common/source-data-selector.js +6 -22
- package/dist/side-panel/common/types.d.ts +7 -27
- package/dist/side-panel/common/types.js +0 -20
- package/dist/side-panel/custom-panel.d.ts +6 -7
- package/dist/side-panel/custom-panel.js +6 -22
- package/dist/side-panel/filter-manager.d.ts +18 -6
- package/dist/side-panel/filter-manager.js +175 -84
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
- package/dist/side-panel/filter-panel/add-filter-button.js +34 -0
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +6 -3
- package/dist/side-panel/filter-panel/filter-panel-header.js +3 -23
- package/dist/side-panel/filter-panel/filter-panel.js +1 -21
- package/dist/side-panel/interaction-manager.d.ts +6 -3
- package/dist/side-panel/interaction-manager.js +24 -27
- package/dist/side-panel/interaction-panel/brush-config.d.ts +2 -2
- package/dist/side-panel/interaction-panel/brush-config.js +1 -21
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +5 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +11 -24
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +11 -9
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +69 -67
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +2 -3
- package/dist/side-panel/interaction-panel/tooltip-config.js +48 -57
- package/dist/side-panel/layer-manager.d.ts +13 -10
- package/dist/side-panel/layer-manager.js +72 -57
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +3 -5
- package/dist/side-panel/layer-panel/add-layer-button.js +14 -156
- package/dist/side-panel/layer-panel/color-palette.js +1 -21
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-range-selector.js +1 -21
- package/dist/side-panel/layer-panel/color-selector.d.ts +15 -24
- package/dist/side-panel/layer-panel/color-selector.js +174 -146
- package/dist/side-panel/layer-panel/column-selector.js +1 -21
- package/dist/side-panel/layer-panel/custom-palette.d.ts +7 -2
- package/dist/side-panel/layer-panel/custom-palette.js +5 -24
- package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -36
- package/dist/side-panel/layer-panel/custom-picker.js +1 -21
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +7 -22
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -2
- package/dist/side-panel/layer-panel/dataset-layer-section.js +4 -23
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -3
- package/dist/side-panel/layer-panel/dataset-section.js +5 -26
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +6 -22
- package/dist/side-panel/layer-panel/how-to-button.js +1 -21
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
- package/dist/side-panel/layer-panel/layer-color-selector.js +118 -0
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +15 -9
- package/dist/side-panel/layer-panel/layer-column-config.js +34 -32
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -2
- package/dist/side-panel/layer-panel/layer-config-group.js +18 -30
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +10 -35
- package/dist/side-panel/layer-panel/layer-configurator.js +75 -132
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
- package/dist/side-panel/layer-panel/layer-error-message.js +38 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +4 -3
- package/dist/side-panel/layer-panel/layer-list.js +111 -108
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +22 -10
- package/dist/side-panel/layer-panel/layer-panel-header.js +105 -86
- package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -1
- package/dist/side-panel/layer-panel/layer-panel.js +23 -30
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +1 -21
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +12 -3
- package/dist/side-panel/layer-panel/layer-type-list-item.js +11 -23
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +2 -1
- package/dist/side-panel/layer-panel/layer-type-selector.js +4 -22
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.js +1 -21
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +4 -2
- package/dist/side-panel/layer-panel/text-label-panel.js +61 -34
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -3
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +1 -21
- package/dist/side-panel/layer-panel/vis-config-slider.js +1 -21
- package/dist/side-panel/layer-panel/vis-config-switch.js +1 -21
- package/dist/side-panel/map-manager.d.ts +13 -6
- package/dist/side-panel/map-manager.js +55 -64
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +96 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +111 -0
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +16 -12
- package/dist/side-panel/map-style-panel/map-layer-selector.js +33 -70
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +11 -4
- package/dist/side-panel/map-style-panel/map-style-selector.js +53 -39
- package/dist/side-panel/panel-dropdown.d.ts +3 -2
- package/dist/side-panel/panel-dropdown.js +1 -21
- package/dist/side-panel/panel-header-action.d.ts +4 -2
- package/dist/side-panel/panel-header-action.js +10 -23
- package/dist/side-panel/panel-header.d.ts +13 -8
- package/dist/side-panel/panel-header.js +2 -21
- package/dist/side-panel/panel-tab.d.ts +2 -2
- package/dist/side-panel/panel-tab.js +1 -21
- package/dist/side-panel/panel-title.d.ts +6 -3
- package/dist/side-panel/panel-title.js +30 -33
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-toggle.js +1 -21
- package/dist/side-panel/{layer-panel/panel-view-list-toggle.d.ts → panel-view-list-toggle.d.ts} +19 -8
- package/dist/side-panel/panel-view-list-toggle.js +123 -0
- package/dist/side-panel/side-bar.d.ts +15 -16
- package/dist/side-panel/side-bar.js +7 -25
- package/dist/side-panel.d.ts +2 -117
- package/dist/side-panel.js +19 -54
- package/dist/types.d.ts +14 -9
- package/dist/types.js +0 -20
- package/package.json +48 -38
- package/dist/editor/constants.d.ts +0 -17
- package/dist/editor/constants.js +0 -47
- package/dist/editor/feature-styles.d.ts +0 -37
- package/dist/editor/feature-styles.js +0 -92
- package/dist/editor/handle-style.d.ts +0 -42
- package/dist/editor/handle-style.js +0 -100
- package/dist/hooks/useFeatureFlags.d.ts +0 -2
- package/dist/hooks/useFeatureFlags.js +0 -38
- package/dist/modals/provider-modal-container.d.ts +0 -22
- package/dist/modals/provider-modal-container.js +0 -101
- package/dist/side-panel/layer-panel/panel-view-list-toggle.js +0 -143
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MapViewState } from '@deck.gl/core/typed';
|
|
3
|
+
import { MapState } from '@kepler.gl/types';
|
|
4
|
+
export declare type MapViewStateContextType = {
|
|
5
|
+
getInternalViewState: (index?: number) => MapViewState;
|
|
6
|
+
setInternalViewState: (viewState: MapViewState, index?: number) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const MapViewStateContext: React.Context<MapViewStateContextType>;
|
|
9
|
+
/**
|
|
10
|
+
* This context provider is used to localize the map view state so
|
|
11
|
+
* that changes to the map view state do not affect the rest of the app,
|
|
12
|
+
* mainly to prevent issues we experienced with basemap/deck viewport syncing.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MapViewStateContextProvider: ({ mapState, children }: {
|
|
15
|
+
mapState: MapState;
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
}) => React.JSX.Element;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.MapViewStateContextProvider = exports.MapViewStateContext = void 0;
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _lodash = _interopRequireDefault(require("lodash.isequal"));
|
|
19
|
+
|
|
20
|
+
var _lodash2 = _interopRequireDefault(require("lodash.pick"));
|
|
21
|
+
|
|
22
|
+
var _reducers = require("@kepler.gl/reducers");
|
|
23
|
+
|
|
24
|
+
// SPDX-License-Identifier: MIT
|
|
25
|
+
// Copyright contributors to the kepler.gl project
|
|
26
|
+
var MapViewStateContext = /*#__PURE__*/(0, _react.createContext)({
|
|
27
|
+
getInternalViewState: function getInternalViewState() {
|
|
28
|
+
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
29
|
+
return {
|
|
30
|
+
latitude: 0,
|
|
31
|
+
longitude: 0,
|
|
32
|
+
zoom: 0
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
setInternalViewState: function setInternalViewState(viewState) {
|
|
36
|
+
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* This context provider is used to localize the map view state so
|
|
41
|
+
* that changes to the map view state do not affect the rest of the app,
|
|
42
|
+
* mainly to prevent issues we experienced with basemap/deck viewport syncing.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
exports.MapViewStateContext = MapViewStateContext;
|
|
46
|
+
|
|
47
|
+
var MapViewStateContextProvider = function MapViewStateContextProvider(_ref) {
|
|
48
|
+
var mapState = _ref.mapState,
|
|
49
|
+
children = _ref.children;
|
|
50
|
+
|
|
51
|
+
var _ref2 = mapState || {},
|
|
52
|
+
isSplit = _ref2.isSplit,
|
|
53
|
+
isViewportSynced = _ref2.isViewportSynced; // Store locally map view states by mapIndex
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
var _useState = (0, _react.useState)([mapState]),
|
|
57
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
58
|
+
viewStates = _useState2[0],
|
|
59
|
+
setViewStates = _useState2[1]; // Detect and apply outside viewport changes
|
|
60
|
+
// (e.g. from geocoder or when switching to 3d mode)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
(0, _react.useEffect)(function () {
|
|
64
|
+
if (!mapState) return;
|
|
65
|
+
var primaryState = viewStates[0];
|
|
66
|
+
if (primaryState === mapState) return;
|
|
67
|
+
var props = Object.keys(primaryState).filter(function (key) {
|
|
68
|
+
return !key.startsWith('transition');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
var hasChanged = function hasChanged(a, b) {
|
|
72
|
+
return !(0, _lodash["default"])((0, _lodash2["default"])(a, props), (0, _lodash2["default"])(b, props));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
if (isSplit && !isViewportSynced) {
|
|
76
|
+
var _mapState$splitMapVie;
|
|
77
|
+
|
|
78
|
+
if ((_mapState$splitMapVie = mapState.splitMapViewports) !== null && _mapState$splitMapVie !== void 0 && _mapState$splitMapVie.some(function (s, i) {
|
|
79
|
+
return hasChanged(s, viewStates[i]);
|
|
80
|
+
})) {
|
|
81
|
+
setViewStates(mapState.splitMapViewports);
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
if (hasChanged(primaryState, mapState)) {
|
|
85
|
+
setViewStates([(0, _reducers.pickViewportPropsFromMapState)(mapState)]);
|
|
86
|
+
}
|
|
87
|
+
} // Only update internalViewState when viewState changes
|
|
88
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
89
|
+
|
|
90
|
+
}, [mapState]);
|
|
91
|
+
var value = {
|
|
92
|
+
getInternalViewState: function getInternalViewState() {
|
|
93
|
+
var _viewStates$index;
|
|
94
|
+
|
|
95
|
+
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
96
|
+
return (_viewStates$index = viewStates[index]) !== null && _viewStates$index !== void 0 ? _viewStates$index : viewStates[0];
|
|
97
|
+
},
|
|
98
|
+
setInternalViewState: function setInternalViewState(newViewState) {
|
|
99
|
+
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
100
|
+
setViewStates(function (prevViewStates) {
|
|
101
|
+
if (isSplit && !isViewportSynced) {
|
|
102
|
+
var nextViewStates = (0, _toConsumableArray2["default"])(prevViewStates);
|
|
103
|
+
nextViewStates[index] = newViewState;
|
|
104
|
+
return nextViewStates;
|
|
105
|
+
} else {
|
|
106
|
+
return [newViewState];
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return /*#__PURE__*/_react["default"].createElement(MapViewStateContext.Provider, {
|
|
112
|
+
value: value
|
|
113
|
+
}, children);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
exports.MapViewStateContextProvider = MapViewStateContextProvider;
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtdmlldy1zdGF0ZS1jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJNYXBWaWV3U3RhdGVDb250ZXh0IiwiZ2V0SW50ZXJuYWxWaWV3U3RhdGUiLCJpbmRleCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsInNldEludGVybmFsVmlld1N0YXRlIiwidmlld1N0YXRlIiwiTWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyIiwibWFwU3RhdGUiLCJjaGlsZHJlbiIsImlzU3BsaXQiLCJpc1ZpZXdwb3J0U3luY2VkIiwidmlld1N0YXRlcyIsInNldFZpZXdTdGF0ZXMiLCJwcmltYXJ5U3RhdGUiLCJwcm9wcyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJzdGFydHNXaXRoIiwiaGFzQ2hhbmdlZCIsImEiLCJiIiwic3BsaXRNYXBWaWV3cG9ydHMiLCJzb21lIiwicyIsImkiLCJ2YWx1ZSIsIm5ld1ZpZXdTdGF0ZSIsInByZXZWaWV3U3RhdGVzIiwibmV4dFZpZXdTdGF0ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUVBOztBQVBBO0FBQ0E7QUFlTyxJQUFNQSxtQkFBMkQsZ0JBQUcsMEJBQWM7QUFDdkZDLEVBQUFBLG9CQUFvQixFQUFFO0FBQUEsUUFBQ0MsS0FBRCx1RUFBUyxDQUFUO0FBQUEsV0FBZ0I7QUFBQ0MsTUFBQUEsUUFBUSxFQUFFLENBQVg7QUFBY0MsTUFBQUEsU0FBUyxFQUFFLENBQXpCO0FBQTRCQyxNQUFBQSxJQUFJLEVBQUU7QUFBbEMsS0FBaEI7QUFBQSxHQURpRTtBQUV2RkMsRUFBQUEsb0JBQW9CLEVBQUUsOEJBQUNDLFNBQUQsRUFBMEI7QUFBQSxRQUFkTCxLQUFjLHVFQUFOLENBQU07QUFBRTtBQUZxQyxDQUFkLENBQXBFO0FBS1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUVPLElBQU1NLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsT0FNckM7QUFBQSxNQUxKQyxRQUtJLFFBTEpBLFFBS0k7QUFBQSxNQUpKQyxRQUlJLFFBSkpBLFFBSUk7O0FBQUEsY0FDZ0NELFFBQVEsSUFBSSxFQUQ1QztBQUFBLE1BQ0dFLE9BREgsU0FDR0EsT0FESDtBQUFBLE1BQ1lDLGdCQURaLFNBQ1lBLGdCQURaLEVBR0o7OztBQUhJLGtCQUlnQyxxQkFBUyxDQUFDSCxRQUFELENBQVQsQ0FKaEM7QUFBQTtBQUFBLE1BSUdJLFVBSkg7QUFBQSxNQUllQyxhQUpmLGtCQU1KO0FBQ0E7OztBQUNBLHdCQUFVLFlBQU07QUFDZCxRQUFJLENBQUNMLFFBQUwsRUFBZTtBQUNmLFFBQU1NLFlBQVksR0FBR0YsVUFBVSxDQUFDLENBQUQsQ0FBL0I7QUFDQSxRQUFJRSxZQUFZLEtBQUtOLFFBQXJCLEVBQStCO0FBQy9CLFFBQU1PLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlILFlBQVosRUFBMEJJLE1BQTFCLENBQWlDLFVBQUFDLEdBQUc7QUFBQSxhQUFJLENBQUNBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLFlBQWYsQ0FBTDtBQUFBLEtBQXBDLENBQWQ7O0FBQ0EsUUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsYUFBVSxDQUFDLHdCQUFRLHlCQUFLRCxDQUFMLEVBQVFQLEtBQVIsQ0FBUixFQUF3Qix5QkFBS1EsQ0FBTCxFQUFRUixLQUFSLENBQXhCLENBQVg7QUFBQSxLQUFuQjs7QUFDQSxRQUFJTCxPQUFPLElBQUksQ0FBQ0MsZ0JBQWhCLEVBQWtDO0FBQUE7O0FBQ2hDLG1DQUFJSCxRQUFRLENBQUNnQixpQkFBYixrREFBSSxzQkFBNEJDLElBQTVCLENBQWlDLFVBQUNDLENBQUQsRUFBSUMsQ0FBSjtBQUFBLGVBQVVOLFVBQVUsQ0FBQ0ssQ0FBRCxFQUFJZCxVQUFVLENBQUNlLENBQUQsQ0FBZCxDQUFwQjtBQUFBLE9BQWpDLENBQUosRUFBOEU7QUFDNUVkLFFBQUFBLGFBQWEsQ0FBQ0wsUUFBUSxDQUFDZ0IsaUJBQVYsQ0FBYjtBQUNEO0FBQ0YsS0FKRCxNQUlPO0FBQ0wsVUFBSUgsVUFBVSxDQUFDUCxZQUFELEVBQWVOLFFBQWYsQ0FBZCxFQUF3QztBQUN0Q0ssUUFBQUEsYUFBYSxDQUFDLENBQUMsNkNBQThCTCxRQUE5QixDQUFELENBQUQsQ0FBYjtBQUNEO0FBQ0YsS0FkYSxDQWVkO0FBQ0E7O0FBQ0QsR0FqQkQsRUFpQkcsQ0FBQ0EsUUFBRCxDQWpCSDtBQW1CQSxNQUFNb0IsS0FBSyxHQUFHO0FBQ1o1QixJQUFBQSxvQkFBb0IsRUFBRTtBQUFBOztBQUFBLFVBQUNDLEtBQUQsdUVBQVMsQ0FBVDtBQUFBLGtDQUFlVyxVQUFVLENBQUNYLEtBQUQsQ0FBekIsaUVBQW9DVyxVQUFVLENBQUMsQ0FBRCxDQUE5QztBQUFBLEtBRFY7QUFFWlAsSUFBQUEsb0JBQW9CLEVBQUUsOEJBQUN3QixZQUFELEVBQTZCO0FBQUEsVUFBZDVCLEtBQWMsdUVBQU4sQ0FBTTtBQUNqRFksTUFBQUEsYUFBYSxDQUFDLFVBQUFpQixjQUFjLEVBQUk7QUFDOUIsWUFBSXBCLE9BQU8sSUFBSSxDQUFDQyxnQkFBaEIsRUFBa0M7QUFDaEMsY0FBTW9CLGNBQWMsdUNBQU9ELGNBQVAsQ0FBcEI7QUFDQUMsVUFBQUEsY0FBYyxDQUFDOUIsS0FBRCxDQUFkLEdBQXdCNEIsWUFBeEI7QUFDQSxpQkFBT0UsY0FBUDtBQUNELFNBSkQsTUFJTztBQUNMLGlCQUFPLENBQUNGLFlBQUQsQ0FBUDtBQUNEO0FBQ0YsT0FSWSxDQUFiO0FBU0Q7QUFaVyxHQUFkO0FBY0Esc0JBQU8sZ0NBQUMsbUJBQUQsQ0FBcUIsUUFBckI7QUFBOEIsSUFBQSxLQUFLLEVBQUVEO0FBQXJDLEtBQTZDbkIsUUFBN0MsQ0FBUDtBQUNELENBaERNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUVmZmVjdCwgY3JlYXRlQ29udGV4dH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoLnBpY2snO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGV9IGZyb20gJ0BkZWNrLmdsL2NvcmUvdHlwZWQnO1xuaW1wb3J0IHtwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5cbmltcG9ydCB7TWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZSA9IHtcbiAgZ2V0SW50ZXJuYWxWaWV3U3RhdGU6IChpbmRleD86IG51bWJlcikgPT4gTWFwVmlld1N0YXRlO1xuICBzZXRJbnRlcm5hbFZpZXdTdGF0ZTogKHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlLCBpbmRleD86IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBNYXBWaWV3U3RhdGVDb250ZXh0OiBSZWFjdC5Db250ZXh0PE1hcFZpZXdTdGF0ZUNvbnRleHRUeXBlPiA9IGNyZWF0ZUNvbnRleHQoe1xuICBnZXRJbnRlcm5hbFZpZXdTdGF0ZTogKGluZGV4ID0gMCkgPT4gKHtsYXRpdHVkZTogMCwgbG9uZ2l0dWRlOiAwLCB6b29tOiAwfSksXG4gIHNldEludGVybmFsVmlld1N0YXRlOiAodmlld1N0YXRlLCBpbmRleCA9IDApID0+IHt9XG59KTtcblxuLyoqXG4gKiBUaGlzIGNvbnRleHQgcHJvdmlkZXIgaXMgdXNlZCB0byBsb2NhbGl6ZSB0aGUgbWFwIHZpZXcgc3RhdGUgc29cbiAqIHRoYXQgY2hhbmdlcyB0byB0aGUgbWFwIHZpZXcgc3RhdGUgZG8gbm90IGFmZmVjdCB0aGUgcmVzdCBvZiB0aGUgYXBwLFxuICogbWFpbmx5IHRvIHByZXZlbnQgaXNzdWVzIHdlIGV4cGVyaWVuY2VkIHdpdGggYmFzZW1hcC9kZWNrIHZpZXdwb3J0IHN5bmNpbmcuXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciA9ICh7XG4gIG1hcFN0YXRlLFxuICBjaGlsZHJlblxufToge1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59KSA9PiB7XG4gIGNvbnN0IHtpc1NwbGl0LCBpc1ZpZXdwb3J0U3luY2VkfSA9IG1hcFN0YXRlIHx8IHt9O1xuXG4gIC8vIFN0b3JlIGxvY2FsbHkgbWFwIHZpZXcgc3RhdGVzIGJ5IG1hcEluZGV4XG4gIGNvbnN0IFt2aWV3U3RhdGVzLCBzZXRWaWV3U3RhdGVzXSA9IHVzZVN0YXRlKFttYXBTdGF0ZV0pO1xuXG4gIC8vIERldGVjdCBhbmQgYXBwbHkgb3V0c2lkZSB2aWV3cG9ydCBjaGFuZ2VzXG4gIC8vIChlLmcuIGZyb20gZ2VvY29kZXIgb3Igd2hlbiBzd2l0Y2hpbmcgdG8gM2QgbW9kZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcFN0YXRlKSByZXR1cm47XG4gICAgY29uc3QgcHJpbWFyeVN0YXRlID0gdmlld1N0YXRlc1swXTtcbiAgICBpZiAocHJpbWFyeVN0YXRlID09PSBtYXBTdGF0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmtleXMocHJpbWFyeVN0YXRlKS5maWx0ZXIoa2V5ID0+ICFrZXkuc3RhcnRzV2l0aCgndHJhbnNpdGlvbicpKTtcbiAgICBjb25zdCBoYXNDaGFuZ2VkID0gKGEsIGIpID0+ICFpc0VxdWFsKHBpY2soYSwgcHJvcHMpLCBwaWNrKGIsIHByb3BzKSk7XG4gICAgaWYgKGlzU3BsaXQgJiYgIWlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAgIGlmIChtYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cz8uc29tZSgocywgaSkgPT4gaGFzQ2hhbmdlZChzLCB2aWV3U3RhdGVzW2ldKSkpIHtcbiAgICAgICAgc2V0Vmlld1N0YXRlcyhtYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyBhcyBNYXBTdGF0ZVtdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhhc0NoYW5nZWQocHJpbWFyeVN0YXRlLCBtYXBTdGF0ZSkpIHtcbiAgICAgICAgc2V0Vmlld1N0YXRlcyhbcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUobWFwU3RhdGUpXSBhcyBNYXBTdGF0ZVtdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gT25seSB1cGRhdGUgaW50ZXJuYWxWaWV3U3RhdGUgd2hlbiB2aWV3U3RhdGUgY2hhbmdlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW21hcFN0YXRlXSk7XG5cbiAgY29uc3QgdmFsdWUgPSB7XG4gICAgZ2V0SW50ZXJuYWxWaWV3U3RhdGU6IChpbmRleCA9IDApID0+IHZpZXdTdGF0ZXNbaW5kZXhdID8/IHZpZXdTdGF0ZXNbMF0sXG4gICAgc2V0SW50ZXJuYWxWaWV3U3RhdGU6IChuZXdWaWV3U3RhdGUsIGluZGV4ID0gMCkgPT4ge1xuICAgICAgc2V0Vmlld1N0YXRlcyhwcmV2Vmlld1N0YXRlcyA9PiB7XG4gICAgICAgIGlmIChpc1NwbGl0ICYmICFpc1ZpZXdwb3J0U3luY2VkKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFZpZXdTdGF0ZXMgPSBbLi4ucHJldlZpZXdTdGF0ZXNdO1xuICAgICAgICAgIG5leHRWaWV3U3RhdGVzW2luZGV4XSA9IG5ld1ZpZXdTdGF0ZSBhcyBNYXBTdGF0ZTtcbiAgICAgICAgICByZXR1cm4gbmV4dFZpZXdTdGF0ZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtuZXdWaWV3U3RhdGVdIGFzIE1hcFN0YXRlW107XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSBhcyBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZTtcbiAgcmV0dXJuIDxNYXBWaWV3U3RhdGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvTWFwVmlld1N0YXRlQ29udGV4dC5Qcm92aWRlcj47XG59O1xuIl19
|
package/dist/maps-layout.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
import { MapState } from '@kepler.gl/types';
|
|
3
|
+
interface MapsLayoutProps {
|
|
4
|
+
mapState: MapState;
|
|
3
5
|
className?: string;
|
|
6
|
+
children?: React.ReactNode;
|
|
4
7
|
}
|
|
5
|
-
declare function MapsLayoutFactory(): React.ComponentType<
|
|
8
|
+
declare function MapsLayoutFactory(): React.ComponentType<MapsLayoutProps>;
|
|
6
9
|
declare namespace MapsLayoutFactory {
|
|
7
10
|
var deps: any[];
|
|
8
11
|
}
|
package/dist/maps-layout.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -43,6 +23,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
43
23
|
|
|
44
24
|
var _react = _interopRequireDefault(require("react"));
|
|
45
25
|
|
|
26
|
+
var _mapViewStateContext = require("./map-view-state-context");
|
|
27
|
+
|
|
46
28
|
var _templateObject;
|
|
47
29
|
|
|
48
30
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
@@ -69,7 +51,9 @@ function MapsLayoutFactory() {
|
|
|
69
51
|
value: function render() {
|
|
70
52
|
return /*#__PURE__*/_react["default"].createElement(Outer, {
|
|
71
53
|
className: this.props.className
|
|
72
|
-
},
|
|
54
|
+
}, /*#__PURE__*/_react["default"].createElement(_mapViewStateContext.MapViewStateContextProvider, {
|
|
55
|
+
mapState: this.props.mapState
|
|
56
|
+
}, this.props.children));
|
|
73
57
|
}
|
|
74
58
|
}]);
|
|
75
59
|
return MapsLayout;
|
|
@@ -77,4 +61,4 @@ function MapsLayoutFactory() {
|
|
|
77
61
|
|
|
78
62
|
return MapsLayout;
|
|
79
63
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXBzLWxheW91dC50c3giXSwibmFtZXMiOlsiT3V0ZXIiLCJzdHlsZWQiLCJkaXYiLCJNYXBzTGF5b3V0RmFjdG9yeSIsImRlcHMiLCJNYXBzTGF5b3V0IiwicHJvcHMiLCJjbGFzc05hbWUiLCJtYXBTdGF0ZSIsImNoaWxkcmVuIiwiUmVhY3QiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUlBOzs7Ozs7OztBQUVBLElBQU1BLEtBQUssR0FBR0MsNkJBQU9DLEdBQVYsa0tBQVg7O0FBT0FDLGlCQUFpQixDQUFDQyxJQUFsQixHQUF5QixFQUF6Qjs7QUFRZSxTQUFTRCxpQkFBVCxHQUFtRTtBQUFBLE1BQzFFRSxVQUQwRTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxhQUU5RSxrQkFBUztBQUNQLDRCQUNFLGdDQUFDLEtBQUQ7QUFBTyxVQUFBLFNBQVMsRUFBRSxLQUFLQyxLQUFMLENBQVdDO0FBQTdCLHdCQUNFLGdDQUFDLGdEQUFEO0FBQTZCLFVBQUEsUUFBUSxFQUFFLEtBQUtELEtBQUwsQ0FBV0U7QUFBbEQsV0FDRyxLQUFLRixLQUFMLENBQVdHLFFBRGQsQ0FERixDQURGO0FBT0Q7QUFWNkU7QUFBQTtBQUFBLElBQ3ZEQyxrQkFBTUMsU0FEaUQ7O0FBWWhGLFNBQU9OLFVBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7TWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyfSBmcm9tICcuL21hcC12aWV3LXN0YXRlLWNvbnRleHQnO1xuXG5jb25zdCBPdXRlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbmA7XG5cbk1hcHNMYXlvdXRGYWN0b3J5LmRlcHMgPSBbXTtcblxuaW50ZXJmYWNlIE1hcHNMYXlvdXRQcm9wcyB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwc0xheW91dEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxNYXBzTGF5b3V0UHJvcHM+IHtcbiAgY2xhc3MgTWFwc0xheW91dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxNYXBzTGF5b3V0UHJvcHM+IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8T3V0ZXIgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZX0+XG4gICAgICAgICAgPE1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciBtYXBTdGF0ZT17dGhpcy5wcm9wcy5tYXBTdGF0ZX0+XG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgPC9PdXRlcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBNYXBzTGF5b3V0O1xufVxuIl19
|
|
@@ -43,20 +43,16 @@ declare namespace ModalContainerFactory {
|
|
|
43
43
|
var deps: (typeof ShareMapModalFactory | (() => React.FC<import("./modals/delete-data-modal").DeleteDatasetModalProps>) | (() => React.FC<{
|
|
44
44
|
mapSaved: string | null;
|
|
45
45
|
title: string;
|
|
46
|
-
cloudProviders: Provider[];
|
|
47
46
|
isProviderLoading: boolean;
|
|
48
|
-
currentProvider: string | null;
|
|
49
47
|
onUpdateImageSetting: (newSetting: Partial<import("@kepler.gl/constants").ExportImage>) => void;
|
|
50
48
|
cleanupExportImage: () => {
|
|
51
49
|
type: "@@kepler.gl/CLEANUP_EXPORT_IMAGE";
|
|
52
50
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
51
|
+
onConfirm: (provider: Provider) => void;
|
|
52
|
+
onCancel: () => void;
|
|
53
|
+
}>) | typeof DataTableModalFactory | typeof LoadDataModalFactory | (() => React.FC<import("react-intl").WithIntlProps<import("./modals/export-image-modal").ExportImageModalProps>> & {
|
|
56
54
|
WrappedComponent: React.ComponentType<import("./modals/export-image-modal").ExportImageModalProps>;
|
|
57
|
-
}) | (() => React.
|
|
58
|
-
forwardedRef?: React.Ref<any> | undefined;
|
|
59
|
-
} & React.RefAttributes<any>> & {
|
|
55
|
+
}) | (() => React.FC<import("react-intl").WithIntlProps<import("./modals/export-data-modal").ExportDataModalProps>> & {
|
|
60
56
|
WrappedComponent: React.ComponentType<import("./modals/export-data-modal").ExportDataModalProps>;
|
|
61
57
|
}) | typeof ExportMapModalFactory | typeof AddMapStyleModalFactory | (() => import("styled-components").StyledComponent<typeof import("./common/modal").ModalDialog, any, {}, never>) | typeof SaveMapModalFactory)[];
|
|
62
58
|
}
|
package/dist/modal-container.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -51,8 +31,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
51
31
|
|
|
52
32
|
var _styledComponents = require("styled-components");
|
|
53
33
|
|
|
54
|
-
var _reselect = require("reselect");
|
|
55
|
-
|
|
56
34
|
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
57
35
|
|
|
58
36
|
var _document = _interopRequireDefault(require("global/document"));
|
|
@@ -99,7 +77,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
99
77
|
|
|
100
78
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
101
79
|
|
|
102
|
-
var DataTableModalStyle = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n top: 70px;\n padding:
|
|
80
|
+
var DataTableModalStyle = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n top: 70px;\n padding: 0;\n width: 90vw;\n max-width: 90vw;\n\n ", " ", ";\n"])), _styles.media.portable(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n "]))), _styles.media.palm(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n margin: 0 auto;\n "]))));
|
|
103
81
|
var smallModalCss = (0, _styledComponents.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 40%;\n padding: 40px 40px 32px 40px;\n"])));
|
|
104
82
|
var LoadDataModalStyle = (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n top: 60px;\n"])));
|
|
105
83
|
var DefaultStyle = (0, _styledComponents.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 960px;\n"])));
|
|
@@ -125,19 +103,6 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
125
103
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "componentDidMount", function () {
|
|
126
104
|
_document["default"].addEventListener('keyup', _this._onKeyUp);
|
|
127
105
|
});
|
|
128
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "cloudProviders", function (props) {
|
|
129
|
-
return props.cloudProviders;
|
|
130
|
-
});
|
|
131
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "providerWithStorage", (0, _reselect.createSelector)(_this.cloudProviders, function (cloudProviders) {
|
|
132
|
-
return cloudProviders.filter(function (p) {
|
|
133
|
-
return p.hasPrivateStorage();
|
|
134
|
-
});
|
|
135
|
-
}));
|
|
136
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "providerWithShare", (0, _reselect.createSelector)(_this.cloudProviders, function (cloudProviders) {
|
|
137
|
-
return cloudProviders.filter(function (p) {
|
|
138
|
-
return p.hasSharingUrl();
|
|
139
|
-
});
|
|
140
|
-
}));
|
|
141
106
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onKeyUp", function (event) {
|
|
142
107
|
var keyCode = event.keyCode;
|
|
143
108
|
|
|
@@ -163,8 +128,7 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
163
128
|
});
|
|
164
129
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onExportImage", function () {
|
|
165
130
|
if (!_this.props.uiState.exportImage.processing) {
|
|
166
|
-
|
|
167
|
-
exportImage(_this.props.uiState.exportImage, "".concat(_this.props.appName, ".png"));
|
|
131
|
+
(0, _utils.exportImage)(_this.props.uiState.exportImage, "".concat(_this.props.appName, ".png"));
|
|
168
132
|
|
|
169
133
|
_this.props.uiStateActions.cleanupExportImage();
|
|
170
134
|
|
|
@@ -203,13 +167,8 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
203
167
|
onError: _this.props.onExportToCloudError
|
|
204
168
|
});
|
|
205
169
|
});
|
|
206
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSaveMap", function () {
|
|
207
|
-
var overwrite = arguments.length >
|
|
208
|
-
var currentProvider = _this.props.providerState.currentProvider; // @ts-ignore
|
|
209
|
-
|
|
210
|
-
var provider = _this.props.cloudProviders.find(function (p) {
|
|
211
|
-
return p.name === currentProvider;
|
|
212
|
-
});
|
|
170
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSaveMap", function (provider) {
|
|
171
|
+
var overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
213
172
|
|
|
214
173
|
_this._exportFileToCloud({
|
|
215
174
|
provider: provider,
|
|
@@ -292,7 +251,10 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
292
251
|
showDatasetTable: visStateActions.showDatasetTable,
|
|
293
252
|
sortTableColumn: visStateActions.sortTableColumn,
|
|
294
253
|
pinTableColumn: visStateActions.pinTableColumn,
|
|
295
|
-
copyTableColumn: visStateActions.copyTableColumn
|
|
254
|
+
copyTableColumn: visStateActions.copyTableColumn,
|
|
255
|
+
setColumnDisplayFormat: visStateActions.setColumnDisplayFormat,
|
|
256
|
+
uiStateActions: uiStateActions,
|
|
257
|
+
uiState: uiState
|
|
296
258
|
}); // TODO: we need to make this width consistent with the css rule defined modal.js:32 max-width: 70vw
|
|
297
259
|
// @ts-ignore // TODO fix this after add types to Theme
|
|
298
260
|
|
|
@@ -330,9 +292,6 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
330
292
|
onClose: this._closeModal,
|
|
331
293
|
onFileUpload: this._onFileUpload,
|
|
332
294
|
onLoadCloudMap: this._onLoadCloudMap,
|
|
333
|
-
cloudProviders: this.providerWithStorage(this.props),
|
|
334
|
-
onSetCloudProvider: this.props.providerActions.setCloudProvider,
|
|
335
|
-
getSavedMaps: this.props.providerActions.getSavedMaps,
|
|
336
295
|
loadFiles: uiState.loadFiles,
|
|
337
296
|
fileLoading: visState.fileLoading,
|
|
338
297
|
fileLoadingProgress: visState.fileLoadingProgress,
|
|
@@ -446,54 +405,38 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
446
405
|
exportImage: uiState.exportImage,
|
|
447
406
|
mapInfo: visState.mapInfo,
|
|
448
407
|
onSetMapInfo: visStateActions.setMapInfo,
|
|
449
|
-
cloudProviders: this.providerWithStorage(this.props),
|
|
450
|
-
onSetCloudProvider: this.props.providerActions.setCloudProvider,
|
|
451
408
|
cleanupExportImage: uiStateActions.cleanupExportImage,
|
|
452
|
-
onUpdateImageSetting: uiStateActions.setExportImageSetting
|
|
409
|
+
onUpdateImageSetting: uiStateActions.setExportImageSetting,
|
|
410
|
+
onCancel: this._closeModal,
|
|
411
|
+
onConfirm: function onConfirm(provider) {
|
|
412
|
+
return _this2._onSaveMap(provider, false);
|
|
413
|
+
}
|
|
453
414
|
}));
|
|
454
415
|
modalProps = {
|
|
455
416
|
title: 'modal.title.saveMap',
|
|
456
417
|
cssStyle: '',
|
|
457
|
-
footer:
|
|
458
|
-
onCancel: this._closeModal,
|
|
459
|
-
onConfirm: function onConfirm() {
|
|
460
|
-
return _this2._onSaveMap(false);
|
|
461
|
-
},
|
|
462
|
-
confirmButton: {
|
|
463
|
-
large: true,
|
|
464
|
-
disabled: uiState.exportImage.processing || !(0, _utils.isValidMapInfo)(visState.mapInfo) || !providerState.currentProvider,
|
|
465
|
-
children: 'modal.button.save'
|
|
466
|
-
}
|
|
418
|
+
footer: false
|
|
467
419
|
};
|
|
468
420
|
break;
|
|
469
421
|
|
|
470
422
|
case _constants.OVERWRITE_MAP_ID:
|
|
471
423
|
template = /*#__PURE__*/_react["default"].createElement(OverWriteMapModal, (0, _extends2["default"])({}, providerState, {
|
|
472
|
-
cloudProviders: this.props.cloudProviders,
|
|
473
424
|
title: (0, _lodash["default"])(visState, ['mapInfo', 'title']),
|
|
474
425
|
onUpdateImageSetting: uiStateActions.setExportImageSetting,
|
|
475
|
-
cleanupExportImage: uiStateActions.cleanupExportImage
|
|
426
|
+
cleanupExportImage: uiStateActions.cleanupExportImage,
|
|
427
|
+
onConfirm: this._onOverwriteMap,
|
|
428
|
+
onCancel: this._closeModal
|
|
476
429
|
}));
|
|
477
430
|
modalProps = {
|
|
478
431
|
title: 'Overwrite Existing File?',
|
|
479
432
|
cssStyle: smallModalCss,
|
|
480
|
-
footer:
|
|
481
|
-
onConfirm: this._onOverwriteMap,
|
|
482
|
-
onCancel: this._closeModal,
|
|
483
|
-
confirmButton: {
|
|
484
|
-
large: true,
|
|
485
|
-
children: 'Yes',
|
|
486
|
-
disabled: uiState.exportImage.processing || !(0, _utils.isValidMapInfo)(visState.mapInfo) || !providerState.currentProvider
|
|
487
|
-
}
|
|
433
|
+
footer: false
|
|
488
434
|
};
|
|
489
435
|
break;
|
|
490
436
|
|
|
491
437
|
case _constants.SHARE_MAP_ID:
|
|
492
438
|
template = /*#__PURE__*/_react["default"].createElement(ShareMapModal, (0, _extends2["default"])({}, providerState, {
|
|
493
|
-
isReady: !uiState.exportImage.processing,
|
|
494
|
-
cloudProviders: this.providerWithShare(this.props),
|
|
495
439
|
onExport: this._onShareMapUrl,
|
|
496
|
-
onSetCloudProvider: this.props.providerActions.setCloudProvider,
|
|
497
440
|
cleanupExportImage: uiStateActions.cleanupExportImage,
|
|
498
441
|
onUpdateImageSetting: uiStateActions.setExportImageSetting
|
|
499
442
|
}));
|
|
@@ -527,4 +470,4 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
527
470
|
|
|
528
471
|
return ModalContainer;
|
|
529
472
|
}
|
|
530
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RhbC1jb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkRhdGFUYWJsZU1vZGFsU3R5bGUiLCJjc3MiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsInNtYWxsTW9kYWxDc3MiLCJMb2FkRGF0YU1vZGFsU3R5bGUiLCJEZWZhdWx0U3R5bGUiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSIsIk92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSIsIkRhdGFUYWJsZU1vZGFsRmFjdG9yeSIsIkxvYWREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0TWFwTW9kYWxGYWN0b3J5IiwiQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkiLCJNb2RhbERpYWxvZ0ZhY3RvcnkiLCJTYXZlTWFwTW9kYWxGYWN0b3J5IiwiU2hhcmVNYXBNb2RhbEZhY3RvcnkiLCJEZWxldGVEYXRhc2V0TW9kYWwiLCJPdmVyV3JpdGVNYXBNb2RhbCIsIkRhdGFUYWJsZU1vZGFsIiwiTG9hZERhdGFNb2RhbCIsIkV4cG9ydEltYWdlTW9kYWwiLCJFeHBvcnREYXRhTW9kYWwiLCJFeHBvcnRNYXBNb2RhbCIsIkFkZE1hcFN0eWxlTW9kYWwiLCJNb2RhbERpYWxvZyIsIlNhdmVNYXBNb2RhbCIsIlNoYXJlTWFwTW9kYWwiLCJNb2RhbENvbnRhaW5lciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVVwIiwicHJvcHMiLCJjbG91ZFByb3ZpZGVycyIsImZpbHRlciIsInAiLCJoYXNQcml2YXRlU3RvcmFnZSIsImhhc1NoYXJpbmdVcmwiLCJldmVudCIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJfY2xvc2VNb2RhbCIsInVpU3RhdGVBY3Rpb25zIiwidG9nZ2xlTW9kYWwiLCJrZXkiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJyZW1vdmVEYXRhc2V0IiwibWFwU3R5bGVBY3Rpb25zIiwiYWRkQ3VzdG9tTWFwU3R5bGUiLCJmaWxlTGlzdCIsImxvYWRGaWxlcyIsInVpU3RhdGUiLCJleHBvcnRJbWFnZSIsInByb2Nlc3NpbmciLCJhcHBOYW1lIiwiY2xlYW51cEV4cG9ydEltYWdlIiwiZXhwb3J0RGF0YSIsImZvcm1hdCIsImV4cG9ydE1hcCIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJleHBvcnRIdG1sIiwiZXhwb3J0SnNvbiIsInByb3ZpZGVyIiwiaXNQdWJsaWMiLCJvdmVyd3JpdGUiLCJjbG9zZU1vZGFsIiwidG9TYXZlIiwicHJvdmlkZXJBY3Rpb25zIiwiZXhwb3J0RmlsZVRvQ2xvdWQiLCJtYXBEYXRhIiwib3B0aW9ucyIsIm9uU3VjY2VzcyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJjdXJyZW50UHJvdmlkZXIiLCJwcm92aWRlclN0YXRlIiwiZmluZCIsIm5hbWUiLCJfZXhwb3J0RmlsZVRvQ2xvdWQiLCJfb25TYXZlTWFwIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInBheWxvYWQiLCJsb2FkQ2xvdWRNYXAiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwibWFwU3R5bGUiLCJtYXBTdGF0ZSIsInZpc1N0YXRlIiwicm9vdE5vZGUiLCJjdXJyZW50TW9kYWwiLCJkYXRhc2V0S2V5VG9SZW1vdmUiLCJkYXRhc2V0cyIsImxheWVycyIsImVkaXRpbmdEYXRhc2V0IiwidGVtcGxhdGUiLCJtb2RhbFByb3BzIiwiaWQiLCJEQVRBX1RBQkxFX0lEIiwid2lkdGgiLCJzaG93RGF0YXNldFRhYmxlIiwic29ydFRhYmxlQ29sdW1uIiwicGluVGFibGVDb2x1bW4iLCJjb3B5VGFibGVDb2x1bW4iLCJjc3NTdHlsZSIsIkRFTEVURV9EQVRBX0lEIiwidGl0bGUiLCJmb290ZXIiLCJvbkNvbmZpcm0iLCJfZGVsZXRlRGF0YXNldCIsIm9uQ2FuY2VsIiwiY29uZmlybUJ1dHRvbiIsIm5lZ2F0aXZlIiwibGFyZ2UiLCJjaGlsZHJlbiIsIkFERF9EQVRBX0lEIiwiX29uRmlsZVVwbG9hZCIsIl9vbkxvYWRDbG91ZE1hcCIsInByb3ZpZGVyV2l0aFN0b3JhZ2UiLCJzZXRDbG91ZFByb3ZpZGVyIiwiZ2V0U2F2ZWRNYXBzIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwiRVhQT1JUX0lNQUdFX0lEIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwiX29uRXhwb3J0SW1hZ2UiLCJkaXNhYmxlZCIsIkVYUE9SVF9EQVRBX0lEIiwiRVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TIiwiYXBwbHlDUFVGaWx0ZXIiLCJzZXRFeHBvcnREYXRhVHlwZSIsInNldEV4cG9ydFNlbGVjdGVkRGF0YXNldCIsInNldEV4cG9ydEZpbHRlcmVkIiwiX29uRXhwb3J0RGF0YSIsIkVYUE9SVF9NQVBfSUQiLCJrZXBsZXJHbENvbmZpZyIsInNjaGVtYSIsImdldENvbmZpZ1RvU2F2ZSIsInNldEV4cG9ydE1hcEZvcm1hdCIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsInNldEV4cG9ydEhUTUxNYXBNb2RlIiwiX29uRXhwb3J0TWFwIiwiQUREX01BUF9TVFlMRV9JRCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwiaW5wdXRTdHlsZSIsImlucHV0TWFwU3R5bGUiLCJsb2FkQ3VzdG9tTWFwU3R5bGUiLCJfb25BZGRDdXN0b21NYXBTdHlsZSIsInN0eWxlIiwiU0FWRV9NQVBfSUQiLCJtYXBJbmZvIiwic2V0TWFwSW5mbyIsIk9WRVJXUklURV9NQVBfSUQiLCJfb25PdmVyd3JpdGVNYXAiLCJTSEFSRV9NQVBfSUQiLCJwcm92aWRlcldpdGhTaGFyZSIsIl9vblNoYXJlTWFwVXJsIiwiX29uQ2xvc2VTYXZlTWFwIiwiQm9vbGVhbiIsImNvbmNhdCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBU0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBR0E7O0FBMEJBOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFNQSxtQkFBbUIsT0FBR0MscUJBQUgsb0xBTXJCQyxjQUFNQyxRQU5lLCtHQVFsQkQsY0FBTUUsSUFSWSxtSUFBekI7QUFhQSxJQUFNQyxhQUFhLE9BQUdKLHFCQUFILDJJQUFuQjtBQUtBLElBQU1LLGtCQUFrQixPQUFHTCxxQkFBSCx5R0FBeEI7QUFJQSxJQUFNTSxZQUFZLE9BQUdOLHFCQUFILGdIQUFsQjtBQTRCQU8scUJBQXFCLENBQUNDLElBQXRCLEdBQTZCLENBQzNCQywyQkFEMkIsRUFFM0JDLDZCQUYyQixFQUczQkMsMEJBSDJCLEVBSTNCQyx5QkFKMkIsRUFLM0JDLDRCQUwyQixFQU0zQkMsMkJBTjJCLEVBTzNCQywwQkFQMkIsRUFRM0JDLDRCQVIyQixFQVMzQkMsdUJBVDJCLEVBVTNCQyx3QkFWMkIsRUFXM0JDLHlCQVgyQixDQUE3Qjs7QUFjZSxTQUFTWixxQkFBVCxDQUNiYSxrQkFEYSxFQUViQyxpQkFGYSxFQUdiQyxjQUhhLEVBSWJDLGFBSmEsRUFLYkMsZ0JBTGEsRUFNYkMsZUFOYSxFQU9iQyxjQVBhLEVBUWJDLGdCQVJhLEVBU2JDLFdBVGEsRUFVYkMsWUFWYSxFQVdiQyxhQVhhLEVBWTJCO0FBQ3hDO0FBRHdDLE1BRWxDQyxjQUZrQztBQUFBOztBQUFBOztBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsNEdBSWxCLFlBQU07QUFDeEJDLDZCQUFTQyxnQkFBVCxDQUEwQixPQUExQixFQUFtQyxNQUFLQyxRQUF4QztBQUNELE9BTnFDO0FBQUEseUdBV3JCLFVBQUNDLEtBQUQ7QUFBQSxlQUFnQ0EsS0FBSyxDQUFDQyxjQUF0QztBQUFBLE9BWHFCO0FBQUEsOEdBWWhCLDhCQUFlLE1BQUtBLGNBQXBCLEVBQW9DLFVBQUFBLGNBQWM7QUFBQSxlQUN0RUEsY0FBYyxDQUFDQyxNQUFmLENBQXNCLFVBQUFDLENBQUM7QUFBQSxpQkFBSUEsQ0FBQyxDQUFDQyxpQkFBRixFQUFKO0FBQUEsU0FBdkIsQ0FEc0U7QUFBQSxPQUFsRCxDQVpnQjtBQUFBLDRHQWVsQiw4QkFBZSxNQUFLSCxjQUFwQixFQUFvQyxVQUFBQSxjQUFjO0FBQUEsZUFDcEVBLGNBQWMsQ0FBQ0MsTUFBZixDQUFzQixVQUFBQyxDQUFDO0FBQUEsaUJBQUlBLENBQUMsQ0FBQ0UsYUFBRixFQUFKO0FBQUEsU0FBdkIsQ0FEb0U7QUFBQSxPQUFsRCxDQWZrQjtBQUFBLG1HQW1CM0IsVUFBQUMsS0FBSyxFQUFJO0FBQ2xCLFlBQU1DLE9BQU8sR0FBR0QsS0FBSyxDQUFDQyxPQUF0Qjs7QUFDQSxZQUFJQSxPQUFPLEtBQUtDLG9CQUFTQyxhQUF6QixFQUF3QztBQUN0QyxnQkFBS0MsV0FBTDtBQUNEO0FBQ0YsT0F4QnFDO0FBQUEsc0dBMEJ4QixZQUFNO0FBQ2xCLGNBQUtWLEtBQUwsQ0FBV1csY0FBWCxDQUEwQkMsV0FBMUIsQ0FBc0MsSUFBdEM7QUFDRCxPQTVCcUM7QUFBQSx5R0E4QnJCLFVBQUFDLEdBQUcsRUFBSTtBQUN0QixjQUFLYixLQUFMLENBQVdjLGVBQVgsQ0FBMkJDLGFBQTNCLENBQXlDRixHQUF6Qzs7QUFDQSxjQUFLSCxXQUFMO0FBQ0QsT0FqQ3FDO0FBQUEsK0dBbUNmLFlBQU07QUFDM0IsY0FBS1YsS0FBTCxDQUFXZ0IsZUFBWCxDQUEyQkMsaUJBQTNCOztBQUNBLGNBQUtQLFdBQUw7QUFDRCxPQXRDcUM7QUFBQSx3R0F3Q3RCLFVBQUFRLFFBQVEsRUFBSTtBQUMxQixjQUFLbEIsS0FBTCxDQUFXYyxlQUFYLENBQTJCSyxTQUEzQixDQUFxQ0QsUUFBckM7QUFDRCxPQTFDcUM7QUFBQSx5R0E0Q3JCLFlBQU07QUFDckIsWUFBSSxDQUFDLE1BQUtsQixLQUFMLENBQVdvQixPQUFYLENBQW1CQyxXQUFuQixDQUErQkMsVUFBcEMsRUFBZ0Q7QUFDOUM7QUFDQUQsVUFBQUEsV0FBVyxDQUFDLE1BQUtyQixLQUFMLENBQVdvQixPQUFYLENBQW1CQyxXQUFwQixZQUFvQyxNQUFLckIsS0FBTCxDQUFXdUIsT0FBL0MsVUFBWDs7QUFDQSxnQkFBS3ZCLEtBQUwsQ0FBV1csY0FBWCxDQUEwQmEsa0JBQTFCOztBQUNBLGdCQUFLZCxXQUFMO0FBQ0Q7QUFDRixPQW5EcUM7QUFBQSx3R0FxRHRCLFlBQU07QUFDcEIsa0NBQVcsTUFBS1YsS0FBaEIsRUFBdUIsTUFBS0EsS0FBTCxDQUFXb0IsT0FBWCxDQUFtQkssVUFBMUM7O0FBQ0EsY0FBS2YsV0FBTDtBQUNELE9BeERxQztBQUFBLHVHQTBEdkIsWUFBTTtBQUFBLFlBQ1pVLE9BRFksR0FDRCxNQUFLcEIsS0FESixDQUNab0IsT0FEWTtBQUFBLFlBRVpNLE1BRlksR0FFRk4sT0FBTyxDQUFDTyxTQUZOLENBRVpELE1BRlk7QUFHbkIsU0FBQ0EsTUFBTSxLQUFLRSw4QkFBbUJDLElBQTlCLEdBQXFDQyxpQkFBckMsR0FBa0RDLGlCQUFuRCxFQUNFLE1BQUsvQixLQURQLEVBRUUsTUFBS0EsS0FBTCxDQUFXb0IsT0FBWCxDQUFtQk8sU0FBbkIsQ0FBNkJELE1BQTdCLEtBQXdDLEVBRjFDOztBQUlBLGNBQUtoQixXQUFMO0FBQ0QsT0FsRXFDO0FBQUEsNkdBb0VqQixnQkFBaUQ7QUFBQSxZQUEvQ3NCLFFBQStDLFFBQS9DQSxRQUErQztBQUFBLFlBQXJDQyxRQUFxQyxRQUFyQ0EsUUFBcUM7QUFBQSxZQUEzQkMsU0FBMkIsUUFBM0JBLFNBQTJCO0FBQUEsWUFBaEJDLFVBQWdCLFFBQWhCQSxVQUFnQjtBQUNwRSxZQUFNQyxNQUFNLEdBQUcsc0JBQVUsTUFBS3BDLEtBQWYsQ0FBZjs7QUFFQSxjQUFLQSxLQUFMLENBQVdxQyxlQUFYLENBQTJCQyxpQkFBM0IsQ0FBNkM7QUFDM0M7QUFDQUMsVUFBQUEsT0FBTyxFQUFFSCxNQUZrQztBQUczQ0osVUFBQUEsUUFBUSxFQUFSQSxRQUgyQztBQUkzQ1EsVUFBQUEsT0FBTyxFQUFFO0FBQ1BQLFlBQUFBLFFBQVEsRUFBUkEsUUFETztBQUVQQyxZQUFBQSxTQUFTLEVBQVRBO0FBRk8sV0FKa0M7QUFRM0NDLFVBQUFBLFVBQVUsRUFBVkEsVUFSMkM7QUFTM0NNLFVBQUFBLFNBQVMsRUFBRSxNQUFLekMsS0FBTCxDQUFXMEMsc0JBVHFCO0FBVTNDQyxVQUFBQSxPQUFPLEVBQUUsTUFBSzNDLEtBQUwsQ0FBVzRDO0FBVnVCLFNBQTdDO0FBWUQsT0FuRnFDO0FBQUEscUdBcUZ6QixZQUF1QjtBQUFBLFlBQXRCVixTQUFzQix1RUFBVixLQUFVO0FBQUEsWUFDM0JXLGVBRDJCLEdBQ1IsTUFBSzdDLEtBQUwsQ0FBVzhDLGFBREgsQ0FDM0JELGVBRDJCLEVBRWxDOztBQUNBLFlBQU1iLFFBQVEsR0FBRyxNQUFLaEMsS0FBTCxDQUFXQyxjQUFYLENBQTBCOEMsSUFBMUIsQ0FBK0IsVUFBQTVDLENBQUM7QUFBQSxpQkFBSUEsQ0FBQyxDQUFDNkMsSUFBRixLQUFXSCxlQUFmO0FBQUEsU0FBaEMsQ0FBakI7O0FBQ0EsY0FBS0ksa0JBQUwsQ0FBd0I7QUFDdEJqQixVQUFBQSxRQUFRLEVBQVJBLFFBRHNCO0FBRXRCQyxVQUFBQSxRQUFRLEVBQUUsS0FGWTtBQUd0QkMsVUFBQUEsU0FBUyxFQUFUQSxTQUhzQjtBQUl0QkMsVUFBQUEsVUFBVSxFQUFFO0FBSlUsU0FBeEI7QUFNRCxPQS9GcUM7QUFBQSwwR0FpR3BCLFlBQU07QUFDdEIsY0FBS2UsVUFBTCxDQUFnQixJQUFoQjtBQUNELE9BbkdxQztBQUFBLHlHQXFHckIsVUFBQWxCLFFBQVEsRUFBSTtBQUMzQixjQUFLaUIsa0JBQUwsQ0FBd0I7QUFBQ2pCLFVBQUFBLFFBQVEsRUFBUkEsUUFBRDtBQUFXQyxVQUFBQSxRQUFRLEVBQUUsSUFBckI7QUFBMkJDLFVBQUFBLFNBQVMsRUFBRSxLQUF0QztBQUE2Q0MsVUFBQUEsVUFBVSxFQUFFO0FBQXpELFNBQXhCO0FBQ0QsT0F2R3FDO0FBQUEsMEdBeUdwQixZQUFNO0FBQ3RCLGNBQUtuQyxLQUFMLENBQVdxQyxlQUFYLENBQTJCYyxtQkFBM0I7O0FBQ0EsY0FBS3pDLFdBQUw7QUFDRCxPQTVHcUM7QUFBQSwwR0E4R3BCLFVBQUEwQyxPQUFPLEVBQUk7QUFDM0IsY0FBS3BELEtBQUwsQ0FBV3FDLGVBQVgsQ0FBMkJnQixZQUEzQixpQ0FDS0QsT0FETDtBQUVFWCxVQUFBQSxTQUFTLEVBQUUsTUFBS3pDLEtBQUwsQ0FBV3NELHFCQUZ4QjtBQUdFWCxVQUFBQSxPQUFPLEVBQUUsTUFBSzNDLEtBQUwsQ0FBV3VEO0FBSHRCO0FBS0QsT0FwSHFDO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsYUFPdEMsZ0NBQXVCO0FBQ3JCMUQsNkJBQVMyRCxtQkFBVCxDQUE2QixPQUE3QixFQUFzQyxLQUFLekQsUUFBM0M7QUFDRDtBQVRxQztBQUFBO0FBQUE7QUFzSHRDO0FBQ0Esd0JBQVM7QUFBQTs7QUFBQSwwQkFZSCxLQUFLQyxLQVpGO0FBQUEsWUFFTHlELFVBRkssZUFFTEEsVUFGSztBQUFBLFlBR0xDLFVBSEssZUFHTEEsVUFISztBQUFBLFlBSUxDLFFBSkssZUFJTEEsUUFKSztBQUFBLFlBS0xDLFFBTEssZUFLTEEsUUFMSztBQUFBLFlBTUx4QyxPQU5LLGVBTUxBLE9BTks7QUFBQSxZQU9MeUMsUUFQSyxlQU9MQSxRQVBLO0FBQUEsWUFRTEMsUUFSSyxlQVFMQSxRQVJLO0FBQUEsWUFTTGhELGVBVEssZUFTTEEsZUFUSztBQUFBLFlBVUxILGNBVkssZUFVTEEsY0FWSztBQUFBLFlBV0xtQyxhQVhLLGVBV0xBLGFBWEs7QUFBQSxZQWFBaUIsWUFiQSxHQWFvQzNDLE9BYnBDLENBYUEyQyxZQWJBO0FBQUEsWUFhY0Msa0JBYmQsR0Fhb0M1QyxPQWJwQyxDQWFjNEMsa0JBYmQ7QUFBQSxZQWNBQyxRQWRBLEdBY29DSixRQWRwQyxDQWNBSSxRQWRBO0FBQUEsWUFjVUMsTUFkVixHQWNvQ0wsUUFkcEMsQ0FjVUssTUFkVjtBQUFBLFlBY2tCQyxjQWRsQixHQWNvQ04sUUFkcEMsQ0Fja0JNLGNBZGxCO0FBZ0JQLFlBQUlDLFFBQTRCLEdBQUcsSUFBbkM7QUFDQSxZQUFJQyxVQUFxQyxHQUFHLEVBQTVDLENBakJPLENBbUJQO0FBQ0E7O0FBQ0EsWUFBSU4sWUFBWSxJQUFJQSxZQUFZLENBQUNPLEVBQTdCLElBQW1DUCxZQUFZLENBQUNLLFFBQXBELEVBQThEO0FBQzVEO0FBQ0E7QUFDQTtBQUNBQSxVQUFBQSxRQUFRLGdCQUFHLGdDQUFDLFlBQUQsQ0FBYyxRQUFkLE9BQVgsQ0FKNEQsQ0FLNUQ7O0FBQ0FDLFVBQUFBLFVBQVUsR0FBR04sWUFBWSxDQUFDTSxVQUExQjtBQUNELFNBUEQsTUFPTztBQUNMLGtCQUFRTixZQUFSO0FBQ0UsaUJBQUtRLHdCQUFMO0FBQ0Usa0JBQU1DLEtBQUssR0FBR2YsVUFBVSxHQUFHLEdBQTNCO0FBQ0FXLGNBQUFBLFFBQVEsZ0JBQ04sZ0NBQUMsY0FBRDtBQUNFLGdCQUFBLFFBQVEsRUFBRUgsUUFEWjtBQUVFLGdCQUFBLE1BQU0sRUFBRUUsY0FGVjtBQUdFLGdCQUFBLGdCQUFnQixFQUFFckQsZUFBZSxDQUFDMkQsZ0JBSHBDO0FBSUUsZ0JBQUEsZUFBZSxFQUFFM0QsZUFBZSxDQUFDNEQsZUFKbkM7QUFLRSxnQkFBQSxjQUFjLEVBQUU1RCxlQUFlLENBQUM2RCxjQUxsQztBQU1FLGdCQUFBLGVBQWUsRUFBRTdELGVBQWUsQ0FBQzhEO0FBTm5DLGdCQURGLENBRkYsQ0FhRTtBQUNBOztBQUNBUCxjQUFBQSxVQUFVLENBQUNRLFFBQVgsT0FBc0JoSCxxQkFBdEIsa0pBQ0lELG1CQURKLEVBRUlFLGNBQU1FLElBRlYseUlBR2F3RyxLQUhiO0FBTUE7O0FBQ0YsaUJBQUtNLHlCQUFMO0FBQ0U7QUFDQSxrQkFBSWQsa0JBQWtCLElBQUlDLFFBQXRCLElBQWtDQSxRQUFRLENBQUNELGtCQUFELENBQTlDLEVBQW9FO0FBQ2xFSSxnQkFBQUEsUUFBUSxnQkFDTixnQ0FBQyxrQkFBRDtBQUFvQixrQkFBQSxPQUFPLEVBQUVILFFBQVEsQ0FBQ0Qsa0JBQUQsQ0FBckM7QUFBMkQsa0JBQUEsTUFBTSxFQUFFRTtBQUFuRSxrQkFERjtBQUdBRyxnQkFBQUEsVUFBVSxHQUFHO0FBQ1hVLGtCQUFBQSxLQUFLLEVBQUUsMkJBREk7QUFFWEYsa0JBQUFBLFFBQVEsRUFBRTVHLGFBRkM7QUFHWCtHLGtCQUFBQSxNQUFNLEVBQUUsSUFIRztBQUlYQyxrQkFBQUEsU0FBUyxFQUFFO0FBQUEsMkJBQU0sTUFBSSxDQUFDQyxjQUFMLENBQW9CbEIsa0JBQXBCLENBQU47QUFBQSxtQkFKQTtBQUtYbUIsa0JBQUFBLFFBQVEsRUFBRSxLQUFLekUsV0FMSjtBQU1YMEUsa0JBQUFBLGFBQWEsRUFBRTtBQUNiQyxvQkFBQUEsUUFBUSxFQUFFLElBREc7QUFFYkMsb0JBQUFBLEtBQUssRUFBRSxJQUZNO0FBR2JDLG9CQUFBQSxRQUFRLEVBQUU7QUFIRztBQU5KLGlCQUFiO0FBWUQ7O0FBQ0Q7QUFBTzs7QUFDVCxpQkFBS0Msc0JBQUw7QUFDRXBCLGNBQUFBLFFBQVEsZ0JBQ04sZ0NBQUMsYUFBRCxnQ0FDTXRCLGFBRE47QUFFRSxnQkFBQSxPQUFPLEVBQUUsS0FBS3BDLFdBRmhCO0FBR0UsZ0JBQUEsWUFBWSxFQUFFLEtBQUsrRSxhQUhyQjtBQUlFLGdCQUFBLGNBQWMsRUFBRSxLQUFLQyxlQUp2QjtBQUtFLGdCQUFBLGNBQWMsRUFBRSxLQUFLQyxtQkFBTCxDQUF5QixLQUFLM0YsS0FBOUIsQ0FMbEI7QUFNRSxnQkFBQSxrQkFBa0IsRUFBRSxLQUFLQSxLQUFMLENBQVdxQyxlQUFYLENBQTJCdUQsZ0JBTmpEO0FBT0UsZ0JBQUEsWUFBWSxFQUFFLEtBQUs1RixLQUFMLENBQVdxQyxlQUFYLENBQTJCd0QsWUFQM0M7QUFRRSxnQkFBQSxTQUFTLEVBQUV6RSxPQUFPLENBQUNELFNBUnJCO0FBU0UsZ0JBQUEsV0FBVyxFQUFFMEMsUUFBUSxDQUFDaUMsV0FUeEI7QUFVRSxnQkFBQSxtQkFBbUIsRUFBRWpDLFFBQVEsQ0FBQ2tDLG1CQVZoQztBQVdFLGdCQUFBLGVBQWUsRUFBRSxrQ0FBbUIsS0FBSy9GLEtBQUwsQ0FBVzZELFFBQTlCLENBWG5CO0FBWUUsZ0JBQUEsY0FBYyxFQUFFLGlDQUFrQixLQUFLN0QsS0FBTCxDQUFXNkQsUUFBN0I7QUFabEIsaUJBREY7QUFnQkFRLGNBQUFBLFVBQVUsR0FBRztBQUNYVSxnQkFBQUEsS0FBSyxFQUFFLDBCQURJO0FBRVhGLGdCQUFBQSxRQUFRLEVBQUUzRyxrQkFGQztBQUdYOEcsZ0JBQUFBLE1BQU0sRUFBRSxLQUhHO0FBSVhDLGdCQUFBQSxTQUFTLEVBQUUsS0FBS3ZFO0FBSkwsZUFBYjtBQU1BOztBQUNGLGlCQUFLc0YsMEJBQUw7QUFDRTVCLGNBQUFBLFFBQVEsZ0JBQ04sZ0NBQUMsZ0JBQUQ7QUFDRSxnQkFBQSxXQUFXLEVBQUVoRCxPQUFPLENBQUNDLFdBRHZCO0FBRUUsZ0JBQUEsSUFBSSxFQUFFb0MsVUFGUjtBQUdFLGdCQUFBLElBQUksRUFBRUMsVUFIUjtBQUlFLGdCQUFBLG9CQUFvQixFQUFFL0MsY0FBYyxDQUFDc0YscUJBSnZDO0FBS0UsZ0JBQUEsa0JBQWtCLEVBQUV0RixjQUFjLENBQUNhO0FBTHJDLGdCQURGO0FBU0E2QyxjQUFBQSxVQUFVLEdBQUc7QUFDWFUsZ0JBQUFBLEtBQUssRUFBRSx5QkFESTtBQUVYRixnQkFBQUEsUUFBUSxFQUFFLEVBRkM7QUFHWEcsZ0JBQUFBLE1BQU0sRUFBRSxJQUhHO0FBSVhHLGdCQUFBQSxRQUFRLEVBQUUsS0FBS3pFLFdBSko7QUFLWHVFLGdCQUFBQSxTQUFTLEVBQUUsS0FBS2lCLGNBTEw7QUFNWGQsZ0JBQUFBLGFBQWEsRUFBRTtBQUNiRSxrQkFBQUEsS0FBSyxFQUFFLElBRE07QUFFYmEsa0JBQUFBLFFBQVEsRUFBRS9FLE9BQU8sQ0FBQ0MsV0FBUixDQUFvQkMsVUFGakI7QUFHYmlFLGtCQUFBQSxRQUFRLEVBQUU7QUFIRztBQU5KLGVBQWI7QUFZQTs7QUFDRixpQkFBS2EseUJBQUw7QUFDRWhDLGNBQUFBLFFBQVEsZ0JBQ04sZ0NBQUMsZUFBRCxnQ0FDTWhELE9BQU8sQ0FBQ0ssVUFEZDtBQUVFLGdCQUFBLGtCQUFrQixFQUFFNEUsbUNBRnRCO0FBR0UsZ0JBQUEsUUFBUSxFQUFFcEMsUUFIWjtBQUlFLGdCQUFBLGNBQWMsRUFBRSxLQUFLakUsS0FBTCxDQUFXYyxlQUFYLENBQTJCd0YsY0FKN0M7QUFLRSxnQkFBQSxzQkFBc0IsRUFBRTNGLGNBQWMsQ0FBQzRGLGlCQUx6QztBQU1FLGdCQUFBLDZCQUE2QixFQUFFNUYsY0FBYyxDQUFDNkYsd0JBTmhEO0FBT0UsZ0JBQUEsc0JBQXNCLEVBQUU3RixjQUFjLENBQUM4RjtBQVB6QyxpQkFERjtBQVdBcEMsY0FBQUEsVUFBVSxHQUFHO0FBQ1hVLGdCQUFBQSxLQUFLLEVBQUUsd0JBREk7QUFFWEYsZ0JBQUFBLFFBQVEsRUFBRSxFQUZDO0FBR1hHLGdCQUFBQSxNQUFNLEVBQUUsSUFIRztBQUlYRyxnQkFBQUEsUUFBUSxFQUFFLEtBQUt6RSxXQUpKO0FBS1h1RSxnQkFBQUEsU0FBUyxFQUFFLEtBQUt5QixhQUxMO0FBTVh0QixnQkFBQUEsYUFBYSxFQUFFO0FBQ2JFLGtCQUFBQSxLQUFLLEVBQUUsSUFETTtBQUViQyxrQkFBQUEsUUFBUSxFQUFFO0FBRkc7QUFOSixlQUFiO0FBV0E7O0FBQ0YsaUJBQUtvQix3QkFBTDtBQUNFLGtCQUFNQyxjQUFjLEdBQUcvQyxRQUFRLENBQUNnRCxNQUFULENBQWdCQyxlQUFoQixDQUFnQztBQUNyRG5ELGdCQUFBQSxRQUFRLEVBQVJBLFFBRHFEO0FBRXJERSxnQkFBQUEsUUFBUSxFQUFSQSxRQUZxRDtBQUdyREQsZ0JBQUFBLFFBQVEsRUFBUkEsUUFIcUQ7QUFJckR4QyxnQkFBQUEsT0FBTyxFQUFQQTtBQUpxRCxlQUFoQyxDQUF2QjtBQU1BZ0QsY0FBQUEsUUFBUSxnQkFDTixnQ0FBQyxjQUFEO0FBQ0UsZ0JBQUEsTUFBTSxFQUFFd0MsY0FEVjtBQUVFLGdCQUFBLE9BQU8sRUFBRXhGLE9BQU8sQ0FBQ08sU0FGbkI7QUFHRSxnQkFBQSx1QkFBdUIsRUFBRWhCLGNBQWMsQ0FBQ29HLGtCQUgxQztBQUlFLGdCQUFBLDJCQUEyQixFQUFFcEcsY0FBYyxDQUFDcUcsd0JBSjlDO0FBS0UsZ0JBQUEseUJBQXlCLEVBQUVyRyxjQUFjLENBQUNzRztBQUw1QyxnQkFERjtBQVNBNUMsY0FBQUEsVUFBVSxHQUFHO0FBQ1hVLGdCQUFBQSxLQUFLLEVBQUUsdUJBREk7QUFFWEYsZ0JBQUFBLFFBQVEsRUFBRSxFQUZDO0FBR1hHLGdCQUFBQSxNQUFNLEVBQUUsSUFIRztBQUlYRyxnQkFBQUEsUUFBUSxFQUFFLEtBQUt6RSxXQUpKO0FBS1h1RSxnQkFBQUEsU0FBUyxFQUFFLEtBQUtpQyxZQUxMO0FBTVg5QixnQkFBQUEsYUFBYSxFQUFFO0FBQ2JFLGtCQUFBQSxLQUFLLEVBQUUsSUFETTtBQUViQyxrQkFBQUEsUUFBUSxFQUFFO0FBRkc7QUFOSixlQUFiO0FBV0E7O0FBQ0YsaUJBQUs0QiwyQkFBTDtBQUNFL0MsY0FBQUEsUUFBUSxnQkFDTixnQ0FBQyxnQkFBRDtBQUNFLGdCQUFBLG9CQUFvQixFQUFFLEtBQUtwRSxLQUFMLENBQVdvSCxvQkFEbkM7QUFFRSxnQkFBQSxZQUFZLEVBQUUsS0FBS3BILEtBQUwsQ0FBV3FILFlBRjNCO0FBR0UsZ0JBQUEsUUFBUSxFQUFFLEtBQUtySCxLQUFMLENBQVc0RCxRQUh2QjtBQUlFLGdCQUFBLFVBQVUsRUFBRUQsUUFBUSxDQUFDMkQsVUFKdkI7QUFLRSxnQkFBQSxhQUFhLEVBQUUsS0FBS3RILEtBQUwsQ0FBV2dCLGVBQVgsQ0FBMkJ1RyxhQUw1QztBQU1FLGdCQUFBLGtCQUFrQixFQUFFLEtBQUt2SCxLQUFMLENBQVdnQixlQUFYLENBQTJCd0c7QUFOakQsZ0JBREY7QUFVQW5ELGNBQUFBLFVBQVUsR0FBRztBQUNYVSxnQkFBQUEsS0FBSyxFQUFFLGtDQURJO0FBRVhGLGdCQUFBQSxRQUFRLEVBQUUsRUFGQztBQUdYRyxnQkFBQUEsTUFBTSxFQUFFLElBSEc7QUFJWEcsZ0JBQUFBLFFBQVEsRUFBRSxLQUFLekUsV0FKSjtBQUtYdUUsZ0JBQUFBLFNBQVMsRUFBRSxLQUFLd0Msb0JBTEw7QUFNWHJDLGdCQUFBQSxhQUFhLEVBQUU7QUFDYkUsa0JBQUFBLEtBQUssRUFBRSxJQURNO0FBRWJhLGtCQUFBQSxRQUFRLEVBQUUsQ0FBQ3hDLFFBQVEsQ0FBQzJELFVBQVQsQ0FBb0JJLEtBRmxCO0FBR2JuQyxrQkFBQUEsUUFBUSxFQUFFO0FBSEc7QUFOSixlQUFiO0FBWUE7O0FBQ0YsaUJBQUtvQyxzQkFBTDtBQUNFdkQsY0FBQUEsUUFBUSxnQkFDTixnQ0FBQyxZQUFELGdDQUNNdEIsYUFETjtBQUVFLGdCQUFBLFdBQVcsRUFBRTFCLE9BQU8sQ0FBQ0MsV0FGdkI7QUFHRSxnQkFBQSxPQUFPLEVBQUV3QyxRQUFRLENBQUMrRCxPQUhwQjtBQUlFLGdCQUFBLFlBQVksRUFBRTlHLGVBQWUsQ0FBQytHLFVBSmhDO0FBS0UsZ0JBQUEsY0FBYyxFQUFFLEtBQUtsQyxtQkFBTCxDQUF5QixLQUFLM0YsS0FBOUIsQ0FMbEI7QUFNRSxnQkFBQSxrQkFBa0IsRUFBRSxLQUFLQSxLQUFMLENBQVdxQyxlQUFYLENBQTJCdUQsZ0JBTmpEO0FBT0UsZ0JBQUEsa0JBQWtCLEVBQUVqRixjQUFjLENBQUNhLGtCQVByQztBQVFFLGdCQUFBLG9CQUFvQixFQUFFYixjQUFjLENBQUNzRjtBQVJ2QyxpQkFERjtBQVlBNUIsY0FBQUEsVUFBVSxHQUFHO0FBQ1hVLGdCQUFBQSxLQUFLLEVBQUUscUJBREk7QUFFWEYsZ0JBQUFBLFFBQVEsRUFBRSxFQUZDO0FBR1hHLGdCQUFBQSxNQUFNLEVBQUUsSUFIRztBQUlYRyxnQkFBQUEsUUFBUSxFQUFFLEtBQUt6RSxXQUpKO0FBS1h1RSxnQkFBQUEsU0FBUyxFQUFFO0FBQUEseUJBQU0sTUFBSSxDQUFDL0IsVUFBTCxDQUFnQixLQUFoQixDQUFOO0FBQUEsaUJBTEE7QUFNWGtDLGdCQUFBQSxhQUFhLEVBQUU7QUFDYkUsa0JBQUFBLEtBQUssRUFBRSxJQURNO0FBRWJhLGtCQUFBQSxRQUFRLEVBQ04vRSxPQUFPLENBQUNDLFdBQVIsQ0FBb0JDLFVBQXBCLElBQ0EsQ0FBQywyQkFBZXVDLFFBQVEsQ0FBQytELE9BQXhCLENBREQsSUFFQSxDQUFDOUUsYUFBYSxDQUFDRCxlQUxKO0FBTWIwQyxrQkFBQUEsUUFBUSxFQUFFO0FBTkc7QUFOSixlQUFiO0FBZUE7O0FBQ0YsaUJBQUt1QywyQkFBTDtBQUNFMUQsY0FBQUEsUUFBUSxnQkFDTixnQ0FBQyxpQkFBRCxnQ0FDTXRCLGFBRE47QUFFRSxnQkFBQSxjQUFjLEVBQUUsS0FBSzlDLEtBQUwsQ0FBV0MsY0FGN0I7QUFHRSxnQkFBQSxLQUFLLEVBQUUsd0JBQUk0RCxRQUFKLEVBQWMsQ0FBQyxTQUFELEVBQVksT0FBWixDQUFkLENBSFQ7QUFJRSxnQkFBQSxvQkFBb0IsRUFBRWxELGNBQWMsQ0FBQ3NGLHFCQUp2QztBQUtFLGdCQUFBLGtCQUFrQixFQUFFdEYsY0FBYyxDQUFDYTtBQUxyQyxpQkFERjtBQVNBNkMsY0FBQUEsVUFBVSxHQUFHO0FBQ1hVLGdCQUFBQSxLQUFLLEVBQUUsMEJBREk7QUFFWEYsZ0JBQUFBLFFBQVEsRUFBRTVHLGFBRkM7QUFHWCtHLGdCQUFBQSxNQUFNLEVBQUUsSUFIRztBQUlYQyxnQkFBQUEsU0FBUyxFQUFFLEtBQUs4QyxlQUpMO0FBS1g1QyxnQkFBQUEsUUFBUSxFQUFFLEtBQUt6RSxXQUxKO0FBTVgwRSxnQkFBQUEsYUFBYSxFQUFFO0FBQ2JFLGtCQUFBQSxLQUFLLEVBQUUsSUFETTtBQUViQyxrQkFBQUEsUUFBUSxFQUFFLEtBRkc7QUFHYlksa0JBQUFBLFFBQVEsRUFDTi9FLE9BQU8sQ0FBQ0MsV0FBUixDQUFvQkMsVUFBcEIsSUFDQSxDQUFDLDJCQUFldUMsUUFBUSxDQUFDK0QsT0FBeEIsQ0FERCxJQUVBLENBQUM5RSxhQUFhLENBQUNEO0FBTko7QUFOSixlQUFiO0FBZUE7O0FBQ0YsaUJBQUttRix1QkFBTDtBQUNFNUQsY0FBQUEsUUFBUSxnQkFDTixnQ0FBQyxhQUFELGdDQUNNdEIsYUFETjtBQUVFLGdCQUFBLE9BQU8sRUFBRSxDQUFDMUIsT0FBTyxDQUFDQyxXQUFSLENBQW9CQyxVQUZoQztBQUdFLGdCQUFBLGNBQWMsRUFBRSxLQUFLMkcsaUJBQUwsQ0FBdUIsS0FBS2pJLEtBQTVCLENBSGxCO0FBSUUsZ0JBQUEsUUFBUSxFQUFFLEtBQUtrSSxjQUpqQjtBQUtFLGdCQUFBLGtCQUFrQixFQUFFLEtBQUtsSSxLQUFMLENBQVdxQyxlQUFYLENBQTJCdUQsZ0JBTGpEO0FBTUUsZ0JBQUEsa0JBQWtCLEVBQUVqRixjQUFjLENBQUNhLGtCQU5yQztBQU9FLGdCQUFBLG9CQUFvQixFQUFFYixjQUFjLENBQUNzRjtBQVB2QyxpQkFERjtBQVdBNUIsY0FBQUEsVUFBVSxHQUFHO0FBQ1hVLGdCQUFBQSxLQUFLLEVBQUUsc0JBREk7QUFFWEYsZ0JBQUFBLFFBQVEsRUFBRSxFQUZDO0FBR1hNLGdCQUFBQSxRQUFRLEVBQUUsS0FBS2dEO0FBSEosZUFBYjtBQUtBOztBQUNGO0FBQ0U7QUFoUEo7QUFrUEQ7O0FBRUQsZUFBT3JFLFFBQVEsZ0JBQ2IsZ0NBQUMsV0FBRDtBQUNFLFVBQUEsY0FBYyxFQUFFO0FBQUEsbUJBQU0sMkJBQVlBLFFBQVosQ0FBTjtBQUFBLFdBRGxCO0FBRUUsVUFBQSxNQUFNLEVBQUVzRSxPQUFPLENBQUNyRSxZQUFELENBRmpCO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBS3JEO0FBSGpCLFdBSU0yRCxVQUpOO0FBS0UsVUFBQSxRQUFRLEVBQUVsRyxZQUFZLENBQUNrSyxNQUFiLENBQW9CaEUsVUFBVSxDQUFDUSxRQUEvQjtBQUxaLFlBT0dULFFBUEgsQ0FEYSxHQVVYLElBVko7QUFXRDtBQUNEOztBQXBac0M7QUFBQTtBQUFBLElBRVhrRSxnQkFGVzs7QUF1WnhDLFNBQU8xSSxjQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IGRvY3VtZW50IGZyb20gJ2dsb2JhbC9kb2N1bWVudCc7XG5cbmltcG9ydCBNb2RhbERpYWxvZ0ZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbW9kYWwtZGlhbG9nJztcbmltcG9ydCB7ZXhwb3J0SHRtbCwgaXNWYWxpZE1hcEluZm8sIGV4cG9ydE1hcCwgZXhwb3J0SnNvbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1xuICBleHBvcnREYXRhLFxuICBnZXRGaWxlRm9ybWF0TmFtZXMsXG4gIGdldEZpbGVFeHRlbnNpb25zLFxuICBNYXBTdHlsZSxcbiAgUHJvdmlkZXJTdGF0ZVxufSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuLy8gbW9kYWxzXG5pbXBvcnQgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kZWxldGUtZGF0YS1tb2RhbCc7XG5pbXBvcnQgT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL292ZXJ3cml0ZS1tYXAtbW9kYWwnO1xuaW1wb3J0IERhdGFUYWJsZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kYXRhLXRhYmxlLW1vZGFsJztcbmltcG9ydCBMb2FkRGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9sb2FkLWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtZGF0YS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0TWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvZXhwb3J0LW1hcC1tb2RhbCc7XG5pbXBvcnQgQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvYWRkLW1hcC1zdHlsZS1tb2RhbCc7XG5pbXBvcnQgU2F2ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9zYXZlLW1hcC1tb2RhbCc7XG5pbXBvcnQgU2hhcmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsJztcblxuLy8gQnJlYWtwb2ludHNcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcblxuLy8gVGVtcGxhdGVcbmltcG9ydCB7XG4gIEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyxcbiAgRVhQT1JUX01BUF9GT1JNQVRTLFxuICBLZXlFdmVudCxcbiAgQUREX0RBVEFfSUQsXG4gIERBVEFfVEFCTEVfSUQsXG4gIERFTEVURV9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9JRCxcbiAgRVhQT1JUX0lNQUdFX0lELFxuICBFWFBPUlRfTUFQX0lELFxuICBBRERfTUFQX1NUWUxFX0lELFxuICBTQVZFX01BUF9JRCxcbiAgU0hBUkVfTUFQX0lELFxuICBPVkVSV1JJVEVfTUFQX0lEXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtNYXBTdGF0ZSwgVWlTdGF0ZSwgT25TdWNjZXNzQ2FsbEJhY2ssIE9uRXJyb3JDYWxsQmFja30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7XG4gIFZpc1N0YXRlQWN0aW9ucyxcbiAgVUlTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge01vZGFsRGlhbG9nUHJvcHN9IGZyb20gJy4vY29tbW9uL21vZGFsJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7ZmluZERPTU5vZGV9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5jb25zdCBEYXRhVGFibGVNb2RhbFN0eWxlID0gY3NzYFxuICB0b3A6IDcwcHg7XG4gIHBhZGRpbmc6IDMycHggMCAwIDA7XG4gIHdpZHRoOiA5MHZ3O1xuICBtYXgtd2lkdGg6IDkwdnc7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBwYWRkaW5nOiAwO1xuICBgfSAke21lZGlhLnBhbG1gXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgYH07XG5gO1xuY29uc3Qgc21hbGxNb2RhbENzcyA9IGNzc2BcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZzogNDBweCA0MHB4IDMycHggNDBweDtcbmA7XG5cbmNvbnN0IExvYWREYXRhTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA2MHB4O1xuYDtcblxuY29uc3QgRGVmYXVsdFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICByb290Tm9kZTogUmVhY3QuUmVhY3RJbnN0YW5jZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgY29udGFpbmVySDogbnVtYmVyO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG4gIG9uU2F2ZVRvU3RvcmFnZT86ICgpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2Vzcz86IE9uU3VjY2Vzc0NhbGxCYWNrO1xuICBvbkV4cG9ydFRvQ2xvdWRFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbn07XG5cbk1vZGFsQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW1xuICBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5LFxuICBPdmVyV3JpdGVNYXBNb2RhbEZhY3RvcnksXG4gIERhdGFUYWJsZU1vZGFsRmFjdG9yeSxcbiAgTG9hZERhdGFNb2RhbEZhY3RvcnksXG4gIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5LFxuICBFeHBvcnREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRNYXBNb2RhbEZhY3RvcnksXG4gIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5LFxuICBNb2RhbERpYWxvZ0ZhY3RvcnksXG4gIFNhdmVNYXBNb2RhbEZhY3RvcnksXG4gIFNoYXJlTWFwTW9kYWxGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb2RhbENvbnRhaW5lckZhY3RvcnkoXG4gIERlbGV0ZURhdGFzZXRNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeT4sXG4gIE92ZXJXcml0ZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBPdmVyV3JpdGVNYXBNb2RhbEZhY3Rvcnk+LFxuICBEYXRhVGFibGVNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlTW9kYWxGYWN0b3J5PixcbiAgTG9hZERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgTG9hZERhdGFNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnRJbWFnZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydE1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRNYXBNb2RhbEZhY3Rvcnk+LFxuICBBZGRNYXBTdHlsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeT4sXG4gIE1vZGFsRGlhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbERpYWxvZ0ZhY3Rvcnk+LFxuICBTYXZlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIFNhdmVNYXBNb2RhbEZhY3Rvcnk+LFxuICBTaGFyZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTaGFyZU1hcE1vZGFsRmFjdG9yeT5cbik6IFJlYWN0LkVsZW1lbnRUeXBlPE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4gKi9cbiAgY2xhc3MgTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4ge1xuICAgIC8vIFRPRE8gLSByZW1vdmUgd2hlbiBwcm9wIHR5cGVzIGFyZSBmdWxseSBleHBvcnRlZFxuICAgIGNvbXBvbmVudERpZE1vdW50ID0gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9O1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9XG5cbiAgICBjbG91ZFByb3ZpZGVycyA9IChwcm9wczogTW9kYWxDb250YWluZXJQcm9wcykgPT4gcHJvcHMuY2xvdWRQcm92aWRlcnM7XG4gICAgcHJvdmlkZXJXaXRoU3RvcmFnZSA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuY2xvdWRQcm92aWRlcnMsIGNsb3VkUHJvdmlkZXJzID0+XG4gICAgICBjbG91ZFByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmhhc1ByaXZhdGVTdG9yYWdlKCkpXG4gICAgKTtcbiAgICBwcm92aWRlcldpdGhTaGFyZSA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuY2xvdWRQcm92aWRlcnMsIGNsb3VkUHJvdmlkZXJzID0+XG4gICAgICBjbG91ZFByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmhhc1NoYXJpbmdVcmwoKSlcbiAgICApO1xuXG4gICAgX29uS2V5VXAgPSBldmVudCA9PiB7XG4gICAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAgIGlmIChrZXlDb2RlID09PSBLZXlFdmVudC5ET01fVktfRVNDQVBFKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX2Nsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsKG51bGwpO1xuICAgIH07XG5cbiAgICBfZGVsZXRlRGF0YXNldCA9IGtleSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0KGtleSk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkFkZEN1c3RvbU1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuYWRkQ3VzdG9tTWFwU3R5bGUoKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uRmlsZVVwbG9hZCA9IGZpbGVMaXN0ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLmxvYWRGaWxlcyhmaWxlTGlzdCk7XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydEltYWdlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZykge1xuICAgICAgICAvLyBAdHMtaWdub3JlIFRPRE86IGZpeCBleHBvcnRJbWFnZSBtZXRob2RcbiAgICAgICAgZXhwb3J0SW1hZ2UodGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLCBgJHt0aGlzLnByb3BzLmFwcE5hbWV9LnBuZ2ApO1xuICAgICAgICB0aGlzLnByb3BzLnVpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZSgpO1xuICAgICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydERhdGEgPSAoKSA9PiB7XG4gICAgICBleHBvcnREYXRhKHRoaXMucHJvcHMsIHRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnREYXRhKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uRXhwb3J0TWFwID0gKCkgPT4ge1xuICAgICAgY29uc3Qge3VpU3RhdGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtmb3JtYXR9ID0gdWlTdGF0ZS5leHBvcnRNYXA7XG4gICAgICAoZm9ybWF0ID09PSBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTCA/IGV4cG9ydEh0bWwgOiBleHBvcnRKc29uKShcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydE1hcFtmb3JtYXRdIHx8IHt9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfZXhwb3J0RmlsZVRvQ2xvdWQgPSAoe3Byb3ZpZGVyLCBpc1B1YmxpYywgb3ZlcndyaXRlLCBjbG9zZU1vZGFsfSkgPT4ge1xuICAgICAgY29uc3QgdG9TYXZlID0gZXhwb3J0TWFwKHRoaXMucHJvcHMpO1xuXG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgbWFwRGF0YTogdG9TYXZlLFxuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGlzUHVibGljLFxuICAgICAgICAgIG92ZXJ3cml0ZVxuICAgICAgICB9LFxuICAgICAgICBjbG9zZU1vZGFsLFxuICAgICAgICBvblN1Y2Nlc3M6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgICAgICAgb25FcnJvcjogdGhpcy5wcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vblNhdmVNYXAgPSAob3ZlcndyaXRlID0gZmFsc2UpID0+IHtcbiAgICAgIGNvbnN0IHtjdXJyZW50UHJvdmlkZXJ9ID0gdGhpcy5wcm9wcy5wcm92aWRlclN0YXRlO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnByb3BzLmNsb3VkUHJvdmlkZXJzLmZpbmQocCA9PiBwLm5hbWUgPT09IGN1cnJlbnRQcm92aWRlcik7XG4gICAgICB0aGlzLl9leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgIG92ZXJ3cml0ZSxcbiAgICAgICAgY2xvc2VNb2RhbDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vbk92ZXJ3cml0ZU1hcCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX29uU2F2ZU1hcCh0cnVlKTtcbiAgICB9O1xuXG4gICAgX29uU2hhcmVNYXBVcmwgPSBwcm92aWRlciA9PiB7XG4gICAgICB0aGlzLl9leHBvcnRGaWxlVG9DbG91ZCh7cHJvdmlkZXIsIGlzUHVibGljOiB0cnVlLCBvdmVyd3JpdGU6IGZhbHNlLCBjbG9zZU1vZGFsOiBmYWxzZX0pO1xuICAgIH07XG5cbiAgICBfb25DbG9zZVNhdmVNYXAgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5yZXNldFByb3ZpZGVyU3RhdHVzKCk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkxvYWRDbG91ZE1hcCA9IHBheWxvYWQgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMubG9hZENsb3VkTWFwKHtcbiAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgb25TdWNjZXNzOiB0aGlzLnByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgICAgICAgb25FcnJvcjogdGhpcy5wcm9wcy5vbkxvYWRDbG91ZE1hcEVycm9yXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29udGFpbmVyVyxcbiAgICAgICAgY29udGFpbmVySCxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlLFxuICAgICAgICB1aVN0YXRlLFxuICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgcm9vdE5vZGUsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHByb3ZpZGVyU3RhdGVcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2N1cnJlbnRNb2RhbCwgZGF0YXNldEtleVRvUmVtb3ZlfSA9IHVpU3RhdGU7XG4gICAgICBjb25zdCB7ZGF0YXNldHMsIGxheWVycywgZWRpdGluZ0RhdGFzZXR9ID0gdmlzU3RhdGU7XG5cbiAgICAgIGxldCB0ZW1wbGF0ZTogSlNYLkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICAgIGxldCBtb2RhbFByb3BzOiBQYXJ0aWFsPE1vZGFsRGlhbG9nUHJvcHM+ID0ge307XG5cbiAgICAgIC8vIFRPRE8gLSBjdXJyZW50TW9kYWwgaXMgYSBzdHJpbmdcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChjdXJyZW50TW9kYWwgJiYgY3VycmVudE1vZGFsLmlkICYmIGN1cnJlbnRNb2RhbC50ZW1wbGF0ZSkge1xuICAgICAgICAvLyBpZiBjdXJyZW50TWRvYWwgdGVtcGxhdGUgaXMgYWxyZWFkeSBwcm92aWRlZFxuICAgICAgICAvLyBUT0RPOiBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGVtcGxhdGUgaXMgdmFsaWRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0ZW1wbGF0ZSA9IDxjdXJyZW50TW9kYWwudGVtcGxhdGUgLz47XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgbW9kYWxQcm9wcyA9IGN1cnJlbnRNb2RhbC5tb2RhbFByb3BzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChjdXJyZW50TW9kYWwpIHtcbiAgICAgICAgICBjYXNlIERBVEFfVEFCTEVfSUQ6XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclcgKiAwLjk7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPERhdGFUYWJsZU1vZGFsXG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17ZWRpdGluZ0RhdGFzZXR9XG4gICAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17dmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuc29ydFRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHBpblRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMucGluVGFibGVDb2x1bW59XG4gICAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuY29weVRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gVE9ETzogd2UgbmVlZCB0byBtYWtlIHRoaXMgd2lkdGggY29uc2lzdGVudCB3aXRoIHRoZSBjc3MgcnVsZSBkZWZpbmVkIG1vZGFsLmpzOjMyIG1heC13aWR0aDogNzB2d1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSAvLyBUT0RPIGZpeCB0aGlzIGFmdGVyIGFkZCB0eXBlcyB0byBUaGVtZVxuICAgICAgICAgICAgbW9kYWxQcm9wcy5jc3NTdHlsZSA9IGNzc2BcbiAgICAgICAgICAgICAgJHtEYXRhVGFibGVNb2RhbFN0eWxlfTtcbiAgICAgICAgICAgICAgJHttZWRpYS5wYWxtYFxuICAgICAgICAgICAgICAgIHdpZHRoOiAke3dpZHRofXB4O1xuICAgICAgICAgICAgICBgfTtcbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIERFTEVURV9EQVRBX0lEOlxuICAgICAgICAgICAgLy8gdmFsaWRhdGUgb3B0aW9uc1xuICAgICAgICAgICAgaWYgKGRhdGFzZXRLZXlUb1JlbW92ZSAmJiBkYXRhc2V0cyAmJiBkYXRhc2V0c1tkYXRhc2V0S2V5VG9SZW1vdmVdKSB7XG4gICAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICAgIDxEZWxldGVEYXRhc2V0TW9kYWwgZGF0YXNldD17ZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXX0gbGF5ZXJzPXtsYXllcnN9IC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5kZWxldGVEYXRhc2V0JyxcbiAgICAgICAgICAgICAgICBjc3NTdHlsZTogc21hbGxNb2RhbENzcyxcbiAgICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiAoKSA9PiB0aGlzLl9kZWxldGVEYXRhc2V0KGRhdGFzZXRLZXlUb1JlbW92ZSksXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgICAgbmVnYXRpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmRlbGV0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhazsgLy8gaW4gY2FzZSB3ZSBhZGQgYSBuZXcgY2FzZSBhZnRlciB0aGlzIG9uZVxuICAgICAgICAgIGNhc2UgQUREX0RBVEFfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPExvYWREYXRhTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgIG9uRmlsZVVwbG9hZD17dGhpcy5fb25GaWxlVXBsb2FkfVxuICAgICAgICAgICAgICAgIG9uTG9hZENsb3VkTWFwPXt0aGlzLl9vbkxvYWRDbG91ZE1hcH1cbiAgICAgICAgICAgICAgICBjbG91ZFByb3ZpZGVycz17dGhpcy5wcm92aWRlcldpdGhTdG9yYWdlKHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICAgIG9uU2V0Q2xvdWRQcm92aWRlcj17dGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMuc2V0Q2xvdWRQcm92aWRlcn1cbiAgICAgICAgICAgICAgICBnZXRTYXZlZE1hcHM9e3RoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmdldFNhdmVkTWFwc31cbiAgICAgICAgICAgICAgICBsb2FkRmlsZXM9e3VpU3RhdGUubG9hZEZpbGVzfVxuICAgICAgICAgICAgICAgIGZpbGVMb2FkaW5nPXt2aXNTdGF0ZS5maWxlTG9hZGluZ31cbiAgICAgICAgICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzPXt2aXNTdGF0ZS5maWxlTG9hZGluZ1Byb2dyZXNzfVxuICAgICAgICAgICAgICAgIGZpbGVGb3JtYXROYW1lcz17Z2V0RmlsZUZvcm1hdE5hbWVzKHRoaXMucHJvcHMudmlzU3RhdGUpfVxuICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zPXtnZXRGaWxlRXh0ZW5zaW9ucyh0aGlzLnByb3BzLnZpc1N0YXRlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZERhdGFUb01hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiBMb2FkRGF0YU1vZGFsU3R5bGUsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2UsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fY2xvc2VNb2RhbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0lNQUdFX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRJbWFnZU1vZGFsXG4gICAgICAgICAgICAgICAgZXhwb3J0SW1hZ2U9e3VpU3RhdGUuZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgbWFwVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICBtYXBIPXtjb250YWluZXJIfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnRJbWFnZScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydEltYWdlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kb3dubG9hZCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0RBVEFfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi51aVN0YXRlLmV4cG9ydERhdGF9XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkRGF0YVR5cGVzPXtFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9XG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGFwcGx5Q1BVRmlsdGVyPXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5hcHBseUNQVUZpbHRlcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydERhdGFUeXBlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnREYXRhVHlwZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEZpbHRlcmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0RGF0YScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydERhdGEsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5leHBvcnQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9NQVBfSUQ6XG4gICAgICAgICAgICBjb25zdCBrZXBsZXJHbENvbmZpZyA9IHZpc1N0YXRlLnNjaGVtYS5nZXRDb25maWdUb1NhdmUoe1xuICAgICAgICAgICAgICBtYXBTdHlsZSxcbiAgICAgICAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgICAgICAgIG1hcFN0YXRlLFxuICAgICAgICAgICAgICB1aVN0YXRlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8RXhwb3J0TWFwTW9kYWxcbiAgICAgICAgICAgICAgICBjb25maWc9e2tlcGxlckdsQ29uZmlnfVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3VpU3RhdGUuZXhwb3J0TWFwfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0TWFwRm9ybWF0PXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRNYXBGb3JtYXR9XG4gICAgICAgICAgICAgICAgb25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuPXt1aVN0YXRlQWN0aW9ucy5zZXRVc2VyTWFwYm94QWNjZXNzVG9rZW59XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZT17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SFRNTE1hcE1vZGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnRNYXAnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fb25FeHBvcnRNYXAsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5leHBvcnQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEFERF9NQVBfU1RZTEVfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEFkZE1hcFN0eWxlTW9kYWxcbiAgICAgICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17dGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBtYXBib3hBcGlVcmw9e3RoaXMucHJvcHMubWFwYm94QXBpVXJsfVxuICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGU9e21hcFN0eWxlLmlucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgaW5wdXRNYXBTdHlsZT17dGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuaW5wdXRNYXBTdHlsZX1cbiAgICAgICAgICAgICAgICBsb2FkQ3VzdG9tTWFwU3R5bGU9e3RoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRDdXN0b21NYXBTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZEN1c3RvbU1hcGJveFN0eWxlJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uQWRkQ3VzdG9tTWFwU3R5bGUsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogIW1hcFN0eWxlLmlucHV0U3R5bGUuc3R5bGUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uYWRkU3R5bGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNBVkVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxTYXZlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17dWlTdGF0ZS5leHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBtYXBJbmZvPXt2aXNTdGF0ZS5tYXBJbmZvfVxuICAgICAgICAgICAgICAgIG9uU2V0TWFwSW5mbz17dmlzU3RhdGVBY3Rpb25zLnNldE1hcEluZm99XG4gICAgICAgICAgICAgICAgY2xvdWRQcm92aWRlcnM9e3RoaXMucHJvdmlkZXJXaXRoU3RvcmFnZSh0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgICBvblNldENsb3VkUHJvdmlkZXI9e3RoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLnNldENsb3VkUHJvdmlkZXJ9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLnNhdmVNYXAnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogKCkgPT4gdGhpcy5fb25TYXZlTWFwKGZhbHNlKSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgICAgICAgdWlTdGF0ZS5leHBvcnRJbWFnZS5wcm9jZXNzaW5nIHx8XG4gICAgICAgICAgICAgICAgICAhaXNWYWxpZE1hcEluZm8odmlzU3RhdGUubWFwSW5mbykgfHxcbiAgICAgICAgICAgICAgICAgICFwcm92aWRlclN0YXRlLmN1cnJlbnRQcm92aWRlcixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5zYXZlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBPVkVSV1JJVEVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxPdmVyV3JpdGVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIGNsb3VkUHJvdmlkZXJzPXt0aGlzLnByb3BzLmNsb3VkUHJvdmlkZXJzfVxuICAgICAgICAgICAgICAgIHRpdGxlPXtnZXQodmlzU3RhdGUsIFsnbWFwSW5mbycsICd0aXRsZSddKX1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3ZlcndyaXRlIEV4aXN0aW5nIEZpbGU/JyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbk92ZXJ3cml0ZU1hcCxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ1llcycsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6XG4gICAgICAgICAgICAgICAgICB1aVN0YXRlLmV4cG9ydEltYWdlLnByb2Nlc3NpbmcgfHxcbiAgICAgICAgICAgICAgICAgICFpc1ZhbGlkTWFwSW5mbyh2aXNTdGF0ZS5tYXBJbmZvKSB8fFxuICAgICAgICAgICAgICAgICAgIXByb3ZpZGVyU3RhdGUuY3VycmVudFByb3ZpZGVyXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNIQVJFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8U2hhcmVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIGlzUmVhZHk9eyF1aVN0YXRlLmV4cG9ydEltYWdlLnByb2Nlc3Npbmd9XG4gICAgICAgICAgICAgICAgY2xvdWRQcm92aWRlcnM9e3RoaXMucHJvdmlkZXJXaXRoU2hhcmUodGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgICAgb25FeHBvcnQ9e3RoaXMuX29uU2hhcmVNYXBVcmx9XG4gICAgICAgICAgICAgICAgb25TZXRDbG91ZFByb3ZpZGVyPXt0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5zZXRDbG91ZFByb3ZpZGVyfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5zaGFyZVVSTCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX29uQ2xvc2VTYXZlTWFwXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb290Tm9kZSA/IChcbiAgICAgICAgPE1vZGFsRGlhbG9nXG4gICAgICAgICAgcGFyZW50U2VsZWN0b3I9eygpID0+IGZpbmRET01Ob2RlKHJvb3ROb2RlKSBhcyBIVE1MRWxlbWVudH1cbiAgICAgICAgICBpc09wZW49e0Jvb2xlYW4oY3VycmVudE1vZGFsKX1cbiAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICB7Li4ubW9kYWxQcm9wc31cbiAgICAgICAgICBjc3NTdHlsZT17RGVmYXVsdFN0eWxlLmNvbmNhdChtb2RhbFByb3BzLmNzc1N0eWxlKX1cbiAgICAgICAgPlxuICAgICAgICAgIHt0ZW1wbGF0ZX1cbiAgICAgICAgPC9Nb2RhbERpYWxvZz5cbiAgICAgICkgOiBudWxsO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cbiAgfVxuXG4gIHJldHVybiBNb2RhbENvbnRhaW5lcjtcbn1cbiJdfQ==
|
|
473
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RhbC1jb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkRhdGFUYWJsZU1vZGFsU3R5bGUiLCJjc3MiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsInNtYWxsTW9kYWxDc3MiLCJMb2FkRGF0YU1vZGFsU3R5bGUiLCJEZWZhdWx0U3R5bGUiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSIsIk92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSIsIkRhdGFUYWJsZU1vZGFsRmFjdG9yeSIsIkxvYWREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0TWFwTW9kYWxGYWN0b3J5IiwiQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkiLCJNb2RhbERpYWxvZ0ZhY3RvcnkiLCJTYXZlTWFwTW9kYWxGYWN0b3J5IiwiU2hhcmVNYXBNb2RhbEZhY3RvcnkiLCJEZWxldGVEYXRhc2V0TW9kYWwiLCJPdmVyV3JpdGVNYXBNb2RhbCIsIkRhdGFUYWJsZU1vZGFsIiwiTG9hZERhdGFNb2RhbCIsIkV4cG9ydEltYWdlTW9kYWwiLCJFeHBvcnREYXRhTW9kYWwiLCJFeHBvcnRNYXBNb2RhbCIsIkFkZE1hcFN0eWxlTW9kYWwiLCJNb2RhbERpYWxvZyIsIlNhdmVNYXBNb2RhbCIsIlNoYXJlTWFwTW9kYWwiLCJNb2RhbENvbnRhaW5lciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVVwIiwiZXZlbnQiLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfRVNDQVBFIiwiX2Nsb3NlTW9kYWwiLCJwcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidG9nZ2xlTW9kYWwiLCJrZXkiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJyZW1vdmVEYXRhc2V0IiwibWFwU3R5bGVBY3Rpb25zIiwiYWRkQ3VzdG9tTWFwU3R5bGUiLCJmaWxlTGlzdCIsImxvYWRGaWxlcyIsInVpU3RhdGUiLCJleHBvcnRJbWFnZSIsInByb2Nlc3NpbmciLCJhcHBOYW1lIiwiY2xlYW51cEV4cG9ydEltYWdlIiwiZXhwb3J0RGF0YSIsImZvcm1hdCIsImV4cG9ydE1hcCIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJleHBvcnRIdG1sIiwiZXhwb3J0SnNvbiIsInByb3ZpZGVyIiwiaXNQdWJsaWMiLCJvdmVyd3JpdGUiLCJjbG9zZU1vZGFsIiwidG9TYXZlIiwicHJvdmlkZXJBY3Rpb25zIiwiZXhwb3J0RmlsZVRvQ2xvdWQiLCJtYXBEYXRhIiwib3B0aW9ucyIsIm9uU3VjY2VzcyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJfZXhwb3J0RmlsZVRvQ2xvdWQiLCJfb25TYXZlTWFwIiwicmVzZXRQcm92aWRlclN0YXR1cyIsInBheWxvYWQiLCJsb2FkQ2xvdWRNYXAiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwibWFwU3R5bGUiLCJtYXBTdGF0ZSIsInZpc1N0YXRlIiwicm9vdE5vZGUiLCJwcm92aWRlclN0YXRlIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJlZGl0aW5nRGF0YXNldCIsInRlbXBsYXRlIiwibW9kYWxQcm9wcyIsImlkIiwiREFUQV9UQUJMRV9JRCIsIndpZHRoIiwic2hvd0RhdGFzZXRUYWJsZSIsInNvcnRUYWJsZUNvbHVtbiIsInBpblRhYmxlQ29sdW1uIiwiY29weVRhYmxlQ29sdW1uIiwic2V0Q29sdW1uRGlzcGxheUZvcm1hdCIsImNzc1N0eWxlIiwiREVMRVRFX0RBVEFfSUQiLCJ0aXRsZSIsImZvb3RlciIsIm9uQ29uZmlybSIsIl9kZWxldGVEYXRhc2V0Iiwib25DYW5jZWwiLCJjb25maXJtQnV0dG9uIiwibmVnYXRpdmUiLCJsYXJnZSIsImNoaWxkcmVuIiwiQUREX0RBVEFfSUQiLCJfb25GaWxlVXBsb2FkIiwiX29uTG9hZENsb3VkTWFwIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwiRVhQT1JUX0lNQUdFX0lEIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwiX29uRXhwb3J0SW1hZ2UiLCJkaXNhYmxlZCIsIkVYUE9SVF9EQVRBX0lEIiwiRVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TIiwiYXBwbHlDUFVGaWx0ZXIiLCJzZXRFeHBvcnREYXRhVHlwZSIsInNldEV4cG9ydFNlbGVjdGVkRGF0YXNldCIsInNldEV4cG9ydEZpbHRlcmVkIiwiX29uRXhwb3J0RGF0YSIsIkVYUE9SVF9NQVBfSUQiLCJrZXBsZXJHbENvbmZpZyIsInNjaGVtYSIsImdldENvbmZpZ1RvU2F2ZSIsInNldEV4cG9ydE1hcEZvcm1hdCIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsInNldEV4cG9ydEhUTUxNYXBNb2RlIiwiX29uRXhwb3J0TWFwIiwiQUREX01BUF9TVFlMRV9JRCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwiaW5wdXRTdHlsZSIsImlucHV0TWFwU3R5bGUiLCJsb2FkQ3VzdG9tTWFwU3R5bGUiLCJfb25BZGRDdXN0b21NYXBTdHlsZSIsInN0eWxlIiwiU0FWRV9NQVBfSUQiLCJtYXBJbmZvIiwic2V0TWFwSW5mbyIsIk9WRVJXUklURV9NQVBfSUQiLCJfb25PdmVyd3JpdGVNYXAiLCJTSEFSRV9NQVBfSUQiLCJfb25TaGFyZU1hcFVybCIsIl9vbkNsb3NlU2F2ZU1hcCIsIkJvb2xlYW4iLCJjb25jYXQiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBU0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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QUN1SixNQUFiLENBQW9CN0QsVUFBVSxDQUFDUyxRQUEvQjtBQUxaLFlBT0dWLFFBUEgsQ0FEYSxHQVVYLElBVko7QUFXRDtBQUNEOztBQWxYc0M7QUFBQTtBQUFBLElBRVgrRCxnQkFGVzs7QUFxWHhDLFNBQU8vSCxjQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IGRvY3VtZW50IGZyb20gJ2dsb2JhbC9kb2N1bWVudCc7XG5cbmltcG9ydCBNb2RhbERpYWxvZ0ZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbW9kYWwtZGlhbG9nJztcbmltcG9ydCB7ZXhwb3J0SHRtbCwgZXhwb3J0TWFwLCBleHBvcnRKc29uLCBleHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1xuICBleHBvcnREYXRhLFxuICBnZXRGaWxlRm9ybWF0TmFtZXMsXG4gIGdldEZpbGVFeHRlbnNpb25zLFxuICBNYXBTdHlsZSxcbiAgUHJvdmlkZXJTdGF0ZVxufSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuLy8gbW9kYWxzXG5pbXBvcnQgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kZWxldGUtZGF0YS1tb2RhbCc7XG5pbXBvcnQgT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL292ZXJ3cml0ZS1tYXAtbW9kYWwnO1xuaW1wb3J0IERhdGFUYWJsZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9kYXRhLXRhYmxlLW1vZGFsJztcbmltcG9ydCBMb2FkRGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9sb2FkLWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtZGF0YS1tb2RhbCc7XG5pbXBvcnQgRXhwb3J0TWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvZXhwb3J0LW1hcC1tb2RhbCc7XG5pbXBvcnQgQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvYWRkLW1hcC1zdHlsZS1tb2RhbCc7XG5pbXBvcnQgU2F2ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9zYXZlLW1hcC1tb2RhbCc7XG5pbXBvcnQgU2hhcmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsJztcblxuLy8gQnJlYWtwb2ludHNcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcblxuLy8gVGVtcGxhdGVcbmltcG9ydCB7XG4gIEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyxcbiAgRVhQT1JUX01BUF9GT1JNQVRTLFxuICBLZXlFdmVudCxcbiAgQUREX0RBVEFfSUQsXG4gIERBVEFfVEFCTEVfSUQsXG4gIERFTEVURV9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9JRCxcbiAgRVhQT1JUX0lNQUdFX0lELFxuICBFWFBPUlRfTUFQX0lELFxuICBBRERfTUFQX1NUWUxFX0lELFxuICBTQVZFX01BUF9JRCxcbiAgU0hBUkVfTUFQX0lELFxuICBPVkVSV1JJVEVfTUFQX0lEXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtNYXBTdGF0ZSwgVWlTdGF0ZSwgT25TdWNjZXNzQ2FsbEJhY2ssIE9uRXJyb3JDYWxsQmFja30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7XG4gIFZpc1N0YXRlQWN0aW9ucyxcbiAgVUlTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge01vZGFsRGlhbG9nUHJvcHN9IGZyb20gJy4vY29tbW9uL21vZGFsJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7ZmluZERPTU5vZGV9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5jb25zdCBEYXRhVGFibGVNb2RhbFN0eWxlID0gY3NzYFxuICB0b3A6IDcwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHZ3O1xuICBtYXgtd2lkdGg6IDkwdnc7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBwYWRkaW5nOiAwO1xuICBgfSAke21lZGlhLnBhbG1gXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgYH07XG5gO1xuY29uc3Qgc21hbGxNb2RhbENzcyA9IGNzc2BcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZzogNDBweCA0MHB4IDMycHggNDBweDtcbmA7XG5cbmNvbnN0IExvYWREYXRhTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA2MHB4O1xuYDtcblxuY29uc3QgRGVmYXVsdFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICByb290Tm9kZTogUmVhY3QuUmVhY3RJbnN0YW5jZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgY29udGFpbmVySDogbnVtYmVyO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG4gIG9uU2F2ZVRvU3RvcmFnZT86ICgpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2Vzcz86IE9uU3VjY2Vzc0NhbGxCYWNrO1xuICBvbkV4cG9ydFRvQ2xvdWRFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbn07XG5cbk1vZGFsQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW1xuICBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5LFxuICBPdmVyV3JpdGVNYXBNb2RhbEZhY3RvcnksXG4gIERhdGFUYWJsZU1vZGFsRmFjdG9yeSxcbiAgTG9hZERhdGFNb2RhbEZhY3RvcnksXG4gIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5LFxuICBFeHBvcnREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRNYXBNb2RhbEZhY3RvcnksXG4gIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5LFxuICBNb2RhbERpYWxvZ0ZhY3RvcnksXG4gIFNhdmVNYXBNb2RhbEZhY3RvcnksXG4gIFNoYXJlTWFwTW9kYWxGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb2RhbENvbnRhaW5lckZhY3RvcnkoXG4gIERlbGV0ZURhdGFzZXRNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeT4sXG4gIE92ZXJXcml0ZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBPdmVyV3JpdGVNYXBNb2RhbEZhY3Rvcnk+LFxuICBEYXRhVGFibGVNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlTW9kYWxGYWN0b3J5PixcbiAgTG9hZERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgTG9hZERhdGFNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnRJbWFnZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydE1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRNYXBNb2RhbEZhY3Rvcnk+LFxuICBBZGRNYXBTdHlsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeT4sXG4gIE1vZGFsRGlhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbERpYWxvZ0ZhY3Rvcnk+LFxuICBTYXZlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIFNhdmVNYXBNb2RhbEZhY3Rvcnk+LFxuICBTaGFyZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTaGFyZU1hcE1vZGFsRmFjdG9yeT5cbik6IFJlYWN0LkVsZW1lbnRUeXBlPE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4gKi9cbiAgY2xhc3MgTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4ge1xuICAgIC8vIFRPRE8gLSByZW1vdmUgd2hlbiBwcm9wIHR5cGVzIGFyZSBmdWxseSBleHBvcnRlZFxuICAgIGNvbXBvbmVudERpZE1vdW50ID0gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9O1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9XG5cbiAgICBfb25LZXlVcCA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUV2ZW50LkRPTV9WS19FU0NBUEUpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwobnVsbCk7XG4gICAgfTtcblxuICAgIF9kZWxldGVEYXRhc2V0ID0ga2V5ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQoa2V5KTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uQWRkQ3VzdG9tTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5hZGRDdXN0b21NYXBTdHlsZSgpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25GaWxlVXBsb2FkID0gZmlsZUxpc3QgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubG9hZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9O1xuXG4gICAgX29uRXhwb3J0SW1hZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZS5wcm9jZXNzaW5nKSB7XG4gICAgICAgIGV4cG9ydEltYWdlKHRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZSwgYCR7dGhpcy5wcm9wcy5hcHBOYW1lfS5wbmdgKTtcbiAgICAgICAgdGhpcy5wcm9wcy51aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2UoKTtcbiAgICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25FeHBvcnREYXRhID0gKCkgPT4ge1xuICAgICAgZXhwb3J0RGF0YSh0aGlzLnByb3BzLCB0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0RGF0YSk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydE1hcCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHt1aVN0YXRlfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7Zm9ybWF0fSA9IHVpU3RhdGUuZXhwb3J0TWFwO1xuICAgICAgKGZvcm1hdCA9PT0gRVhQT1JUX01BUF9GT1JNQVRTLkhUTUwgPyBleHBvcnRIdG1sIDogZXhwb3J0SnNvbikoXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgIHRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnRNYXBbZm9ybWF0XSB8fCB7fVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX2V4cG9ydEZpbGVUb0Nsb3VkID0gKHtwcm92aWRlciwgaXNQdWJsaWMsIG92ZXJ3cml0ZSwgY2xvc2VNb2RhbH0pID0+IHtcbiAgICAgIGNvbnN0IHRvU2F2ZSA9IGV4cG9ydE1hcCh0aGlzLnByb3BzKTtcblxuICAgICAgdGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMuZXhwb3J0RmlsZVRvQ2xvdWQoe1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG1hcERhdGE6IHRvU2F2ZSxcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICBvdmVyd3JpdGVcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2VNb2RhbCxcbiAgICAgICAgb25TdWNjZXNzOiB0aGlzLnByb3BzLm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkRXJyb3JcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25TYXZlTWFwID0gKHByb3ZpZGVyLCBvdmVyd3JpdGUgPSBmYWxzZSkgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe1xuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGUsXG4gICAgICAgIGNsb3NlTW9kYWw6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25PdmVyd3JpdGVNYXAgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9vblNhdmVNYXAodHJ1ZSk7XG4gICAgfTtcblxuICAgIF9vblNoYXJlTWFwVXJsID0gcHJvdmlkZXIgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe3Byb3ZpZGVyLCBpc1B1YmxpYzogdHJ1ZSwgb3ZlcndyaXRlOiBmYWxzZSwgY2xvc2VNb2RhbDogZmFsc2V9KTtcbiAgICB9O1xuXG4gICAgX29uQ2xvc2VTYXZlTWFwID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMucmVzZXRQcm92aWRlclN0YXR1cygpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25Mb2FkQ2xvdWRNYXAgPSBwYXlsb2FkID0+IHtcbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmxvYWRDbG91ZE1hcCh7XG4gICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIG9uU3VjY2VzczogdGhpcy5wcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lclcsXG4gICAgICAgIGNvbnRhaW5lckgsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgdWlTdGF0ZSxcbiAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgIHJvb3ROb2RlLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICBwcm92aWRlclN0YXRlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtjdXJyZW50TW9kYWwsIGRhdGFzZXRLZXlUb1JlbW92ZX0gPSB1aVN0YXRlO1xuICAgICAgY29uc3Qge2RhdGFzZXRzLCBsYXllcnMsIGVkaXRpbmdEYXRhc2V0fSA9IHZpc1N0YXRlO1xuXG4gICAgICBsZXQgdGVtcGxhdGU6IEpTWC5FbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgICBsZXQgbW9kYWxQcm9wczogUGFydGlhbDxNb2RhbERpYWxvZ1Byb3BzPiA9IHt9O1xuXG4gICAgICAvLyBUT0RPIC0gY3VycmVudE1vZGFsIGlzIGEgc3RyaW5nXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoY3VycmVudE1vZGFsICYmIGN1cnJlbnRNb2RhbC5pZCAmJiBjdXJyZW50TW9kYWwudGVtcGxhdGUpIHtcbiAgICAgICAgLy8gaWYgY3VycmVudE1kb2FsIHRlbXBsYXRlIGlzIGFscmVhZHkgcHJvdmlkZWRcbiAgICAgICAgLy8gVE9ETzogbmVlZCB0byBjaGVjayB3aGV0aGVyIHRlbXBsYXRlIGlzIHZhbGlkXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGVtcGxhdGUgPSA8Y3VycmVudE1vZGFsLnRlbXBsYXRlIC8+O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG1vZGFsUHJvcHMgPSBjdXJyZW50TW9kYWwubW9kYWxQcm9wcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudE1vZGFsKSB7XG4gICAgICAgICAgY2FzZSBEQVRBX1RBQkxFX0lEOlxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBjb250YWluZXJXICogMC45O1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxEYXRhVGFibGVNb2RhbFxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2VkaXRpbmdEYXRhc2V0fVxuICAgICAgICAgICAgICAgIHNob3dEYXRhc2V0VGFibGU9e3Zpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICAgIHNvcnRUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnNvcnRUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBwaW5UYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnBpblRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIGNvcHlUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLmNvcHlUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PXt2aXNTdGF0ZUFjdGlvbnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdWlTdGF0ZT17dWlTdGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IHdlIG5lZWQgdG8gbWFrZSB0aGlzIHdpZHRoIGNvbnNpc3RlbnQgd2l0aCB0aGUgY3NzIHJ1bGUgZGVmaW5lZCBtb2RhbC5qczozMiBtYXgtd2lkdGg6IDcwdndcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETyBmaXggdGhpcyBhZnRlciBhZGQgdHlwZXMgdG8gVGhlbWVcbiAgICAgICAgICAgIG1vZGFsUHJvcHMuY3NzU3R5bGUgPSBjc3NgXG4gICAgICAgICAgICAgICR7RGF0YVRhYmxlTW9kYWxTdHlsZX07XG4gICAgICAgICAgICAgICR7bWVkaWEucGFsbWBcbiAgICAgICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weDtcbiAgICAgICAgICAgICAgYH07XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBERUxFVEVfREFUQV9JRDpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9wdGlvbnNcbiAgICAgICAgICAgIGlmIChkYXRhc2V0S2V5VG9SZW1vdmUgJiYgZGF0YXNldHMgJiYgZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXSkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgICA8RGVsZXRlRGF0YXNldE1vZGFsIGRhdGFzZXQ9e2RhdGFzZXRzW2RhdGFzZXRLZXlUb1JlbW92ZV19IGxheWVycz17bGF5ZXJzfSAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZGVsZXRlRGF0YXNldCcsXG4gICAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogKCkgPT4gdGhpcy5fZGVsZXRlRGF0YXNldChkYXRhc2V0S2V5VG9SZW1vdmUpLFxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kZWxldGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7IC8vIGluIGNhc2Ugd2UgYWRkIGEgbmV3IGNhc2UgYWZ0ZXIgdGhpcyBvbmVcbiAgICAgICAgICBjYXNlIEFERF9EQVRBX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxMb2FkRGF0YU1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnByb3ZpZGVyU3RhdGV9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICBvbkZpbGVVcGxvYWQ9e3RoaXMuX29uRmlsZVVwbG9hZH1cbiAgICAgICAgICAgICAgICBvbkxvYWRDbG91ZE1hcD17dGhpcy5fb25Mb2FkQ2xvdWRNYXB9XG4gICAgICAgICAgICAgICAgbG9hZEZpbGVzPXt1aVN0YXRlLmxvYWRGaWxlc31cbiAgICAgICAgICAgICAgICBmaWxlTG9hZGluZz17dmlzU3RhdGUuZmlsZUxvYWRpbmd9XG4gICAgICAgICAgICAgICAgZmlsZUxvYWRpbmdQcm9ncmVzcz17dmlzU3RhdGUuZmlsZUxvYWRpbmdQcm9ncmVzc31cbiAgICAgICAgICAgICAgICBmaWxlRm9ybWF0TmFtZXM9e2dldEZpbGVGb3JtYXROYW1lcyh0aGlzLnByb3BzLnZpc1N0YXRlKX1cbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9ucz17Z2V0RmlsZUV4dGVuc2lvbnModGhpcy5wcm9wcy52aXNTdGF0ZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5hZGREYXRhVG9NYXAnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogTG9hZERhdGFNb2RhbFN0eWxlLFxuICAgICAgICAgICAgICBmb290ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX2Nsb3NlTW9kYWxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9JTUFHRV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8RXhwb3J0SW1hZ2VNb2RhbFxuICAgICAgICAgICAgICAgIGV4cG9ydEltYWdlPXt1aVN0YXRlLmV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG1hcFc9e2NvbnRhaW5lcld9XG4gICAgICAgICAgICAgICAgbWFwSD17Y29udGFpbmVySH1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0SW1hZ2UnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fb25FeHBvcnRJbWFnZSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB1aVN0YXRlLmV4cG9ydEltYWdlLnByb2Nlc3NpbmcsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uZG93bmxvYWQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9EQVRBX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnREYXRhTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4udWlTdGF0ZS5leHBvcnREYXRhfVxuICAgICAgICAgICAgICAgIHN1cHBvcnRlZERhdGFUeXBlcz17RVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TfVxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBhcHBseUNQVUZpbHRlcj17dGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMuYXBwbHlDUFVGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnREYXRhVHlwZT17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0RGF0YVR5cGV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRTZWxlY3RlZERhdGFzZXQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydFNlbGVjdGVkRGF0YXNldH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydEZpbHRlcmVkPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRGaWx0ZXJlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydERhdGEnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fb25FeHBvcnREYXRhLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uZXhwb3J0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFWFBPUlRfTUFQX0lEOlxuICAgICAgICAgICAgY29uc3Qga2VwbGVyR2xDb25maWcgPSB2aXNTdGF0ZS5zY2hlbWEuZ2V0Q29uZmlnVG9TYXZlKHtcbiAgICAgICAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgICAgICAgdWlTdGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydE1hcE1vZGFsXG4gICAgICAgICAgICAgICAgY29uZmlnPXtrZXBsZXJHbENvbmZpZ31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXt1aVN0YXRlLmV4cG9ydE1hcH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydE1hcEZvcm1hdD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0TWFwRm9ybWF0fVxuICAgICAgICAgICAgICAgIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbj17dWlTdGF0ZUFjdGlvbnMuc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGU9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEhUTUxNYXBNb2RlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0TWFwJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uRXhwb3J0TWFwLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uZXhwb3J0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBBRERfTUFQX1NUWUxFX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxBZGRNYXBTdHlsZU1vZGFsXG4gICAgICAgICAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW49e3RoaXMucHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW59XG4gICAgICAgICAgICAgICAgbWFwYm94QXBpVXJsPXt0aGlzLnByb3BzLm1hcGJveEFwaVVybH1cbiAgICAgICAgICAgICAgICBtYXBTdGF0ZT17dGhpcy5wcm9wcy5tYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICBpbnB1dFN0eWxlPXttYXBTdHlsZS5pbnB1dFN0eWxlfVxuICAgICAgICAgICAgICAgIGlucHV0TWFwU3R5bGU9e3RoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmlucHV0TWFwU3R5bGV9XG4gICAgICAgICAgICAgICAgbG9hZEN1c3RvbU1hcFN0eWxlPXt0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5sb2FkQ3VzdG9tTWFwU3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5hZGRDdXN0b21NYXBib3hTdHlsZScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkFkZEN1c3RvbU1hcFN0eWxlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFtYXBTdHlsZS5pbnB1dFN0eWxlLnN0eWxlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmFkZFN0eWxlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTQVZFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8U2F2ZU1hcE1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnByb3ZpZGVyU3RhdGV9XG4gICAgICAgICAgICAgICAgZXhwb3J0SW1hZ2U9e3VpU3RhdGUuZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgbWFwSW5mbz17dmlzU3RhdGUubWFwSW5mb31cbiAgICAgICAgICAgICAgICBvblNldE1hcEluZm89e3Zpc1N0YXRlQWN0aW9ucy5zZXRNYXBJbmZvfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXtwcm92aWRlciA9PiB0aGlzLl9vblNhdmVNYXAocHJvdmlkZXIsIGZhbHNlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLnNhdmVNYXAnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIE9WRVJXUklURV9NQVBfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPE92ZXJXcml0ZU1hcE1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnByb3ZpZGVyU3RhdGV9XG4gICAgICAgICAgICAgICAgdGl0bGU9e2dldCh2aXNTdGF0ZSwgWydtYXBJbmZvJywgJ3RpdGxlJ10pfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXt0aGlzLl9vbk92ZXJ3cml0ZU1hcH1cbiAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ092ZXJ3cml0ZSBFeGlzdGluZyBGaWxlPycsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiBzbWFsbE1vZGFsQ3NzLFxuICAgICAgICAgICAgICBmb290ZXI6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTSEFSRV9NQVBfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPFNoYXJlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBvbkV4cG9ydD17dGhpcy5fb25TaGFyZU1hcFVybH1cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuc2hhcmVVUkwnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9vbkNsb3NlU2F2ZU1hcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcm9vdE5vZGUgPyAoXG4gICAgICAgIDxNb2RhbERpYWxvZ1xuICAgICAgICAgIHBhcmVudFNlbGVjdG9yPXsoKSA9PiBmaW5kRE9NTm9kZShyb290Tm9kZSkgYXMgSFRNTEVsZW1lbnR9XG4gICAgICAgICAgaXNPcGVuPXtCb29sZWFuKGN1cnJlbnRNb2RhbCl9XG4gICAgICAgICAgb25DYW5jZWw9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgey4uLm1vZGFsUHJvcHN9XG4gICAgICAgICAgY3NzU3R5bGU9e0RlZmF1bHRTdHlsZS5jb25jYXQobW9kYWxQcm9wcy5jc3NTdHlsZSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dGVtcGxhdGV9XG4gICAgICAgIDwvTW9kYWxEaWFsb2c+XG4gICAgICApIDogbnVsbDtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG4gIH1cblxuICByZXR1cm4gTW9kYWxDb250YWluZXI7XG59XG4iXX0=
|