UNPKG

matrix-react-sdk

Version:
83 lines (81 loc) 19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.VoipRoomSettingsTab = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _languageHandler = require("../../../../../languageHandler"); var _LabelledToggleSwitch = _interopRequireDefault(require("../../../elements/LabelledToggleSwitch")); var _SettingsSubsection = _interopRequireDefault(require("../../shared/SettingsSubsection")); var _SettingsTab = _interopRequireDefault(require("../SettingsTab")); var _Call = require("../../../../../models/Call"); var _useRoomState = require("../../../../../hooks/useRoomState"); var _SdkConfig = _interopRequireWildcard(require("../../../../../SdkConfig")); var _SettingsSection = require("../../shared/SettingsSection"); 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; } 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) { (0, _defineProperty2.default)(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; } /* Copyright 2024 New Vector Ltd. Copyright 2022 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. */ const ElementCallSwitch = ({ room }) => { const isPublic = (0, _react.useMemo)(() => room.getJoinRule() === _matrix.JoinRule.Public, [room]); const [content, events, maySend] = (0, _useRoomState.useRoomState)(room, (0, _react.useCallback)(state => { const content = state?.getStateEvents(_matrix.EventType.RoomPowerLevels, "")?.getContent(); return [content ?? {}, content?.["events"] ?? {}, state?.maySendStateEvent(_matrix.EventType.RoomPowerLevels, room.client.getSafeUserId())]; }, [room.client])); const [elementCallEnabled, setElementCallEnabled] = (0, _react.useState)(() => { return events[_Call.ElementCall.MEMBER_EVENT_TYPE.name] === 0; }); const onChange = (0, _react.useCallback)(enabled => { setElementCallEnabled(enabled); if (enabled) { const userLevel = events[_matrix.EventType.RoomMessage] ?? content.users_default ?? 0; const moderatorLevel = content.kick ?? 50; events[_Call.ElementCall.CALL_EVENT_TYPE.name] = isPublic ? moderatorLevel : userLevel; events[_Call.ElementCall.MEMBER_EVENT_TYPE.name] = userLevel; } else { const adminLevel = events[_matrix.EventType.RoomPowerLevels] ?? content.state_default ?? 100; events[_Call.ElementCall.CALL_EVENT_TYPE.name] = adminLevel; events[_Call.ElementCall.MEMBER_EVENT_TYPE.name] = adminLevel; } room.client.sendStateEvent(room.roomId, _matrix.EventType.RoomPowerLevels, _objectSpread({ events: events }, content)); }, [room.client, room.roomId, content, events, isPublic]); const brand = _SdkConfig.default.get("element_call").brand ?? _SdkConfig.DEFAULTS.element_call.brand; return /*#__PURE__*/_react.default.createElement(_LabelledToggleSwitch.default, { "data-testid": "element-call-switch", label: (0, _languageHandler._t)("room_settings|voip|enable_element_call_label", { brand }), caption: (0, _languageHandler._t)("room_settings|voip|enable_element_call_caption", { brand }), value: elementCallEnabled, onChange: onChange, disabled: !maySend, tooltip: (0, _languageHandler._t)("room_settings|voip|enable_element_call_no_permissions_tooltip") }); }; const VoipRoomSettingsTab = ({ room }) => { return /*#__PURE__*/_react.default.createElement(_SettingsTab.default, null, /*#__PURE__*/_react.default.createElement(_SettingsSection.SettingsSection, { heading: (0, _languageHandler._t)("settings|voip|title") }, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.default, { heading: (0, _languageHandler._t)("room_settings|voip|call_type_section") }, /*#__PURE__*/_react.default.createElement(ElementCallSwitch, { room: room })))); }; exports.VoipRoomSettingsTab = VoipRoomSettingsTab; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbWF0cml4IiwiX2xhbmd1YWdlSGFuZGxlciIsIl9MYWJlbGxlZFRvZ2dsZVN3aXRjaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfU2V0dGluZ3NTdWJzZWN0aW9uIiwiX1NldHRpbmdzVGFiIiwiX0NhbGwiLCJfdXNlUm9vbVN0YXRlIiwiX1Nka0NvbmZpZyIsIl9TZXR0aW5nc1NlY3Rpb24iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJFbGVtZW50Q2FsbFN3aXRjaCIsInJvb20iLCJpc1B1YmxpYyIsInVzZU1lbW8iLCJnZXRKb2luUnVsZSIsIkpvaW5SdWxlIiwiUHVibGljIiwiY29udGVudCIsImV2ZW50cyIsIm1heVNlbmQiLCJ1c2VSb29tU3RhdGUiLCJ1c2VDYWxsYmFjayIsInN0YXRlIiwiZ2V0U3RhdGVFdmVudHMiLCJFdmVudFR5cGUiLCJSb29tUG93ZXJMZXZlbHMiLCJnZXRDb250ZW50IiwibWF5U2VuZFN0YXRlRXZlbnQiLCJjbGllbnQiLCJnZXRTYWZlVXNlcklkIiwiZWxlbWVudENhbGxFbmFibGVkIiwic2V0RWxlbWVudENhbGxFbmFibGVkIiwidXNlU3RhdGUiLCJFbGVtZW50Q2FsbCIsIk1FTUJFUl9FVkVOVF9UWVBFIiwibmFtZSIsIm9uQ2hhbmdlIiwiZW5hYmxlZCIsInVzZXJMZXZlbCIsIlJvb21NZXNzYWdlIiwidXNlcnNfZGVmYXVsdCIsIm1vZGVyYXRvckxldmVsIiwia2ljayIsIkNBTExfRVZFTlRfVFlQRSIsImFkbWluTGV2ZWwiLCJzdGF0ZV9kZWZhdWx0Iiwic2VuZFN0YXRlRXZlbnQiLCJyb29tSWQiLCJicmFuZCIsIlNka0NvbmZpZyIsIkRFRkFVTFRTIiwiZWxlbWVudF9jYWxsIiwiY3JlYXRlRWxlbWVudCIsImxhYmVsIiwiX3QiLCJjYXB0aW9uIiwidmFsdWUiLCJkaXNhYmxlZCIsInRvb2x0aXAiLCJWb2lwUm9vbVNldHRpbmdzVGFiIiwiU2V0dGluZ3NTZWN0aW9uIiwiaGVhZGluZyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vVm9pcFJvb21TZXR0aW5nc1RhYi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgSm9pblJ1bGUsIEV2ZW50VHlwZSwgUm9vbVN0YXRlLCBSb29tIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBMYWJlbGxlZFRvZ2dsZVN3aXRjaCBmcm9tIFwiLi4vLi4vLi4vZWxlbWVudHMvTGFiZWxsZWRUb2dnbGVTd2l0Y2hcIjtcbmltcG9ydCBTZXR0aW5nc1N1YnNlY3Rpb24gZnJvbSBcIi4uLy4uL3NoYXJlZC9TZXR0aW5nc1N1YnNlY3Rpb25cIjtcbmltcG9ydCBTZXR0aW5nc1RhYiBmcm9tIFwiLi4vU2V0dGluZ3NUYWJcIjtcbmltcG9ydCB7IEVsZW1lbnRDYWxsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL21vZGVscy9DYWxsXCI7XG5pbXBvcnQgeyB1c2VSb29tU3RhdGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlUm9vbVN0YXRlXCI7XG5pbXBvcnQgU2RrQ29uZmlnLCB7IERFRkFVTFRTIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL1Nka0NvbmZpZ1wiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZWN0aW9uIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9TZXR0aW5nc1NlY3Rpb25cIjtcblxuaW50ZXJmYWNlIEVsZW1lbnRDYWxsU3dpdGNoUHJvcHMge1xuICAgIHJvb206IFJvb207XG59XG5cbmNvbnN0IEVsZW1lbnRDYWxsU3dpdGNoOiBSZWFjdC5GQzxFbGVtZW50Q2FsbFN3aXRjaFByb3BzPiA9ICh7IHJvb20gfSkgPT4ge1xuICAgIGNvbnN0IGlzUHVibGljID0gdXNlTWVtbygoKSA9PiByb29tLmdldEpvaW5SdWxlKCkgPT09IEpvaW5SdWxlLlB1YmxpYywgW3Jvb21dKTtcbiAgICBjb25zdCBbY29udGVudCwgZXZlbnRzLCBtYXlTZW5kXSA9IHVzZVJvb21TdGF0ZShcbiAgICAgICAgcm9vbSxcbiAgICAgICAgdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAoc3RhdGU6IFJvb21TdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZT8uZ2V0U3RhdGVFdmVudHMoRXZlbnRUeXBlLlJvb21Qb3dlckxldmVscywgXCJcIik/LmdldENvbnRlbnQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50ID8/IHt9LFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50Py5bXCJldmVudHNcIl0gPz8ge30sXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlPy5tYXlTZW5kU3RhdGVFdmVudChFdmVudFR5cGUuUm9vbVBvd2VyTGV2ZWxzLCByb29tLmNsaWVudC5nZXRTYWZlVXNlcklkKCkpLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW3Jvb20uY2xpZW50XSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3QgW2VsZW1lbnRDYWxsRW5hYmxlZCwgc2V0RWxlbWVudENhbGxFbmFibGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50c1tFbGVtZW50Q2FsbC5NRU1CRVJfRVZFTlRfVFlQRS5uYW1lXSA9PT0gMDtcbiAgICB9KTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChlbmFibGVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBzZXRFbGVtZW50Q2FsbEVuYWJsZWQoZW5hYmxlZCk7XG5cbiAgICAgICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlckxldmVsID0gZXZlbnRzW0V2ZW50VHlwZS5Sb29tTWVzc2FnZV0gPz8gY29udGVudC51c2Vyc19kZWZhdWx0ID8/IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZXJhdG9yTGV2ZWwgPSBjb250ZW50LmtpY2sgPz8gNTA7XG5cbiAgICAgICAgICAgICAgICBldmVudHNbRWxlbWVudENhbGwuQ0FMTF9FVkVOVF9UWVBFLm5hbWVdID0gaXNQdWJsaWMgPyBtb2RlcmF0b3JMZXZlbCA6IHVzZXJMZXZlbDtcbiAgICAgICAgICAgICAgICBldmVudHNbRWxlbWVudENhbGwuTUVNQkVSX0VWRU5UX1RZUEUubmFtZV0gPSB1c2VyTGV2ZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFkbWluTGV2ZWwgPSBldmVudHNbRXZlbnRUeXBlLlJvb21Qb3dlckxldmVsc10gPz8gY29udGVudC5zdGF0ZV9kZWZhdWx0ID8/IDEwMDtcblxuICAgICAgICAgICAgICAgIGV2ZW50c1tFbGVtZW50Q2FsbC5DQUxMX0VWRU5UX1RZUEUubmFtZV0gPSBhZG1pbkxldmVsO1xuICAgICAgICAgICAgICAgIGV2ZW50c1tFbGVtZW50Q2FsbC5NRU1CRVJfRVZFTlRfVFlQRS5uYW1lXSA9IGFkbWluTGV2ZWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJvb20uY2xpZW50LnNlbmRTdGF0ZUV2ZW50KHJvb20ucm9vbUlkLCBFdmVudFR5cGUuUm9vbVBvd2VyTGV2ZWxzLCB7XG4gICAgICAgICAgICAgICAgZXZlbnRzOiBldmVudHMsXG4gICAgICAgICAgICAgICAgLi4uY29udGVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBbcm9vbS5jbGllbnQsIHJvb20ucm9vbUlkLCBjb250ZW50LCBldmVudHMsIGlzUHVibGljXSxcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmQgPSBTZGtDb25maWcuZ2V0KFwiZWxlbWVudF9jYWxsXCIpLmJyYW5kID8/IERFRkFVTFRTLmVsZW1lbnRfY2FsbC5icmFuZDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxMYWJlbGxlZFRvZ2dsZVN3aXRjaFxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJlbGVtZW50LWNhbGwtc3dpdGNoXCJcbiAgICAgICAgICAgIGxhYmVsPXtfdChcInJvb21fc2V0dGluZ3N8dm9pcHxlbmFibGVfZWxlbWVudF9jYWxsX2xhYmVsXCIsIHsgYnJhbmQgfSl9XG4gICAgICAgICAgICBjYXB0aW9uPXtfdChcInJvb21fc2V0dGluZ3N8dm9pcHxlbmFibGVfZWxlbWVudF9jYWxsX2NhcHRpb25cIiwge1xuICAgICAgICAgICAgICAgIGJyYW5kLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICB2YWx1ZT17ZWxlbWVudENhbGxFbmFibGVkfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyFtYXlTZW5kfVxuICAgICAgICAgICAgdG9vbHRpcD17X3QoXCJyb29tX3NldHRpbmdzfHZvaXB8ZW5hYmxlX2VsZW1lbnRfY2FsbF9ub19wZXJtaXNzaW9uc190b29sdGlwXCIpfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHJvb206IFJvb207XG59XG5cbmV4cG9ydCBjb25zdCBWb2lwUm9vbVNldHRpbmdzVGFiOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyByb29tIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U2V0dGluZ3NUYWI+XG4gICAgICAgICAgICA8U2V0dGluZ3NTZWN0aW9uIGhlYWRpbmc9e190KFwic2V0dGluZ3N8dm9pcHx0aXRsZVwiKX0+XG4gICAgICAgICAgICAgICAgPFNldHRpbmdzU3Vic2VjdGlvbiBoZWFkaW5nPXtfdChcInJvb21fc2V0dGluZ3N8dm9pcHxjYWxsX3R5cGVfc2VjdGlvblwiKX0+XG4gICAgICAgICAgICAgICAgICAgIDxFbGVtZW50Q2FsbFN3aXRjaCByb29tPXtyb29tfSAvPlxuICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uPlxuICAgICAgICAgICAgPC9TZXR0aW5nc1NlY3Rpb24+XG4gICAgICAgIDwvU2V0dGluZ3NUYWI+XG4gICAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FB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WEQsT0FBTyxDQUNiLENBQUM7RUFDTixDQUFDLEVBQ0QsQ0FBQ04sSUFBSSxDQUFDaUIsTUFBTSxFQUFFakIsSUFBSSxDQUFDb0MsTUFBTSxFQUFFOUIsT0FBTyxFQUFFQyxNQUFNLEVBQUVOLFFBQVEsQ0FDeEQsQ0FBQztFQUVELE1BQU1vQyxLQUFLLEdBQUdDLGtCQUFTLENBQUNsRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUNpRSxLQUFLLElBQUlFLG1CQUFRLENBQUNDLFlBQVksQ0FBQ0gsS0FBSztFQUVoRixvQkFDSXRGLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXVFLGFBQUEsQ0FBQ3JGLHFCQUFBLENBQUFjLE9BQW9CO0lBQ2pCLGVBQVkscUJBQXFCO0lBQ2pDd0UsS0FBSyxFQUFFLElBQUFDLG1CQUFFLEVBQUMsOENBQThDLEVBQUU7TUFBRU47SUFBTSxDQUFDLENBQUU7SUFDckVPLE9BQU8sRUFBRSxJQUFBRCxtQkFBRSxFQUFDLGdEQUFnRCxFQUFFO01BQzFETjtJQUNKLENBQUMsQ0FBRTtJQUNIUSxLQUFLLEVBQUUxQixrQkFBbUI7SUFDMUJNLFFBQVEsRUFBRUEsUUFBUztJQUNuQnFCLFFBQVEsRUFBRSxDQUFDdEMsT0FBUTtJQUNuQnVDLE9BQU8sRUFBRSxJQUFBSixtQkFBRSxFQUFDLCtEQUErRDtFQUFFLENBQ2hGLENBQUM7QUFFVixDQUFDO0FBTU0sTUFBTUssbUJBQW9DLEdBQUdBLENBQUM7RUFBRWhEO0FBQUssQ0FBQyxLQUFLO0VBQzlELG9CQUNJakQsTUFBQSxDQUFBbUIsT0FBQSxDQUFBdUUsYUFBQSxDQUFDbEYsWUFBQSxDQUFBVyxPQUFXLHFCQUNSbkIsTUFBQSxDQUFBbUIsT0FBQSxDQUFBdUUsYUFBQSxDQUFDOUUsZ0JBQUEsQ0FBQXNGLGVBQWU7SUFBQ0MsT0FBTyxFQUFFLElBQUFQLG1CQUFFLEVBQUMscUJBQXFCO0VBQUUsZ0JBQ2hENUYsTUFBQSxDQUFBbUIsT0FBQSxDQUFBdUUsYUFBQSxDQUFDbkYsbUJBQUEsQ0FBQVksT0FBa0I7SUFBQ2dGLE9BQU8sRUFBRSxJQUFBUCxtQkFBRSxFQUFDLHNDQUFzQztFQUFFLGdCQUNwRTVGLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXVFLGFBQUEsQ0FBQzFDLGlCQUFpQjtJQUFDQyxJQUFJLEVBQUVBO0VBQUssQ0FBRSxDQUNoQixDQUNQLENBQ1IsQ0FBQztBQUV0QixDQUFDO0FBQUNtRCxPQUFBLENBQUFILG1CQUFBLEdBQUFBLG1CQUFBIiwiaWdub3JlTGlzdCI6W119