kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
98 lines (97 loc) • 18.3 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.StyledToggleOption = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _orderByList = _interopRequireDefault(require("../common/icons/order-by-list"));
var _orderByDataset = _interopRequireDefault(require("../common/icons/order-by-dataset"));
var _styledComponents2 = require("../common/styled-components");
var _localization = require("@kepler.gl/localization");
var _constants = require("@kepler.gl/constants");
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
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); }
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; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var PanelViewListToggleContainer = _styledComponents["default"].div.attrs({
className: 'panel-view-list-toggle'
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
var PanelViewListToggleWrapper = _styledComponents["default"].div.attrs({
className: 'panel-view-list-toggle-inner'
})(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n align-content: center;\n gap: 10px;\n"])));
var StyledToggleOption = exports.StyledToggleOption = _styledComponents["default"].div.attrs({
className: 'layer-panel-toggle-option'
})(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n &:hover {\n cursor: pointer;\n color: ", ";\n }\n"])), function (props) {
return props.active ? props.theme.subtextColorActive : props.theme.panelTabColor;
}, function (props) {
return props.theme.subtextColorActive;
});
function ToggleOptionFactory() {
var ToggleOption = function ToggleOption(_ref) {
var isActive = _ref.isActive,
onClick = _ref.onClick,
option = _ref.option;
return /*#__PURE__*/_react["default"].createElement(StyledToggleOption, {
"data-tip": true,
"data-for": "".concat(option.id, "-toggle-option"),
active: isActive,
onClick: onClick
}, /*#__PURE__*/_react["default"].createElement(option.iconComponent, {
height: "20px"
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
id: "".concat(option.id, "-toggle-option"),
effect: "solid",
delayShow: 500,
place: "bottom"
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: option.label
}))));
};
return ToggleOption;
}
var TOGGLE_OPTIONS = [{
id: _constants.PANEL_VIEW_TOGGLES.list,
iconComponent: _orderByList["default"],
label: 'sidebar.panelViewToggle.list'
}, {
id: _constants.PANEL_VIEW_TOGGLES.byDataset,
iconComponent: _orderByDataset["default"],
label: 'sidebar.panelViewToggle.byDataset'
}];
PanelViewListToggleFactory.deps = [ToggleOptionFactory];
function PanelViewListToggleFactory(ToggleOption) {
var PanelViewListToggle = function PanelViewListToggle(_ref2) {
var mode = _ref2.mode,
togglePanelListView = _ref2.togglePanelListView;
var toggleListView = function toggleListView(listView) {
return togglePanelListView(listView);
};
var options = (0, _react.useMemo)(function () {
return TOGGLE_OPTIONS.map(function (opt) {
return _objectSpread(_objectSpread({}, opt), {}, {
isActive: mode === opt.id
});
});
}, [mode]);
return /*#__PURE__*/_react["default"].createElement(PanelViewListToggleContainer, null, /*#__PURE__*/_react["default"].createElement(PanelViewListToggleWrapper, null, options.map(function (opt) {
return /*#__PURE__*/_react["default"].createElement(ToggleOption, {
key: opt.id,
onClick: function onClick() {
return toggleListView(opt.id);
},
option: opt,
isActive: opt.isActive
});
})));
};
return PanelViewListToggle;
}
var _default = exports["default"] = PanelViewListToggleFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfb3JkZXJCeUxpc3QiLCJfb3JkZXJCeURhdGFzZXQiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfbG9jYWxpemF0aW9uIiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiUGFuZWxWaWV3TGlzdFRvZ2dsZUNvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlV3JhcHBlciIsIlN0eWxlZFRvZ2dsZU9wdGlvbiIsImV4cG9ydHMiLCJwcm9wcyIsImFjdGl2ZSIsInRoZW1lIiwic3VidGV4dENvbG9yQWN0aXZlIiwicGFuZWxUYWJDb2xvciIsIlRvZ2dsZU9wdGlvbkZhY3RvcnkiLCJUb2dnbGVPcHRpb24iLCJfcmVmIiwiaXNBY3RpdmUiLCJvbkNsaWNrIiwib3B0aW9uIiwiY3JlYXRlRWxlbWVudCIsImNvbmNhdCIsImlkIiwiaWNvbkNvbXBvbmVudCIsImhlaWdodCIsIlRvb2x0aXAiLCJlZmZlY3QiLCJkZWxheVNob3ciLCJwbGFjZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJsYWJlbCIsIlRPR0dMRV9PUFRJT05TIiwiUEFORUxfVklFV19UT0dHTEVTIiwibGlzdCIsIk9yZGVyQnlMaXN0IiwiYnlEYXRhc2V0IiwiT3JkZXJCeURhdGFzZXQiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSIsImRlcHMiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlIiwiX3JlZjIiLCJtb2RlIiwidG9nZ2xlUGFuZWxMaXN0VmlldyIsInRvZ2dsZUxpc3RWaWV3IiwibGlzdFZpZXciLCJvcHRpb25zIiwidXNlTWVtbyIsIm1hcCIsIm9wdCIsImtleSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvcGFuZWwtdmlldy1saXN0LXRvZ2dsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgT3JkZXJCeUxpc3QgZnJvbSAnLi4vY29tbW9uL2ljb25zL29yZGVyLWJ5LWxpc3QnO1xuaW1wb3J0IE9yZGVyQnlEYXRhc2V0IGZyb20gJy4uL2NvbW1vbi9pY29ucy9vcmRlci1ieS1kYXRhc2V0JztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtQYW5lbExpc3RWaWV3fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7UEFORUxfVklFV19UT0dHTEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbnR5cGUgVG9nZ2xlT3B0aW9uUHJvcHMgPSB7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICBvcHRpb246ICh0eXBlb2YgVE9HR0xFX09QVElPTlMpWzBdO1xufTtcblxudHlwZSBQYW5lbFZpZXdMaXN0VG9nZ2xlUHJvcHMgPSB7XG4gIG1vZGU6IFBhbmVsTGlzdFZpZXc7XG4gIHRvZ2dsZVBhbmVsTGlzdFZpZXc6ICh2aWV3OiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBQYW5lbFZpZXdMaXN0VG9nZ2xlQ29udGFpbmVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3BhbmVsLXZpZXctbGlzdC10b2dnbGUnXG59KWBgO1xuXG5jb25zdCBQYW5lbFZpZXdMaXN0VG9nZ2xlV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdwYW5lbC12aWV3LWxpc3QtdG9nZ2xlLWlubmVyJ1xufSlgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvZ2dsZU9wdGlvbiA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdsYXllci1wYW5lbC10b2dnbGUtb3B0aW9uJ1xufSk8e2FjdGl2ZTogYm9vbGVhbn0+YFxuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yQWN0aXZlIDogcHJvcHMudGhlbWUucGFuZWxUYWJDb2xvcil9O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yQWN0aXZlfTtcbiAgfVxuYDtcblxuZnVuY3Rpb24gVG9nZ2xlT3B0aW9uRmFjdG9yeSgpIHtcbiAgY29uc3QgVG9nZ2xlT3B0aW9uOiBSZWFjdC5GQzxUb2dnbGVPcHRpb25Qcm9wcz4gPSAoe2lzQWN0aXZlLCBvbkNsaWNrLCBvcHRpb259KSA9PiAoXG4gICAgPFN0eWxlZFRvZ2dsZU9wdGlvblxuICAgICAgZGF0YS10aXBcbiAgICAgIGRhdGEtZm9yPXtgJHtvcHRpb24uaWR9LXRvZ2dsZS1vcHRpb25gfVxuICAgICAgYWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgPlxuICAgICAgPG9wdGlvbi5pY29uQ29tcG9uZW50IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgPFRvb2x0aXAgaWQ9e2Ake29wdGlvbi5pZH0tdG9nZ2xlLW9wdGlvbmB9IGVmZmVjdD1cInNvbGlkXCIgZGVsYXlTaG93PXs1MDB9IHBsYWNlPVwiYm90dG9tXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtvcHRpb24ubGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICA8L1N0eWxlZFRvZ2dsZU9wdGlvbj5cbiAgKTtcblxuICByZXR1cm4gVG9nZ2xlT3B0aW9uO1xufVxuXG5jb25zdCBUT0dHTEVfT1BUSU9OUyA9IFtcbiAge1xuICAgIGlkOiBQQU5FTF9WSUVXX1RPR0dMRVMubGlzdCxcbiAgICBpY29uQ29tcG9uZW50OiBPcmRlckJ5TGlzdCxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxWaWV3VG9nZ2xlLmxpc3QnXG4gIH0sXG4gIHtcbiAgICBpZDogUEFORUxfVklFV19UT0dHTEVTLmJ5RGF0YXNldCxcbiAgICBpY29uQ29tcG9uZW50OiBPcmRlckJ5RGF0YXNldCxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxWaWV3VG9nZ2xlLmJ5RGF0YXNldCdcbiAgfVxuXTtcblxuUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnkuZGVwcyA9IFtUb2dnbGVPcHRpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnkoVG9nZ2xlT3B0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBUb2dnbGVPcHRpb25GYWN0b3J5Pikge1xuICBjb25zdCBQYW5lbFZpZXdMaXN0VG9nZ2xlOiBSZWFjdC5GQzxQYW5lbFZpZXdMaXN0VG9nZ2xlUHJvcHM+ID0gKHttb2RlLCB0b2dnbGVQYW5lbExpc3RWaWV3fSkgPT4ge1xuICAgIGNvbnN0IHRvZ2dsZUxpc3RWaWV3ID0gbGlzdFZpZXcgPT4gdG9nZ2xlUGFuZWxMaXN0VmlldyhsaXN0Vmlldyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+IFRPR0dMRV9PUFRJT05TLm1hcChvcHQgPT4gKHsuLi5vcHQsIGlzQWN0aXZlOiBtb2RlID09PSBvcHQuaWR9KSksXG4gICAgICBbbW9kZV1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQYW5lbFZpZXdMaXN0VG9nZ2xlQ29udGFpbmVyPlxuICAgICAgICA8UGFuZWxWaWV3TGlzdFRvZ2dsZVdyYXBwZXI+XG4gICAgICAgICAge29wdGlvbnMubWFwKG9wdCA9PiAoXG4gICAgICAgICAgICA8VG9nZ2xlT3B0aW9uXG4gICAgICAgICAgICAgIGtleT17b3B0LmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0b2dnbGVMaXN0VmlldyhvcHQuaWQpfVxuICAgICAgICAgICAgICBvcHRpb249e29wdH1cbiAgICAgICAgICAgICAgaXNBY3RpdmU9e29wdC5pc0FjdGl2ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvUGFuZWxWaWV3TGlzdFRvZ2dsZVdyYXBwZXI+XG4gICAgICA8L1BhbmVsVmlld0xpc3RUb2dnbGVDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUGFuZWxWaWV3TGlzdFRvZ2dsZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssa0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUF3RCxJQUFBUSxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBVnhEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWIsd0JBQUFhLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdB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QUMsRUFDRDtFQUNFUixFQUFFLEVBQUVVLDZCQUFrQixDQUFDRyxTQUFTO0VBQ2hDWixhQUFhLEVBQUVhLDBCQUFjO0VBQzdCTixLQUFLLEVBQUU7QUFDVCxDQUFDLENBQ0Y7QUFFRE8sMEJBQTBCLENBQUNDLElBQUksR0FBRyxDQUFDeEIsbUJBQW1CLENBQUM7QUFFdkQsU0FBU3VCLDBCQUEwQkEsQ0FBQ3RCLFlBQW9ELEVBQUU7RUFDeEYsSUFBTXdCLG1CQUF1RCxHQUFHLFNBQTFEQSxtQkFBdURBLENBQUFDLEtBQUEsRUFBb0M7SUFBQSxJQUEvQkMsSUFBSSxHQUFBRCxLQUFBLENBQUpDLElBQUk7TUFBRUMsbUJBQW1CLEdBQUFGLEtBQUEsQ0FBbkJFLG1CQUFtQjtJQUN6RixJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUdDLFFBQVE7TUFBQSxPQUFJRixtQkFBbUIsQ0FBQ0UsUUFBUSxDQUFDO0lBQUE7SUFFaEUsSUFBTUMsT0FBTyxHQUFHLElBQUFDLGNBQU8sRUFDckI7TUFBQSxPQUFNZixjQUFjLENBQUNnQixHQUFHLENBQUMsVUFBQUMsR0FBRztRQUFBLE9BQUF2RCxhQUFBLENBQUFBLGFBQUEsS0FBU3VELEdBQUc7VUFBRS9CLFFBQVEsRUFBRXdCLElBQUksS0FBS08sR0FBRyxDQUFDMUI7UUFBRTtNQUFBLENBQUUsQ0FBQztJQUFBLEdBQ3RFLENBQUNtQixJQUFJLENBQ1AsQ0FBQztJQUVELG9CQUNFekYsTUFBQSxZQUFBb0UsYUFBQSxDQUFDcEIsNEJBQTRCLHFCQUMzQmhELE1BQUEsWUFBQW9FLGFBQUEsQ0FBQ2QsMEJBQTBCLFFBQ3hCdUMsT0FBTyxDQUFDRSxHQUFHLENBQUMsVUFBQUMsR0FBRztNQUFBLG9CQUNkaEcsTUFBQSxZQUFBb0UsYUFBQSxDQUFDTCxZQUFZO1FBQ1hrQyxHQUFHLEVBQUVELEdBQUcsQ0FBQzFCLEVBQUc7UUFDWkosT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFReUIsY0FBYyxDQUFDSyxHQUFHLENBQUMxQixFQUFFLENBQUM7UUFBQSxDQUFDO1FBQ3RDSCxNQUFNLEVBQUU2QixHQUFJO1FBQ1ovQixRQUFRLEVBQUUrQixHQUFHLENBQUMvQjtNQUFTLENBQ3hCLENBQUM7SUFBQSxDQUNILENBQ3lCLENBQ0EsQ0FBQztFQUVuQyxDQUFDO0VBRUQsT0FBT3NCLG1CQUFtQjtBQUM1QjtBQUFDLElBQUFXLFFBQUEsR0FBQTFDLE9BQUEsY0FFYzZCLDBCQUEwQiIsImlnbm9yZUxpc3QiOltdfQ==
;