react-live-chat-loader
Version:
Implement live chat in your react app without taking a performance hit.
185 lines (184 loc) • 34.5 kB
JavaScript
"use strict";
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); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _useChat3 = _interopRequireDefault(require("../../hooks/useChat"));
var _useWindowWidth = _interopRequireDefault(require("../../hooks/useWindowWidth"));
var _types = require("../../types");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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) { _defineProperty(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; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var styles = {
container: {
WebkitFontSmoothing: 'antialiased',
fontSize: 16,
display: 'flex',
alignItems: 'flex-end',
padding: '12px',
flexDirection: 'column'
},
button: {
textAlign: 'center',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
fill: '#fff',
cursor: 'pointer',
height: '56px',
width: '56px',
borderRadius: '.3125rem',
boxShadow: '0 2px 6px 0 rgba(0,0,0,.4)',
overflow: 'hidden',
outline: 'none',
border: 'none'
},
iconWrapper: {
fill: 'inherit',
stroke: 'inherit',
width: '100%',
padding: 0,
lineHeight: 0
}
};
var Drift = function Drift(_ref) {
var _ref$color = _ref.color,
color = _ref$color === void 0 ? '#0176ff' : _ref$color,
_ref$icon = _ref.icon,
icon = _ref$icon === void 0 ? 'A' : _ref$icon,
_ref$containerClass = _ref.containerClass,
containerClass = _ref$containerClass === void 0 ? _types.ClassNames.container : _ref$containerClass;
var _useChat = (0, _useChat3.default)({
loadWhenIdle: true
}),
_useChat2 = _slicedToArray(_useChat, 2),
state = _useChat2[0],
loadChat = _useChat2[1];
var windowWidth = (0, _useWindowWidth.default)();
var _useState = (0, _react.useState)({
zIndex: 2147483648,
position: 'fixed',
display: 'block'
}),
_useState2 = _slicedToArray(_useState, 2),
positionStyles = _useState2[0],
setPositionStyles = _useState2[1];
(0, _react.useEffect)(function () {
setPositionStyles(function (state) {
return _objectSpread(_objectSpread({}, state), {}, {
bottom: windowWidth < 768 ? 0 : '24px',
right: windowWidth < 768 ? 0 : '24px'
});
});
}, [windowWidth]);
if (state === 'complete') {
return null;
}
return /*#__PURE__*/_react.default.createElement("div", {
className: containerClass,
style: positionStyles
}, /*#__PURE__*/_react.default.createElement("div", {
style: styles.container
}, /*#__PURE__*/_react.default.createElement("div", {
role: "button",
"aria-label": "Load Chat",
"aria-busy": "true",
"aria-live": "polite",
onClick: function onClick() {
return loadChat({
open: true
});
},
onMouseEnter: function onMouseEnter() {
return loadChat({
open: false
});
},
style: _objectSpread({
backgroundColor: color
}, styles.button)
}, /*#__PURE__*/_react.default.createElement("i", {
style: _objectSpread(_objectSpread({}, styles.iconWrapper), {}, {
opacity: state === 'initial' ? 1 : 0.75
})
}, icon === 'A' ? /*#__PURE__*/_react.default.createElement("svg", {
width: "24",
height: "24",
viewBox: "0 0 20 20",
focusable: "false",
"aria-hidden": "true",
style: {
display: state === 'initial' ? 'initial' : 'none'
}
}, /*#__PURE__*/_react.default.createElement("path", {
fill: "#FFFFFF",
d: "M4.583 14.894l-3.256 3.78c-.7.813-1.26.598-1.25-.46a10689.413 10689.413 0 0 1 .035-4.775V4.816a3.89 3.89 0 0 1 3.88-3.89h12.064a3.885 3.885 0 0 1 3.882 3.89v6.185a3.89 3.89 0 0 1-3.882 3.89H4.583z"
})) : icon === 'B' ? /*#__PURE__*/_react.default.createElement("svg", {
width: "25",
height: "23",
viewBox: "0 0 25 23",
focusable: "false",
"aria-hidden": "true",
style: {
display: state === 'initial' ? 'initial' : 'none'
}
}, /*#__PURE__*/_react.default.createElement("path", {
d: "M24.516 9.953C24.516 4.453 19.04 0 12.258 0 5.476 0 0 4.452 0 9.953c0 3.318 1.986 6.24 5.05 8.053-.34 2.552-1.815 4.055-1.844 4.084-.14.14-.17.368-.113.567a.524.524 0 0 0 .482.312c2.95 0 5.335-1.93 6.612-3.206.652.086 1.362.142 2.07.142 6.783 0 12.26-4.452 12.26-9.953z",
fill: "rgb(255, 255, 255)",
fillRule: "evenodd"
})) : icon === 'C' ? /*#__PURE__*/_react.default.createElement("svg", {
width: "25",
height: "25",
viewBox: "0 0 25 25",
focusable: "false",
"aria-hidden": "true",
style: {
display: state === 'initial' ? 'initial' : 'none'
}
}, /*#__PURE__*/_react.default.createElement("path", {
d: "M22.814 12.25h-1.362v3.063a1.02 1.02 0 0 1-1.744.72L15.92 12.25H11.92c-.94 0-1.703-.785-1.703-1.75V1.75c0-.965.764-1.75 1.703-1.75h10.896c.938 0 1.702.785 1.702 1.75v8.75c0 .965-.764 1.75-1.702 1.75zm-.34-10.208H12.257v8.166h4.086a1.032 1.032 0 0 1 .723.3l2.342 2.34v-1.62c0-.562.456-1.02 1.02-1.02h2.043V2.042zM8.17 10.208h-6.13v8.167h2.044c.564 0 1.022.457 1.022 1.02v1.62l2.34-2.34a1.022 1.022 0 0 1 .724-.3h4.086V14.29a1.02 1.02 0 0 1 2.043 0v4.377c0 .965-.763 1.75-1.702 1.75H8.595L4.808 24.2a1.022 1.022 0 0 1-1.743-.72v-3.063H1.702c-.938 0-1.702-.785-1.702-1.75v-8.75c0-.965.764-1.75 1.702-1.75h6.47a1.022 1.022 0 0 1 0 2.04z",
fill: "rgb(255, 255, 255)",
fillRule: "evenodd"
})) : icon === 'D' ? /*#__PURE__*/_react.default.createElement("svg", {
width: "25",
height: "25",
viewBox: "0 0 25 25",
focusable: "false",
"aria-hidden": "true",
style: {
display: state === 'initial' ? 'initial' : 'none'
}
}, /*#__PURE__*/_react.default.createElement("path", {
d: "M23.295 24.412a.987.987 0 0 1-1.123-.43L19.9 20.358H9.527c-1.392 0-2.523-1.153-2.523-2.57V16.3c0-.563.448-1.02 1-1.02.553 0 1 .457 1 1.02v1.485c0 .295.235.533.523.533h10.92c.036 0 .067.018.103.022a.96.96 0 0 1 .527.224.984.984 0 0 1 .14.15c.023.026.054.043.073.075l.725 1.154V9.7a.528.528 0 0 0-.523-.532h-1.48c-.55 0-1-.457-1-1.02 0-.56.45-1.018 1-1.018h1.48c1.392 0 2.524 1.152 2.524 2.57V23.433c0 .452-.293.85-.72.978zM14.49 13.226H4.116L1.844 16.85a.997.997 0 0 1-1.124.43 1.017 1.017 0 0 1-.72-.978V2.57C0 1.152 1.132 0 2.523 0H14.49c1.39 0 2.52 1.152 2.52 2.57v8.085c0 1.418-1.13 2.57-2.52 2.57zm.52-10.656a.528.528 0 0 0-.52-.532H2.522c-.288 0-.522.24-.522.532v10.242l.726-1.153c.02-.032.05-.05.07-.076a.897.897 0 0 1 .296-.256.92.92 0 0 1 .372-.118c.037-.004.068-.022.104-.022h10.92c.288 0 .522-.238.522-.533V2.57z",
fill: "rgb(255, 255, 255)",
fillRule: "evenodd"
})) : null, /*#__PURE__*/_react.default.createElement("svg", {
width: "17",
height: "17",
viewBox: "0 0 17 17",
focusable: "false",
"aria-hidden": "true",
style: {
display: state === 'initial' ? 'none' : 'initial'
}
}, /*#__PURE__*/_react.default.createElement("path", {
d: "M16.726 15.402c.365.366.365.96 0 1.324-.178.178-.416.274-.663.274-.246 0-.484-.096-.663-.274L8.323 9.648h.353L1.6 16.726c-.177.178-.416.274-.663.274-.246 0-.484-.096-.663-.274-.365-.365-.365-.958 0-1.324L7.35 8.324v.35L.275 1.6C-.09 1.233-.09.64.274.274c.367-.365.96-.365 1.326 0l7.076 7.078h-.353L15.4.274c.366-.365.96-.365 1.326 0 .365.366.365.958 0 1.324L9.65 8.675v-.35l7.076 7.077z",
fill: "rgb(255, 255, 255)",
fillRule: "evenodd"
}))))));
};
var _default = exports.default = Drift;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQ2hhdDMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZVdpbmRvd1dpZHRoIiwiX3R5cGVzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiV2Vha01hcCIsInIiLCJ0IiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibCIsIml0ZXJhdG9yIiwiZiIsIm5leHQiLCJkb25lIiwicmV0dXJuIiwiaXNBcnJheSIsInN0eWxlcyIsImNvbnRhaW5lciIsIldlYmtpdEZvbnRTbW9vdGhpbmciLCJmb250U2l6ZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwicGFkZGluZyIsImZsZXhEaXJlY3Rpb24iLCJidXR0b24iLCJ0ZXh0QWxpZ24iLCJqdXN0aWZ5Q29udGVudCIsImZpbGwiLCJjdXJzb3IiLCJoZWlnaHQiLCJ3aWR0aCIsImJvcmRlclJhZGl1cyIsImJveFNoYWRvdyIsIm92ZXJmbG93Iiwib3V0bGluZSIsImJvcmRlciIsImljb25XcmFwcGVyIiwic3Ryb2tlIiwibGluZUhlaWdodCIsIkRyaWZ0IiwiX3JlZiIsIl9yZWYkY29sb3IiLCJjb2xvciIsIl9yZWYkaWNvbiIsImljb24iLCJfcmVmJGNvbnRhaW5lckNsYXNzIiwiY29udGFpbmVyQ2xhc3MiLCJDbGFzc05hbWVzIiwiX3VzZUNoYXQiLCJ1c2VDaGF0IiwibG9hZFdoZW5JZGxlIiwiX3VzZUNoYXQyIiwic3RhdGUiLCJsb2FkQ2hhdCIsIndpbmRvd1dpZHRoIiwidXNlV2luZG93V2lkdGgiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInpJbmRleCIsInBvc2l0aW9uIiwiX3VzZVN0YXRlMiIsInBvc2l0aW9uU3R5bGVzIiwic2V0UG9zaXRpb25TdHlsZXMiLCJ1c2VFZmZlY3QiLCJib3R0b20iLCJyaWdodCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsInJvbGUiLCJvbkNsaWNrIiwib3BlbiIsIm9uTW91c2VFbnRlciIsImJhY2tncm91bmRDb2xvciIsIm9wYWNpdHkiLCJ2aWV3Qm94IiwiZm9jdXNhYmxlIiwiZCIsImZpbGxSdWxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHJpZnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB1c2VDaGF0IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNoYXQnXG5pbXBvcnQgdXNlV2luZG93V2lkdGggZnJvbSAnLi4vLi4vaG9va3MvdXNlV2luZG93V2lkdGgnXG5pbXBvcnQgeyBQcm92aWRlclByb3BzLCBDbGFzc05hbWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmNvbnN0IHN0eWxlczoge1xuICBjb250YWluZXI6IENTU1Byb3BlcnRpZXNcbiAgYnV0dG9uOiBDU1NQcm9wZXJ0aWVzXG4gIGljb25XcmFwcGVyOiBDU1NQcm9wZXJ0aWVzXG59ID0ge1xuICBjb250YWluZXI6IHtcbiAgICBXZWJraXRGb250U21vb3RoaW5nOiAnYW50aWFsaWFzZWQnLFxuICAgIGZvbnRTaXplOiAxNixcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtZW5kJyxcbiAgICBwYWRkaW5nOiAnMTJweCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbidcbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGZpbGw6ICcjZmZmJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBoZWlnaHQ6ICc1NnB4JyxcbiAgICB3aWR0aDogJzU2cHgnLFxuICAgIGJvcmRlclJhZGl1czogJy4zMTI1cmVtJyxcbiAgICBib3hTaGFkb3c6ICcwIDJweCA2cHggMCByZ2JhKDAsMCwwLC40KScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIG91dGxpbmU6ICdub25lJyxcbiAgICBib3JkZXI6ICdub25lJ1xuICB9LFxuICBpY29uV3JhcHBlcjoge1xuICAgIGZpbGw6ICdpbmhlcml0JyxcbiAgICBzdHJva2U6ICdpbmhlcml0JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbGluZUhlaWdodDogMFxuICB9XG59XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIFByb3ZpZGVyUHJvcHMge1xuICBjb2xvcj86IHN0cmluZ1xuICBpY29uPzogJ0EnIHwgJ0InIHwgJ0MnIHwgJ0QnXG59XG5cbmNvbnN0IERyaWZ0ID0gKHtcbiAgY29sb3IgPSAnIzAxNzZmZicsXG4gIGljb24gPSAnQScsXG4gIGNvbnRhaW5lckNsYXNzID0gQ2xhc3NOYW1lcy5jb250YWluZXJcbn06IFByb3BzKTogSlNYLkVsZW1lbnQgfCBudWxsID0+IHtcbiAgY29uc3QgW3N0YXRlLCBsb2FkQ2hhdF0gPSB1c2VDaGF0KHsgbG9hZFdoZW5JZGxlOiB0cnVlIH0pXG4gIGNvbnN0IHdpbmRvd1dpZHRoID0gdXNlV2luZG93V2lkdGgoKVxuICBjb25zdCBbcG9zaXRpb25TdHlsZXMsIHNldFBvc2l0aW9uU3R5bGVzXSA9IHVzZVN0YXRlPENTU1Byb3BlcnRpZXM+KHtcbiAgICB6SW5kZXg6IDIxNDc0ODM2NDgsXG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJ1xuICB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb25TdHlsZXMoc3RhdGUgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgYm90dG9tOiB3aW5kb3dXaWR0aCA8IDc2OCA/IDAgOiAnMjRweCcsXG4gICAgICByaWdodDogd2luZG93V2lkdGggPCA3NjggPyAwIDogJzI0cHgnXG4gICAgfSkpXG4gIH0sIFt3aW5kb3dXaWR0aF0pXG5cbiAgaWYgKHN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NvbnRhaW5lckNsYXNzfSBzdHlsZT17cG9zaXRpb25TdHlsZXN9PlxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTG9hZCBDaGF0XCJcbiAgICAgICAgICBhcmlhLWJ1c3k9XCJ0cnVlXCJcbiAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxvYWRDaGF0KHsgb3BlbjogdHJ1ZSB9KX1cbiAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IGxvYWRDaGF0KHsgb3BlbjogZmFsc2UgfSl9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgICAgICAgICAuLi5zdHlsZXMuYnV0dG9uXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAuLi5zdHlsZXMuaWNvbldyYXBwZXIsXG4gICAgICAgICAgICAgIG9wYWNpdHk6IHN0YXRlID09PSAnaW5pdGlhbCcgPyAxIDogMC43NVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aWNvbiA9PT0gJ0EnID8gKFxuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBzdGF0ZSA9PT0gJ2luaXRpYWwnID8gJ2luaXRpYWwnIDogJ25vbmUnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBmaWxsPVwiI0ZGRkZGRlwiXG4gICAgICAgICAgICAgICAgICBkPVwiTTQuNTgzIDE0Ljg5NGwtMy4yNTYgMy43OGMtLjcuODEzLTEuMjYuNTk4LTEuMjUtLjQ2YTEwNjg5LjQxMyAxMDY4OS40MTMgMCAwIDEgLjAzNS00Ljc3NVY0LjgxNmEzLjg5IDMuODkgMCAwIDEgMy44OC0zLjg5aDEyLjA2NGEzLjg4NSAzLjg4NSAwIDAgMSAzLjg4MiAzLjg5djYuMTg1YTMuODkgMy44OSAwIDAgMS0zLjg4MiAzLjg5SDQuNTgzelwiXG4gICAgICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICApIDogaWNvbiA9PT0gJ0InID8gKFxuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIyNVwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjUgMjNcIlxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBzdGF0ZSA9PT0gJ2luaXRpYWwnID8gJ2luaXRpYWwnIDogJ25vbmUnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBkPVwiTTI0LjUxNiA5Ljk1M0MyNC41MTYgNC40NTMgMTkuMDQgMCAxMi4yNTggMCA1LjQ3NiAwIDAgNC40NTIgMCA5Ljk1M2MwIDMuMzE4IDEuOTg2IDYuMjQgNS4wNSA4LjA1My0uMzQgMi41NTItMS44MTUgNC4wNTUtMS44NDQgNC4wODQtLjE0LjE0LS4xNy4zNjgtLjExMy41NjdhLjUyNC41MjQgMCAwIDAgLjQ4Mi4zMTJjMi45NSAwIDUuMzM1LTEuOTMgNi42MTItMy4yMDYuNjUyLjA4NiAxLjM2Mi4xNDIgMi4wNy4xNDIgNi43ODMgMCAxMi4yNi00LjQ1MiAxMi4yNi05Ljk1M3pcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cInJnYigyNTUsIDI1NSwgMjU1KVwiXG4gICAgICAgICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgKSA6IGljb24gPT09ICdDJyA/IChcbiAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjI1XCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI1IDI1XCJcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogc3RhdGUgPT09ICdpbml0aWFsJyA/ICdpbml0aWFsJyA6ICdub25lJ1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgZD1cIk0yMi44MTQgMTIuMjVoLTEuMzYydjMuMDYzYTEuMDIgMS4wMiAwIDAgMS0xLjc0NC43MkwxNS45MiAxMi4yNUgxMS45MmMtLjk0IDAtMS43MDMtLjc4NS0xLjcwMy0xLjc1VjEuNzVjMC0uOTY1Ljc2NC0xLjc1IDEuNzAzLTEuNzVoMTAuODk2Yy45MzggMCAxLjcwMi43ODUgMS43MDIgMS43NXY4Ljc1YzAgLjk2NS0uNzY0IDEuNzUtMS43MDIgMS43NXptLS4zNC0xMC4yMDhIMTIuMjU3djguMTY2aDQuMDg2YTEuMDMyIDEuMDMyIDAgMCAxIC43MjMuM2wyLjM0MiAyLjM0di0xLjYyYzAtLjU2Mi40NTYtMS4wMiAxLjAyLTEuMDJoMi4wNDNWMi4wNDJ6TTguMTcgMTAuMjA4aC02LjEzdjguMTY3aDIuMDQ0Yy41NjQgMCAxLjAyMi40NTcgMS4wMjIgMS4wMnYxLjYybDIuMzQtMi4zNGExLjAyMiAxLjAyMiAwIDAgMSAuNzI0LS4zaDQuMDg2VjE0LjI5YTEuMDIgMS4wMiAwIDAgMSAyLjA0MyAwdjQuMzc3YzAgLjk2NS0uNzYzIDEuNzUtMS43MDIgMS43NUg4LjU5NUw0LjgwOCAyNC4yYTEuMDIyIDEuMDIyIDAgMCAxLTEuNzQzLS43MnYtMy4wNjNIMS43MDJjLS45MzggMC0xLjcwMi0uNzg1LTEuNzAyLTEuNzV2LTguNzVjMC0uOTY1Ljc2NC0xLjc1IDEuNzAyLTEuNzVoNi40N2ExLjAyMiAxLjAyMiAwIDAgMSAwIDIuMDR6XCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJyZ2IoMjU1LCAyNTUsIDI1NSlcIlxuICAgICAgICAgICAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICkgOiBpY29uID09PSAnRCcgPyAoXG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI1XCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNVwiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNSAyNVwiXG4gICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHN0YXRlID09PSAnaW5pdGlhbCcgPyAnaW5pdGlhbCcgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMjMuMjk1IDI0LjQxMmEuOTg3Ljk4NyAwIDAgMS0xLjEyMy0uNDNMMTkuOSAyMC4zNThIOS41MjdjLTEuMzkyIDAtMi41MjMtMS4xNTMtMi41MjMtMi41N1YxNi4zYzAtLjU2My40NDgtMS4wMiAxLTEuMDIuNTUzIDAgMSAuNDU3IDEgMS4wMnYxLjQ4NWMwIC4yOTUuMjM1LjUzMy41MjMuNTMzaDEwLjkyYy4wMzYgMCAuMDY3LjAxOC4xMDMuMDIyYS45Ni45NiAwIDAgMSAuNTI3LjIyNC45ODQuOTg0IDAgMCAxIC4xNC4xNWMuMDIzLjAyNi4wNTQuMDQzLjA3My4wNzVsLjcyNSAxLjE1NFY5LjdhLjUyOC41MjggMCAwIDAtLjUyMy0uNTMyaC0xLjQ4Yy0uNTUgMC0xLS40NTctMS0xLjAyIDAtLjU2LjQ1LTEuMDE4IDEtMS4wMThoMS40OGMxLjM5MiAwIDIuNTI0IDEuMTUyIDIuNTI0IDIuNTdWMjMuNDMzYzAgLjQ1Mi0uMjkzLjg1LS43Mi45Nzh6TTE0LjQ5IDEzLjIyNkg0LjExNkwxLjg0NCAxNi44NWEuOTk3Ljk5NyAwIDAgMS0xLjEyNC40MyAxLjAxNyAxLjAxNyAwIDAgMS0uNzItLjk3OFYyLjU3QzAgMS4xNTIgMS4xMzIgMCAyLjUyMyAwSDE0LjQ5YzEuMzkgMCAyLjUyIDEuMTUyIDIuNTIgMi41N3Y4LjA4NWMwIDEuNDE4LTEuMTMgMi41Ny0yLjUyIDIuNTd6bS41Mi0xMC42NTZhLjUyOC41MjggMCAwIDAtLjUyLS41MzJIMi41MjJjLS4yODggMC0uNTIyLjI0LS41MjIuNTMydjEwLjI0MmwuNzI2LTEuMTUzYy4wMi0uMDMyLjA1LS4wNS4wNy0uMDc2YS44OTcuODk3IDAgMCAxIC4yOTYtLjI1Ni45Mi45MiAwIDAgMSAuMzcyLS4xMThjLjAzNy0uMDA0LjA2OC0uMDIyLjEwNC0uMDIyaDEwLjkyYy4yODggMCAuNTIyLS4yMzguNTIyLS41MzNWMi41N3pcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cInJnYigyNTUsIDI1NSwgMjU1KVwiXG4gICAgICAgICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgd2lkdGg9XCIxN1wiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE3XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNyAxN1wiXG4gICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBzdGF0ZSA9PT0gJ2luaXRpYWwnID8gJ25vbmUnIDogJ2luaXRpYWwnXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNi43MjYgMTUuNDAyYy4zNjUuMzY2LjM2NS45NiAwIDEuMzI0LS4xNzguMTc4LS40MTYuMjc0LS42NjMuMjc0LS4yNDYgMC0uNDg0LS4wOTYtLjY2My0uMjc0TDguMzIzIDkuNjQ4aC4zNTNMMS42IDE2LjcyNmMtLjE3Ny4xNzgtLjQxNi4yNzQtLjY2My4yNzQtLjI0NiAwLS40ODQtLjA5Ni0uNjYzLS4yNzQtLjM2NS0uMzY1LS4zNjUtLjk1OCAwLTEuMzI0TDcuMzUgOC4zMjR2LjM1TC4yNzUgMS42Qy0uMDkgMS4yMzMtLjA5LjY0LjI3NC4yNzRjLjM2Ny0uMzY1Ljk2LS4zNjUgMS4zMjYgMGw3LjA3NiA3LjA3OGgtLjM1M0wxNS40LjI3NGMuMzY2LS4zNjUuOTYtLjM2NSAxLjMyNiAwIC4zNjUuMzY2LjM2NS45NTggMCAxLjMyNEw5LjY1IDguNjc1di0uMzVsNy4wNzYgNy4wNzd6XCJcbiAgICAgICAgICAgICAgICBmaWxsPVwicmdiKDI1NSwgMjU1LCAyNTUpXCJcbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IERyaWZ0XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxTQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBdUQsU0FBQUUsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyx5QkFBQUgsQ0FBQSw2QkFBQUksT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRCx3QkFBQSxZQUFBQSx5QkFBQUgsQ0FBQSxXQUFBQSxDQUFBLEdBQUFNLENBQUEsR0FBQUQsQ0FBQSxLQUFBTCxDQUFBO0FBQUEsU0FBQU4sd0JBQUFNLENBQUEsRUFBQUssQ0FBQSxTQUFBQSxDQUFBLElBQUFMLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsZUFBQUEsQ0FBQSxnQkFBQU8sT0FBQSxDQUFBUCxDQUFBLDBCQUFBQSxDQUFBLFdBQUFFLE9BQUEsRUFBQUYsQ0FBQSxRQUFBTSxDQUFBLEdBQUFILHdCQUFBLENBQUFFLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFFLEdBQUEsQ0FBQVIsQ0FBQSxVQUFBTSxDQUFBLENBQUFHLEdBQUEsQ0FBQVQsQ0FBQSxPQUFBVSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFoQixDQUFBLG9CQUFBZ0IsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEs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