UNPKG

kepler.gl

Version:

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

112 lines (111 loc) 21 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 _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 _styledComponents = _interopRequireDefault(require("styled-components")); var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _constants = require("@kepler.gl/constants"); var _effectPanelHeader = _interopRequireDefault(require("./effect-panel-header")); var _effectConfigurator = _interopRequireDefault(require("./effect-configurator")); 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 PanelWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 12px;\n border-radius: 1px;\n z-index: 1000;\n &.dragging {\n cursor: move;\n }\n margin: 3px auto 3px 25px;\n max-width: 295px;\n"]))); EffectPanelFactory.deps = [_effectPanelHeader["default"], _effectConfigurator["default"]]; function EffectPanelFactory(EffectPanelHeader, EffectConfigurator) { var EffectPanel = /*#__PURE__*/function (_Component) { function EffectPanel() { var _this; (0, _classCallCheck2["default"])(this, EffectPanel); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, EffectPanel, [].concat(args)); (0, _defineProperty2["default"])(_this, "_toggleEnabled", function (event) { event === null || event === void 0 || event.stopPropagation(); _this.props.updateEffect(_this.props.effect.id, { isEnabled: !_this.props.effect.isEnabled }); }); (0, _defineProperty2["default"])(_this, "_toggleConfigActive", function (event) { event === null || event === void 0 || event.stopPropagation(); _this.props.updateEffect(_this.props.effect.id, { isConfigActive: !_this.props.effect.isConfigActive }); }); (0, _defineProperty2["default"])(_this, "_removeEffect", function (event) { event === null || event === void 0 || event.stopPropagation(); _this.props.removeEffect(_this.props.effect.id); }); (0, _defineProperty2["default"])(_this, "_updateEffectConfig", function (event, id, props) { event === null || event === void 0 || event.stopPropagation(); _this.props.updateEffect(id, props); }); return _this; } (0, _inherits2["default"])(EffectPanel, _Component); return (0, _createClass2["default"])(EffectPanel, [{ key: "render", value: function render() { var _this$props = this.props, effect = _this$props.effect, isDraggable = _this$props.isDraggable, listeners = _this$props.listeners; var id = effect.id, type = effect.type, isConfigActive = effect.isConfigActive, isJsonEditorActive = effect.isJsonEditorActive, isEnabled = effect.isEnabled; var sortingAllowed = type !== _constants.LIGHT_AND_SHADOW_EFFECT.type; return /*#__PURE__*/_react["default"].createElement(PanelWrapper, { active: false, className: (0, _classnames["default"])('effect-panel', this.props.className), "data-testid": _constants.dataTestIds.effectPanel, style: this.props.style, onMouseDown: this.props.onMouseDown, onTouchStart: this.props.onTouchStart }, /*#__PURE__*/_react["default"].createElement(EffectPanelHeader, { isConfigActive: isConfigActive, effectId: id, type: type, isEnabled: isEnabled, isJsonEditorActive: isJsonEditorActive, onToggleEnabled: this._toggleEnabled, onRemoveEffect: this._removeEffect, onToggleEnableConfig: this._toggleConfigActive, isDragNDropEnabled: isDraggable && sortingAllowed, listeners: listeners, showSortHandle: type !== _constants.LIGHT_AND_SHADOW_EFFECT.type }), isConfigActive && /*#__PURE__*/_react["default"].createElement(EffectConfigurator, { key: "effect-configurator-".concat(id), effect: effect, updateEffectConfig: this._updateEffectConfig })); } }]); }(_react.Component); // @ts-expect-error fix The types of 'propTypes.isDraggable[nominalTypeHack]' are incompatible between these types. (0, _defineProperty2["default"])(EffectPanel, "propTypes", { effect: _propTypes["default"].object.isRequired, removeEffect: _propTypes["default"].func.isRequired, updateEffect: _propTypes["default"].func.isRequired, isDraggable: _propTypes["default"].bool }); return EffectPanel; } var _default = exports["default"] = EffectPanelFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9wcm9wVHlwZXMiLCJfY29uc3RhbnRzIiwiX2VmZmVjdFBhbmVsSGVhZGVyIiwiX2VmZmVjdENvbmZpZ3VyYXRvciIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiUGFuZWxXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJFZmZlY3RQYW5lbEZhY3RvcnkiLCJkZXBzIiwiRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5IiwiRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSIsIkVmZmVjdFBhbmVsSGVhZGVyIiwiRWZmZWN0Q29uZmlndXJhdG9yIiwiRWZmZWN0UGFuZWwiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfZGVmaW5lUHJvcGVydHkyIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcm9wcyIsInVwZGF0ZUVmZmVjdCIsImVmZmVjdCIsImlkIiwiaXNFbmFibGVkIiwiaXNDb25maWdBY3RpdmUiLCJyZW1vdmVFZmZlY3QiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpc0RyYWdnYWJsZSIsImxpc3RlbmVycyIsInR5cGUiLCJpc0pzb25FZGl0b3JBY3RpdmUiLCJzb3J0aW5nQWxsb3dlZCIsIkxJR0hUX0FORF9TSEFET1dfRUZGRUNUIiwiY3JlYXRlRWxlbWVudCIsImFjdGl2ZSIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJkYXRhVGVzdElkcyIsImVmZmVjdFBhbmVsIiwic3R5bGUiLCJvbk1vdXNlRG93biIsIm9uVG91Y2hTdGFydCIsImVmZmVjdElkIiwib25Ub2dnbGVFbmFibGVkIiwiX3RvZ2dsZUVuYWJsZWQiLCJvblJlbW92ZUVmZmVjdCIsIl9yZW1vdmVFZmZlY3QiLCJvblRvZ2dsZUVuYWJsZUNvbmZpZyIsIl90b2dnbGVDb25maWdBY3RpdmUiLCJpc0RyYWdORHJvcEVuYWJsZWQiLCJzaG93U29ydEhhbmRsZSIsInVwZGF0ZUVmZmVjdENvbmZpZyIsIl91cGRhdGVFZmZlY3RDb25maWciLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsImJvb2wiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZWZmZWN0cy9lZmZlY3QtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7ZGF0YVRlc3RJZHMsIExJR0hUX0FORF9TSEFET1dfRUZGRUNUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge3JlbW92ZUVmZmVjdCwgdXBkYXRlRWZmZWN0fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtFZmZlY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQgRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5IGZyb20gJy4vZWZmZWN0LXBhbmVsLWhlYWRlcic7XG5pbXBvcnQgRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSBmcm9tICcuL2VmZmVjdC1jb25maWd1cmF0b3InO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RQYW5lbFByb3BzID0ge1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgZWZmZWN0OiBFZmZlY3Q7XG4gIGlzRHJhZ2dhYmxlOiBib29sZWFuO1xuICBsaXN0ZW5lcnM6IGFueTtcbiAgcmVtb3ZlRWZmZWN0OiB0eXBlb2YgcmVtb3ZlRWZmZWN0O1xuICB1cGRhdGVFZmZlY3Q6IHR5cGVvZiB1cGRhdGVFZmZlY3Q7XG5cbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBvbk1vdXNlRG93bjogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblRvdWNoU3RhcnQ6IFJlYWN0LlRvdWNoRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhbmVsV3JhcHBlclByb3BzID0ge1xuICBhY3RpdmU6IGJvb2xlYW47XG59O1xuXG5jb25zdCBQYW5lbFdyYXBwZXIgPSBzdHlsZWQuZGl2PFBhbmVsV3JhcHBlclByb3BzPmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIHotaW5kZXg6IDEwMDA7XG4gICYuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxuICBtYXJnaW46IDNweCBhdXRvIDNweCAyNXB4O1xuICBtYXgtd2lkdGg6IDI5NXB4O1xuYDtcblxuRWZmZWN0UGFuZWxGYWN0b3J5LmRlcHMgPSBbRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5LCBFZmZlY3RDb25maWd1cmF0b3JGYWN0b3J5XTtcblxuZnVuY3Rpb24gRWZmZWN0UGFuZWxGYWN0b3J5KFxuICBFZmZlY3RQYW5lbEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5PixcbiAgRWZmZWN0Q29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBFZmZlY3RDb25maWd1cmF0b3JGYWN0b3J5PlxuKTogQ29tcG9uZW50VHlwZTxFZmZlY3RQYW5lbFByb3BzPiB7XG4gIGNsYXNzIEVmZmVjdFBhbmVsIGV4dGVuZHMgQ29tcG9uZW50PEVmZmVjdFBhbmVsUHJvcHM+IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZWZmZWN0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICByZW1vdmVFZmZlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVFZmZlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBpc0RyYWdnYWJsZTogUHJvcFR5cGVzLmJvb2xcbiAgICB9O1xuXG4gICAgX3RvZ2dsZUVuYWJsZWQgPSAoZXZlbnQ/OiBFdmVudCkgPT4ge1xuICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5wcm9wcy51cGRhdGVFZmZlY3QodGhpcy5wcm9wcy5lZmZlY3QuaWQsIHtcbiAgICAgICAgaXNFbmFibGVkOiAhdGhpcy5wcm9wcy5lZmZlY3QuaXNFbmFibGVkXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RvZ2dsZUNvbmZpZ0FjdGl2ZSA9IChldmVudD86IEV2ZW50KSA9PiB7XG4gICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnByb3BzLnVwZGF0ZUVmZmVjdCh0aGlzLnByb3BzLmVmZmVjdC5pZCwge1xuICAgICAgICBpc0NvbmZpZ0FjdGl2ZTogIXRoaXMucHJvcHMuZWZmZWN0LmlzQ29uZmlnQWN0aXZlXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3JlbW92ZUVmZmVjdCA9IChldmVudD86IEV2ZW50KSA9PiB7XG4gICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnByb3BzLnJlbW92ZUVmZmVjdCh0aGlzLnByb3BzLmVmZmVjdC5pZCk7XG4gICAgfTtcblxuICAgIF91cGRhdGVFZmZlY3RDb25maWcgPSAoZXZlbnQsIGlkLCBwcm9wcykgPT4ge1xuICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5wcm9wcy51cGRhdGVFZmZlY3QoaWQsIHByb3BzKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2VmZmVjdCwgaXNEcmFnZ2FibGUsIGxpc3RlbmVyc30gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2lkLCB0eXBlLCBpc0NvbmZpZ0FjdGl2ZSwgaXNKc29uRWRpdG9yQWN0aXZlLCBpc0VuYWJsZWR9ID0gZWZmZWN0O1xuXG4gICAgICBjb25zdCBzb3J0aW5nQWxsb3dlZCA9IHR5cGUgIT09IExJR0hUX0FORF9TSEFET1dfRUZGRUNULnR5cGU7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQYW5lbFdyYXBwZXJcbiAgICAgICAgICBhY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZWZmZWN0LXBhbmVsJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkcy5lZmZlY3RQYW5lbH1cbiAgICAgICAgICBzdHlsZT17dGhpcy5wcm9wcy5zdHlsZX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17dGhpcy5wcm9wcy5vbk1vdXNlRG93bn1cbiAgICAgICAgICBvblRvdWNoU3RhcnQ9e3RoaXMucHJvcHMub25Ub3VjaFN0YXJ0fVxuICAgICAgICA+XG4gICAgICAgICAgPEVmZmVjdFBhbmVsSGVhZGVyXG4gICAgICAgICAgICBpc0NvbmZpZ0FjdGl2ZT17aXNDb25maWdBY3RpdmV9XG4gICAgICAgICAgICBlZmZlY3RJZD17aWR9XG4gICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgaXNFbmFibGVkPXtpc0VuYWJsZWR9XG4gICAgICAgICAgICBpc0pzb25FZGl0b3JBY3RpdmU9e2lzSnNvbkVkaXRvckFjdGl2ZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlRW5hYmxlZD17dGhpcy5fdG9nZ2xlRW5hYmxlZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlRWZmZWN0PXt0aGlzLl9yZW1vdmVFZmZlY3R9XG4gICAgICAgICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZz17dGhpcy5fdG9nZ2xlQ29uZmlnQWN0aXZlfVxuICAgICAgICAgICAgaXNEcmFnTkRyb3BFbmFibGVkPXtpc0RyYWdnYWJsZSAmJiBzb3J0aW5nQWxsb3dlZH1cbiAgICAgICAgICAgIGxpc3RlbmVycz17bGlzdGVuZXJzfVxuICAgICAgICAgICAgc2hvd1NvcnRIYW5kbGU9e3R5cGUgIT09IExJR0hUX0FORF9TSEFET1dfRUZGRUNULnR5cGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7aXNDb25maWdBY3RpdmUgJiYgKFxuICAgICAgICAgICAgPEVmZmVjdENvbmZpZ3VyYXRvclxuICAgICAgICAgICAgICBrZXk9e2BlZmZlY3QtY29uZmlndXJhdG9yLSR7aWR9YH1cbiAgICAgICAgICAgICAgZWZmZWN0PXtlZmZlY3R9XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZz17dGhpcy5fdXBkYXRlRWZmZWN0Q29uZmlnfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1BhbmVsV3JhcHBlcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBmaXggVGhlIHR5cGVzIG9mICdwcm9wVHlwZXMuaXNEcmFnZ2FibGVbbm9taW5hbFR5cGVIYWNrXScgYXJlIGluY29tcGF0aWJsZSBiZXR3ZWVuIHRoZXNlIHR5cGVzLlxuICByZXR1cm4gRWZmZWN0UGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVmZmVjdFBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUlBLElBQUFNLGtCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxtQkFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQThELElBQUFRLGVBQUEsRUFiOUQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBWCx3QkFBQVcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFB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