matrix-react-sdk
Version:
SDK for matrix.org using React
108 lines (105 loc) • 18.8 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _compoundWeb = require("@vector-im/compound-web");
var _close = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/close"));
var _chevronLeft = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/chevron-left"));
var _AutoHideScrollbar = _interopRequireDefault(require("../../structures/AutoHideScrollbar"));
var _languageHandler = require("../../../languageHandler");
var _RightPanelStore = _interopRequireDefault(require("../../../stores/right-panel/RightPanelStore"));
var _RightPanelStorePhases = require("../../../stores/right-panel/RightPanelStorePhases");
var _context = require("./context");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (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; }
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
function closeRightPanel(ev) {
ev.preventDefault();
ev.stopPropagation();
_RightPanelStore.default.instance.popCard();
}
const BaseCard = /*#__PURE__*/(0, _react.forwardRef)(({
closeLabel,
onClose,
onBack,
className,
id,
ariaLabelledBy,
role,
hideHeaderButtons,
header,
footer,
withoutScrollContainer,
children,
onKeyDown,
closeButtonRef
}, ref) => {
let backButton;
const cardHistory = _RightPanelStore.default.instance.roomPhaseHistory;
if (cardHistory.length > 1 && !hideHeaderButtons) {
const prevCard = cardHistory[cardHistory.length - 2];
const onBackClick = ev => {
onBack?.(ev);
_RightPanelStore.default.instance.popCard();
};
const label = (0, _RightPanelStorePhases.backLabelForPhase)(prevCard.phase) ?? (0, _languageHandler._t)("action|back");
backButton = /*#__PURE__*/_react.default.createElement(_compoundWeb.IconButton, {
size: "28px",
"data-testid": "base-card-back-button",
onClick: onBackClick,
tooltip: label,
subtleBackground: true
}, /*#__PURE__*/_react.default.createElement(_chevronLeft.default, null));
}
let closeButton;
if (!hideHeaderButtons) {
closeButton = /*#__PURE__*/_react.default.createElement(_compoundWeb.IconButton, {
size: "28px",
"data-testid": "base-card-close-button",
onClick: onClose ?? closeRightPanel,
ref: closeButtonRef,
tooltip: closeLabel ?? (0, _languageHandler._t)("action|close"),
subtleBackground: true
}, /*#__PURE__*/_react.default.createElement(_close.default, null));
}
if (!withoutScrollContainer) {
children = /*#__PURE__*/_react.default.createElement(_AutoHideScrollbar.default, null, children);
}
const shouldRenderHeader = header || !hideHeaderButtons;
return /*#__PURE__*/_react.default.createElement(_context.CardContext.Provider, {
value: {
isCard: true
}
}, /*#__PURE__*/_react.default.createElement("div", {
id: id,
"aria-labelledby": ariaLabelledBy,
role: role,
className: (0, _classnames.default)("mx_BaseCard", className),
ref: ref,
onKeyDown: onKeyDown
}, shouldRenderHeader && /*#__PURE__*/_react.default.createElement("div", {
className: "mx_BaseCard_header"
}, backButton, typeof header === "string" ? /*#__PURE__*/_react.default.createElement("div", {
className: "mx_BaseCard_header_title"
}, /*#__PURE__*/_react.default.createElement(_compoundWeb.Text, {
size: "md",
weight: "medium",
className: "mx_BaseCard_header_title_heading",
role: "heading"
}, header)) : header ?? /*#__PURE__*/_react.default.createElement("div", {
className: "mx_BaseCard_header_spacer"
}), closeButton), children, footer && /*#__PURE__*/_react.default.createElement("div", {
className: "mx_BaseCard_footer"
}, footer)));
});
var _default = exports.default = BaseCard;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG91bmRXZWIiLCJfY2xvc2UiLCJfY2hldnJvbkxlZnQiLCJfQXV0b0hpZGVTY3JvbGxiYXIiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1JpZ2h0UGFuZWxTdG9yZSIsIl9SaWdodFBhbmVsU3RvcmVQaGFzZXMiLCJfY29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImNsb3NlUmlnaHRQYW5lbCIsImV2IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJSaWdodFBhbmVsU3RvcmUiLCJpbnN0YW5jZSIsInBvcENhcmQiLCJCYXNlQ2FyZCIsImZvcndhcmRSZWYiLCJjbG9zZUxhYmVsIiwib25DbG9zZSIsIm9uQmFjayIsImNsYXNzTmFtZSIsImlkIiwiYXJpYUxhYmVsbGVkQnkiLCJyb2xlIiwiaGlkZUhlYWRlckJ1dHRvbnMiLCJoZWFkZXIiLCJmb290ZXIiLCJ3aXRob3V0U2Nyb2xsQ29udGFpbmVyIiwiY2hpbGRyZW4iLCJvbktleURvd24iLCJjbG9zZUJ1dHRvblJlZiIsInJlZiIsImJhY2tCdXR0b24iLCJjYXJkSGlzdG9yeSIsInJvb21QaGFzZUhpc3RvcnkiLCJsZW5ndGgiLCJwcmV2Q2FyZCIsIm9uQmFja0NsaWNrIiwibGFiZWwiLCJiYWNrTGFiZWxGb3JQaGFzZSIsInBoYXNlIiwiX3QiLCJjcmVhdGVFbGVtZW50IiwiSWNvbkJ1dHRvbiIsInNpemUiLCJvbkNsaWNrIiwidG9vbHRpcCIsInN1YnRsZUJhY2tncm91bmQiLCJjbG9zZUJ1dHRvbiIsInNob3VsZFJlbmRlckhlYWRlciIsIkNhcmRDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImlzQ2FyZCIsImNsYXNzTmFtZXMiLCJUZXh0Iiwid2VpZ2h0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvcmlnaHRfcGFuZWwvQmFzZUNhcmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCBSZWFjdE5vZGUsIEtleWJvYXJkRXZlbnQsIFJlZiwgTW91c2VFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCB7IEljb25CdXR0b24sIFRleHQgfSBmcm9tIFwiQHZlY3Rvci1pbS9jb21wb3VuZC13ZWJcIjtcbmltcG9ydCBDbG9zZUljb24gZnJvbSBcIkB2ZWN0b3ItaW0vY29tcG91bmQtZGVzaWduLXRva2Vucy9hc3NldHMvd2ViL2ljb25zL2Nsb3NlXCI7XG5pbXBvcnQgQ2hldnJvbkxlZnRJY29uIGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvYXNzZXRzL3dlYi9pY29ucy9jaGV2cm9uLWxlZnRcIjtcblxuaW1wb3J0IEF1dG9IaWRlU2Nyb2xsYmFyIGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmVzL0F1dG9IaWRlU2Nyb2xsYmFyXCI7XG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBSaWdodFBhbmVsU3RvcmUgZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9yaWdodC1wYW5lbC9SaWdodFBhbmVsU3RvcmVcIjtcbmltcG9ydCB7IGJhY2tMYWJlbEZvclBoYXNlIH0gZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9yaWdodC1wYW5lbC9SaWdodFBhbmVsU3RvcmVQaGFzZXNcIjtcbmltcG9ydCB7IENhcmRDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dFwiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBoZWFkZXI/OiBSZWFjdE5vZGUgfCBudWxsO1xuICAgIGhpZGVIZWFkZXJCdXR0b25zPzogYm9vbGVhbjtcbiAgICBmb290ZXI/OiBSZWFjdE5vZGU7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHJvbGU/OiBcInRhYnBhbmVsXCI7XG4gICAgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gICAgd2l0aG91dFNjcm9sbENvbnRhaW5lcj86IGJvb2xlYW47XG4gICAgY2xvc2VMYWJlbD86IHN0cmluZztcbiAgICBvbkNsb3NlPyhldjogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pOiB2b2lkO1xuICAgIG9uQmFjaz8oZXY6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTogdm9pZDtcbiAgICBvbktleURvd24/KGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgICBjYXJkU3RhdGU/OiBhbnk7XG4gICAgcmVmPzogUmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICAvLyBSZWYgZm9yIHRoZSAnY2xvc2UnIGJ1dHRvbiB0aGUgY2FyZFxuICAgIGNsb3NlQnV0dG9uUmVmPzogUmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufVxuXG5mdW5jdGlvbiBjbG9zZVJpZ2h0UGFuZWwoZXY6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTogdm9pZCB7XG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBSaWdodFBhbmVsU3RvcmUuaW5zdGFuY2UucG9wQ2FyZCgpO1xufVxuXG5jb25zdCBCYXNlQ2FyZDogUmVhY3QuRkM8SVByb3BzPiA9IGZvcndhcmRSZWY8SFRNTERpdkVsZW1lbnQsIElQcm9wcz4oXG4gICAgKFxuICAgICAgICB7XG4gICAgICAgICAgICBjbG9zZUxhYmVsLFxuICAgICAgICAgICAgb25DbG9zZSxcbiAgICAgICAgICAgIG9uQmFjayxcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgYXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgaGlkZUhlYWRlckJ1dHRvbnMsXG4gICAgICAgICAgICBoZWFkZXIsXG4gICAgICAgICAgICBmb290ZXIsXG4gICAgICAgICAgICB3aXRob3V0U2Nyb2xsQ29udGFpbmVyLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBvbktleURvd24sXG4gICAgICAgICAgICBjbG9zZUJ1dHRvblJlZixcbiAgICAgICAgfSxcbiAgICAgICAgcmVmLFxuICAgICkgPT4ge1xuICAgICAgICBsZXQgYmFja0J1dHRvbjtcbiAgICAgICAgY29uc3QgY2FyZEhpc3RvcnkgPSBSaWdodFBhbmVsU3RvcmUuaW5zdGFuY2Uucm9vbVBoYXNlSGlzdG9yeTtcbiAgICAgICAgaWYgKGNhcmRIaXN0b3J5Lmxlbmd0aCA+IDEgJiYgIWhpZGVIZWFkZXJCdXR0b25zKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Q2FyZCA9IGNhcmRIaXN0b3J5W2NhcmRIaXN0b3J5Lmxlbmd0aCAtIDJdO1xuICAgICAgICAgICAgY29uc3Qgb25CYWNrQ2xpY2sgPSAoZXY6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgb25CYWNrPy4oZXYpO1xuICAgICAgICAgICAgICAgIFJpZ2h0UGFuZWxTdG9yZS5pbnN0YW5jZS5wb3BDYXJkKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBiYWNrTGFiZWxGb3JQaGFzZShwcmV2Q2FyZC5waGFzZSkgPz8gX3QoXCJhY3Rpb258YmFja1wiKTtcbiAgICAgICAgICAgIGJhY2tCdXR0b24gPSAoXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIjI4cHhcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImJhc2UtY2FyZC1iYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQmFja0NsaWNrfVxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgc3VidGxlQmFja2dyb3VuZFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25MZWZ0SWNvbiAvPlxuICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2xvc2VCdXR0b247XG4gICAgICAgIGlmICghaGlkZUhlYWRlckJ1dHRvbnMpIHtcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uID0gKFxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCIyOHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJiYXNlLWNhcmQtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DbG9zZSA/PyBjbG9zZVJpZ2h0UGFuZWx9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17Y2xvc2VCdXR0b25SZWZ9XG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e2Nsb3NlTGFiZWwgPz8gX3QoXCJhY3Rpb258Y2xvc2VcIil9XG4gICAgICAgICAgICAgICAgICAgIHN1YnRsZUJhY2tncm91bmRcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDbG9zZUljb24gLz5cbiAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF3aXRob3V0U2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBjaGlsZHJlbiA9IDxBdXRvSGlkZVNjcm9sbGJhcj57Y2hpbGRyZW59PC9BdXRvSGlkZVNjcm9sbGJhcj47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzaG91bGRSZW5kZXJIZWFkZXIgPSBoZWFkZXIgfHwgIWhpZGVIZWFkZXJCdXR0b25zO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Q2FyZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgaXNDYXJkOiB0cnVlIH19PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2FyaWFMYWJlbGxlZEJ5fVxuICAgICAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJteF9CYXNlQ2FyZFwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c2hvdWxkUmVuZGVySGVhZGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfQmFzZUNhcmRfaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2JhY2tCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3R5cGVvZiBoZWFkZXIgPT09IFwic3RyaW5nXCIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0PVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9CYXNlQ2FyZF9oZWFkZXJfdGl0bGVfaGVhZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImhlYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkZXIgPz8gPGRpdiBjbGFzc05hbWU9XCJteF9CYXNlQ2FyZF9oZWFkZXJfc3BhY2VyXCIgLz4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xvc2VCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICB7Zm9vdGVyICYmIDxkaXYgY2xhc3NOYW1lPVwibXhfQmFzZUNhcmRfZm9vdGVyXCI+e2Zvb3Rlcn08L2Rpdj59XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0NhcmRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH0sXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBCYXNlQ2FyZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLGtCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLHNCQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFBd0MsU0FBQVcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWIsd0JBQUFhLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEs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