merchi_product_form
Version:
A React component for Merchi product forms
168 lines • 21.7 kB
JavaScript
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import * as React from 'react';
import TooltipElement from './TooltipElement';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faStopwatch } from '@fortawesome/free-solid-svg-icons';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
import { Fragment as _Fragment } from "react/jsx-runtime";
export var CountdownTimer = /*#__PURE__*/function (_React$Component) {
_inherits(CountdownTimer, _React$Component);
var _super = _createSuper(CountdownTimer);
function CountdownTimer() {
var _this;
_classCallCheck(this, CountdownTimer);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
_defineProperty(_assertThisInitialized(_this), "state", {
timeEnd: _this.props.timeEnd,
timeUp: false
});
return _this;
}
_createClass(CountdownTimer, [{
key: "componentDidMount",
value: function componentDidMount() {
this.timeCount = setInterval(this.count.bind(this), 1000);
}
}, {
key: "count",
value: function count() {
var timeEnd = this.state.timeEnd;
var _this$props = this.props,
options = _this$props.options,
callback = _this$props.callback;
if (options !== undefined) {
var atTimeCallback = options.atTimeCallback;
if (atTimeCallback !== undefined && timeEnd !== undefined && atTimeCallback.time !== undefined && atTimeCallback.callback !== undefined) {
if (atTimeCallback.time === timeEnd * 1000) {
atTimeCallback.callback();
}
}
}
var d;
var h;
var m;
var s;
var rest;
if (timeEnd >= 0) {
rest = timeEnd;
s = Math.floor(rest % 60);
rest = rest / 60;
m = Math.floor(rest % 60);
rest = rest / 60;
h = Math.floor(rest % 24);
rest = rest / 24;
d = Math.floor(rest);
var newTimeEnd = timeEnd - 1;
this.setState({
d: d,
h: h,
m: m,
s: s,
timeEnd: newTimeEnd
});
} else {
clearInterval(this.timeCount);
if (typeof callback === 'function') {
callback();
}
this.setState({
timeUp: true
});
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
clearInterval(this.timeCount);
}
}, {
key: "render",
value: function render() {
var _this$state = this.state,
d = _this$state.d,
h = _this$state.h,
m = _this$state.m,
s = _this$state.s,
timeUp = _this$state.timeUp;
var _this$props2 = this.props,
className = _this$props2.className,
_this$props2$hideSeco = _this$props2.hideSeconds,
hideSeconds = _this$props2$hideSeco === void 0 ? false : _this$props2$hideSeco,
style = _this$props2.style,
model = _this$props2.model;
var qs = s ? s + 's' : '';
var qm = m ? m + 'm ' : '';
var qh = h ? h + 'h ' : '';
var qd = d ? d + 'd ' : '';
var result;
if (d !== undefined) {
switch (model) {
case 'standard':
result = "".concat(qh, " : ").concat(qm, " : ").concat(qs);
break;
case 'text':
result = "".concat(qd).concat(qh).concat(qm).concat(!hideSeconds ? qs : '');
break;
}
}
return /*#__PURE__*/_jsx("span", {
className: className,
style: style,
children: timeUp ? 'time is up' : result
});
}
}]);
return CountdownTimer;
}(React.Component);
_defineProperty(CountdownTimer, "defaultProps", {
model: 'text'
});
function DateCountdown(props) {
var _props$containerClass = props.containerClass,
containerClass = _props$containerClass === void 0 ? 'd-inline-block text-ellipsis' : _props$containerClass,
deadline = props.deadline,
_props$hideSeconds = props.hideSeconds,
hideSeconds = _props$hideSeconds === void 0 ? true : _props$hideSeconds,
_props$icon = props.icon,
icon = _props$icon === void 0 ? faStopwatch : _props$icon,
tooltip = props.tooltip;
var idCountdownDate = 'merchi-countdown-date';
var now = new Date().getTime() / 1000;
var faIcon = /*#__PURE__*/_jsx(FontAwesomeIcon, {
icon: icon
});
var countdown = /*#__PURE__*/_jsx(CountdownTimer, {
hideSeconds: hideSeconds,
timeEnd: deadline - now,
model: "text"
});
return /*#__PURE__*/_jsx("div", {
className: containerClass,
children: tooltip ? /*#__PURE__*/_jsxs(TooltipElement, {
id: idCountdownDate,
tooltip: tooltip,
children: [faIcon, " ", countdown]
}) : /*#__PURE__*/_jsxs(_Fragment, {
children: [faIcon, " ", countdown]
})
});
}
export default DateCountdown;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRvb2x0aXBFbGVtZW50IiwiRm9udEF3ZXNvbWVJY29uIiwiZmFTdG9wd2F0Y2giLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDb3VudGRvd25UaW1lciIsIl9SZWFjdCRDb21wb25lbnQiLCJfaW5oZXJpdHMiLCJfc3VwZXIiLCJfY3JlYXRlU3VwZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsImFwcGx5IiwiY29uY2F0IiwiX2RlZmluZVByb3BlcnR5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsInRpbWVFbmQiLCJwcm9wcyIsInRpbWVVcCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJ0aW1lQ291bnQiLCJzZXRJbnRlcnZhbCIsImNvdW50IiwiYmluZCIsInN0YXRlIiwiX3RoaXMkcHJvcHMiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJhdFRpbWVDYWxsYmFjayIsInRpbWUiLCJkIiwiaCIsIm0iLCJzIiwicmVzdCIsIk1hdGgiLCJmbG9vciIsIm5ld1RpbWVFbmQiLCJzZXRTdGF0ZSIsImNsZWFySW50ZXJ2YWwiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbmRlciIsIl90aGlzJHN0YXRlIiwiX3RoaXMkcHJvcHMyIiwiY2xhc3NOYW1lIiwiX3RoaXMkcHJvcHMyJGhpZGVTZWNvIiwiaGlkZVNlY29uZHMiLCJzdHlsZSIsIm1vZGVsIiwicXMiLCJxbSIsInFoIiwicWQiLCJyZXN1bHQiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsIkRhdGVDb3VudGRvd24iLCJfcHJvcHMkY29udGFpbmVyQ2xhc3MiLCJjb250YWluZXJDbGFzcyIsImRlYWRsaW5lIiwiX3Byb3BzJGhpZGVTZWNvbmRzIiwiX3Byb3BzJGljb24iLCJpY29uIiwidG9vbHRpcCIsImlkQ291bnRkb3duRGF0ZSIsIm5vdyIsIkRhdGUiLCJnZXRUaW1lIiwiZmFJY29uIiwiY291bnRkb3duIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9EYXRlQ291bnRkb3duLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVG9vbHRpcEVsZW1lbnQgZnJvbSAnLi9Ub29sdGlwRWxlbWVudCc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFTdG9wd2F0Y2ggfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuXG5pbnRlcmZhY2UgQ291bnRQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICB0aW1lRW5kOiBudW1iZXI7XG4gIGNhbGxiYWNrPzogRnVuY3Rpb247XG4gIGhpZGVTZWNvbmRzPzogYm9vbGVhbjtcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIG9wdGlvbnM/OiB7XG4gICAgYXRUaW1lQ2FsbGJhY2s/OiB7XG4gICAgICB0aW1lOiBudW1iZXI7XG4gICAgICBjYWxsYmFjazogRnVuY3Rpb247XG4gICAgfTtcbiAgfTtcbn1cblxuXG5pbnRlcmZhY2UgQ291bnRTdGF0ZSB7XG4gIHRpbWVFbmQ6IG51bWJlcjtcbiAgdGltZVVwOiBib29sZWFuO1xuICBkID86IG51bWJlciB8IHN0cmluZztcbiAgaCA/OiBudW1iZXIgfCBzdHJpbmc7XG4gIG0gPzogbnVtYmVyIHwgc3RyaW5nO1xuICBzID86IG51bWJlciB8IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENvdW50ZG93blRpbWVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PENvdW50UHJvcHMsIENvdW50U3RhdGU+IHtcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbW9kZWw6ICd0ZXh0JyxcbiAgfTtcbiAgcHVibGljIHN0YXRlOiBDb3VudFN0YXRlID0ge1xuICAgIHRpbWVFbmQ6IHRoaXMucHJvcHMudGltZUVuZCxcbiAgICB0aW1lVXA6IGZhbHNlLFxuICB9O1xuICBwdWJsaWMgdGltZUNvdW50OiBhbnk7XG4gIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnRpbWVDb3VudCA9IHNldEludGVydmFsKHRoaXMuY291bnQuYmluZCh0aGlzKSwgMTAwMCk7XG4gIH1cbiAgcHVibGljIGNvdW50KCkge1xuICAgIGNvbnN0IHt0aW1lRW5kfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge29wdGlvbnMsIGNhbGxiYWNrfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qge2F0VGltZUNhbGxiYWNrfSA9IG9wdGlvbnM7XG4gICAgICBpZiAoYXRUaW1lQ2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiB0aW1lRW5kICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgJiYgYXRUaW1lQ2FsbGJhY2sudGltZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgIGF0VGltZUNhbGxiYWNrLmNhbGxiYWNrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoYXRUaW1lQ2FsbGJhY2sudGltZSA9PT0gdGltZUVuZCAqIDEwMDApIHtcbiAgICAgICAgICAgIGF0VGltZUNhbGxiYWNrLmNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgZDtcbiAgICBsZXQgaDtcbiAgICBsZXQgbTtcbiAgICBsZXQgcztcbiAgICBsZXQgcmVzdDtcblxuICAgIGlmICh0aW1lRW5kID49IDApIHtcbiAgICAgIHJlc3QgPSB0aW1lRW5kO1xuICAgICAgcyA9IE1hdGguZmxvb3IocmVzdCAlIDYwKTtcbiAgICAgIHJlc3QgPSByZXN0IC8gNjA7XG4gICAgICBtID0gTWF0aC5mbG9vcihyZXN0ICUgNjApO1xuICAgICAgcmVzdCA9IHJlc3QgLyA2MDtcbiAgICAgIGggPSBNYXRoLmZsb29yKHJlc3QgJSAyNCk7XG4gICAgICByZXN0ID0gcmVzdCAvIDI0O1xuICAgICAgZCA9IE1hdGguZmxvb3IocmVzdCk7XG4gICAgICBsZXQgbmV3VGltZUVuZCA9IHRpbWVFbmQgLSAxO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGQ6IGQsXG4gICAgICAgIGg6IGgsXG4gICAgICAgIG06IG0sXG4gICAgICAgIHM6IHMsXG4gICAgICAgIHRpbWVFbmQ6IG5ld1RpbWVFbmQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVDb3VudCk7XG4gICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHt0aW1lVXA6IHRydWV9KTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lQ291bnQpO1xuICB9XG4gIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgY29uc3Qge2QsIGgsIG0sIHMsIHRpbWVVcH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtjbGFzc05hbWUsIGhpZGVTZWNvbmRzID0gZmFsc2UsIHN0eWxlLCBtb2RlbH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCBxcyA9IHMgPyBzICsgJ3MnIDogJyc7XG4gICAgbGV0IHFtID0gbSA/IG0gKyAnbSAnIDogJyc7XG4gICAgbGV0IHFoID0gaCA/IGggKyAnaCAnIDogJyc7XG4gICAgbGV0IHFkID0gZCA/IGQgKyAnZCAnIDogJyc7XG4gICAgbGV0IHJlc3VsdCA7XG5cbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzd2l0Y2ggKG1vZGVsKSB7XG4gICAgICAgIGNhc2UgJ3N0YW5kYXJkJzpcbiAgICAgICAgICByZXN1bHQgPSBgJHtxaH0gOiAke3FtfSA6ICR7cXN9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgcmVzdWx0ID0gYCR7cWR9JHtxaH0ke3FtfSR7IWhpZGVTZWNvbmRzID8gcXMgOiAnJ31gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc05hbWV9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIHt0aW1lVXAgPyAndGltZSBpcyB1cCcgOiByZXN1bHR9XG4gICAgICA8L3NwYW4+XG4gICAgKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBjb250YWluZXJDbGFzcz86IHN0cmluZztcbiAgZGVhZGxpbmU6IG51bWJlcjtcbiAgaGlkZVNlY29uZHM/OiBib29sZWFuO1xuICBpY29uPzogYW55O1xuICB0b29sdGlwPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBEYXRlQ291bnRkb3duKHByb3BzOiBQcm9wcykge1xuICBjb25zdCB7XG4gICAgY29udGFpbmVyQ2xhc3MgPSAnZC1pbmxpbmUtYmxvY2sgdGV4dC1lbGxpcHNpcycsXG4gICAgZGVhZGxpbmUsXG4gICAgaGlkZVNlY29uZHMgPSB0cnVlLFxuICAgIGljb24gPSBmYVN0b3B3YXRjaCxcbiAgICB0b29sdGlwLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGlkQ291bnRkb3duRGF0ZSA9ICdtZXJjaGktY291bnRkb3duLWRhdGUnXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcbiAgY29uc3QgZmFJY29uID0gPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtpY29ufSAvPjtcbiAgY29uc3QgY291bnRkb3duID0gKFxuICAgIDxDb3VudGRvd25UaW1lclxuICAgICAgaGlkZVNlY29uZHM9e2hpZGVTZWNvbmRzfVxuICAgICAgdGltZUVuZD17ZGVhZGxpbmUgLSBub3d9XG4gICAgICBtb2RlbD0ndGV4dCdcbiAgICAvPlxuICApO1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjb250YWluZXJDbGFzc30+XG4gICAgICB7dG9vbHRpcCA/IChcbiAgICAgICAgPFRvb2x0aXBFbGVtZW50XG4gICAgICAgICAgaWQ9e2lkQ291bnRkb3duRGF0ZX1cbiAgICAgICAgICB0b29sdGlwPXt0b29sdGlwfVxuICAgICAgICA+XG4gICAgICAgICAge2ZhSWNvbn0ge2NvdW50ZG93bn1cbiAgICAgICAgPC9Ub29sdGlwRWxlbWVudD5cbiAgICAgICkgOiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2ZhSWNvbn0ge2NvdW50ZG93bn1cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlQ291bnRkb3duO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFTQyxlQUFlLFFBQVEsZ0NBQWdDO0FBQ2hFLFNBQVNDLFdBQVcsUUFBUSxtQ0FBbUM7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFBQSxTQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFBQSxTQUFBQyxRQUFBLElBQUFDLFNBQUE7QUEyQmhFLFdBQWFDLGNBQWMsMEJBQUFDLGdCQUFBO0VBQUFDLFNBQUEsQ0FBQUYsY0FBQSxFQUFBQyxnQkFBQTtFQUFBLElBQUFFLE1BQUEsR0FBQUMsWUFBQSxDQUFBSixjQUFBO0VBQUEsU0FBQUEsZUFBQTtJQUFBLElBQUFLLEtBQUE7SUFBQUMsZUFBQSxPQUFBTixjQUFBO0lBQUEsU0FBQU8sSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUMsSUFBQSxPQUFBQyxLQUFBLENB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