"use strict"; (self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_main_i"],{ /***/ "./src/shared/views/main/interested_team/form.tsx": /*!********************************************************!*\ !*** ./src/shared/views/main/interested_team/form.tsx ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditInterestedTeamPage = function NewEditInterestedTeamPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.interestedTeam; }), interestedTeam = _useSelector.interestedTeam, registerErrorMessage = _useSelector.registerErrorMessage, interestedTeamUpdatePending = _useSelector.interestedTeamUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.interestedTeamDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && interestedTeam) { form.setFieldsValue({ name: interestedTeam.name || '', description: interestedTeam.description || '' }); } }, [interestedTeam, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!interestedTeamUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/interested-teams'); } } }, [interestedTeamUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateInterestedTeamAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.createInterestedTeamAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž€αŸ’αžšαž»αž˜αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž€αŸ’αžšαž»αž˜αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: interestedTeamUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/interested-teams'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditInterestedTeamPage); /***/ }), /***/ "./src/shared/views/main/interested_team/index.tsx": /*!*********************************************************!*\ !*** ./src/shared/views/main/interested_team/index.tsx ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 InterestedTeamList = function InterestedTeamList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.interestedTeam; }), interestedTeams = _useSelector.interestedTeams, interestedTeamsPending = _useSelector.interestedTeamsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchInterestedTeams)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.interestedTeamDetailAction)(id)); navigate("/interested-teams/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteInterestedTeamAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchInterestedTeams)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (interestedTeams || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u17D2\u179A\u17BB\u1798\u1785\u17B6\u1794\u17CB\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/interested-teams/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: interestedTeamsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterestedTeamList); /***/ }), /***/ "./src/shared/views/main/language/form.tsx": /*!*************************************************!*\ !*** ./src/shared/views/main/language/form.tsx ***! \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditLanguagePage = function NewEditLanguagePage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.language; }), language = _useSelector.language, registerErrorMessage = _useSelector.registerErrorMessage, languageUpdatePending = _useSelector.languageUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.languageDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && language) { form.setFieldsValue({ name: language.name || '', description: language.description || '' }); } }, [language, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!languageUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/languages'); } } }, [languageUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateLanguageAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.createLanguageAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž—αžΆαžŸαžΆ' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž—αžΆαžŸαžΆ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: languageUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/languages'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditLanguagePage); /***/ }), /***/ "./src/shared/views/main/language/index.tsx": /*!**************************************************!*\ !*** ./src/shared/views/main/language/index.tsx ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 LanguageList = function LanguageList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.language; }), languages = _useSelector.languages, languagesPending = _useSelector.languagesPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchLanguages)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.languageDetailAction)(id)); navigate("/languages/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteLanguageAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchLanguages)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (languages || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1797\u17B6\u179F\u17B6"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/languages/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: languagesPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LanguageList); /***/ }), /***/ "./src/shared/views/main/notification/core/notification_service.ts": /*!*************************************************************************!*\ !*** ./src/shared/views/main/notification/core/notification_service.ts ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ notifyUserByStatus: () => (/* binding */ notifyUserByStatus), /* harmony export */ notifyUserTelegramService: () => (/* binding */ notifyUserTelegramService) /* harmony export */ }); /* harmony import */ var _core_base_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../core/base/services */ "./src/shared/core/base/services.ts"); /* harmony import */ var _configs_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../configs/constants */ "./src/shared/configs/constants.ts"); 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); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } var notifyUserTelegramService = /*#__PURE__*/function () { var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(user_id, message) { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY, "?user_id=").concat(user_id, "&message=").concat(message)); case 2: return _context.abrupt("return", _context.sent); case 3: case "end": return _context.stop(); } }, _callee); })); return function notifyUserTelegramService(_x, _x2) { return _ref.apply(this, arguments); }; }(); var notifyUserByStatus = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(status, message) { return _regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY_STATUS, "?status=").concat(status, "&message=").concat(message)); case 2: return _context2.abrupt("return", _context2.sent); case 3: case "end": return _context2.stop(); } }, _callee2); })); return function notifyUserByStatus(_x3, _x4) { return _ref2.apply(this, arguments); }; }(); /***/ }), /***/ "./src/shared/views/main/notification/index.tsx": /*!******************************************************!*\ !*** ./src/shared/views/main/notification/index.tsx ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js"); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _core_notification_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core/notification_service */ "./src/shared/views/main/notification/core/notification_service.ts"); 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); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } 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 Option = antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"].Option; var Invitation_to_Volunteer_Briefing_Meeting = "\n\uD83D\uDCE2 **\u1780\u17B6\u179A\u17A2\u1789\u17D2\u1787\u17BE\u1789\u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785**\n\n\n\uD83D\uDCDD **\u179F\u17BC\u1798\u17A2\u1789\u17D2\u1787\u17BE\u1789\u179B\u17C4\u1780\u17A2\u17D2\u1793\u1780** \u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8 **\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785\u1780\u17D2\u179A\u17BB\u1798\u1780\u17B6\u179A\u1784\u17B6\u179A**\n\u178A\u17BE\u1798\u17D2\u1794\u17B8\u179A\u17C0\u1794\u1785\u17C6\u1781\u17D2\u179B\u17BD\u1793\u1787\u17B6\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784 **\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD\u17A2\u1784\u17D2\u1782\u179A\u179F\u1784\u17D2\u1780\u17D2\u179A\u17B6\u1793\u17D2\u178F \u17E2\u17E0\u17E2\u17E5**\u3002\n\n\n\uD83D\uDCC5 \u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u17D6 \u1790\u17D2\u1784\u17C3\u179F\u17C5\u179A\u17CD \u1791\u17B8 \u17E2\u17E9 \u1781\u17C2\u1798\u17B8\u1793\u17B6 \u17E2\u17E0\u17E2\u17E5\n\u23F0 \u1796\u17C1\u179B\u179C\u17C1\u179B\u17B6\u17D6 \u17E9:\u17E0\u17E0 \u1796\u17D2\u179A\u17B9\u1780\n\uD83D\uDCCD \u1791\u17B8\u178F\u17B6\u17C6\u1784\u17D6 \u1791\u17B8\u179B\u17B6\u1793\u1795\u17D2\u178F\u17B6\u1785\u17CB\u1796\u17D2\u179A\u17D0\u178F\u17D2\u179A\u179F\u17A0\u1796\u17D0\u1793\u17D2\u1792\u1780\u17B8\u17A1\u17B6\u1794\u17CA\u17BC\u179B \u1793\u17B7\u1784\u1794\u17C9\u17C1\u178F\u1784\u17CB\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 (\u1796\u17A0\u17BB\u1780\u17B8\u17A1\u178A\u17D2\u178B\u17B6\u1793\u1787\u17B6\u178F\u17B7)\n\uD83D\uDC55 \u179F\u1798\u17D2\u179B\u17C0\u1780\u1794\u17C6\u1796\u17B6\u1780\u17CB\u17D6 \u179F\u1798\u179A\u1798\u17D2\u1799\n\n\uD83D\uDCDE \u1796\u17D0\u178F\u17CC\u1798\u17B6\u1793\u179B\u1798\u17D2\u17A2\u17B7\u178F\u179F\u17BC\u1798\u1791\u17C6\u1793\u17B6\u1780\u17CB\u1791\u17C6\u1793\u1784\u17D6 098 89 87 67\n"; var NotificationPage = function NotificationPage() { var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("PARTICIPANTS"), _useState2 = _slicedToArray(_useState, 2), selectedStatus = _useState2[0], setSelectedStatus = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Invitation_to_Volunteer_Briefing_Meeting), _useState4 = _slicedToArray(_useState3, 2), messageText = _useState4[0], setMessageText = _useState4[1]; var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState6 = _slicedToArray(_useState5, 2), loading = _useState6[0], setLoading = _useState6[1]; var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState8 = _slicedToArray(_useState7, 2), confirmVisible = _useState8[0], setConfirmVisible = _useState8[1]; var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState10 = _slicedToArray(_useState9, 2), finalConfirmVisible = _useState10[0], setFinalConfirmVisible = _useState10[1]; var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState12 = _slicedToArray(_useState11, 2), sendType = _useState12[0], setSendType = _useState12[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) { return state; }), auth = _useSelector.auth; var users = auth.users; var userStatuses = ["PARTICIPANTS", "SHORTLIST", "INTERVIEW", "RESERVE", "FAILED", "RESIGNATION", "DISQUALIFICATION", "REGISTER"]; var showConfirmDialog = function showConfirmDialog(type) { if (!messageText) { return antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].warning("Please enter a message before sending."); } setSendType(type); setConfirmVisible(true); }; var handleFirstConfirm = function handleFirstConfirm() { setConfirmVisible(false); setFinalConfirmVisible(true); }; var handleConfirmSend = /*#__PURE__*/function () { var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setLoading(true); setFinalConfirmVisible(false); _context.prev = 2; if (!(sendType === "user")) { _context.next = 8; break; } _context.next = 6; return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_1__.notifyUserTelegramService)(users.id, messageText); case 6: _context.next = 10; break; case 8: _context.next = 10; return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_1__.notifyUserByStatus)(selectedStatus, messageText); case 10: antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success("Message(s) sent successfully!"); setMessageText(Invitation_to_Volunteer_Briefing_Meeting); _context.next = 17; break; case 14: _context.prev = 14; _context.t0 = _context["catch"](2); antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error("Failed to send message(s)!"); case 17: setLoading(false); case 18: case "end": return _context.stop(); } }, _callee, null, [[2, 14]]); })); return function handleConfirmSend() { return _ref.apply(this, arguments); }; }(); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { padding: 20 } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "Send Notifications"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginBottom: 20 } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_5__["default"], { gutter: [16, 16] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], { span: 16, lg: 24 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"], { placeholder: "Select User Status", value: selectedStatus, onChange: setSelectedStatus, style: { width: 200 } }, userStatuses.map(function (status) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: status, value: status }, status); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], { span: 16, lg: 24 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_7__["default"].TextArea, { placeholder: "Enter Message", value: messageText, onChange: function onChange(e) { return setMessageText(e.target.value); }, rows: 20 })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], { span: 16, lg: 24 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), { type: "primary", onClick: function onClick() { return showConfirmDialog("status"); }, loading: loading }, "Send by Status")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_9__["default"], { title: "Confirm Sending Message", visible: confirmVisible, onOk: handleFirstConfirm, onCancel: function onCancel() { return setConfirmVisible(false); }, okText: "Proceed", cancelText: "Cancel" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], null, "Are you sure you want to send this message?"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "Message:"), " ", messageText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "User Status:"), " ", selectedStatus)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_9__["default"], { title: "Final Confirmation", visible: finalConfirmVisible, onOk: handleConfirmSend, onCancel: function onCancel() { return setFinalConfirmVisible(false); }, okText: "Yes, Send", cancelText: "Cancel" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "This is your final confirmation. Do you want to proceed with sending the message?"))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotificationPage); /***/ }), /***/ "./src/shared/views/main/occupation/form.tsx": /*!***************************************************!*\ !*** ./src/shared/views/main/occupation/form.tsx ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditOccupationPage = function NewEditOccupationPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.occupation; }), occupation = _useSelector.occupation, registerErrorMessage = _useSelector.registerErrorMessage, occupationUpdatePending = _useSelector.occupationUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.occupationDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && occupation) { form.setFieldsValue({ name: occupation.name || '', description: occupation.description || '' }); } }, [occupation, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!occupationUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/occupations'); } } }, [occupationUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOccupationAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOccupationAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž˜αž»αžαžšαž”αžš' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž˜αž»αžαžšαž”αžš'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: occupationUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/occupations'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOccupationPage); /***/ }), /***/ "./src/shared/views/main/occupation/index.tsx": /*!****************************************************!*\ !*** ./src/shared/views/main/occupation/index.tsx ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 OccupationList = function OccupationList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.occupation; }), occupations = _useSelector.occupations, occupationsPending = _useSelector.occupationsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOccupations)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.occupationDetailAction)(id)); navigate("/occupations/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOccupationAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOccupations)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (occupations || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1798\u17BB\u1781\u179A\u1794\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/occupations/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: occupationsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OccupationList); /***/ }), /***/ "./src/shared/views/main/offer_program/form.tsx": /*!******************************************************!*\ !*** ./src/shared/views/main/offer_program/form.tsx ***! \******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditOfferProgramPage = function NewEditOfferProgramPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.offerProgram; }), offerProgram = _useSelector.offerProgram, registerErrorMessage = _useSelector.registerErrorMessage, offerProgramUpdatePending = _useSelector.offerProgramUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.offerProgramDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && offerProgram) { form.setFieldsValue({ name: offerProgram.name || '', description: offerProgram.description || '' }); } }, [offerProgram, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!offerProgramUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/offer-programs'); } } }, [offerProgramUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOfferProgramAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOfferProgramAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž€αž˜αŸ’αž˜αžœαžΈαž’αžΈαž•αŸ’αžŠαž›αŸ‹αž‡αžΌαž“β€‹' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž€αž˜αŸ’αž˜αžœαžΈαž’αžΈαž•αŸ’αžŠαž›αŸ‹αž‡αžΌαž“β€‹'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: offerProgramUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/offer-programs'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOfferProgramPage); /***/ }), /***/ "./src/shared/views/main/offer_program/index.tsx": /*!*******************************************************!*\ !*** ./src/shared/views/main/offer_program/index.tsx ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 OfferProgramList = function OfferProgramList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.offerProgram; }), offerPrograms = _useSelector.offerPrograms, offerProgramsPending = _useSelector.offerProgramsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOfferPrograms)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.offerProgramDetailAction)(id)); navigate("/offer-programs/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOfferProgramAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOfferPrograms)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (offerPrograms || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u1798\u17D2\u1798\u179C\u17B8\u1792\u17B8\u1795\u17D2\u178A\u179B\u17CB\u1787\u17BC\u1793\u200B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/offer-programs/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: offerProgramsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OfferProgramList); /***/ }), /***/ "./src/shared/views/main/opportunity_source/form.tsx": /*!***********************************************************!*\ !*** ./src/shared/views/main/opportunity_source/form.tsx ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditOpportunitySourcePage = function NewEditOpportunitySourcePage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.opportunitySource; }), opportunitySource = _useSelector.opportunitySource, registerErrorMessage = _useSelector.registerErrorMessage, opportunitySourceUpdatePending = _useSelector.opportunitySourceUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.opportunitySourceDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && opportunitySource) { form.setFieldsValue({ name: opportunitySource.name || '', description: opportunitySource.description || '' }); } }, [opportunitySource, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!opportunitySourceUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/opportunity-sources'); } } }, [opportunitySourceUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOpportunitySourceAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOpportunitySourceAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž—αž–αž±αž€αžΆαžŸ' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž”αŸ’αžšαž—αž–αž±αž€αžΆαžŸ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: opportunitySourceUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/opportunity-sources'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOpportunitySourcePage); /***/ }), /***/ "./src/shared/views/main/opportunity_source/index.tsx": /*!************************************************************!*\ !*** ./src/shared/views/main/opportunity_source/index.tsx ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 OpportunitySourceList = function OpportunitySourceList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.opportunitySource; }), opportunitySources = _useSelector.opportunitySources, opportunitySourcesPending = _useSelector.opportunitySourcesPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOpportunitySources)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.opportunitySourceDetailAction)(id)); navigate("/opportunity-sources/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOpportunitySourceAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOpportunitySources)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (opportunitySources || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1794\u17D2\u179A\u1797\u1796\u17B1\u1780\u17B6\u179F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/opportunity-sources/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: opportunitySourcesPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpportunitySourceList); /***/ }), /***/ "./src/shared/views/main/province/form.tsx": /*!*************************************************!*\ !*** ./src/shared/views/main/province/form.tsx ***! \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditProvincePage = function NewEditProvincePage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.province; }), province = _useSelector.province, registerErrorMessage = _useSelector.registerErrorMessage, provinceUpdatePending = _useSelector.provinceUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.provinceDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && province) { form.setFieldsValue({ name: province.name || '', description: province.description || '' }); } }, [province, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!provinceUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/provinces'); } } }, [provinceUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateProvinceAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.createProvinceAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αžαŸαžαŸ’αž' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαžαŸαžαŸ’αž'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: provinceUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/provinces'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditProvincePage); /***/ }), /***/ "./src/shared/views/main/province/index.tsx": /*!**************************************************!*\ !*** ./src/shared/views/main/province/index.tsx ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 ProvinceList = function ProvinceList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.province; }), provinces = _useSelector.provinces, provincesPending = _useSelector.provincesPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchProvinces)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.provinceDetailAction)(id)); navigate("/provinces/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteProvinceAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchProvinces)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (provinces || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1781\u17C1\u178F\u17D2\u178F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/provinces/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: provincesPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProvinceList); /***/ }), /***/ "./src/shared/views/main/skill/form.tsx": /*!**********************************************!*\ !*** ./src/shared/views/main/skill/form.tsx ***! \**********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditSkillPage = function NewEditSkillPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.skill; }), skill = _useSelector.skill, registerErrorMessage = _useSelector.registerErrorMessage, skillUpdatePending = _useSelector.skillUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.skillDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && skill) { form.setFieldsValue({ name: skill.name || '', description: skill.description || '' }); } }, [skill, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!skillUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/skills'); } } }, [skillUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateSkillAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.createSkillAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž‡αŸ†αž“αžΆαž‰' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž‡αŸ†αž“αžΆαž‰'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: skillUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/skills'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditSkillPage); /***/ }), /***/ "./src/shared/views/main/skill/index.tsx": /*!***********************************************!*\ !*** ./src/shared/views/main/skill/index.tsx ***! \***********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 SkillList = function SkillList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.skill; }), skills = _useSelector.skills, skillsPending = _useSelector.skillsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchSkills)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.skillDetailAction)(id)); navigate("/skills/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteSkillAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchSkills)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (skills || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1787\u17C6\u1793\u17B6\u1789"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/skills/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: skillsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SkillList); /***/ }), /***/ "./src/shared/views/main/terms_condition/form.tsx": /*!********************************************************!*\ !*** ./src/shared/views/main/terms_condition/form.tsx ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditTermsConditionPage = function NewEditTermsConditionPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.termsCondition; }), termsCondition = _useSelector.termsCondition, registerErrorMessage = _useSelector.registerErrorMessage, termsConditionUpdatePending = _useSelector.termsConditionUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.termsConditionDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && termsCondition) { form.setFieldsValue({ name: termsCondition.name || '', description: termsCondition.description || '' }); } }, [termsCondition, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!termsConditionUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/terms-conditions'); } } }, [termsConditionUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTermsConditionAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTermsConditionAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αž›αž€αŸ’αžαžαžŽαŸ’αžŒ' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž›αž€αŸ’αžαžαžŽαŸ’αžŒ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: termsConditionUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/terms-conditions'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTermsConditionPage); /***/ }), /***/ "./src/shared/views/main/terms_condition/index.tsx": /*!*********************************************************!*\ !*** ./src/shared/views/main/terms_condition/index.tsx ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 TermsConditionList = function TermsConditionList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.termsCondition; }), termsConditions = _useSelector.termsConditions, termsConditionsPending = _useSelector.termsConditionsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTermsConditions)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.termsConditionDetailAction)(id)); navigate("/terms-conditions/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTermsConditionAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTermsConditions)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (termsConditions || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/terms-conditions/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: termsConditionsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TermsConditionList); /***/ }), /***/ "./src/shared/views/main/training_session/form.tsx": /*!*********************************************************!*\ !*** ./src/shared/views/main/training_session/form.tsx ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditTrainingSessionPage = function NewEditTrainingSessionPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.trainingSession; }), trainingSession = _useSelector.trainingSession, registerErrorMessage = _useSelector.registerErrorMessage, trainingSessionUpdatePending = _useSelector.trainingSessionUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.trainingSessionDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && trainingSession) { form.setFieldsValue({ name: trainingSession.name || '', description: trainingSession.description || '' }); } }, [trainingSession, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!trainingSessionUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/training-sessions'); } } }, [trainingSessionUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTrainingSessionAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTrainingSessionAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αžœαž‚αŸ’αž‚αž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαžœαž‚αŸ’αž‚αž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: trainingSessionUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/training-sessions'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTrainingSessionPage); /***/ }), /***/ "./src/shared/views/main/training_session/index.tsx": /*!**********************************************************!*\ !*** ./src/shared/views/main/training_session/index.tsx ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 TrainingSessionList = function TrainingSessionList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.trainingSession; }), trainingSessions = _useSelector.trainingSessions, trainingSessionsPending = _useSelector.trainingSessionsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTrainingSessions)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.trainingSessionDetailAction)(id)); navigate("/training-sessions/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTrainingSessionAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTrainingSessions)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (trainingSessions || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179C\u1782\u17D2\u1782\u1794\u178E\u17D2\u178F\u17BB\u17C7\u1794\u178E\u17D2\u178F\u17B6\u179B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/training-sessions/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: trainingSessionsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TrainingSessionList); /***/ }), /***/ "./src/shared/views/main/travel_day/form.tsx": /*!***************************************************!*\ !*** ./src/shared/views/main/travel_day/form.tsx ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js"); /* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js"); 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 NewEditTravelDayPage = function NewEditTravelDayPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.travelDay; }), travelDay = _useSelector.travelDay, registerErrorMessage = _useSelector.registerErrorMessage, travelDayUpdatePending = _useSelector.travelDayUpdatePending; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; // πŸ‘‰ Fetch data when editing or reset form when adding (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id) { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.travelDayDetailAction)(Number(id))); } else { form.resetFields(); // Reset form fields when adding a new item } }, [dispatch, id, form]); // πŸ‘‰ Populate form with fetched data (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (id && travelDay) { form.setFieldsValue({ name: travelDay.name || '', description: travelDay.description || '' }); } }, [travelDay, form, id]); // πŸ‘‰ Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!travelDayUpdatePending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!'); navigate('/travel-days'); } } }, [travelDayUpdatePending, registerErrorMessage, id, isClick, navigate]); // πŸ‘‰ Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTravelDayAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTravelDayAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αž€αŸ‚αž”αŸ’αžšαŸ‚αžαŸ’αž„αŸƒαž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžš' : 'αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαžαŸ’αž„αŸƒαž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžš'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: travelDayUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/travel-days'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTravelDayPage); /***/ }), /***/ "./src/shared/views/main/travel_day/index.tsx": /*!****************************************************!*\ !*** ./src/shared/views/main/travel_day/index.tsx ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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); } 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 TravelDayList = function TravelDayList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.travelDay; }), travelDays = _useSelector.travelDays, travelDaysPending = _useSelector.travelDaysPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTravelDays)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.travelDayDetailAction)(id)); navigate("/travel-days/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({ title: 'Are you sure?', text: 'You won\'t be able to revert this!', icon: 'warning', showConfirmButton: false, showCancelButton: false, html: "\n
\n \n \n
\n ", didOpen: function didOpen() { var _Swal$getPopup, _Swal$getPopup2; var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete'); confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () { dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTravelDayAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTravelDays)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); } }); }; var handleSearch = function handleSearch() { // Triggers search by setting state setSearchText(searchText.trim()); }; var handleReset = function handleReset() { // Clears input and shows all data setSearchText(''); }; var columns = [{ title: 'αž›αŸαžαžšαŸ€αž„', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'αžˆαŸ’αž˜αŸ„αŸ‡', dataIndex: 'name', key: 'name', responsive: ['sm'] }, { title: 'αž”αžšαž·αž™αžΆαž™', dataIndex: 'description', key: 'description', responsive: ['sm'] }, { title: 'Action', key: 'action', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (travelDays || []).filter(function (it) { var _it$name; return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase()); }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1790\u17D2\u1784\u17C3\u1792\u17D2\u179C\u17BE\u178A\u17C6\u178E\u17BE\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", style: { width: 200 }, value: searchText, onChange: function onChange(e) { return setSearchText(e.target.value); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/travel-days/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: filteredData.map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: it.name }, it); }), pagination: { pageSize: 10, showSizeChanger: true }, scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: travelDaysPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TravelDayList); /***/ }) }]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX21haW5faS52b2x1bnRlZXJhcGkuNDMxNDlkZTlmOWE1ZDI2YTY0ZDQuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBR0k7QUFFZ0c7QUFDeEc7QUFDRDtBQUU5QyxJQUFNVSx5QkFBbUMsR0FBRyxTQUF0Q0EseUJBQW1DQSxDQUFBLEVBQVM7RUFDaEQsSUFBTUMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUE4RVQsd0RBQVcsQ0FDdkYsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk9BLGNBQWMsR0FBQUYsWUFBQSxDQUFkRSxjQUFjO0lBQUVDLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRUMsMkJBQTJCLEdBQUFKLFlBQUEsQ0FBM0JJLDJCQUEyQjtFQUd6RSxJQUFBQyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDTCxrR0FBMEIsQ0FBQzRCLE1BQU0sQ0FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLE1BQU07TUFDTEwsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7RUFDRixDQUFDLEVBQUUsQ0FBQ3hCLFFBQVEsRUFBRWlCLEVBQUUsRUFBRUwsSUFBSSxDQUFDLENBQUM7O0VBRXhCO0VBQ0F0QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJMkIsRUFBRSxJQUFJYixjQUFjLEVBQUU7TUFDeEJRLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUV0QixjQUFjLENBQUNzQixJQUFJLElBQUksRUFBRTtRQUMvQkMsV0FBVyxFQUFFdkIsY0FBYyxDQUFDdUIsV0FBVyxJQUFJO01BQzdDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUN2QixjQUFjLEVBQUVRLElBQUksRUFBRUssRUFBRSxDQUFDLENBQUM7O0VBRTlCO0VBQ0EzQixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNnQiwyQkFBMkIsSUFBSWUsT0FBTyxFQUFFO01BQzNDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QnVCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3hCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMdUIsdURBQUEsQ0FBUUUsT0FBTyxDQUFDYixFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVoQixRQUFRLENBQUMsbUJBQW1CLENBQUM7TUFDL0I7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDSywyQkFBMkIsRUFBRUQsb0JBQW9CLEVBQUVZLEVBQUUsRUFBRUksT0FBTyxFQUFFcEIsUUFBUSxDQUFDLENBQUM7O0VBRTlFO0VBQ0EsSUFBTThCLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFzQixFQUFLO0lBQzNDLElBQUlmLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDSixrR0FBMEIsQ0FBQztRQUFFcUIsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFZ0IsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3RFcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHhCLFFBQVEsQ0FBQ04sa0dBQTBCLENBQUM7UUFBRXVDLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUN0RHBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0lBQ0FGLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbEIsQ0FBQztFQUVELG9CQUNFakMsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0VBLDBEQUFBLGFBQUs0QixFQUFFLEdBQUcseUJBQXlCLEdBQUcsNkJBQWtDLENBQUMsZUFDekU1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRWpEO0VBQTRCLEdBQUMsUUFFN0UsQ0FDQyxDQUNSLENBQUMsZUFDTmpCLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsbUJBQW1CLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFaEUsQ0FDQyxDQUNSLENBQ0YsQ0FDRCxDQUNOLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWVGLHlCQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0R1c7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDa0U7QUFDbEg7QUFFL0IsSUFBTWlFLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBUztFQUMvQixJQUFNaEUsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBb0RULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLGNBQWM7SUFBQSxFQUFDO0lBQW5HbUUsZUFBZSxHQUFBckUsWUFBQSxDQUFmcUUsZUFBZTtJQUFFQyxzQkFBc0IsR0FBQXRFLFlBQUEsQ0FBdEJzRSxzQkFBc0I7RUFFL0NsRixnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDOEQsNEZBQW9CLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUMsRUFBRSxDQUFDOUQsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNeUUsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUl4RCxFQUFPLEVBQUs7SUFDOUJqQixRQUFRLENBQUNMLGtHQUEwQixDQUFDc0IsRUFBRSxDQUFDLENBQUM7SUFDeENoQixRQUFRLDhCQUFBeUUsTUFBQSxDQUE4QnpELEVBQUUsQ0FBRSxDQUFDO0VBQzdDLENBQUM7RUFFRCxJQUFNMEQsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkxRCxFQUFPLEVBQUs7SUFDaEM4Qyx1REFBUyxDQUFDO01BQ1JjLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3JCLDJEQUFhLENBQUMsQ0FBQyxjQUFBcUIsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHdEIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFzQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDMUYsUUFBUSxDQUFDNkQsa0dBQTBCLENBQUM1QyxFQUFFLENBQUMsQ0FBQyxDQUFDMEUsSUFBSSxDQUFDLFlBQU07WUFDbEQ1Qix1REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQvRCxRQUFRLENBQUM4RCw0RkFBb0IsQ0FBQyxDQUFDLENBQUM7VUFDbEMsQ0FBQyxDQUFDO1VBQ0ZDLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDbkMsZUFBZSxJQUFJLEVBQUUsRUFBRW9DLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDckRELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSxzSUFBMEIsQ0FBQyxlQUMvQkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEseUJBQXlCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQy9HLENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBMEksc0RBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1o1RSxJQUFJLEVBQUUsVUFBVTtNQUNoQndFLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHdkIsQ0FBQyxFQUFFcEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGK0IsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCaUMsVUFBVSxFQUFFdkIsWUFBWSxDQUFDd0IsR0FBRyxDQUFDLFVBQUN0QixFQUFFLEVBQUV1QixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQ2xDLEdBQUcsRUFBRVUsRUFBRSxDQUFDM0YsRUFBRTtRQUNWa0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQnpHLElBQUksRUFBRWtGLEVBQUUsQ0FBQ2xGO01BQUksR0FDVmtGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnlCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZwSiwwREFBQSxDQUFDb0UseUVBQWE7SUFBQ2lGLE9BQU8sRUFBRWxFO0VBQXVCLENBQUUsQ0FDOUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZVIsa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SWtCO0FBR0k7QUFFdUU7QUFDL0U7QUFDRDtBQUU5QyxJQUFNOEUsbUJBQTZCLEdBQUcsU0FBaENBLG1CQUE2QkEsQ0FBQSxFQUFTO0VBQzFDLElBQU05SSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQWtFVCx3REFBVyxDQUMzRSxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQzRJLFFBQVE7SUFBQSxDQUN0QyxDQUFDO0lBRk9BLFFBQVEsR0FBQTdJLFlBQUEsQ0FBUjZJLFFBQVE7SUFBRTFJLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRTJJLHFCQUFxQixHQUFBOUksWUFBQSxDQUFyQjhJLHFCQUFxQjtFQUc3RCxJQUFBekksYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjVCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQTlCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQzRJLHFGQUFvQixDQUFDckgsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDeEIsUUFBUSxFQUFFaUIsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXRCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLElBQUk4SCxRQUFRLEVBQUU7TUFDbEJuSSxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFcUgsUUFBUSxDQUFDckgsSUFBSSxJQUFJLEVBQUU7UUFDekJDLFdBQVcsRUFBRW9ILFFBQVEsQ0FBQ3BILFdBQVcsSUFBSTtNQUN2QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDb0gsUUFBUSxFQUFFbkksSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFeEI7RUFDQTNCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQzBKLHFCQUFxQixJQUFJM0gsT0FBTyxFQUFFO01BQ3JDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QnVCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3hCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMdUIsdURBQUEsQ0FBUUUsT0FBTyxDQUFDYixFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVoQixRQUFRLENBQUMsWUFBWSxDQUFDO01BQ3hCO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQytJLHFCQUFxQixFQUFFM0ksb0JBQW9CLEVBQUVZLEVBQUUsRUFBRUksT0FBTyxFQUFFcEIsUUFBUSxDQUFDLENBQUM7O0VBRXhFO0VBQ0EsSUFBTThCLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFnQixFQUFLO0lBQ3JDLElBQUlmLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDNkkscUZBQW9CLENBQUM7UUFBRTVILEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWdCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUNoRXBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x4QixRQUFRLENBQUMySSxxRkFBb0IsQ0FBQztRQUFFMUcsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2hEcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VqQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzRCLEVBQUUsR0FBRyxZQUFZLEdBQUcsZ0JBQXFCLENBQUMsZUFDL0M1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRXlGO0VBQXNCLEdBQUMsUUFFdkUsQ0FDQyxDQUNSLENBQUMsZUFDTjNKLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRXpELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlNkksbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHaUI7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDeUM7QUFDekY7QUFFL0IsSUFBTUssWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztFQUN6QixJQUFNbkosUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBd0NULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUM0SSxRQUFRO0lBQUEsRUFBQztJQUFqRkssU0FBUyxHQUFBbEosWUFBQSxDQUFUa0osU0FBUztJQUFFQyxnQkFBZ0IsR0FBQW5KLFlBQUEsQ0FBaEJtSixnQkFBZ0I7RUFFbkMvSixnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDa0osK0VBQWMsQ0FBQyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxFQUFFLENBQUNsSixRQUFRLENBQUMsQ0FBQztFQUVkLElBQU15RSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSXhELEVBQU8sRUFBSztJQUM5QmpCLFFBQVEsQ0FBQzRJLHFGQUFvQixDQUFDM0gsRUFBRSxDQUFDLENBQUM7SUFDbENoQixRQUFRLHVCQUFBeUUsTUFBQSxDQUF1QnpELEVBQUUsQ0FBRSxDQUFDO0VBQ3RDLENBQUM7RUFFRCxJQUFNMEQsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkxRCxFQUFPLEVBQUs7SUFDaEM4Qyx1REFBUyxDQUFDO01BQ1JjLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3JCLDJEQUFhLENBQUMsQ0FBQyxjQUFBcUIsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHdEIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFzQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDMUYsUUFBUSxDQUFDaUoscUZBQW9CLENBQUNoSSxFQUFFLENBQUMsQ0FBQyxDQUFDMEUsSUFBSSxDQUFDLFlBQU07WUFDNUM1Qix1REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQvRCxRQUFRLENBQUNrSiwrRUFBYyxDQUFDLENBQUMsQ0FBQztVQUM1QixDQUFDLENBQUM7VUFDRm5GLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDMEMsU0FBUyxJQUFJLEVBQUUsRUFBRXpDLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDL0NELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSx3REFBYSxDQUFDLGVBQ2xCQSwwREFBQTtJQUNFZ0QsS0FBSyxFQUFFO01BQ0w0RSxPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGakksMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQXFILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDbkksMERBQUEsQ0FBQTRELHNEQUFBO0lBQ0V3RSxXQUFXLEVBQUMsK0NBQVk7SUFDeEJwRixLQUFLLEVBQUU7TUFBRXFGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJDLEtBQUssRUFBRXRELFVBQVc7SUFDbEJ1RCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUt2RCxhQUFhLENBQUN1RCxDQUFDLENBQUNDLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z0SSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUUssT0FBTyxFQUFFcUMsWUFBYTtJQUFDekMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEL0QsMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXVDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSMUcsMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUN1RSwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxrQkFBa0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDeEcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUEwSSxzREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWjVFLElBQUksRUFBRSxVQUFVO01BQ2hCd0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUd2QixDQUFDLEVBQUVwQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0YrQixPQUFPLEVBQUVBLE9BQVE7SUFDakJpQyxVQUFVLEVBQUV2QixZQUFZLENBQUN3QixHQUFHLENBQUMsVUFBQ3RCLEVBQUUsRUFBRXVCLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDbEMsR0FBRyxFQUFFVSxFQUFFLENBQUMzRixFQUFFO1FBQ1ZrSCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCekcsSUFBSSxFQUFFa0YsRUFBRSxDQUFDbEY7TUFBSSxHQUNWa0YsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKeUIsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRnBKLDBEQUFBLENBQUNvRSx5RUFBYTtJQUFDaUYsT0FBTyxFQUFFVztFQUFpQixDQUFFLENBQ3hDLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQ0N4STNCLHFKQUFBRyxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBekIsQ0FBQSxTQUFBMEIsQ0FBQSxFQUFBMUIsQ0FBQSxPQUFBMkIsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBMUIsQ0FBQSxFQUFBMkIsQ0FBQSxJQUFBRCxDQUFBLENBQUExQixDQUFBLElBQUEyQixDQUFBLENBQUE3QixLQUFBLEtBQUFvQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWhCLENBQUEsRUFBQTFCLENBQUEsRUFBQTJCLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQTFCLENBQUEsSUFBQUYsS0FBQSxFQUFBNkIsQ0FBQSxFQUFBZ0IsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQW5CLENBQUEsQ0FBQTFCLENBQUEsV0FBQTBDLE1BQUEsbUJBQUFoQixDQUFBLElBQUFnQixNQUFBLFlBQUFBLE9BQUFoQixDQUFBLEVBQUExQixDQUFBLEVBQUEyQixDQUFBLFdBQUFELENBQUEsQ0FBQTFCLENBQUEsSUFBQTJCLENBQUEsZ0JBQUFqQyxLQUFBZ0MsQ0FBQSxFQUFBMUIsQ0FBQSxFQUFBMkIsQ0FBQSxFQUFBRyxDQUFBLFFBQUFJLENBQUEsR0FBQWxDLENBQUEsSUFBQUEsQ0FBQSxDQUFBNkIsU0FBQSxZQUFBaUIsU0FBQSxHQUFBOUMsQ0FBQSxHQUFBOEMsU0FBQSxFQUFBVixDQUFBLEdBQUFSLE1BQUEsQ0FBQW1CLE1BQUEsQ0FBQWIsQ0FBQSxDQUFBTCxTQUFBLEdBQUFTLENBQUEsT0FBQVUsT0FBQSxDQUFBbEIsQ0FBQSxnQkFBQUUsQ0FBQSxDQUFBSSxDQUFBLGVBQUF0QyxLQUFBLEVBQUFtRCxnQkFBQSxDQUFBdkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFXLENBQUEsTUFBQUYsQ0FBQSxhQUFBYyxTQUFBeEIsQ0FBQSxFQUFBMUIsQ0FBQSxFQUFBMkIsQ0FBQSxtQkFBQXBHLElBQUEsWUFBQTRILEdBQUEsRUFBQXpCLENBQUEsQ0FBQTBCLElBQUEsQ0FBQXBELENBQUEsRUFBQTJCLENBQUEsY0FBQUQsQ0FBQSxhQUFBbkcsSUFBQSxXQUFBNEgsR0FBQSxFQUFBekIsQ0FBQSxRQUFBMUIsQ0FBQSxDQUFBTixJQUFBLEdBQUFBLElBQUEsTUFBQTJELENBQUEscUJBQUFDLENBQUEscUJBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFYLFVBQUEsY0FBQVksa0JBQUEsY0FBQUMsMkJBQUEsU0FBQUMsQ0FBQSxPQUFBbEIsTUFBQSxDQUFBa0IsQ0FBQSxFQUFBeEIsQ0FBQSxxQ0FBQXlCLENBQUEsR0FBQWpDLE1BQUEsQ0FBQWtDLGNBQUEsRUFBQUMsQ0FBQSxHQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUEsQ0FBQSxDQUFBMUosTUFBQSxRQUFBNEosQ0FBQSxJQUFBQSxDQUFBLEtBQUFwQyxDQUFBLElBQUFHLENBQUEsQ0FBQXNCLElBQUEsQ0FBQVcsQ0FBQSxFQUFBM0IsQ0FBQSxNQUFBd0IsQ0FBQSxHQUFBRyxDQUFBLE9BQUFDLENBQUEsR0FBQUwsMEJBQUEsQ0FBQTlCLFNBQUEsR0FBQWlCLFNBQUEsQ0FBQWpCLFNBQUEsR0FBQUQsTUFBQSxDQUFBbUIsTUFBQSxDQUFBYSxDQUFBLFlBQUFLLHNCQUFBdkMsQ0FBQSxnQ0FBQXdDLE9BQUEsV0FBQWxFLENBQUEsSUFBQTBDLE1BQUEsQ0FBQWhCLENBQUEsRUFBQTFCLENBQUEsWUFBQTBCLENBQUEsZ0JBQUF5QyxPQUFBLENBQUFuRSxDQUFBLEVBQUEwQixDQUFBLHNCQUFBMEMsY0FBQTFDLENBQUEsRUFBQTFCLENBQUEsYUFBQXFFLE9BQUExQyxDQUFBLEVBQUFLLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsR0FBQVksUUFBQSxDQUFBeEIsQ0FBQSxDQUFBQyxDQUFBLEdBQUFELENBQUEsRUFBQU0sQ0FBQSxtQkFBQU0sQ0FBQSxDQUFBL0csSUFBQSxRQUFBaUgsQ0FBQSxHQUFBRixDQUFBLENBQUFhLEdBQUEsRUFBQUUsQ0FBQSxHQUFBYixDQUFBLENBQUExQyxLQUFBLFNBQUF1RCxDQUFBLGdCQUFBaUIsT0FBQSxDQUFBakIsQ0FBQSxLQUFBdkIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBQyxDQUFBLGVBQUFyRCxDQUFBLENBQUF1RSxPQUFBLENBQUFsQixDQUFBLENBQUFtQixPQUFBLEVBQUExRyxJQUFBLFdBQUE0RCxDQUFBLElBQUEyQyxNQUFBLFNBQUEzQyxDQUFBLEVBQUFRLENBQUEsRUFBQUUsQ0FBQSxnQkFBQVYsQ0FBQSxJQUFBMkMsTUFBQSxVQUFBM0MsQ0FBQSxFQUFBUSxDQUFBLEVBQUFFLENBQUEsUUFBQXBDLENBQUEsQ0FBQXVFLE9BQUEsQ0FBQWxCLENBQUEsRUFBQXZGLElBQUEsV0FBQTRELENBQUEsSUFBQWMsQ0FBQSxDQUFBMUMsS0FBQSxHQUFBNEIsQ0FBQSxFQUFBUSxDQUFBLENBQUFNLENBQUEsZ0JBQUFkLENBQUEsV0FBQTJDLE1BQUEsVUFBQTNDLENBQUEsRUFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsQ0FBQUUsQ0FBQSxDQUFBYSxHQUFBLFNBQUF4QixDQUFBLEVBQUFLLENBQUEsb0JBQUFsQyxLQUFBLFdBQUFBLE1BQUE0QixDQUFBLEVBQUFJLENBQUEsYUFBQTJDLDJCQUFBLGVBQUF6RSxDQUFBLFdBQUFBLENBQUEsRUFBQTJCLENBQUEsSUFBQTBDLE1BQUEsQ0FBQTNDLENBQUEsRUFBQUksQ0FBQSxFQUFBOUIsQ0FBQSxFQUFBMkIsQ0FBQSxnQkFBQUEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQTdELElBQUEsQ0FBQTJHLDBCQUFBLEVBQUFBLDBCQUFBLElBQUFBLDBCQUFBLHFCQUFBeEIsaUJBQUFqRCxDQUFBLEVBQUEyQixDQUFBLEVBQUFHLENBQUEsUUFBQUUsQ0FBQSxHQUFBcUIsQ0FBQSxtQkFBQW5CLENBQUEsRUFBQUUsQ0FBQSxRQUFBSixDQUFBLEtBQUF1QixDQUFBLFFBQUFtQixLQUFBLHNDQUFBMUMsQ0FBQSxLQUFBd0IsQ0FBQSxvQkFBQXRCLENBQUEsUUFBQUUsQ0FBQSxXQUFBdEMsS0FBQSxFQUFBNEIsQ0FBQSxFQUFBaUQsSUFBQSxlQUFBN0MsQ0FBQSxDQUFBOEMsTUFBQSxHQUFBMUMsQ0FBQSxFQUFBSixDQUFBLENBQUFxQixHQUFBLEdBQUFmLENBQUEsVUFBQUUsQ0FBQSxHQUFBUixDQUFBLENBQUErQyxRQUFBLE1BQUF2QyxDQUFBLFFBQUFFLENBQUEsR0FBQXNDLG1CQUFBLENBQUF4QyxDQUFBLEVBQUFSLENBQUEsT0FBQVUsQ0FBQSxRQUFBQSxDQUFBLEtBQUFpQixDQUFBLG1CQUFBakIsQ0FBQSxxQkFBQVYsQ0FBQSxDQUFBOEMsTUFBQSxFQUFBOUMsQ0FBQSxDQUFBaUQsSUFBQSxHQUFBakQsQ0FBQSxDQUFBa0QsS0FBQSxHQUFBbEQsQ0FBQSxDQUFBcUIsR0FBQSxzQkFBQXJCLENBQUEsQ0FBQThDLE1BQUEsUUFBQTVDLENBQUEsS0FBQXFCLENBQUEsUUFBQXJCLENBQUEsR0FBQXdCLENBQUEsRUFBQTFCLENBQUEsQ0FBQXFCLEdBQUEsRUFBQXJCLENBQUEsQ0FBQW1ELGlCQUFBLENBQUFuRCxDQUFBLENBQUFxQixHQUFBLHVCQUFBckIsQ0FBQSxDQUFBOEMsTUFBQSxJQUFBOUMsQ0FBQSxDQUFBb0QsTUFBQSxXQUFBcEQsQ0FBQSxDQUFBcUIsR0FBQSxHQUFBbkIsQ0FBQSxHQUFBdUIsQ0FBQSxNQUFBSyxDQUFBLEdBQUFWLFFBQUEsQ0FBQWxELENBQUEsRUFBQTJCLENBQUEsRUFBQUcsQ0FBQSxvQkFBQThCLENBQUEsQ0FBQXJJLElBQUEsUUFBQXlHLENBQUEsR0FBQUYsQ0FBQSxDQUFBNkMsSUFBQSxHQUFBbkIsQ0FBQSxHQUFBRixDQUFBLEVBQUFNLENBQUEsQ0FBQVQsR0FBQSxLQUFBTSxDQUFBLHFCQUFBM0QsS0FBQSxFQUFBOEQsQ0FBQSxDQUFBVCxHQUFBLEVBQUF3QixJQUFBLEVBQUE3QyxDQUFBLENBQUE2QyxJQUFBLGtCQUFBZixDQUFBLENBQUFySSxJQUFBLEtBQUF5RyxDQUFBLEdBQUF3QixDQUFBLEVBQUExQixDQUFBLENBQUE4QyxNQUFBLFlBQUE5QyxDQUFBLENBQUFxQixHQUFBLEdBQUFTLENBQUEsQ0FBQVQsR0FBQSxtQkFBQTJCLG9CQUFBOUUsQ0FBQSxFQUFBMkIsQ0FBQSxRQUFBRyxDQUFBLEdBQUFILENBQUEsQ0FBQWlELE1BQUEsRUFBQTVDLENBQUEsR0FBQWhDLENBQUEsQ0FBQXFDLFFBQUEsQ0FBQVAsQ0FBQSxPQUFBRSxDQUFBLEtBQUFOLENBQUEsU0FBQUMsQ0FBQSxDQUFBa0QsUUFBQSxxQkFBQS9DLENBQUEsSUFBQTlCLENBQUEsQ0FBQXFDLFFBQUEsZUFBQVYsQ0FBQSxDQUFBaUQsTUFBQSxhQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBekIsQ0FBQSxFQUFBb0QsbUJBQUEsQ0FBQTlFLENBQUEsRUFBQTJCLENBQUEsZUFBQUEsQ0FBQSxDQUFBaUQsTUFBQSxrQkFBQTlDLENBQUEsS0FBQUgsQ0FBQSxDQUFBaUQsTUFBQSxZQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxPQUFBZ0MsU0FBQSx1Q0FBQXJELENBQUEsaUJBQUEyQixDQUFBLE1BQUF2QixDQUFBLEdBQUFnQixRQUFBLENBQUFsQixDQUFBLEVBQUFoQyxDQUFBLENBQUFxQyxRQUFBLEVBQUFWLENBQUEsQ0FBQXdCLEdBQUEsbUJBQUFqQixDQUFBLENBQUEzRyxJQUFBLFNBQUFvRyxDQUFBLENBQUFpRCxNQUFBLFlBQUFqRCxDQUFBLENBQUF3QixHQUFBLEdBQUFqQixDQUFBLENBQUFpQixHQUFBLEVBQUF4QixDQUFBLENBQUFrRCxRQUFBLFNBQUFwQixDQUFBLE1BQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQWlCLEdBQUEsU0FBQWYsQ0FBQSxHQUFBQSxDQUFBLENBQUF1QyxJQUFBLElBQUFoRCxDQUFBLENBQUEzQixDQUFBLENBQUFvRixVQUFBLElBQUFoRCxDQUFBLENBQUF0QyxLQUFBLEVBQUE2QixDQUFBLENBQUEwRCxJQUFBLEdBQUFyRixDQUFBLENBQUFzRixPQUFBLGVBQUEzRCxDQUFBLENBQUFpRCxNQUFBLEtBQUFqRCxDQUFBLENBQUFpRCxNQUFBLFdBQUFqRCxDQUFBLENBQUF3QixHQUFBLEdBQUF6QixDQUFBLEdBQUFDLENBQUEsQ0FBQWtELFFBQUEsU0FBQXBCLENBQUEsSUFBQXJCLENBQUEsSUFBQVQsQ0FBQSxDQUFBaUQsTUFBQSxZQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxPQUFBZ0MsU0FBQSxzQ0FBQXhELENBQUEsQ0FBQWtELFFBQUEsU0FBQXBCLENBQUEsY0FBQThCLGFBQUE3RCxDQUFBLFFBQUExQixDQUFBLEtBQUF3RixNQUFBLEVBQUE5RCxDQUFBLFlBQUFBLENBQUEsS0FBQTFCLENBQUEsQ0FBQXlGLFFBQUEsR0FBQS9ELENBQUEsV0FBQUEsQ0FBQSxLQUFBMUIsQ0FBQSxDQUFBMEYsVUFBQSxHQUFBaEUsQ0FBQSxLQUFBMUIsQ0FBQSxDQUFBMkYsUUFBQSxHQUFBakUsQ0FBQSxXQUFBa0UsVUFBQSxDQUFBQyxJQUFBLENBQUE3RixDQUFBLGNBQUE4RixjQUFBcEUsQ0FBQSxRQUFBMUIsQ0FBQSxHQUFBMEIsQ0FBQSxDQUFBcUUsVUFBQSxRQUFBL0YsQ0FBQSxDQUFBekUsSUFBQSxvQkFBQXlFLENBQUEsQ0FBQW1ELEdBQUEsRUFBQXpCLENBQUEsQ0FBQXFFLFVBQUEsR0FBQS9GLENBQUEsYUFBQWdELFFBQUF0QixDQUFBLFNBQUFrRSxVQUFBLE1BQUFKLE1BQUEsYUFBQTlELENBQUEsQ0FBQXdDLE9BQUEsQ0FBQXFCLFlBQUEsY0FBQVMsS0FBQSxpQkFBQTdMLE9BQUE2RixDQUFBLFFBQUFBLENBQUEsV0FBQUEsQ0FBQSxRQUFBMkIsQ0FBQSxHQUFBM0IsQ0FBQSxDQUFBb0MsQ0FBQSxPQUFBVCxDQUFBLFNBQUFBLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXBELENBQUEsNEJBQUFBLENBQUEsQ0FBQXFGLElBQUEsU0FBQXJGLENBQUEsT0FBQWlHLEtBQUEsQ0FBQWpHLENBQUEsQ0FBQUwsTUFBQSxTQUFBcUMsQ0FBQSxPQUFBRSxDQUFBLFlBQUFtRCxLQUFBLGFBQUFyRCxDQUFBLEdBQUFoQyxDQUFBLENBQUFMLE1BQUEsT0FBQW1DLENBQUEsQ0FBQXNCLElBQUEsQ0FBQXBELENBQUEsRUFBQWdDLENBQUEsVUFBQXFELElBQUEsQ0FBQXZGLEtBQUEsR0FBQUUsQ0FBQSxDQUFBZ0MsQ0FBQSxHQUFBcUQsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsU0FBQUEsSUFBQSxDQUFBdkYsS0FBQSxHQUFBNEIsQ0FBQSxFQUFBMkQsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsWUFBQW5ELENBQUEsQ0FBQW1ELElBQUEsR0FBQW5ELENBQUEsZ0JBQUFpRCxTQUFBLENBQUFiLE9BQUEsQ0FBQXRFLENBQUEsa0NBQUEwRCxpQkFBQSxDQUFBN0IsU0FBQSxHQUFBOEIsMEJBQUEsRUFBQTNCLENBQUEsQ0FBQWdDLENBQUEsbUJBQUFsRSxLQUFBLEVBQUE2RCwwQkFBQSxFQUFBZixZQUFBLFNBQUFaLENBQUEsQ0FBQTJCLDBCQUFBLG1CQUFBN0QsS0FBQSxFQUFBNEQsaUJBQUEsRUFBQWQsWUFBQSxTQUFBYyxpQkFBQSxDQUFBd0MsV0FBQSxHQUFBeEQsTUFBQSxDQUFBaUIsMEJBQUEsRUFBQW5CLENBQUEsd0JBQUF4QyxDQUFBLENBQUFtRyxtQkFBQSxhQUFBekUsQ0FBQSxRQUFBMUIsQ0FBQSx3QkFBQTBCLENBQUEsSUFBQUEsQ0FBQSxDQUFBMEUsV0FBQSxXQUFBcEcsQ0FBQSxLQUFBQSxDQUFBLEtBQUEwRCxpQkFBQSw2QkFBQTFELENBQUEsQ0FBQWtHLFdBQUEsSUFBQWxHLENBQUEsQ0FBQW5HLElBQUEsT0FBQW1HLENBQUEsQ0FBQXFHLElBQUEsYUFBQTNFLENBQUEsV0FBQUUsTUFBQSxDQUFBMEUsY0FBQSxHQUFBMUUsTUFBQSxDQUFBMEUsY0FBQSxDQUFBNUUsQ0FBQSxFQUFBaUMsMEJBQUEsS0FBQWpDLENBQUEsQ0FBQTZFLFNBQUEsR0FBQTVDLDBCQUFBLEVBQUFqQixNQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEseUJBQUFkLENBQUEsQ0FBQUcsU0FBQSxHQUFBRCxNQUFBLENBQUFtQixNQUFBLENBQUFpQixDQUFBLEdBQUF0QyxDQUFBLEtBQUExQixDQUFBLENBQUF3RyxLQUFBLGFBQUE5RSxDQUFBLGFBQUE4QyxPQUFBLEVBQUE5QyxDQUFBLE9BQUF1QyxxQkFBQSxDQUFBRyxhQUFBLENBQUF2QyxTQUFBLEdBQUFhLE1BQUEsQ0FBQTBCLGFBQUEsQ0FBQXZDLFNBQUEsRUFBQVMsQ0FBQSxpQ0FBQXRDLENBQUEsQ0FBQW9FLGFBQUEsR0FBQUEsYUFBQSxFQUFBcEUsQ0FBQSxDQUFBeUcsS0FBQSxhQUFBL0UsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLGVBQUFBLENBQUEsS0FBQUEsQ0FBQSxHQUFBd0UsT0FBQSxPQUFBdEUsQ0FBQSxPQUFBZ0MsYUFBQSxDQUFBMUUsSUFBQSxDQUFBZ0MsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxHQUFBRSxDQUFBLFVBQUFsQyxDQUFBLENBQUFtRyxtQkFBQSxDQUFBeEUsQ0FBQSxJQUFBUyxDQUFBLEdBQUFBLENBQUEsQ0FBQWlELElBQUEsR0FBQXZILElBQUEsV0FBQTRELENBQUEsV0FBQUEsQ0FBQSxDQUFBaUQsSUFBQSxHQUFBakQsQ0FBQSxDQUFBNUIsS0FBQSxHQUFBc0MsQ0FBQSxDQUFBaUQsSUFBQSxXQUFBcEIscUJBQUEsQ0FBQUQsQ0FBQSxHQUFBdEIsTUFBQSxDQUFBc0IsQ0FBQSxFQUFBeEIsQ0FBQSxnQkFBQUUsTUFBQSxDQUFBc0IsQ0FBQSxFQUFBNUIsQ0FBQSxpQ0FBQU0sTUFBQSxDQUFBc0IsQ0FBQSw2REFBQWhFLENBQUEsQ0FBQTJHLElBQUEsYUFBQWpGLENBQUEsUUFBQTFCLENBQUEsR0FBQTRCLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBQyxDQUFBLGdCQUFBRyxDQUFBLElBQUE5QixDQUFBLEVBQUEyQixDQUFBLENBQUFrRSxJQUFBLENBQUEvRCxDQUFBLFVBQUFILENBQUEsQ0FBQWlGLE9BQUEsYUFBQXZCLEtBQUEsV0FBQTFELENBQUEsQ0FBQWhDLE1BQUEsU0FBQStCLENBQUEsR0FBQUMsQ0FBQSxDQUFBa0YsR0FBQSxRQUFBbkYsQ0FBQSxJQUFBMUIsQ0FBQSxTQUFBcUYsSUFBQSxDQUFBdkYsS0FBQSxHQUFBNEIsQ0FBQSxFQUFBMkQsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsV0FBQUEsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsUUFBQXJGLENBQUEsQ0FBQTdGLE1BQUEsR0FBQUEsTUFBQSxFQUFBNkksT0FBQSxDQUFBbkIsU0FBQSxLQUFBdUUsV0FBQSxFQUFBcEQsT0FBQSxFQUFBZ0QsS0FBQSxXQUFBQSxNQUFBaEcsQ0FBQSxhQUFBOEcsSUFBQSxXQUFBekIsSUFBQSxXQUFBTixJQUFBLFFBQUFDLEtBQUEsR0FBQXRELENBQUEsT0FBQWlELElBQUEsWUFBQUUsUUFBQSxjQUFBRCxNQUFBLGdCQUFBekIsR0FBQSxHQUFBekIsQ0FBQSxPQUFBa0UsVUFBQSxDQUFBMUIsT0FBQSxDQUFBNEIsYUFBQSxJQUFBOUYsQ0FBQSxXQUFBMkIsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBb0YsTUFBQSxPQUFBakYsQ0FBQSxDQUFBc0IsSUFBQSxPQUFBekIsQ0FBQSxNQUFBc0UsS0FBQSxFQUFBdEUsQ0FBQSxDQUFBcUYsS0FBQSxjQUFBckYsQ0FBQSxJQUFBRCxDQUFBLE1BQUF1RixJQUFBLFdBQUFBLEtBQUEsU0FBQXRDLElBQUEsV0FBQWpELENBQUEsUUFBQWtFLFVBQUEsSUFBQUcsVUFBQSxrQkFBQXJFLENBQUEsQ0FBQW5HLElBQUEsUUFBQW1HLENBQUEsQ0FBQXlCLEdBQUEsY0FBQStELElBQUEsS0FBQWpDLGlCQUFBLFdBQUFBLGtCQUFBakYsQ0FBQSxhQUFBMkUsSUFBQSxRQUFBM0UsQ0FBQSxNQUFBMkIsQ0FBQSxrQkFBQXdGLE9BQUFyRixDQUFBLEVBQUFFLENBQUEsV0FBQUksQ0FBQSxDQUFBN0csSUFBQSxZQUFBNkcsQ0FBQSxDQUFBZSxHQUFBLEdBQUFuRCxDQUFBLEVBQUEyQixDQUFBLENBQUEwRCxJQUFBLEdBQUF2RCxDQUFBLEVBQUFFLENBQUEsS0FBQUwsQ0FBQSxDQUFBaUQsTUFBQSxXQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBekIsQ0FBQSxLQUFBTSxDQUFBLGFBQUFBLENBQUEsUUFBQTRELFVBQUEsQ0FBQWpHLE1BQUEsTUFBQXFDLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUEwRCxVQUFBLENBQUE1RCxDQUFBLEdBQUFJLENBQUEsR0FBQUYsQ0FBQSxDQUFBNkQsVUFBQSxpQkFBQTdELENBQUEsQ0FBQXNELE1BQUEsU0FBQTJCLE1BQUEsYUFBQWpGLENBQUEsQ0FBQXNELE1BQUEsU0FBQXNCLElBQUEsUUFBQXhFLENBQUEsR0FBQVIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBbEIsQ0FBQSxlQUFBTSxDQUFBLEdBQUFWLENBQUEsQ0FBQXNCLElBQUEsQ0FBQWxCLENBQUEscUJBQUFJLENBQUEsSUFBQUUsQ0FBQSxhQUFBc0UsSUFBQSxHQUFBNUUsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBMEIsTUFBQSxDQUFBakYsQ0FBQSxDQUFBdUQsUUFBQSxnQkFBQXFCLElBQUEsR0FBQTVFLENBQUEsQ0FBQXdELFVBQUEsU0FBQXlCLE1BQUEsQ0FBQWpGLENBQUEsQ0FBQXdELFVBQUEsY0FBQXBELENBQUEsYUFBQXdFLElBQUEsR0FBQTVFLENBQUEsQ0FBQXVELFFBQUEsU0FBQTBCLE1BQUEsQ0FBQWpGLENBQUEsQ0FBQXVELFFBQUEscUJBQUFqRCxDQUFBLFFBQUFrQyxLQUFBLHFEQUFBb0MsSUFBQSxHQUFBNUUsQ0FBQSxDQUFBd0QsVUFBQSxTQUFBeUIsTUFBQSxDQUFBakYsQ0FBQSxDQUFBd0QsVUFBQSxZQUFBUixNQUFBLFdBQUFBLE9BQUF4RCxDQUFBLEVBQUExQixDQUFBLGFBQUEyQixDQUFBLFFBQUFpRSxVQUFBLENBQUFqRyxNQUFBLE1BQUFnQyxDQUFBLFNBQUFBLENBQUEsUUFBQUssQ0FBQSxRQUFBNEQsVUFBQSxDQUFBakUsQ0FBQSxPQUFBSyxDQUFBLENBQUF3RCxNQUFBLFNBQUFzQixJQUFBLElBQUFoRixDQUFBLENBQUFzQixJQUFBLENBQUFwQixDQUFBLHdCQUFBOEUsSUFBQSxHQUFBOUUsQ0FBQSxDQUFBMEQsVUFBQSxRQUFBeEQsQ0FBQSxHQUFBRixDQUFBLGFBQUFFLENBQUEsaUJBQUFSLENBQUEsbUJBQUFBLENBQUEsS0FBQVEsQ0FBQSxDQUFBc0QsTUFBQSxJQUFBeEYsQ0FBQSxJQUFBQSxDQUFBLElBQUFrQyxDQUFBLENBQUF3RCxVQUFBLEtBQUF4RCxDQUFBLGNBQUFFLENBQUEsR0FBQUYsQ0FBQSxHQUFBQSxDQUFBLENBQUE2RCxVQUFBLGNBQUEzRCxDQUFBLENBQUE3RyxJQUFBLEdBQUFtRyxDQUFBLEVBQUFVLENBQUEsQ0FBQWUsR0FBQSxHQUFBbkQsQ0FBQSxFQUFBa0MsQ0FBQSxTQUFBMEMsTUFBQSxnQkFBQVMsSUFBQSxHQUFBbkQsQ0FBQSxDQUFBd0QsVUFBQSxFQUFBakMsQ0FBQSxTQUFBMkQsUUFBQSxDQUFBaEYsQ0FBQSxNQUFBZ0YsUUFBQSxXQUFBQSxTQUFBMUYsQ0FBQSxFQUFBMUIsQ0FBQSxvQkFBQTBCLENBQUEsQ0FBQW5HLElBQUEsUUFBQW1HLENBQUEsQ0FBQXlCLEdBQUEscUJBQUF6QixDQUFBLENBQUFuRyxJQUFBLG1CQUFBbUcsQ0FBQSxDQUFBbkcsSUFBQSxRQUFBOEosSUFBQSxHQUFBM0QsQ0FBQSxDQUFBeUIsR0FBQSxnQkFBQXpCLENBQUEsQ0FBQW5HLElBQUEsU0FBQTJMLElBQUEsUUFBQS9ELEdBQUEsR0FBQXpCLENBQUEsQ0FBQXlCLEdBQUEsT0FBQXlCLE1BQUEsa0JBQUFTLElBQUEseUJBQUEzRCxDQUFBLENBQUFuRyxJQUFBLElBQUF5RSxDQUFBLFVBQUFxRixJQUFBLEdBQUFyRixDQUFBLEdBQUF5RCxDQUFBLEtBQUE0RCxNQUFBLFdBQUFBLE9BQUEzRixDQUFBLGFBQUExQixDQUFBLFFBQUE0RixVQUFBLENBQUFqRyxNQUFBLE1BQUFLLENBQUEsU0FBQUEsQ0FBQSxRQUFBMkIsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBNUYsQ0FBQSxPQUFBMkIsQ0FBQSxDQUFBK0QsVUFBQSxLQUFBaEUsQ0FBQSxjQUFBMEYsUUFBQSxDQUFBekYsQ0FBQSxDQUFBb0UsVUFBQSxFQUFBcEUsQ0FBQSxDQUFBZ0UsUUFBQSxHQUFBRyxhQUFBLENBQUFuRSxDQUFBLEdBQUE4QixDQUFBLHlCQUFBNkQsT0FBQTVGLENBQUEsYUFBQTFCLENBQUEsUUFBQTRGLFVBQUEsQ0FBQWpHLE1BQUEsTUFBQUssQ0FBQSxTQUFBQSxDQUFBLFFBQUEyQixDQUFBLFFBQUFpRSxVQUFBLENBQUE1RixDQUFBLE9BQUEyQixDQUFBLENBQUE2RCxNQUFBLEtBQUE5RCxDQUFBLFFBQUFJLENBQUEsR0FBQUgsQ0FBQSxDQUFBb0UsVUFBQSxrQkFBQWpFLENBQUEsQ0FBQXZHLElBQUEsUUFBQXlHLENBQUEsR0FBQUYsQ0FBQSxDQUFBcUIsR0FBQSxFQUFBMkMsYUFBQSxDQUFBbkUsQ0FBQSxZQUFBSyxDQUFBLFlBQUEwQyxLQUFBLDhCQUFBNkMsYUFBQSxXQUFBQSxjQUFBdkgsQ0FBQSxFQUFBMkIsQ0FBQSxFQUFBRyxDQUFBLGdCQUFBK0MsUUFBQSxLQUFBeEMsUUFBQSxFQUFBbEksTUFBQSxDQUFBNkYsQ0FBQSxHQUFBb0YsVUFBQSxFQUFBekQsQ0FBQSxFQUFBMkQsT0FBQSxFQUFBeEQsQ0FBQSxvQkFBQThDLE1BQUEsVUFBQXpCLEdBQUEsR0FBQXpCLENBQUEsR0FBQStCLENBQUEsT0FBQXpELENBQUE7QUFBQSxTQUFBd0gsbUJBQUExRixDQUFBLEVBQUFKLENBQUEsRUFBQTFCLENBQUEsRUFBQTJCLENBQUEsRUFBQUssQ0FBQSxFQUFBSSxDQUFBLEVBQUFFLENBQUEsY0FBQUosQ0FBQSxHQUFBSixDQUFBLENBQUFNLENBQUEsRUFBQUUsQ0FBQSxHQUFBRSxDQUFBLEdBQUFOLENBQUEsQ0FBQXBDLEtBQUEsV0FBQWdDLENBQUEsZ0JBQUE5QixDQUFBLENBQUE4QixDQUFBLEtBQUFJLENBQUEsQ0FBQXlDLElBQUEsR0FBQWpELENBQUEsQ0FBQWMsQ0FBQSxJQUFBa0UsT0FBQSxDQUFBbkMsT0FBQSxDQUFBL0IsQ0FBQSxFQUFBMUUsSUFBQSxDQUFBNkQsQ0FBQSxFQUFBSyxDQUFBO0FBQUEsU0FBQXlGLGtCQUFBM0YsQ0FBQSw2QkFBQUosQ0FBQSxTQUFBMUIsQ0FBQSxHQUFBMEgsU0FBQSxhQUFBaEIsT0FBQSxXQUFBL0UsQ0FBQSxFQUFBSyxDQUFBLFFBQUFJLENBQUEsR0FBQU4sQ0FBQSxDQUFBNkYsS0FBQSxDQUFBakcsQ0FBQSxFQUFBMUIsQ0FBQSxZQUFBNEgsTUFBQTlGLENBQUEsSUFBQTBGLGtCQUFBLENBQUFwRixDQUFBLEVBQUFULENBQUEsRUFBQUssQ0FBQSxFQUFBNEYsS0FBQSxFQUFBQyxNQUFBLFVBQUEvRixDQUFBLGNBQUErRixPQUFBL0YsQ0FBQSxJQUFBMEYsa0JBQUEsQ0FBQXBGLENBQUEsRUFBQVQsQ0FBQSxFQUFBSyxDQUFBLEVBQUE0RixLQUFBLEVBQUFDLE1BQUEsV0FBQS9GLENBQUEsS0FBQThGLEtBQUE7QUFEK0U7QUFDM0I7QUFFN0MsSUFBTUkseUJBQXlCO0VBQUEsSUFBQUMsSUFBQSxHQUFBUixpQkFBQSxjQUFBaEcsbUJBQUEsR0FBQTRFLElBQUEsQ0FBRyxTQUFBNkIsUUFBT0MsT0FBZSxFQUFFaE4sT0FBZTtJQUFBLE9BQUFzRyxtQkFBQSxHQUFBL0IsSUFBQSxVQUFBMEksU0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUF2QixJQUFBLEdBQUF1QixRQUFBLENBQUFoRCxJQUFBO1FBQUE7VUFBQWdELFFBQUEsQ0FBQWhELElBQUE7VUFBQSxPQUMvRHlDLGtFQUFhLElBQUFqTCxNQUFBLENBQ25Ca0wsbURBQUcsQ0FBQ08sTUFBTSxlQUFBekwsTUFBQSxDQUFZc0wsT0FBTyxlQUFBdEwsTUFBQSxDQUFZMUIsT0FBTyxDQUN2RCxDQUFDO1FBQUE7VUFBQSxPQUFBa04sUUFBQSxDQUFBbkQsTUFBQSxXQUFBbUQsUUFBQSxDQUFBdEQsSUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBc0QsUUFBQSxDQUFBcEIsSUFBQTtNQUFBO0lBQUEsR0FBQWlCLE9BQUE7RUFBQSxDQUNKO0VBQUEsZ0JBSllGLHlCQUF5QkEsQ0FBQU8sRUFBQSxFQUFBQyxHQUFBO0lBQUEsT0FBQVAsSUFBQSxDQUFBTixLQUFBLE9BQUFELFNBQUE7RUFBQTtBQUFBLEdBSXJDO0FBSU0sSUFBTWUsa0JBQWtCO0VBQUEsSUFBQUMsS0FBQSxHQUFBakIsaUJBQUEsY0FBQWhHLG1CQUFBLEdBQUE0RSxJQUFBLENBQUcsU0FBQXNDLFNBQU9DLE1BQWMsRUFBRXpOLE9BQWU7SUFBQSxPQUFBc0csbUJBQUEsR0FBQS9CLElBQUEsVUFBQW1KLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBaEMsSUFBQSxHQUFBZ0MsU0FBQSxDQUFBekQsSUFBQTtRQUFBO1VBQUF5RCxTQUFBLENBQUF6RCxJQUFBO1VBQUEsT0FDdkR5QyxrRUFBYSxJQUFBakwsTUFBQSxDQUNuQmtMLG1EQUFHLENBQUNnQixhQUFhLGNBQUFsTSxNQUFBLENBQVcrTCxNQUFNLGVBQUEvTCxNQUFBLENBQVkxQixPQUFPLENBQzVELENBQUM7UUFBQTtVQUFBLE9BQUEyTixTQUFBLENBQUE1RCxNQUFBLFdBQUE0RCxTQUFBLENBQUEvRCxJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUErRCxTQUFBLENBQUE3QixJQUFBO01BQUE7SUFBQSxHQUFBMEIsUUFBQTtFQUFBLENBQ0o7RUFBQSxnQkFKWUYsa0JBQWtCQSxDQUFBTyxHQUFBLEVBQUFDLEdBQUE7SUFBQSxPQUFBUCxLQUFBLENBQUFmLEtBQUEsT0FBQUQsU0FBQTtFQUFBO0FBQUEsR0FJOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytDQ2RELHFKQUFBakcsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQXpCLENBQUEsU0FBQTBCLENBQUEsRUFBQTFCLENBQUEsT0FBQTJCLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQTFCLENBQUEsRUFBQTJCLENBQUEsSUFBQUQsQ0FBQSxDQUFBMUIsQ0FBQSxJQUFBMkIsQ0FBQSxDQUFBN0IsS0FBQSxLQUFBb0MsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFoQixDQUFBLEVBQUExQixDQUFBLEVBQUEyQixDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUExQixDQUFBLElBQUFGLEtBQUEsRUFBQTZCLENBQUEsRUFBQWdCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFuQixDQUFBLENBQUExQixDQUFBLFdBQUEwQyxNQUFBLG1CQUFBaEIsQ0FBQSxJQUFBZ0IsTUFBQSxZQUFBQSxPQUFBaEIsQ0FBQSxFQUFBMUIsQ0FBQSxFQUFBMkIsQ0FBQSxXQUFBRCxDQUFBLENBQUExQixDQUFBLElBQUEyQixDQUFBLGdCQUFBakMsS0FBQWdDLENBQUEsRUFBQTFCLENBQUEsRUFBQTJCLENBQUEsRUFBQUcsQ0FBQSxRQUFBSSxDQUFBLEdBQUFsQyxDQUFBLElBQUFBLENBQUEsQ0FBQTZCLFNBQUEsWUFBQWlCLFNBQUEsR0FBQTlDLENBQUEsR0FBQThDLFNBQUEsRUFBQVYsQ0FBQSxHQUFBUixNQUFBLENBQUFtQixNQUFBLENBQUFiLENBQUEsQ0FBQUwsU0FBQSxHQUFBUyxDQUFBLE9BQUFVLE9BQUEsQ0FBQWxCLENBQUEsZ0JBQUFFLENBQUEsQ0FBQUksQ0FBQSxlQUFBdEMsS0FBQSxFQUFBbUQsZ0JBQUEsQ0FBQXZCLENBQUEsRUFBQUMsQ0FBQSxFQUFBVyxDQUFBLE1BQUFGLENBQUEsYUFBQWMsU0FBQXhCLENBQUEsRUFBQTFCLENBQUEsRUFBQTJCLENBQUEsbUJBQUFwRyxJQUFBLFlBQUE0SCxHQUFBLEVBQUF6QixDQUFBLENBQUEwQixJQUFBLENBQUFwRCxDQUFBLEVBQUEyQixDQUFBLGNBQUFELENBQUEsYUFBQW5HLElBQUEsV0FBQTRILEdBQUEsRUFBQXpCLENBQUEsUUFBQTFCLENBQUEsQ0FBQU4sSUFBQSxHQUFBQSxJQUFBLE1BQUEyRCxDQUFBLHFCQUFBQyxDQUFBLHFCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBWCxVQUFBLGNBQUFZLGtCQUFBLGNBQUFDLDJCQUFBLFNBQUFDLENBQUEsT0FBQWxCLE1BQUEsQ0FBQWtCLENBQUEsRUFBQXhCLENBQUEscUNBQUF5QixDQUFBLEdBQUFqQyxNQUFBLENBQUFrQyxjQUFBLEVBQUFDLENBQUEsR0FBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFBLENBQUEsQ0FBQTFKLE1BQUEsUUFBQTRKLENBQUEsSUFBQUEsQ0FBQSxLQUFBcEMsQ0FBQSxJQUFBRyxDQUFBLENBQUFzQixJQUFBLENBQUFXLENBQUEsRUFBQTNCLENBQUEsTUFBQXdCLENBQUEsR0FBQUcsQ0FBQSxPQUFBQyxDQUFBLEdBQUFMLDBCQUFBLENBQUE5QixTQUFBLEdBQUFpQixTQUFBLENBQUFqQixTQUFBLEdBQUFELE1BQUEsQ0FBQW1CLE1BQUEsQ0FBQWEsQ0FBQSxZQUFBSyxzQkFBQXZDLENBQUEsZ0NBQUF3QyxPQUFBLFdBQUFsRSxDQUFBLElBQUEwQyxNQUFBLENBQUFoQixDQUFBLEVBQUExQixDQUFBLFlBQUEwQixDQUFBLGdCQUFBeUMsT0FBQSxDQUFBbkUsQ0FBQSxFQUFBMEIsQ0FBQSxzQkFBQTBDLGNBQUExQyxDQUFBLEVBQUExQixDQUFBLGFBQUFxRSxPQUFBMUMsQ0FBQSxFQUFBSyxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBRSxDQUFBLEdBQUFZLFFBQUEsQ0FBQXhCLENBQUEsQ0FBQUMsQ0FBQSxHQUFBRCxDQUFBLEVBQUFNLENBQUEsbUJBQUFNLENBQUEsQ0FBQS9HLElBQUEsUUFBQWlILENBQUEsR0FBQUYsQ0FBQSxDQUFBYSxHQUFBLEVBQUFFLENBQUEsR0FBQWIsQ0FBQSxDQUFBMUMsS0FBQSxTQUFBdUQsQ0FBQSxnQkFBQWlCLE9BQUEsQ0FBQWpCLENBQUEsS0FBQXZCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsQ0FBQSxlQUFBckQsQ0FBQSxDQUFBdUUsT0FBQSxDQUFBbEIsQ0FBQSxDQUFBbUIsT0FBQSxFQUFBMUcsSUFBQSxXQUFBNEQsQ0FBQSxJQUFBMkMsTUFBQSxTQUFBM0MsQ0FBQSxFQUFBUSxDQUFBLEVBQUFFLENBQUEsZ0JBQUFWLENBQUEsSUFBQTJDLE1BQUEsVUFBQTNDLENBQUEsRUFBQVEsQ0FBQSxFQUFBRSxDQUFBLFFBQUFwQyxDQUFBLENBQUF1RSxPQUFBLENBQUFsQixDQUFBLEVBQUF2RixJQUFBLFdBQUE0RCxDQUFBLElBQUFjLENBQUEsQ0FBQTFDLEtBQUEsR0FBQTRCLENBQUEsRUFBQVEsQ0FBQSxDQUFBTSxDQUFBLGdCQUFBZCxDQUFBLFdBQUEyQyxNQUFBLFVBQUEzQyxDQUFBLEVBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLENBQUFFLENBQUEsQ0FBQWEsR0FBQSxTQUFBeEIsQ0FBQSxFQUFBSyxDQUFBLG9CQUFBbEMsS0FBQSxXQUFBQSxNQUFBNEIsQ0FBQSxFQUFBSSxDQUFBLGFBQUEyQywyQkFBQSxlQUFBekUsQ0FBQSxXQUFBQSxDQUFBLEVBQUEyQixDQUFBLElBQUEwQyxNQUFBLENBQUEzQyxDQUFBLEVBQUFJLENBQUEsRUFBQTlCLENBQUEsRUFBQTJCLENBQUEsZ0JBQUFBLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBLENBQUE3RCxJQUFBLENBQUEyRywwQkFBQSxFQUFBQSwwQkFBQSxJQUFBQSwwQkFBQSxxQkFBQXhCLGlCQUFBakQsQ0FBQSxFQUFBMkIsQ0FBQSxFQUFBRyxDQUFBLFFBQUFFLENBQUEsR0FBQXFCLENBQUEsbUJBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUosQ0FBQSxLQUFBdUIsQ0FBQSxRQUFBbUIsS0FBQSxzQ0FBQTFDLENBQUEsS0FBQXdCLENBQUEsb0JBQUF0QixDQUFBLFFBQUFFLENBQUEsV0FBQXRDLEtBQUEsRUFBQTRCLENBQUEsRUFBQWlELElBQUEsZUFBQTdDLENBQUEsQ0FBQThDLE1BQUEsR0FBQTFDLENBQUEsRUFBQUosQ0FBQSxDQUFBcUIsR0FBQSxHQUFBZixDQUFBLFVBQUFFLENBQUEsR0FBQVIsQ0FBQSxDQUFBK0MsUUFBQSxNQUFBdkMsQ0FBQSxRQUFBRSxDQUFBLEdBQUFzQyxtQkFBQSxDQUFBeEMsQ0FBQSxFQUFBUixDQUFBLE9BQUFVLENBQUEsUUFBQUEsQ0FBQSxLQUFBaUIsQ0FBQSxtQkFBQWpCLENBQUEscUJBQUFWLENBQUEsQ0FBQThDLE1BQUEsRUFBQTlDLENBQUEsQ0FBQWlELElBQUEsR0FBQWpELENBQUEsQ0FBQWtELEtBQUEsR0FBQWxELENBQUEsQ0FBQXFCLEdBQUEsc0JBQUFyQixDQUFBLENBQUE4QyxNQUFBLFFBQUE1QyxDQUFBLEtBQUFxQixDQUFBLFFBQUFyQixDQUFBLEdBQUF3QixDQUFBLEVBQUExQixDQUFBLENBQUFxQixHQUFBLEVBQUFyQixDQUFBLENBQUFtRCxpQkFBQSxDQUFBbkQsQ0FBQSxDQUFBcUIsR0FBQSx1QkFBQXJCLENBQUEsQ0FBQThDLE1BQUEsSUFBQTlDLENBQUEsQ0FBQW9ELE1BQUEsV0FBQXBELENBQUEsQ0FBQXFCLEdBQUEsR0FBQW5CLENBQUEsR0FBQXVCLENBQUEsTUFBQUssQ0FBQSxHQUFBVixRQUFBLENBQUFsRCxDQUFBLEVBQUEyQixDQUFBLEVBQUFHLENBQUEsb0JBQUE4QixDQUFBLENBQUFySSxJQUFBLFFBQUF5RyxDQUFBLEdBQUFGLENBQUEsQ0FBQTZDLElBQUEsR0FBQW5CLENBQUEsR0FBQUYsQ0FBQSxFQUFBTSxDQUFBLENBQUFULEdBQUEsS0FBQU0sQ0FBQSxxQkFBQTNELEtBQUEsRUFBQThELENBQUEsQ0FBQVQsR0FBQSxFQUFBd0IsSUFBQSxFQUFBN0MsQ0FBQSxDQUFBNkMsSUFBQSxrQkFBQWYsQ0FBQSxDQUFBckksSUFBQSxLQUFBeUcsQ0FBQSxHQUFBd0IsQ0FBQSxFQUFBMUIsQ0FBQSxDQUFBOEMsTUFBQSxZQUFBOUMsQ0FBQSxDQUFBcUIsR0FBQSxHQUFBUyxDQUFBLENBQUFULEdBQUEsbUJBQUEyQixvQkFBQTlFLENBQUEsRUFBQTJCLENBQUEsUUFBQUcsQ0FBQSxHQUFBSCxDQUFBLENBQUFpRCxNQUFBLEVBQUE1QyxDQUFBLEdBQUFoQyxDQUFBLENBQUFxQyxRQUFBLENBQUFQLENBQUEsT0FBQUUsQ0FBQSxLQUFBTixDQUFBLFNBQUFDLENBQUEsQ0FBQWtELFFBQUEscUJBQUEvQyxDQUFBLElBQUE5QixDQUFBLENBQUFxQyxRQUFBLGVBQUFWLENBQUEsQ0FBQWlELE1BQUEsYUFBQWpELENBQUEsQ0FBQXdCLEdBQUEsR0FBQXpCLENBQUEsRUFBQW9ELG1CQUFBLENBQUE5RSxDQUFBLEVBQUEyQixDQUFBLGVBQUFBLENBQUEsQ0FBQWlELE1BQUEsa0JBQUE5QyxDQUFBLEtBQUFILENBQUEsQ0FBQWlELE1BQUEsWUFBQWpELENBQUEsQ0FBQXdCLEdBQUEsT0FBQWdDLFNBQUEsdUNBQUFyRCxDQUFBLGlCQUFBMkIsQ0FBQSxNQUFBdkIsQ0FBQSxHQUFBZ0IsUUFBQSxDQUFBbEIsQ0FBQSxFQUFBaEMsQ0FBQSxDQUFBcUMsUUFBQSxFQUFBVixDQUFBLENBQUF3QixHQUFBLG1CQUFBakIsQ0FBQSxDQUFBM0csSUFBQSxTQUFBb0csQ0FBQSxDQUFBaUQsTUFBQSxZQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBakIsQ0FBQSxDQUFBaUIsR0FBQSxFQUFBeEIsQ0FBQSxDQUFBa0QsUUFBQSxTQUFBcEIsQ0FBQSxNQUFBckIsQ0FBQSxHQUFBRixDQUFBLENBQUFpQixHQUFBLFNBQUFmLENBQUEsR0FBQUEsQ0FBQSxDQUFBdUMsSUFBQSxJQUFBaEQsQ0FBQSxDQUFBM0IsQ0FBQSxDQUFBb0YsVUFBQSxJQUFBaEQsQ0FBQSxDQUFBdEMsS0FBQSxFQUFBNkIsQ0FBQSxDQUFBMEQsSUFBQSxHQUFBckYsQ0FBQSxDQUFBc0YsT0FBQSxlQUFBM0QsQ0FBQSxDQUFBaUQsTUFBQSxLQUFBakQsQ0FBQSxDQUFBaUQsTUFBQSxXQUFBakQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBekIsQ0FBQSxHQUFBQyxDQUFBLENBQUFrRCxRQUFBLFNBQUFwQixDQUFBLElBQUFyQixDQUFBLElBQUFULENBQUEsQ0FBQWlELE1BQUEsWUFBQWpELENBQUEsQ0FBQXdCLEdBQUEsT0FBQWdDLFNBQUEsc0NBQUF4RCxDQUFBLENBQUFrRCxRQUFBLFNBQUFwQixDQUFBLGNBQUE4QixhQUFBN0QsQ0FBQSxRQUFBMUIsQ0FBQSxLQUFBd0YsTUFBQSxFQUFBOUQsQ0FBQSxZQUFBQSxDQUFBLEtBQUExQixDQUFBLENBQUF5RixRQUFBLEdBQUEvRCxDQUFBLFdBQUFBLENBQUEsS0FBQTFCLENBQUEsQ0FBQTBGLFVBQUEsR0FBQWhFLENBQUEsS0FBQTFCLENBQUEsQ0FBQTJGLFFBQUEsR0FBQWpFLENBQUEsV0FBQWtFLFVBQUEsQ0FBQUMsSUFBQSxDQUFBN0YsQ0FBQSxjQUFBOEYsY0FBQXBFLENBQUEsUUFBQTFCLENBQUEsR0FBQTBCLENBQUEsQ0FBQXFFLFVBQUEsUUFBQS9GLENBQUEsQ0FBQXpFLElBQUEsb0JBQUF5RSxDQUFBLENBQUFtRCxHQUFBLEVBQUF6QixDQUFBLENBQUFxRSxVQUFBLEdBQUEvRixDQUFBLGFBQUFnRCxRQUFBdEIsQ0FBQSxTQUFBa0UsVUFBQSxNQUFBSixNQUFBLGFBQUE5RCxDQUFBLENBQUF3QyxPQUFBLENBQUFxQixZQUFBLGNBQUFTLEtBQUEsaUJBQUE3TCxPQUFBNkYsQ0FBQSxRQUFBQSxDQUFBLFdBQUFBLENBQUEsUUFBQTJCLENBQUEsR0FBQTNCLENBQUEsQ0FBQW9DLENBQUEsT0FBQVQsQ0FBQSxTQUFBQSxDQUFBLENBQUF5QixJQUFBLENBQUFwRCxDQUFBLDRCQUFBQSxDQUFBLENBQUFxRixJQUFBLFNBQUFyRixDQUFBLE9BQUFpRyxLQUFBLENBQUFqRyxDQUFBLENBQUFMLE1BQUEsU0FBQXFDLENBQUEsT0FBQUUsQ0FBQSxZQUFBbUQsS0FBQSxhQUFBckQsQ0FBQSxHQUFBaEMsQ0FBQSxDQUFBTCxNQUFBLE9BQUFtQyxDQUFBLENBQUFzQixJQUFBLENBQUFwRCxDQUFBLEVBQUFnQyxDQUFBLFVBQUFxRCxJQUFBLENBQUF2RixLQUFBLEdBQUFFLENBQUEsQ0FBQWdDLENBQUEsR0FBQXFELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFNBQUFBLElBQUEsQ0FBQXZGLEtBQUEsR0FBQTRCLENBQUEsRUFBQTJELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFlBQUFuRCxDQUFBLENBQUFtRCxJQUFBLEdBQUFuRCxDQUFBLGdCQUFBaUQsU0FBQSxDQUFBYixPQUFBLENBQUF0RSxDQUFBLGtDQUFBMEQsaUJBQUEsQ0FBQTdCLFNBQUEsR0FBQThCLDBCQUFBLEVBQUEzQixDQUFBLENBQUFnQyxDQUFBLG1CQUFBbEUsS0FBQSxFQUFBNkQsMEJBQUEsRUFBQWYsWUFBQSxTQUFBWixDQUFBLENBQUEyQiwwQkFBQSxtQkFBQTdELEtBQUEsRUFBQTRELGlCQUFBLEVBQUFkLFlBQUEsU0FBQWMsaUJBQUEsQ0FBQXdDLFdBQUEsR0FBQXhELE1BQUEsQ0FBQWlCLDBCQUFBLEVBQUFuQixDQUFBLHdCQUFBeEMsQ0FBQSxDQUFBbUcsbUJBQUEsYUFBQXpFLENBQUEsUUFBQTFCLENBQUEsd0JBQUEwQixDQUFBLElBQUFBLENBQUEsQ0FBQTBFLFdBQUEsV0FBQXBHLENBQUEsS0FBQUEsQ0FBQSxLQUFBMEQsaUJBQUEsNkJBQUExRCxDQUFBLENBQUFrRyxXQUFBLElBQUFsRyxDQUFBLENBQUFuRyxJQUFBLE9BQUFtRyxDQUFBLENBQUFxRyxJQUFBLGFBQUEzRSxDQUFBLFdBQUFFLE1BQUEsQ0FBQTBFLGNBQUEsR0FBQTFFLE1BQUEsQ0FBQTBFLGNBQUEsQ0FBQTVFLENBQUEsRUFBQWlDLDBCQUFBLEtBQUFqQyxDQUFBLENBQUE2RSxTQUFBLEdBQUE1QywwQkFBQSxFQUFBakIsTUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLHlCQUFBZCxDQUFBLENBQUFHLFNBQUEsR0FBQUQsTUFBQSxDQUFBbUIsTUFBQSxDQUFBaUIsQ0FBQSxHQUFBdEMsQ0FBQSxLQUFBMUIsQ0FBQSxDQUFBd0csS0FBQSxhQUFBOUUsQ0FBQSxhQUFBOEMsT0FBQSxFQUFBOUMsQ0FBQSxPQUFBdUMscUJBQUEsQ0FBQUcsYUFBQSxDQUFBdkMsU0FBQSxHQUFBYSxNQUFBLENBQUEwQixhQUFBLENBQUF2QyxTQUFBLEVBQUFTLENBQUEsaUNBQUF0QyxDQUFBLENBQUFvRSxhQUFBLEdBQUFBLGFBQUEsRUFBQXBFLENBQUEsQ0FBQXlHLEtBQUEsYUFBQS9FLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxlQUFBQSxDQUFBLEtBQUFBLENBQUEsR0FBQXdFLE9BQUEsT0FBQXRFLENBQUEsT0FBQWdDLGFBQUEsQ0FBQTFFLElBQUEsQ0FBQWdDLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsR0FBQUUsQ0FBQSxVQUFBbEMsQ0FBQSxDQUFBbUcsbUJBQUEsQ0FBQXhFLENBQUEsSUFBQVMsQ0FBQSxHQUFBQSxDQUFBLENBQUFpRCxJQUFBLEdBQUF2SCxJQUFBLFdBQUE0RCxDQUFBLFdBQUFBLENBQUEsQ0FBQWlELElBQUEsR0FBQWpELENBQUEsQ0FBQTVCLEtBQUEsR0FBQXNDLENBQUEsQ0FBQWlELElBQUEsV0FBQXBCLHFCQUFBLENBQUFELENBQUEsR0FBQXRCLE1BQUEsQ0FBQXNCLENBQUEsRUFBQXhCLENBQUEsZ0JBQUFFLE1BQUEsQ0FBQXNCLENBQUEsRUFBQTVCLENBQUEsaUNBQUFNLE1BQUEsQ0FBQXNCLENBQUEsNkRBQUFoRSxDQUFBLENBQUEyRyxJQUFBLGFBQUFqRixDQUFBLFFBQUExQixDQUFBLEdBQUE0QixNQUFBLENBQUFGLENBQUEsR0FBQUMsQ0FBQSxnQkFBQUcsQ0FBQSxJQUFBOUIsQ0FBQSxFQUFBMkIsQ0FBQSxDQUFBa0UsSUFBQSxDQUFBL0QsQ0FBQSxVQUFBSCxDQUFBLENBQUFpRixPQUFBLGFBQUF2QixLQUFBLFdBQUExRCxDQUFBLENBQUFoQyxNQUFBLFNBQUErQixDQUFBLEdBQUFDLENBQUEsQ0FBQWtGLEdBQUEsUUFBQW5GLENBQUEsSUFBQTFCLENBQUEsU0FBQXFGLElBQUEsQ0FBQXZGLEtBQUEsR0FBQTRCLENBQUEsRUFBQTJELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFdBQUFBLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFFBQUFyRixDQUFBLENBQUE3RixNQUFBLEdBQUFBLE1BQUEsRUFBQTZJLE9BQUEsQ0FBQW5CLFNBQUEsS0FBQXVFLFdBQUEsRUFBQXBELE9BQUEsRUFBQWdELEtBQUEsV0FBQUEsTUFBQWhHLENBQUEsYUFBQThHLElBQUEsV0FBQXpCLElBQUEsV0FBQU4sSUFBQSxRQUFBQyxLQUFBLEdBQUF0RCxDQUFBLE9BQUFpRCxJQUFBLFlBQUFFLFFBQUEsY0FBQUQsTUFBQSxnQkFBQXpCLEdBQUEsR0FBQXpCLENBQUEsT0FBQWtFLFVBQUEsQ0FBQTFCLE9BQUEsQ0FBQTRCLGFBQUEsSUFBQTlGLENBQUEsV0FBQTJCLENBQUEsa0JBQUFBLENBQUEsQ0FBQW9GLE1BQUEsT0FBQWpGLENBQUEsQ0FBQXNCLElBQUEsT0FBQXpCLENBQUEsTUFBQXNFLEtBQUEsRUFBQXRFLENBQUEsQ0FBQXFGLEtBQUEsY0FBQXJGLENBQUEsSUFBQUQsQ0FBQSxNQUFBdUYsSUFBQSxXQUFBQSxLQUFBLFNBQUF0QyxJQUFBLFdBQUFqRCxDQUFBLFFBQUFrRSxVQUFBLElBQUFHLFVBQUEsa0JBQUFyRSxDQUFBLENBQUFuRyxJQUFBLFFBQUFtRyxDQUFBLENBQUF5QixHQUFBLGNBQUErRCxJQUFBLEtBQUFqQyxpQkFBQSxXQUFBQSxrQkFBQWpGLENBQUEsYUFBQTJFLElBQUEsUUFBQTNFLENBQUEsTUFBQTJCLENBQUEsa0JBQUF3RixPQUFBckYsQ0FBQSxFQUFBRSxDQUFBLFdBQUFJLENBQUEsQ0FBQTdHLElBQUEsWUFBQTZHLENBQUEsQ0FBQWUsR0FBQSxHQUFBbkQsQ0FBQSxFQUFBMkIsQ0FBQSxDQUFBMEQsSUFBQSxHQUFBdkQsQ0FBQSxFQUFBRSxDQUFBLEtBQUFMLENBQUEsQ0FBQWlELE1BQUEsV0FBQWpELENBQUEsQ0FBQXdCLEdBQUEsR0FBQXpCLENBQUEsS0FBQU0sQ0FBQSxhQUFBQSxDQUFBLFFBQUE0RCxVQUFBLENBQUFqRyxNQUFBLE1BQUFxQyxDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBMEQsVUFBQSxDQUFBNUQsQ0FBQSxHQUFBSSxDQUFBLEdBQUFGLENBQUEsQ0FBQTZELFVBQUEsaUJBQUE3RCxDQUFBLENBQUFzRCxNQUFBLFNBQUEyQixNQUFBLGFBQUFqRixDQUFBLENBQUFzRCxNQUFBLFNBQUFzQixJQUFBLFFBQUF4RSxDQUFBLEdBQUFSLENBQUEsQ0FBQXNCLElBQUEsQ0FBQWxCLENBQUEsZUFBQU0sQ0FBQSxHQUFBVixDQUFBLENBQUFzQixJQUFBLENBQUFsQixDQUFBLHFCQUFBSSxDQUFBLElBQUFFLENBQUEsYUFBQXNFLElBQUEsR0FBQTVFLENBQUEsQ0FBQXVELFFBQUEsU0FBQTBCLE1BQUEsQ0FBQWpGLENBQUEsQ0FBQXVELFFBQUEsZ0JBQUFxQixJQUFBLEdBQUE1RSxDQUFBLENBQUF3RCxVQUFBLFNBQUF5QixNQUFBLENBQUFqRixDQUFBLENBQUF3RCxVQUFBLGNBQUFwRCxDQUFBLGFBQUF3RSxJQUFBLEdBQUE1RSxDQUFBLENBQUF1RCxRQUFBLFNBQUEwQixNQUFBLENBQUFqRixDQUFBLENBQUF1RCxRQUFBLHFCQUFBakQsQ0FBQSxRQUFBa0MsS0FBQSxxREFBQW9DLElBQUEsR0FBQTVFLENBQUEsQ0FBQXdELFVBQUEsU0FBQXlCLE1BQUEsQ0FBQWpGLENBQUEsQ0FBQXdELFVBQUEsWUFBQVIsTUFBQSxXQUFBQSxPQUFBeEQsQ0FBQSxFQUFBMUIsQ0FBQSxhQUFBMkIsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBakcsTUFBQSxNQUFBZ0MsQ0FBQSxTQUFBQSxDQUFBLFFBQUFLLENBQUEsUUFBQTRELFVBQUEsQ0FBQWpFLENBQUEsT0FBQUssQ0FBQSxDQUFBd0QsTUFBQSxTQUFBc0IsSUFBQSxJQUFBaEYsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBcEIsQ0FBQSx3QkFBQThFLElBQUEsR0FBQTlFLENBQUEsQ0FBQTBELFVBQUEsUUFBQXhELENBQUEsR0FBQUYsQ0FBQSxhQUFBRSxDQUFBLGlCQUFBUixDQUFBLG1CQUFBQSxDQUFBLEtBQUFRLENBQUEsQ0FBQXNELE1BQUEsSUFBQXhGLENBQUEsSUFBQUEsQ0FBQSxJQUFBa0MsQ0FBQSxDQUFBd0QsVUFBQSxLQUFBeEQsQ0FBQSxjQUFBRSxDQUFBLEdBQUFGLENBQUEsR0FBQUEsQ0FBQSxDQUFBNkQsVUFBQSxjQUFBM0QsQ0FBQSxDQUFBN0csSUFBQSxHQUFBbUcsQ0FBQSxFQUFBVSxDQUFBLENBQUFlLEdBQUEsR0FBQW5ELENBQUEsRUFBQWtDLENBQUEsU0FBQTBDLE1BQUEsZ0JBQUFTLElBQUEsR0FBQW5ELENBQUEsQ0FBQXdELFVBQUEsRUFBQWpDLENBQUEsU0FBQTJELFFBQUEsQ0FBQWhGLENBQUEsTUFBQWdGLFFBQUEsV0FBQUEsU0FBQTFGLENBQUEsRUFBQTFCLENBQUEsb0JBQUEwQixDQUFBLENBQUFuRyxJQUFBLFFBQUFtRyxDQUFBLENBQUF5QixHQUFBLHFCQUFBekIsQ0FBQSxDQUFBbkcsSUFBQSxtQkFBQW1HLENBQUEsQ0FBQW5HLElBQUEsUUFBQThKLElBQUEsR0FBQTNELENBQUEsQ0FBQXlCLEdBQUEsZ0JBQUF6QixDQUFBLENBQUFuRyxJQUFBLFNBQUEyTCxJQUFBLFFBQUEvRCxHQUFBLEdBQUF6QixDQUFBLENBQUF5QixHQUFBLE9BQUF5QixNQUFBLGtCQUFBUyxJQUFBLHlCQUFBM0QsQ0FBQSxDQUFBbkcsSUFBQSxJQUFBeUUsQ0FBQSxVQUFBcUYsSUFBQSxHQUFBckYsQ0FBQSxHQUFBeUQsQ0FBQSxLQUFBNEQsTUFBQSxXQUFBQSxPQUFBM0YsQ0FBQSxhQUFBMUIsQ0FBQSxRQUFBNEYsVUFBQSxDQUFBakcsTUFBQSxNQUFBSyxDQUFBLFNBQUFBLENBQUEsUUFBQTJCLENBQUEsUUFBQWlFLFVBQUEsQ0FBQTVGLENBQUEsT0FBQTJCLENBQUEsQ0FBQStELFVBQUEsS0FBQWhFLENBQUEsY0FBQTBGLFFBQUEsQ0FBQXpGLENBQUEsQ0FBQW9FLFVBQUEsRUFBQXBFLENBQUEsQ0FBQWdFLFFBQUEsR0FBQUcsYUFBQSxDQUFBbkUsQ0FBQSxHQUFBOEIsQ0FBQSx5QkFBQTZELE9BQUE1RixDQUFBLGFBQUExQixDQUFBLFFBQUE0RixVQUFBLENBQUFqRyxNQUFBLE1BQUFLLENBQUEsU0FBQUEsQ0FBQSxRQUFBMkIsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBNUYsQ0FBQSxPQUFBMkIsQ0FBQSxDQUFBNkQsTUFBQSxLQUFBOUQsQ0FBQSxRQUFBSSxDQUFBLEdBQUFILENBQUEsQ0FBQW9FLFVBQUEsa0JBQUFqRSxDQUFBLENBQUF2RyxJQUFBLFFBQUF5RyxDQUFBLEdBQUFGLENBQUEsQ0FBQXFCLEdBQUEsRUFBQTJDLGFBQUEsQ0FBQW5FLENBQUEsWUFBQUssQ0FBQSxZQUFBMEMsS0FBQSw4QkFBQTZDLGFBQUEsV0FBQUEsY0FBQXZILENBQUEsRUFBQTJCLENBQUEsRUFBQUcsQ0FBQSxnQkFBQStDLFFBQUEsS0FBQXhDLFFBQUEsRUFBQWxJLE1BQUEsQ0FBQTZGLENBQUEsR0FBQW9GLFVBQUEsRUFBQXpELENBQUEsRUFBQTJELE9BQUEsRUFBQXhELENBQUEsb0JBQUE4QyxNQUFBLFVBQUF6QixHQUFBLEdBQUF6QixDQUFBLEdBQUErQixDQUFBLE9BQUF6RCxDQUFBO0FBQUEsU0FBQXdILG1CQUFBMUYsQ0FBQSxFQUFBSixDQUFBLEVBQUExQixDQUFBLEVBQUEyQixDQUFBLEVBQUFLLENBQUEsRUFBQUksQ0FBQSxFQUFBRSxDQUFBLGNBQUFKLENBQUEsR0FBQUosQ0FBQSxDQUFBTSxDQUFBLEVBQUFFLENBQUEsR0FBQUUsQ0FBQSxHQUFBTixDQUFBLENBQUFwQyxLQUFBLFdBQUFnQyxDQUFBLGdCQUFBOUIsQ0FBQSxDQUFBOEIsQ0FBQSxLQUFBSSxDQUFBLENBQUF5QyxJQUFBLEdBQUFqRCxDQUFBLENBQUFjLENBQUEsSUFBQWtFLE9BQUEsQ0FBQW5DLE9BQUEsQ0FBQS9CLENBQUEsRUFBQTFFLElBQUEsQ0FBQTZELENBQUEsRUFBQUssQ0FBQTtBQUFBLFNBQUF5RixrQkFBQTNGLENBQUEsNkJBQUFKLENBQUEsU0FBQTFCLENBQUEsR0FBQTBILFNBQUEsYUFBQWhCLE9BQUEsV0FBQS9FLENBQUEsRUFBQUssQ0FBQSxRQUFBSSxDQUFBLEdBQUFOLENBQUEsQ0FBQTZGLEtBQUEsQ0FBQWpHLENBQUEsRUFBQTFCLENBQUEsWUFBQTRILE1BQUE5RixDQUFBLElBQUEwRixrQkFBQSxDQUFBcEYsQ0FBQSxFQUFBVCxDQUFBLEVBQUFLLENBQUEsRUFBQTRGLEtBQUEsRUFBQUMsTUFBQSxVQUFBL0YsQ0FBQSxjQUFBK0YsT0FBQS9GLENBQUEsSUFBQTBGLGtCQUFBLENBQUFwRixDQUFBLEVBQUFULENBQUEsRUFBQUssQ0FBQSxFQUFBNEYsS0FBQSxFQUFBQyxNQUFBLFdBQUEvRixDQUFBLEtBQUE4RixLQUFBO0FBQUEsU0FBQTlPLGVBQUE2SSxDQUFBLEVBQUEzQixDQUFBLFdBQUFrSixlQUFBLENBQUF2SCxDQUFBLEtBQUF3SCxxQkFBQSxDQUFBeEgsQ0FBQSxFQUFBM0IsQ0FBQSxLQUFBb0osMkJBQUEsQ0FBQXpILENBQUEsRUFBQTNCLENBQUEsS0FBQXFKLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQWxFLFNBQUE7QUFBQSxTQUFBaUUsNEJBQUF6SCxDQUFBLEVBQUFTLENBQUEsUUFBQVQsQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBMkgsaUJBQUEsQ0FBQTNILENBQUEsRUFBQVMsQ0FBQSxPQUFBVixDQUFBLE1BQUE2SCxRQUFBLENBQUFuRyxJQUFBLENBQUF6QixDQUFBLEVBQUFxRixLQUFBLDZCQUFBdEYsQ0FBQSxJQUFBQyxDQUFBLENBQUF5RSxXQUFBLEtBQUExRSxDQUFBLEdBQUFDLENBQUEsQ0FBQXlFLFdBQUEsQ0FBQXZNLElBQUEsYUFBQTZILENBQUEsY0FBQUEsQ0FBQSxHQUFBOEgsS0FBQSxDQUFBQyxJQUFBLENBQUE5SCxDQUFBLG9CQUFBRCxDQUFBLCtDQUFBZ0ksSUFBQSxDQUFBaEksQ0FBQSxJQUFBNEgsaUJBQUEsQ0FBQTNILENBQUEsRUFBQVMsQ0FBQTtBQUFBLFNBQUFrSCxrQkFBQTNILENBQUEsRUFBQVMsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQVQsQ0FBQSxDQUFBaEMsTUFBQSxNQUFBeUMsQ0FBQSxHQUFBVCxDQUFBLENBQUFoQyxNQUFBLFlBQUFLLENBQUEsTUFBQThCLENBQUEsR0FBQTBILEtBQUEsQ0FBQXBILENBQUEsR0FBQXBDLENBQUEsR0FBQW9DLENBQUEsRUFBQXBDLENBQUEsSUFBQThCLENBQUEsQ0FBQTlCLENBQUEsSUFBQTJCLENBQUEsQ0FBQTNCLENBQUEsVUFBQThCLENBQUE7QUFBQSxTQUFBcUgsc0JBQUF4SCxDQUFBLEVBQUEyQixDQUFBLFFBQUE1QixDQUFBLFdBQUFDLENBQUEsZ0NBQUFRLE1BQUEsSUFBQVIsQ0FBQSxDQUFBUSxNQUFBLENBQUFFLFFBQUEsS0FBQVYsQ0FBQSw0QkFBQUQsQ0FBQSxRQUFBMUIsQ0FBQSxFQUFBOEIsQ0FBQSxFQUFBSSxDQUFBLEVBQUFNLENBQUEsRUFBQUosQ0FBQSxPQUFBbUIsQ0FBQSxPQUFBdkIsQ0FBQSxpQkFBQUUsQ0FBQSxJQUFBUixDQUFBLEdBQUFBLENBQUEsQ0FBQTBCLElBQUEsQ0FBQXpCLENBQUEsR0FBQTBELElBQUEsUUFBQS9CLENBQUEsUUFBQTFCLE1BQUEsQ0FBQUYsQ0FBQSxNQUFBQSxDQUFBLFVBQUE2QixDQUFBLHVCQUFBQSxDQUFBLElBQUF2RCxDQUFBLEdBQUFrQyxDQUFBLENBQUFrQixJQUFBLENBQUExQixDQUFBLEdBQUFpRCxJQUFBLE1BQUF2QyxDQUFBLENBQUF5RCxJQUFBLENBQUE3RixDQUFBLENBQUFGLEtBQUEsR0FBQXNDLENBQUEsQ0FBQXpDLE1BQUEsS0FBQTJELENBQUEsR0FBQUMsQ0FBQSxpQkFBQTVCLENBQUEsSUFBQUssQ0FBQSxPQUFBRixDQUFBLEdBQUFILENBQUEseUJBQUE0QixDQUFBLFlBQUE3QixDQUFBLGVBQUFjLENBQUEsR0FBQWQsQ0FBQSxjQUFBRSxNQUFBLENBQUFZLENBQUEsTUFBQUEsQ0FBQSwyQkFBQVIsQ0FBQSxRQUFBRixDQUFBLGFBQUFNLENBQUE7QUFBQSxTQUFBOEcsZ0JBQUF2SCxDQUFBLFFBQUE2SCxLQUFBLENBQUFHLE9BQUEsQ0FBQWhJLENBQUEsVUFBQUEsQ0FBQTtBQUR3QztBQUVFO0FBRWtEO0FBRTVGLElBQVFpSSxNQUFNLEdBQUFDLHNEQUFBLENBQU5ELE1BQU07QUFFZCxJQUFNRSx3Q0FBd0MsdXlFQWM3QztBQUVELElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUztFQUM3QixJQUFBelEsU0FBQSxHQUE0QzVCLCtDQUFRLENBQUMsY0FBYyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUE3RDBRLGNBQWMsR0FBQXpRLFVBQUE7SUFBRTBRLGlCQUFpQixHQUFBMVEsVUFBQTtFQUN4QyxJQUFBK0MsVUFBQSxHQUFzQzVFLCtDQUFRLENBQUNvUyx3Q0FBd0MsQ0FBQztJQUFBdk4sVUFBQSxHQUFBekQsY0FBQSxDQUFBd0QsVUFBQTtJQUFqRjROLFdBQVcsR0FBQTNOLFVBQUE7SUFBRTROLGNBQWMsR0FBQTVOLFVBQUE7RUFDbEMsSUFBQTZOLFVBQUEsR0FBOEIxUywrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBMlMsVUFBQSxHQUFBdlIsY0FBQSxDQUFBc1IsVUFBQTtJQUF0QzFPLE9BQU8sR0FBQTJPLFVBQUE7SUFBRUMsVUFBVSxHQUFBRCxVQUFBO0VBQzFCLElBQUFFLFVBQUEsR0FBNEM3UywrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBOFMsVUFBQSxHQUFBMVIsY0FBQSxDQUFBeVIsVUFBQTtJQUFwREUsY0FBYyxHQUFBRCxVQUFBO0lBQUVFLGlCQUFpQixHQUFBRixVQUFBO0VBQ3hDLElBQUFHLFVBQUEsR0FBc0RqVCwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBa1QsV0FBQSxHQUFBOVIsY0FBQSxDQUFBNlIsVUFBQTtJQUE5REUsbUJBQW1CLEdBQUFELFdBQUE7SUFBRUUsc0JBQXNCLEdBQUFGLFdBQUE7RUFDbEQsSUFBQUcsV0FBQSxHQUFnQ3JULCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUFzVCxXQUFBLEdBQUFsUyxjQUFBLENBQUFpUyxXQUFBO0lBQXJDRSxRQUFRLEdBQUFELFdBQUE7SUFBRUUsV0FBVyxHQUFBRixXQUFBO0VBRTVCLElBQUEzUyxZQUFBLEdBQWlCVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSztJQUFBLEVBQUM7SUFBakQ2UyxJQUFJLEdBQUE5UyxZQUFBLENBQUo4UyxJQUFJO0VBQ1osSUFBUUMsS0FBSyxHQUFLRCxJQUFJLENBQWRDLEtBQUs7RUFFYixJQUFNQyxZQUFZLEdBQUcsQ0FBQyxjQUFjLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxVQUFVLENBQUM7RUFFakksSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSS9QLElBQXVCLEVBQUs7SUFDckQsSUFBSSxDQUFDMk8sV0FBVyxFQUFFO01BQ2hCLE9BQU9uUSx1REFBQSxDQUFZd1IsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0lBQ3RFO0lBQ0FMLFdBQVcsQ0FBQzNQLElBQUksQ0FBQztJQUNqQm1QLGlCQUFpQixDQUFDLElBQUksQ0FBQztFQUN6QixDQUFDO0VBRUQsSUFBTWMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQSxFQUFTO0lBQy9CZCxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDeEJJLHNCQUFzQixDQUFDLElBQUksQ0FBQztFQUM5QixDQUFDO0VBRUQsSUFBTVcsaUJBQWlCO0lBQUEsSUFBQXhELElBQUEsR0FBQVIsaUJBQUEsY0FBQWhHLG1CQUFBLEdBQUE0RSxJQUFBLENBQUcsU0FBQTZCLFFBQUE7TUFBQSxPQUFBekcsbUJBQUEsR0FBQS9CLElBQUEsVUFBQTBJLFNBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBdkIsSUFBQSxHQUFBdUIsUUFBQSxDQUFBaEQsSUFBQTtVQUFBO1lBQ3hCaUYsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQlEsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1lBQUN6QyxRQUFBLENBQUF2QixJQUFBO1lBQUEsTUFHeEJtRSxRQUFRLEtBQUssTUFBTTtjQUFBNUMsUUFBQSxDQUFBaEQsSUFBQTtjQUFBO1lBQUE7WUFBQWdELFFBQUEsQ0FBQWhELElBQUE7WUFBQSxPQUNmMkMscUZBQXlCLENBQUNvRCxLQUFLLENBQUNoUyxFQUFFLEVBQUU4USxXQUFXLENBQUM7VUFBQTtZQUFBN0IsUUFBQSxDQUFBaEQsSUFBQTtZQUFBO1VBQUE7WUFBQWdELFFBQUEsQ0FBQWhELElBQUE7WUFBQSxPQUVoRG9ELDhFQUFrQixDQUFDdUIsY0FBYyxFQUFFRSxXQUFXLENBQUM7VUFBQTtZQUV2RG5RLHVEQUFBLENBQVlFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztZQUNwRGtRLGNBQWMsQ0FBQ0wsd0NBQXdDLENBQUM7WUFBQ3pCLFFBQUEsQ0FBQWhELElBQUE7WUFBQTtVQUFBO1lBQUFnRCxRQUFBLENBQUF2QixJQUFBO1lBQUF1QixRQUFBLENBQUFxRCxFQUFBLEdBQUFyRCxRQUFBO1lBRXpEdE8sdURBQUEsQ0FBWUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1VBQUM7WUFFbERzUSxVQUFVLENBQUMsS0FBSyxDQUFDO1VBQUM7VUFBQTtZQUFBLE9BQUFqQyxRQUFBLENBQUFwQixJQUFBO1FBQUE7TUFBQSxHQUFBaUIsT0FBQTtJQUFBLENBQ25CO0lBQUEsZ0JBaEJLdUQsaUJBQWlCQSxDQUFBO01BQUEsT0FBQXhELElBQUEsQ0FBQU4sS0FBQSxPQUFBRCxTQUFBO0lBQUE7RUFBQSxHQWdCdEI7RUFFRCxvQkFDRWxRLDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRThFLE9BQU8sRUFBRTtJQUFHO0VBQUUsZ0JBQzFCOUgsMERBQUEsYUFBSSxvQkFBc0IsQ0FBQyxlQUMzQkEsMERBQUE7SUFBS2dELEtBQUssRUFBRTtNQUFFZ0YsWUFBWSxFQUFFO0lBQUc7RUFBRSxnQkFDL0JoSSwwREFBQSxDQUFBbUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDLEVBQUU7RUFBRSxnQkFDbkJwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFLEVBQUc7SUFBQzZRLEVBQUUsRUFBRTtFQUFHLGdCQUN0Qm5VLDBEQUFBLENBQUFxUyxzREFBQTtJQUNFakssV0FBVyxFQUFDLG9CQUFvQjtJQUNoQ0UsS0FBSyxFQUFFa0ssY0FBZTtJQUN0QmpLLFFBQVEsRUFBRWtLLGlCQUFrQjtJQUM1QnpQLEtBQUssRUFBRTtNQUFFcUYsS0FBSyxFQUFFO0lBQUk7RUFBRSxHQUVyQndMLFlBQVksQ0FBQ2hMLEdBQUcsQ0FBQyxVQUFDdUksTUFBTTtJQUFBLG9CQUN2QnBSLDBEQUFBLENBQUNvUyxNQUFNO01BQUN2TCxHQUFHLEVBQUV1SyxNQUFPO01BQUM5SSxLQUFLLEVBQUU4STtJQUFPLEdBQ2hDQSxNQUNLLENBQUM7RUFBQSxDQUNWLENBQ0ssQ0FDSCxDQUFDLGVBQ05wUiwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFLEVBQUc7SUFBQzZRLEVBQUUsRUFBRTtFQUFHLGdCQUN0Qm5VLDBEQUFBLENBQUE0RCxxREFBQSxDQUFPbkQsUUFBUTtJQUNiMkgsV0FBVyxFQUFDLGVBQWU7SUFDM0JFLEtBQUssRUFBRW9LLFdBQVk7SUFDbkJuSyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUttSyxjQUFjLENBQUNuSyxDQUFDLENBQUNDLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDO0lBQUEsQ0FBQztJQUNoRHpFLElBQUksRUFBRTtFQUFHLENBQ1YsQ0FDSSxDQUFDLGVBQ043RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFLEVBQUc7SUFBQzZRLEVBQUUsRUFBRTtFQUFHLGdCQUN0Qm5VLDBEQUFBLENBQUE4RCx1REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVEyUCxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFBQSxDQUFDO0lBQUM1UCxPQUFPLEVBQUVBO0VBQVEsR0FBQyxnQkFFN0UsQ0FDSCxDQUNGLENBQ0YsQ0FBQyxlQUNObEUsMERBQUEsQ0FBQW9VLHFEQUFBO0lBQ0U1TyxLQUFLLEVBQUMseUJBQXlCO0lBQy9CNkQsT0FBTyxFQUFFNEosY0FBZTtJQUN4Qm9CLElBQUksRUFBRUwsa0JBQW1CO0lBQ3pCTSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFwQixpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFBQSxDQUFDO0lBQ3pDcUIsTUFBTSxFQUFDLFNBQVM7SUFDaEJDLFVBQVUsRUFBQztFQUFRLGdCQUVuQnhVLDBEQUFBLENBQUFxRCxtREFBQSxRQUFLLDZDQUFnRCxDQUFDLGVBQ3REckQsMERBQUEseUJBQ0VBLDBEQUFBLGlCQUFRLFVBQWdCLENBQUMsS0FBQyxFQUFDMFMsV0FDMUIsQ0FBQyxlQUNKMVMsMERBQUEseUJBQ0VBLDBEQUFBLGlCQUFRLGNBQW9CLENBQUMsS0FBQyxFQUFDd1MsY0FDOUIsQ0FDRSxDQUFDLGVBQ1J4UywwREFBQSxDQUFBb1UscURBQUE7SUFDRTVPLEtBQUssRUFBQyxvQkFBb0I7SUFDMUI2RCxPQUFPLEVBQUVnSyxtQkFBb0I7SUFDN0JnQixJQUFJLEVBQUVKLGlCQUFrQjtJQUN4QkssUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7TUFBQSxPQUFRaEIsc0JBQXNCLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FBQztJQUM5Q2lCLE1BQU0sRUFBQyxXQUFXO0lBQ2xCQyxVQUFVLEVBQUM7RUFBUSxnQkFFbkJ4VSwwREFBQSxZQUFHLG1GQUFvRixDQUNsRixDQUNKLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWV1UyxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3BJb0I7QUFHSTtBQUUrRTtBQUN2RjtBQUNEO0FBRTlDLElBQU1xQyxxQkFBK0IsR0FBRyxTQUFsQ0EscUJBQStCQSxDQUFBLEVBQVM7RUFDNUMsSUFBTWpVLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBc0VULHdEQUFXLENBQy9FLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDK1QsVUFBVTtJQUFBLENBQ3hDLENBQUM7SUFGT0EsVUFBVSxHQUFBaFUsWUFBQSxDQUFWZ1UsVUFBVTtJQUFFN1Qsb0JBQW9CLEdBQUFILFlBQUEsQ0FBcEJHLG9CQUFvQjtJQUFFOFQsdUJBQXVCLEdBQUFqVSxZQUFBLENBQXZCaVUsdUJBQXVCO0VBR2pFLElBQUE1VCxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDK1QseUZBQXNCLENBQUN4UyxNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4QixRQUFRLEVBQUVpQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdEIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsSUFBSWlULFVBQVUsRUFBRTtNQUNwQnRULElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUV3UyxVQUFVLENBQUN4UyxJQUFJLElBQUksRUFBRTtRQUMzQkMsV0FBVyxFQUFFdVMsVUFBVSxDQUFDdlMsV0FBVyxJQUFJO01BQ3pDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUN1UyxVQUFVLEVBQUV0VCxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUUxQjtFQUNBM0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNlUsdUJBQXVCLElBQUk5UyxPQUFPLEVBQUU7TUFDdkMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCdUIsdURBQUEsQ0FBUUMsS0FBSyxDQUFDeEIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x1Qix1REFBQSxDQUFRRSxPQUFPLENBQUNiLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWhCLFFBQVEsQ0FBQyxjQUFjLENBQUM7TUFDMUI7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDa1UsdUJBQXVCLEVBQUU5VCxvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVwQixRQUFRLENBQUMsQ0FBQzs7RUFFMUU7RUFDQSxJQUFNOEIsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQWtCLEVBQUs7SUFDdkMsSUFBSWYsRUFBRSxFQUFFO01BQ05qQixRQUFRLENBQUNnVSx5RkFBc0IsQ0FBQztRQUFFL1MsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFZ0IsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2xFcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHhCLFFBQVEsQ0FBQzhULHlGQUFzQixDQUFDO1FBQUU3UixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDbERwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWpDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNEIsRUFBRSxHQUFHLGNBQWMsR0FBRyxrQkFBdUIsQ0FBQyxlQUNuRDVCLDBEQUFBLENBQUFtQixvREFBQTtJQUFNSSxJQUFJLEVBQUVBLElBQUs7SUFBQ3dCLE1BQU0sRUFBQyxVQUFVO0lBQUNMLFFBQVEsRUFBRUEsUUFBUztJQUFDTSxLQUFLLEVBQUU7TUFBRUMsUUFBUSxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQVM7RUFBRSxnQkFDcEdsRCwwREFBQSxDQUFBbUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGdDQUFPO0lBQUNuQixJQUFJLEVBQUMsTUFBTTtJQUFDb0IsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLElBQUk7TUFBRUMsT0FBTyxFQUFFO0lBQXNCLENBQUM7RUFBRSxnQkFDL0YzRCwwREFBQSxDQUFBNEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FBQyxlQUNONUQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxzQ0FBUTtJQUFDbkIsSUFBSSxFQUFDO0VBQWEsZ0JBQzFDckMsMERBQUEsQ0FBQ1MsOERBQVE7SUFBQ29ELElBQUksRUFBRTtFQUFFLENBQUUsQ0FDWCxDQUNSLENBQ0YsQ0FBQyxlQUNON0QsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYdEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJLHFCQUNSdkQsMERBQUEsQ0FBQThELHdEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNDLEtBQUs7SUFBQ0MsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFNFE7RUFBd0IsR0FBQyxRQUV6RSxDQUNDLENBQ1IsQ0FBQyxlQUNOOVUsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYdEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJLHFCQUNSdkQsMERBQUEsQ0FBQThELHdEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFM0QsQ0FDQyxDQUNSLENBQ0YsQ0FDRCxDQUNOLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWVnVSxxQkFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdlO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQ2lEO0FBQ2pHO0FBRS9CLElBQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0VBQzNCLElBQU10VSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBc0IsU0FBQSxHQUF3QzVCLCtDQUFRLENBQU0sRUFBRSxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUFsRDhDLFlBQVksR0FBQTdDLFVBQUE7SUFBRThDLGVBQWUsR0FBQTlDLFVBQUE7RUFDcEMsSUFBQStDLFVBQUEsR0FBb0M1RSwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBNkUsVUFBQSxHQUFBekQsY0FBQSxDQUFBd0QsVUFBQTtJQUF6Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBbEUsWUFBQSxHQUE0Q1Qsd0RBQVcsQ0FBQyxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQytULFVBQVU7SUFBQSxFQUFDO0lBQXZGSyxXQUFXLEdBQUFyVSxZQUFBLENBQVhxVSxXQUFXO0lBQUVDLGtCQUFrQixHQUFBdFUsWUFBQSxDQUFsQnNVLGtCQUFrQjtFQUV2Q2xWLGdEQUFTLENBQUMsWUFBTTtJQUNkVSxRQUFRLENBQUNxVSxtRkFBZ0IsQ0FBQyxDQUFDLENBQUM7RUFDOUIsQ0FBQyxFQUFFLENBQUNyVSxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU15RSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSXhELEVBQU8sRUFBSztJQUM5QmpCLFFBQVEsQ0FBQytULHlGQUFzQixDQUFDOVMsRUFBRSxDQUFDLENBQUM7SUFDcENoQixRQUFRLHlCQUFBeUUsTUFBQSxDQUF5QnpELEVBQUUsQ0FBRSxDQUFDO0VBQ3hDLENBQUM7RUFFRCxJQUFNMEQsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkxRCxFQUFPLEVBQUs7SUFDaEM4Qyx1REFBUyxDQUFDO01BQ1JjLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3JCLDJEQUFhLENBQUMsQ0FBQyxjQUFBcUIsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHdEIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFzQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDMUYsUUFBUSxDQUFDb1UseUZBQXNCLENBQUNuVCxFQUFFLENBQUMsQ0FBQyxDQUFDMEUsSUFBSSxDQUFDLFlBQU07WUFDOUM1Qix1REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQvRCxRQUFRLENBQUNxVSxtRkFBZ0IsQ0FBQyxDQUFDLENBQUM7VUFDOUIsQ0FBQyxDQUFDO1VBQ0Z0USx3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRjBCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDM0Isd0RBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTThCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXZCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDeUIsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBekIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTTBCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRUMsR0FBRyxFQUFFLE9BQU87SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXRCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFQyxHQUFHLEVBQUUsTUFBTTtJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFdEIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVDLEdBQUcsRUFBRSxhQUFhO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0V0QixLQUFLLEVBQUUsUUFBUTtJQUNmcUIsR0FBRyxFQUFFLFFBQVE7SUFDYkMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCakgsMERBQUEsQ0FBQWtILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQm5ILDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3NFLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFpQixVQUFVLENBQUM2QixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjVCLDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3FFLHlEQUFjLE1BQUUsQ0FBRTtRQUFDK0MsTUFBTTtRQUFDakQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRbUIsWUFBWSxDQUFDMkIsTUFBTSxDQUFDckYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU15RixZQUFZLEdBQUcsQ0FBQzZOLFdBQVcsSUFBSSxFQUFFLEVBQUU1TixNQUFNLENBQUMsVUFBQ0MsRUFBRTtJQUFBLElBQUFDLFFBQUE7SUFBQSxRQUFBQSxRQUFBLEdBQ2pERCxFQUFFLENBQUNsRixJQUFJLGNBQUFtRixRQUFBLHVCQUFQQSxRQUFBLENBQVNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQzFDLFVBQVUsQ0FBQ3lDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUMzRCxDQUFDO0VBRUQsb0JBQ0V6SCwwREFBQTtJQUFLZ0QsS0FBSyxFQUFFO01BQUUyRSxTQUFTLEVBQUU7SUFBTztFQUFFLGdCQUNoQzNILDBEQUFBLGFBQUksb0VBQWUsQ0FBQyxlQUNwQkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEsb0JBQW9CLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQzFHLENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBMEksc0RBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1o1RSxJQUFJLEVBQUUsVUFBVTtNQUNoQndFLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHdkIsQ0FBQyxFQUFFcEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGK0IsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCaUMsVUFBVSxFQUFFdkIsWUFBWSxDQUFDd0IsR0FBRyxDQUFDLFVBQUN0QixFQUFFLEVBQUV1QixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQ2xDLEdBQUcsRUFBRVUsRUFBRSxDQUFDM0YsRUFBRTtRQUNWa0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQnpHLElBQUksRUFBRWtGLEVBQUUsQ0FBQ2xGO01BQUksR0FDVmtGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnlCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZwSiwwREFBQSxDQUFDb0UseUVBQWE7SUFBQ2lGLE9BQU8sRUFBRThMO0VBQW1CLENBQUUsQ0FDMUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsY0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeklzQjtBQUdJO0FBRXdGO0FBQ2hHO0FBQ0Q7QUFFOUMsSUFBTU0sdUJBQWlDLEdBQUcsU0FBcENBLHVCQUFpQ0EsQ0FBQSxFQUFTO0VBQzlDLElBQU01VSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQTBFVCx3REFBVyxDQUNuRixVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQzBVLFlBQVk7SUFBQSxDQUMxQyxDQUFDO0lBRk9BLFlBQVksR0FBQTNVLFlBQUEsQ0FBWjJVLFlBQVk7SUFBRXhVLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRXlVLHlCQUF5QixHQUFBNVUsWUFBQSxDQUF6QjRVLHlCQUF5QjtFQUdyRSxJQUFBdlUsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjVCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQTlCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQzBVLDhGQUF3QixDQUFDblQsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDeEIsUUFBUSxFQUFFaUIsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXRCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLElBQUk0VCxZQUFZLEVBQUU7TUFDdEJqVSxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFbVQsWUFBWSxDQUFDblQsSUFBSSxJQUFJLEVBQUU7UUFDN0JDLFdBQVcsRUFBRWtULFlBQVksQ0FBQ2xULFdBQVcsSUFBSTtNQUMzQyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDa1QsWUFBWSxFQUFFalUsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFNUI7RUFDQTNCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ3dWLHlCQUF5QixJQUFJelQsT0FBTyxFQUFFO01BQ3pDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QnVCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3hCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMdUIsdURBQUEsQ0FBUUUsT0FBTyxDQUFDYixFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVoQixRQUFRLENBQUMsaUJBQWlCLENBQUM7TUFDN0I7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDNlUseUJBQXlCLEVBQUV6VSxvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVwQixRQUFRLENBQUMsQ0FBQzs7RUFFNUU7RUFDQSxJQUFNOEIsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQW9CLEVBQUs7SUFDekMsSUFBSWYsRUFBRSxFQUFFO01BQ05qQixRQUFRLENBQUMyVSw4RkFBd0IsQ0FBQztRQUFFMVQsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFZ0IsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3BFcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHhCLFFBQVEsQ0FBQ3lVLDhGQUF3QixDQUFDO1FBQUV4UyxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDcERwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWpDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNEIsRUFBRSxHQUFHLHlCQUF5QixHQUFHLDZCQUFrQyxDQUFDLGVBQ3pFNUIsMERBQUEsQ0FBQW1CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDd0IsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR2xELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ25CLElBQUksRUFBQyxNQUFNO0lBQUNvQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjNELDBEQUFBLENBQUE0RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ041RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNuQixJQUFJLEVBQUM7RUFBYSxnQkFDMUNyQywwREFBQSxDQUFDUyw4REFBUTtJQUFDb0QsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ043RCwwREFBQSxDQUFBbUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUV1UjtFQUEwQixHQUFDLFFBRTNFLENBQ0MsQ0FDUixDQUFDLGVBQ056ViwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRTlELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlMlUsdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHYTtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUMwRDtBQUMxRztBQUUvQixJQUFNSyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQVM7RUFDN0IsSUFBTWpWLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFzQixTQUFBLEdBQXdDNUIsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEOEMsWUFBWSxHQUFBN0MsVUFBQTtJQUFFOEMsZUFBZSxHQUFBOUMsVUFBQTtFQUNwQyxJQUFBK0MsVUFBQSxHQUFvQzVFLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUE2RSxVQUFBLEdBQUF6RCxjQUFBLENBQUF3RCxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFsRSxZQUFBLEdBQWdEVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDMFUsWUFBWTtJQUFBLEVBQUM7SUFBN0ZLLGFBQWEsR0FBQWhWLFlBQUEsQ0FBYmdWLGFBQWE7SUFBRUMsb0JBQW9CLEdBQUFqVixZQUFBLENBQXBCaVYsb0JBQW9CO0VBRTNDN1YsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQ2dWLHdGQUFrQixDQUFDLENBQUMsQ0FBQztFQUNoQyxDQUFDLEVBQUUsQ0FBQ2hWLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTXlFLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJeEQsRUFBTyxFQUFLO0lBQzlCakIsUUFBUSxDQUFDMFUsOEZBQXdCLENBQUN6VCxFQUFFLENBQUMsQ0FBQztJQUN0Q2hCLFFBQVEsNEJBQUF5RSxNQUFBLENBQTRCekQsRUFBRSxDQUFFLENBQUM7RUFDM0MsQ0FBQztFQUVELElBQU0wRCxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSTFELEVBQU8sRUFBSztJQUNoQzhDLHVEQUFTLENBQUM7TUFDUmMsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHckIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFxQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUd0QiwyREFBYSxDQUFDLENBQUMsY0FBQXNCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0MxRixRQUFRLENBQUMrVSw4RkFBd0IsQ0FBQzlULEVBQUUsQ0FBQyxDQUFDLENBQUMwRSxJQUFJLENBQUMsWUFBTTtZQUNoRDVCLHVEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RC9ELFFBQVEsQ0FBQ2dWLHdGQUFrQixDQUFDLENBQUMsQ0FBQztVQUNoQyxDQUFDLENBQUM7VUFDRmpSLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDd08sYUFBYSxJQUFJLEVBQUUsRUFBRXZPLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDbkRELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSxzSUFBMEIsQ0FBQyxlQUMvQkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEsdUJBQXVCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQzdHLENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBMEksc0RBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1o1RSxJQUFJLEVBQUUsVUFBVTtNQUNoQndFLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHdkIsQ0FBQyxFQUFFcEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGK0IsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCaUMsVUFBVSxFQUFFdkIsWUFBWSxDQUFDd0IsR0FBRyxDQUFDLFVBQUN0QixFQUFFLEVBQUV1QixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQ2xDLEdBQUcsRUFBRVUsRUFBRSxDQUFDM0YsRUFBRTtRQUNWa0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQnpHLElBQUksRUFBRWtGLEVBQUUsQ0FBQ2xGO01BQUksR0FDVmtGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnlCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZwSiwwREFBQSxDQUFDb0UseUVBQWE7SUFBQ2lGLE9BQU8sRUFBRXlNO0VBQXFCLENBQUUsQ0FDNUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SW9CO0FBR0k7QUFFNEc7QUFDcEg7QUFDRDtBQUU5QyxJQUFNTSw0QkFBc0MsR0FBRyxTQUF6Q0EsNEJBQXNDQSxDQUFBLEVBQVM7RUFDbkQsSUFBTXZWLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBb0ZULHdEQUFXLENBQzdGLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDcVYsaUJBQWlCO0lBQUEsQ0FDL0MsQ0FBQztJQUZPQSxpQkFBaUIsR0FBQXRWLFlBQUEsQ0FBakJzVixpQkFBaUI7SUFBRW5WLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRW9WLDhCQUE4QixHQUFBdlYsWUFBQSxDQUE5QnVWLDhCQUE4QjtFQUcvRSxJQUFBbFYsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjVCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQTlCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQ3FWLHdHQUE2QixDQUFDOVQsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDeEIsUUFBUSxFQUFFaUIsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXRCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLElBQUl1VSxpQkFBaUIsRUFBRTtNQUMzQjVVLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUU4VCxpQkFBaUIsQ0FBQzlULElBQUksSUFBSSxFQUFFO1FBQ2xDQyxXQUFXLEVBQUU2VCxpQkFBaUIsQ0FBQzdULFdBQVcsSUFBSTtNQUNoRCxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDNlQsaUJBQWlCLEVBQUU1VSxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUVqQztFQUNBM0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDbVcsOEJBQThCLElBQUlwVSxPQUFPLEVBQUU7TUFDOUMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCdUIsdURBQUEsQ0FBUUMsS0FBSyxDQUFDeEIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x1Qix1REFBQSxDQUFRRSxPQUFPLENBQUNiLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWhCLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztNQUNsQztJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUN3Viw4QkFBOEIsRUFBRXBWLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXBCLFFBQVEsQ0FBQyxDQUFDOztFQUVqRjtFQUNBLElBQU04QixRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBeUIsRUFBSztJQUM5QyxJQUFJZixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQ3NWLHdHQUE2QixDQUFDO1FBQUVyVSxFQUFFLEVBQUVNLE1BQU0sQ0FBQ04sRUFBRSxDQUFDO1FBQUVnQixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDekVwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDO0lBQ3BCLENBQUMsTUFBTTtNQUNMeEIsUUFBUSxDQUFDb1Ysd0dBQTZCLENBQUM7UUFBRW5ULElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUN6RHBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0lBQ0FGLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbEIsQ0FBQztFQUVELG9CQUNFakMsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0VBLDBEQUFBLGFBQUs0QixFQUFFLEdBQUcsaUJBQWlCLEdBQUcscUJBQTBCLENBQUMsZUFDekQ1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRWtTO0VBQStCLEdBQUMsUUFFaEYsQ0FDQyxDQUNSLENBQUMsZUFDTnBXLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsc0JBQXNCLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFbkUsQ0FDQyxDQUNSLENBQ0YsQ0FDRCxDQUNOLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWVzViw0QkFBNEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdRO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQzhFO0FBQzlIO0FBRS9CLElBQU1LLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUEsRUFBUztFQUNsQyxJQUFNNVYsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBMERULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNxVixpQkFBaUI7SUFBQSxFQUFDO0lBQTVHSyxrQkFBa0IsR0FBQTNWLFlBQUEsQ0FBbEIyVixrQkFBa0I7SUFBRUMseUJBQXlCLEdBQUE1VixZQUFBLENBQXpCNFYseUJBQXlCO0VBRXJEeFcsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQzJWLGtHQUF1QixDQUFDLENBQUMsQ0FBQztFQUNyQyxDQUFDLEVBQUUsQ0FBQzNWLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTXlFLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJeEQsRUFBTyxFQUFLO0lBQzlCakIsUUFBUSxDQUFDcVYsd0dBQTZCLENBQUNwVSxFQUFFLENBQUMsQ0FBQztJQUMzQ2hCLFFBQVEsaUNBQUF5RSxNQUFBLENBQWlDekQsRUFBRSxDQUFFLENBQUM7RUFDaEQsQ0FBQztFQUVELElBQU0wRCxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSTFELEVBQU8sRUFBSztJQUNoQzhDLHVEQUFTLENBQUM7TUFDUmMsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHckIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFxQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUd0QiwyREFBYSxDQUFDLENBQUMsY0FBQXNCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0MxRixRQUFRLENBQUMwVix3R0FBNkIsQ0FBQ3pVLEVBQUUsQ0FBQyxDQUFDLENBQUMwRSxJQUFJLENBQUMsWUFBTTtZQUNyRDVCLHVEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RC9ELFFBQVEsQ0FBQzJWLGtHQUF1QixDQUFDLENBQUMsQ0FBQztVQUNyQyxDQUFDLENBQUM7VUFDRjVSLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDbVAsa0JBQWtCLElBQUksRUFBRSxFQUFFbFAsTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUN4REQsRUFBRSxDQUFDbEYsSUFBSSxjQUFBbUYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMxQyxVQUFVLENBQUN5QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFekgsMERBQUE7SUFBS2dELEtBQUssRUFBRTtNQUFFMkUsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaEMzSCwwREFBQSxhQUFJLHNGQUFrQixDQUFDLGVBQ3ZCQSwwREFBQTtJQUNFZ0QsS0FBSyxFQUFFO01BQ0w0RSxPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGakksMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQXFILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDbkksMERBQUEsQ0FBQTRELHNEQUFBO0lBQ0V3RSxXQUFXLEVBQUMsK0NBQVk7SUFDeEJwRixLQUFLLEVBQUU7TUFBRXFGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJDLEtBQUssRUFBRXRELFVBQVc7SUFDbEJ1RCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUt2RCxhQUFhLENBQUN1RCxDQUFDLENBQUNDLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z0SSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUUssT0FBTyxFQUFFcUMsWUFBYTtJQUFDekMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEL0QsMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXVDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSMUcsMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUN1RSwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSw0QkFBNEIsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDbEgsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUEwSSxzREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWjVFLElBQUksRUFBRSxVQUFVO01BQ2hCd0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUd2QixDQUFDLEVBQUVwQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0YrQixPQUFPLEVBQUVBLE9BQVE7SUFDakJpQyxVQUFVLEVBQUV2QixZQUFZLENBQUN3QixHQUFHLENBQUMsVUFBQ3RCLEVBQUUsRUFBRXVCLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDbEMsR0FBRyxFQUFFVSxFQUFFLENBQUMzRixFQUFFO1FBQ1ZrSCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCekcsSUFBSSxFQUFFa0YsRUFBRSxDQUFDbEY7TUFBSSxHQUNWa0YsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKeUIsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRnBKLDBEQUFBLENBQUNvRSx5RUFBYTtJQUFDaUYsT0FBTyxFQUFFb047RUFBMEIsQ0FBRSxDQUNqRCxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixxQkFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pJZTtBQUdJO0FBRXVFO0FBQy9FO0FBQ0Q7QUFFOUMsSUFBTU0sbUJBQTZCLEdBQUcsU0FBaENBLG1CQUE2QkEsQ0FBQSxFQUFTO0VBQzFDLElBQU1sVyxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQWtFVCx3REFBVyxDQUMzRSxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ2dXLFFBQVE7SUFBQSxDQUN0QyxDQUFDO0lBRk9BLFFBQVEsR0FBQWpXLFlBQUEsQ0FBUmlXLFFBQVE7SUFBRTlWLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRStWLHFCQUFxQixHQUFBbFcsWUFBQSxDQUFyQmtXLHFCQUFxQjtFQUc3RCxJQUFBN1YsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjVCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQTlCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQ2dXLHFGQUFvQixDQUFDelUsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDeEIsUUFBUSxFQUFFaUIsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXRCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLElBQUlrVixRQUFRLEVBQUU7TUFDbEJ2VixJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFeVUsUUFBUSxDQUFDelUsSUFBSSxJQUFJLEVBQUU7UUFDekJDLFdBQVcsRUFBRXdVLFFBQVEsQ0FBQ3hVLFdBQVcsSUFBSTtNQUN2QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDd1UsUUFBUSxFQUFFdlYsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFeEI7RUFDQTNCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQzhXLHFCQUFxQixJQUFJL1UsT0FBTyxFQUFFO01BQ3JDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QnVCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3hCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMdUIsdURBQUEsQ0FBUUUsT0FBTyxDQUFDYixFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVoQixRQUFRLENBQUMsWUFBWSxDQUFDO01BQ3hCO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQ21XLHFCQUFxQixFQUFFL1Ysb0JBQW9CLEVBQUVZLEVBQUUsRUFBRUksT0FBTyxFQUFFcEIsUUFBUSxDQUFDLENBQUM7O0VBRXhFO0VBQ0EsSUFBTThCLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFnQixFQUFLO0lBQ3JDLElBQUlmLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDaVcscUZBQW9CLENBQUM7UUFBRWhWLEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWdCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUNoRXBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x4QixRQUFRLENBQUMrVixxRkFBb0IsQ0FBQztRQUFFOVQsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2hEcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VqQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzRCLEVBQUUsR0FBRyxhQUFhLEdBQUcsaUJBQXNCLENBQUMsZUFDakQ1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRTZTO0VBQXNCLEdBQUMsUUFFdkUsQ0FDQyxDQUNSLENBQUMsZUFDTi9XLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRXpELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlaVcsbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHaUI7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDeUM7QUFDekY7QUFFL0IsSUFBTUssWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztFQUN6QixJQUFNdlcsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBd0NULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNnVyxRQUFRO0lBQUEsRUFBQztJQUFqRkssU0FBUyxHQUFBdFcsWUFBQSxDQUFUc1csU0FBUztJQUFFQyxnQkFBZ0IsR0FBQXZXLFlBQUEsQ0FBaEJ1VyxnQkFBZ0I7RUFFbkNuWCxnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDc1csK0VBQWMsQ0FBQyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxFQUFFLENBQUN0VyxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU15RSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSXhELEVBQU8sRUFBSztJQUM5QmpCLFFBQVEsQ0FBQ2dXLHFGQUFvQixDQUFDL1UsRUFBRSxDQUFDLENBQUM7SUFDbENoQixRQUFRLHVCQUFBeUUsTUFBQSxDQUF1QnpELEVBQUUsQ0FBRSxDQUFDO0VBQ3RDLENBQUM7RUFFRCxJQUFNMEQsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkxRCxFQUFPLEVBQUs7SUFDaEM4Qyx1REFBUyxDQUFDO01BQ1JjLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3JCLDJEQUFhLENBQUMsQ0FBQyxjQUFBcUIsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHdEIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFzQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDMUYsUUFBUSxDQUFDcVcscUZBQW9CLENBQUNwVixFQUFFLENBQUMsQ0FBQyxDQUFDMEUsSUFBSSxDQUFDLFlBQU07WUFDNUM1Qix1REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQvRCxRQUFRLENBQUNzVywrRUFBYyxDQUFDLENBQUMsQ0FBQztVQUM1QixDQUFDLENBQUM7VUFDRnZTLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDOFAsU0FBUyxJQUFJLEVBQUUsRUFBRTdQLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDL0NELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSw4REFBYyxDQUFDLGVBQ25CQSwwREFBQTtJQUNFZ0QsS0FBSyxFQUFFO01BQ0w0RSxPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGakksMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQXFILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDbkksMERBQUEsQ0FBQTRELHNEQUFBO0lBQ0V3RSxXQUFXLEVBQUMsK0NBQVk7SUFDeEJwRixLQUFLLEVBQUU7TUFBRXFGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJDLEtBQUssRUFBRXRELFVBQVc7SUFDbEJ1RCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUt2RCxhQUFhLENBQUN1RCxDQUFDLENBQUNDLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z0SSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUUssT0FBTyxFQUFFcUMsWUFBYTtJQUFDekMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEL0QsMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXVDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSMUcsMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUN1RSwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxrQkFBa0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDeEcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUEwSSxzREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWjVFLElBQUksRUFBRSxVQUFVO01BQ2hCd0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUd2QixDQUFDLEVBQUVwQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0YrQixPQUFPLEVBQUVBLE9BQVE7SUFDakJpQyxVQUFVLEVBQUV2QixZQUFZLENBQUN3QixHQUFHLENBQUMsVUFBQ3RCLEVBQUUsRUFBRXVCLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDbEMsR0FBRyxFQUFFVSxFQUFFLENBQUMzRixFQUFFO1FBQ1ZrSCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCekcsSUFBSSxFQUFFa0YsRUFBRSxDQUFDbEY7TUFBSSxHQUNWa0YsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKeUIsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRnBKLDBEQUFBLENBQUNvRSx5RUFBYTtJQUFDaUYsT0FBTyxFQUFFK047RUFBaUIsQ0FBRSxDQUN4QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixZQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SXdCO0FBR0k7QUFFMkQ7QUFDbkU7QUFDRDtBQUU5QyxJQUFNTSxnQkFBMEIsR0FBRyxTQUE3QkEsZ0JBQTBCQSxDQUFBLEVBQVM7RUFDdkMsSUFBTTdXLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBNERULHdEQUFXLENBQ3JFLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDMlcsS0FBSztJQUFBLENBQ25DLENBQUM7SUFGT0EsS0FBSyxHQUFBNVcsWUFBQSxDQUFMNFcsS0FBSztJQUFFelcsb0JBQW9CLEdBQUFILFlBQUEsQ0FBcEJHLG9CQUFvQjtJQUFFMFcsa0JBQWtCLEdBQUE3VyxZQUFBLENBQWxCNlcsa0JBQWtCO0VBR3ZELElBQUF4VyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDMlcsK0VBQWlCLENBQUNwVixNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4QixRQUFRLEVBQUVpQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdEIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsSUFBSTZWLEtBQUssRUFBRTtNQUNmbFcsSUFBSSxDQUFDYSxjQUFjLENBQUM7UUFDbEJDLElBQUksRUFBRW9WLEtBQUssQ0FBQ3BWLElBQUksSUFBSSxFQUFFO1FBQ3RCQyxXQUFXLEVBQUVtVixLQUFLLENBQUNuVixXQUFXLElBQUk7TUFDcEMsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLEVBQUUsQ0FBQ21WLEtBQUssRUFBRWxXLElBQUksRUFBRUssRUFBRSxDQUFDLENBQUM7O0VBRXJCO0VBQ0EzQixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUN5WCxrQkFBa0IsSUFBSTFWLE9BQU8sRUFBRTtNQUNsQyxJQUFJaEIsb0JBQW9CLEVBQUU7UUFDeEJ1Qix1REFBQSxDQUFRQyxLQUFLLENBQUN4QixvQkFBb0IsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHVCLHVEQUFBLENBQVFFLE9BQU8sQ0FBQ2IsRUFBRSxHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFaEIsUUFBUSxDQUFDLFNBQVMsQ0FBQztNQUNyQjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUM4VyxrQkFBa0IsRUFBRTFXLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXBCLFFBQVEsQ0FBQyxDQUFDOztFQUVyRTtFQUNBLElBQU04QixRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBYSxFQUFLO0lBQ2xDLElBQUlmLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDNFcsK0VBQWlCLENBQUM7UUFBRTNWLEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWdCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUM3RHBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x4QixRQUFRLENBQUMwVywrRUFBaUIsQ0FBQztRQUFFelUsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQzdDcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VqQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzRCLEVBQUUsR0FBRyxhQUFhLEdBQUcsaUJBQXNCLENBQUMsZUFDakQ1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRXdUO0VBQW1CLEdBQUMsUUFFcEUsQ0FDQyxDQUNSLENBQUMsZUFDTjFYLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRXRELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlNFcsZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHb0I7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDNkI7QUFDN0U7QUFFL0IsSUFBTUssU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUEsRUFBUztFQUN0QixJQUFNbFgsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBa0NULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUMyVyxLQUFLO0lBQUEsRUFBQztJQUF4RUssTUFBTSxHQUFBalgsWUFBQSxDQUFOaVgsTUFBTTtJQUFFQyxhQUFhLEdBQUFsWCxZQUFBLENBQWJrWCxhQUFhO0VBRTdCOVgsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQ2lYLHlFQUFXLENBQUMsQ0FBQyxDQUFDO0VBQ3pCLENBQUMsRUFBRSxDQUFDalgsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNeUUsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUl4RCxFQUFPLEVBQUs7SUFDOUJqQixRQUFRLENBQUMyVywrRUFBaUIsQ0FBQzFWLEVBQUUsQ0FBQyxDQUFDO0lBQy9CaEIsUUFBUSxvQkFBQXlFLE1BQUEsQ0FBb0J6RCxFQUFFLENBQUUsQ0FBQztFQUNuQyxDQUFDO0VBRUQsSUFBTTBELFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJMUQsRUFBTyxFQUFLO0lBQ2hDOEMsdURBQVMsQ0FBQztNQUNSYyxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdyQiwyREFBYSxDQUFDLENBQUMsY0FBQXFCLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3RCLDJEQUFhLENBQUMsQ0FBQyxjQUFBc0IsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3QzFGLFFBQVEsQ0FBQ2dYLCtFQUFpQixDQUFDL1YsRUFBRSxDQUFDLENBQUMsQ0FBQzBFLElBQUksQ0FBQyxZQUFNO1lBQ3pDNUIsdURBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEL0QsUUFBUSxDQUFDaVgseUVBQVcsQ0FBQyxDQUFDLENBQUM7VUFDekIsQ0FBQyxDQUFDO1VBQ0ZsVCx3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRjBCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDM0Isd0RBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTThCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXZCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDeUIsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBekIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTTBCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRUMsR0FBRyxFQUFFLE9BQU87SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXRCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFQyxHQUFHLEVBQUUsTUFBTTtJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFdEIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVDLEdBQUcsRUFBRSxhQUFhO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0V0QixLQUFLLEVBQUUsUUFBUTtJQUNmcUIsR0FBRyxFQUFFLFFBQVE7SUFDYkMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCakgsMERBQUEsQ0FBQWtILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQm5ILDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3NFLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFpQixVQUFVLENBQUM2QixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjVCLDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3FFLHlEQUFjLE1BQUUsQ0FBRTtRQUFDK0MsTUFBTTtRQUFDakQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRbUIsWUFBWSxDQUFDMkIsTUFBTSxDQUFDckYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU15RixZQUFZLEdBQUcsQ0FBQ3lRLE1BQU0sSUFBSSxFQUFFLEVBQUV4USxNQUFNLENBQUMsVUFBQ0MsRUFBRTtJQUFBLElBQUFDLFFBQUE7SUFBQSxRQUFBQSxRQUFBLEdBQzVDRCxFQUFFLENBQUNsRixJQUFJLGNBQUFtRixRQUFBLHVCQUFQQSxRQUFBLENBQVNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQzFDLFVBQVUsQ0FBQ3lDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUMzRCxDQUFDO0VBRUQsb0JBQ0V6SCwwREFBQTtJQUFLZ0QsS0FBSyxFQUFFO01BQUUyRSxTQUFTLEVBQUU7SUFBTztFQUFFLGdCQUNoQzNILDBEQUFBLGFBQUksOERBQWMsQ0FBQyxlQUNuQkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEsZUFBZSxDQUFDO0lBQUE7RUFBQyxHQUFDLDhEQUFrQixDQUNyRyxDQUNKLENBQUMsZUFDTlosMERBQUEsQ0FBQTBJLHNEQUFBO0lBQ0VDLFlBQVksRUFBRTtNQUNaNUUsSUFBSSxFQUFFLFVBQVU7TUFDaEJ3RSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR3ZCLENBQUMsRUFBRXBDLFlBQVk7UUFBQSxPQUFLQyxlQUFlLENBQUNELFlBQVksQ0FBQztNQUFBO0lBQzlELENBQUU7SUFDRitCLE9BQU8sRUFBRUEsT0FBUTtJQUNqQmlDLFVBQVUsRUFBRXZCLFlBQVksQ0FBQ3dCLEdBQUcsQ0FBQyxVQUFDdEIsRUFBRSxFQUFFdUIsS0FBSztNQUFBLE9BQUFDLGFBQUE7UUFDckNsQyxHQUFHLEVBQUVVLEVBQUUsQ0FBQzNGLEVBQUU7UUFDVmtILEtBQUssRUFBRUEsS0FBSyxHQUFHLENBQUM7UUFDaEJ6RyxJQUFJLEVBQUVrRixFQUFFLENBQUNsRjtNQUFJLEdBQ1ZrRixFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0p5QixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGcEosMERBQUEsQ0FBQ29FLHlFQUFhO0lBQUNpRixPQUFPLEVBQUUwTztFQUFjLENBQUUsQ0FDckMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDekkyQjtBQUdJO0FBRWdHO0FBQ3hHO0FBQ0Q7QUFFOUMsSUFBTU0seUJBQW1DLEdBQUcsU0FBdENBLHlCQUFtQ0EsQ0FBQSxFQUFTO0VBQ2hELElBQU14WCxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQThFVCx3REFBVyxDQUN2RixVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ3NYLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk9BLGNBQWMsR0FBQXZYLFlBQUEsQ0FBZHVYLGNBQWM7SUFBRXBYLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRXFYLDJCQUEyQixHQUFBeFgsWUFBQSxDQUEzQndYLDJCQUEyQjtFQUd6RSxJQUFBblgsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjVCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQTlCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQ3NYLGtHQUEwQixDQUFDL1YsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDeEIsUUFBUSxFQUFFaUIsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXRCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUkyQixFQUFFLElBQUl3VyxjQUFjLEVBQUU7TUFDeEI3VyxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFK1YsY0FBYyxDQUFDL1YsSUFBSSxJQUFJLEVBQUU7UUFDL0JDLFdBQVcsRUFBRThWLGNBQWMsQ0FBQzlWLFdBQVcsSUFBSTtNQUM3QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDOFYsY0FBYyxFQUFFN1csSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFOUI7RUFDQTNCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ29ZLDJCQUEyQixJQUFJclcsT0FBTyxFQUFFO01BQzNDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QnVCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3hCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMdUIsdURBQUEsQ0FBUUUsT0FBTyxDQUFDYixFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVoQixRQUFRLENBQUMsbUJBQW1CLENBQUM7TUFDL0I7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDeVgsMkJBQTJCLEVBQUVyWCxvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVwQixRQUFRLENBQUMsQ0FBQzs7RUFFOUU7RUFDQSxJQUFNOEIsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQXNCLEVBQUs7SUFDM0MsSUFBSWYsRUFBRSxFQUFFO01BQ05qQixRQUFRLENBQUN1WCxrR0FBMEIsQ0FBQztRQUFFdFcsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFZ0IsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3RFcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHhCLFFBQVEsQ0FBQ3FYLGtHQUEwQixDQUFDO1FBQUVwVixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDdERwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWpDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNEIsRUFBRSxHQUFHLGdCQUFnQixHQUFHLG9CQUF5QixDQUFDLGVBQ3ZENUIsMERBQUEsQ0FBQW1CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDd0IsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR2xELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ25CLElBQUksRUFBQyxNQUFNO0lBQUNvQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjNELDBEQUFBLENBQUE0RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ041RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNuQixJQUFJLEVBQUM7RUFBYSxnQkFDMUNyQywwREFBQSxDQUFDUyw4REFBUTtJQUFDb0QsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ043RCwwREFBQSxDQUFBbUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUVtVTtFQUE0QixHQUFDLFFBRTdFLENBQ0MsQ0FDUixDQUFDLGVBQ05yWSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxDQUFDLG1CQUFtQixDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRWhFLENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFldVgseUJBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHVztBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUNrRTtBQUNsSDtBQUUvQixJQUFNSyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7RUFDL0IsSUFBTTdYLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFzQixTQUFBLEdBQXdDNUIsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEOEMsWUFBWSxHQUFBN0MsVUFBQTtJQUFFOEMsZUFBZSxHQUFBOUMsVUFBQTtFQUNwQyxJQUFBK0MsVUFBQSxHQUFvQzVFLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUE2RSxVQUFBLEdBQUF6RCxjQUFBLENBQUF3RCxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFsRSxZQUFBLEdBQW9EVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDc1gsY0FBYztJQUFBLEVBQUM7SUFBbkdLLGVBQWUsR0FBQTVYLFlBQUEsQ0FBZjRYLGVBQWU7SUFBRUMsc0JBQXNCLEdBQUE3WCxZQUFBLENBQXRCNlgsc0JBQXNCO0VBRS9DelksZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQzRYLDRGQUFvQixDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDLEVBQUUsQ0FBQzVYLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTXlFLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJeEQsRUFBTyxFQUFLO0lBQzlCakIsUUFBUSxDQUFDc1gsa0dBQTBCLENBQUNyVyxFQUFFLENBQUMsQ0FBQztJQUN4Q2hCLFFBQVEsOEJBQUF5RSxNQUFBLENBQThCekQsRUFBRSxDQUFFLENBQUM7RUFDN0MsQ0FBQztFQUVELElBQU0wRCxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSTFELEVBQU8sRUFBSztJQUNoQzhDLHVEQUFTLENBQUM7TUFDUmMsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHckIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFxQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUd0QiwyREFBYSxDQUFDLENBQUMsY0FBQXNCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0MxRixRQUFRLENBQUMyWCxrR0FBMEIsQ0FBQzFXLEVBQUUsQ0FBQyxDQUFDLENBQUMwRSxJQUFJLENBQUMsWUFBTTtZQUNsRDVCLHVEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RC9ELFFBQVEsQ0FBQzRYLDRGQUFvQixDQUFDLENBQUMsQ0FBQztVQUNsQyxDQUFDLENBQUM7VUFDRjdULHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGMEIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMzQix3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNOEIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdkIsYUFBYSxDQUFDRCxVQUFVLENBQUN5QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F6QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNMEIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFQyxHQUFHLEVBQUUsT0FBTztJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFdEIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVDLEdBQUcsRUFBRSxNQUFNO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUV0QixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRUMsR0FBRyxFQUFFLGFBQWE7SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXRCLEtBQUssRUFBRSxRQUFRO0lBQ2ZxQixHQUFHLEVBQUUsUUFBUTtJQUNiQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0JqSCwwREFBQSxDQUFBa0gscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCbkgsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDc0UseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWlCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGNUIsMERBQUEsQ0FBQThELHVEQUFBO1FBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDcUUseURBQWMsTUFBRSxDQUFFO1FBQUMrQyxNQUFNO1FBQUNqRCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFtQixZQUFZLENBQUMyQixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTXlGLFlBQVksR0FBRyxDQUFDb1IsZUFBZSxJQUFJLEVBQUUsRUFBRW5SLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDckRELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSxnRkFBaUIsQ0FBQyxlQUN0QkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEseUJBQXlCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQy9HLENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBMEksc0RBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1o1RSxJQUFJLEVBQUUsVUFBVTtNQUNoQndFLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHdkIsQ0FBQyxFQUFFcEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGK0IsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCaUMsVUFBVSxFQUFFdkIsWUFBWSxDQUFDd0IsR0FBRyxDQUFDLFVBQUN0QixFQUFFLEVBQUV1QixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQ2xDLEdBQUcsRUFBRVUsRUFBRSxDQUFDM0YsRUFBRTtRQUNWa0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQnpHLElBQUksRUFBRWtGLEVBQUUsQ0FBQ2xGO01BQUksR0FDVmtGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnlCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZwSiwwREFBQSxDQUFDb0UseUVBQWE7SUFBQ2lGLE9BQU8sRUFBRXFQO0VBQXVCLENBQUUsQ0FDOUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SWtCO0FBR0k7QUFFb0c7QUFDNUc7QUFDRDtBQUU5QyxJQUFNTSwwQkFBb0MsR0FBRyxTQUF2Q0EsMEJBQW9DQSxDQUFBLEVBQVM7RUFDakQsSUFBTW5ZLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBZ0ZULHdEQUFXLENBQ3pGLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDaVksZUFBZTtJQUFBLENBQzdDLENBQUM7SUFGT0EsZUFBZSxHQUFBbFksWUFBQSxDQUFma1ksZUFBZTtJQUFFL1gsb0JBQW9CLEdBQUFILFlBQUEsQ0FBcEJHLG9CQUFvQjtJQUFFZ1ksNEJBQTRCLEdBQUFuWSxZQUFBLENBQTVCbVksNEJBQTRCO0VBRzNFLElBQUE5WCxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDaVksb0dBQTJCLENBQUMxVyxNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4QixRQUFRLEVBQUVpQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdEIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsSUFBSW1YLGVBQWUsRUFBRTtNQUN6QnhYLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUUwVyxlQUFlLENBQUMxVyxJQUFJLElBQUksRUFBRTtRQUNoQ0MsV0FBVyxFQUFFeVcsZUFBZSxDQUFDelcsV0FBVyxJQUFJO01BQzlDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUN5VyxlQUFlLEVBQUV4WCxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUUvQjtFQUNBM0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDK1ksNEJBQTRCLElBQUloWCxPQUFPLEVBQUU7TUFDNUMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCdUIsdURBQUEsQ0FBUUMsS0FBSyxDQUFDeEIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x1Qix1REFBQSxDQUFRRSxPQUFPLENBQUNiLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWhCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztNQUNoQztJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUNvWSw0QkFBNEIsRUFBRWhZLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXBCLFFBQVEsQ0FBQyxDQUFDOztFQUUvRTtFQUNBLElBQU04QixRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBdUIsRUFBSztJQUM1QyxJQUFJZixFQUFFLEVBQUU7TUFDTmpCLFFBQVEsQ0FBQ2tZLG9HQUEyQixDQUFDO1FBQUVqWCxFQUFFLEVBQUVNLE1BQU0sQ0FBQ04sRUFBRSxDQUFDO1FBQUVnQixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDdkVwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDO0lBQ3BCLENBQUMsTUFBTTtNQUNMeEIsUUFBUSxDQUFDZ1ksb0dBQTJCLENBQUM7UUFBRS9WLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUN2RHBCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0lBQ0FGLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbEIsQ0FBQztFQUVELG9CQUNFakMsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0VBLDBEQUFBLGFBQUs0QixFQUFFLEdBQUcsd0JBQXdCLEdBQUcsNEJBQWlDLENBQUMsZUFDdkU1QiwwREFBQSxDQUFBbUIsb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN3QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHbEQsMERBQUEsQ0FBQW1ELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNadEQsMERBQUEsQ0FBQW1CLG9EQUFBLENBQU1vQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDbkIsSUFBSSxFQUFDLE1BQU07SUFBQ29CLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GM0QsMERBQUEsQ0FBQTRELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjVELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ25CLElBQUksRUFBQztFQUFhLGdCQUMxQ3JDLDBEQUFBLENBQUNTLDhEQUFRO0lBQUNvRCxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTjdELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRThVO0VBQTZCLEdBQUMsUUFFOUUsQ0FDQyxDQUNSLENBQUMsZUFDTmhaLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSSxxQkFDUnZELDBEQUFBLENBQUE4RCx3REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF2RCxRQUFRLENBQUMsb0JBQW9CLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFakUsQ0FDQyxDQUNSLENBQ0YsQ0FDRCxDQUNOLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWVrWSwwQkFBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdVO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQ3NFO0FBQ3RIO0FBRS9CLElBQU1LLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUEsRUFBUztFQUNoQyxJQUFNeFksUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXNCLFNBQUEsR0FBd0M1QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBNkIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbEQ4QyxZQUFZLEdBQUE3QyxVQUFBO0lBQUU4QyxlQUFlLEdBQUE5QyxVQUFBO0VBQ3BDLElBQUErQyxVQUFBLEdBQW9DNUUsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQTZFLFVBQUEsR0FBQXpELGNBQUEsQ0FBQXdELFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQWxFLFlBQUEsR0FBc0RULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNpWSxlQUFlO0lBQUEsRUFBQztJQUF0R0ssZ0JBQWdCLEdBQUF2WSxZQUFBLENBQWhCdVksZ0JBQWdCO0lBQUVDLHVCQUF1QixHQUFBeFksWUFBQSxDQUF2QndZLHVCQUF1QjtFQUVqRHBaLGdEQUFTLENBQUMsWUFBTTtJQUNkVSxRQUFRLENBQUN1WSw4RkFBcUIsQ0FBQyxDQUFDLENBQUM7RUFDbkMsQ0FBQyxFQUFFLENBQUN2WSxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU15RSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSXhELEVBQU8sRUFBSztJQUM5QmpCLFFBQVEsQ0FBQ2lZLG9HQUEyQixDQUFDaFgsRUFBRSxDQUFDLENBQUM7SUFDekNoQixRQUFRLCtCQUFBeUUsTUFBQSxDQUErQnpELEVBQUUsQ0FBRSxDQUFDO0VBQzlDLENBQUM7RUFFRCxJQUFNMEQsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkxRCxFQUFPLEVBQUs7SUFDaEM4Qyx1REFBUyxDQUFDO01BQ1JjLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3JCLDJEQUFhLENBQUMsQ0FBQyxjQUFBcUIsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHdEIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFzQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDMUYsUUFBUSxDQUFDc1ksb0dBQTJCLENBQUNyWCxFQUFFLENBQUMsQ0FBQyxDQUFDMEUsSUFBSSxDQUFDLFlBQU07WUFDbkQ1Qix1REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQvRCxRQUFRLENBQUN1WSw4RkFBcUIsQ0FBQyxDQUFDLENBQUM7VUFDbkMsQ0FBQyxDQUFDO1VBQ0Z4VSx3REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRjBCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDM0Isd0RBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTThCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXZCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDeUIsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBekIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTTBCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRUMsR0FBRyxFQUFFLE9BQU87SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXRCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFQyxHQUFHLEVBQUUsTUFBTTtJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFdEIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVDLEdBQUcsRUFBRSxhQUFhO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0V0QixLQUFLLEVBQUUsUUFBUTtJQUNmcUIsR0FBRyxFQUFFLFFBQVE7SUFDYkMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCakgsMERBQUEsQ0FBQWtILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQm5ILDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3NFLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFpQixVQUFVLENBQUM2QixNQUFNLENBQUNyRixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjVCLDBEQUFBLENBQUE4RCx1REFBQTtRQUFRNEIsSUFBSSxlQUFFMUYsMERBQUEsQ0FBQ3FFLHlEQUFjLE1BQUUsQ0FBRTtRQUFDK0MsTUFBTTtRQUFDakQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRbUIsWUFBWSxDQUFDMkIsTUFBTSxDQUFDckYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU15RixZQUFZLEdBQUcsQ0FBQytSLGdCQUFnQixJQUFJLEVBQUUsRUFBRTlSLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDdERELEVBQUUsQ0FBQ2xGLElBQUksY0FBQW1GLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDMUMsVUFBVSxDQUFDeUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRXpILDBEQUFBO0lBQUtnRCxLQUFLLEVBQUU7TUFBRTJFLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDM0gsMERBQUEsYUFBSSxnSUFBeUIsQ0FBQyxlQUM5QkEsMERBQUE7SUFDRWdELEtBQUssRUFBRTtNQUNMNEUsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRmpJLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUFxSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5Q25JLDBEQUFBLENBQUE0RCxzREFBQTtJQUNFd0UsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCcEYsS0FBSyxFQUFFO01BQUVxRixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCQyxLQUFLLEVBQUV0RCxVQUFXO0lBQ2xCdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLdkQsYUFBYSxDQUFDdUQsQ0FBQyxDQUFDQyxNQUFNLENBQUNILEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGdEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXFDLFlBQWE7SUFBQ3pDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RC9ELDBEQUFBLENBQUE4RCx1REFBQTtJQUFRSyxPQUFPLEVBQUV1QztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUjFHLDBEQUFBLENBQUFrSCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUbEksMERBQUEsQ0FBQThELHVEQUFBO0lBQVE0QixJQUFJLGVBQUUxRiwwREFBQSxDQUFDdUUsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUXZELFFBQVEsMEJBQTBCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQ2hILENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBMEksc0RBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1o1RSxJQUFJLEVBQUUsVUFBVTtNQUNoQndFLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHdkIsQ0FBQyxFQUFFcEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGK0IsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCaUMsVUFBVSxFQUFFdkIsWUFBWSxDQUFDd0IsR0FBRyxDQUFDLFVBQUN0QixFQUFFLEVBQUV1QixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQ2xDLEdBQUcsRUFBRVUsRUFBRSxDQUFDM0YsRUFBRTtRQUNWa0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQnpHLElBQUksRUFBRWtGLEVBQUUsQ0FBQ2xGO01BQUksR0FDVmtGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnlCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZwSiwwREFBQSxDQUFDb0UseUVBQWE7SUFBQ2lGLE9BQU8sRUFBRWdRO0VBQXdCLENBQUUsQ0FDL0MsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SWlCO0FBR0k7QUFFNEU7QUFDcEY7QUFDRDtBQUU5QyxJQUFNTSxvQkFBOEIsR0FBRyxTQUFqQ0Esb0JBQThCQSxDQUFBLEVBQVM7RUFDM0MsSUFBTTlZLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBb0VULHdEQUFXLENBQzdFLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDNFksU0FBUztJQUFBLENBQ3ZDLENBQUM7SUFGT0EsU0FBUyxHQUFBN1ksWUFBQSxDQUFUNlksU0FBUztJQUFFMVksb0JBQW9CLEdBQUFILFlBQUEsQ0FBcEJHLG9CQUFvQjtJQUFFMlksc0JBQXNCLEdBQUE5WSxZQUFBLENBQXRCOFksc0JBQXNCO0VBRy9ELElBQUF6WSxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsRUFBRTtNQUNOakIsUUFBUSxDQUFDNFksd0ZBQXFCLENBQUNyWCxNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4QixRQUFRLEVBQUVpQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdEIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUsSUFBSThYLFNBQVMsRUFBRTtNQUNuQm5ZLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUVxWCxTQUFTLENBQUNyWCxJQUFJLElBQUksRUFBRTtRQUMxQkMsV0FBVyxFQUFFb1gsU0FBUyxDQUFDcFgsV0FBVyxJQUFJO01BQ3hDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUNvWCxTQUFTLEVBQUVuWSxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUV6QjtFQUNBM0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDMFosc0JBQXNCLElBQUkzWCxPQUFPLEVBQUU7TUFDdEMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCdUIsdURBQUEsQ0FBUUMsS0FBSyxDQUFDeEIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x1Qix1REFBQSxDQUFRRSxPQUFPLENBQUNiLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWhCLFFBQVEsQ0FBQyxjQUFjLENBQUM7TUFDMUI7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDK1ksc0JBQXNCLEVBQUUzWSxvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVwQixRQUFRLENBQUMsQ0FBQzs7RUFFekU7RUFDQSxJQUFNOEIsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQWlCLEVBQUs7SUFDdEMsSUFBSWYsRUFBRSxFQUFFO01BQ05qQixRQUFRLENBQUM2WSx3RkFBcUIsQ0FBQztRQUFFNVgsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFZ0IsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2pFcEIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHhCLFFBQVEsQ0FBQzJZLHdGQUFxQixDQUFDO1FBQUUxVyxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDakRwQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWpDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNEIsRUFBRSxHQUFHLHFCQUFxQixHQUFHLHlCQUE4QixDQUFDLGVBQ2pFNUIsMERBQUEsQ0FBQW1CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDd0IsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR2xELDBEQUFBLENBQUFtRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnBELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnRELDBEQUFBLENBQUFtQixvREFBQSxDQUFNb0MsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ25CLElBQUksRUFBQyxNQUFNO0lBQUNvQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjNELDBEQUFBLENBQUE0RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ041RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNuQixJQUFJLEVBQUM7RUFBYSxnQkFDMUNyQywwREFBQSxDQUFDUyw4REFBUTtJQUFDb0QsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ043RCwwREFBQSxDQUFBbUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUV5VjtFQUF1QixHQUFDLFFBRXhFLENBQ0MsQ0FDUixDQUFDLGVBQ04zWiwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h0RCwwREFBQSxDQUFBbUIsb0RBQUEsQ0FBTW9DLElBQUkscUJBQ1J2RCwwREFBQSxDQUFBOEQsd0RBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUUzRCxDQUNDLENBQ1IsQ0FDRixDQUNELENBQ04sQ0FBQztBQUVQLENBQUM7QUFFRCxpRUFBZTZZLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0R2dCO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQzhDO0FBQzlGO0FBRS9CLElBQU1LLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQSxFQUFTO0VBQzFCLElBQU1uWixRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBc0IsU0FBQSxHQUF3QzVCLCtDQUFRLENBQU0sRUFBRSxDQUFDO0lBQUE2QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUFsRDhDLFlBQVksR0FBQTdDLFVBQUE7SUFBRThDLGVBQWUsR0FBQTlDLFVBQUE7RUFDcEMsSUFBQStDLFVBQUEsR0FBb0M1RSwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBNkUsVUFBQSxHQUFBekQsY0FBQSxDQUFBd0QsVUFBQTtJQUF6Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBbEUsWUFBQSxHQUEwQ1Qsd0RBQVcsQ0FBQyxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQzRZLFNBQVM7SUFBQSxFQUFDO0lBQXBGSyxVQUFVLEdBQUFsWixZQUFBLENBQVZrWixVQUFVO0lBQUVDLGlCQUFpQixHQUFBblosWUFBQSxDQUFqQm1aLGlCQUFpQjtFQUVyQy9aLGdEQUFTLENBQUMsWUFBTTtJQUNkVSxRQUFRLENBQUNrWixrRkFBZSxDQUFDLENBQUMsQ0FBQztFQUM3QixDQUFDLEVBQUUsQ0FBQ2xaLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTXlFLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJeEQsRUFBTyxFQUFLO0lBQzlCakIsUUFBUSxDQUFDNFksd0ZBQXFCLENBQUMzWCxFQUFFLENBQUMsQ0FBQztJQUNuQ2hCLFFBQVEseUJBQUF5RSxNQUFBLENBQXlCekQsRUFBRSxDQUFFLENBQUM7RUFDeEMsQ0FBQztFQUVELElBQU0wRCxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSTFELEVBQU8sRUFBSztJQUNoQzhDLHVEQUFTLENBQUM7TUFDUmMsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHckIsMkRBQWEsQ0FBQyxDQUFDLGNBQUFxQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUd0QiwyREFBYSxDQUFDLENBQUMsY0FBQXNCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0MxRixRQUFRLENBQUNpWix3RkFBcUIsQ0FBQ2hZLEVBQUUsQ0FBQyxDQUFDLENBQUMwRSxJQUFJLENBQUMsWUFBTTtZQUM3QzVCLHVEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RC9ELFFBQVEsQ0FBQ2taLGtGQUFlLENBQUMsQ0FBQyxDQUFDO1VBQzdCLENBQUMsQ0FBQztVQUNGblYsd0RBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUYwQixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM1QzNCLHdEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU04QixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCO0lBQ0F2QixhQUFhLENBQUNELFVBQVUsQ0FBQ3lCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEI7SUFDQXpCLGFBQWEsQ0FBQyxFQUFFLENBQUM7RUFDbkIsQ0FBQztFQUVELElBQU0wQixPQUFPLEdBQUcsQ0FDZDtJQUFFbkIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxPQUFPO0lBQUVDLEdBQUcsRUFBRSxPQUFPO0lBQUVDLFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUV0QixLQUFLLEVBQUUsT0FBTztJQUFFb0IsU0FBUyxFQUFFLE1BQU07SUFBRUMsR0FBRyxFQUFFLE1BQU07SUFBRUMsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDdEU7SUFBRXRCLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFQyxHQUFHLEVBQUUsYUFBYTtJQUFFQyxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUNFdEIsS0FBSyxFQUFFLFFBQVE7SUFDZnFCLEdBQUcsRUFBRSxRQUFRO0lBQ2JDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLG9CQUM3QmpILDBEQUFBLENBQUFrSCxxREFBQTtRQUFPQyxJQUFJLEVBQUM7TUFBUSxnQkFDbEJuSCwwREFBQSxDQUFBOEQsdURBQUE7UUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUNzRSx5REFBWSxNQUFFLENBQUU7UUFBQ1AsSUFBSSxFQUFDLFNBQVM7UUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRaUIsVUFBVSxDQUFDNkIsTUFBTSxDQUFDckYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZUFDdkY1QiwwREFBQSxDQUFBOEQsdURBQUE7UUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUNxRSx5REFBYyxNQUFFLENBQUU7UUFBQytDLE1BQU07UUFBQ2pELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUW1CLFlBQVksQ0FBQzJCLE1BQU0sQ0FBQ3JGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUM3RSxDQUFDO0lBQUE7RUFFWixDQUFDLENBQ0Y7RUFFRCxJQUFNeUYsWUFBWSxHQUFHLENBQUMwUyxVQUFVLElBQUksRUFBRSxFQUFFelMsTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUNoREQsRUFBRSxDQUFDbEYsSUFBSSxjQUFBbUYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMxQyxVQUFVLENBQUN5QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFekgsMERBQUE7SUFBS2dELEtBQUssRUFBRTtNQUFFMkUsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaEMzSCwwREFBQSxhQUFJLDhHQUFzQixDQUFDLGVBQzNCQSwwREFBQTtJQUNFZ0QsS0FBSyxFQUFFO01BQ0w0RSxPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGakksMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQXFILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDbkksMERBQUEsQ0FBQTRELHNEQUFBO0lBQ0V3RSxXQUFXLEVBQUMsK0NBQVk7SUFDeEJwRixLQUFLLEVBQUU7TUFBRXFGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJDLEtBQUssRUFBRXRELFVBQVc7SUFDbEJ1RCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUt2RCxhQUFhLENBQUN1RCxDQUFDLENBQUNDLE1BQU0sQ0FBQ0gsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z0SSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUUssT0FBTyxFQUFFcUMsWUFBYTtJQUFDekMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEL0QsMERBQUEsQ0FBQThELHVEQUFBO0lBQVFLLE9BQU8sRUFBRXVDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSMUcsMERBQUEsQ0FBQWtILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1RsSSwwREFBQSxDQUFBOEQsdURBQUE7SUFBUTRCLElBQUksZUFBRTFGLDBEQUFBLENBQUN1RSwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdkQsUUFBUSxvQkFBb0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDMUcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUEwSSxzREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWjVFLElBQUksRUFBRSxVQUFVO01BQ2hCd0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUd2QixDQUFDLEVBQUVwQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0YrQixPQUFPLEVBQUVBLE9BQVE7SUFDakJpQyxVQUFVLEVBQUV2QixZQUFZLENBQUN3QixHQUFHLENBQUMsVUFBQ3RCLEVBQUUsRUFBRXVCLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDbEMsR0FBRyxFQUFFVSxFQUFFLENBQUMzRixFQUFFO1FBQ1ZrSCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCekcsSUFBSSxFQUFFa0YsRUFBRSxDQUFDbEY7TUFBSSxHQUNWa0YsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKeUIsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRnBKLDBEQUFBLENBQUNvRSx5RUFBYTtJQUFDaUYsT0FBTyxFQUFFMlE7RUFBa0IsQ0FBRSxDQUN6QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vbGFuZ3VhZ2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9sYW5ndWFnZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9ub3RpZmljYXRpb24vY29yZS9ub3RpZmljYXRpb25fc2VydmljZS50cyIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL25vdGlmaWNhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vY2N1cGF0aW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2NjdXBhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vZmZlcl9wcm9ncmFtL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2ZmZXJfcHJvZ3JhbS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vcHJvdmluY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9wcm92aW5jZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9za2lsbC9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3NraWxsL2luZGV4LnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmFpbmluZ19zZXNzaW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhaW5pbmdfc2Vzc2lvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmF2ZWxfZGF5L2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhdmVsX2RheS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSW50ZXJlc3RlZFRlYW0gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uLCBpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiwgdXBkYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmVzdGVkX3RlYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBpbnRlcmVzdGVkVGVhbSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGludGVyZXN0ZWRUZWFtVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmludGVyZXN0ZWRUZWFtXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKGludGVyZXN0ZWRUZWFtRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIGludGVyZXN0ZWRUZWFtKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogaW50ZXJlc3RlZFRlYW0ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGludGVyZXN0ZWRUZWFtLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbaW50ZXJlc3RlZFRlYW0sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvaW50ZXJlc3RlZC10ZWFtcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2ludGVyZXN0ZWRUZWFtVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogSW50ZXJlc3RlZFRlYW0pID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn40nIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGegOGfkuGemuGeu+GemOGeheGetuGelOGfi+GeouGetuGemuGemOGfkuGemOGejuGfjSd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17aW50ZXJlc3RlZFRlYW1VcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvaW50ZXJlc3RlZC10ZWFtcycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0SW50ZXJlc3RlZFRlYW1QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVJbnRlcmVzdGVkVGVhbUFjdGlvbiwgaW50ZXJlc3RlZFRlYW1EZXRhaWxBY3Rpb24sIGZldGNoSW50ZXJlc3RlZFRlYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJlc3RlZF90ZWFtL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IEludGVyZXN0ZWRUZWFtTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IGludGVyZXN0ZWRUZWFtcywgaW50ZXJlc3RlZFRlYW1zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmludGVyZXN0ZWRUZWFtKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoSW50ZXJlc3RlZFRlYW1zKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvaW50ZXJlc3RlZC10ZWFtcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZUludGVyZXN0ZWRUZWFtQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoSW50ZXJlc3RlZFRlYW1zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKGludGVyZXN0ZWRUZWFtcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6A4Z+S4Z6a4Z674Z6Y4Z6F4Z624Z6U4Z+L4Z6i4Z624Z6a4Z6Y4Z+S4Z6Y4Z6O4Z+NPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL2ludGVyZXN0ZWQtdGVhbXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e2ludGVyZXN0ZWRUZWFtc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnRlcmVzdGVkVGVhbUxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBMYW5ndWFnZSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlTGFuZ3VhZ2VBY3Rpb24sIGxhbmd1YWdlRGV0YWlsQWN0aW9uLCB1cGRhdGVMYW5ndWFnZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2xhbmd1YWdlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0TGFuZ3VhZ2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgbGFuZ3VhZ2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBsYW5ndWFnZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5sYW5ndWFnZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChsYW5ndWFnZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBsYW5ndWFnZSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IGxhbmd1YWdlLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBsYW5ndWFnZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2xhbmd1YWdlLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbGFuZ3VhZ2VVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL2xhbmd1YWdlcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2xhbmd1YWdlVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogTGFuZ3VhZ2UpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZUxhbmd1YWdlQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZUxhbmd1YWdlQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4Lhnpfhnrbhnp/hnrYnIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGel+GetuGen+Getid9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17bGFuZ3VhZ2VVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvbGFuZ3VhZ2VzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRMYW5ndWFnZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZUxhbmd1YWdlQWN0aW9uLCBsYW5ndWFnZURldGFpbEFjdGlvbiwgZmV0Y2hMYW5ndWFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9sYW5ndWFnZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBMYW5ndWFnZUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBsYW5ndWFnZXMsIGxhbmd1YWdlc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5sYW5ndWFnZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaExhbmd1YWdlcygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gobGFuZ3VhZ2VEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL2xhbmd1YWdlcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZUxhbmd1YWdlQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoTGFuZ3VhZ2VzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKGxhbmd1YWdlcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6X4Z624Z6f4Z62PC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL2xhbmd1YWdlcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17bGFuZ3VhZ2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExhbmd1YWdlTGlzdDtcbiIsImltcG9ydCB7IGdldFdpdGhDb25maWcsIHBvc3RXaXRoQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvYmFzZS9zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlncy9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3Qgbm90aWZ5VXNlclRlbGVncmFtU2VydmljZSA9IGFzeW5jICh1c2VyX2lkOiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBnZXRXaXRoQ29uZmlnKFxuICAgICAgICBgJHtVUkwuTk9USUZZfT91c2VyX2lkPSR7dXNlcl9pZH0mbWVzc2FnZT0ke21lc3NhZ2V9YCxcbiAgICApO1xufTtcblxuXG5cbmV4cG9ydCBjb25zdCBub3RpZnlVc2VyQnlTdGF0dXMgPSBhc3luYyAoc3RhdHVzOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBnZXRXaXRoQ29uZmlnKFxuICAgICAgICBgJHtVUkwuTk9USUZZX1NUQVRVU30/c3RhdHVzPSR7c3RhdHVzfSZtZXNzYWdlPSR7bWVzc2FnZX1gLFxuICAgICk7XG59OyIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU2VsZWN0LCBSb3csIENvbCwgTW9kYWwsIG1lc3NhZ2UgYXMgYW50ZE1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9yZWR1eC9zdG9yZVwiO1xuaW1wb3J0IHsgbm90aWZ5VXNlckJ5U3RhdHVzLCBub3RpZnlVc2VyVGVsZWdyYW1TZXJ2aWNlIH0gZnJvbSBcIi4vY29yZS9ub3RpZmljYXRpb25fc2VydmljZVwiO1xuXG5jb25zdCB7IE9wdGlvbiB9ID0gU2VsZWN0O1xuXG5jb25zdCBJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nID0gYFxu8J+ToiAqKuGegOGetuGemuGeouGeieGfkuGeh+GevuGeieGeheGevOGem+GemuGeveGemOGegOGet+GeheGfkuGeheGelOGfkuGemuGeh+Geu+GfhuGeleGfkuGen+GeluGfkuGenOGeleGfkuGen+GetuGemeGeouGfhuGeluGeuOGej+GeveGek+GetuGekeGeuOGel+GetuGemuGegOGet+GeheGfkuGehSoqXG5cblxu8J+TnSAqKuGen+GevOGemOGeouGeieGfkuGeh+GevuGeieGem+GfhOGegOGeouGfkuGek+GegCoqIOGeheGevOGem+GemuGeveGemOGegOGet+GeheGfkuGeheGelOGfkuGemuGeh+Geu+GfhuGeleGfkuGen+GeluGfkuGenOGeleGfkuGen+GetuGemeGeouGfhuGeluGeuCAqKuGej+GeveGek+GetuGekeGeuOGel+GetuGemuGegOGet+GeheGfkuGeheGegOGfkuGemuGeu+GemOGegOGetuGemuGehOGetuGemioqXG7hnorhnr7hnpjhn5LhnpThnrjhnprhn4DhnpThnoXhn4bhnoHhn5Lhnpvhnr3hnpPhnofhnrbhnp/hn5Lhnpjhn5DhnoLhn5LhnprhnoXhnrfhno/hn5Lhno/hnoDhn5LhnpPhnrvhnoQgKirhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43hnqLhnoThn5LhnoLhnprhnp/hnoThn5LhnoDhn5LhnprhnrbhnpPhn5Lhno8g4Z+i4Z+g4Z+i4Z+lKirjgIJcblxuXG7wn5OFIOGegOGetuGem+GelOGemuGet+GeheGfkuGehuGfgeGekeGfliDhnpDhn5LhnoThn4Phnp/hn4Xhnprhn40g4Z6R4Z64IOGfouGfqSDhnoHhn4LhnpjhnrjhnpPhnrYg4Z+i4Z+g4Z+i4Z+lXG7ij7Ag4Z6W4Z+B4Z6b4Z6c4Z+B4Z6b4Z624Z+WIOGfqTrhn6Dhn6Ag4Z6W4Z+S4Z6a4Z654Z6AXG7wn5ONIOGekeGeuOGej+GetuGfhuGehOGfliDhnpHhnrjhnpvhnrbhnpPhnpXhn5Lhno/hnrbhnoXhn4vhnpbhn5Lhnprhn5Dhno/hn5Lhnprhnp/hnqDhnpbhn5DhnpPhn5LhnpLhnoDhnrjhnqHhnrbhnpThn4rhnrzhnpsg4Z6T4Z634Z6E4Z6U4Z+J4Z+B4Z6P4Z6E4Z+L4Z6A4Z6Y4Z+S4Z6W4Z674Z6H4Z62ICjhnpbhnqDhnrvhnoDhnrjhnqHhnorhn5LhnovhnrbhnpPhnofhnrbhno/hnrcpXG7wn5GVIOGen+GemOGfkuGem+GfgOGegOGelOGfhuGeluGetuGegOGfi+GfliDhnp/hnpjhnprhnpjhn5Lhnplcblxu8J+TniDhnpbhn5Dhno/hn4zhnpjhnrbhnpPhnpvhnpjhn5LhnqLhnrfhno/hnp/hnrzhnpjhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoThn5YgMDk4IDg5IDg3IDY3XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25QYWdlID0gKCkgPT4ge1xuICBjb25zdCBbc2VsZWN0ZWRTdGF0dXMsIHNldFNlbGVjdGVkU3RhdHVzXSA9IHVzZVN0YXRlKFwiUEFSVElDSVBBTlRTXCIpO1xuICBjb25zdCBbbWVzc2FnZVRleHQsIHNldE1lc3NhZ2VUZXh0XSA9IHVzZVN0YXRlKEludml0YXRpb25fdG9fVm9sdW50ZWVyX0JyaWVmaW5nX01lZXRpbmcpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjb25maXJtVmlzaWJsZSwgc2V0Q29uZmlybVZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZmluYWxDb25maXJtVmlzaWJsZSwgc2V0RmluYWxDb25maXJtVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzZW5kVHlwZSwgc2V0U2VuZFR5cGVdID0gdXNlU3RhdGUoXCJcIik7XG5cbiAgY29uc3QgeyBhdXRoIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCB7IHVzZXJzIH0gPSBhdXRoO1xuXG4gIGNvbnN0IHVzZXJTdGF0dXNlcyA9IFtcIlBBUlRJQ0lQQU5UU1wiLFwiU0hPUlRMSVNUXCIsIFwiSU5URVJWSUVXXCIsIFwiUkVTRVJWRVwiLCBcIkZBSUxFRFwiLCBcIlJFU0lHTkFUSU9OXCIsIFwiRElTUVVBTElGSUNBVElPTlwiLFwiUkVHSVNURVJcIl07XG5cbiAgY29uc3Qgc2hvd0NvbmZpcm1EaWFsb2cgPSAodHlwZTogXCJ1c2VyXCIgfCBcInN0YXR1c1wiKSA9PiB7XG4gICAgaWYgKCFtZXNzYWdlVGV4dCkge1xuICAgICAgcmV0dXJuIGFudGRNZXNzYWdlLndhcm5pbmcoXCJQbGVhc2UgZW50ZXIgYSBtZXNzYWdlIGJlZm9yZSBzZW5kaW5nLlwiKTtcbiAgICB9XG4gICAgc2V0U2VuZFR5cGUodHlwZSk7XG4gICAgc2V0Q29uZmlybVZpc2libGUodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRmlyc3RDb25maXJtID0gKCkgPT4ge1xuICAgIHNldENvbmZpcm1WaXNpYmxlKGZhbHNlKTtcbiAgICBzZXRGaW5hbENvbmZpcm1WaXNpYmxlKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1TZW5kID0gYXN5bmMgKCkgPT4ge1xuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgc2V0RmluYWxDb25maXJtVmlzaWJsZShmYWxzZSk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHNlbmRUeXBlID09PSBcInVzZXJcIikge1xuICAgICAgICBhd2FpdCBub3RpZnlVc2VyVGVsZWdyYW1TZXJ2aWNlKHVzZXJzLmlkLCBtZXNzYWdlVGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBub3RpZnlVc2VyQnlTdGF0dXMoc2VsZWN0ZWRTdGF0dXMsIG1lc3NhZ2VUZXh0KTtcbiAgICAgIH1cbiAgICAgIGFudGRNZXNzYWdlLnN1Y2Nlc3MoXCJNZXNzYWdlKHMpIHNlbnQgc3VjY2Vzc2Z1bGx5IVwiKTtcbiAgICAgIHNldE1lc3NhZ2VUZXh0KEludml0YXRpb25fdG9fVm9sdW50ZWVyX0JyaWVmaW5nX01lZXRpbmcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhbnRkTWVzc2FnZS5lcnJvcihcIkZhaWxlZCB0byBzZW5kIG1lc3NhZ2UocykhXCIpO1xuICAgIH1cbiAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogMjAgfX0+XG4gICAgICA8aDI+U2VuZCBOb3RpZmljYXRpb25zPC9oMj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAyMCB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxNiwxNl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTZ9IGxnPXsyNH0+XG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVXNlciBTdGF0dXNcIlxuICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkU3RhdHVzfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NldFNlbGVjdGVkU3RhdHVzfVxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt1c2VyU3RhdHVzZXMubWFwKChzdGF0dXMpID0+IChcbiAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e3N0YXR1c30gdmFsdWU9e3N0YXR1c30+XG4gICAgICAgICAgICAgICAge3N0YXR1c31cbiAgICAgICAgICAgICAgPC9PcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezE2fSBsZz17MjR9PlxuICAgICAgICAgIDxJbnB1dC5UZXh0QXJlYVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBNZXNzYWdlXCJcbiAgICAgICAgICAgIHZhbHVlPXttZXNzYWdlVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0TWVzc2FnZVRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgcm93cz17MjB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezE2fSBsZz17MjR9PlxuICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBzaG93Q29uZmlybURpYWxvZyhcInN0YXR1c1wiKX0gbG9hZGluZz17bG9hZGluZ30+XG4gICAgICAgICAgICBTZW5kIGJ5IFN0YXR1c1xuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvZGl2PlxuICAgICAgPE1vZGFsXG4gICAgICAgIHRpdGxlPVwiQ29uZmlybSBTZW5kaW5nIE1lc3NhZ2VcIlxuICAgICAgICB2aXNpYmxlPXtjb25maXJtVmlzaWJsZX1cbiAgICAgICAgb25Paz17aGFuZGxlRmlyc3RDb25maXJtfVxuICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0Q29uZmlybVZpc2libGUoZmFsc2UpfVxuICAgICAgICBva1RleHQ9XCJQcm9jZWVkXCJcbiAgICAgICAgY2FuY2VsVGV4dD1cIkNhbmNlbFwiXG4gICAgICA+XG4gICAgICAgIDxDb2w+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHNlbmQgdGhpcyBtZXNzYWdlPzwvQ29sPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c3Ryb25nPk1lc3NhZ2U6PC9zdHJvbmc+IHttZXNzYWdlVGV4dH1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8c3Ryb25nPlVzZXIgU3RhdHVzOjwvc3Ryb25nPiB7c2VsZWN0ZWRTdGF0dXN9XG4gICAgICAgIDwvcD5cbiAgICAgIDwvTW9kYWw+XG4gICAgICA8TW9kYWxcbiAgICAgICAgdGl0bGU9XCJGaW5hbCBDb25maXJtYXRpb25cIlxuICAgICAgICB2aXNpYmxlPXtmaW5hbENvbmZpcm1WaXNpYmxlfVxuICAgICAgICBvbk9rPXtoYW5kbGVDb25maXJtU2VuZH1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IHNldEZpbmFsQ29uZmlybVZpc2libGUoZmFsc2UpfVxuICAgICAgICBva1RleHQ9XCJZZXMsIFNlbmRcIlxuICAgICAgICBjYW5jZWxUZXh0PVwiQ2FuY2VsXCJcbiAgICAgID5cbiAgICAgICAgPHA+VGhpcyBpcyB5b3VyIGZpbmFsIGNvbmZpcm1hdGlvbi4gRG8geW91IHdhbnQgdG8gcHJvY2VlZCB3aXRoIHNlbmRpbmcgdGhlIG1lc3NhZ2U/PC9wPlxuICAgICAgPC9Nb2RhbD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvblBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBPY2N1cGF0aW9uIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPY2N1cGF0aW9uQWN0aW9uLCBvY2N1cGF0aW9uRGV0YWlsQWN0aW9uLCB1cGRhdGVPY2N1cGF0aW9uQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2NjdXBhdGlvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdE9jY3VwYXRpb25QYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgb2NjdXBhdGlvbiwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIG9jY3VwYXRpb25VcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2NjdXBhdGlvblxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChvY2N1cGF0aW9uRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIG9jY3VwYXRpb24pIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBvY2N1cGF0aW9uLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvY2N1cGF0aW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbb2NjdXBhdGlvbiwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9jY3VwYXRpb25VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL29jY3VwYXRpb25zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbb2NjdXBhdGlvblVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IE9jY3VwYXRpb24pID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZU9jY3VwYXRpb25BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlT2NjdXBhdGlvbkFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6Y4Z674Z6B4Z6a4Z6U4Z6aJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnpjhnrvhnoHhnprhnpThnponfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e29jY3VwYXRpb25VcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvb2NjdXBhdGlvbnMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdE9jY3VwYXRpb25QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVPY2N1cGF0aW9uQWN0aW9uLCBvY2N1cGF0aW9uRGV0YWlsQWN0aW9uLCBmZXRjaE9jY3VwYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2NjdXBhdGlvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBPY2N1cGF0aW9uTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IG9jY3VwYXRpb25zLCBvY2N1cGF0aW9uc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vY2N1cGF0aW9uKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoT2NjdXBhdGlvbnMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9jY3VwYXRpb25EZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL29jY3VwYXRpb25zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlT2NjdXBhdGlvbkFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaE9jY3VwYXRpb25zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKG9jY3VwYXRpb25zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpjhnrvhnoHhnprhnpThnpo8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvb2NjdXBhdGlvbnMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e29jY3VwYXRpb25zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9jY3VwYXRpb25MaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgT2ZmZXJQcm9ncmFtIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPZmZlclByb2dyYW1BY3Rpb24sIG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbiwgdXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2ZmZXJfcHJvZ3JhbS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBvZmZlclByb2dyYW0sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2ZmZXJQcm9ncmFtXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBvZmZlclByb2dyYW0pIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBvZmZlclByb2dyYW0ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IG9mZmVyUHJvZ3JhbS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW29mZmVyUHJvZ3JhbSwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvb2ZmZXItcHJvZ3JhbXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBPZmZlclByb2dyYW0pID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZU9mZmVyUHJvZ3JhbUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVPZmZlclByb2dyYW1BY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGegOGemOGfkuGemOGenOGeuOGekuGeuOGeleGfkuGeiuGem+Gfi+Geh+GevOGek+KAiycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6A4Z6Y4Z+S4Z6Y4Z6c4Z644Z6S4Z644Z6V4Z+S4Z6K4Z6b4Z+L4Z6H4Z684Z6T4oCLJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvb2ZmZXItcHJvZ3JhbXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZU9mZmVyUHJvZ3JhbUFjdGlvbiwgb2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uLCBmZXRjaE9mZmVyUHJvZ3JhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vZmZlcl9wcm9ncmFtL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IE9mZmVyUHJvZ3JhbUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBvZmZlclByb2dyYW1zLCBvZmZlclByb2dyYW1zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9mZmVyUHJvZ3JhbSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaE9mZmVyUHJvZ3JhbXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb2ZmZXItcHJvZ3JhbXMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVPZmZlclByb2dyYW1BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hPZmZlclByb2dyYW1zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKG9mZmVyUHJvZ3JhbXMgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGegOGemOGfkuGemOGenOGeuOGekuGeuOGeleGfkuGeiuGem+Gfi+Geh+GevOGek+KAizwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtmaWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9vZmZlci1wcm9ncmFtcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17b2ZmZXJQcm9ncmFtc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBPZmZlclByb2dyYW1MaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgT3Bwb3J0dW5pdHlTb3VyY2UgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uLCBvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbiwgdXBkYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vcHBvcnR1bml0eV9zb3VyY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBvcHBvcnR1bml0eVNvdXJjZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIG9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9wcG9ydHVuaXR5U291cmNlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIG9wcG9ydHVuaXR5U291cmNlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogb3Bwb3J0dW5pdHlTb3VyY2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IG9wcG9ydHVuaXR5U291cmNlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbb3Bwb3J0dW5pdHlTb3VyY2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvcHBvcnR1bml0eVNvdXJjZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvb3Bwb3J0dW5pdHktc291cmNlcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW29wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogT3Bwb3J0dW5pdHlTb3VyY2UpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpThn5LhnprhnpfhnpbhnrHhnoDhnrbhnp8nIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGelOGfkuGemuGel+GeluGeseGegOGetuGenyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17b3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvb3Bwb3J0dW5pdHktc291cmNlcycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T3Bwb3J0dW5pdHlTb3VyY2VQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiwgb3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24sIGZldGNoT3Bwb3J0dW5pdHlTb3VyY2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb3Bwb3J0dW5pdHlfc291cmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IE9wcG9ydHVuaXR5U291cmNlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IG9wcG9ydHVuaXR5U291cmNlcywgb3Bwb3J0dW5pdHlTb3VyY2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9wcG9ydHVuaXR5U291cmNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoT3Bwb3J0dW5pdHlTb3VyY2VzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb3Bwb3J0dW5pdHktc291cmNlcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoT3Bwb3J0dW5pdHlTb3VyY2VzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKG9wcG9ydHVuaXR5U291cmNlcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6U4Z+S4Z6a4Z6X4Z6W4Z6x4Z6A4Z624Z6fPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL29wcG9ydHVuaXR5LXNvdXJjZXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e29wcG9ydHVuaXR5U291cmNlc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBPcHBvcnR1bml0eVNvdXJjZUxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBQcm92aW5jZSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlUHJvdmluY2VBY3Rpb24sIHByb3ZpbmNlRGV0YWlsQWN0aW9uLCB1cGRhdGVQcm92aW5jZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb3ZpbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0UHJvdmluY2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgcHJvdmluY2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBwcm92aW5jZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5wcm92aW5jZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChwcm92aW5jZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBwcm92aW5jZSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHByb3ZpbmNlLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm92aW5jZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3Byb3ZpbmNlLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvdmluY2VVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3Byb3ZpbmNlcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3Byb3ZpbmNlVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogUHJvdmluY2UpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVByb3ZpbmNlQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVByb3ZpbmNlQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnoHhn4Hhno/hn5Lhno8nIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGegeGfgeGej+GfkuGejyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17cHJvdmluY2VVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvcHJvdmluY2VzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRQcm92aW5jZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVByb3ZpbmNlQWN0aW9uLCBwcm92aW5jZURldGFpbEFjdGlvbiwgZmV0Y2hQcm92aW5jZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wcm92aW5jZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBQcm92aW5jZUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBwcm92aW5jZXMsIHByb3ZpbmNlc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5wcm92aW5jZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFByb3ZpbmNlcygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gocHJvdmluY2VEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3Byb3ZpbmNlcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVByb3ZpbmNlQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoUHJvdmluY2VzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHByb3ZpbmNlcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6B4Z+B4Z6P4Z+S4Z6PPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3Byb3ZpbmNlcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17cHJvdmluY2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFByb3ZpbmNlTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFNraWxsIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVTa2lsbEFjdGlvbiwgc2tpbGxEZXRhaWxBY3Rpb24sIHVwZGF0ZVNraWxsQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2tpbGwvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRTa2lsbFBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBza2lsbCwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHNraWxsVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnNraWxsXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHNraWxsRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHNraWxsKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogc2tpbGwubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHNraWxsLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2tpbGwsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFza2lsbFVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvc2tpbGxzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbc2tpbGxVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBTa2lsbCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlU2tpbGxBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlU2tpbGxBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGeh+GfhuGek+GetuGeiScgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6H4Z+G4Z6T4Z624Z6JJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtza2lsbFVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9za2lsbHMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFNraWxsUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlU2tpbGxBY3Rpb24sIHNraWxsRGV0YWlsQWN0aW9uLCBmZXRjaFNraWxscyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NraWxsL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFNraWxsTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHNraWxscywgc2tpbGxzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnNraWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoU2tpbGxzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChza2lsbERldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvc2tpbGxzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlU2tpbGxBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hTa2lsbHMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAoc2tpbGxzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5Lhnofhnrjhnofhn4bhnpPhnrbhnok8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvc2tpbGxzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtza2lsbHNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2tpbGxMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVGVybXNDb25kaXRpb24gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uLCB0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbiwgdXBkYXRlVGVybXNDb25kaXRpb25BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90ZXJtc19jb25kaXRpb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRUZXJtc0NvbmRpdGlvblBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB0ZXJtc0NvbmRpdGlvbiwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHRlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRlcm1zQ29uZGl0aW9uXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHRlcm1zQ29uZGl0aW9uRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHRlcm1zQ29uZGl0aW9uKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdGVybXNDb25kaXRpb24ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRlcm1zQ29uZGl0aW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbdGVybXNDb25kaXRpb24sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0ZXJtc0NvbmRpdGlvblVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvdGVybXMtY29uZGl0aW9ucycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3Rlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVGVybXNDb25kaXRpb24pID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpvhnoDhn5LhnoHhnoHhno7hn5LhnownIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGem+GegOGfkuGegeGegeGejuGfkuGejCd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdGVybXMtY29uZGl0aW9ucycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0VGVybXNDb25kaXRpb25QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVUZXJtc0NvbmRpdGlvbkFjdGlvbiwgdGVybXNDb25kaXRpb25EZXRhaWxBY3Rpb24sIGZldGNoVGVybXNDb25kaXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdGVybXNfY29uZGl0aW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFRlcm1zQ29uZGl0aW9uTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHRlcm1zQ29uZGl0aW9ucywgdGVybXNDb25kaXRpb25zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRlcm1zQ29uZGl0aW9uKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVGVybXNDb25kaXRpb25zKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvdGVybXMtY29uZGl0aW9ucy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVGVybXNDb25kaXRpb25zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHRlcm1zQ29uZGl0aW9ucyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6b4Z6A4Z+S4Z6B4Z6B4Z6O4Z+S4Z6MPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3Rlcm1zLWNvbmRpdGlvbnMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3Rlcm1zQ29uZGl0aW9uc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUZXJtc0NvbmRpdGlvbkxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBUcmFpbmluZ1Nlc3Npb24gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVRyYWluaW5nU2Vzc2lvbkFjdGlvbiwgdHJhaW5pbmdTZXNzaW9uRGV0YWlsQWN0aW9uLCB1cGRhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cmFpbmluZ19zZXNzaW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0VHJhaW5pbmdTZXNzaW9uUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHRyYWluaW5nU2Vzc2lvbiwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHRyYWluaW5nU2Vzc2lvblVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmFpbmluZ1Nlc3Npb25cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godHJhaW5pbmdTZXNzaW9uRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHRyYWluaW5nU2Vzc2lvbikge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHRyYWluaW5nU2Vzc2lvbi5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdHJhaW5pbmdTZXNzaW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbdHJhaW5pbmdTZXNzaW9uLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy90cmFpbmluZy1zZXNzaW9ucycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3RyYWluaW5nU2Vzc2lvblVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFRyYWluaW5nU2Vzc2lvbikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVRyYWluaW5nU2Vzc2lvbkFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6c4Z6C4Z+S4Z6C4Z6U4Z6O4Z+S4Z6P4Z674Z+H4Z6U4Z6O4Z+S4Z6P4Z624Z6bJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnpzhnoLhn5LhnoLhnpThno7hn5Lhno/hnrvhn4fhnpThno7hn5Lhno/hnrbhnpsnfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e3RyYWluaW5nU2Vzc2lvblVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy90cmFpbmluZy1zZXNzaW9ucycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0VHJhaW5pbmdTZXNzaW9uUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uLCB0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24sIGZldGNoVHJhaW5pbmdTZXNzaW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYWluaW5nX3Nlc3Npb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVHJhaW5pbmdTZXNzaW9uTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHRyYWluaW5nU2Vzc2lvbnMsIHRyYWluaW5nU2Vzc2lvbnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudHJhaW5pbmdTZXNzaW9uKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVHJhaW5pbmdTZXNzaW9ucygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2godHJhaW5pbmdTZXNzaW9uRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC90cmFpbmluZy1zZXNzaW9ucy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVRyYWluaW5nU2Vzc2lvbkFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFRyYWluaW5nU2Vzc2lvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodHJhaW5pbmdTZXNzaW9ucyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6c4Z6C4Z+S4Z6C4Z6U4Z6O4Z+S4Z6P4Z674Z+H4Z6U4Z6O4Z+S4Z6P4Z624Z6bPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3RyYWluaW5nLXNlc3Npb25zL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXt0cmFpbmluZ1Nlc3Npb25zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWluaW5nU2Vzc2lvbkxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBUcmF2ZWxEYXkgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVRyYXZlbERheUFjdGlvbiwgdHJhdmVsRGF5RGV0YWlsQWN0aW9uLCB1cGRhdGVUcmF2ZWxEYXlBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cmF2ZWxfZGF5L2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0VHJhdmVsRGF5UGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHRyYXZlbERheSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHRyYXZlbERheVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmF2ZWxEYXlcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godHJhdmVsRGF5RGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHRyYXZlbERheSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHRyYXZlbERheS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdHJhdmVsRGF5LmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbdHJhdmVsRGF5LCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdHJhdmVsRGF5VXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy90cmF2ZWwtZGF5cycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3RyYXZlbERheVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFRyYXZlbERheSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlVHJhdmVsRGF5QWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVRyYXZlbERheUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6Q4Z+S4Z6E4Z+D4Z6S4Z+S4Z6c4Z6+4Z6K4Z+G4Z6O4Z6+4Z6aJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnpDhn5LhnoThn4PhnpLhn5Lhnpzhnr7hnorhn4bhno7hnr7hnponfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e3RyYXZlbERheVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy90cmF2ZWwtZGF5cycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0VHJhdmVsRGF5UGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlVHJhdmVsRGF5QWN0aW9uLCB0cmF2ZWxEYXlEZXRhaWxBY3Rpb24sIGZldGNoVHJhdmVsRGF5cyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYXZlbF9kYXkvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVHJhdmVsRGF5TGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHRyYXZlbERheXMsIHRyYXZlbERheXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudHJhdmVsRGF5KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVHJhdmVsRGF5cygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2godHJhdmVsRGF5RGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC90cmF2ZWwtZGF5cy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVRyYXZlbERheUFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFRyYXZlbERheXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodHJhdmVsRGF5cyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6Q4Z+S4Z6E4Z+D4Z6S4Z+S4Z6c4Z6+4Z6K4Z+G4Z6O4Z6+4Z6aPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3RyYXZlbC1kYXlzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXt0cmF2ZWxEYXlzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRyYXZlbERheUxpc3Q7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJjcmVhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbiIsImludGVyZXN0ZWRUZWFtRGV0YWlsQWN0aW9uIiwidXBkYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24iLCJ1c2VOYXZpZ2F0ZSIsIlRleHRBcmVhIiwiTmV3RWRpdEludGVyZXN0ZWRUZWFtUGFnZSIsImRpc3BhdGNoIiwibmF2aWdhdGUiLCJfdXNlU2VsZWN0b3IiLCJzdGF0ZSIsImludGVyZXN0ZWRUZWFtIiwicmVnaXN0ZXJFcnJvck1lc3NhZ2UiLCJpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmciLCJfRm9ybSR1c2VGb3JtIiwiX0Zvcm0iLCJ1c2VGb3JtIiwiX0Zvcm0kdXNlRm9ybTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm0iLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImlkIiwiZ2V0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImlzQ2xpY2siLCJzZXRJc0NsaWNrIiwiTnVtYmVyIiwicmVzZXRGaWVsZHMiLCJzZXRGaWVsZHNWYWx1ZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzdWNjZXNzIiwib25GaW5pc2giLCJ2YWx1ZXMiLCJkYXRhIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwibGF5b3V0Iiwic3R5bGUiLCJtYXhXaWR0aCIsIm1hcmdpbiIsIl9Sb3ciLCJndXR0ZXIiLCJfQ29sIiwic3BhbiIsIkl0ZW0iLCJsYWJlbCIsInJ1bGVzIiwicmVxdWlyZWQiLCJtZXNzYWdlIiwiX0lucHV0Iiwicm93cyIsIl9CdXR0b24iLCJ0eXBlIiwiYmxvY2siLCJodG1sVHlwZSIsImxvYWRpbmciLCJvbkNsaWNrIiwiTG9hZGluZ0RpYWxvZyIsIkRlbGV0ZU91dGxpbmVkIiwiRWRpdE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiZGVsZXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24iLCJmZXRjaEludGVyZXN0ZWRUZWFtcyIsIlN3YWwiLCJJbnRlcmVzdGVkVGVhbUxpc3QiLCJzZWxlY3RlZFJvd3MiLCJzZXRTZWxlY3RlZFJvd3MiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlYXJjaFRleHQiLCJzZXRTZWFyY2hUZXh0IiwiaW50ZXJlc3RlZFRlYW1zIiwiaW50ZXJlc3RlZFRlYW1zUGVuZGluZyIsImhhbmRsZUVkaXQiLCJjb25jYXQiLCJoYW5kbGVEZWxldGUiLCJmaXJlIiwidGl0bGUiLCJ0ZXh0IiwiaWNvbiIsInNob3dDb25maXJtQnV0dG9uIiwic2hvd0NhbmNlbEJ1dHRvbiIsImh0bWwiLCJkaWRPcGVuIiwiX1N3YWwkZ2V0UG9wdXAiLCJfU3dhbCRnZXRQb3B1cDIiLCJjb25maXJtQnV0dG9uIiwiZ2V0UG9wdXAiLCJxdWVyeVNlbGVjdG9yIiwiY2FuY2VsQnV0dG9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRoZW4iLCJjbG9zZSIsImhhbmRsZVNlYXJjaCIsInRyaW0iLCJoYW5kbGVSZXNldCIsImNvbHVtbnMiLCJkYXRhSW5kZXgiLCJrZXkiLCJyZXNwb25zaXZlIiwicmVuZGVyIiwiXyIsInJlY29yZCIsIl9TcGFjZSIsInNpemUiLCJkYW5nZXIiLCJmaWx0ZXJlZERhdGEiLCJmaWx0ZXIiLCJpdCIsIl9pdCRuYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm92ZXJmbG93WCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJiYWNrZ3JvdW5kIiwibWFyZ2luQm90dG9tIiwiZmxleFdyYXAiLCJ3cmFwIiwibGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJ3aWR0aCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwiX1RhYmxlIiwicm93U2VsZWN0aW9uIiwiZGF0YVNvdXJjZSIsIm1hcCIsImluZGV4IiwiX29iamVjdFNwcmVhZCIsInBhZ2luYXRpb24iLCJwYWdlU2l6ZSIsInNob3dTaXplQ2hhbmdlciIsInNjcm9sbCIsIngiLCJ2aXNpYmxlIiwiY3JlYXRlTGFuZ3VhZ2VBY3Rpb24iLCJsYW5ndWFnZURldGFpbEFjdGlvbiIsInVwZGF0ZUxhbmd1YWdlQWN0aW9uIiwiTmV3RWRpdExhbmd1YWdlUGFnZSIsImxhbmd1YWdlIiwibGFuZ3VhZ2VVcGRhdGVQZW5kaW5nIiwiZGVsZXRlTGFuZ3VhZ2VBY3Rpb24iLCJmZXRjaExhbmd1YWdlcyIsIkxhbmd1YWdlTGlzdCIsImxhbmd1YWdlcyIsImxhbmd1YWdlc1BlbmRpbmciLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJnZXRXaXRoQ29uZmlnIiwiVVJMIiwibm90aWZ5VXNlclRlbGVncmFtU2VydmljZSIsIl9yZWYiLCJfY2FsbGVlIiwidXNlcl9pZCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJOT1RJRlkiLCJfeCIsIl94MiIsIm5vdGlmeVVzZXJCeVN0YXR1cyIsIl9yZWYyIiwiX2NhbGxlZTIiLCJzdGF0dXMiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJOT1RJRllfU1RBVFVTIiwiX3gzIiwiX3g0IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiaXNBcnJheSIsIk9wdGlvbiIsIl9TZWxlY3QiLCJJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nIiwiTm90aWZpY2F0aW9uUGFnZSIsInNlbGVjdGVkU3RhdHVzIiwic2V0U2VsZWN0ZWRTdGF0dXMiLCJtZXNzYWdlVGV4dCIsInNldE1lc3NhZ2VUZXh0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJjb25maXJtVmlzaWJsZSIsInNldENvbmZpcm1WaXNpYmxlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiZmluYWxDb25maXJtVmlzaWJsZSIsInNldEZpbmFsQ29uZmlybVZpc2libGUiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2VuZFR5cGUiLCJzZXRTZW5kVHlwZSIsImF1dGgiLCJ1c2VycyIsInVzZXJTdGF0dXNlcyIsInNob3dDb25maXJtRGlhbG9nIiwid2FybmluZyIsImhhbmRsZUZpcnN0Q29uZmlybSIsImhhbmRsZUNvbmZpcm1TZW5kIiwidDAiLCJsZyIsIl9Nb2RhbCIsIm9uT2siLCJvbkNhbmNlbCIsIm9rVGV4dCIsImNhbmNlbFRleHQiLCJjcmVhdGVPY2N1cGF0aW9uQWN0aW9uIiwib2NjdXBhdGlvbkRldGFpbEFjdGlvbiIsInVwZGF0ZU9jY3VwYXRpb25BY3Rpb24iLCJOZXdFZGl0T2NjdXBhdGlvblBhZ2UiLCJvY2N1cGF0aW9uIiwib2NjdXBhdGlvblVwZGF0ZVBlbmRpbmciLCJkZWxldGVPY2N1cGF0aW9uQWN0aW9uIiwiZmV0Y2hPY2N1cGF0aW9ucyIsIk9jY3VwYXRpb25MaXN0Iiwib2NjdXBhdGlvbnMiLCJvY2N1cGF0aW9uc1BlbmRpbmciLCJjcmVhdGVPZmZlclByb2dyYW1BY3Rpb24iLCJvZmZlclByb2dyYW1EZXRhaWxBY3Rpb24iLCJ1cGRhdGVPZmZlclByb2dyYW1BY3Rpb24iLCJOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZSIsIm9mZmVyUHJvZ3JhbSIsIm9mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmciLCJkZWxldGVPZmZlclByb2dyYW1BY3Rpb24iLCJmZXRjaE9mZmVyUHJvZ3JhbXMiLCJPZmZlclByb2dyYW1MaXN0Iiwib2ZmZXJQcm9ncmFtcyIsIm9mZmVyUHJvZ3JhbXNQZW5kaW5nIiwiY3JlYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24iLCJvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbiIsInVwZGF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwiTmV3RWRpdE9wcG9ydHVuaXR5U291cmNlUGFnZSIsIm9wcG9ydHVuaXR5U291cmNlIiwib3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nIiwiZGVsZXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24iLCJmZXRjaE9wcG9ydHVuaXR5U291cmNlcyIsIk9wcG9ydHVuaXR5U291cmNlTGlzdCIsIm9wcG9ydHVuaXR5U291cmNlcyIsIm9wcG9ydHVuaXR5U291cmNlc1BlbmRpbmciLCJjcmVhdGVQcm92aW5jZUFjdGlvbiIsInByb3ZpbmNlRGV0YWlsQWN0aW9uIiwidXBkYXRlUHJvdmluY2VBY3Rpb24iLCJOZXdFZGl0UHJvdmluY2VQYWdlIiwicHJvdmluY2UiLCJwcm92aW5jZVVwZGF0ZVBlbmRpbmciLCJkZWxldGVQcm92aW5jZUFjdGlvbiIsImZldGNoUHJvdmluY2VzIiwiUHJvdmluY2VMaXN0IiwicHJvdmluY2VzIiwicHJvdmluY2VzUGVuZGluZyIsImNyZWF0ZVNraWxsQWN0aW9uIiwic2tpbGxEZXRhaWxBY3Rpb24iLCJ1cGRhdGVTa2lsbEFjdGlvbiIsIk5ld0VkaXRTa2lsbFBhZ2UiLCJza2lsbCIsInNraWxsVXBkYXRlUGVuZGluZyIsImRlbGV0ZVNraWxsQWN0aW9uIiwiZmV0Y2hTa2lsbHMiLCJTa2lsbExpc3QiLCJza2lsbHMiLCJza2lsbHNQZW5kaW5nIiwiY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24iLCJ0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbiIsInVwZGF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwiTmV3RWRpdFRlcm1zQ29uZGl0aW9uUGFnZSIsInRlcm1zQ29uZGl0aW9uIiwidGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlVGVybXNDb25kaXRpb25BY3Rpb24iLCJmZXRjaFRlcm1zQ29uZGl0aW9ucyIsIlRlcm1zQ29uZGl0aW9uTGlzdCIsInRlcm1zQ29uZGl0aW9ucyIsInRlcm1zQ29uZGl0aW9uc1BlbmRpbmciLCJjcmVhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJ0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJOZXdFZGl0VHJhaW5pbmdTZXNzaW9uUGFnZSIsInRyYWluaW5nU2Vzc2lvbiIsInRyYWluaW5nU2Vzc2lvblVwZGF0ZVBlbmRpbmciLCJkZWxldGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJmZXRjaFRyYWluaW5nU2Vzc2lvbnMiLCJUcmFpbmluZ1Nlc3Npb25MaXN0IiwidHJhaW5pbmdTZXNzaW9ucyIsInRyYWluaW5nU2Vzc2lvbnNQZW5kaW5nIiwiY3JlYXRlVHJhdmVsRGF5QWN0aW9uIiwidHJhdmVsRGF5RGV0YWlsQWN0aW9uIiwidXBkYXRlVHJhdmVsRGF5QWN0aW9uIiwiTmV3RWRpdFRyYXZlbERheVBhZ2UiLCJ0cmF2ZWxEYXkiLCJ0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nIiwiZGVsZXRlVHJhdmVsRGF5QWN0aW9uIiwiZmV0Y2hUcmF2ZWxEYXlzIiwiVHJhdmVsRGF5TGlzdCIsInRyYXZlbERheXMiLCJ0cmF2ZWxEYXlzUGVuZGluZyJdLCJzb3VyY2VSb290IjoiIn0=