matrix-react-sdk
Version:
SDK for matrix.org using React
103 lines (100 loc) • 13.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _matrix = require("matrix-js-sdk/src/matrix");
var _Modal = _interopRequireDefault(require("../../Modal"));
var _languageHandler = require("../../languageHandler");
var _ErrorDialog = _interopRequireDefault(require("../views/dialogs/ErrorDialog"));
var _MainSplit = _interopRequireDefault(require("./MainSplit"));
var _RightPanel = _interopRequireDefault(require("./RightPanel"));
var _Spinner = _interopRequireDefault(require("../views/elements/Spinner"));
var _RightPanelStorePhases = require("../../stores/right-panel/RightPanelStorePhases");
var _UserOnboardingPage = require("../views/user-onboarding/UserOnboardingPage");
var _MatrixClientContext = _interopRequireDefault(require("../../contexts/MatrixClientContext"));
/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
class UserView extends _react.default.Component {
constructor(props, context) {
super(props, context);
this.state = {
loading: true
};
}
componentDidMount() {
if (this.props.userId) {
this.loadProfileInfo();
}
}
componentDidUpdate(prevProps) {
// XXX: We shouldn't need to null check the userId here, but we declare
// it as optional and MatrixChat sometimes fires in a way which results
// in an NPE when we try to update the profile info.
if (prevProps.userId !== this.props.userId && this.props.userId) {
this.loadProfileInfo();
}
}
async loadProfileInfo() {
this.setState({
loading: true
});
let profileInfo;
try {
profileInfo = await this.context.getProfileInfo(this.props.userId);
} catch (err) {
_Modal.default.createDialog(_ErrorDialog.default, {
title: (0, _languageHandler._t)("error_dialog|error_loading_user_profile"),
description: err instanceof Error ? err.message : (0, _languageHandler._t)("invite|failed_generic")
});
this.setState({
loading: false
});
return;
}
const fakeEvent = new _matrix.MatrixEvent({
type: "m.room.member",
content: profileInfo
});
// We pass an empty string room ID here, this is slight abuse of the class to simplify code
const member = new _matrix.RoomMember("", this.props.userId);
member.setMembershipEvent(fakeEvent);
this.setState({
member,
loading: false
});
}
render() {
if (this.state.loading) {
return /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
} else if (this.state.member) {
const panel = /*#__PURE__*/_react.default.createElement(_RightPanel.default, {
overwriteCard: {
phase: _RightPanelStorePhases.RightPanelPhases.RoomMemberInfo,
state: {
member: this.state.member
}
},
resizeNotifier: this.props.resizeNotifier
});
return /*#__PURE__*/_react.default.createElement(_MainSplit.default, {
panel: panel,
resizeNotifier: this.props.resizeNotifier,
defaultSize: 420,
analyticsRoomType: "user_profile"
}, /*#__PURE__*/_react.default.createElement(_UserOnboardingPage.UserOnboardingPage, null));
} else {
return /*#__PURE__*/_react.default.createElement("div", null);
}
}
}
exports.default = UserView;
(0, _defineProperty2.default)(UserView, "contextType", _MatrixClientContext.default);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfTW9kYWwiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX0Vycm9yRGlhbG9nIiwiX01haW5TcGxpdCIsIl9SaWdodFBhbmVsIiwiX1NwaW5uZXIiLCJfUmlnaHRQYW5lbFN0b3JlUGhhc2VzIiwiX1VzZXJPbmJvYXJkaW5nUGFnZSIsIl9NYXRyaXhDbGllbnRDb250ZXh0IiwiVXNlclZpZXciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJjb250ZXh0Iiwic3RhdGUiLCJsb2FkaW5nIiwiY29tcG9uZW50RGlkTW91bnQiLCJ1c2VySWQiLCJsb2FkUHJvZmlsZUluZm8iLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJzZXRTdGF0ZSIsInByb2ZpbGVJbmZvIiwiZ2V0UHJvZmlsZUluZm8iLCJlcnIiLCJNb2RhbCIsImNyZWF0ZURpYWxvZyIsIkVycm9yRGlhbG9nIiwidGl0bGUiLCJfdCIsImRlc2NyaXB0aW9uIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmFrZUV2ZW50IiwiTWF0cml4RXZlbnQiLCJ0eXBlIiwiY29udGVudCIsIm1lbWJlciIsIlJvb21NZW1iZXIiLCJzZXRNZW1iZXJzaGlwRXZlbnQiLCJyZW5kZXIiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInBhbmVsIiwib3ZlcndyaXRlQ2FyZCIsInBoYXNlIiwiUmlnaHRQYW5lbFBoYXNlcyIsIlJvb21NZW1iZXJJbmZvIiwicmVzaXplTm90aWZpZXIiLCJkZWZhdWx0U2l6ZSIsImFuYWx5dGljc1Jvb21UeXBlIiwiVXNlck9uYm9hcmRpbmdQYWdlIiwiZXhwb3J0cyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJNYXRyaXhDbGllbnRDb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9Vc2VyVmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWF0cml4RXZlbnQsIFJvb21NZW1iZXIsIE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9Nb2RhbFwiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgRXJyb3JEaWFsb2cgZnJvbSBcIi4uL3ZpZXdzL2RpYWxvZ3MvRXJyb3JEaWFsb2dcIjtcbmltcG9ydCBNYWluU3BsaXQgZnJvbSBcIi4vTWFpblNwbGl0XCI7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tIFwiLi9SaWdodFBhbmVsXCI7XG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi4vdmlld3MvZWxlbWVudHMvU3Bpbm5lclwiO1xuaW1wb3J0IFJlc2l6ZU5vdGlmaWVyIGZyb20gXCIuLi8uLi91dGlscy9SZXNpemVOb3RpZmllclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbFBoYXNlcyB9IGZyb20gXCIuLi8uLi9zdG9yZXMvcmlnaHQtcGFuZWwvUmlnaHRQYW5lbFN0b3JlUGhhc2VzXCI7XG5pbXBvcnQgeyBVc2VyT25ib2FyZGluZ1BhZ2UgfSBmcm9tIFwiLi4vdmlld3MvdXNlci1vbmJvYXJkaW5nL1VzZXJPbmJvYXJkaW5nUGFnZVwiO1xuaW1wb3J0IE1hdHJpeENsaWVudENvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHRzL01hdHJpeENsaWVudENvbnRleHRcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgcmVzaXplTm90aWZpZXI6IFJlc2l6ZU5vdGlmaWVyO1xufVxuXG5pbnRlcmZhY2UgSVN0YXRlIHtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIG1lbWJlcj86IFJvb21NZW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVzZXJWaWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElQcm9wcywgSVN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRpYyBjb250ZXh0VHlwZSA9IE1hdHJpeENsaWVudENvbnRleHQ7XG4gICAgcHVibGljIGRlY2xhcmUgY29udGV4dDogUmVhY3QuQ29udGV4dFR5cGU8dHlwZW9mIE1hdHJpeENsaWVudENvbnRleHQ+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMsIGNvbnRleHQ6IFJlYWN0LkNvbnRleHRUeXBlPHR5cGVvZiBNYXRyaXhDbGllbnRDb250ZXh0Pikge1xuICAgICAgICBzdXBlcihwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudXNlcklkKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9maWxlSW5mbygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IElQcm9wcyk6IHZvaWQge1xuICAgICAgICAvLyBYWFg6IFdlIHNob3VsZG4ndCBuZWVkIHRvIG51bGwgY2hlY2sgdGhlIHVzZXJJZCBoZXJlLCBidXQgd2UgZGVjbGFyZVxuICAgICAgICAvLyBpdCBhcyBvcHRpb25hbCBhbmQgTWF0cml4Q2hhdCBzb21ldGltZXMgZmlyZXMgaW4gYSB3YXkgd2hpY2ggcmVzdWx0c1xuICAgICAgICAvLyBpbiBhbiBOUEUgd2hlbiB3ZSB0cnkgdG8gdXBkYXRlIHRoZSBwcm9maWxlIGluZm8uXG4gICAgICAgIGlmIChwcmV2UHJvcHMudXNlcklkICE9PSB0aGlzLnByb3BzLnVzZXJJZCAmJiB0aGlzLnByb3BzLnVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZmlsZUluZm8oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZFByb2ZpbGVJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgbGV0IHByb2ZpbGVJbmZvOiBBd2FpdGVkPFJldHVyblR5cGU8TWF0cml4Q2xpZW50W1wiZ2V0UHJvZmlsZUluZm9cIl0+PjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2ZpbGVJbmZvID0gYXdhaXQgdGhpcy5jb250ZXh0LmdldFByb2ZpbGVJbmZvKHRoaXMucHJvcHMudXNlcklkKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coRXJyb3JEaWFsb2csIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogX3QoXCJlcnJvcl9kaWFsb2d8ZXJyb3JfbG9hZGluZ191c2VyX3Byb2ZpbGVcIiksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBfdChcImludml0ZXxmYWlsZWRfZ2VuZXJpY1wiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZha2VFdmVudCA9IG5ldyBNYXRyaXhFdmVudCh7IHR5cGU6IFwibS5yb29tLm1lbWJlclwiLCBjb250ZW50OiBwcm9maWxlSW5mbyB9KTtcbiAgICAgICAgLy8gV2UgcGFzcyBhbiBlbXB0eSBzdHJpbmcgcm9vbSBJRCBoZXJlLCB0aGlzIGlzIHNsaWdodCBhYnVzZSBvZiB0aGUgY2xhc3MgdG8gc2ltcGxpZnkgY29kZVxuICAgICAgICBjb25zdCBtZW1iZXIgPSBuZXcgUm9vbU1lbWJlcihcIlwiLCB0aGlzLnByb3BzLnVzZXJJZCk7XG4gICAgICAgIG1lbWJlci5zZXRNZW1iZXJzaGlwRXZlbnQoZmFrZUV2ZW50KTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbWJlciwgbG9hZGluZzogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gPFNwaW5uZXIgLz47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5tZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gKFxuICAgICAgICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJ3cml0ZUNhcmQ9e3sgcGhhc2U6IFJpZ2h0UGFuZWxQaGFzZXMuUm9vbU1lbWJlckluZm8sIHN0YXRlOiB7IG1lbWJlcjogdGhpcy5zdGF0ZS5tZW1iZXIgfSB9fVxuICAgICAgICAgICAgICAgICAgICByZXNpemVOb3RpZmllcj17dGhpcy5wcm9wcy5yZXNpemVOb3RpZmllcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPE1haW5TcGxpdFxuICAgICAgICAgICAgICAgICAgICBwYW5lbD17cGFuZWx9XG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZU5vdGlmaWVyPXt0aGlzLnByb3BzLnJlc2l6ZU5vdGlmaWVyfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U2l6ZT17NDIwfVxuICAgICAgICAgICAgICAgICAgICBhbmFseXRpY3NSb29tVHlwZT1cInVzZXJfcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8VXNlck9uYm9hcmRpbmdQYWdlIC8+XG4gICAgICAgICAgICAgICAgPC9NYWluU3BsaXQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYgLz47XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFRLHNCQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsb0JBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUEwQmUsTUFBTVcsUUFBUSxTQUFTQyxjQUFLLENBQUNDLFNBQVMsQ0FBaUI7RUFJM0RDLFdBQVdBLENBQUNDLEtBQWEsRUFBRUMsT0FBc0QsRUFBRTtJQUN0RixLQUFLLENBQUNELEtBQUssRUFBRUMsT0FBTyxDQUFDO0lBQ3JCLElBQUksQ0FBQ0MsS0FBSyxHQUFHO01BQ1RDLE9BQU8sRUFBRTtJQUNiLENBQUM7RUFDTDtFQUVPQyxpQkFBaUJBLENBQUEsRUFBUztJQUM3QixJQUFJLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxNQUFNLEVBQUU7TUFDbkIsSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUMxQjtFQUNKO0VBRU9DLGtCQUFrQkEsQ0FBQ0MsU0FBaUIsRUFBUTtJQUMvQztJQUNBO0lBQ0E7SUFDQSxJQUFJQSxTQUFTLENBQUNILE1BQU0sS0FBSyxJQUFJLENBQUNMLEtBQUssQ0FBQ0ssTUFBTSxJQUFJLElBQUksQ0FBQ0wsS0FBSyxDQUFDSyxNQUFNLEVBQUU7TUFDN0QsSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUMxQjtFQUNKO0VBRUEsTUFBY0EsZUFBZUEsQ0FBQSxFQUFrQjtJQUMzQyxJQUFJLENBQUNHLFFBQVEsQ0FBQztNQUFFTixPQUFPLEVBQUU7SUFBSyxDQUFDLENBQUM7SUFDaEMsSUFBSU8sV0FBZ0U7SUFDcEUsSUFBSTtNQUNBQSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUNULE9BQU8sQ0FBQ1UsY0FBYyxDQUFDLElBQUksQ0FBQ1gsS0FBSyxDQUFDSyxNQUFNLENBQUM7SUFDdEUsQ0FBQyxDQUFDLE9BQU9PLEdBQUcsRUFBRTtNQUNWQyxjQUFLLENBQUNDLFlBQVksQ0FBQ0Msb0JBQVcsRUFBRTtRQUM1QkMsS0FBSyxFQUFFLElBQUFDLG1CQUFFLEVBQUMseUNBQXlDLENBQUM7UUFDcERDLFdBQVcsRUFBRU4sR0FBRyxZQUFZTyxLQUFLLEdBQUdQLEdBQUcsQ0FBQ1EsT0FBTyxHQUFHLElBQUFILG1CQUFFLEVBQUMsdUJBQXVCO01BQ2hGLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQ1IsUUFBUSxDQUFDO1FBQUVOLE9BQU8sRUFBRTtNQUFNLENBQUMsQ0FBQztNQUNqQztJQUNKO0lBQ0EsTUFBTWtCLFNBQVMsR0FBRyxJQUFJQyxtQkFBVyxDQUFDO01BQUVDLElBQUksRUFBRSxlQUFlO01BQUVDLE9BQU8sRUFBRWQ7SUFBWSxDQUFDLENBQUM7SUFDbEY7SUFDQSxNQUFNZSxNQUFNLEdBQUcsSUFBSUMsa0JBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDMUIsS0FBSyxDQUFDSyxNQUFNLENBQUM7SUFDcERvQixNQUFNLENBQUNFLGtCQUFrQixDQUFDTixTQUFTLENBQUM7SUFDcEMsSUFBSSxDQUFDWixRQUFRLENBQUM7TUFBRWdCLE1BQU07TUFBRXRCLE9BQU8sRUFBRTtJQUFNLENBQUMsQ0FBQztFQUM3QztFQUVPeUIsTUFBTUEsQ0FBQSxFQUFvQjtJQUM3QixJQUFJLElBQUksQ0FBQzFCLEtBQUssQ0FBQ0MsT0FBTyxFQUFFO01BQ3BCLG9CQUFPcEIsTUFBQSxDQUFBOEMsT0FBQSxDQUFBQyxhQUFBLENBQUN0QyxRQUFBLENBQUFxQyxPQUFPLE1BQUUsQ0FBQztJQUN0QixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMzQixLQUFLLENBQUN1QixNQUFNLEVBQUU7TUFDMUIsTUFBTU0sS0FBSyxnQkFDUGhELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkMsV0FBQSxDQUFBc0MsT0FBVTtRQUNQRyxhQUFhLEVBQUU7VUFBRUMsS0FBSyxFQUFFQyx1Q0FBZ0IsQ0FBQ0MsY0FBYztVQUFFakMsS0FBSyxFQUFFO1lBQUV1QixNQUFNLEVBQUUsSUFBSSxDQUFDdkIsS0FBSyxDQUFDdUI7VUFBTztRQUFFLENBQUU7UUFDaEdXLGNBQWMsRUFBRSxJQUFJLENBQUNwQyxLQUFLLENBQUNvQztNQUFlLENBQzdDLENBQ0o7TUFDRCxvQkFDSXJELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDeEMsVUFBQSxDQUFBdUMsT0FBUztRQUNORSxLQUFLLEVBQUVBLEtBQU07UUFDYkssY0FBYyxFQUFFLElBQUksQ0FBQ3BDLEtBQUssQ0FBQ29DLGNBQWU7UUFDMUNDLFdBQVcsRUFBRSxHQUFJO1FBQ2pCQyxpQkFBaUIsRUFBQztNQUFjLGdCQUVoQ3ZELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDcEMsbUJBQUEsQ0FBQTZDLGtCQUFrQixNQUFFLENBQ2QsQ0FBQztJQUVwQixDQUFDLE1BQU07TUFDSCxvQkFBT3hELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxZQUFNLENBQUM7SUFDbEI7RUFDSjtBQUNKO0FBQUNVLE9BQUEsQ0FBQVgsT0FBQSxHQUFBakMsUUFBQTtBQUFBLElBQUE2QyxnQkFBQSxDQUFBWixPQUFBLEVBdEVvQmpDLFFBQVEsaUJBQ0c4Qyw0QkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=