kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
97 lines (96 loc) • 18.3 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireDefault(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _classnames = _interopRequireDefault(require("classnames"));
var _localization = require("@kepler.gl/localization");
var _constants = require("@kepler.gl/constants");
var _utils = require("@kepler.gl/utils");
var _icons = require("../../common/icons");
var _panelHeaderAction = _interopRequireDefault(require("../panel-header-action"));
var _styledComponents2 = require("../../common/styled-components");
var _templateObject; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var StyledMapDropdown = (0, _styledComponents["default"])(_styledComponents2.StyledPanelHeader)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 48px;\n margin-bottom: 5px;\n opacity: 1;\n position: relative;\n transition: opacity 0.05s ease-in, height 0.25s ease-out;\n\n &.collapsed {\n height: 0;\n margin-bottom: 0;\n opacity: 0;\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n\n .map-title-block img {\n margin-right: 12px;\n }\n\n .map-preview {\n border-radius: 3px;\n height: 30px;\n width: 40px;\n }\n\n &.selected {\n outline: 1px solid #caf2f4;\n }\n\n /* show callout dot if props.hasCallout and theme provides calloutDot base styles */\n &:after {\n ", "\n background-color: #00ACF5;\n top: 12px;\n left: 15px;\n display: ", ";\n }\n\n .custom-style-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n"])), function (props) {
return props.theme.panelBackgroundHover;
}, function (_ref) {
var theme = _ref.theme;
return theme.calloutDot;
}, function (_ref2) {
var theme = _ref2.theme,
hasCallout = _ref2.hasCallout;
return theme.calloutDot && hasCallout ? 'block' : 'none';
});
MapStyleSelectorFactory.deps = [_panelHeaderAction["default"]];
function MapStyleSelectorFactory(PanelHeaderAction) {
var defaultActionIcons = {
arrowDown: _icons.ArrowDown
};
var MapStyleSelector = function MapStyleSelector(_ref3) {
var mapStyle = _ref3.mapStyle,
onChange = _ref3.onChange,
toggleActive = _ref3.toggleActive,
isSelecting = _ref3.isSelecting,
customMapStylesActions = _ref3.customMapStylesActions,
_ref3$actionIcons = _ref3.actionIcons,
actionIcons = _ref3$actionIcons === void 0 ? defaultActionIcons : _ref3$actionIcons;
var mapStyles = mapStyle.mapStyles,
styleType = mapStyle.styleType;
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'mapManager.mapStyle'
})), Object.values(mapStyles).map(function (_ref4) {
var id = _ref4.id,
custom = _ref4.custom,
_ref4$icon = _ref4.icon,
icon = _ref4$icon === void 0 ? "".concat((0, _utils.getApplicationConfig)().cdnUrl, "/").concat(_constants.NO_BASEMAP_ICON) : _ref4$icon,
_ref4$label = _ref4.label,
label = _ref4$label === void 0 ? 'Untitled' : _ref4$label;
return /*#__PURE__*/_react["default"].createElement(StyledMapDropdown, {
className: (0, _classnames["default"])('map-dropdown-option', {
collapsed: !isSelecting && id !== styleType,
selected: isSelecting && id === styleType
}),
key: id,
onClick: isSelecting ? function () {
return onChange(id);
} : toggleActive,
hasCallout: Boolean(custom)
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelHeaderContent, {
className: "map-title-block"
}, /*#__PURE__*/_react["default"].createElement("img", {
className: "map-preview",
src: icon
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelHeaderTitle, {
className: "map-preview-name"
}, label)), !isSelecting ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, {
className: "map-dropdown-option__enable-config",
id: "map-enable-config",
IconComponent: actionIcons.arrowDown,
tooltip: 'tooltip.selectBaseMapStyle',
onClick: toggleActive
}) : null, isSelecting && custom ? /*#__PURE__*/_react["default"].createElement("div", {
className: "custom-style-actions"
}, ((customMapStylesActions === null || customMapStylesActions === void 0 ? void 0 : customMapStylesActions[id]) || []).map(function (action) {
return /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, {
key: action.id,
className: "map-dropdown-option__enable-config",
id: action.id,
IconComponent: action.IconComponent,
tooltip: action.tooltip,
onClick: function onClick(e) {
e.stopPropagation();
action.onClick();
}
});
})) : null);
}));
};
return MapStyleSelector;
}
var _default = exports["default"] = MapStyleSelectorFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMiLCJfbG9jYWxpemF0aW9uIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9pY29ucyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIlN0eWxlZE1hcERyb3Bkb3duIiwic3R5bGVkIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIl9yZWYiLCJjYWxsb3V0RG90IiwiX3JlZjIiLCJoYXNDYWxsb3V0IiwiTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJhcnJvd0Rvd24iLCJBcnJvd0Rvd24iLCJNYXBTdHlsZVNlbGVjdG9yIiwiX3JlZjMiLCJtYXBTdHlsZSIsIm9uQ2hhbmdlIiwidG9nZ2xlQWN0aXZlIiwiaXNTZWxlY3RpbmciLCJjdXN0b21NYXBTdHlsZXNBY3Rpb25zIiwiX3JlZjMkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsIm1hcFN0eWxlcyIsInN0eWxlVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJQYW5lbExhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiT2JqZWN0IiwidmFsdWVzIiwibWFwIiwiX3JlZjQiLCJjdXN0b20iLCJfcmVmNCRpY29uIiwiaWNvbiIsImNvbmNhdCIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiY2RuVXJsIiwiTk9fQkFTRU1BUF9JQ09OIiwiX3JlZjQkbGFiZWwiLCJsYWJlbCIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJjb2xsYXBzZWQiLCJzZWxlY3RlZCIsImtleSIsIm9uQ2xpY2siLCJCb29sZWFuIiwiUGFuZWxIZWFkZXJDb250ZW50Iiwic3JjIiwiUGFuZWxIZWFkZXJUaXRsZSIsIkljb25Db21wb25lbnQiLCJ0b29sdGlwIiwiYWN0aW9uIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL21hcC1zdHlsZS1wYW5lbC9tYXAtc3R5bGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtNYXBTdHlsZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge05PX0JBU0VNQVBfSUNPTn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtNYXBTdHlsZXN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7QXJyb3dEb3dufSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSBmcm9tICcuLi9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCB7XG4gIFBhbmVsSGVhZGVyQ29udGVudCxcbiAgUGFuZWxIZWFkZXJUaXRsZSxcbiAgUGFuZWxMYWJlbCxcbiAgU3R5bGVkUGFuZWxIZWFkZXIsXG4gIFN0eWxlZFBhbmVsSGVhZGVyUHJvcHNcbn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtQYW5lbEhlYWRlckFjdGlvbkljb259IGZyb20gJy4uL3BhbmVsLWhlYWRlci1hY3Rpb24nO1xuXG50eXBlIFN0eWxlZE1hcERyb3Bkb3duUHJvcHMgPSBTdHlsZWRQYW5lbEhlYWRlclByb3BzICYge2hhc0NhbGxvdXQ6IGJvb2xlYW59O1xuXG5jb25zdCBTdHlsZWRNYXBEcm9wZG93biA9IHN0eWxlZChTdHlsZWRQYW5lbEhlYWRlcik8U3R5bGVkTWFwRHJvcGRvd25Qcm9wcz5gXG4gIGhlaWdodDogNDhweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4wNXMgZWFzZS1pbiwgaGVpZ2h0IDAuMjVzIGVhc2Utb3V0O1xuXG4gICYuY29sbGFwc2VkIHtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgLm1hcC10aXRsZS1ibG9jayBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgfVxuXG4gIC5tYXAtcHJldmlldyB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCAjY2FmMmY0O1xuICB9XG5cbiAgLyogc2hvdyBjYWxsb3V0IGRvdCBpZiBwcm9wcy5oYXNDYWxsb3V0IGFuZCB0aGVtZSBwcm92aWRlcyBjYWxsb3V0RG90IGJhc2Ugc3R5bGVzICovXG4gICY6YWZ0ZXIge1xuICAgICR7KHt0aGVtZX0pID0+IHRoZW1lLmNhbGxvdXREb3R9XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwQUNGNTtcbiAgICB0b3A6IDEycHg7XG4gICAgbGVmdDogMTVweDtcbiAgICBkaXNwbGF5OiAkeyh7dGhlbWUsIGhhc0NhbGxvdXR9KSA9PiAodGhlbWUuY2FsbG91dERvdCAmJiBoYXNDYWxsb3V0ID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICB9XG5cbiAgLmN1c3RvbS1zdHlsZS1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5gO1xuXG5leHBvcnQgdHlwZSBNYXBTdHlsZVNlbGVjdG9yUHJvcHMgPSB7XG4gIG1hcFN0eWxlOiBNYXBTdHlsZTtcbiAgb25DaGFuZ2U6IChwYXlsb2FkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHRvZ2dsZUFjdGl2ZTogKCkgPT4gdm9pZDtcbiAgaXNTZWxlY3Rpbmc6IGJvb2xlYW47XG4gIGN1c3RvbU1hcFN0eWxlc0FjdGlvbnM/OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBJY29uQ29tcG9uZW50OiBQYW5lbEhlYWRlckFjdGlvbkljb247XG4gICAgICB0b29sdGlwOiBzdHJpbmc7XG4gICAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIH1bXVxuICA+O1xuICBhY3Rpb25JY29ucz86IFJlY29yZDxzdHJpbmcsIENvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+Pj47XG59O1xuXG5NYXBTdHlsZVNlbGVjdG9yRmFjdG9yeS5kZXBzID0gW1BhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeV07XG5cbmZ1bmN0aW9uIE1hcFN0eWxlU2VsZWN0b3JGYWN0b3J5KFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+KSB7XG4gIGNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgICBhcnJvd0Rvd246IEFycm93RG93blxuICB9O1xuXG4gIGNvbnN0IE1hcFN0eWxlU2VsZWN0b3IgPSAoe1xuICAgIG1hcFN0eWxlLFxuICAgIG9uQ2hhbmdlLFxuICAgIHRvZ2dsZUFjdGl2ZSxcbiAgICBpc1NlbGVjdGluZyxcbiAgICBjdXN0b21NYXBTdHlsZXNBY3Rpb25zLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH06IE1hcFN0eWxlU2VsZWN0b3JQcm9wcykgPT4ge1xuICAgIGNvbnN0IHttYXBTdHlsZXMsIHN0eWxlVHlwZX06IHttYXBTdHlsZXM6IE1hcFN0eWxlczsgc3R5bGVUeXBlOiBzdHJpbmd9ID0gbWFwU3R5bGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtYXBNYW5hZ2VyLm1hcFN0eWxlJ30gLz5cbiAgICAgICAgPC9QYW5lbExhYmVsPlxuXG4gICAgICAgIHtPYmplY3QudmFsdWVzKG1hcFN0eWxlcykubWFwKFxuICAgICAgICAgICh7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGN1c3RvbSxcbiAgICAgICAgICAgIGljb24gPSBgJHtnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmNkblVybH0vJHtOT19CQVNFTUFQX0lDT059YCxcbiAgICAgICAgICAgIGxhYmVsID0gJ1VudGl0bGVkJ1xuICAgICAgICAgIH0pID0+IChcbiAgICAgICAgICAgIDxTdHlsZWRNYXBEcm9wZG93blxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1kcm9wZG93bi1vcHRpb24nLCB7XG4gICAgICAgICAgICAgICAgY29sbGFwc2VkOiAhaXNTZWxlY3RpbmcgJiYgaWQgIT09IHN0eWxlVHlwZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RpbmcgJiYgaWQgPT09IHN0eWxlVHlwZVxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICAgICAgb25DbGljaz17aXNTZWxlY3RpbmcgPyAoKSA9PiBvbkNoYW5nZShpZCkgOiB0b2dnbGVBY3RpdmV9XG4gICAgICAgICAgICAgIGhhc0NhbGxvdXQ9e0Jvb2xlYW4oY3VzdG9tKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQ29udGVudCBjbGFzc05hbWU9XCJtYXAtdGl0bGUtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm1hcC1wcmV2aWV3XCIgc3JjPXtpY29ufSAvPlxuICAgICAgICAgICAgICAgIDxQYW5lbEhlYWRlclRpdGxlIGNsYXNzTmFtZT1cIm1hcC1wcmV2aWV3LW5hbWVcIj57bGFiZWx9PC9QYW5lbEhlYWRlclRpdGxlPlxuICAgICAgICAgICAgICA8L1BhbmVsSGVhZGVyQ29udGVudD5cbiAgICAgICAgICAgICAgeyFpc1NlbGVjdGluZyA/IChcbiAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1kcm9wZG93bi1vcHRpb25fX2VuYWJsZS1jb25maWdcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJtYXAtZW5hYmxlLWNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5hcnJvd0Rvd259XG4gICAgICAgICAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC5zZWxlY3RCYXNlTWFwU3R5bGUnfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dG9nZ2xlQWN0aXZlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aXNTZWxlY3RpbmcgJiYgY3VzdG9tID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXN0eWxlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIHsoY3VzdG9tTWFwU3R5bGVzQWN0aW9ucz8uW2lkXSB8fCBbXSkubWFwKGFjdGlvbiA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YWN0aW9uLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1kcm9wZG93bi1vcHRpb25fX2VuYWJsZS1jb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXthY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uLkljb25Db21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcD17YWN0aW9uLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLm9uQ2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdHlsZWRNYXBEcm9wZG93bj5cbiAgICAgICAgICApXG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBNYXBTdHlsZVNlbGVjdG9yO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBTdHlsZVNlbGVjdG9yRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sa0JBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLGtCQUFBLEdBQUFSLE9BQUE7QUFNd0MsSUFBQVMsZUFBQSxFQXJCeEM7QUFDQTtBQTBCQSxJQUFNQyxpQkFBaUIsR0FBRyxJQUFBQyw0QkFBTSxFQUFDQyxvQ0FBaUIsQ0FBQyxDQUFBSCxlQUFBLEtBQUFBLGVBQUEsT0FBQUksdUJBQUEsazBCQWUzQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLG9CQUFvQjtBQUFBLEdBbUIzRCxVQUFBQyxJQUFBO0VBQUEsSUFBRUYsS0FBSyxHQUFBRSxJQUFBLENBQUxGLEtBQUs7RUFBQSxPQUFNQSxLQUFLLENBQUNHLFVBQVU7QUFBQSxHQUlwQixVQUFBQyxLQUFBO0VBQUEsSUFBRUosS0FBSyxHQUFBSSxLQUFBLENBQUxKLEtBQUs7SUFBRUssVUFBVSxHQUFBRCxLQUFBLENBQVZDLFVBQVU7RUFBQSxPQUFPTCxLQUFLLENBQUNHLFVBQVUsSUFBSUUsVUFBVSxHQUFHLE9BQU8sR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQVExRjtBQW1CREMsdUJBQXVCLENBQUNDLElBQUksR0FBRyxDQUFDQyw2QkFBd0IsQ0FBQztBQUV6RCxTQUFTRix1QkFBdUJBLENBQUNHLGlCQUE4RCxFQUFFO0VBQy9GLElBQU1DLGtCQUFrQixHQUFHO0lBQ3pCQyxTQUFTLEVBQUVDO0VBQ2IsQ0FBQztFQUVELElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUFDLEtBQUEsRUFPTztJQUFBLElBTjNCQyxRQUFRLEdBQUFELEtBQUEsQ0FBUkMsUUFBUTtNQUNSQyxRQUFRLEdBQUFGLEtBQUEsQ0FBUkUsUUFBUTtNQUNSQyxZQUFZLEdBQUFILEtBQUEsQ0FBWkcsWUFBWTtNQUNaQyxXQUFXLEdBQUFKLEtBQUEsQ0FBWEksV0FBVztNQUNYQyxzQkFBc0IsR0FBQUwsS0FBQSxDQUF0Qkssc0JBQXNCO01BQUFDLGlCQUFBLEdBQUFOLEtBQUEsQ0FDdEJPLFdBQVc7TUFBWEEsV0FBVyxHQUFBRCxpQkFBQSxjQUFHVixrQkFBa0IsR0FBQVUsaUJBQUE7SUFFaEMsSUFBT0UsU0FBUyxHQUEwRFAsUUFBUSxDQUEzRU8sU0FBUztNQUFFQyxTQUFTLEdBQStDUixRQUFRLENBQWhFUSxTQUFTO0lBRTNCLG9CQUNFeEMsTUFBQSxZQUFBeUMsYUFBQSwyQkFDRXpDLE1BQUEsWUFBQXlDLGFBQUEsQ0FBQy9CLGtCQUFBLENBQUFnQyxVQUFVLHFCQUNUMUMsTUFBQSxZQUFBeUMsYUFBQSxDQUFDcEMsYUFBQSxDQUFBc0MsZ0JBQWdCO01BQUNDLEVBQUUsRUFBRTtJQUFzQixDQUFFLENBQ3BDLENBQUMsRUFFWkMsTUFBTSxDQUFDQyxNQUFNLENBQUNQLFNBQVMsQ0FBQyxDQUFDUSxHQUFHLENBQzNCLFVBQUFDLEtBQUE7TUFBQSxJQUNFSixFQUFFLEdBQUFJLEtBQUEsQ0FBRkosRUFBRTtRQUNGSyxNQUFNLEdBQUFELEtBQUEsQ0FBTkMsTUFBTTtRQUFBQyxVQUFBLEdBQUFGLEtBQUEsQ0FDTkcsSUFBSTtRQUFKQSxJQUFJLEdBQUFELFVBQUEsaUJBQUFFLE1BQUEsQ0FBTSxJQUFBQywyQkFBb0IsRUFBQyxDQUFDLENBQUNDLE1BQU0sT0FBQUYsTUFBQSxDQUFJRywwQkFBZSxJQUFBTCxVQUFBO1FBQUFNLFdBQUEsR0FBQVIsS0FBQSxDQUMxRFMsS0FBSztRQUFMQSxLQUFLLEdBQUFELFdBQUEsY0FBRyxVQUFVLEdBQUFBLFdBQUE7TUFBQSxvQkFFbEJ4RCxNQUFBLFlBQUF5QyxhQUFBLENBQUM3QixpQkFBaUI7UUFDaEI4QyxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFBQyxxQkFBcUIsRUFBRTtVQUMzQ0MsU0FBUyxFQUFFLENBQUN6QixXQUFXLElBQUlTLEVBQUUsS0FBS0osU0FBUztVQUMzQ3FCLFFBQVEsRUFBRTFCLFdBQVcsSUFBSVMsRUFBRSxLQUFLSjtRQUNsQyxDQUFDLENBQUU7UUFDSHNCLEdBQUcsRUFBRWxCLEVBQUc7UUFDUm1CLE9BQU8sRUFBRTVCLFdBQVcsR0FBRztVQUFBLE9BQU1GLFFBQVEsQ0FBQ1csRUFBRSxDQUFDO1FBQUEsSUFBR1YsWUFBYTtRQUN6RFosVUFBVSxFQUFFMEMsT0FBTyxDQUFDZixNQUFNO01BQUUsZ0JBRTVCakQsTUFBQSxZQUFBeUMsYUFBQSxDQUFDL0Isa0JBQUEsQ0FBQXVELGtCQUFrQjtRQUFDUCxTQUFTLEVBQUM7TUFBaUIsZ0JBQzdDMUQsTUFBQSxZQUFBeUMsYUFBQTtRQUFLaUIsU0FBUyxFQUFDLGFBQWE7UUFBQ1EsR0FBRyxFQUFFZjtNQUFLLENBQUUsQ0FBQyxlQUMxQ25ELE1BQUEsWUFBQXlDLGFBQUEsQ0FBQy9CLGtCQUFBLENBQUF5RCxnQkFBZ0I7UUFBQ1QsU0FBUyxFQUFDO01BQWtCLEdBQUVELEtBQXdCLENBQ3RELENBQUMsRUFDcEIsQ0FBQ3RCLFdBQVcsZ0JBQ1huQyxNQUFBLFlBQUF5QyxhQUFBLENBQUNmLGlCQUFpQjtRQUNoQmdDLFNBQVMsRUFBQyxvQ0FBb0M7UUFDOUNkLEVBQUUsRUFBQyxtQkFBbUI7UUFDdEJ3QixhQUFhLEVBQUU5QixXQUFXLENBQUNWLFNBQVU7UUFDckN5QyxPQUFPLEVBQUUsNEJBQTZCO1FBQ3RDTixPQUFPLEVBQUU3QjtNQUFhLENBQ3ZCLENBQUMsR0FDQSxJQUFJLEVBQ1BDLFdBQVcsSUFBSWMsTUFBTSxnQkFDcEJqRCxNQUFBLFlBQUF5QyxhQUFBO1FBQUtpQixTQUFTLEVBQUM7TUFBc0IsR0FDbEMsQ0FBQyxDQUFBdEIsc0JBQXNCLGFBQXRCQSxzQkFBc0IsdUJBQXRCQSxzQkFBc0IsQ0FBR1EsRUFBRSxDQUFDLEtBQUksRUFBRSxFQUFFRyxHQUFHLENBQUMsVUFBQXVCLE1BQU07UUFBQSxvQkFDOUN0RSxNQUFBLFlBQUF5QyxhQUFBLENBQUNmLGlCQUFpQjtVQUNoQm9DLEdBQUcsRUFBRVEsTUFBTSxDQUFDMUIsRUFBRztVQUNmYyxTQUFTLEVBQUMsb0NBQW9DO1VBQzlDZCxFQUFFLEVBQUUwQixNQUFNLENBQUMxQixFQUFHO1VBQ2R3QixhQUFhLEVBQUVFLE1BQU0sQ0FBQ0YsYUFBYztVQUNwQ0MsT0FBTyxFQUFFQyxNQUFNLENBQUNELE9BQVE7VUFDeEJOLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFUSxDQUFDLEVBQUk7WUFDWkEsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQztZQUNuQkYsTUFBTSxDQUFDUCxPQUFPLENBQUMsQ0FBQztVQUNsQjtRQUFFLENBQ0gsQ0FBQztNQUFBLENBQ0gsQ0FDRSxDQUFDLEdBQ0osSUFDYSxDQUFDO0lBQUEsQ0FFeEIsQ0FDRyxDQUFDO0VBRVYsQ0FBQztFQUVELE9BQU9qQyxnQkFBZ0I7QUFDekI7QUFBQyxJQUFBMkMsUUFBQSxHQUFBQyxPQUFBLGNBRWNuRCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=