UNPKG

tc-ui-toolkit

Version:

React components used to develop tools for the desktop app translationCore

200 lines (177 loc) 22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog")); var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions")); var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent")); var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar")); var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")); var _reactBootstrap = require("react-bootstrap"); require("./AddPaneModal.styles.css"); var styles = { toolBar: { display: 'flex', justifyContent: 'center', alignItems: 'center', color: 'var(--reverse-color)', backgroundColor: 'var(--accent-color-dark)', padding: '15px', width: '100%' }, title: { marginLeft: 'auto', fontSize: '22px', fontWeight: '400' }, closeButton: { marginLeft: 'auto' }, dialogContent: { color: 'rgba(0, 0, 0, 0.6)', textAlign: 'center', padding: '0px 24px 24px', margin: '0px' }, dialogActions: { height: '70px', padding: '10px', margin: '0px', borderTop: '1px solid var(--border-color)' }, icon: { color: '#ffffff', width: 25, height: 25 }, iconButton: { padding: 0, width: 25, height: 25, marginTop: 5 }, body: { textAlign: 'center' }, select: { margin: '0 auto', width: '300px' } }; var AddPaneModal = function AddPaneModal(_ref) { var show = _ref.show, title = _ref.title, onHide = _ref.onHide, translate = _ref.translate, selectLabel = _ref.selectLabel, selectedPane = _ref.selectedPane, selectLanguageLabel = _ref.selectLanguageLabel, addNewBibleResource = _ref.addNewBibleResource, currentPaneSettings = _ref.currentPaneSettings, selectSourceLanguage = _ref.selectSourceLanguage, getAvailableScripturePaneSelections = _ref.getAvailableScripturePaneSelections; var panes = []; var availableResources = []; getAvailableScripturePaneSelections(availableResources); var _loop = function _loop(i, len) { var resource = availableResources[i]; var _resource$manifest = resource.manifest, resource_title = _resource$manifest.resource_title, language_name = _resource$manifest.language_name, language_id = _resource$manifest.language_id; var displayText = ''; var prefix = ''; var owner = resource.owner || ''; if (resource.bibleId !== 'targetBible') { var _resource$manifest2; var languageId = resource.languageId !== 'originalLanguage' ? resource.languageId : translate('pane.original_language'); displayText = "".concat(language_name, " (").concat(languageId, ") (").concat(resource_title, ")"); if (owner) { displayText += " (".concat(owner, ")"); } var stage = resource === null || resource === void 0 ? void 0 : (_resource$manifest2 = resource.manifest) === null || _resource$manifest2 === void 0 ? void 0 : _resource$manifest2.stage; if (owner !== 'Door43-Catalog' && stage !== 'prod') { displayText = "[".concat(displayText, "] - ").concat(translate('pre_release')); prefix = '*'; } } else { displayText = "".concat(language_name, " (").concat(language_id, ") (").concat(translate('pane.target_language'), ") (").concat(translate('pane.current_project'), ")"); } var foundInCurrentPaneSettings = currentPaneSettings.findIndex(function (paneSetting) { return paneSetting.bibleId === resource.bibleId && paneSetting.languageId === resource.languageId && paneSetting.owner === resource.owner; }) >= 0; panes.push( /*#__PURE__*/_react["default"].createElement("option", { key: "".concat(i).concat(resource.languageId, "_").concat(resource.bibleId, "_").concat(owner), value: "".concat(prefix).concat(resource.languageId, "_").concat(resource.bibleId, "_").concat(owner), disabled: foundInCurrentPaneSettings }, displayText)); }; for (var i = 0, len = availableResources.length; i < len; i++) { _loop(i, len); } var isLoadButtonDisabled = Object.keys(selectedPane).length <= 0; return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], { open: show, onClose: onHide, fullWidth: true, maxWidth: "md" }, /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], { style: styles.toolBar }, /*#__PURE__*/_react["default"].createElement("div", { style: styles.title }, title), /*#__PURE__*/_react["default"].createElement(_IconButton["default"], { color: "inherit", onClick: onHide, "aria-label": "Close", style: styles.closeButton }, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Glyphicon, { glyph: "remove" }))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], { style: styles.dialogContent }, /*#__PURE__*/_react["default"].createElement("h4", { style: { marginBottom: '30px' } }, selectLanguageLabel), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.FormControl, { componentClass: "select", style: styles.select, onChange: function onChange(e) { return selectSourceLanguage(e.target.value); } }, /*#__PURE__*/_react["default"].createElement("option", { value: "" }, selectLabel), panes)), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], { disableSpacing: true, style: styles.dialogActions }, /*#__PURE__*/_react["default"].createElement("button", { className: "btn-second", onClick: onHide }, translate('close')), /*#__PURE__*/_react["default"].createElement("button", { className: "btn-prime", onClick: addNewBibleResource, disabled: isLoadButtonDisabled }, translate('load')))); }; AddPaneModal.propTypes = { show: _propTypes["default"].bool.isRequired, onHide: _propTypes["default"].func.isRequired, title: _propTypes["default"].string.isRequired, selectLanguageLabel: _propTypes["default"].string.isRequired, selectLabel: _propTypes["default"].string.isRequired, selectSourceLanguage: _propTypes["default"].func.isRequired, selectedPane: _propTypes["default"].shape({ bibleId: _propTypes["default"].string, languageId: _propTypes["default"].string }), addNewBibleResource: _propTypes["default"].func.isRequired, currentPaneSettings: _propTypes["default"].array.isRequired, translate: _propTypes["default"].func.isRequired, getAvailableScripturePaneSelections: _propTypes["default"].func.isRequired }; var _default = AddPaneModal; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL0FkZFBhbmVNb2RhbC9pbmRleC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJ0b29sQmFyIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZyIsIndpZHRoIiwidGl0bGUiLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwiY2xvc2VCdXR0b24iLCJkaWFsb2dDb250ZW50IiwidGV4dEFsaWduIiwibWFyZ2luIiwiZGlhbG9nQWN0aW9ucyIsImhlaWdodCIsImJvcmRlclRvcCIsImljb24iLCJpY29uQnV0dG9uIiwibWFyZ2luVG9wIiwiYm9keSIsInNlbGVjdCIsIkFkZFBhbmVNb2RhbCIsInNob3ciLCJvbkhpZGUiLCJ0cmFuc2xhdGUiLCJzZWxlY3RMYWJlbCIsInNlbGVjdGVkUGFuZSIsInNlbGVjdExhbmd1YWdlTGFiZWwiLCJhZGROZXdCaWJsZVJlc291cmNlIiwiY3VycmVudFBhbmVTZXR0aW5ncyIsInNlbGVjdFNvdXJjZUxhbmd1YWdlIiwiZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnMiLCJwYW5lcyIsImF2YWlsYWJsZVJlc291cmNlcyIsImkiLCJsZW4iLCJyZXNvdXJjZSIsIm1hbmlmZXN0IiwicmVzb3VyY2VfdGl0bGUiLCJsYW5ndWFnZV9uYW1lIiwibGFuZ3VhZ2VfaWQiLCJkaXNwbGF5VGV4dCIsInByZWZpeCIsIm93bmVyIiwiYmlibGVJZCIsImxhbmd1YWdlSWQiLCJzdGFnZSIsImZvdW5kSW5DdXJyZW50UGFuZVNldHRpbmdzIiwiZmluZEluZGV4IiwicGFuZVNldHRpbmciLCJwdXNoIiwibGVuZ3RoIiwiaXNMb2FkQnV0dG9uRGlzYWJsZWQiLCJPYmplY3QiLCJrZXlzIiwibWFyZ2luQm90dG9tIiwiZSIsInRhcmdldCIsInZhbHVlIiwicHJvcFR5cGVzIiwiUHJv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QUksRUFBRXNDLHNCQUFVQyxJQUFWLENBQWVDLFVBREU7QUFFdkJ2QyxFQUFBQSxNQUFNLEVBQUVxQyxzQkFBVUcsSUFBVixDQUFlRCxVQUZBO0FBR3ZCekQsRUFBQUEsS0FBSyxFQUFFdUQsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBSEQ7QUFJdkJuQyxFQUFBQSxtQkFBbUIsRUFBRWlDLHNCQUFVSSxNQUFWLENBQWlCRixVQUpmO0FBS3ZCckMsRUFBQUEsV0FBVyxFQUFFbUMsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBTFA7QUFNdkJoQyxFQUFBQSxvQkFBb0IsRUFBRThCLHNCQUFVRyxJQUFWLENBQWVELFVBTmQ7QUFPdkJwQyxFQUFBQSxZQUFZLEVBQUVrQyxzQkFBVUssS0FBVixDQUFnQjtBQUM1QnJCLElBQUFBLE9BQU8sRUFBRWdCLHNCQUFVSSxNQURTO0FBRTVCbkIsSUFBQUEsVUFBVSxFQUFFZSxzQkFBVUk7QUFGTSxHQUFoQixDQVBTO0FBV3ZCcEMsRUFBQUEsbUJBQW1CLEVBQUVnQyxzQkFBVUcsSUFBVixDQUFlRCxVQVhiO0FBWXZCakMsRUFBQUEsbUJBQW1CLEVBQUUrQixzQkFBVU0sS0FBVixDQUFnQkosVUFaZDtBQWF2QnRDLEVBQUFBLFNBQVMsRUFBRW9DLHNCQUFVRyxJQUFWLENBQWVELFVBYkg7QUFjdkIvQixFQUFBQSxtQ0FBbUMsRUFBRTZCLHNCQUFVRyxJQUFWLENBQWVEO0FBZDdCLENBQXpCO2VBaUJlekMsWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IERpYWxvZyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2cnO1xuaW1wb3J0IERpYWxvZ0FjdGlvbnMgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRGlhbG9nQWN0aW9ucyc7XG5pbXBvcnQgRGlhbG9nQ29udGVudCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2dDb250ZW50JztcbmltcG9ydCBUb29sYmFyIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1Rvb2xiYXInO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbic7XG5pbXBvcnQgeyBHbHlwaGljb24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcblxuaW1wb3J0ICcuL0FkZFBhbmVNb2RhbC5zdHlsZXMuY3NzJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICB0b29sQmFyOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBjb2xvcjogJ3ZhcigtLXJldmVyc2UtY29sb3IpJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1hY2NlbnQtY29sb3ItZGFyayknLFxuICAgIHBhZGRpbmc6ICcxNXB4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICB0aXRsZToge1xuICAgIG1hcmdpbkxlZnQ6ICdhdXRvJyxcbiAgICBmb250U2l6ZTogJzIycHgnLFxuICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICB9LFxuICBjbG9zZUJ1dHRvbjogeyBtYXJnaW5MZWZ0OiAnYXV0bycgfSxcbiAgZGlhbG9nQ29udGVudDoge1xuICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjYpJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIHBhZGRpbmc6ICcwcHggMjRweCAyNHB4JyxcbiAgICBtYXJnaW46ICcwcHgnLFxuICB9LFxuICBkaWFsb2dBY3Rpb25zOiB7XG4gICAgaGVpZ2h0OiAnNzBweCcsXG4gICAgcGFkZGluZzogJzEwcHgnLFxuICAgIG1hcmdpbjogJzBweCcsXG4gICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvciknLFxuICB9LFxuXG4gIGljb246IHtcbiAgICBjb2xvcjogJyNmZmZmZmYnLFxuICAgIHdpZHRoOiAyNSxcbiAgICBoZWlnaHQ6IDI1LFxuICB9LFxuICBpY29uQnV0dG9uOiB7XG4gICAgcGFkZGluZzogMCxcbiAgICB3aWR0aDogMjUsXG4gICAgaGVpZ2h0OiAyNSxcbiAgICBtYXJnaW5Ub3A6IDUsXG4gIH0sXG4gIGJvZHk6IHsgdGV4dEFsaWduOiAnY2VudGVyJyB9LFxuICBzZWxlY3Q6IHtcbiAgICBtYXJnaW46ICcwIGF1dG8nLFxuICAgIHdpZHRoOiAnMzAwcHgnLFxuICB9LFxufTtcblxuY29uc3QgQWRkUGFuZU1vZGFsID0gKHtcbiAgc2hvdyxcbiAgdGl0bGUsXG4gIG9uSGlkZSxcbiAgdHJhbnNsYXRlLFxuICBzZWxlY3RMYWJlbCxcbiAgc2VsZWN0ZWRQYW5lLFxuICBzZWxlY3RMYW5ndWFnZUxhYmVsLFxuICBhZGROZXdCaWJsZVJlc291cmNlLFxuICBjdXJyZW50UGFuZVNldHRpbmdzLFxuICBzZWxlY3RTb3VyY2VMYW5ndWFnZSxcbiAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnMsXG59KSA9PiB7XG4gIGNvbnN0IHBhbmVzID0gW107XG4gIGNvbnN0IGF2YWlsYWJsZVJlc291cmNlcyA9IFtdO1xuICBnZXRBdmFpbGFibGVTY3JpcHR1cmVQYW5lU2VsZWN0aW9ucyhhdmFpbGFibGVSZXNvdXJjZXMpO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhdmFpbGFibGVSZXNvdXJjZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGF2YWlsYWJsZVJlc291cmNlc1tpXTtcbiAgICBjb25zdCB7XG4gICAgICByZXNvdXJjZV90aXRsZSwgbGFuZ3VhZ2VfbmFtZSwgbGFuZ3VhZ2VfaWQsXG4gICAgfSA9IHJlc291cmNlLm1hbmlmZXN0O1xuICAgIGxldCBkaXNwbGF5VGV4dCA9ICcnO1xuICAgIGxldCBwcmVmaXggPSAnJztcbiAgICBjb25zdCBvd25lciA9IHJlc291cmNlLm93bmVyIHx8ICcnO1xuXG4gICAgaWYgKHJlc291cmNlLmJpYmxlSWQgIT09ICd0YXJnZXRCaWJsZScpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlSWQgPSAocmVzb3VyY2UubGFuZ3VhZ2VJZCAhPT0gJ29yaWdpbmFsTGFuZ3VhZ2UnKSA/IHJlc291cmNlLmxhbmd1YWdlSWQgOiB0cmFuc2xhdGUoJ3BhbmUub3JpZ2luYWxfbGFuZ3VhZ2UnKTtcbiAgICAgIGRpc3BsYXlUZXh0ID0gYCR7bGFuZ3VhZ2VfbmFtZX0gKCR7bGFuZ3VhZ2VJZH0pICAoJHtyZXNvdXJjZV90aXRsZX0pYDtcblxuICAgICAgaWYgKG93bmVyKSB7XG4gICAgICAgIGRpc3BsYXlUZXh0ICs9IGAgKCR7b3duZXJ9KWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWdlID0gcmVzb3VyY2U/Lm1hbmlmZXN0Py5zdGFnZTtcblxuICAgICAgaWYgKChvd25lciAhPT0gJ0Rvb3I0My1DYXRhbG9nJykgJiYgKHN0YWdlICE9PSAncHJvZCcpKSB7XG4gICAgICAgIGRpc3BsYXlUZXh0ID0gYFske2Rpc3BsYXlUZXh0fV0gLSAke3RyYW5zbGF0ZSgncHJlX3JlbGVhc2UnKX1gO1xuICAgICAgICBwcmVmaXggPSAnKic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BsYXlUZXh0ID0gYCR7bGFuZ3VhZ2VfbmFtZX0gKCR7bGFuZ3VhZ2VfaWR9KSAgKCR7dHJhbnNsYXRlKCdwYW5lLnRhcmdldF9sYW5ndWFnZScpfSkgKCR7dHJhbnNsYXRlKCdwYW5lLmN1cnJlbnRfcHJvamVjdCcpfSlgO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kSW5DdXJyZW50UGFuZVNldHRpbmdzID0gY3VycmVudFBhbmVTZXR0aW5ncy5maW5kSW5kZXgoXG4gICAgICAocGFuZVNldHRpbmcpID0+IHBhbmVTZXR0aW5nLmJpYmxlSWQgPT09IHJlc291cmNlLmJpYmxlSWQgJiZcbiAgICAgICAgcGFuZVNldHRpbmcubGFuZ3VhZ2VJZCA9PT0gcmVzb3VyY2UubGFuZ3VhZ2VJZCAmJlxuICAgICAgICBwYW5lU2V0dGluZy5vd25lciA9PT0gcmVzb3VyY2Uub3duZXIpID49IDA7XG5cbiAgICBwYW5lcy5wdXNoKFxuICAgICAgPG9wdGlvblxuICAgICAgICBrZXk9e2Ake2l9JHtyZXNvdXJjZS5sYW5ndWFnZUlkfV8ke3Jlc291cmNlLmJpYmxlSWR9XyR7b3duZXJ9YH1cbiAgICAgICAgdmFsdWU9e2Ake3ByZWZpeH0ke3Jlc291cmNlLmxhbmd1YWdlSWR9XyR7cmVzb3VyY2UuYmlibGVJZH1fJHtvd25lcn1gfVxuICAgICAgICBkaXNhYmxlZD17Zm91bmRJbkN1cnJlbnRQYW5lU2V0dGluZ3N9XG4gICAgICA+XG4gICAgICAgIHtkaXNwbGF5VGV4dH1cbiAgICAgIDwvb3B0aW9uPixcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaXNMb2FkQnV0dG9uRGlzYWJsZWQgPSBPYmplY3Qua2V5cyhzZWxlY3RlZFBhbmUpLmxlbmd0aCA8PSAwO1xuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZyBvcGVuPXtzaG93fSBvbkNsb3NlPXtvbkhpZGV9IGZ1bGxXaWR0aCBtYXhXaWR0aD0nbWQnPlxuICAgICAgPFRvb2xiYXIgc3R5bGU9e3N0eWxlcy50b29sQmFyfT5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnRpdGxlfT5cbiAgICAgICAgICB7dGl0bGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8SWNvbkJ1dHRvbiBjb2xvcj1cImluaGVyaXRcIiBvbkNsaWNrPXtvbkhpZGV9IGFyaWEtbGFiZWw9XCJDbG9zZVwiIHN0eWxlPXtzdHlsZXMuY2xvc2VCdXR0b259PlxuICAgICAgICAgIDxHbHlwaGljb24gZ2x5cGg9XCJyZW1vdmVcIiAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L1Rvb2xiYXI+XG4gICAgICA8RGlhbG9nQ29udGVudCBzdHlsZT17c3R5bGVzLmRpYWxvZ0NvbnRlbnR9PlxuICAgICAgICA8aDQgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAnMzBweCcgfX0+XG4gICAgICAgICAge3NlbGVjdExhbmd1YWdlTGFiZWx9XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgIGNvbXBvbmVudENsYXNzPVwic2VsZWN0XCJcbiAgICAgICAgICBzdHlsZT17c3R5bGVzLnNlbGVjdH1cbiAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZWxlY3RTb3VyY2VMYW5ndWFnZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3NlbGVjdExhYmVsfTwvb3B0aW9uPlxuICAgICAgICAgIHtwYW5lc31cbiAgICAgICAgPC9Gb3JtQ29udHJvbD5cbiAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDxEaWFsb2dBY3Rpb25zIGRpc2FibGVTcGFjaW5nIHN0eWxlPXtzdHlsZXMuZGlhbG9nQWN0aW9uc30+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuLXNlY29uZFwiIG9uQ2xpY2s9e29uSGlkZX0+XG4gICAgICAgICAge3RyYW5zbGF0ZSgnY2xvc2UnKX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuLXByaW1lXCIgb25DbGljaz17YWRkTmV3QmlibGVSZXNvdXJjZX0gZGlzYWJsZWQ9e2lzTG9hZEJ1dHRvbkRpc2FibGVkfT5cbiAgICAgICAgICB7dHJhbnNsYXRlKCdsb2FkJyl9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9EaWFsb2dBY3Rpb25zPlxuICAgIDwvRGlhbG9nPlxuICApO1xufTtcblxuQWRkUGFuZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgc2hvdzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25IaWRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZWxlY3RMYW5ndWFnZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNlbGVjdExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNlbGVjdFNvdXJjZUxhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZWxlY3RlZFBhbmU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYmlibGVJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbiAgYWRkTmV3QmlibGVSZXNvdXJjZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY3VycmVudFBhbmVTZXR0aW5nczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZGRQYW5lTW9kYWw7XG4iXX0=