UNPKG

kepler.gl

Version:

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

93 lines (92 loc) 20.8 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _reselect = require("reselect"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _lodash = _interopRequireDefault(require("lodash.get")); var _constants = require("@kepler.gl/constants"); var _newFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/new-filter-panel")); var _timeRangeFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/time-range-filter-panel")); var _singleSelectFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/single-select-filter-panel")); var _multiSelectFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/multi-select-filter-panel")); var _rangeFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/range-filter-panel")); var _polygonFilterPanel = _interopRequireDefault(require("../../filters/filter-panels/polygon-filter-panel")); var _templateObject; // 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 _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var StyledFilterPanel = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 12px;\n border-radius: 1px;\n"]))); FilterPanelFactory.deps = [_newFilterPanel["default"], _timeRangeFilterPanel["default"], _singleSelectFilterPanel["default"], _multiSelectFilterPanel["default"], _rangeFilterPanel["default"], _polygonFilterPanel["default"]]; function FilterPanelFactory(NewFilterPanel, TimeRangeFilterPanel, SingleSelectFilterPanel, MultiSelectFilterPanel, RangeFilterPanel, PolygonFilterPanel) { var FilterPanelComponents = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({ "default": NewFilterPanel }, _constants.FILTER_TYPES.timeRange, TimeRangeFilterPanel), _constants.FILTER_TYPES.select, SingleSelectFilterPanel), _constants.FILTER_TYPES.multiSelect, MultiSelectFilterPanel), _constants.FILTER_TYPES.range, RangeFilterPanel), _constants.FILTER_TYPES.polygon, PolygonFilterPanel); return /*#__PURE__*/function (_Component) { function FilterPanel() { var _this; (0, _classCallCheck2["default"])(this, FilterPanel); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, FilterPanel, [].concat(args)); /* selectors */ (0, _defineProperty2["default"])(_this, "fieldsSelector", function (props) { var datasetId = props.filter.dataId[0]; if (!datasetId) { return []; } return (0, _lodash["default"])(props, ['datasets', datasetId, 'fields'], []); }); (0, _defineProperty2["default"])(_this, "filterSelector", function (props) { return props.filters; }); (0, _defineProperty2["default"])(_this, "nameSelector", function (props) { return props.filter.name; }); (0, _defineProperty2["default"])(_this, "dataIdSelector", function (props) { return props.filter.dataId[0]; }); // only show current field and field that's not already been used as a filter (0, _defineProperty2["default"])(_this, "availableFieldsSelector", (0, _reselect.createSelector)(_this.fieldsSelector, _this.filterSelector, _this.nameSelector, _this.dataIdSelector, function (fields, filters, name, dataId) { return fields.filter(function (f) { return f.type && f.type !== _constants.ALL_FIELD_TYPES.geojson && (name.includes(f.name) || !filters.find(function (d) { return d.name.includes(f.name) && d.dataId.includes(dataId); })); }); })); return _this; } (0, _inherits2["default"])(FilterPanel, _Component); return (0, _createClass2["default"])(FilterPanel, [{ key: "render", value: function render() { var filter = this.props.filter; var type = filter.type; var FilterFilterComponent = type && FilterPanelComponents[type] || FilterPanelComponents["default"]; var allAvailableFields = this.availableFieldsSelector(this.props); return /*#__PURE__*/_react["default"].createElement(StyledFilterPanel, { className: "filter-panel" }, /*#__PURE__*/_react["default"].createElement(FilterFilterComponent, (0, _extends2["default"])({ allAvailableFields: allAvailableFields }, this.props))); } }]); }(_react.Component); } var _default = exports["default"] = FilterPanelFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVzZWxlY3QiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoIiwiX2NvbnN0YW50cyIsIl9uZXdGaWx0ZXJQYW5lbCIsIl90aW1lUmFuZ2VGaWx0ZXJQYW5lbCIsIl9zaW5nbGVTZWxlY3RGaWx0ZXJQYW5lbCIsIl9tdWx0aVNlbGVjdEZpbHRlclBhbmVsIiwiX3JhbmdlRmlsdGVyUGFuZWwiLCJfcG9seWdvbkZpbHRlclBhbmVsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRGaWx0ZXJQYW5lbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiRmlsdGVyUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk5ld0ZpbHRlclBhbmVsRmFjdG9yeSIsIlRpbWVSYW5nZUZpbHRlclBhbmVsRmFjdG9yeSIsIlNpbmdsZVNlbGVjdEZpbHRlclBhbmVsRmFjdG9yeSIsIk11bHRpU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5IiwiUmFuZ2VGaWx0ZXJQYW5lbEZhY3RvcnkiLCJQb2x5Z29uRmlsdGVyUGFuZWxGYWN0b3J5IiwiTmV3RmlsdGVyUGFuZWwiLCJUaW1lUmFuZ2VGaWx0ZXJQYW5lbCIsIlNpbmdsZVNlbGVjdEZpbHRlclBhbmVsIiwiTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbCIsIlJhbmdlRmlsdGVyUGFuZWwiLCJQb2x5Z29uRmlsdGVyUGFuZWwiLCJGaWx0ZXJQYW5lbENvbXBvbmVudHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiRklMVEVSX1RZUEVTIiwidGltZVJhbmdlIiwic2VsZWN0IiwibXVsdGlTZWxlY3QiLCJyYW5nZSIsInBvbHlnb24iLCJfQ29tcG9uZW50IiwiRmlsdGVyUGFuZWwiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsInByb3BzIiwiZGF0YXNldElkIiwiZmlsdGVyIiwiZGF0YUlkIiwiZmlsdGVycyIsIm5hbWUiLCJjcmVhdGVTZWxlY3RvciIsImZpZWxkc1NlbGVjdG9yIiwiZmlsdGVyU2VsZWN0b3IiLCJuYW1lU2VsZWN0b3IiLCJkYXRhSWRTZWxlY3RvciIsImZpZWxkcyIsImYiLCJ0eXBlIiwiQUxMX0ZJRUxEX1RZUEVTIiwiZ2VvanNvbiIsImluY2x1ZGVzIiwiZmluZCIsImQiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwicmVuZGVyIiwiRmlsdGVyRmlsdGVyQ29tcG9uZW50IiwiYWxsQXZhaWxhYmxlRmllbGRzIiwiYXZhaWxhYmxlRmllbGRzU2VsZWN0b3IiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiX2V4dGVuZHMyIiwiQ29tcG9uZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFUywgRklMVEVSX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBOZXdGaWx0ZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi4vLi4vZmlsdGVycy9maWx0ZXItcGFuZWxzL25ldy1maWx0ZXItcGFuZWwnO1xuaW1wb3J0IFRpbWVSYW5nZUZpbHRlclBhbmVsRmFjdG9yeSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlci1wYW5lbHMvdGltZS1yYW5nZS1maWx0ZXItcGFuZWwnO1xuaW1wb3J0IFNpbmdsZVNlbGVjdEZpbHRlclBhbmVsRmFjdG9yeSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlci1wYW5lbHMvc2luZ2xlLXNlbGVjdC1maWx0ZXItcGFuZWwnO1xuaW1wb3J0IE11bHRpU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyLXBhbmVscy9tdWx0aS1zZWxlY3QtZmlsdGVyLXBhbmVsJztcbmltcG9ydCBSYW5nZUZpbHRlclBhbmVsRmFjdG9yeSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlci1wYW5lbHMvcmFuZ2UtZmlsdGVyLXBhbmVsJztcbmltcG9ydCBQb2x5Z29uRmlsdGVyUGFuZWxGYWN0b3J5IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyLXBhbmVscy9wb2x5Z29uLWZpbHRlci1wYW5lbCc7XG5pbXBvcnQge0ZpZWxkLCBGaWx0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtGaWx0ZXJQYW5lbFByb3BzfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlci1wYW5lbHMvdHlwZXMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuXG5jb25zdCBTdHlsZWRGaWx0ZXJQYW5lbCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbmA7XG5cbmludGVyZmFjZSBGaWx0ZXJQYW5lbFByb3BzSW1wbCBleHRlbmRzIE9taXQ8RmlsdGVyUGFuZWxQcm9wcywgJ2FsbEF2YWlsYWJsZUZpZWxkcyc+IHtcbiAgZmlsdGVyczogRmlsdGVyW107XG4gIGxheWVyczogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIGlzQW55RmlsdGVyQW5pbWF0aW5nOiBib29sZWFuO1xuICB0b2dnbGVBbmltYXRpb246ICgpID0+IHZvaWQ7XG4gIGVubGFyZ2VGaWx0ZXI6ICgpID0+IHZvaWQ7XG4gIHRvZ2dsZUZpbHRlckZlYXR1cmU6ICgpID0+IHZvaWQ7XG59XG5cbkZpbHRlclBhbmVsRmFjdG9yeS5kZXBzID0gW1xuICBOZXdGaWx0ZXJQYW5lbEZhY3RvcnksXG4gIFRpbWVSYW5nZUZpbHRlclBhbmVsRmFjdG9yeSxcbiAgU2luZ2xlU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5LFxuICBNdWx0aVNlbGVjdEZpbHRlclBhbmVsRmFjdG9yeSxcbiAgUmFuZ2VGaWx0ZXJQYW5lbEZhY3RvcnksXG4gIFBvbHlnb25GaWx0ZXJQYW5lbEZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEZpbHRlclBhbmVsRmFjdG9yeShcbiAgTmV3RmlsdGVyUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE5ld0ZpbHRlclBhbmVsRmFjdG9yeT4sXG4gIFRpbWVSYW5nZUZpbHRlclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBUaW1lUmFuZ2VGaWx0ZXJQYW5lbEZhY3Rvcnk+LFxuICBTaW5nbGVTZWxlY3RGaWx0ZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5PixcbiAgTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbEZhY3Rvcnk+LFxuICBSYW5nZUZpbHRlclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBSYW5nZUZpbHRlclBhbmVsRmFjdG9yeT4sXG4gIFBvbHlnb25GaWx0ZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgUG9seWdvbkZpbHRlclBhbmVsRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RmlsdGVyUGFuZWxQcm9wc0ltcGw+IHtcbiAgY29uc3QgRmlsdGVyUGFuZWxDb21wb25lbnRzID0ge1xuICAgIGRlZmF1bHQ6IE5ld0ZpbHRlclBhbmVsLFxuICAgIFtGSUxURVJfVFlQRVMudGltZVJhbmdlXTogVGltZVJhbmdlRmlsdGVyUGFuZWwsXG4gICAgW0ZJTFRFUl9UWVBFUy5zZWxlY3RdOiBTaW5nbGVTZWxlY3RGaWx0ZXJQYW5lbCxcbiAgICBbRklMVEVSX1RZUEVTLm11bHRpU2VsZWN0XTogTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbCxcbiAgICBbRklMVEVSX1RZUEVTLnJhbmdlXTogUmFuZ2VGaWx0ZXJQYW5lbCxcbiAgICBbRklMVEVSX1RZUEVTLnBvbHlnb25dOiBQb2x5Z29uRmlsdGVyUGFuZWxcbiAgfTtcblxuICByZXR1cm4gY2xhc3MgRmlsdGVyUGFuZWwgZXh0ZW5kcyBDb21wb25lbnQ8RmlsdGVyUGFuZWxQcm9wc0ltcGw+IHtcbiAgICAvKiBzZWxlY3RvcnMgKi9cbiAgICBmaWVsZHNTZWxlY3RvciA9IChwcm9wczogRmlsdGVyUGFuZWxQcm9wc0ltcGwpID0+IHtcbiAgICAgIGNvbnN0IGRhdGFzZXRJZCA9IHByb3BzLmZpbHRlci5kYXRhSWRbMF07XG4gICAgICBpZiAoIWRhdGFzZXRJZCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gZ2V0KHByb3BzLCBbJ2RhdGFzZXRzJywgZGF0YXNldElkLCAnZmllbGRzJ10sIFtdKTtcbiAgICB9O1xuXG4gICAgZmlsdGVyU2VsZWN0b3IgPSAocHJvcHM6IEZpbHRlclBhbmVsUHJvcHNJbXBsKSA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIG5hbWVTZWxlY3RvciA9IChwcm9wczogRmlsdGVyUGFuZWxQcm9wc0ltcGwpID0+IHByb3BzLmZpbHRlci5uYW1lO1xuICAgIGRhdGFJZFNlbGVjdG9yID0gKHByb3BzOiBGaWx0ZXJQYW5lbFByb3BzSW1wbCkgPT4gcHJvcHMuZmlsdGVyLmRhdGFJZFswXTtcblxuICAgIC8vIG9ubHkgc2hvdyBjdXJyZW50IGZpZWxkIGFuZCBmaWVsZCB0aGF0J3Mgbm90IGFscmVhZHkgYmVlbiB1c2VkIGFzIGEgZmlsdGVyXG4gICAgYXZhaWxhYmxlRmllbGRzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmllbGRzU2VsZWN0b3IsXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5uYW1lU2VsZWN0b3IsXG4gICAgICB0aGlzLmRhdGFJZFNlbGVjdG9yLFxuICAgICAgKGZpZWxkcywgZmlsdGVycywgbmFtZSwgZGF0YUlkKSA9PlxuICAgICAgICBmaWVsZHMuZmlsdGVyKFxuICAgICAgICAgIChmOiBGaWVsZCkgPT5cbiAgICAgICAgICAgIGYudHlwZSAmJlxuICAgICAgICAgICAgZi50eXBlICE9PSBBTExfRklFTERfVFlQRVMuZ2VvanNvbiAmJlxuICAgICAgICAgICAgKG5hbWUuaW5jbHVkZXMoZi5uYW1lKSB8fFxuICAgICAgICAgICAgICAhZmlsdGVycy5maW5kKGQgPT4gZC5uYW1lLmluY2x1ZGVzKGYubmFtZSkgJiYgZC5kYXRhSWQuaW5jbHVkZXMoZGF0YUlkKSkpXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2ZpbHRlcn0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCB7dHlwZX0gPSBmaWx0ZXI7XG4gICAgICBjb25zdCBGaWx0ZXJGaWx0ZXJDb21wb25lbnQgPVxuICAgICAgICAodHlwZSAmJiBGaWx0ZXJQYW5lbENvbXBvbmVudHNbdHlwZV0pIHx8IEZpbHRlclBhbmVsQ29tcG9uZW50cy5kZWZhdWx0O1xuICAgICAgY29uc3QgYWxsQXZhaWxhYmxlRmllbGRzID0gdGhpcy5hdmFpbGFibGVGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZEZpbHRlclBhbmVsIGNsYXNzTmFtZT1cImZpbHRlci1wYW5lbFwiPlxuICAgICAgICAgIDxGaWx0ZXJGaWx0ZXJDb21wb25lbnQgYWxsQXZhaWxhYmxlRmllbGRzPXthbGxBdmFpbGFibGVGaWVsZHN9IHsuLi50aGlzLnByb3BzfSAvPlxuICAgICAgICA8L1N0eWxlZEZpbHRlclBhbmVsPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbHRlclBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxlQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxxQkFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsd0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLHVCQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxpQkFBQSxHQUFBUCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVcsbUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUF5RixJQUFBWSxlQUFBLEVBZHpGO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWYsd0JBQUFlLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBVyxXQUFBaEIsQ0FBQSxFQUFBaUIsQ0FBQSxFQUFBcEIsQ0FBQSxXQUFBb0IsQ0FBQSxPQUFBQyxnQkFBQSxhQUFBRCxDQUFBLE9BQUFFLDJCQUFBLGFBQUFuQixDQUFBLEVBQUFvQix5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQUwsQ0FBQSxFQUFBcEIsQ0FBQSxZQUFBcUIsZ0JBQUEsYUFBQWxCLENBQUEsRUFBQXVCLFdBQUEsSUFBQU4sQ0FBQSxDQUFBTyxLQUFBLENBQUF4QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBdUIsMEJBQUEsY0FBQXBCLENBQUEsSUFBQXlCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFkLElBQUEsQ0FBQVEsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUF6QixDQUFBLGFBQUFvQix5QkFBQSxZQUFBQSwwQkFBQSxhQUFBcEIsQ0FBQTtBQWtCQSxJQUFNNEIsaUJBQWlCLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQW5DLGVBQUEsS0FBQUEsZUFBQSxPQUFBb0MsdUJBQUEscUVBR25DO0FBV0RDLGtCQUFrQixDQUFDQyxJQUFJLEdBQUcsQ0FDeEJDLDBCQUFxQixFQUNyQkMsZ0NBQTJCLEVBQzNCQyxtQ0FBOEIsRUFDOUJDLGtDQUE2QixFQUM3QkMsNEJBQXVCLEVBQ3ZCQyw4QkFBeUIsQ0FDMUI7QUFFRCxTQUFTUCxrQkFBa0JBLENBQ3pCUSxjQUF3RCxFQUN4REMsb0JBQW9FLEVBQ3BFQyx1QkFBMEUsRUFDMUVDLHNCQUF3RSxFQUN4RUMsZ0JBQTRELEVBQzVEQyxrQkFBZ0UsRUFDckI7RUFDM0MsSUFBTUMscUJBQXFCLE9BQUFDLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQTtJQUN6QixXQUFTUDtFQUFjLEdBQ3RCUSx1QkFBWSxDQUFDQyxTQUFTLEVBQUdSLG9CQUFvQixHQUM3Q08sdUJBQVksQ0FBQ0UsTUFBTSxFQUFHUix1QkFBdUIsR0FDN0NNLHVCQUFZLENBQUNHLFdBQVcsRUFBR1Isc0JBQXNCLEdBQ2pESyx1QkFBWSxDQUFDSSxLQUFLLEVBQUdSLGdCQUFnQixHQUNyQ0ksdUJBQVksQ0FBQ0ssT0FBTyxFQUFHUixrQkFBa0IsQ0FDM0M7RUFFRCw4QkFBQVMsVUFBQTtJQUFBLFNBQUFDLFlBQUE7TUFBQSxJQUFBQyxLQUFBO01BQUEsSUFBQUMsZ0JBQUEsbUJBQUFGLFdBQUE7TUFBQSxTQUFBRyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO1FBQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7TUFBQTtNQUFBUCxLQUFBLEdBQUF4QyxVQUFBLE9BQUF1QyxXQUFBLEtBQUFTLE1BQUEsQ0FBQUgsSUFBQTtNQUNFO01BQUEsSUFBQWQsZ0JBQUEsYUFBQVMsS0FBQSxvQkFDaUIsVUFBQ1MsS0FBMkIsRUFBSztRQUNoRCxJQUFNQyxTQUFTLEdBQUdELEtBQUssQ0FBQ0UsTUFBTSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQ0YsU0FBUyxFQUFFO1VBQ2QsT0FBTyxFQUFFO1FBQ1g7UUFDQSxPQUFPLElBQUE5RCxrQkFBRyxFQUFDNkQsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO01BQzFELENBQUM7TUFBQSxJQUFBbkIsZ0JBQUEsYUFBQVMsS0FBQSxvQkFFZ0IsVUFBQ1MsS0FBMkI7UUFBQSxPQUFLQSxLQUFLLENBQUNJLE9BQU87TUFBQTtNQUFBLElBQUF0QixnQkFBQSxhQUFBUyxLQUFBLGtCQUNoRCxVQUFDUyxLQUEyQjtRQUFBLE9BQUtBLEtBQUssQ0FBQ0UsTUFBTSxDQUFDRyxJQUFJO01BQUE7TUFBQSxJQUFBdkIsZ0JBQUEsYUFBQVMsS0FBQSxvQkFDaEQsVUFBQ1MsS0FBMkI7UUFBQSxPQUFLQSxLQUFLLENBQUNFLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQztNQUFBO01BRXhFO01BQUEsSUFBQXJCLGdCQUFBLGFBQUFTLEtBQUEsNkJBQzBCLElBQUFlLHdCQUFjLEVBQ3RDZixLQUFBLENBQUtnQixjQUFjLEVBQ25CaEIsS0FBQSxDQUFLaUIsY0FBYyxFQUNuQmpCLEtBQUEsQ0FBS2tCLFlBQVksRUFDakJsQixLQUFBLENBQUttQixjQUFjLEVBQ25CLFVBQUNDLE1BQU0sRUFBRVAsT0FBTyxFQUFFQyxJQUFJLEVBQUVGLE1BQU07UUFBQSxPQUM1QlEsTUFBTSxDQUFDVCxNQUFNLENBQ1gsVUFBQ1UsQ0FBUTtVQUFBLE9BQ1BBLENBQUMsQ0FBQ0MsSUFBSSxJQUNORCxDQUFDLENBQUNDLElBQUksS0FBS0MsMEJBQWUsQ0FBQ0MsT0FBTyxLQUNqQ1YsSUFBSSxDQUFDVyxRQUFRLENBQUNKLENBQUMsQ0FBQ1AsSUFBSSxDQUFDLElBQ3BCLENBQUNELE9BQU8sQ0FBQ2EsSUFBSSxDQUFDLFVBQUFDLENBQUM7WUFBQSxPQUFJQSxDQUFDLENBQUNiLElBQUksQ0FBQ1csUUFBUSxDQUFDSixDQUFDLENBQUNQLElBQUksQ0FBQyxJQUFJYSxDQUFDLENBQUNmLE1BQU0sQ0FBQ2EsUUFBUSxDQUFDYixNQUFNLENBQUM7VUFBQSxFQUFDLENBQUM7UUFBQSxDQUMvRSxDQUFDO01BQUEsQ0FDTCxDQUFDO01BQUEsT0FBQVosS0FBQTtJQUFBO0lBQUEsSUFBQTRCLFVBQUEsYUFBQTdCLFdBQUEsRUFBQUQsVUFBQTtJQUFBLFdBQUErQixhQUFBLGFBQUE5QixXQUFBO01BQUErQixHQUFBO01BQUFDLEtBQUEsRUFFRCxTQUFBQyxNQUFNQSxDQUFBLEVBQUc7UUFDUCxJQUFPckIsTUFBTSxHQUFJLElBQUksQ0FBQ0YsS0FBSyxDQUFwQkUsTUFBTTtRQUViLElBQU9XLElBQUksR0FBSVgsTUFBTSxDQUFkVyxJQUFJO1FBQ1gsSUFBTVcscUJBQXFCLEdBQ3hCWCxJQUFJLElBQUloQyxxQkFBcUIsQ0FBQ2dDLElBQUksQ0FBQyxJQUFLaEMscUJBQXFCLFdBQVE7UUFDeEUsSUFBTTRDLGtCQUFrQixHQUFHLElBQUksQ0FBQ0MsdUJBQXVCLENBQUMsSUFBSSxDQUFDMUIsS0FBSyxDQUFDO1FBRW5FLG9CQUNFcEYsTUFBQSxZQUFBK0csYUFBQSxDQUFDaEUsaUJBQWlCO1VBQUNpRSxTQUFTLEVBQUM7UUFBYyxnQkFDekNoSCxNQUFBLFlBQUErRyxhQUFBLENBQUNILHFCQUFxQixNQUFBSyxTQUFBO1VBQUNKLGtCQUFrQixFQUFFQTtRQUFtQixHQUFLLElBQUksQ0FBQ3pCLEtBQUssQ0FBRyxDQUMvRCxDQUFDO01BRXhCO0lBQUM7RUFBQSxFQTNDOEI4QixnQkFBUztBQTZDNUM7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FFY2pFLGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==