UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

131 lines (130 loc) 22.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _localization = require("@kepler.gl/localization"); var _react2 = _interopRequireDefault(require("@tippyjs/react")); var _icons = require("../common/icons"); var _styledComponents2 = require("../common/styled-components"); var _typeahead = _interopRequireDefault(require("../common/item-selector/typeahead")); var _accessor = _interopRequireDefault(require("../common/item-selector/accessor")); var _reactIntl = require("react-intl"); var _context = require("../context"); 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; } var DropdownContainer = _styledComponents["default"].div.attrs({ className: 'add-layer-menu-dropdown' })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .list-selector {\n border-top: 1px solid ", ";\n width: 100%;\n /* disable scrolling, currently set to 280px internally */\n max-height: unset;\n }\n .list__item > div {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n line-height: 18px;\n padding: 0;\n svg {\n margin-right: 10px;\n }\n }\n"])), function (props) { return props.theme.secondaryInputBorderColor; }); var DropdownMenu = _styledComponents["default"].div.attrs({ className: 'dropdown-menu' })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n min-width: 240px;\n max-width: 240px;\n position: absolute;\n top: 100%;\n left: -53px;\n z-index: 5;\n"]))); var ListItemWrapper = _styledComponents["default"].div.attrs({ className: 'dropdown-menu-list-item-wrapper' })(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n font-size: 11px;\n letter-spacing: 0.2px;\n overflow: auto;\n .dataset-color {\n flex-shrink: 0;\n margin-top: 3px;\n }\n .dataset-name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n"])), function (props) { return props.theme.textColor; }); var TYPEAHEAD_CLASS = 'typeahead'; var TYPEAHEAD_INPUT_CLASS = 'typeahead__input'; var ListItem = function ListItem(_ref) { var value = _ref.value; return /*#__PURE__*/_react["default"].createElement(ListItemWrapper, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.DatasetSquare, { className: "dataset-color", backgroundColor: value.color }), /*#__PURE__*/_react["default"].createElement("div", { className: "dataset-name", title: value.label }, value.label)); }; var AddByDatasetButton = function AddByDatasetButton(_ref2) { var datasets = _ref2.datasets, onAdd = _ref2.onAdd, buttonIntlId = _ref2.buttonIntlId, width = _ref2.width, className = _ref2.className, inactive = _ref2.inactive; var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), tippyInstance = _useState2[0], setTippyInstance = _useState2[1]; var options = (0, _react.useMemo)(function () { return Object.values(datasets).map(function (ds) { return { label: ds.label, value: ds.id, color: ds.color }; }); }, [datasets]); var onClickBtn = (0, _react.useCallback)(function () { if (options.length === 1) { onAdd(options[0].value); } return; }, [options, onAdd]); var onOptionSelected = (0, _react.useCallback)(function (option) { if (!option) { return; } onAdd(option.value); if (tippyInstance) { // @ts-ignore tippyInstance.hide(); } }, [onAdd, tippyInstance]); var intl = (0, _reactIntl.useIntl)(); var buttonRendered = /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, { tabIndex: -1, className: className || 'add-by-dataset-button', width: width, onClick: onClickBtn, disabled: !options.length || inactive }, /*#__PURE__*/_react["default"].createElement(_icons.Add, { height: "12px" }), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: buttonIntlId })); return options.length === 1 ? buttonRendered : /*#__PURE__*/_react["default"].createElement(_context.RootContext.Consumer, null, function (context) { return /*#__PURE__*/_react["default"].createElement(_react2["default"], { trigger: "click", arrow: false, interactive: true, placement: "bottom", appendTo: (context === null || context === void 0 ? void 0 : context.current) || 'parent' // @ts-ignore , onCreate: setTippyInstance, duration: 0, content: /*#__PURE__*/_react["default"].createElement(DropdownMenu, null, /*#__PURE__*/_react["default"].createElement(DropdownContainer, null, /*#__PURE__*/_react["default"].createElement(_typeahead["default"], { className: TYPEAHEAD_CLASS, customClasses: { results: 'list-selector', input: TYPEAHEAD_INPUT_CLASS, listItem: 'list__item' }, placeholder: intl ? intl.formatMessage({ id: 'placeholder.search' }) : 'Search', selectedItems: null, options: options, displayOption: _accessor["default"].generateOptionToStringFor('label'), filterOption: 'label', searchable: true, onOptionSelected: onOptionSelected, customListItemComponent: ListItem }))) }, buttonRendered); }); }; var _default = exports["default"] = AddByDatasetButton; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3JlYWN0MiIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90eXBlYWhlYWQiLCJfYWNjZXNzb3IiLCJfcmVhY3RJbnRsIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRyb3Bkb3duQ29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzZWNvbmRhcnlJbnB1dEJvcmRlckNvbG9yIiwiRHJvcGRvd25NZW51IiwiTGlzdEl0ZW1XcmFwcGVyIiwidGV4dENvbG9yIiwiVFlQRUFIRUFEX0NMQVNTIiwiVFlQRUFIRUFEX0lOUFVUX0NMQVNTIiwiTGlzdEl0ZW0iLCJfcmVmIiwidmFsdWUiLCJjcmVhdGVFbGVtZW50IiwiRGF0YXNldFNxdWFyZSIsImJhY2tncm91bmRDb2xvciIsImNvbG9yIiwidGl0bGUiLCJsYWJlbCIsIkFkZEJ5RGF0YXNldEJ1dHRvbiIsIl9yZWYyIiwiZGF0YXNldHMiLCJvbkFkZCIsImJ1dHRvbkludGxJZCIsIndpZHRoIiwiaW5hY3RpdmUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0aXBweUluc3RhbmNlIiwic2V0VGlwcHlJbnN0YW5jZSIsIm9wdGlvbnMiLCJ1c2VNZW1vIiwidmFsdWVzIiwibWFwIiwiZHMiLCJpZCIsIm9uQ2xpY2tCdG4iLCJ1c2VDYWxsYmFjayIsImxlbmd0aCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJvcHRpb24iLCJoaWRlIiwiaW50bCIsInVzZUludGwiLCJidXR0b25SZW5kZXJlZCIsIkJ1dHRvbiIsInRhYkluZGV4Iiwib25DbGljayIsImRpc2FibGVkIiwiQWRkIiwiaGVpZ2h0IiwiRm9ybWF0dGVkTWVzc2FnZSIsIlJvb3RDb250ZXh0IiwiQ29uc3VtZXIiLCJjb250ZXh0IiwidHJpZ2dlciIsImFycm93IiwiaW50ZXJhY3RpdmUiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImN1cnJlbnQiLCJvbkNyZWF0ZSIsImR1cmF0aW9uIiwiY29udGVudCIsImN1c3RvbUNsYXNzZXMiLCJyZXN1bHRzIiwiaW5wdXQiLCJsaXN0SXRlbSIsInBsYWNlaG9sZGVyIiwiZm9ybWF0TWVzc2FnZSIsInNlbGVjdGVkSXRlbXMiLCJkaXNwbGF5T3B0aW9uIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yIiwiZmlsdGVyT3B0aW9uIiwic2VhcmNoYWJsZSIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvYWRkLWJ5LWRhdGFzZXQtYnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0RhdGFzZXRzLCBLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCBUaXBweSBmcm9tICdAdGlwcHlqcy9yZWFjdCc7XG5pbXBvcnQge0FkZH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7QnV0dG9uLCBEYXRhc2V0U3F1YXJlfSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuLi9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQnO1xuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2FjY2Vzc29yJztcbmltcG9ydCB7dXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcblxuY29uc3QgRHJvcGRvd25Db250YWluZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnYWRkLWxheWVyLW1lbnUtZHJvcGRvd24nXG59KWBcbiAgLmxpc3Qtc2VsZWN0b3Ige1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0Qm9yZGVyQ29sb3J9O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIGRpc2FibGUgc2Nyb2xsaW5nLCBjdXJyZW50bHkgc2V0IHRvIDI4MHB4IGludGVybmFsbHkgKi9cbiAgICBtYXgtaGVpZ2h0OiB1bnNldDtcbiAgfVxuICAubGlzdF9faXRlbSA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBEcm9wZG93bk1lbnUgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZHJvcGRvd24tbWVudSdcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDI0MHB4O1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogLTUzcHg7XG4gIHotaW5kZXg6IDU7XG5gO1xuXG5jb25zdCBMaXN0SXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZHJvcGRvd24tbWVudS1saXN0LWl0ZW0td3JhcHBlcidcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC5kYXRhc2V0LWNvbG9yIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gIH1cbiAgLmRhdGFzZXQtbmFtZSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5gO1xuXG5jb25zdCBUWVBFQUhFQURfQ0xBU1MgPSAndHlwZWFoZWFkJztcbmNvbnN0IFRZUEVBSEVBRF9JTlBVVF9DTEFTUyA9ICd0eXBlYWhlYWRfX2lucHV0JztcblxuZXhwb3J0IHR5cGUgQWRkQnlEYXRhc2V0QnV0dG9uUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgb25BZGQ6IChkYXRhSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgd2lkdGg6IHN0cmluZztcbiAgYnV0dG9uSW50bElkOiBzdHJpbmc7XG4gIGluYWN0aXZlPzogYm9vbGVhbjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufTtcblxuY29uc3QgTGlzdEl0ZW0gPSAoe3ZhbHVlfSkgPT4gKFxuICA8TGlzdEl0ZW1XcmFwcGVyPlxuICAgIDxEYXRhc2V0U3F1YXJlIGNsYXNzTmFtZT1cImRhdGFzZXQtY29sb3JcIiBiYWNrZ3JvdW5kQ29sb3I9e3ZhbHVlLmNvbG9yfSAvPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0YXNldC1uYW1lXCIgdGl0bGU9e3ZhbHVlLmxhYmVsfT5cbiAgICAgIHt2YWx1ZS5sYWJlbH1cbiAgICA8L2Rpdj5cbiAgPC9MaXN0SXRlbVdyYXBwZXI+XG4pO1xuXG5jb25zdCBBZGRCeURhdGFzZXRCdXR0b246IFJlYWN0LkZDPEFkZEJ5RGF0YXNldEJ1dHRvblByb3BzPiA9ICh7XG4gIGRhdGFzZXRzLFxuICBvbkFkZCxcbiAgYnV0dG9uSW50bElkLFxuICB3aWR0aCxcbiAgY2xhc3NOYW1lLFxuICBpbmFjdGl2ZVxufSkgPT4ge1xuICBjb25zdCBbdGlwcHlJbnN0YW5jZSwgc2V0VGlwcHlJbnN0YW5jZV0gPSB1c2VTdGF0ZSgpO1xuXG4gIGNvbnN0IG9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkYXRhc2V0cykubWFwKChkczogS2VwbGVyVGFibGUpID0+ICh7XG4gICAgICBsYWJlbDogZHMubGFiZWwsXG4gICAgICB2YWx1ZTogZHMuaWQsXG4gICAgICBjb2xvcjogZHMuY29sb3JcbiAgICB9KSk7XG4gIH0sIFtkYXRhc2V0c10pO1xuXG4gIGNvbnN0IG9uQ2xpY2tCdG4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKG9wdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICBvbkFkZChvcHRpb25zWzBdLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0sIFtvcHRpb25zLCBvbkFkZF0pO1xuXG4gIGNvbnN0IG9uT3B0aW9uU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBvcHRpb24gPT4ge1xuICAgICAgaWYgKCFvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgb25BZGQob3B0aW9uLnZhbHVlKTtcbiAgICAgIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25BZGQsIHRpcHB5SW5zdGFuY2VdXG4gICk7XG5cbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICBjb25zdCBidXR0b25SZW5kZXJlZCA9IChcbiAgICA8QnV0dG9uXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZSB8fCAnYWRkLWJ5LWRhdGFzZXQtYnV0dG9uJ31cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2tCdG59XG4gICAgICBkaXNhYmxlZD17IW9wdGlvbnMubGVuZ3RoIHx8IGluYWN0aXZlfVxuICAgID5cbiAgICAgIDxBZGQgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YnV0dG9uSW50bElkfSAvPlxuICAgIDwvQnV0dG9uPlxuICApO1xuXG4gIHJldHVybiBvcHRpb25zLmxlbmd0aCA9PT0gMSA/IChcbiAgICBidXR0b25SZW5kZXJlZFxuICApIDogKFxuICAgIDxSb290Q29udGV4dC5Db25zdW1lcj5cbiAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgPFRpcHB5XG4gICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgICBhcnJvdz17ZmFsc2V9XG4gICAgICAgICAgaW50ZXJhY3RpdmVcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGFwcGVuZFRvPXtjb250ZXh0Py5jdXJyZW50IHx8ICdwYXJlbnQnfVxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBvbkNyZWF0ZT17c2V0VGlwcHlJbnN0YW5jZX1cbiAgICAgICAgICBkdXJhdGlvbj17MH1cbiAgICAgICAgICBjb250ZW50PXtcbiAgICAgICAgICAgIDxEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8VHlwZWFoZWFkXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1RZUEVBSEVBRF9DTEFTU31cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0czogJ2xpc3Qtc2VsZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDogVFlQRUFIRUFEX0lOUFVUX0NMQVNTLFxuICAgICAgICAgICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAncGxhY2Vob2xkZXIuc2VhcmNoJ30pIDogJ1NlYXJjaCd9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtudWxsfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e0FjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoJ2xhYmVsJyl9XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249eydsYWJlbCd9XG4gICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlXG4gICAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXtvbk9wdGlvblNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ9e0xpc3RJdGVtfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25Db250YWluZXI+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7YnV0dG9uUmVuZGVyZWR9XG4gICAgICAgIDwvVGlwcHk+XG4gICAgICApfVxuICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZGRCeURhdGFzZXRCdXR0b247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksT0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVYsT0FBQTtBQUF1QyxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBZHZDO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWhCLHdCQUFBZ0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQWVBLElBQU1XLGlCQUFpQixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUNDLEtBQUssQ0FBQztFQUN6Q0MsU0FBUyxFQUFFO0FBQ2IsQ0FBQyxDQUFDLENBQUEzQixlQUFBLEtBQUFBLGVBQUEsT0FBQTRCLHVCQUFBLDZYQUUwQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLHlCQUF5QjtBQUFBLEVBZXpFO0FBRUQsSUFBTUMsWUFBWSxHQUFHUiw0QkFBTSxDQUFDQyxHQUFHLENBQUNDLEtBQUssQ0FBQztFQUNwQ0MsU0FBUyxFQUFFO0FBQ2IsQ0FBQyxDQUFDLENBQUExQixnQkFBQSxLQUFBQSxnQkFBQSxPQUFBMkIsdUJBQUEsaUxBU0Q7QUFFRCxJQUFNSyxlQUFlLEdBQUdULDRCQUFNLENBQUNDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3ZDQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQXpCLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUEwQix1QkFBQSxxU0FFUyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNJLFNBQVM7QUFBQSxFQWF4QztBQUVELElBQU1DLGVBQWUsR0FBRyxXQUFXO0FBQ25DLElBQU1DLHFCQUFxQixHQUFHLGtCQUFrQjtBQVdoRCxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQTtFQUFBLElBQUtDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0VBQUEsb0JBQ3RCcEQsTUFBQSxZQUFBcUQsYUFBQSxDQUFDUCxlQUFlLHFCQUNkOUMsTUFBQSxZQUFBcUQsYUFBQSxDQUFDN0Msa0JBQUEsQ0FBQThDLGFBQWE7SUFBQ2QsU0FBUyxFQUFDLGVBQWU7SUFBQ2UsZUFBZSxFQUFFSCxLQUFLLENBQUNJO0VBQU0sQ0FBRSxDQUFDLGVBQ3pFeEQsTUFBQSxZQUFBcUQsYUFBQTtJQUFLYixTQUFTLEVBQUMsY0FBYztJQUFDaUIsS0FBSyxFQUFFTCxLQUFLLENBQUNNO0VBQU0sR0FDOUNOLEtBQUssQ0FBQ00sS0FDSixDQUNVLENBQUM7QUFBQSxDQUNuQjtBQUVELElBQU1DLGtCQUFxRCxHQUFHLFNBQXhEQSxrQkFBcURBLENBQUFDLEtBQUEsRUFPckQ7RUFBQSxJQU5KQyxRQUFRLEdBQUFELEtBQUEsQ0FBUkMsUUFBUTtJQUNSQyxLQUFLLEdBQUFGLEtBQUEsQ0FBTEUsS0FBSztJQUNMQyxZQUFZLEdBQUFILEtBQUEsQ0FBWkcsWUFBWTtJQUNaQyxLQUFLLEdBQUFKLEtBQUEsQ0FBTEksS0FBSztJQUNMeEIsU0FBUyxHQUFBb0IsS0FBQSxDQUFUcEIsU0FBUztJQUNUeUIsUUFBUSxHQUFBTCxLQUFBLENBQVJLLFFBQVE7RUFFUixJQUFBQyxTQUFBLEdBQTBDLElBQUFDLGVBQVEsRUFBQyxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQTdDSSxhQUFhLEdBQUFGLFVBQUE7SUFBRUcsZ0JBQWdCLEdBQUFILFVBQUE7RUFFdEMsSUFBTUksT0FBTyxHQUFHLElBQUFDLGNBQU8sRUFBQyxZQUFNO0lBQzVCLE9BQU83QyxNQUFNLENBQUM4QyxNQUFNLENBQUNiLFFBQVEsQ0FBQyxDQUFDYyxHQUFHLENBQUMsVUFBQ0MsRUFBZTtNQUFBLE9BQU07UUFDdkRsQixLQUFLLEVBQUVrQixFQUFFLENBQUNsQixLQUFLO1FBQ2ZOLEtBQUssRUFBRXdCLEVBQUUsQ0FBQ0MsRUFBRTtRQUNackIsS0FBSyxFQUFFb0IsRUFBRSxDQUFDcEI7TUFDWixDQUFDO0lBQUEsQ0FBQyxDQUFDO0VBQ0wsQ0FBQyxFQUFFLENBQUNLLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTWlCLFVBQVUsR0FBRyxJQUFBQyxrQkFBVyxFQUFDLFlBQU07SUFDbkMsSUFBSVAsT0FBTyxDQUFDUSxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3hCbEIsS0FBSyxDQUFDVSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNwQixLQUFLLENBQUM7SUFDekI7SUFFQTtFQUNGLENBQUMsRUFBRSxDQUFDb0IsT0FBTyxFQUFFVixLQUFLLENBQUMsQ0FBQztFQUVwQixJQUFNbUIsZ0JBQWdCLEdBQUcsSUFBQUYsa0JBQVcsRUFDbEMsVUFBQUcsTUFBTSxFQUFJO0lBQ1IsSUFBSSxDQUFDQSxNQUFNLEVBQUU7TUFDWDtJQUNGO0lBQ0FwQixLQUFLLENBQUNvQixNQUFNLENBQUM5QixLQUFLLENBQUM7SUFDbkIsSUFBSWtCLGFBQWEsRUFBRTtNQUNqQjtNQUNBQSxhQUFhLENBQUNhLElBQUksQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUNELENBQUNyQixLQUFLLEVBQUVRLGFBQWEsQ0FDdkIsQ0FBQztFQUVELElBQU1jLElBQUksR0FBRyxJQUFBQyxrQkFBTyxFQUFDLENBQUM7RUFFdEIsSUFBTUMsY0FBYyxnQkFDbEJ0RixNQUFBLFlBQUFxRCxhQUFBLENBQUM3QyxrQkFBQSxDQUFBK0UsTUFBTTtJQUNMQyxRQUFRLEVBQUUsQ0FBQyxDQUFFO0lBQ2JoRCxTQUFTLEVBQUVBLFNBQVMsSUFBSSx1QkFBd0I7SUFDaER3QixLQUFLLEVBQUVBLEtBQU07SUFDYnlCLE9BQU8sRUFBRVgsVUFBVztJQUNwQlksUUFBUSxFQUFFLENBQUNsQixPQUFPLENBQUNRLE1BQU0sSUFBSWY7RUFBUyxnQkFFdENqRSxNQUFBLFlBQUFxRCxhQUFBLENBQUM5QyxNQUFBLENBQUFvRixHQUFHO0lBQUNDLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FBQyxlQUNyQjVGLE1BQUEsWUFBQXFELGFBQUEsQ0FBQ2hELGFBQUEsQ0FBQXdGLGdCQUFnQjtJQUFDaEIsRUFBRSxFQUFFZDtFQUFhLENBQUUsQ0FDL0IsQ0FDVDtFQUVELE9BQU9TLE9BQU8sQ0FBQ1EsTUFBTSxLQUFLLENBQUMsR0FDekJNLGNBQWMsZ0JBRWR0RixNQUFBLFlBQUFxRCxhQUFBLENBQUN6QyxRQUFBLENBQUFrRixXQUFXLENBQUNDLFFBQVEsUUFDbEIsVUFBQUMsT0FBTztJQUFBLG9CQUNOaEcsTUFBQSxZQUFBcUQsYUFBQSxDQUFDL0MsT0FBQSxXQUFLO01BQ0oyRixPQUFPLEVBQUMsT0FBTztNQUNmQyxLQUFLLEVBQUUsS0FBTTtNQUNiQyxXQUFXO01BQ1hDLFNBQVMsRUFBQyxRQUFRO01BQ2xCQyxRQUFRLEVBQUUsQ0FBQUwsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVNLE9BQU8sS0FBSTtNQUM5QjtNQUFBO01BQ0FDLFFBQVEsRUFBRWhDLGdCQUFpQjtNQUMzQmlDLFFBQVEsRUFBRSxDQUFFO01BQ1pDLE9BQU8sZUFDTHpHLE1BQUEsWUFBQXFELGFBQUEsQ0FBQ1IsWUFBWSxxQkFDWDdDLE1BQUEsWUFBQXFELGFBQUEsQ0FBQ2pCLGlCQUFpQixxQkFDaEJwQyxNQUFBLFlBQUFxRCxhQUFBLENBQUM1QyxVQUFBLFdBQVM7UUFDUitCLFNBQVMsRUFBRVEsZUFBZ0I7UUFDM0IwRCxhQUFhLEVBQUU7VUFDYkMsT0FBTyxFQUFFLGVBQWU7VUFDeEJDLEtBQUssRUFBRTNELHFCQUFxQjtVQUM1QjRELFFBQVEsRUFBRTtRQUNaLENBQUU7UUFDRkMsV0FBVyxFQUFFMUIsSUFBSSxHQUFHQSxJQUFJLENBQUMyQixhQUFhLENBQUM7VUFBQ2xDLEVBQUUsRUFBRTtRQUFvQixDQUFDLENBQUMsR0FBRyxRQUFTO1FBQzlFbUMsYUFBYSxFQUFFLElBQUs7UUFDcEJ4QyxPQUFPLEVBQUVBLE9BQVE7UUFDakJ5QyxhQUFhLEVBQUVDLG9CQUFRLENBQUNDLHlCQUF5QixDQUFDLE9BQU8sQ0FBRTtRQUMzREMsWUFBWSxFQUFFLE9BQVE7UUFDdEJDLFVBQVU7UUFDVnBDLGdCQUFnQixFQUFFQSxnQkFBaUI7UUFDbkNxQyx1QkFBdUIsRUFBRXBFO01BQVMsQ0FDbkMsQ0FDZ0IsQ0FDUDtJQUNmLEdBRUFvQyxjQUNJLENBQUM7RUFBQSxDQUVVLENBQ3ZCO0FBQ0gsQ0FBQztBQUFDLElBQUFpQyxRQUFBLEdBQUFDLE9BQUEsY0FFYTdELGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==