@kepler.gl/components 3.2.5 → 3.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bottom-widget.d.ts +4 -4
- package/dist/common/action-panel.d.ts +3 -3
- package/dist/common/animation-control/animation-control.d.ts +1 -1
- package/dist/common/animation-control/playback-controls.d.ts +1 -1
- package/dist/common/color-legend.d.ts +4 -4
- package/dist/common/column-stats-chart.d.ts +3 -3
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +0 -1
- package/dist/common/data-table/cell-size.d.ts +2 -2
- package/dist/common/data-table/display-format.d.ts +1 -1
- package/dist/common/data-table/header-cell.d.ts +2 -2
- package/dist/common/data-table/index.d.ts +7 -9
- package/dist/common/data-table/index.js +1 -1
- package/dist/common/data-table/option-dropdown.d.ts +1 -1
- package/dist/common/field-selector.d.ts +5 -5
- package/dist/common/field-token.d.ts +1 -1
- package/dist/common/file-uploader/file-drop.d.ts +1 -1
- package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/flex-container.d.ts +2 -3
- package/dist/common/histogram-plot.d.ts +1 -1
- package/dist/common/icon-button.d.ts +16 -16
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/close.js +7 -6
- package/dist/common/icons/effects/distance-fog.d.ts +14 -0
- package/dist/common/icons/effects/distance-fog.js +79 -0
- package/dist/common/icons/effects/surface-fog.d.ts +14 -0
- package/dist/common/icons/effects/surface-fog.js +86 -0
- package/dist/common/icons/index.d.ts +3 -0
- package/dist/common/icons/index.js +22 -1
- package/dist/common/icons/zoom-out.d.ts +10 -0
- package/dist/common/icons/zoom-out.js +48 -0
- package/dist/common/item-selector/chickleted-input.d.ts +4 -4
- package/dist/common/item-selector/dropdown-list.d.ts +3 -3
- package/dist/common/item-selector/dropdown-select.d.ts +7 -7
- package/dist/common/item-selector/item-selector.d.ts +2 -2
- package/dist/common/item-selector/typeahead.d.ts +3 -3
- package/dist/common/loading-spinner.d.ts +2 -2
- package/dist/common/modal.d.ts +5 -5
- package/dist/common/portaled.d.ts +8 -25
- package/dist/common/progress-bar.d.ts +1 -1
- package/dist/common/radius-legend.d.ts +1 -1
- package/dist/common/range-brush.d.ts +1 -1
- package/dist/common/range-plot.d.ts +1 -1
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider.d.ts +2 -2
- package/dist/common/styled-components.d.ts +157 -158
- package/dist/common/sync-timeline-control.d.ts +3 -3
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider.d.ts +2 -2
- package/dist/common/timeline-slider.d.ts +1 -1
- package/dist/common/tippy-tooltip.d.ts +1 -1
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/vertical-toolbar.d.ts +2 -3
- package/dist/container.d.ts +6 -6
- package/dist/context.d.ts +3 -3
- package/dist/dnd-context.d.ts +2 -2
- package/dist/editor/editor.d.ts +1 -1
- package/dist/editor/editor.js +1 -1
- package/dist/editor/feature-action-panel.d.ts +1 -1
- package/dist/editor/feature-action-panel.js +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +2 -2
- package/dist/effects/effect-configurator.js +52 -14
- package/dist/effects/effect-list.d.ts +1 -1
- package/dist/effects/effect-manager.d.ts +3 -3
- package/dist/effects/effect-manager.js +9 -2
- package/dist/effects/effect-panel-header.d.ts +2 -2
- package/dist/effects/effect-panel-header.js +2 -2
- package/dist/effects/effect-panel.d.ts +2 -2
- package/dist/effects/effect-time-configurator.d.ts +1 -1
- package/dist/effects/effect-time-selector.d.ts +1 -1
- package/dist/effects/effect-time-slider.d.ts +3 -3
- package/dist/effects/effect-type-dropdown-list.d.ts +2 -2
- package/dist/effects/effect-type-list-item.d.ts +1 -1
- package/dist/effects/effect-type-selector.d.ts +2 -2
- package/dist/effects/side-panel-title.d.ts +1 -1
- package/dist/effects/timezone-selector.d.ts +1 -1
- package/dist/filters/components.d.ts +2 -3
- package/dist/filters/filter-panels/types.d.ts +4 -4
- package/dist/filters/types.d.ts +8 -8
- package/dist/geocoder/geocoder.d.ts +3 -3
- package/dist/geocoder/geocoder.js +5 -1
- package/dist/geocoder-panel.d.ts +10 -2
- package/dist/geocoder-panel.js +3 -3
- package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
- package/dist/hooks/use-dnd-effects.d.ts +1 -1
- package/dist/hooks/use-dnd-layers.d.ts +1 -1
- package/dist/hooks/use-feature-flags.d.ts +1 -1
- package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
- package/dist/hooks/use-legend-position.d.ts +8 -6
- package/dist/hooks/use-legend-position.js +27 -4
- package/dist/injector.d.ts +5 -5
- package/dist/kepler-gl.d.ts +55 -64
- package/dist/loading-indicator.d.ts +4 -4
- package/dist/loading-indicator.js +33 -8
- package/dist/map/effects/effect-control.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +3 -3
- package/dist/map/layer-hover-info.js +8 -3
- package/dist/map/layer-selector-panel.d.ts +1 -1
- package/dist/map/lazy-tippy.js +3 -3
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/map-control-panel.d.ts +1 -1
- package/dist/map/map-control-toolbar.d.ts +6 -7
- package/dist/map/map-control-tooltip.d.ts +1 -1
- package/dist/map/map-control.d.ts +3 -2
- package/dist/map/map-control.js +1 -1
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-legend-panel.d.ts +4 -3
- package/dist/map/map-legend-panel.js +22 -9
- package/dist/map/map-legend.d.ts +10 -8
- package/dist/map/map-legend.js +37 -7
- package/dist/map/map-popover-content.d.ts +2 -2
- package/dist/map/map-popover.d.ts +2 -2
- package/dist/map/split-map-button.d.ts +1 -1
- package/dist/map/toggle-3d-button.d.ts +1 -1
- package/dist/map-container.d.ts +2 -2
- package/dist/map-container.js +50 -25
- package/dist/map-view-state-context.d.ts +9 -2
- package/dist/map-view-state-context.js +1 -1
- package/dist/modal-container.d.ts +3 -6
- package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
- package/dist/modals/cloud-components/provider-select.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -1
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/export-data-modal.js +2 -2
- package/dist/modals/export-image-modal.d.ts +1 -1
- package/dist/modals/export-image-modal.js +75 -7
- package/dist/modals/export-map-modal/components.d.ts +1 -1
- package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-html-map.js +3 -1
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/image-modal-container.d.ts +1 -1
- package/dist/modals/load-data-modal.d.ts +2 -2
- package/dist/modals/modal-dialog.d.ts +0 -2
- package/dist/modals/overwrite-map-modal.d.ts +1 -1
- package/dist/modals/save-map-modal.d.ts +3 -3
- package/dist/modals/share-map-modal.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.d.ts +3 -3
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.js +8 -2
- package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
- package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
- package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-wms-form.js +53 -10
- package/dist/plot-container.js +82 -11
- package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
- package/dist/side-panel/common/dataset-info.d.ts +2 -2
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +2 -2
- package/dist/side-panel/common/dataset-title.d.ts +2 -2
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
- package/dist/side-panel/common/types.d.ts +8 -8
- package/dist/side-panel/custom-panel.d.ts +2 -2
- package/dist/side-panel/filter-manager.d.ts +3 -3
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
- package/dist/side-panel/interaction-manager.d.ts +1 -1
- package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
- package/dist/side-panel/layer-manager.d.ts +2 -2
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
- package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +27 -17
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +6 -5
- package/dist/side-panel/layer-panel/layer-panel-header.js +15 -5
- package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
- package/dist/side-panel/map-manager.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
- package/dist/side-panel/panel-header-action.d.ts +1 -1
- package/dist/side-panel/panel-header.d.ts +12 -12
- package/dist/side-panel/panel-tab.d.ts +4 -4
- package/dist/side-panel/panel-title.d.ts +1 -1
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
- package/dist/side-panel/side-bar.d.ts +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +3 -3
- package/package.json +23 -22
|
@@ -16,7 +16,7 @@ var _commonUtils = require("@kepler.gl/common-utils");
|
|
|
16
16
|
var _constants = require("@kepler.gl/constants");
|
|
17
17
|
var _table = require("@kepler.gl/table");
|
|
18
18
|
var _common = require("../../common");
|
|
19
|
-
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6; // SPDX-License-Identifier: MIT
|
|
20
20
|
// Copyright contributors to the kepler.gl project
|
|
21
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
@@ -24,9 +24,37 @@ var TilesetInputContainer = _styledComponents["default"].div(_templateObject ||
|
|
|
24
24
|
var TilesetInputDescription = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: center;\n color: ", ";\n font-size: 11px;\n"])), function (props) {
|
|
25
25
|
return props.theme.AZURE200;
|
|
26
26
|
});
|
|
27
|
-
var ExampleUrlsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n color: ", ";\n font-size: 11px;\n
|
|
27
|
+
var ExampleUrlsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n color: ", ";\n font-size: 11px;\n"])), function (props) {
|
|
28
28
|
return props.theme.AZURE200;
|
|
29
29
|
});
|
|
30
|
+
var ExampleTabs = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 6px;\n margin-top: 6px;\n margin-bottom: 6px;\n"])));
|
|
31
|
+
var ExampleTab = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 3px 8px;\n border-radius: 3px;\n cursor: pointer;\n font-size: 11px;\n white-space: nowrap;\n background: ", ";\n color: ", ";\n border: 1px solid ", ";\n\n &:hover {\n background: ", ";\n }\n"])), function (props) {
|
|
32
|
+
return props.active ? props.theme.AZURE400 : 'transparent';
|
|
33
|
+
}, function (props) {
|
|
34
|
+
return props.active ? props.theme.WHITE : props.theme.AZURE200;
|
|
35
|
+
}, function (props) {
|
|
36
|
+
return props.active ? props.theme.AZURE400 : props.theme.AZURE400;
|
|
37
|
+
}, function (props) {
|
|
38
|
+
return props.active ? props.theme.AZURE400 : props.theme.AZURE500;
|
|
39
|
+
});
|
|
40
|
+
var ExampleUrl = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n word-break: break-all;\n cursor: pointer;\n color: ", ";\n font-size: 11px;\n\n &:hover {\n color: ", ";\n }\n"])), function (props) {
|
|
41
|
+
return props.theme.AZURE200;
|
|
42
|
+
}, function (props) {
|
|
43
|
+
return props.theme.AZURE100;
|
|
44
|
+
});
|
|
45
|
+
var WMS_EXAMPLES = [{
|
|
46
|
+
label: 'OSM',
|
|
47
|
+
name: 'OpenStreetMap WMS',
|
|
48
|
+
url: 'https://ows.terrestris.de/osm/service'
|
|
49
|
+
}, {
|
|
50
|
+
label: 'NOAA Radar',
|
|
51
|
+
name: 'NOAA CONUS Radar',
|
|
52
|
+
url: 'https://opengeo.ncep.noaa.gov/geoserver/conus/conus_cref_qcd/ows'
|
|
53
|
+
}, {
|
|
54
|
+
label: 'NASA GIBS',
|
|
55
|
+
name: 'NASA GIBS',
|
|
56
|
+
url: 'https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi'
|
|
57
|
+
}];
|
|
30
58
|
var TilesetWMSForm = function TilesetWMSForm(_ref) {
|
|
31
59
|
var setResponse = _ref.setResponse;
|
|
32
60
|
var _useState = (0, _react.useState)(''),
|
|
@@ -49,10 +77,18 @@ var TilesetWMSForm = function TilesetWMSForm(_ref) {
|
|
|
49
77
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
50
78
|
wmsData = _useState10[0],
|
|
51
79
|
setWMSData = _useState10[1];
|
|
80
|
+
var _useState11 = (0, _react.useState)(0),
|
|
81
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
82
|
+
exampleTab = _useState12[0],
|
|
83
|
+
setExampleTab = _useState12[1];
|
|
52
84
|
var onLayerNameChange = (0, _react.useCallback)(function (event) {
|
|
53
85
|
event.preventDefault();
|
|
54
86
|
setLayerName(event.target.value);
|
|
55
87
|
}, [setLayerName]);
|
|
88
|
+
var onExampleClick = (0, _react.useCallback)(function (url, name) {
|
|
89
|
+
setWmsUrl(url);
|
|
90
|
+
setLayerName(name);
|
|
91
|
+
}, [setWmsUrl, setLayerName]);
|
|
56
92
|
var onWmsUrlChange = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
57
93
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(event) {
|
|
58
94
|
var newWmsUrl, data, datasetMetadata, serviceTitle;
|
|
@@ -151,13 +187,20 @@ var TilesetWMSForm = function TilesetWMSForm(_ref) {
|
|
|
151
187
|
placeholder: "Enter WMS URL",
|
|
152
188
|
value: wmsUrl,
|
|
153
189
|
onChange: onWmsUrlChange
|
|
154
|
-
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Provide a valid WMS service URL.")), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "For example, try a public WMS URL:"), /*#__PURE__*/_react["default"].createElement(ExampleUrlsContainer, null, /*#__PURE__*/_react["default"].createElement(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
190
|
+
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Provide a valid WMS service URL.")), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "For example, try a public WMS URL:"), /*#__PURE__*/_react["default"].createElement(ExampleUrlsContainer, null, /*#__PURE__*/_react["default"].createElement(ExampleTabs, null, WMS_EXAMPLES.map(function (ex, i) {
|
|
191
|
+
return /*#__PURE__*/_react["default"].createElement(ExampleTab, {
|
|
192
|
+
key: ex.label,
|
|
193
|
+
active: exampleTab === i,
|
|
194
|
+
onClick: function onClick() {
|
|
195
|
+
setExampleTab(i);
|
|
196
|
+
onExampleClick(ex.url, ex.name);
|
|
197
|
+
}
|
|
198
|
+
}, ex.label);
|
|
199
|
+
})), /*#__PURE__*/_react["default"].createElement(ExampleUrl, {
|
|
200
|
+
onClick: function onClick() {
|
|
201
|
+
return onExampleClick(WMS_EXAMPLES[exampleTab].url, WMS_EXAMPLES[exampleTab].name);
|
|
202
|
+
}
|
|
203
|
+
}, WMS_EXAMPLES[exampleTab].url))));
|
|
161
204
|
};
|
|
162
205
|
var _default = exports["default"] = TilesetWMSForm;
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVGlsZXNldElucHV0Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJUaWxlc2V0SW5wdXREZXNjcmlwdGlvbiIsInByb3BzIiwidGhlbWUiLCJBWlVSRTIwMCIsIkV4YW1wbGVVcmxzQ29udGFpbmVyIiwiVGlsZXNldFdNU0Zvcm0iLCJfcmVmIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYXllck5hbWUiLCJzZXRMYXllck5hbWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIndtc1VybCIsInNldFdtc1VybCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ3bXNEYXRhIiwic2V0V01TRGF0YSIsIm9uTGF5ZXJOYW1lQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwidmFsdWUiLCJvbldtc1VybENoYW5nZSIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJuZXdXbXNVcmwiLCJkYXRhIiwiZGF0YXNldE1ldGFkYXRhIiwic2VydmljZVRpdGxlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInZhbGlkYXRlVXJsIiwiYWJydXB0IiwiZ2V0V01TQ2FwYWJpbGl0aWVzIiwic2VudCIsIndtc0NhcGFiaWxpdGllc1RvRGF0YXNldE1ldGFkYXRhIiwidGl0bGUiLCJuYW1lIiwibWV0YWRhdGEiLCJsYXllcnMiLCJ2ZXJzaW9uIiwidDAiLCJFcnJvciIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwidXNlRWZmZWN0IiwiX3dtc0RhdGEkbWV0YWRhdGEiLCJkYXRhc2V0IiwidHlwZSIsIkRhdGFzZXRUeXBlIiwiV01TX1RJTEUiLCJSRU1PVEVfVElMRSIsInJlbW90ZVRpbGVGb3JtYXQiLCJSZW1vdGVUaWxlRm9ybWF0IiwiV01TIiwidGlsZXNldERhdGFVcmwiLCJ0aWxlc2V0TWV0YWRhdGFVcmwiLCJjb25jYXQiLCJ3bXNWZXJzaW9uIiwiY3JlYXRlRWxlbWVudCIsImh0bWxGb3IiLCJJbnB1dExpZ2h0IiwiaWQiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiY2xhc3NOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy90aWxlc2V0cy1tb2RhbHMvdGlsZXNldC13bXMtZm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtXTVNDYXBhYmlsaXRpZXN9IGZyb20gJ0Bsb2FkZXJzLmdsL3dtcyc7XG5cbmltcG9ydCB7dmFsaWRhdGVVcmx9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RGF0YXNldFR5cGUsIFJFTU9URV9USUxFLCBSZW1vdGVUaWxlRm9ybWF0LCBXTVNEYXRhc2V0TWV0YWRhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Z2V0V01TQ2FwYWJpbGl0aWVzLCB3bXNDYXBhYmlsaXRpZXNUb0RhdGFzZXRNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7TWV0YVJlc3BvbnNlfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge0lucHV0TGlnaHR9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIGF1dG8pO1xuICByb3ctZ2FwOiAxOHB4O1xuICBmb250LXNpemU6IDEycHg7XG5gO1xuXG5jb25zdCBUaWxlc2V0SW5wdXREZXNjcmlwdGlvbiA9IHN0eWxlZC5kaXZgXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUyMDB9O1xuICBmb250LXNpemU6IDExcHg7XG5gO1xuXG5jb25zdCBFeGFtcGxlVXJsc0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuXG4gIC5leGFtcGxlLXVybCB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5gO1xuXG50eXBlIFdNU1RpbGVGb3JtUHJvcHMgPSB7XG4gIHNldFJlc3BvbnNlOiAocmVzcG9uc2U6IE1ldGFSZXNwb25zZSkgPT4gdm9pZDtcbn07XG5cbnR5cGUgV01TRGF0YSA9IHtcbiAgbWV0YWRhdGE6IFdNU0NhcGFiaWxpdGllcyB8IG51bGw7XG4gIGxheWVyczogV01TRGF0YXNldE1ldGFkYXRhWydsYXllcnMnXTtcbiAgdmVyc2lvbjogc3RyaW5nO1xufTtcblxuY29uc3QgVGlsZXNldFdNU0Zvcm06IFJlYWN0LkZDPFdNU1RpbGVGb3JtUHJvcHM+ID0gKHtzZXRSZXNwb25zZX0pID0+IHtcbiAgY29uc3QgW2xheWVyTmFtZSwgc2V0TGF5ZXJOYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbd21zVXJsLCBzZXRXbXNVcmxdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxFcnJvciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbd21zRGF0YSwgc2V0V01TRGF0YV0gPSB1c2VTdGF0ZTxXTVNEYXRhIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3Qgb25MYXllck5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0TGF5ZXJOYW1lKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0TGF5ZXJOYW1lXVxuICApO1xuXG4gIGNvbnN0IG9uV21zVXJsQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG5ld1dtc1VybCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHNldFdtc1VybChuZXdXbXNVcmwpO1xuXG4gICAgICBpZiAoIXZhbGlkYXRlVXJsKG5ld1dtc1VybCkpIHtcbiAgICAgICAgc2V0V01TRGF0YShudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBGZXRjaCBXTVMgR2V0Q2FwYWJpbGl0aWVzXG4gICAgICB0cnkge1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcblxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0V01TQ2FwYWJpbGl0aWVzKG5ld1dtc1VybCk7XG5cbiAgICAgICAgY29uc3QgZGF0YXNldE1ldGFkYXRhID0gd21zQ2FwYWJpbGl0aWVzVG9EYXRhc2V0TWV0YWRhdGEoZGF0YSk7XG5cbiAgICAgICAgLy8gRXh0cmFjdCBuYW1lIG9yIHRpdGxlIGZyb20gR2V0Q2FwYWJpbGl0aWVzIHJlc3BvbnNlXG4gICAgICAgIGNvbnN0IHNlcnZpY2VUaXRsZSA9IGRhdGE/LnRpdGxlIHx8IGRhdGE/Lm5hbWU7XG4gICAgICAgIGlmIChzZXJ2aWNlVGl0bGUgJiYgIWxheWVyTmFtZSkge1xuICAgICAgICAgIHNldExheWVyTmFtZShzZXJ2aWNlVGl0bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0V01TRGF0YSh7XG4gICAgICAgICAgbWV0YWRhdGE6IGRhdGEsXG4gICAgICAgICAgbGF5ZXJzOiBkYXRhc2V0TWV0YWRhdGEubGF5ZXJzLFxuICAgICAgICAgIHZlcnNpb246IGRhdGFzZXRNZXRhZGF0YS52ZXJzaW9uXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyIDogbmV3IEVycm9yKCdVbmtub3duIGVycm9yJykpO1xuICAgICAgICBzZXRXTVNEYXRhKG51bGwpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbbGF5ZXJOYW1lXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxheWVyTmFtZSAmJiB3bXNVcmwpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSB7XG4gICAgICAgIG5hbWU6IGxheWVyTmFtZSxcbiAgICAgICAgdHlwZTogRGF0YXNldFR5cGUuV01TX1RJTEUsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdHlwZTogUkVNT1RFX1RJTEUsXG4gICAgICAgICAgcmVtb3RlVGlsZUZvcm1hdDogUmVtb3RlVGlsZUZvcm1hdC5XTVMsXG4gICAgICAgICAgdGlsZXNldERhdGFVcmw6IHdtc1VybCxcbiAgICAgICAgICB0aWxlc2V0TWV0YWRhdGFVcmw6IGAke3dtc1VybH0/c2VydmljZT1XTVMmcmVxdWVzdD1HZXRDYXBhYmlsaXRpZXNgLFxuICAgICAgICAgIGxheWVyczogd21zRGF0YT8ubGF5ZXJzIHx8IFtdLFxuICAgICAgICAgIHdtc1ZlcnNpb246IHdtc0RhdGE/LnZlcnNpb24gfHwgJzEuMy4wJ1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YTogd21zRGF0YT8ubWV0YWRhdGEgPz8gbnVsbCxcbiAgICAgICAgZGF0YXNldCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhOiBudWxsLFxuICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2V0UmVzcG9uc2UsIGxheWVyTmFtZSwgd21zVXJsLCB3bXNEYXRhLCBsb2FkaW5nLCBlcnJvcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPFRpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwibGF5ZXItbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwibGF5ZXItbmFtZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIHlvdXIgV01TIGxheWVyXCJcbiAgICAgICAgICB2YWx1ZT17bGF5ZXJOYW1lfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkxheWVyTmFtZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ3bXMtdXJsXCI+V01TIFVSTDwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ3bXMtdXJsXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIFdNUyBVUkxcIlxuICAgICAgICAgIHZhbHVlPXt3bXNVcmx9XG4gICAgICAgICAgb25DaGFuZ2U9e29uV21zVXJsQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+UHJvdmlkZSBhIHZhbGlkIFdNUyBzZXJ2aWNlIFVSTC48L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+Rm9yIGV4YW1wbGUsIHRyeSBhIHB1YmxpYyBXTVMgVVJMOjwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgIDxFeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtdXJsXCI+4oCiIGh0dHBzOi8vb3dzLnRlcnJlc3RyaXMuZGUvb3NtL3NlcnZpY2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtdXJsXCI+XG4gICAgICAgICAgICDigKIgaHR0cHM6Ly9vcGVuZ2VvLm5jZXAubm9hYS5nb3YvZ2Vvc2VydmVyL2NvbnVzL2NvbnVzX2NyZWZfcWNkL293c1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS11cmxcIj5cbiAgICAgICAgICAgIOKAoiBodHRwczovL2dpYnMuZWFydGhkYXRhLm5hc2EuZ292L3dtcy9lcHNnNDMyNi9iZXN0L3dtcy5jZ2lcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9FeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvVGlsZXNldElucHV0Q29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGlsZXNldFdNU0Zvcm07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFBd0MsSUFBQU8sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVp4QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFB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
|
|
206
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVGlsZXNldElucHV0Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJUaWxlc2V0SW5wdXREZXNjcmlwdGlvbiIsInByb3BzIiwidGhlbWUiLCJBWlVSRTIwMCIsIkV4YW1wbGVVcmxzQ29udGFpbmVyIiwiRXhhbXBsZVRhYnMiLCJFeGFtcGxlVGFiIiwiYWN0aXZlIiwiQVpVUkU0MDAiLCJXSElURSIsIkFaVVJFNTAwIiwiRXhhbXBsZVVybCIsIkFaVVJFMTAwIiwiV01TX0VYQU1QTEVTIiwibGFiZWwiLCJuYW1lIiwidXJsIiwiVGlsZXNldFdNU0Zvcm0iLCJfcmVmIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYXllck5hbWUiLCJzZXRMYXllck5hbWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIndtc1VybCIsInNldFdtc1VybCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ3bXNEYXRhIiwic2V0V01TRGF0YSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJleGFtcGxlVGFiIiwic2V0RXhhbXBsZVRhYiIsIm9uTGF5ZXJOYW1lQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwidmFsdWUiLCJvbkV4YW1wbGVDbGljayIsIm9uV21zVXJsQ2hhbmdlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIm5ld1dtc1VybCIsImRhdGEiLCJkYXRhc2V0TWV0YWRhdGEiLCJzZXJ2aWNlVGl0bGUiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidmFsaWRhdGVVcmwiLCJhYnJ1cHQiLCJnZXRXTVNDYXBhYmlsaXRpZXMiLCJzZW50Iiwid21zQ2FwYWJpbGl0aWVzVG9EYXRhc2V0TWV0YWRhdGEiLCJ0aXRsZSIsIm1ldGFkYXRhIiwibGF5ZXJzIiwidmVyc2lvbiIsInQwIiwiRXJyb3IiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsInVzZUVmZmVjdCIsIl93bXNEYXRhJG1ldGFkYXRhIiwiZGF0YXNldCIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIldNU19USUxFIiwiUkVNT1RFX1RJTEUiLCJyZW1vdGVUaWxlRm9ybWF0IiwiUmVtb3RlVGlsZUZvcm1hdCIsIldNUyIsInRpbGVzZXREYXRhVXJsIiwidGlsZXNldE1ldGFkYXRhVXJsIiwiY29uY2F0Iiwid21zVmVyc2lvbiIsImNyZWF0ZUVsZW1lbnQiLCJodG1sRm9yIiwiSW5wdXRMaWdodCIsImlkIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIm1hcCIsImV4Iiwia2V5Iiwib25DbGljayIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvdGlsZXNldHMtbW9kYWxzL3RpbGVzZXQtd21zLWZvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7V01TQ2FwYWJpbGl0aWVzfSBmcm9tICdAbG9hZGVycy5nbC93bXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlVXJsfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0RhdGFzZXRUeXBlLCBSRU1PVEVfVElMRSwgUmVtb3RlVGlsZUZvcm1hdCwgV01TRGF0YXNldE1ldGFkYXRhfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldFdNU0NhcGFiaWxpdGllcywgd21zQ2FwYWJpbGl0aWVzVG9EYXRhc2V0TWV0YWRhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbXBvcnQge01ldGFSZXNwb25zZX0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHtJbnB1dExpZ2h0fSBmcm9tICcuLi8uLi9jb21tb24nO1xuXG5jb25zdCBUaWxlc2V0SW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcbiAgcm93LWdhcDogMThweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYDtcblxuY29uc3QgVGlsZXNldElucHV0RGVzY3JpcHRpb24gPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuYDtcblxuY29uc3QgRXhhbXBsZVVybHNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcbmA7XG5cbmNvbnN0IEV4YW1wbGVUYWJzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuYDtcblxuY29uc3QgRXhhbXBsZVRhYiA9IHN0eWxlZC5kaXY8e2FjdGl2ZTogYm9vbGVhbn0+YFxuICBwYWRkaW5nOiAzcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IChwcm9wcy5hY3RpdmUgPyBwcm9wcy50aGVtZS5BWlVSRTQwMCA6ICd0cmFuc3BhcmVudCcpfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmFjdGl2ZSA/IHByb3BzLnRoZW1lLldISVRFIDogcHJvcHMudGhlbWUuQVpVUkUyMDApfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUuQVpVUkU0MDAgOiBwcm9wcy50aGVtZS5BWlVSRTQwMCl9O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gKHByb3BzLmFjdGl2ZSA/IHByb3BzLnRoZW1lLkFaVVJFNDAwIDogcHJvcHMudGhlbWUuQVpVUkU1MDApfTtcbiAgfVxuYDtcblxuY29uc3QgRXhhbXBsZVVybCA9IHN0eWxlZC5kaXZgXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTEwMH07XG4gIH1cbmA7XG5cbmNvbnN0IFdNU19FWEFNUExFUyA9IFtcbiAge1xuICAgIGxhYmVsOiAnT1NNJyxcbiAgICBuYW1lOiAnT3BlblN0cmVldE1hcCBXTVMnLFxuICAgIHVybDogJ2h0dHBzOi8vb3dzLnRlcnJlc3RyaXMuZGUvb3NtL3NlcnZpY2UnXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ05PQUEgUmFkYXInLFxuICAgIG5hbWU6ICdOT0FBIENPTlVTIFJhZGFyJyxcbiAgICB1cmw6ICdodHRwczovL29wZW5nZW8ubmNlcC5ub2FhLmdvdi9nZW9zZXJ2ZXIvY29udXMvY29udXNfY3JlZl9xY2Qvb3dzJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6ICdOQVNBIEdJQlMnLFxuICAgIG5hbWU6ICdOQVNBIEdJQlMnLFxuICAgIHVybDogJ2h0dHBzOi8vZ2licy5lYXJ0aGRhdGEubmFzYS5nb3Yvd21zL2Vwc2c0MzI2L2Jlc3Qvd21zLmNnaSdcbiAgfVxuXTtcblxudHlwZSBXTVNUaWxlRm9ybVByb3BzID0ge1xuICBzZXRSZXNwb25zZTogKHJlc3BvbnNlOiBNZXRhUmVzcG9uc2UpID0+IHZvaWQ7XG59O1xuXG50eXBlIFdNU0RhdGEgPSB7XG4gIG1ldGFkYXRhOiBXTVNDYXBhYmlsaXRpZXMgfCBudWxsO1xuICBsYXllcnM6IFdNU0RhdGFzZXRNZXRhZGF0YVsnbGF5ZXJzJ107XG4gIHZlcnNpb246IHN0cmluZztcbn07XG5cbmNvbnN0IFRpbGVzZXRXTVNGb3JtOiBSZWFjdC5GQzxXTVNUaWxlRm9ybVByb3BzPiA9ICh7c2V0UmVzcG9uc2V9KSA9PiB7XG4gIGNvbnN0IFtsYXllck5hbWUsIHNldExheWVyTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3dtc1VybCwgc2V0V21zVXJsXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8RXJyb3IgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3dtc0RhdGEsIHNldFdNU0RhdGFdID0gdXNlU3RhdGU8V01TRGF0YSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbZXhhbXBsZVRhYiwgc2V0RXhhbXBsZVRhYl0gPSB1c2VTdGF0ZSgwKTtcblxuICBjb25zdCBvbkxheWVyTmFtZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRMYXllck5hbWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9LFxuICAgIFtzZXRMYXllck5hbWVdXG4gICk7XG5cbiAgY29uc3Qgb25FeGFtcGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAodXJsOiBzdHJpbmcsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0V21zVXJsKHVybCk7XG4gICAgICBzZXRMYXllck5hbWUobmFtZSk7XG4gICAgfSxcbiAgICBbc2V0V21zVXJsLCBzZXRMYXllck5hbWVdXG4gICk7XG5cbiAgY29uc3Qgb25XbXNVcmxDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgbmV3V21zVXJsID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgc2V0V21zVXJsKG5ld1dtc1VybCk7XG5cbiAgICAgIGlmICghdmFsaWRhdGVVcmwobmV3V21zVXJsKSkge1xuICAgICAgICBzZXRXTVNEYXRhKG51bGwpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEZldGNoIFdNUyBHZXRDYXBhYmlsaXRpZXNcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRXTVNDYXBhYmlsaXRpZXMobmV3V21zVXJsKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0TWV0YWRhdGEgPSB3bXNDYXBhYmlsaXRpZXNUb0RhdGFzZXRNZXRhZGF0YShkYXRhKTtcblxuICAgICAgICAvLyBFeHRyYWN0IG5hbWUgb3IgdGl0bGUgZnJvbSBHZXRDYXBhYmlsaXRpZXMgcmVzcG9uc2VcbiAgICAgICAgY29uc3Qgc2VydmljZVRpdGxlID0gZGF0YT8udGl0bGUgfHwgZGF0YT8ubmFtZTtcbiAgICAgICAgaWYgKHNlcnZpY2VUaXRsZSAmJiAhbGF5ZXJOYW1lKSB7XG4gICAgICAgICAgc2V0TGF5ZXJOYW1lKHNlcnZpY2VUaXRsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRXTVNEYXRhKHtcbiAgICAgICAgICBtZXRhZGF0YTogZGF0YSxcbiAgICAgICAgICBsYXllcnM6IGRhdGFzZXRNZXRhZGF0YS5sYXllcnMsXG4gICAgICAgICAgdmVyc2lvbjogZGF0YXNldE1ldGFkYXRhLnZlcnNpb25cbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIgOiBuZXcgRXJyb3IoJ1Vua25vd24gZXJyb3InKSk7XG4gICAgICAgIHNldFdNU0RhdGEobnVsbCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsYXllck5hbWVdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGF5ZXJOYW1lICYmIHdtc1VybCkge1xuICAgICAgY29uc3QgZGF0YXNldCA9IHtcbiAgICAgICAgbmFtZTogbGF5ZXJOYW1lLFxuICAgICAgICB0eXBlOiBEYXRhc2V0VHlwZS5XTVNfVElMRSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICB0eXBlOiBSRU1PVEVfVElMRSxcbiAgICAgICAgICByZW1vdGVUaWxlRm9ybWF0OiBSZW1vdGVUaWxlRm9ybWF0LldNUyxcbiAgICAgICAgICB0aWxlc2V0RGF0YVVybDogd21zVXJsLFxuICAgICAgICAgIHRpbGVzZXRNZXRhZGF0YVVybDogYCR7d21zVXJsfT9zZXJ2aWNlPVdNUyZyZXF1ZXN0PUdldENhcGFiaWxpdGllc2AsXG4gICAgICAgICAgbGF5ZXJzOiB3bXNEYXRhPy5sYXllcnMgfHwgW10sXG4gICAgICAgICAgd21zVmVyc2lvbjogd21zRGF0YT8udmVyc2lvbiB8fCAnMS4zLjAnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhOiB3bXNEYXRhPy5tZXRhZGF0YSA/PyBudWxsLFxuICAgICAgICBkYXRhc2V0LFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFJlc3BvbnNlKHtcbiAgICAgICAgbWV0YWRhdGE6IG51bGwsXG4gICAgICAgIGRhdGFzZXQ6IG51bGwsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtzZXRSZXNwb25zZSwgbGF5ZXJOYW1lLCB3bXNVcmwsIHdtc0RhdGEsIGxvYWRpbmcsIGVycm9yXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGlsZXNldElucHV0Q29udGFpbmVyPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJsYXllci1uYW1lXCI+TmFtZTwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJsYXllci1uYW1lXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUgeW91ciBXTVMgbGF5ZXJcIlxuICAgICAgICAgIHZhbHVlPXtsYXllck5hbWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uTGF5ZXJOYW1lQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgaHRtbEZvcj1cIndtcy11cmxcIj5XTVMgVVJMPC9sYWJlbD5cbiAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICBpZD1cIndtcy11cmxcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgV01TIFVSTFwiXG4gICAgICAgICAgdmFsdWU9e3dtc1VybH1cbiAgICAgICAgICBvbkNoYW5nZT17b25XbXNVcmxDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5Qcm92aWRlIGEgdmFsaWQgV01TIHNlcnZpY2UgVVJMLjwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5Gb3IgZXhhbXBsZSwgdHJ5IGEgcHVibGljIFdNUyBVUkw6PC9UaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgPEV4YW1wbGVVcmxzQ29udGFpbmVyPlxuICAgICAgICAgIDxFeGFtcGxlVGFicz5cbiAgICAgICAgICAgIHtXTVNfRVhBTVBMRVMubWFwKChleCwgaSkgPT4gKFxuICAgICAgICAgICAgICA8RXhhbXBsZVRhYlxuICAgICAgICAgICAgICAgIGtleT17ZXgubGFiZWx9XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtleGFtcGxlVGFiID09PSBpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldEV4YW1wbGVUYWIoaSk7XG4gICAgICAgICAgICAgICAgICBvbkV4YW1wbGVDbGljayhleC51cmwsIGV4Lm5hbWUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZXgubGFiZWx9XG4gICAgICAgICAgICAgIDwvRXhhbXBsZVRhYj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvRXhhbXBsZVRhYnM+XG4gICAgICAgICAgPEV4YW1wbGVVcmxcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIG9uRXhhbXBsZUNsaWNrKFdNU19FWEFNUExFU1tleGFtcGxlVGFiXS51cmwsIFdNU19FWEFNUExFU1tleGFtcGxlVGFiXS5uYW1lKVxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtXTVNfRVhBTVBMRVNbZXhhbXBsZVRhYl0udXJsfVxuICAgICAgICAgIDwvRXhhbXBsZVVybD5cbiAgICAgICAgPC9FeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvVGlsZXNldElucHV0Q29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGlsZXNldFdNU0Zvcm07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFBd0MsSUFBQU8sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVp4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TyxFQUFDO0VBQVMsR0FBQyxTQUFjLENBQUMsZUFDeEMxSSxNQUFBLFlBQUF5SSxhQUFBLENBQUNqSSxPQUFBLENBQUFtSSxVQUFVO0lBQ1RDLEVBQUUsRUFBQyxTQUFTO0lBQ1pDLFdBQVcsRUFBQyxlQUFlO0lBQzNCbkQsS0FBSyxFQUFFdkIsTUFBTztJQUNkMkUsUUFBUSxFQUFFbEQ7RUFBZSxDQUMxQixDQUFDLGVBQ0Y1RixNQUFBLFlBQUF5SSxhQUFBLENBQUNsRyx1QkFBdUIsUUFBQyxrQ0FBeUQsQ0FDL0UsQ0FBQyxlQUNOdkMsTUFBQSxZQUFBeUksYUFBQSwyQkFDRXpJLE1BQUEsWUFBQXlJLGFBQUEsQ0FBQ2xHLHVCQUF1QixRQUFDLG9DQUEyRCxDQUFDLGVBQ3JGdkMsTUFBQSxZQUFBeUksYUFBQSxDQUFDOUYsb0JBQW9CLHFCQUNuQjNDLE1BQUEsWUFBQXlJLGFBQUEsQ0FBQzdGLFdBQVcsUUFDVFEsWUFBWSxDQUFDMkYsR0FBRyxDQUFDLFVBQUNDLEVBQUUsRUFBRS9HLENBQUM7SUFBQSxvQkFDdEJqQyxNQUFBLFlBQUF5SSxhQUFBLENBQUM1RixVQUFVO01BQ1RvRyxHQUFHLEVBQUVELEVBQUUsQ0FBQzNGLEtBQU07TUFDZFAsTUFBTSxFQUFFcUMsVUFBVSxLQUFLbEQsQ0FBRTtNQUN6QmlILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFDYjlELGFBQWEsQ0FBQ25ELENBQUMsQ0FBQztRQUNoQjBELGNBQWMsQ0FBQ3FELEVBQUUsQ0FBQ3pGLEdBQUcsRUFBRXlGLEVBQUUsQ0FBQzFGLElBQUksQ0FBQztNQUNqQztJQUFFLEdBRUQwRixFQUFFLENBQUMzRixLQUNNLENBQUM7RUFBQSxDQUNkLENBQ1UsQ0FBQyxlQUNkckQsTUFBQSxZQUFBeUksYUFBQSxDQUFDdkYsVUFBVTtJQUNUZ0csT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUNMdkQsY0FBYyxDQUFDdkMsWUFBWSxDQUFDK0IsVUFBVSxDQUFDLENBQUM1QixHQUFHLEVBQUVILFlBQVksQ0FBQytCLFVBQVUsQ0FBQyxDQUFDN0IsSUFBSSxDQUFDO0lBQUE7RUFDNUUsR0FFQUYsWUFBWSxDQUFDK0IsVUFBVSxDQUFDLENBQUM1QixHQUNoQixDQUNRLENBQ25CLENBQ2dCLENBQUM7QUFFNUIsQ0FBQztBQUFDLElBQUE0RixRQUFBLEdBQUFDLE9BQUEsY0FFYTVGLGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/plot-container.js
CHANGED
|
@@ -32,11 +32,36 @@ var DOM_FILTER_FUNC = function DOM_FILTER_FUNC(node) {
|
|
|
32
32
|
return !CLASS_FILTER.includes(node.className);
|
|
33
33
|
};
|
|
34
34
|
var OUT_OF_SCREEN_POSITION = -9999;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Calculates legend zoom based on export height
|
|
38
|
+
* Maps export height to a zoom factor between 0.5 and 3
|
|
39
|
+
* @param height - export height in pixels
|
|
40
|
+
* @returns zoom factor for legend panel
|
|
41
|
+
*/
|
|
42
|
+
function calculateLegendZoom(height) {
|
|
43
|
+
var baseHeight = 1080; // 1x zoom reference height
|
|
44
|
+
var minZoom = 0.5;
|
|
45
|
+
var maxZoom = 3;
|
|
46
|
+
|
|
47
|
+
// For initial/invalid heights, avoid shrinking the legend; use no scaling.
|
|
48
|
+
if (!Number.isFinite(height) || height <= 0) {
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Linear mapping: height / baseHeight gives us the scale
|
|
53
|
+
var zoomFactor = height / baseHeight;
|
|
54
|
+
// Clamp between min and max
|
|
55
|
+
return Math.max(minZoom, Math.min(maxZoom, zoomFactor));
|
|
56
|
+
}
|
|
35
57
|
PlotContainerFactory.deps = [_mapContainer["default"], _mapsLayout["default"]];
|
|
36
58
|
|
|
37
59
|
// Remove mapbox logo in exported map, because it contains non-ascii characters
|
|
38
60
|
// Remove split viewport UI controls from exported images when the legend is shown
|
|
39
|
-
|
|
61
|
+
|
|
62
|
+
var StyledPlotContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .maplibregl-ctrl-bottom-left,\n .maplibregl-ctrl-bottom-right,\n .maplibre-attribution-container,\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapbox-attribution-container,\n .map-control__panel-split-viewport-tools {\n display: none;\n }\n\n position: absolute;\n top: ", "px;\n left: ", "px;\n\n /* Apply zoom to legend panel based on export height */\n .map-control-panel {\n zoom: ", " !important;\n }\n"])), OUT_OF_SCREEN_POSITION, OUT_OF_SCREEN_POSITION, function (props) {
|
|
63
|
+
return props.legendZoom || 1;
|
|
64
|
+
});
|
|
40
65
|
var StyledMapContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", "px;\n height: ", "px;\n display: flex;\n"])), function (props) {
|
|
41
66
|
return props.width;
|
|
42
67
|
}, function (props) {
|
|
@@ -69,6 +94,9 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
69
94
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
70
95
|
plotEffects = _useState2[0];
|
|
71
96
|
var mapState = mapFields.mapState;
|
|
97
|
+
var deckLayersLoadingRef = (0, _react.useRef)(true);
|
|
98
|
+
var mapStyleLoadedRef = (0, _react.useRef)(false);
|
|
99
|
+
var screenshotTakenRef = (0, _react.useRef)(false);
|
|
72
100
|
|
|
73
101
|
// Memoize the scale calculation
|
|
74
102
|
var scale = (0, _react.useMemo)(function () {
|
|
@@ -79,6 +107,11 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
79
107
|
return calculatedScale > 0 ? calculatedScale : 1;
|
|
80
108
|
}, [imageSize.scale, imageSize.imageW, imageSize.imageH, mapState.width, mapState.height, mapState.isSplit]);
|
|
81
109
|
|
|
110
|
+
// Memoize the legend zoom calculation based on export height
|
|
111
|
+
var legendZoom = (0, _react.useMemo)(function () {
|
|
112
|
+
return calculateLegendZoom(imageSize.imageH);
|
|
113
|
+
}, [imageSize.imageH]);
|
|
114
|
+
|
|
82
115
|
// Memoize the map style
|
|
83
116
|
var scaledMapStyle = (0, _react.useMemo)(function () {
|
|
84
117
|
var mapStyle = mapFields.mapStyle;
|
|
@@ -109,16 +142,50 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
109
142
|
}, 500);
|
|
110
143
|
}, [imageSize.imageW, imageSize.imageH, escapeXhtmlForWebpack, setExportImageDataUri, setExportImageError, enableErrorNotification, addNotification]);
|
|
111
144
|
var retrieveNewScreenshot = (0, _react.useCallback)(debouncedScreenshot, [debouncedScreenshot]);
|
|
145
|
+
var tryScreenshot = (0, _react.useCallback)(function () {
|
|
146
|
+
if (mapStyleLoadedRef.current && !deckLayersLoadingRef.current) {
|
|
147
|
+
screenshotTakenRef.current = true;
|
|
148
|
+
retrieveNewScreenshot();
|
|
149
|
+
}
|
|
150
|
+
}, [retrieveNewScreenshot]);
|
|
151
|
+
|
|
152
|
+
// Fallback: if layers never finish loading, capture after timeout
|
|
153
|
+
(0, _react.useEffect)(function () {
|
|
154
|
+
var timer = setTimeout(function () {
|
|
155
|
+
if (!screenshotTakenRef.current) {
|
|
156
|
+
deckLayersLoadingRef.current = false;
|
|
157
|
+
tryScreenshot();
|
|
158
|
+
}
|
|
159
|
+
}, 30000);
|
|
160
|
+
return function () {
|
|
161
|
+
return clearTimeout(timer);
|
|
162
|
+
};
|
|
163
|
+
}, [tryScreenshot]);
|
|
112
164
|
|
|
113
165
|
// Memoize the onMapRender callback
|
|
114
166
|
var debouncedMapRender = (0, _react.useMemo)(function () {
|
|
115
167
|
return (0, _debounce["default"])(function (map) {
|
|
116
168
|
if (map.isStyleLoaded()) {
|
|
117
|
-
|
|
169
|
+
mapStyleLoadedRef.current = true;
|
|
170
|
+
tryScreenshot();
|
|
118
171
|
}
|
|
119
172
|
}, 500);
|
|
120
|
-
}, [
|
|
173
|
+
}, [tryScreenshot]);
|
|
121
174
|
var onMapRender = (0, _react.useCallback)(debouncedMapRender, [debouncedMapRender]);
|
|
175
|
+
var deckRenderCallbacks = (0, _react.useMemo)(function () {
|
|
176
|
+
return {
|
|
177
|
+
onDeckAfterRender: function onDeckAfterRender(deckProps) {
|
|
178
|
+
var layers = deckProps.layers;
|
|
179
|
+
if (!layers) return;
|
|
180
|
+
var stillLoading = (0, _reducers.areAnyDeckLayersLoading)(layers);
|
|
181
|
+
if (deckLayersLoadingRef.current && !stillLoading) {
|
|
182
|
+
deckLayersLoadingRef.current = false;
|
|
183
|
+
tryScreenshot();
|
|
184
|
+
}
|
|
185
|
+
deckLayersLoadingRef.current = stillLoading;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
}, [tryScreenshot]);
|
|
122
189
|
|
|
123
190
|
// Initial setup effect
|
|
124
191
|
(0, _react.useEffect)(function () {
|
|
@@ -133,9 +200,9 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
133
200
|
setExportImageSetting({
|
|
134
201
|
processing: true
|
|
135
202
|
});
|
|
136
|
-
|
|
203
|
+
tryScreenshot();
|
|
137
204
|
}
|
|
138
|
-
}, [ratio, resolution, legend, setExportImageSetting,
|
|
205
|
+
}, [ratio, resolution, legend, setExportImageSetting, tryScreenshot]);
|
|
139
206
|
|
|
140
207
|
// Memoize size calculations
|
|
141
208
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
@@ -199,18 +266,21 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
199
266
|
onMapRender: onMapRender,
|
|
200
267
|
isExport: true,
|
|
201
268
|
deckGlProps: _objectSpread(_objectSpread({}, mapFields.deckGlProps), {}, {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
269
|
+
useDevicePixels: false,
|
|
270
|
+
deviceProps: {
|
|
271
|
+
webgl: {
|
|
272
|
+
preserveDrawingBuffer: true
|
|
273
|
+
}
|
|
205
274
|
}
|
|
206
275
|
}),
|
|
276
|
+
deckRenderCallbacks: deckRenderCallbacks,
|
|
207
277
|
visState: _objectSpread(_objectSpread({}, mapFields.visState), {}, {
|
|
208
278
|
effects: plotEffects
|
|
209
279
|
}),
|
|
210
280
|
// allow overriding the legend panel logo in export
|
|
211
281
|
logoComponent: logoComponent
|
|
212
282
|
});
|
|
213
|
-
}, [mapFields, scaledMapStyle, newMapState, legend, onMapRender, plotEffects, logoComponent]);
|
|
283
|
+
}, [mapFields, scaledMapStyle, newMapState, legend, onMapRender, deckRenderCallbacks, plotEffects, logoComponent]);
|
|
214
284
|
var isSplit = splitMaps.length > 1;
|
|
215
285
|
var mapContainers = !isSplit ? /*#__PURE__*/_react["default"].createElement(MapContainer, (0, _extends2["default"])({
|
|
216
286
|
index: 0,
|
|
@@ -226,7 +296,8 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
226
296
|
}, mapProps));
|
|
227
297
|
}));
|
|
228
298
|
return /*#__PURE__*/_react["default"].createElement(StyledPlotContainer, {
|
|
229
|
-
className: "export-map-instance"
|
|
299
|
+
className: "export-map-instance",
|
|
300
|
+
legendZoom: legendZoom
|
|
230
301
|
}, /*#__PURE__*/_react["default"].createElement(StyledMapContainer, {
|
|
231
302
|
ref: plottingAreaRef,
|
|
232
303
|
width: size.width,
|
|
@@ -237,4 +308,4 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
237
308
|
}
|
|
238
309
|
return /*#__PURE__*/_react["default"].memo(PlotContainer);
|
|
239
310
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsIk1hdGgiLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJfbWFwRmllbGRzJG1hcENvbnRyb2wiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwic2V0dGluZ3MiLCJNYXBDb21wb25lbnQiLCJNYXAiLCJpc0V4cG9ydCIsImRlY2tHbFByb3BzIiwiZ2xPcHRpb25zIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidXNlRGV2aWNlUGl4ZWxzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJpbmRleCIsInByaW1hcnkiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cblBsb3RDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwQ29udGFpbmVyRmFjdG9yeSwgTWFwc0xheW91dEZhY3RvcnldO1xuXG4vLyBSZW1vdmUgbWFwYm94IGxvZ28gaW4gZXhwb3J0ZWQgbWFwLCBiZWNhdXNlIGl0IGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzXG4vLyBSZW1vdmUgc3BsaXQgdmlld3BvcnQgVUkgY29udHJvbHMgZnJvbSBleHBvcnRlZCBpbWFnZXMgd2hlbiB0aGUgbGVnZW5kIGlzIHNob3duXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tbGVmdCxcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwYm94Z2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyLFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7T1VUX09GX1NDUkVFTl9QT1NJVElPTn1weDtcbiAgbGVmdDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRhaW5lclByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuaW50ZXJmYWNlIFBsb3RDb250YWluZXJQcm9wcyB7XG4gIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICByYXRpbz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGVnZW5kPzogYm9vbGVhbjtcbiAgY2VudGVyPzogYm9vbGVhbjtcbiAgaW1hZ2VTaXplOiBFeHBvcnRJbWFnZVsnaW1hZ2VTaXplJ107XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG5cbiAgLy8gTWFwIHNldHRpbmdzXG4gIG1hcEZpZWxkczogUmV0dXJuVHlwZTx0eXBlb2YgbWFwRmllbGRzU2VsZWN0b3I+O1xuICBzcGxpdE1hcHM/OiBTcGxpdE1hcFtdO1xuXG4gIC8vIENhbGxiYWNrc1xuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHR5cGVvZiBzZXRFeHBvcnRJbWFnZVNldHRpbmc7XG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogdHlwZW9mIHNldEV4cG9ydEltYWdlRGF0YVVyaTtcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogdHlwZW9mIHNldEV4cG9ydEltYWdlRXJyb3I7XG4gIGFkZE5vdGlmaWNhdGlvbjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgYWRkTm90aWZpY2F0aW9uPjtcblxuICAvLyBGbGFnc1xuICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gT3B0aW9uYWw6IG92ZXJyaWRlIGxlZ2VuZCBoZWFkZXIgbG9nbyBkdXJpbmcgZXhwb3J0XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsb3RDb250YWluZXJGYWN0b3J5KFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGxvdENvbnRhaW5lclByb3BzPiB7XG4gIGZ1bmN0aW9uIFBsb3RDb250YWluZXIoe1xuICAgIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICAgIHJhdGlvLFxuICAgIHJlc29sdXRpb24sXG4gICAgbGVnZW5kID0gZmFsc2UsXG4gICAgY2VudGVyLFxuICAgIGltYWdlU2l6ZSxcbiAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgICAvLyBNYXAgc2V0dGluZ3NcbiAgICBtYXBGaWVsZHMsXG4gICAgc3BsaXRNYXBzID0gW10sXG5cbiAgICAvLyBDYWxsYmFja3NcbiAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgYWRkTm90aWZpY2F0aW9uLFxuXG4gICAgLy8gRmxhZ3NcbiAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICBsb2dvQ29tcG9uZW50XG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgICAgc2V0dGluZ3M6IG1hcEZpZWxkcy5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5nc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgTWFwQ29tcG9uZW50OiBNYXAsXG4gICAgICAgIG9uTWFwUmVuZGVyLFxuICAgICAgICBpc0V4cG9ydDogdHJ1ZSxcbiAgICAgICAgZGVja0dsUHJvcHM6IHtcbiAgICAgICAgICAuLi5tYXBGaWVsZHMuZGVja0dsUHJvcHMsXG4gICAgICAgICAgZ2xPcHRpb25zOiB7XG4gICAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgICAgICAgICB1c2VEZXZpY2VQaXhlbHM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2aXNTdGF0ZToge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy52aXNTdGF0ZSxcbiAgICAgICAgICBlZmZlY3RzOiBwbG90RWZmZWN0c1xuICAgICAgICB9LFxuICAgICAgICAvLyBhbGxvdyBvdmVycmlkaW5nIHRoZSBsZWdlbmQgcGFuZWwgbG9nbyBpbiBleHBvcnRcbiAgICAgICAgbG9nb0NvbXBvbmVudFxuICAgICAgfSksXG4gICAgICBbbWFwRmllbGRzLCBzY2FsZWRNYXBTdHlsZSwgbmV3TWFwU3RhdGUsIGxlZ2VuZCwgb25NYXBSZW5kZXIsIHBsb3RFZmZlY3RzLCBsb2dvQ29tcG9uZW50XVxuICAgICk7XG5cbiAgICBjb25zdCBpc1NwbGl0ID0gc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG4gICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0ID8gKFxuICAgICAgPE1hcENvbnRhaW5lciBpbmRleD17MH0gcHJpbWFyeT17dHJ1ZX0gey4uLm1hcFByb3BzfSAvPlxuICAgICkgOiAoXG4gICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJwbG90LWNvbnRhaW5lci1tYXBzXCIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAge3NwbGl0TWFwcy5tYXAoKHNldHRpbmdzLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxNYXBDb250YWluZXIga2V5PXtpbmRleH0gaW5kZXg9e2luZGV4fSBwcmltYXJ5PXtpbmRleCA9PT0gMX0gey4uLm1hcFByb3BzfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvTWFwc0xheW91dD5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRQbG90Q29udGFpbmVyIGNsYXNzTmFtZT1cImV4cG9ydC1tYXAtaW5zdGFuY2VcIj5cbiAgICAgICAgPFN0eWxlZE1hcENvbnRhaW5lciByZWY9e3Bsb3R0aW5nQXJlYVJlZn0gd2lkdGg9e3NpemUud2lkdGh9IGhlaWdodD17c2l6ZS5oZWlnaHR9PlxuICAgICAgICAgIDxNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAgICAgIHttYXBDb250YWluZXJzfVxuICAgICAgICAgIDwvTWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkUGxvdENvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oUGxvdENvbnRhaW5lcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUlBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFPQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxvQkFBQSxHQUFBVCxPQUFBO0FBRUEsSUFBQVUsVUFB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
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiY2FsY3VsYXRlTGVnZW5kWm9vbSIsImhlaWdodCIsImJhc2VIZWlnaHQiLCJtaW5ab29tIiwibWF4Wm9vbSIsIk51bWJlciIsImlzRmluaXRlIiwiem9vbUZhY3RvciIsIk1hdGgiLCJtYXgiLCJtaW4iLCJQbG90Q29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJTdHlsZWRQbG90Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxlZ2VuZFpvb20iLCJTdHlsZWRNYXBDb250YWluZXIiLCJ3aWR0aCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwiZGVja0xheWVyc0xvYWRpbmdSZWYiLCJtYXBTdHlsZUxvYWRlZFJlZiIsInNjcmVlbnNob3RUYWtlblJlZiIsInNjYWxlIiwidXNlTWVtbyIsImNhbGN1bGF0ZWRTY2FsZSIsImdldFNjYWxlRnJvbUltYWdlU2l6ZSIsImltYWdlVyIsImltYWdlSCIsImlzU3BsaXQiLCJzY2FsZWRNYXBTdHlsZSIsIm1hcFN0eWxlIiwiYm90dG9tTWFwU3R5bGUiLCJzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uIiwidG9wTWFwU3R5bGUiLCJkZWJvdW5jZWRTY3JlZW5zaG90IiwiZGVib3VuY2UiLCJjdXJyZW50IiwiY29udmVydFRvUG5nIiwidGhlbiIsImVyciIsImV4cG9ydEltYWdlRXJyb3IiLCJyZXRyaWV2ZU5ld1NjcmVlbnNob3QiLCJ1c2VDYWxsYmFjayIsInRyeVNjcmVlbnNob3QiLCJ1c2VFZmZlY3QiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJkZWJvdW5jZWRNYXBSZW5kZXIiLCJpc1N0eWxlTG9hZGVkIiwib25NYXBSZW5kZXIiLCJkZWNrUmVuZGVyQ2FsbGJhY2tzIiwib25EZWNrQWZ0ZXJSZW5kZXIiLCJkZWNrUHJvcHMiLCJsYXllcnMiLCJzdGlsbExvYWRpbmciLCJhcmVBbnlEZWNrTGF5ZXJzTG9hZGluZyIsInByb2Nlc3NpbmciLCJ1bmRlZmluZWQiLCJfdXNlTWVtbyIsInNpemUiLCJuZXdNYXBTdGF0ZSIsImJhc2VNYXBTdGF0ZSIsInpvb20iLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsIm1hcFByb3BzIiwiX21hcEZpZWxkcyRtYXBDb250cm9sIiwibWFwQ29udHJvbHMiLCJtYXBMZWdlbmQiLCJzaG93IiwiQm9vbGVhbiIsImFjdGl2ZSIsInNldHRpbmdzIiwiTWFwQ29tcG9uZW50IiwiTWFwIiwiaXNFeHBvcnQiLCJkZWNrR2xQcm9wcyIsInVzZURldmljZVBpeGVscyIsImRldmljZVByb3BzIiwid2ViZ2wiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJtYXBDb250YWluZXJzIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImluZGV4IiwicHJpbWFyeSIsImtleSIsInJlZiIsIk1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciIsIlJlYWN0IiwibWVtbyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wbG90LWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHt1c2VSZWYsIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TWFwfSBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQge1xuICBleHBvcnRJbWFnZUVycm9yLFxuICBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uLFxuICBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyxcbiAgY29udmVydFRvUG5nLFxuICBnZXRTY2FsZUZyb21JbWFnZVNpemVcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2ZpbmRNYXBCb3VuZHMsIGFyZUFueURlY2tMYXllcnNMb2FkaW5nfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBsZWdlbmQgem9vbSBiYXNlZCBvbiBleHBvcnQgaGVpZ2h0XG4gKiBNYXBzIGV4cG9ydCBoZWlnaHQgdG8gYSB6b29tIGZhY3RvciBiZXR3ZWVuIDAuNSBhbmQgM1xuICogQHBhcmFtIGhlaWdodCAtIGV4cG9ydCBoZWlnaHQgaW4gcGl4ZWxzXG4gKiBAcmV0dXJucyB6b29tIGZhY3RvciBmb3IgbGVnZW5kIHBhbmVsXG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZUxlZ2VuZFpvb20oaGVpZ2h0OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBiYXNlSGVpZ2h0ID0gMTA4MDsgLy8gMXggem9vbSByZWZlcmVuY2UgaGVpZ2h0XG4gIGNvbnN0IG1pblpvb20gPSAwLjU7XG4gIGNvbnN0IG1heFpvb20gPSAzO1xuXG4gIC8vIEZvciBpbml0aWFsL2ludmFsaWQgaGVpZ2h0cywgYXZvaWQgc2hyaW5raW5nIHRoZSBsZWdlbmQ7IHVzZSBubyBzY2FsaW5nLlxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShoZWlnaHQpIHx8IGhlaWdodCA8PSAwKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBMaW5lYXIgbWFwcGluZzogaGVpZ2h0IC8gYmFzZUhlaWdodCBnaXZlcyB1cyB0aGUgc2NhbGVcbiAgY29uc3Qgem9vbUZhY3RvciA9IGhlaWdodCAvIGJhc2VIZWlnaHQ7XG4gIC8vIENsYW1wIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgcmV0dXJuIE1hdGgubWF4KG1pblpvb20sIE1hdGgubWluKG1heFpvb20sIHpvb21GYWN0b3IpKTtcbn1cblxuUGxvdENvbnRhaW5lckZhY3RvcnkuZGVwcyA9IFtNYXBDb250YWluZXJGYWN0b3J5LCBNYXBzTGF5b3V0RmFjdG9yeV07XG5cbi8vIFJlbW92ZSBtYXBib3ggbG9nbyBpbiBleHBvcnRlZCBtYXAsIGJlY2F1c2UgaXQgY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnNcbi8vIFJlbW92ZSBzcGxpdCB2aWV3cG9ydCBVSSBjb250cm9scyBmcm9tIGV4cG9ydGVkIGltYWdlcyB3aGVuIHRoZSBsZWdlbmQgaXMgc2hvd25cbmludGVyZmFjZSBTdHlsZWRQbG90Q29udGFpbmVyUHJvcHMge1xuICBsZWdlbmRab29tPzogbnVtYmVyO1xufVxuXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRQbG90Q29udGFpbmVyUHJvcHM+YFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGxpYnJlLWF0dHJpYnV0aW9uLWNvbnRhaW5lcixcbiAgLm1hcGJveGdsLWN0cmwtYm90dG9tLWxlZnQsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGJveC1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXAtY29udHJvbF9fcGFuZWwtc3BsaXQtdmlld3BvcnQtdG9vbHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuICBsZWZ0OiAke09VVF9PRl9TQ1JFRU5fUE9TSVRJT059cHg7XG5cbiAgLyogQXBwbHkgem9vbSB0byBsZWdlbmQgcGFuZWwgYmFzZWQgb24gZXhwb3J0IGhlaWdodCAqL1xuICAubWFwLWNvbnRyb2wtcGFuZWwge1xuICAgIHpvb206ICR7cHJvcHMgPT4gcHJvcHMubGVnZW5kWm9vbSB8fCAxfSAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgU3R5bGVkTWFwQ29udGFpbmVyUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5jb25zdCBTdHlsZWRNYXBDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5pbnRlcmZhY2UgUGxvdENvbnRhaW5lclByb3BzIHtcbiAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gIHJhdGlvPzogc3RyaW5nO1xuICByZXNvbHV0aW9uPzogc3RyaW5nO1xuICBsZWdlbmQ/OiBib29sZWFuO1xuICBjZW50ZXI/OiBib29sZWFuO1xuICBpbWFnZVNpemU6IEV4cG9ydEltYWdlWydpbWFnZVNpemUnXTtcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrPzogYm9vbGVhbjtcblxuICAvLyBNYXAgc2V0dGluZ3NcbiAgbWFwRmllbGRzOiBSZXR1cm5UeXBlPHR5cGVvZiBtYXBGaWVsZHNTZWxlY3Rvcj47XG4gIHNwbGl0TWFwcz86IFNwbGl0TWFwW107XG5cbiAgLy8gQ2FsbGJhY2tzXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogdHlwZW9mIHNldEV4cG9ydEltYWdlU2V0dGluZztcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VEYXRhVXJpO1xuICBzZXRFeHBvcnRJbWFnZUVycm9yOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VFcnJvcjtcbiAgYWRkTm90aWZpY2F0aW9uOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBhZGROb3RpZmljYXRpb24+O1xuXG4gIC8vIEZsYWdzXG4gIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvLyBPcHRpb25hbDogb3ZlcnJpZGUgbGVnZW5kIGhlYWRlciBsb2dvIGR1cmluZyBleHBvcnRcbiAgbG9nb0NvbXBvbmVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGxvdENvbnRhaW5lckZhY3RvcnkoXG4gIE1hcENvbnRhaW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udGFpbmVyRmFjdG9yeT4sXG4gIE1hcHNMYXlvdXQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcHNMYXlvdXRGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxQbG90Q29udGFpbmVyUHJvcHM+IHtcbiAgZnVuY3Rpb24gUGxvdENvbnRhaW5lcih7XG4gICAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gICAgcmF0aW8sXG4gICAgcmVzb2x1dGlvbixcbiAgICBsZWdlbmQgPSBmYWxzZSxcbiAgICBjZW50ZXIsXG4gICAgaW1hZ2VTaXplLFxuICAgIGVzY2FwZVhodG1sRm9yV2VicGFjayxcblxuICAgIC8vIE1hcCBzZXR0aW5nc1xuICAgIG1hcEZpZWxkcyxcbiAgICBzcGxpdE1hcHMgPSBbXSxcblxuICAgIC8vIENhbGxiYWNrc1xuICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgICBhZGROb3RpZmljYXRpb24sXG5cbiAgICAvLyBGbGFnc1xuICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgIGxvZ29Db21wb25lbnRcbiAgfTogUGxvdENvbnRhaW5lclByb3BzKSB7XG4gICAgY29uc3QgcGxvdHRpbmdBcmVhUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcGxvdEVmZmVjdHNdID0gdXNlU3RhdGU8RWZmZWN0W10+KCgpID0+XG4gICAgICBtYXBGaWVsZHMudmlzU3RhdGUuZWZmZWN0cy5tYXAoZWZmZWN0ID0+IGVmZmVjdC5jbG9uZSgpKVxuICAgICk7XG5cbiAgICBjb25zdCB7bWFwU3RhdGV9ID0gbWFwRmllbGRzO1xuXG4gICAgY29uc3QgZGVja0xheWVyc0xvYWRpbmdSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gICAgY29uc3QgbWFwU3R5bGVMb2FkZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHNjcmVlbnNob3RUYWtlblJlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgICAvLyBNZW1vaXplIHRoZSBzY2FsZSBjYWxjdWxhdGlvblxuICAgIGNvbnN0IHNjYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaW1hZ2VTaXplLnNjYWxlKSB7XG4gICAgICAgIHJldHVybiBpbWFnZVNpemUuc2NhbGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRTY2FsZSA9IGdldFNjYWxlRnJvbUltYWdlU2l6ZShcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgbWFwU3RhdGUud2lkdGggKiAobWFwU3RhdGUuaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgbWFwU3RhdGUuaGVpZ2h0XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gY2FsY3VsYXRlZFNjYWxlID4gMCA/IGNhbGN1bGF0ZWRTY2FsZSA6IDE7XG4gICAgfSwgW1xuICAgICAgaW1hZ2VTaXplLnNjYWxlLFxuICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgIGltYWdlU2l6ZS5pbWFnZUgsXG4gICAgICBtYXBTdGF0ZS53aWR0aCxcbiAgICAgIG1hcFN0YXRlLmhlaWdodCxcbiAgICAgIG1hcFN0YXRlLmlzU3BsaXRcbiAgICBdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIGxlZ2VuZCB6b29tIGNhbGN1bGF0aW9uIGJhc2VkIG9uIGV4cG9ydCBoZWlnaHRcbiAgICBjb25zdCBsZWdlbmRab29tID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gY2FsY3VsYXRlTGVnZW5kWm9vbShpbWFnZVNpemUuaW1hZ2VIKTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlSF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIGNvbnN0IHRyeVNjcmVlbnNob3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAobWFwU3R5bGVMb2FkZWRSZWYuY3VycmVudCAmJiAhZGVja0xheWVyc0xvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgICBzY3JlZW5zaG90VGFrZW5SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgfVxuICAgIH0sIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIEZhbGxiYWNrOiBpZiBsYXllcnMgbmV2ZXIgZmluaXNoIGxvYWRpbmcsIGNhcHR1cmUgYWZ0ZXIgdGltZW91dFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXNjcmVlbnNob3RUYWtlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZGVja0xheWVyc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIHRyeVNjcmVlbnNob3QoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMzAwMDApO1xuICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgfSwgW3RyeVNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIG1hcFN0eWxlTG9hZGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgdHJ5U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFt0cnlTY3JlZW5zaG90XVxuICAgICk7XG5cbiAgICBjb25zdCBvbk1hcFJlbmRlciA9IHVzZUNhbGxiYWNrKGRlYm91bmNlZE1hcFJlbmRlciwgW2RlYm91bmNlZE1hcFJlbmRlcl0pO1xuXG4gICAgY29uc3QgZGVja1JlbmRlckNhbGxiYWNrcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBvbkRlY2tBZnRlclJlbmRlcjogKGRlY2tQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgICBjb25zdCBsYXllcnMgPSBkZWNrUHJvcHMubGF5ZXJzIGFzIGFueVtdO1xuICAgICAgICAgIGlmICghbGF5ZXJzKSByZXR1cm47XG4gICAgICAgICAgY29uc3Qgc3RpbGxMb2FkaW5nID0gYXJlQW55RGVja0xheWVyc0xvYWRpbmcobGF5ZXJzKTtcbiAgICAgICAgICBpZiAoZGVja0xheWVyc0xvYWRpbmdSZWYuY3VycmVudCAmJiAhc3RpbGxMb2FkaW5nKSB7XG4gICAgICAgICAgICBkZWNrTGF5ZXJzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0cnlTY3JlZW5zaG90KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlY2tMYXllcnNMb2FkaW5nUmVmLmN1cnJlbnQgPSBzdGlsbExvYWRpbmc7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgW3RyeVNjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIC8vIEluaXRpYWwgc2V0dXAgZWZmZWN0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgIH0sIFtzZXRFeHBvcnRJbWFnZVNldHRpbmddKTtcblxuICAgIC8vIFNjcmVlbnNob3QgdXBkYXRlIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAocmF0aW8gIT09IHVuZGVmaW5lZCB8fCByZXNvbHV0aW9uICE9PSB1bmRlZmluZWQgfHwgbGVnZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nKHtwcm9jZXNzaW5nOiB0cnVlfSk7XG4gICAgICAgIHRyeVNjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCB0cnlTY3JlZW5zaG90XSk7XG5cbiAgICAvLyBNZW1vaXplIHNpemUgY2FsY3VsYXRpb25zXG4gICAgY29uc3Qge3NpemUsIHdpZHRoLCBoZWlnaHR9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0ge1xuICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyB8fCAxLFxuICAgICAgICBoZWlnaHQ6IGltYWdlU2l6ZS5pbWFnZUggfHwgMVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBzcGxpdE1hcHMubGVuZ3RoID4gMTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNpemUsXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoIC8gKGlzU3BsaXQgPyAyIDogMSksXG4gICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgIH07XG4gICAgfSwgW2ltYWdlU2l6ZS5pbWFnZVcsIGltYWdlU2l6ZS5pbWFnZUgsIHNwbGl0TWFwcy5sZW5ndGhdKTtcblxuICAgIC8vIE1lbW9pemUgbWFwIHN0YXRlXG4gICAgY29uc3QgbmV3TWFwU3RhdGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGJhc2VNYXBTdGF0ZSA9IHtcbiAgICAgICAgLi4ubWFwU3RhdGUsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHpvb206IG1hcFN0YXRlLnpvb20gKyAoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgfTtcblxuICAgICAgaWYgKGNlbnRlcikge1xuICAgICAgICBjb25zdCByZW5kZXJlZExheWVycyA9IG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllcnMuZmlsdGVyKFxuICAgICAgICAgIChsYXllciwgaWR4KSA9PlxuICAgICAgICAgICAgbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEICYmXG4gICAgICAgICAgICBsYXllci5zaG91bGRSZW5kZXJMYXllcihtYXBGaWVsZHMudmlzU3RhdGUubGF5ZXJEYXRhW2lkeF0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGZpbmRNYXBCb3VuZHMocmVuZGVyZWRMYXllcnMpO1xuICAgICAgICBjb25zdCBjZW50ZXJBbmRab29tID0gZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMoYm91bmRzLCB7d2lkdGgsIGhlaWdodH0pO1xuICAgICAgICBpZiAoY2VudGVyQW5kWm9vbSkge1xuICAgICAgICAgIGNvbnN0IHpvb20gPSBOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKSA/IGNlbnRlckFuZFpvb20uem9vbSA6IG1hcFN0YXRlLnpvb207XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VNYXBTdGF0ZSxcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgICAgICAgICB6b29tOiB6b29tICsgTnVtYmVyKE1hdGgubG9nMihzY2FsZSkgfHwgMClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYXNlTWFwU3RhdGU7XG4gICAgfSwgW21hcFN0YXRlLCB3aWR0aCwgaGVpZ2h0LCBzY2FsZSwgY2VudGVyLCBtYXBGaWVsZHMudmlzU3RhdGVdKTtcblxuICAgIC8vIE1lbW9pemUgbWFwIHByb3BzXG4gICAgY29uc3QgbWFwUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgLi4ubWFwRmllbGRzLFxuICAgICAgICBtYXBTdHlsZTogc2NhbGVkTWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlOiBuZXdNYXBTdGF0ZSxcbiAgICAgICAgbWFwQ29udHJvbHM6IHtcbiAgICAgICAgICBtYXBMZWdlbmQ6IHtcbiAgICAgICAgICAgIHNob3c6IEJvb2xlYW4obGVnZW5kKSxcbiAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHNldHRpbmdzOiBtYXBGaWVsZHMubWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3NcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIE1hcENvbXBvbmVudDogTWFwLFxuICAgICAgICBvbk1hcFJlbmRlcixcbiAgICAgICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgICAgIGRlY2tHbFByb3BzOiB7XG4gICAgICAgICAgLi4ubWFwRmllbGRzLmRlY2tHbFByb3BzLFxuICAgICAgICAgIHVzZURldmljZVBpeGVsczogZmFsc2UsXG4gICAgICAgICAgZGV2aWNlUHJvcHM6IHtcbiAgICAgICAgICAgIHdlYmdsOiB7XG4gICAgICAgICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGVja1JlbmRlckNhbGxiYWNrcyxcbiAgICAgICAgdmlzU3RhdGU6IHtcbiAgICAgICAgICAuLi5tYXBGaWVsZHMudmlzU3RhdGUsXG4gICAgICAgICAgZWZmZWN0czogcGxvdEVmZmVjdHNcbiAgICAgICAgfSxcbiAgICAgICAgLy8gYWxsb3cgb3ZlcnJpZGluZyB0aGUgbGVnZW5kIHBhbmVsIGxvZ28gaW4gZXhwb3J0XG4gICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgIH0pLFxuICAgICAgW1xuICAgICAgICBtYXBGaWVsZHMsXG4gICAgICAgIHNjYWxlZE1hcFN0eWxlLFxuICAgICAgICBuZXdNYXBTdGF0ZSxcbiAgICAgICAgbGVnZW5kLFxuICAgICAgICBvbk1hcFJlbmRlcixcbiAgICAgICAgZGVja1JlbmRlckNhbGxiYWNrcyxcbiAgICAgICAgcGxvdEVmZmVjdHMsXG4gICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IG1hcENvbnRhaW5lcnMgPSAhaXNTcGxpdCA/IChcbiAgICAgIDxNYXBDb250YWluZXIgaW5kZXg9ezB9IHByaW1hcnk9e3RydWV9IHsuLi5tYXBQcm9wc30gLz5cbiAgICApIDogKFxuICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwicGxvdC1jb250YWluZXItbWFwc1wiIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgIHtzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICA8TWFwQ29udGFpbmVyIGtleT17aW5kZXh9IGluZGV4PXtpbmRleH0gcHJpbWFyeT17aW5kZXggPT09IDF9IHsuLi5tYXBQcm9wc30gLz5cbiAgICAgICAgKSl9XG4gICAgICA8L01hcHNMYXlvdXQ+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkUGxvdENvbnRhaW5lciBjbGFzc05hbWU9XCJleHBvcnQtbWFwLWluc3RhbmNlXCIgbGVnZW5kWm9vbT17bGVnZW5kWm9vbX0+XG4gICAgICAgIDxTdHlsZWRNYXBDb250YWluZXIgcmVmPXtwbG90dGluZ0FyZWFSZWZ9IHdpZHRoPXtzaXplLndpZHRofSBoZWlnaHQ9e3NpemUuaGVpZ2h0fT5cbiAgICAgICAgICA8TWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICA8L01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgPC9TdHlsZWRNYXBDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFBsb3RDb250YWluZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdC5tZW1vKFBsb3RDb250YWluZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9B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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DataContainerInterface } from '@kepler.gl/utils';
|
|
3
|
-
|
|
3
|
+
type MiniDataset = {
|
|
4
4
|
dataContainer: DataContainerInterface;
|
|
5
5
|
type?: string;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type DatasetInfoProps = {
|
|
8
8
|
dataset: MiniDataset;
|
|
9
9
|
};
|
|
10
10
|
export default function DatasetInfoFactory(): React.FC<DatasetInfoProps>;
|
|
@@ -23,7 +23,7 @@ function DatasetInfoFactory() {
|
|
|
23
23
|
return /*#__PURE__*/_react["default"].createElement(StyledDataRowCount, {
|
|
24
24
|
className: "source-data-rows"
|
|
25
25
|
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
26
|
-
id: dataset.type === _constants.DatasetType.VECTOR_TILE ? 'datasetInfo.vectorTile' : dataset.type === _constants.DatasetType.RASTER_TILE ? 'datasetInfo.rasterTile' : dataset.type === _constants.DatasetType.WMS_TILE ? 'datasetInfo.wmsTile' : 'datasetInfo.rowCount',
|
|
26
|
+
id: dataset.type === _constants.DatasetType.VECTOR_TILE ? 'datasetInfo.vectorTile' : dataset.type === _constants.DatasetType.RASTER_TILE ? 'datasetInfo.rasterTile' : dataset.type === _constants.DatasetType.WMS_TILE ? 'datasetInfo.wmsTile' : dataset.type === _constants.DatasetType.TILE_3D ? 'datasetInfo.tile3d' : 'datasetInfo.rowCount',
|
|
27
27
|
values: {
|
|
28
28
|
rowCount: numFormat(dataset.dataContainer.numRows())
|
|
29
29
|
}
|
|
@@ -31,4 +31,4 @@ function DatasetInfoFactory() {
|
|
|
31
31
|
};
|
|
32
32
|
return DatasetInfo;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2QzRm9ybWF0IiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJudW1Gb3JtYXQiLCJmb3JtYXQiLCJTdHlsZWREYXRhUm93Q291bnQiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzdWJ0ZXh0Q29sb3IiLCJEYXRhc2V0SW5mb0ZhY3RvcnkiLCJEYXRhc2V0SW5mbyIsIl9yZWYiLCJkYXRhc2V0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJpZCIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlZFQ1RPUl9USUxFIiwiUkFTVEVSX1RJTEUiLCJXTVNfVElMRSIsIlRJTEVfM0QiLCJ2YWx1ZXMiLCJyb3dDb3VudCIsImRhdGFDb250YWluZXIiLCJudW1Sb3dzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtmb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5cbmltcG9ydCB7RGF0YXNldFR5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuY29uc3QgbnVtRm9ybWF0ID0gZm9ybWF0KCcsJyk7XG5cbnR5cGUgTWluaURhdGFzZXQgPSB7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2U7XG4gIHR5cGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhc2V0SW5mb1Byb3BzID0ge1xuICBkYXRhc2V0OiBNaW5pRGF0YXNldDtcbn07XG5cbmNvbnN0IFN0eWxlZERhdGFSb3dDb3VudCA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgcGFkZGluZy1sZWZ0OiAxOXB4O1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGF0YXNldEluZm9GYWN0b3J5KCkge1xuICBjb25zdCBEYXRhc2V0SW5mbzogUmVhY3QuRkM8RGF0YXNldEluZm9Qcm9wcz4gPSAoe2RhdGFzZXR9OiBEYXRhc2V0SW5mb1Byb3BzKSA9PiAoXG4gICAgPFN0eWxlZERhdGFSb3dDb3VudCBjbGFzc05hbWU9XCJzb3VyY2UtZGF0YS1yb3dzXCI+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICBpZD17XG4gICAgICAgICAgZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5WRUNUT1JfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8udmVjdG9yVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5SQVNURVJfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8ucmFzdGVyVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5XTVNfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8ud21zVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5USUxFXzNEXG4gICAgICAgICAgICA/ICdkYXRhc2V0SW5mby50aWxlM2QnXG4gICAgICAgICAgICA6ICdkYXRhc2V0SW5mby5yb3dDb3VudCdcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXM9e3tyb3dDb3VudDogbnVtRm9ybWF0KGRhdGFzZXQuZGF0YUNvbnRhaW5lci5udW1Sb3dzKCkpfX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWREYXRhUm93Q291bnQ+XG4gICk7XG5cbiAgcmV0dXJuIERhdGFzZXRJbmZvO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFBeUQsSUFBQUssZUFBQSxFQVJ6RDtBQUNBO0FBVUEsSUFBTUMsU0FBUyxHQUFHLElBQUFDLGdCQUFNLEVBQUMsR0FBRyxDQUFDO0FBVzdCLElBQU1DLGtCQUFrQixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUFMLGVBQUEsS0FBQUEsZUFBQSxPQUFBTSx1QkFBQSxrRkFFMUIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxZQUFZO0FBQUEsRUFFM0M7QUFFYyxTQUFTQyxrQkFBa0JBLENBQUEsRUFBRztFQUMzQyxJQUFNQyxXQUF1QyxHQUFHLFNBQTFDQSxXQUF1Q0EsQ0FBQUMsSUFBQTtJQUFBLElBQUtDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO0lBQUEsb0JBQ3ZEcEIsTUFBQSxZQUFBcUIsYUFBQSxDQUFDWCxrQkFBa0I7TUFBQ1ksU0FBUyxFQUFDO0lBQWtCLGdCQUM5Q3RCLE1BQUEsWUFBQXFCLGFBQUEsQ0FBQ2YsYUFBQSxDQUFBaUIsZ0JBQWdCO01BQ2ZDLEVBQUUsRUFDQUosT0FBTyxDQUFDSyxJQUFJLEtBQUtDLHNCQUFXLENBQUNDLFdBQVcsR0FDcEMsd0JBQXdCLEdBQ3hCUCxPQUFPLENBQUNLLElBQUksS0FBS0Msc0JBQVcsQ0FBQ0UsV0FBVyxHQUN4Qyx3QkFBd0IsR0FDeEJSLE9BQU8sQ0FBQ0ssSUFBSSxLQUFLQyxzQkFBVyxDQUFDRyxRQUFRLEdBQ3JDLHFCQUFxQixHQUNyQlQsT0FBTyxDQUFDSyxJQUFJLEtBQUtDLHNCQUFXLENBQUNJLE9BQU8sR0FDcEMsb0JBQW9CLEdBQ3BCLHNCQUNMO01BQ0RDLE1BQU0sRUFBRTtRQUFDQyxRQUFRLEVBQUV4QixTQUFTLENBQUNZLE9BQU8sQ0FBQ2EsYUFBYSxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUFDO0lBQUUsQ0FDaEUsQ0FDaUIsQ0FBQztFQUFBLENBQ3RCO0VBRUQsT0FBT2hCLFdBQVc7QUFDcEIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { RGBColor } from '@kepler.gl/types';
|
|
3
3
|
import { VisStateActions, ActionHandler } from '@kepler.gl/actions';
|
|
4
|
-
|
|
4
|
+
type MiniDataset = {
|
|
5
5
|
id: string;
|
|
6
6
|
color: RGBColor;
|
|
7
7
|
label?: string;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export type DatasetTagProps = {
|
|
10
10
|
id?: string;
|
|
11
11
|
dataset: MiniDataset;
|
|
12
12
|
updateTableColor?: ActionHandler<typeof VisStateActions.updateTableColor>;
|
|
@@ -2,13 +2,13 @@ import React from 'react';
|
|
|
2
2
|
import DatasetTagFactory from './dataset-tag';
|
|
3
3
|
import { openDeleteModal, VisStateActions, ActionHandler } from '@kepler.gl/actions';
|
|
4
4
|
import { RGBColor } from '@kepler.gl/types';
|
|
5
|
-
|
|
5
|
+
type MiniDataset = {
|
|
6
6
|
id: string;
|
|
7
7
|
color: RGBColor;
|
|
8
8
|
label?: string;
|
|
9
9
|
disableDataOperation?: boolean;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export type DatasetTitleProps = {
|
|
12
12
|
dataset: MiniDataset;
|
|
13
13
|
showDeleteDataset: boolean;
|
|
14
14
|
onTitleClick?: () => void;
|
|
@@ -4,17 +4,17 @@ import { DataContainerInterface } from '@kepler.gl/utils';
|
|
|
4
4
|
import { RGBColor } from '@kepler.gl/types';
|
|
5
5
|
import DatasetTitleFactory from './dataset-title';
|
|
6
6
|
import DatasetInfoFactory from './dataset-info';
|
|
7
|
-
|
|
7
|
+
type MiniDataset = {
|
|
8
8
|
id: string;
|
|
9
9
|
color: RGBColor;
|
|
10
10
|
label?: string;
|
|
11
11
|
dataContainer: DataContainerInterface;
|
|
12
12
|
type?: string;
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
type MiniDatasets = {
|
|
15
15
|
[key: string]: MiniDataset;
|
|
16
16
|
};
|
|
17
|
-
export
|
|
17
|
+
export type SourceDataCatalogProps = {
|
|
18
18
|
datasets: MiniDatasets;
|
|
19
19
|
showDeleteDataset?: boolean;
|
|
20
20
|
onTitleClick?: () => void;
|