"use strict";
(self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_main_s"],{
/***/ "./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_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/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_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __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_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.skill;
}),
skill = _useSelector.skill,
registerErrorMessage = _useSelector.registerErrorMessage,
skillUpdatePending = _useSelector.skillUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["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_6__.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_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__.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_6__.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_6__.useEffect)(function () {
if (!skillUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["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_8__.updateSkillAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__.createSkillAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααΆα' : 'ααααααααααΈααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: skillUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __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/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
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 _skills$meta, _skills$meta2;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(1),
_useState2 = _slicedToArray(_useState, 2),
currentPage = _useState2[0],
setCurrentPage = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(10),
_useState4 = _slicedToArray(_useState3, 2),
pageSize = _useState4[0],
setPageSize = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState6 = _slicedToArray(_useState5, 2),
selectedRows = _useState6[0],
setSelectedRows = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
searchText = _useState8[0],
setSearchText = _useState8[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.skill;
}),
skills = _useSelector.skills,
skillsPending = _useSelector.skillsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchSkills)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.skillDetailAction)(id));
navigate("/skills/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_11__.deleteSkillAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchSkills)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setCurrentPage(1);
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var handleTableChange = function handleTableChange(pagination) {
setCurrentPage(pagination.current);
setPageSize(pagination.pageSize);
};
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_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = ((skills === null || skills === void 0 ? void 0 : skills.data) || []).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_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1787\u17C6\u1793\u17B6\u1789"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (skills === null || skills === void 0 || (_skills$meta = skills.meta) === null || _skills$meta === void 0 ? void 0 : _skills$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
setCurrentPage(1);
setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["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_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["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: {
current: currentPage,
pageSize: pageSize,
total: (skills === null || skills === void 0 || (_skills$meta2 = skills.meta) === null || _skills$meta2 === void 0 ? void 0 : _skills$meta2.total) || 0,
showSizeChanger: true
},
onChange: handleTableChange,
rowKey: "id",
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["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_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/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_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __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_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.termsCondition;
}),
termsCondition = _useSelector.termsCondition,
registerErrorMessage = _useSelector.registerErrorMessage,
termsConditionUpdatePending = _useSelector.termsConditionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["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_6__.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_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__.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_6__.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_6__.useEffect)(function () {
if (!termsConditionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["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_8__.updateTermsConditionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTermsConditionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'αααααααααααααα' : 'ααααααααααΈαααααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: termsConditionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __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/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __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_11__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
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_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.termsCondition;
}),
termsConditions = _useSelector.termsConditions,
termsConditionsPending = _useSelector.termsConditionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTermsConditions)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.termsConditionDetailAction)(id));
navigate("/terms-conditions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_11__.deleteTermsConditionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTermsConditions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["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_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["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_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["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_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["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_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["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_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/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_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __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_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSession = _useSelector.trainingSession,
registerErrorMessage = _useSelector.registerErrorMessage,
trainingSessionUpdatePending = _useSelector.trainingSessionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["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_6__.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_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__.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_6__.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_6__.useEffect)(function () {
if (!trainingSessionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["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_8__.updateTrainingSessionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTrainingSessionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααααααα»ααααααΆα' : 'ααααααααααΈααααααααα»ααααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: trainingSessionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __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/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __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_11__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
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 _trainingSessions$met, _trainingSessions$met2;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(1),
_useState2 = _slicedToArray(_useState, 2),
currentPage = _useState2[0],
setCurrentPage = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(10),
_useState4 = _slicedToArray(_useState3, 2),
pageSize = _useState4[0],
setPageSize = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState6 = _slicedToArray(_useState5, 2),
selectedRows = _useState6[0],
setSelectedRows = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
searchText = _useState8[0],
setSearchText = _useState8[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSessions = _useSelector.trainingSessions,
trainingSessionsPending = _useSelector.trainingSessionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTrainingSessions)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.trainingSessionDetailAction)(id));
navigate("/training-sessions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_11__.deleteTrainingSessionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTrainingSessions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setCurrentPage(1);
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var handleTableChange = function handleTableChange(pagination) {
setCurrentPage(pagination.current);
setPageSize(pagination.pageSize);
};
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_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = ((trainingSessions === null || trainingSessions === void 0 ? void 0 : trainingSessions.data) || []).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_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___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_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (trainingSessions === null || trainingSessions === void 0 || (_trainingSessions$met = trainingSessions.meta) === null || _trainingSessions$met === void 0 ? void 0 : _trainingSessions$met.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
setCurrentPage(1);
setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["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_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["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: {
current: currentPage,
pageSize: pageSize,
total: (trainingSessions === null || trainingSessions === void 0 || (_trainingSessions$met2 = trainingSessions.meta) === null || _trainingSessions$met2 === void 0 ? void 0 : _trainingSessions$met2.total) || 0,
showSizeChanger: true
},
onChange: handleTableChange,
rowKey: "id",
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["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_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/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_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __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_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.travelDay;
}),
travelDay = _useSelector.travelDay,
registerErrorMessage = _useSelector.registerErrorMessage,
travelDayUpdatePending = _useSelector.travelDayUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["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_6__.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_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__.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_6__.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_6__.useEffect)(function () {
if (!travelDayUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["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_8__.updateTravelDayAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTravelDayAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααααααΎααααΎα' : 'ααααααααααΈααααααααΎααααΎα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: travelDayUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __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/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __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_11__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
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 _travelDays$meta, _travelDays$meta2;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(1),
_useState2 = _slicedToArray(_useState, 2),
currentPage = _useState2[0],
setCurrentPage = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(10),
_useState4 = _slicedToArray(_useState3, 2),
pageSize = _useState4[0],
setPageSize = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState6 = _slicedToArray(_useState5, 2),
selectedRows = _useState6[0],
setSelectedRows = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
searchText = _useState8[0],
setSearchText = _useState8[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.travelDay;
}),
travelDays = _useSelector.travelDays,
travelDaysPending = _useSelector.travelDaysPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTravelDays)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.travelDayDetailAction)(id));
navigate("/travel-days/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___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_11__.deleteTravelDayAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTravelDays)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setCurrentPage(1);
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var handleTableChange = function handleTableChange(pagination) {
setCurrentPage(pagination.current);
setPageSize(pagination.pageSize);
};
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_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = ((travelDays === null || travelDays === void 0 ? void 0 : travelDays.data) || []).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_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___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_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (travelDays === null || travelDays === void 0 || (_travelDays$meta = travelDays.meta) === null || _travelDays$meta === void 0 ? void 0 : _travelDays$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
setCurrentPage(1);
setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["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_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["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: {
current: currentPage,
pageSize: pageSize,
total: (travelDays === null || travelDays === void 0 || (_travelDays$meta2 = travelDays.meta) === null || _travelDays$meta2 === void 0 ? void 0 : _travelDays$meta2.total) || 0,
showSizeChanger: true
},
onChange: handleTableChange,
rowKey: "id",
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: travelDaysPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TravelDayList);
/***/ }),
/***/ "./src/shared/views/main/user/form.tsx":
/*!*********************************************!*\
!*** ./src/shared/views/main/user/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_modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../shared/core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js");
/* harmony import */ var antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! antd/es/mentions */ "../../../node_modules/antd/lib/mentions/index.js");
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 _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
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 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 NewEditUserPage = function NewEditUserPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_12__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useSelector)(function (state) {
return state.user;
}),
user = _useSelector.user,
registerErrorMessage = _useSelector.registerErrorMessage,
userUpdatePending = _useSelector.userUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_8__["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_9__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
photoUrl = _useState2[0],
setPhotoUrl = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(false),
_useState4 = _slicedToArray(_useState3, 2),
previewVisible = _useState4[0],
setPreviewVisible = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(''),
_useState6 = _slicedToArray(_useState5, 2),
previewTitle = _useState6[0],
setPreviewTitle = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(null),
_useState8 = _slicedToArray(_useState7, 2),
previewContent = _useState8[0],
setPreviewContent = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)([]),
_useState0 = _slicedToArray(_useState9, 2),
photoList = _useState0[0],
setPhotoList = _useState0[1];
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useSelector)(function (state) {
return state;
}),
auth = _useSelector2.auth; // Get user role
var currentUser = auth.currentUser;
var isAdmin = (currentUser === null || currentUser === void 0 ? void 0 : currentUser.role) === "super_admin"; // Check if user is admin
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(false),
_useState10 = _slicedToArray(_useState1, 2),
isClick = _useState10[0],
setIsClick = _useState10[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_9__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.userDetailAction)(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_9__.useEffect)(function () {
if (id && user) {
form.setFieldsValue({
first_name: user.first_name || '',
last_name: user.last_name || '',
username: user.username || '',
email: user.email || '',
phone: user.phone || '',
role: user.role || '',
telegram_id: user.telegram_id || '',
photo_url: user.photo_url || '',
grad_type: user.grad_type || '',
status: user.status || ''
});
setPhotoUrl(user.photo_url || '');
}
}, [user, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_9__.useEffect)(function () {
if (!userUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/users');
}
}
}, [userUpdatePending, registerErrorMessage, id, isClick, navigate]);
// Common helper function for file uploads
var handleFileChange = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(file, fieldName, form) {
var formData, response, _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.p = _context.n) {
case 0:
if (isAdmin) {
_context.n = 1;
break;
}
return _context.a(2);
case 1:
if (file) {
_context.n = 2;
break;
}
console.error("".concat(fieldName, " Upload Error: No file selected."));
return _context.a(2);
case 2:
_context.p = 2;
formData = new FormData();
formData.append("file", file);
_context.n = 3;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__.postUpload)(formData);
case 3:
response = _context.v;
if (response !== null && response !== void 0 && response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
}
_context.n = 5;
break;
case 4:
_context.p = 4;
_t = _context.v;
console.error("".concat(fieldName, " Upload Error:"), _t);
case 5:
return _context.a(2);
}
}, _callee, null, [[2, 4]]);
}));
return function handleFileChange(_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
var handlePhotoUploadChange = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(photoFile) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
if (isAdmin) {
_context2.n = 1;
break;
}
return _context2.a(2);
case 1:
_context2.n = 2;
return handleFileChange(photoFile, "photo_url", form);
case 2:
return _context2.a(2);
}
}, _callee2);
}));
return function handlePhotoUploadChange(_x4) {
return _ref2.apply(this, arguments);
};
}();
var handleFileChangeNew = /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(fileList, setFileList, fieldName) {
var updatedFileList, formData, response, doneFileList, errorFileList, _t2;
return _regenerator().w(function (_context3) {
while (1) switch (_context3.p = _context3.n) {
case 0:
// updatedFileList: mark all files as "uploading"
updatedFileList = fileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "uploading" // inferred as the literal "uploading"
});
});
setFileList(updatedFileList);
_context3.p = 1;
formData = new FormData();
updatedFileList.forEach(function (file) {
if (file.originFileObj) {
formData.append("file", file.originFileObj);
}
});
_context3.n = 2;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__.postUpload)(formData);
case 2:
response = _context3.v;
if (response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
// doneFileList: mark all files as "done" on successful upload
doneFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "done"
});
});
setFileList(doneFileList);
}
_context3.n = 4;
break;
case 3:
_context3.p = 3;
_t2 = _context3.v;
console.error("".concat(fieldName, " Upload Error:"), _t2);
// errorFileList: mark all files as "error" on failure
errorFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "error"
});
});
setFileList(errorFileList);
case 4:
return _context3.a(2);
}
}, _callee3, null, [[1, 3]]);
}));
return function handleFileChangeNew(_x5, _x6, _x7) {
return _ref3.apply(this, arguments);
};
}();
var handlePhotoUploadChangeNew = /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(_ref4) {
var fileList;
return _regenerator().w(function (_context4) {
while (1) switch (_context4.n) {
case 0:
fileList = _ref4.fileList;
_context4.n = 1;
return handleFileChangeNew(fileList, setPhotoList, "photo_url");
case 1:
return _context4.a(2);
}
}, _callee4);
}));
return function handlePhotoUploadChangeNew(_x8) {
return _ref5.apply(this, arguments);
};
}();
var beforeUpload = function beforeUpload(file) {
var isImage = file.type.startsWith("image/");
if (!isImage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].error("You can only upload image files (JPG/PNG)!");
}
return isImage;
};
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.updateUserAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.createUserAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
var handlePreview = function handlePreview(url, title) {
setPreviewTitle(title);
setPreviewContent(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
width: '70%',
margin: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("img", {
src: url,
alt: title,
style: {
width: '100%'
}
})));
setPreviewVisible(true);
};
var uploadButton = function uploadButton(url, setUrl, label, fieldName) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
position: 'relative',
display: 'inline-block'
}
}, url ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
cursor: 'pointer'
},
onClick: function onClick() {
return handlePreview(url, label);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("img", {
src: url,
alt: label,
style: {
width: '100%',
maxHeight: '300px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_14__["default"], null),
size: "small",
style: {
position: 'absolute',
bottom: 12,
right: 8,
background: '#1890ff',
color: '#fff'
},
onClick: function onClick() {
var _document$getElementB;
return (_document$getElementB = document.getElementById("upload-".concat(label))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.click();
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("input", {
id: "upload-".concat(label),
type: "file",
style: {
display: 'none'
},
onChange: function onChange(e) {
var file = e.target.files[0];
if (file) {
// You can add your logic here for different file handling
handlePhotoUploadChange(file);
setUrl(URL.createObjectURL(file));
}
}
})) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_5__["default"], {
listType: "picture",
fileList: photoList,
onChange: handlePhotoUploadChangeNew,
beforeUpload: beforeUpload,
showUploadList: {
showPreviewIcon: true,
showRemoveIcon: true
},
className: "w-full custom-upload"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_15__["default"], null))));
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("h2", null, id ? 'ααααααα’αααααααΎααααΆαα' : 'ααααααααααΈα’αααααααΎααααΆαα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 6
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179A\u17BC\u1794\u1790\u178F",
name: "photo_url"
}, uploadButton(photoUrl, setPhotoUrl, 'ααΌααα', 'photo_url'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 18
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1793\u17B6\u1798\u1781\u17D2\u179B\u17BD\u1793",
name: "first_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1793\u17B6\u1798\u178F\u17D2\u179A\u1780\u17BC\u179B",
name: "last_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB",
name: "username",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u17A2\u17CA\u17B8\u1798\u17C2\u179B",
name: "email",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179B\u17C1\u1781\u1791\u17BC\u179A\u179F\u17D0\u1796\u17D2\u1791",
name: "phone",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u178F\u17BD\u1793\u17B6\u1791\u17B8",
name: "role",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "super_admin"
}, "Super admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "admin"
}, "Admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "user"
}, "User"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "reporter"
}, "Reporter"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u178F\u17C1\u179B\u17C1\u1780\u17D2\u179A\u17B6\u1798\u200B ID",
name: "telegram_id",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1794\u17D2\u179A\u1797\u17C1\u1791",
name: "grad_type",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "password"
}, "Password"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "telegram"
}, "Telegram")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179F\u17D2\u1790\u17B6\u1793\u1797\u17B6\u1796",
name: "status",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "ACTIVE"
}, "Active"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "DISABLE"
}, "Disable"))))), !id && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1796\u17B6\u1780\u17D2\u1799\u179F\u1798\u17D2\u1784\u17B6\u178F\u17CB",
name: "password",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], {
type: "password"
})))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12],
justify: "end"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: userUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/users');
}
}, "Cancel")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
visible: previewVisible,
title: previewTitle,
footer: null,
onCancel: function onCancel() {
return setPreviewVisible(false);
}
}, previewContent)));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserPage);
/***/ }),
/***/ "./src/shared/views/main/user/index.tsx":
/*!**********************************************!*\
!*** ./src/shared/views/main/user/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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var antd_es_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/image */ "../../../node_modules/antd/lib/image/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* 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_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.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_user_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_13__);
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 UserList = function UserList() {
var _users$meta, _users$meta2;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(1),
_useState2 = _slicedToArray(_useState, 2),
currentPage = _useState2[0],
setCurrentPage = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(10),
_useState4 = _slicedToArray(_useState3, 2),
pageSize = _useState4[0],
setPageSize = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState6 = _slicedToArray(_useState5, 2),
selectedRows = _useState6[0],
setSelectedRows = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
searchText = _useState8[0],
setSearchText = _useState8[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.user;
}),
users = _useSelector.users,
usersPending = _useSelector.usersPending;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchUsers)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.userDetailAction)(id));
navigate("/users/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___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_13___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_13___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_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.deleteUserAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchUsers)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setCurrentPage(1);
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var handleTableChange = function handleTableChange(pagination) {
setCurrentPage(pagination.current);
setPageSize(pagination.pageSize);
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααΆααααα½α',
dataIndex: 'first_name',
key: 'first_name',
responsive: ['sm']
}, {
title: 'ααΆααααααΌα',
dataIndex: 'last_name',
key: 'last_name',
responsive: ['sm']
}, {
title: 'αααααα’αααααααΎααααΆαα',
dataIndex: 'username',
key: 'username',
responsive: ['sm']
}, {
title: 'α’ααΈααα',
dataIndex: 'email',
key: 'email',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phone',
key: 'phone',
responsive: ['sm']
}, {
title: 'αα½ααΆααΈ',
dataIndex: 'role',
key: 'role',
responsive: ['sm']
}, {
title: 'ααααααααΆαβ ID',
dataIndex: 'telegram_id',
key: 'telegram_id',
responsive: ['sm']
}, {
title: 'ααΌααα',
dataIndex: 'photo_url',
key: 'photo_url',
responsive: ['sm'],
render: function render(text) {
return text ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_image__WEBPACK_IMPORTED_MODULE_4__["default"], {
width: 50,
src: text,
alt: "Photo",
style: {
borderRadius: 5,
border: '1px solid #ddd'
}
}) : 'No Image';
}
}, {
title: 'αααααα',
dataIndex: 'grad_type',
key: 'grad_type',
responsive: ['sm']
}, {
title: 'ααααΆαααΆα',
dataIndex: 'status',
key: 'status',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = ((users === null || users === void 0 ? void 0 : users.data) || []).filter(function (it) {
var _it$email, _it$username, _it$role, _it$first_name, _it$last_name, _it$phone, _it$telegram_id, _it$grad_type, _it$status;
var search = searchText.toLowerCase();
return ((_it$email = it.email) === null || _it$email === void 0 ? void 0 : _it$email.toLowerCase().includes(search)) || ((_it$username = it.username) === null || _it$username === void 0 ? void 0 : _it$username.toLowerCase().includes(search)) || ((_it$role = it.role) === null || _it$role === void 0 ? void 0 : _it$role.toLowerCase().includes(search)) || ((_it$first_name = it.first_name) === null || _it$first_name === void 0 ? void 0 : _it$first_name.toLowerCase().includes(search)) || ((_it$last_name = it.last_name) === null || _it$last_name === void 0 ? void 0 : _it$last_name.toLowerCase().includes(search)) || ((_it$phone = it.phone) === null || _it$phone === void 0 ? void 0 : _it$phone.toLowerCase().includes(search)) || ((_it$telegram_id = it.telegram_id) === null || _it$telegram_id === void 0 ? void 0 : _it$telegram_id.toLowerCase().includes(search)) || ((_it$grad_type = it.grad_type) === null || _it$grad_type === void 0 ? void 0 : _it$grad_type.toLowerCase().includes(search)) || ((_it$status = it.status) === null || _it$status === void 0 ? void 0 : _it$status.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (users === null || users === void 0 || (_users$meta = users.meta) === null || _users$meta === void 0 ? void 0 : _users$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
setCurrentPage(1);
setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/users/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["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.first_name
}, it);
}),
pagination: {
current: currentPage,
pageSize: pageSize,
total: (users === null || users === void 0 || (_users$meta2 = users.meta) === null || _users$meta2 === void 0 ? void 0 : _users$meta2.total) || 0,
showSizeChanger: true
},
onChange: handleTableChange,
rowKey: "id",
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__["default"], {
visible: usersPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserList);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/user_attendance/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_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/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_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_9__);
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 NewEditUserAttendancePage = function NewEditUserAttendancePage() {
var _userAttendance$volun, _userAttendance$volun2, _userAttendance$volun3, _userAttendance$volun4, _userAttendance$volun5, _userAttendance$volun6, _userAttendance$volun7, _userAttendance$volun8, _userAttendance$volun9, _userAttendance$volun0, _userAttendance$volun1, _userAttendance$volun10, _userAttendance$volun11, _userAttendance$volun12, _userAttendance$volun13, _userAttendance$volun14, _userAttendance$volun15;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_8__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendance = _useSelector.userAttendance,
registerErrorMessage = _useSelector.registerErrorMessage,
userAttendanceUpdatePending = _useSelector.userAttendanceUpdatePending;
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_5__.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_5__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_7__.userAttendanceDetailAction)(Number(id)));
}
}, [dispatch, id]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "User Attendance detail"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Code: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
color: userAttendance !== null && userAttendance !== void 0 && (_userAttendance$volun = userAttendance.volunteer) !== null && _userAttendance$volun !== void 0 && _userAttendance$volun.main_code ? 'green' : 'inherit'
}
}, (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun2 = userAttendance.volunteer) === null || _userAttendance$volun2 === void 0 ? void 0 : _userAttendance$volun2.main_code) || (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun3 = userAttendance.volunteer) === null || _userAttendance$volun3 === void 0 ? void 0 : _userAttendance$volun3.code))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Meeting Note: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_note)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Meeting Time: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, moment__WEBPACK_IMPORTED_MODULE_9___default()(userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Photo: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("img", {
src: userAttendance === null || userAttendance === void 0 || (_userAttendance$volun4 = userAttendance.volunteer) === null || _userAttendance$volun4 === void 0 ? void 0 : _userAttendance$volun4.photo,
alt: "photo",
style: {
maxHeight: '100px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Name Khmer: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun5 = userAttendance.volunteer) === null || _userAttendance$volun5 === void 0 ? void 0 : _userAttendance$volun5.last_name_khmer, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun6 = userAttendance.volunteer) === null || _userAttendance$volun6 === void 0 ? void 0 : _userAttendance$volun6.first_name_khmer)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Name Latin: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun7 = userAttendance.volunteer) === null || _userAttendance$volun7 === void 0 ? void 0 : _userAttendance$volun7.last_name_latin, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun8 = userAttendance.volunteer) === null || _userAttendance$volun8 === void 0 ? void 0 : _userAttendance$volun8.first_name_latin))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Volunteer Status: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun9 = userAttendance.volunteer) === null || _userAttendance$volun9 === void 0 ? void 0 : _userAttendance$volun9.volunteer_status)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Gender: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun0 = userAttendance.volunteer) === null || _userAttendance$volun0 === void 0 ? void 0 : _userAttendance$volun0.gender)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Date of Birth: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun1 = userAttendance.volunteer) === null || _userAttendance$volun1 === void 0 ? void 0 : _userAttendance$volun1.date_of_birth))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Phone Number: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun10 = userAttendance.volunteer) === null || _userAttendance$volun10 === void 0 ? void 0 : _userAttendance$volun10.phone_number)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Email: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun11 = userAttendance.volunteer) === null || _userAttendance$volun11 === void 0 ? void 0 : _userAttendance$volun11.email)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Address: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun12 = userAttendance.volunteer) === null || _userAttendance$volun12 === void 0 ? void 0 : _userAttendance$volun12.phumi, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun13 = userAttendance.volunteer) === null || _userAttendance$volun13 === void 0 ? void 0 : _userAttendance$volun13.sangkat, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun14 = userAttendance.volunteer) === null || _userAttendance$volun14 === void 0 ? void 0 : _userAttendance$volun14.khan, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun15 = userAttendance.volunteer) === null || _userAttendance$volun15 === void 0 ? void 0 : _userAttendance$volun15.province_id))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/user-attendances');
}
}, "Cancel")))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserAttendancePage);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/user_attendance/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_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* 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 _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_12__);
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 UserAttendanceList = function UserAttendanceList() {
var _userAttendances$meta, _userAttendances$meta2;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(1),
_useState2 = _slicedToArray(_useState, 2),
currentPage = _useState2[0],
setCurrentPage = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(10),
_useState4 = _slicedToArray(_useState3, 2),
pageSize = _useState4[0],
setPageSize = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState6 = _slicedToArray(_useState5, 2),
selectedRows = _useState6[0],
setSelectedRows = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
searchText = _useState8[0],
setSearchText = _useState8[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendances = _useSelector.userAttendances,
userAttendancesPending = _useSelector.userAttendancesPending;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.fetchUserAttendances)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.userAttendanceDetailAction)(id));
navigate("/user-attendances/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___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_11___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_11___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_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.deleteUserAttendanceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.fetchUserAttendances)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setCurrentPage(1);
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var handleTableChange = function handleTableChange(pagination) {
setCurrentPage(pagination.current);
setPageSize(pagination.pageSize);
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'αααααΌα',
key: 'code',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
var _record$volunteer, _record$volunteer2, _record$volunteer3;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "small"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
type: "link",
onClick: function onClick() {
return handleEdit(record.id);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_4__["default"].Text, {
style: {
color: record !== null && record !== void 0 && (_record$volunteer = record.volunteer) !== null && _record$volunteer !== void 0 && _record$volunteer.main_code ? 'green' : 'inherit'
}
}, (record === null || record === void 0 || (_record$volunteer2 = record.volunteer) === null || _record$volunteer2 === void 0 ? void 0 : _record$volunteer2.main_code) || (record === null || record === void 0 || (_record$volunteer3 = record.volunteer) === null || _record$volunteer3 === void 0 ? void 0 : _record$volunteer3.code))));
}
}, {
title: 'αααααααααα',
dataIndex: 'nameKhmer',
key: 'nameKhmer',
responsive: ['sm']
}, {
title: 'αααααααΆααΆααΆα‘αΆααΆαα',
dataIndex: 'nameLatin',
key: 'nameLatin',
responsive: ['sm']
}, {
title: 'ααα',
dataIndex: 'gender',
key: 'gender',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phoneNumber',
key: 'phoneNumber',
responsive: ['sm']
}, {
title: 'αααααα
αααΆααα·α
αα
ααααα»α',
dataIndex: 'meeting_note',
key: 'meeting_note',
responsive: ['sm']
}, {
title: 'αααααααΆααααα»α',
dataIndex: 'meeting_time',
key: 'meeting_time',
responsive: ['sm'],
render: function render(_, record) {
return moment__WEBPACK_IMPORTED_MODULE_12___default()(record.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-';
}
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = ((userAttendances === null || userAttendances === void 0 ? void 0 : userAttendances.data) || []).filter(function (it) {
var _it$meeting_note, _it$meeting_time, _it$volunteer, _it$volunteer2, _it$volunteer3, _it$volunteer4, _it$volunteer5, _it$volunteer6, _it$volunteer7, _it$volunteer8;
var search = searchText.toLowerCase();
return ((_it$meeting_note = it.meeting_note) === null || _it$meeting_note === void 0 ? void 0 : _it$meeting_note.toLowerCase().includes(search)) || ((_it$meeting_time = it.meeting_time) === null || _it$meeting_time === void 0 ? void 0 : _it$meeting_time.toLowerCase().includes(search)) || ((_it$volunteer = it.volunteer) === null || _it$volunteer === void 0 || (_it$volunteer = _it$volunteer.code) === null || _it$volunteer === void 0 ? void 0 : _it$volunteer.toLowerCase().includes(search)) || ((_it$volunteer2 = it.volunteer) === null || _it$volunteer2 === void 0 || (_it$volunteer2 = _it$volunteer2.main_code) === null || _it$volunteer2 === void 0 ? void 0 : _it$volunteer2.toLowerCase().includes(search)) || ((_it$volunteer3 = it.volunteer) === null || _it$volunteer3 === void 0 || (_it$volunteer3 = _it$volunteer3.last_name_khmer) === null || _it$volunteer3 === void 0 ? void 0 : _it$volunteer3.toLowerCase().includes(search)) || ((_it$volunteer4 = it.volunteer) === null || _it$volunteer4 === void 0 || (_it$volunteer4 = _it$volunteer4.first_name_khmer) === null || _it$volunteer4 === void 0 ? void 0 : _it$volunteer4.toLowerCase().includes(search)) || ((_it$volunteer5 = it.volunteer) === null || _it$volunteer5 === void 0 || (_it$volunteer5 = _it$volunteer5.last_name_latin) === null || _it$volunteer5 === void 0 ? void 0 : _it$volunteer5.toLowerCase().includes(search)) || ((_it$volunteer6 = it.volunteer) === null || _it$volunteer6 === void 0 || (_it$volunteer6 = _it$volunteer6.first_name_latin) === null || _it$volunteer6 === void 0 ? void 0 : _it$volunteer6.toLowerCase().includes(search)) || ((_it$volunteer7 = it.volunteer) === null || _it$volunteer7 === void 0 || (_it$volunteer7 = _it$volunteer7.gender) === null || _it$volunteer7 === void 0 ? void 0 : _it$volunteer7.toLowerCase().includes(search)) || ((_it$volunteer8 = it.volunteer) === null || _it$volunteer8 === void 0 || (_it$volunteer8 = _it$volunteer8.phone_number) === null || _it$volunteer8 === void 0 ? void 0 : _it$volunteer8.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "User Attendance List"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (userAttendances === null || userAttendances === void 0 || (_userAttendances$meta = userAttendances.meta) === null || _userAttendances$meta === void 0 ? void 0 : _userAttendances$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
setCurrentPage(1);
setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
var _it$volunteer9, _it$volunteer0, _it$volunteer1, _it$volunteer10, _it$volunteer11, _it$volunteer12;
return _objectSpread({
key: it.id,
index: index + 1,
nameKhmer: "".concat(it === null || it === void 0 || (_it$volunteer9 = it.volunteer) === null || _it$volunteer9 === void 0 ? void 0 : _it$volunteer9.last_name_khmer, " ").concat(it === null || it === void 0 || (_it$volunteer0 = it.volunteer) === null || _it$volunteer0 === void 0 ? void 0 : _it$volunteer0.first_name_khmer),
nameLatin: "".concat(it === null || it === void 0 || (_it$volunteer1 = it.volunteer) === null || _it$volunteer1 === void 0 ? void 0 : _it$volunteer1.last_name_latin, " ").concat(it === null || it === void 0 || (_it$volunteer10 = it.volunteer) === null || _it$volunteer10 === void 0 ? void 0 : _it$volunteer10.first_name_latin),
gender: it === null || it === void 0 || (_it$volunteer11 = it.volunteer) === null || _it$volunteer11 === void 0 ? void 0 : _it$volunteer11.gender,
phoneNumber: it === null || it === void 0 || (_it$volunteer12 = it.volunteer) === null || _it$volunteer12 === void 0 ? void 0 : _it$volunteer12.phone_number
}, it);
}),
pagination: {
current: currentPage,
pageSize: pageSize,
total: (userAttendances === null || userAttendances === void 0 || (_userAttendances$meta2 = userAttendances.meta) === null || _userAttendances$meta2 === void 0 ? void 0 : _userAttendances$meta2.total) || 0,
showSizeChanger: true
},
onChange: handleTableChange,
rowKey: "id",
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__["default"], {
visible: userAttendancesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserAttendanceList);
/***/ })
}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX21haW5fcy52b2x1bnRlZXJhcGkuNDI2MjE0ZTIyMmNmMzE1MzE4ZGUuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBR0k7QUFFMkQ7QUFDbkU7QUFDRDtBQUU5QyxJQUFNVSxnQkFBMEIsR0FBRyxTQUE3QkEsZ0JBQTBCQSxDQUFBLEVBQVM7RUFDdkMsSUFBTUMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUE0RFQsd0RBQVcsQ0FDckUsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLEtBQUs7SUFBQSxDQUNuQyxDQUFDO0lBRk9BLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0lBQUVDLG9CQUFvQixHQUFBSCxZQUFBLENBQXBCRyxvQkFBb0I7SUFBRUMsa0JBQWtCLEdBQUFKLFlBQUEsQ0FBbEJJLGtCQUFrQjtFQUd2RCxJQUFBQyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCNUIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBOUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTJCLEVBQUUs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cEJJLFFBQVEsRUFBRUEsUUFBUTtNQUNsQmdFLEtBQUssRUFBRSxDQUFBa1QsZUFBZSxhQUFmQSxlQUFlLGdCQUFBRCxzQkFBQSxHQUFmQyxlQUFlLENBQUVuVCxJQUFJLGNBQUFrVCxzQkFBQSx1QkFBckJBLHNCQUFBLENBQXVCalQsS0FBSyxLQUFJLENBQUM7TUFDeENhLGVBQWUsRUFBRTtJQUNuQixDQUFFO0lBQ0ZULFFBQVEsRUFBRWhDLGlCQUFrQjtJQUM1QjBDLE1BQU0sRUFBQyxJQUFJO0lBQ1hDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRmxLLDBEQUFBLENBQUNvRSx5RUFBYTtJQUFDK0YsT0FBTyxFQUFFa1M7RUFBdUIsQ0FBRSxDQUM5QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlSixrQkFBa0IsRSIsInNvdXJjZXMiOlsid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vc2tpbGwvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9za2lsbC9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90ZXJtc19jb25kaXRpb24vZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90ZXJtc19jb25kaXRpb24vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhaW5pbmdfc2Vzc2lvbi9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3RyYWluaW5nX3Nlc3Npb24vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhdmVsX2RheS9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3RyYXZlbF9kYXkvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdXNlci9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3VzZXIvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdXNlcl9hdHRlbmRhbmNlL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdXNlcl9hdHRlbmRhbmNlL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBTa2lsbCB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlU2tpbGxBY3Rpb24sIHNraWxsRGV0YWlsQWN0aW9uLCB1cGRhdGVTa2lsbEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NraWxsL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0U2tpbGxQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgc2tpbGwsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBza2lsbFVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5za2lsbFxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChza2lsbERldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBza2lsbCkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHNraWxsLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBza2lsbC5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NraWxsLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2tpbGxVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3NraWxscycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3NraWxsVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogU2tpbGwpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVNraWxsQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVNraWxsQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4Lhnofhn4bhnpPhnrbhnoknIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGeh+GfhuGek+GetuGeiSd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17c2tpbGxVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvc2tpbGxzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRTa2lsbFBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVNraWxsQWN0aW9uLCBza2lsbERldGFpbEFjdGlvbiwgZmV0Y2hTa2lsbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9za2lsbC9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBTa2lsbExpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBza2lsbHMsIHNraWxsc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5za2lsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFNraWxscyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHNraWxsRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9za2lsbHMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVTa2lsbEFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFNraWxscygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhYmxlQ2hhbmdlID0gKHBhZ2luYXRpb246IGFueSkgPT4ge1xuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2luYXRpb24uY3VycmVudCk7XG4gICAgc2V0UGFnZVNpemUocGFnaW5hdGlvbi5wYWdlU2l6ZSk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHNraWxscz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6H4Z+G4Z6T4Z624Z6JPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge3NraWxscz8ubWV0YT8udG90YWwgfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICAgICAgICAgICAgc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3NraWxscy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgY3VycmVudDogY3VycmVudFBhZ2UsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgIHRvdGFsOiBza2lsbHM/Lm1ldGE/LnRvdGFsIHx8IDAsXG4gICAgICAgICAgc2hvd1NpemVDaGFuZ2VyOiB0cnVlLFxuICAgICAgICB9fVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlVGFibGVDaGFuZ2V9XG4gICAgICAgIHJvd0tleT1cImlkXCJcbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+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+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VTdGF0ZSgxMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHRyYWluaW5nU2Vzc2lvbnMsIHRyYWluaW5nU2Vzc2lvbnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudHJhaW5pbmdTZXNzaW9uKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVHJhaW5pbmdTZXNzaW9ucyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHRyYWluaW5nU2Vzc2lvbkRldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvdHJhaW5pbmctc2Vzc2lvbnMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hUcmFpbmluZ1Nlc3Npb25zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSAocGFnaW5hdGlvbjogYW55KSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBzZXRQYWdlU2l6ZShwYWdpbmF0aW9uLnBhZ2VTaXplKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodHJhaW5pbmdTZXNzaW9ucz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6c4Z6C4Z+S4Z6C4Z6U4Z6O4Z+S4Z6P4Z674Z+H4Z6U4Z6O4Z+S4Z6P4Z624Z6bPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge3RyYWluaW5nU2Vzc2lvbnM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC90cmFpbmluZy1zZXNzaW9ucy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgY3VycmVudDogY3VycmVudFBhZ2UsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgIHRvdGFsOiB0cmFpbmluZ1Nlc3Npb25zPy5tZXRhPy50b3RhbCB8fCAwLFxuICAgICAgICAgIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYmxlQ2hhbmdlfVxuICAgICAgICByb3dLZXk9XCJpZFwiXG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dHJhaW5pbmdTZXNzaW9uc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUcmFpbmluZ1Nlc3Npb25MaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVHJhdmVsRGF5IH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVUcmF2ZWxEYXlBY3Rpb24sIHRyYXZlbERheURldGFpbEFjdGlvbiwgdXBkYXRlVHJhdmVsRGF5QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhdmVsX2RheS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdFRyYXZlbERheVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB0cmF2ZWxEYXksIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCB0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudHJhdmVsRGF5XG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHRyYXZlbERheURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiB0cmF2ZWxEYXkpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiB0cmF2ZWxEYXkubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRyYXZlbERheS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3RyYXZlbERheSwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRyYXZlbERheVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvdHJhdmVsLWRheXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFt0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBUcmF2ZWxEYXkpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVRyYXZlbERheUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVUcmF2ZWxEYXlBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGekOGfkuGehOGfg+GekuGfkuGenOGevuGeiuGfhuGejuGevuGemicgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6Q4Z+S4Z6E4Z+D4Z6S4Z+S4Z6c4Z6+4Z6K4Z+G4Z6O4Z6+4Z6aJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdHJhdmVsLWRheXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFRyYXZlbERheVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVRyYXZlbERheUFjdGlvbiwgdHJhdmVsRGF5RGV0YWlsQWN0aW9uLCBmZXRjaFRyYXZlbERheXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cmF2ZWxfZGF5L2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFRyYXZlbERheUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBcbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VTdGF0ZSgxMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHRyYXZlbERheXMsIHRyYXZlbERheXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudHJhdmVsRGF5KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVHJhdmVsRGF5cyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHRyYXZlbERheURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvdHJhdmVsLWRheXMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVUcmF2ZWxEYXlBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hUcmF2ZWxEYXlzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSAocGFnaW5hdGlvbjogYW55KSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBzZXRQYWdlU2l6ZShwYWdpbmF0aW9uLnBhZ2VTaXplKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodHJhdmVsRGF5cz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6Q4Z+S4Z6E4Z+D4Z6S4Z+S4Z6c4Z6+4Z6K4Z+G4Z6O4Z6+4Z6aPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge3RyYXZlbERheXM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC90cmF2ZWwtZGF5cy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgY3VycmVudDogY3VycmVudFBhZ2UsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgIHRvdGFsOiB0cmF2ZWxEYXlzPy5tZXRhPy50b3RhbCB8fCAwLFxuICAgICAgICAgIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYmxlQ2hhbmdlfVxuICAgICAgICByb3dLZXk9XCJpZFwiXG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dHJhdmVsRGF5c1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUcmF2ZWxEYXlMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSwgTW9kYWwsIFVwbG9hZCwgVXBsb2FkRmlsZSwgVXBsb2FkUHJvcHMsIFNlbGVjdCB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVXNlckFjdGlvbiwgdXNlckRldGFpbEFjdGlvbiwgdXBkYXRlVXNlckFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBwb3N0VXBsb2FkIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvcmUvYmFzZS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQbHVzT3V0bGluZWQsIFVwbG9hZE91dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnYW50ZC9lcy9tZW50aW9ucyc7XG5cbmNvbnN0IE5ld0VkaXRVc2VyUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHVzZXIsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCB1c2VyVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnVzZXJcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG4gIGNvbnN0IFtwaG90b1VybCwgc2V0UGhvdG9VcmxdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbcHJldmlld1Zpc2libGUsIHNldFByZXZpZXdWaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ByZXZpZXdUaXRsZSwgc2V0UHJldmlld1RpdGxlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3ByZXZpZXdDb250ZW50LCBzZXRQcmV2aWV3Q29udGVudF0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpO1xuICBjb25zdCBbcGhvdG9MaXN0LCBzZXRQaG90b0xpc3RdID0gdXNlU3RhdGU8VXBsb2FkRmlsZVtdPihbXSk7XG4gIGNvbnN0IHsgYXV0aCB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlKTsgLy8gR2V0IHVzZXIgcm9sZVxuICBjb25zdCB7IGN1cnJlbnRVc2VyIH0gPSBhdXRoO1xuICBjb25zdCBpc0FkbWluID0gY3VycmVudFVzZXI/LnJvbGUgPT09IFwic3VwZXJfYWRtaW5cIjsgLy8gQ2hlY2sgaWYgdXNlciBpcyBhZG1pblxuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVzZXJEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdXNlcikge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIGZpcnN0X25hbWU6IHVzZXIuZmlyc3RfbmFtZSB8fCAnJyxcbiAgICAgICAgbGFzdF9uYW1lOiB1c2VyLmxhc3RfbmFtZSB8fCAnJyxcbiAgICAgICAgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfHwgJycsXG4gICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsIHx8ICcnLFxuICAgICAgICBwaG9uZTogdXNlci5waG9uZSB8fCAnJyxcbiAgICAgICAgcm9sZTogdXNlci5yb2xlIHx8ICcnLFxuICAgICAgICB0ZWxlZ3JhbV9pZDogdXNlci50ZWxlZ3JhbV9pZCB8fCAnJyxcbiAgICAgICAgcGhvdG9fdXJsOiB1c2VyLnBob3RvX3VybCB8fCAnJyxcbiAgICAgICAgZ3JhZF90eXBlOiB1c2VyLmdyYWRfdHlwZSB8fCAnJyxcbiAgICAgICAgc3RhdHVzOiB1c2VyLnN0YXR1cyB8fCAnJyxcbiAgICAgIH0pO1xuXG4gICAgICBzZXRQaG90b1VybCh1c2VyLnBob3RvX3VybCB8fCAnJyk7XG4gICAgfVxuICB9LCBbdXNlciwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXVzZXJVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3VzZXJzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdXNlclVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuXG4gIC8vIENvbW1vbiBoZWxwZXIgZnVuY3Rpb24gZm9yIGZpbGUgdXBsb2Fkc1xuICBjb25zdCBoYW5kbGVGaWxlQ2hhbmdlID0gYXN5bmMgKFxuICAgIGZpbGU6IEZpbGUsXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgZm9ybTogYW55XG4gICkgPT4ge1xuICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyAvLyBSZXN0cmljdCBlZGl0IGFjY2Vzc1xuICAgIGlmICghZmlsZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtmaWVsZE5hbWV9IFVwbG9hZCBFcnJvcjogTm8gZmlsZSBzZWxlY3RlZC5gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFVwbG9hZChmb3JtRGF0YSk7XG5cbiAgICAgIGlmIChyZXNwb25zZT8udXJsKSB7XG4gICAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoeyBbZmllbGROYW1lXTogcmVzcG9uc2UudXJsIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke2ZpZWxkTmFtZX0gVXBsb2FkIEVycm9yOmAsIGVycm9yKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGhhbmRsZVBob3RvVXBsb2FkQ2hhbmdlID0gYXN5bmMgKHBob3RvRmlsZTogRmlsZSkgPT4ge1xuICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyAvLyBSZXN0cmljdCBlZGl0IGFjY2Vzc1xuICAgIGF3YWl0IGhhbmRsZUZpbGVDaGFuZ2UocGhvdG9GaWxlLCBcInBob3RvX3VybFwiLCBmb3JtKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGaWxlQ2hhbmdlTmV3ID0gYXN5bmMgKFxuICAgIGZpbGVMaXN0OiBVcGxvYWRGaWxlW10sXG4gICAgc2V0RmlsZUxpc3Q6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPFVwbG9hZEZpbGVbXT4+LFxuICAgIGZpZWxkTmFtZTogc3RyaW5nXG4gICkgPT4ge1xuICAgIC8vIHVwZGF0ZWRGaWxlTGlzdDogbWFyayBhbGwgZmlsZXMgYXMgXCJ1cGxvYWRpbmdcIlxuICAgIGNvbnN0IHVwZGF0ZWRGaWxlTGlzdCA9IGZpbGVMaXN0Lm1hcCgoZmlsZSk6IFVwbG9hZEZpbGUgPT4gKHtcbiAgICAgIC4uLmZpbGUsXG4gICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsIC8vIGluZmVycmVkIGFzIHRoZSBsaXRlcmFsIFwidXBsb2FkaW5nXCJcbiAgICB9KSk7XG4gICAgc2V0RmlsZUxpc3QodXBkYXRlZEZpbGVMaXN0KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgdXBkYXRlZEZpbGVMaXN0LmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgaWYgKGZpbGUub3JpZ2luRmlsZU9iaikge1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZS5vcmlnaW5GaWxlT2JqKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdFVwbG9hZChmb3JtRGF0YSk7XG4gICAgICBpZiAocmVzcG9uc2UudXJsKSB7XG4gICAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoeyBbZmllbGROYW1lXTogcmVzcG9uc2UudXJsIH0pO1xuICAgICAgICAvLyBkb25lRmlsZUxpc3Q6IG1hcmsgYWxsIGZpbGVzIGFzIFwiZG9uZVwiIG9uIHN1Y2Nlc3NmdWwgdXBsb2FkXG4gICAgICAgIGNvbnN0IGRvbmVGaWxlTGlzdCA9IHVwZGF0ZWRGaWxlTGlzdC5tYXAoKGZpbGUpOiBVcGxvYWRGaWxlID0+ICh7XG4gICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICBzdGF0dXM6IFwiZG9uZVwiLFxuICAgICAgICB9KSk7XG4gICAgICAgIHNldEZpbGVMaXN0KGRvbmVGaWxlTGlzdCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7ZmllbGROYW1lfSBVcGxvYWQgRXJyb3I6YCwgZXJyb3IpO1xuICAgICAgLy8gZXJyb3JGaWxlTGlzdDogbWFyayBhbGwgZmlsZXMgYXMgXCJlcnJvclwiIG9uIGZhaWx1cmVcbiAgICAgIGNvbnN0IGVycm9yRmlsZUxpc3QgPSB1cGRhdGVkRmlsZUxpc3QubWFwKChmaWxlKTogVXBsb2FkRmlsZSA9PiAoe1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcbiAgICAgIH0pKTtcbiAgICAgIHNldEZpbGVMaXN0KGVycm9yRmlsZUxpc3QpO1xuICAgIH1cbiAgfTtcblxuXG4gIGNvbnN0IGhhbmRsZVBob3RvVXBsb2FkQ2hhbmdlTmV3OiBVcGxvYWRQcm9wc1tcIm9uQ2hhbmdlXCJdID0gYXN5bmMgKHsgZmlsZUxpc3QgfSkgPT4ge1xuICAgIGF3YWl0IGhhbmRsZUZpbGVDaGFuZ2VOZXcoZmlsZUxpc3QsIHNldFBob3RvTGlzdCwgXCJwaG90b191cmxcIik7XG4gIH07XG5cbiAgY29uc3QgYmVmb3JlVXBsb2FkID0gKGZpbGU6IGFueSkgPT4ge1xuICAgIGNvbnN0IGlzSW1hZ2UgPSBmaWxlLnR5cGUuc3RhcnRzV2l0aChcImltYWdlL1wiKTtcbiAgICBpZiAoIWlzSW1hZ2UpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJZb3UgY2FuIG9ubHkgdXBsb2FkIGltYWdlIGZpbGVzIChKUEcvUE5HKSFcIik7XG4gICAgfVxuICAgIHJldHVybiBpc0ltYWdlO1xuICB9O1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVXNlcikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlVXNlckFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVVc2VyQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cblxuICBjb25zdCBoYW5kbGVQcmV2aWV3ID0gKHVybDogc3RyaW5nLCB0aXRsZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0UHJldmlld1RpdGxlKHRpdGxlKTtcbiAgICBzZXRQcmV2aWV3Q29udGVudCg8ZGl2IHN0eWxlPXt7IHdpZHRoOiAnNzAlJywgbWFyZ2luOiAnYXV0bycgfX0+PGltZyBzcmM9e3VybH0gYWx0PXt0aXRsZX0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fSAvPjwvZGl2Pik7XG4gICAgc2V0UHJldmlld1Zpc2libGUodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgdXBsb2FkQnV0dG9uID0gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHNldFVybDogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248c3RyaW5nPj4sXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApID0+IChcbiAgICA8ZGl2IHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9fT5cbiAgICAgIHt1cmwgPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fSBvbkNsaWNrPXsoKSA9PiBoYW5kbGVQcmV2aWV3KHVybCwgbGFiZWwpfT5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXt1cmx9XG4gICAgICAgICAgICAgIGFsdD17bGFiZWx9XG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICczMDBweCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnOHB4JyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBib3R0b206IDEyLCByaWdodDogOCwgYmFja2dyb3VuZDogJyMxODkwZmYnLCBjb2xvcjogJyNmZmYnIH19XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgdXBsb2FkLSR7bGFiZWx9YCk/LmNsaWNrKCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPXtgdXBsb2FkLSR7bGFiZWx9YH1cbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGUudGFyZ2V0LmZpbGVzWzBdO1xuICAgICAgICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgICAgIC8vIFlvdSBjYW4gYWRkIHlvdXIgbG9naWMgaGVyZSBmb3IgZGlmZmVyZW50IGZpbGUgaGFuZGxpbmdcbiAgICAgICAgICAgICAgICBoYW5kbGVQaG90b1VwbG9hZENoYW5nZShmaWxlKTtcbiAgICAgICAgICAgICAgICBzZXRVcmwoVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8PlxuICAgICAgICAgIDxVcGxvYWRcbiAgICAgICAgICAgIGxpc3RUeXBlPVwicGljdHVyZVwiXG4gICAgICAgICAgICBmaWxlTGlzdD17cGhvdG9MaXN0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVBob3RvVXBsb2FkQ2hhbmdlTmV3fVxuICAgICAgICAgICAgYmVmb3JlVXBsb2FkPXtiZWZvcmVVcGxvYWR9XG4gICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17eyBzaG93UHJldmlld0ljb246IHRydWUsIHNob3dSZW1vdmVJY29uOiB0cnVlIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgY3VzdG9tLXVwbG9hZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFVwbG9hZE91dGxpbmVkIC8+XG4gICAgICAgICAgPC9VcGxvYWQ+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+GfiycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z6U4Z+S4Z6a4Z624Z6f4Z+LJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXs2fT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnprhnrzhnpThnpDhno9cIiBuYW1lPVwicGhvdG9fdXJsXCI+XG4gICAgICAgICAgICAgIHt1cGxvYWRCdXR0b24ocGhvdG9VcmwsIHNldFBob3RvVXJsLCAn4Z6a4Z684Z6U4Z6Q4Z6PJywgJ3Bob3RvX3VybCcpfVxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxOH0+XG4gICAgICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAwXX0+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGek+GetuGemOGegeGfkuGem+GeveGek1wiIG5hbWU9XCJmaXJzdF9uYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGek+GetuGemOGej+GfkuGemuGegOGevOGem1wiIG5hbWU9XCJsYXN0X25hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+H4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z6U4Z+S4Z6a4Z624Z6f4Z+LXCIgbmFtZT1cInVzZXJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDBdfT5cbiAgICAgICAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6i4Z+K4Z644Z6Y4Z+C4Z6bXCIgbmFtZT1cImVtYWlsXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGem+GfgeGegeGekeGevOGemuGen+GfkOGeluGfkuGekVwiIG5hbWU9XCJwaG9uZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhno/hnr3hnpPhnrbhnpHhnrhcIiBuYW1lPVwicm9sZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPFNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiB2YWx1ZT1cInN1cGVyX2FkbWluXCI+U3VwZXIgYWRtaW48L09wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiB2YWx1ZT1cImFkbWluXCI+QWRtaW48L09wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiB2YWx1ZT1cInVzZXJcIj5Vc2VyPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJyZXBvcnRlclwiPlJlcG9ydGVyPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDBdfT5cbiAgICAgICAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6P4Z+B4Z6b4Z+B4Z6A4Z+S4Z6a4Z624Z6Y4oCLIElEXCIgbmFtZT1cInRlbGVncmFtX2lkXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGfkuGemuGel+GfgeGekVwiIG5hbWU9XCJncmFkX3R5cGVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxTZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJwYXNzd29yZFwiPlBhc3N3b3JkPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJ0ZWxlZ3JhbVwiPlRlbGVncmFtPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGen+GfkuGekOGetuGek+Gel+GetuGellwiIG5hbWU9XCJzdGF0dXNcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxTZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJBQ1RJVkVcIj5BY3RpdmU8L09wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPE9wdGlvbiB2YWx1ZT1cIkRJU0FCTEVcIj5EaXNhYmxlPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgIHshaWQgJiZcbiAgICAgICAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMF19PlxuICAgICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6W4Z624Z6A4Z+S4Z6Z4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+LXCIgbmFtZT1cInBhc3N3b3JkXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICAgIDxJbnB1dCB0eXBlPSdwYXNzd29yZCcgLz5cbiAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8L1Jvdz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19IGp1c3RpZnk9J2VuZCc+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e3VzZXJVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdXNlcnMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuXG4gICAgICAgIDxNb2RhbCB2aXNpYmxlPXtwcmV2aWV3VmlzaWJsZX0gdGl0bGU9e3ByZXZpZXdUaXRsZX0gZm9vdGVyPXtudWxsfSBvbkNhbmNlbD17KCkgPT4gc2V0UHJldmlld1Zpc2libGUoZmFsc2UpfT5cbiAgICAgICAgICB7cHJldmlld0NvbnRlbnR9XG4gICAgICAgIDwvTW9kYWw+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0VXNlclBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW1hZ2UsIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVVc2VyQWN0aW9uLCB1c2VyRGV0YWlsQWN0aW9uLCBmZXRjaFVzZXJzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXNlci9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBVc2VyTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VTdGF0ZSgxMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHVzZXJzLCB1c2Vyc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVXNlcnMoe1xuICAgICAgc2VhcmNoOiBzZWFyY2hUZXh0LFxuICAgICAgcGFnZTogY3VycmVudFBhZ2UsXG4gICAgICBwYWdlU2l6ZVxuICAgIH0pKTtcbiAgfSwgW2Rpc3BhdGNoLCBzZWFyY2hUZXh0LCBjdXJyZW50UGFnZSwgcGFnZVNpemVdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh1c2VyRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2Vycy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVVzZXJBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VycygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhYmxlQ2hhbmdlID0gKHBhZ2luYXRpb246IGFueSkgPT4ge1xuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2luYXRpb24uY3VycmVudCk7XG4gICAgc2V0UGFnZVNpemUocGFnaW5hdGlvbi5wYWdlU2l6ZSk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpPhnrbhnpjhnoHhn5Lhnpvhnr3hnpMnLCBkYXRhSW5kZXg6ICdmaXJzdF9uYW1lJywga2V5OiAnZmlyc3RfbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpPhnrbhnpjhno/hn5LhnprhnoDhnrzhnpsnLCBkYXRhSW5kZXg6ICdsYXN0X25hbWUnLCBrZXk6ICdsYXN0X25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+H4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z6U4Z+S4Z6a4Z624Z6f4Z+LJywgZGF0YUluZGV4OiAndXNlcm5hbWUnLCBrZXk6ICd1c2VybmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnqLhn4rhnrjhnpjhn4LhnpsnLCBkYXRhSW5kZXg6ICdlbWFpbCcsIGtleTogJ2VtYWlsJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGekeGevOGemuGen+GfkOGeluGfkuGekScsIGRhdGFJbmRleDogJ3Bob25lJywga2V5OiAncGhvbmUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6P4Z694Z6T4Z624Z6R4Z64JywgZGF0YUluZGV4OiAncm9sZScsIGtleTogJ3JvbGUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6P4Z+B4Z6b4Z+B4Z6A4Z+S4Z6a4Z624Z6Y4oCLIElEJywgZGF0YUluZGV4OiAndGVsZWdyYW1faWQnLCBrZXk6ICd0ZWxlZ3JhbV9pZCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnprhnrzhnpThnpDhno8nLCBkYXRhSW5kZXg6ICdwaG90b191cmwnLCBrZXk6ICdwaG90b191cmwnLCByZXNwb25zaXZlOiBbJ3NtJ10sIFxuICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PlxuICAgICAgICB0ZXh0ID8gPEltYWdlIHdpZHRoPXs1MH0gc3JjPXt0ZXh0fSBhbHQ9XCJQaG90b1wiIHN0eWxlPXt7IGJvcmRlclJhZGl1czogNSwgYm9yZGVyOiAnMXB4IHNvbGlkICNkZGQnIH19IC8+IDogJ05vIEltYWdlJywgXG4gICAgfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z+S4Z6a4Z6X4Z+B4Z6RJywgZGF0YUluZGV4OiAnZ3JhZF90eXBlJywga2V5OiAnZ3JhZF90eXBlJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gen+GfkuGekOGetuGek+Gel+GetuGelicsIGRhdGFJbmRleDogJ3N0YXR1cycsIGtleTogJ3N0YXR1cycsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9ICh1c2Vycz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiAoXG4gICAgICBpdC5lbWFpbD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC51c2VybmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5yb2xlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LmZpcnN0X25hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQubGFzdF9uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnBob25lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnRlbGVncmFtX2lkPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LmdyYWRfdHlwZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5zdGF0dXM/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKVxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr7hnpThn5Lhnprhnrbhnp/hn4s8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7dXNlcnM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC91c2Vycy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQuZmlyc3RfbmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgY3VycmVudDogY3VycmVudFBhZ2UsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgIHRvdGFsOiB1c2Vycz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3VzZXJzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSwgVHlwb2dyYXBoeSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVXNlckF0dGVuZGFuY2UgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVVzZXJBdHRlbmRhbmNlQWN0aW9uLCB1c2VyQXR0ZW5kYW5jZURldGFpbEFjdGlvbiwgdXBkYXRlVXNlckF0dGVuZGFuY2VBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91c2VyX2F0dGVuZGFuY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmNvbnN0IE5ld0VkaXRVc2VyQXR0ZW5kYW5jZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB1c2VyQXR0ZW5kYW5jZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHVzZXJBdHRlbmRhbmNlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnVzZXJBdHRlbmRhbmNlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWRdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+VXNlciBBdHRlbmRhbmNlIGRldGFpbDwvaDI+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIENvZGU6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgY29sb3I6IHVzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/Lm1haW5fY29kZSA/ICdncmVlbicgOiAnaW5oZXJpdCcgfX0+XG4gICAgICAgICAgICAgICAgICB7dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ubWFpbl9jb2RlIHx8IHVzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmNvZGV9XG4gICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIE1lZXRpbmcgTm90ZTogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/Lm1lZXRpbmdfbm90ZX08L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgTWVldGluZyBUaW1lOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnttb21lbnQodXNlckF0dGVuZGFuY2U/Lm1lZXRpbmdfdGltZSkuZm9ybWF0KCdNTU1NIERvIFlZWVksIGg6bW06c3MgYScpIHx8ICctJ308L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz48YnIgLz5cbiAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgUGhvdG86IDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5waG90b31cbiAgICAgICAgICAgICAgICAgICAgYWx0PSdwaG90bydcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIE5hbWUgS2htZXI6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/Lmxhc3RfbmFtZV9raG1lcn0ge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmZpcnN0X25hbWVfa2htZXJ9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIE5hbWUgTGF0aW46IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/Lmxhc3RfbmFtZV9sYXRpbn0ge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmZpcnN0X25hbWVfbGF0aW59PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+XG4gICAgICA8YnIgLz5cbiAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgVm9sdW50ZWVyIFN0YXR1czogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8udm9sdW50ZWVyX3N0YXR1c308L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgR2VuZGVyOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5nZW5kZXJ9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIERhdGUgb2YgQmlydGg6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmRhdGVfb2ZfYmlydGh9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+XG4gICAgICA8YnIgLz5cbiAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgUGhvbmUgTnVtYmVyOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5waG9uZV9udW1iZXJ9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIEVtYWlsOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5lbWFpbH08L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgQWRkcmVzczogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ucGh1bWl9IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5zYW5na2F0fSB7dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ua2hhbn0ge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LnByb3ZpbmNlX2lkfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgICAgPGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy91c2VyLWF0dGVuZGFuY2VzJyl9PlxuICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFVzZXJBdHRlbmRhbmNlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlLCBUeXBvZ3JhcGh5IH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24sIHVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uLCBmZXRjaFVzZXJBdHRlbmRhbmNlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3VzZXJfYXR0ZW5kYW5jZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBVc2VyQXR0ZW5kYW5jZUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyB1c2VyQXR0ZW5kYW5jZXMsIHVzZXJBdHRlbmRhbmNlc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyQXR0ZW5kYW5jZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFVzZXJBdHRlbmRhbmNlcyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2VyLWF0dGVuZGFuY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VyQXR0ZW5kYW5jZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldEN1cnJlbnRQYWdlKDEpO1xuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IChwYWdpbmF0aW9uOiBhbnkpID0+IHtcbiAgICBzZXRDdXJyZW50UGFnZShwYWdpbmF0aW9uLmN1cnJlbnQpO1xuICAgIHNldFBhZ2VTaXplKHBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ+Gem+GfgeGegeGegOGevOGeiicsXG4gICAgICBrZXk6ICdjb2RlJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIDxCdXR0b24gdHlwZT1cImxpbmtcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9PlxuICAgICAgICAgICAgPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBjb2xvcjogcmVjb3JkPy52b2x1bnRlZXI/Lm1haW5fY29kZSA/ICdncmVlbicgOiAnaW5oZXJpdCcgfX0+XG4gICAgICAgICAgICAgIHtyZWNvcmQ/LnZvbHVudGVlcj8ubWFpbl9jb2RlIHx8IHJlY29yZD8udm9sdW50ZWVyPy5jb2RlfVxuICAgICAgICAgICAgPC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfh+GegeGfkuGemOGfguGemicsIGRhdGFJbmRleDogJ25hbWVLaG1lcicsIGtleTogJ25hbWVLaG1lcicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4fhnofhnrbhnpfhnrbhnp/hnrbhnqHhnrbhno/hnrbhn4bhnoQnLCBkYXRhSW5kZXg6ICduYW1lTGF0aW4nLCBrZXk6ICduYW1lTGF0aW4nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6X4Z+B4Z6RJywgZGF0YUluZGV4OiAnZ2VuZGVyJywga2V5OiAnZ2VuZGVyJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGekeGevOGemuGen+GfkOGeluGfkuGekScsIGRhdGFJbmRleDogJ3Bob25lTnVtYmVyJywga2V5OiAncGhvbmVOdW1iZXInLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6A4Z+G4Z6O4Z6P4Z+L4Z6F4Z+G4Z6O4Z624Z+G4Z6A4Z634Z6F4Z+S4Z6F4Z6U4Z+S4Z6a4Z6H4Z674Z+GJywgZGF0YUluZGV4OiAnbWVldGluZ19ub3RlJywga2V5OiAnbWVldGluZ19ub3RlJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyBcbiAgICAgIHRpdGxlOiAn4Z6W4Z+B4Z6b4Z6c4Z+B4Z6b4Z624Z6U4Z+S4Z6a4Z6H4Z674Z+GJywgXG4gICAgICBkYXRhSW5kZXg6ICdtZWV0aW5nX3RpbWUnLCBcbiAgICAgIGtleTogJ21lZXRpbmdfdGltZScsIFxuICAgICAgcmVzcG9uc2l2ZTogWydzbSddLCBcbiAgICAgIHJlbmRlcjogKF86IGFueSwgcmVjb3JkOiBhbnkpID0+IChtb21lbnQocmVjb3JkLm1lZXRpbmdfdGltZSkuZm9ybWF0KCdNTU1NIERvIFlZWVksIGg6bW06c3MgYScpIHx8ICctJylcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodXNlckF0dGVuZGFuY2VzPy5kYXRhIHx8IFtdKS5maWx0ZXIoKGl0KSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGl0Lm1lZXRpbmdfbm90ZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5tZWV0aW5nX3RpbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8ubWFpbl9jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8ubGFzdF9uYW1lX2tobWVyPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8uZmlyc3RfbmFtZV9raG1lcj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/Lmxhc3RfbmFtZV9sYXRpbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/LmZpcnN0X25hbWVfbGF0aW4/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5nZW5kZXI/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5waG9uZV9udW1iZXI/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKVxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj5Vc2VyIEF0dGVuZGFuY2UgTGlzdDwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHt1c2VyQXR0ZW5kYW5jZXM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZUtobWVyOiBgJHtpdD8udm9sdW50ZWVyPy5sYXN0X25hbWVfa2htZXJ9ICR7aXQ/LnZvbHVudGVlcj8uZmlyc3RfbmFtZV9raG1lcn1gLFxuICAgICAgICAgIG5hbWVMYXRpbjogYCR7aXQ/LnZvbHVudGVlcj8ubGFzdF9uYW1lX2xhdGlufSAke2l0Py52b2x1bnRlZXI/LmZpcnN0X25hbWVfbGF0aW59YCxcbiAgICAgICAgICBnZW5kZXI6IGl0Py52b2x1bnRlZXI/LmdlbmRlcixcbiAgICAgICAgICBwaG9uZU51bWJlcjogaXQ/LnZvbHVudGVlcj8ucGhvbmVfbnVtYmVyLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3tcbiAgICAgICAgICBjdXJyZW50OiBjdXJyZW50UGFnZSxcbiAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgICAgdG90YWw6IHVzZXJBdHRlbmRhbmNlcz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3VzZXJBdHRlbmRhbmNlc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyQXR0ZW5kYW5jZUxpc3Q7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJjcmVhdGVTa2lsbEFjdGlvbiIsInNraWxsRGV0YWlsQWN0aW9uIiwidXBkYXRlU2tpbGxBY3Rpb24iLCJ1c2VOYXZpZ2F0ZSIsIlRleHRBcmVhIiwiTmV3RWRpdFNraWxsUGFnZSIsImRpc3BhdGNoIiwibmF2aWdhdGUiLCJfdXNlU2VsZWN0b3IiLCJzdGF0ZSIsInNraWxsIiwicmVnaXN0ZXJFcnJvck1lc3NhZ2UiLCJza2lsbFVwZGF0ZVBlbmRpbmciLCJfRm9ybSR1c2VGb3JtIiwiX0Zvcm0iLCJ1c2VGb3JtIiwiX0Zvcm0kdXNlRm9ybTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm0iLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImlkIiwiZ2V0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImlzQ2xpY2siLCJzZXRJc0NsaWNrIiwiTnVtYmVyIiwicmVzZXRGaWVsZHMiLCJzZXRGaWVsZHNWYWx1ZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzdWNjZXNzIiwib25GaW5pc2giLCJ2YWx1ZXMiLCJkYXRhIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwibGF5b3V0Iiwic3R5bGUiLCJtYXhXaWR0aCIsIm1hcmdpbiIsIl9Sb3ciLCJndXR0ZXIiLCJfQ29sIiwic3BhbiIsIkl0ZW0iLCJsYWJlbCIsInJ1bGVzIiwicmVxdWlyZWQiLCJtZXNzYWdlIiwiX0lucHV0Iiwicm93cyIsIl9CdXR0b24iLCJ0eXBlIiwiYmxvY2siLCJodG1sVHlwZSIsImxvYWRpbmciLCJvbkNsaWNrIiwiTG9hZGluZ0RpYWxvZyIsIkRlbGV0ZU91dGxpbmVkIiwiRWRpdE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiZGVsZXRlU2tpbGxBY3Rpb24iLCJmZXRjaFNraWxscyIsIlN3YWwiLCJTa2lsbExpc3QiLCJfc2tpbGxzJG1ldGEiLCJfc2tpbGxzJG1ldGEyIiwiY3VycmVudFBhZ2UiLCJzZXRDdXJyZW50UGFnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicGFnZVNpemUiLCJzZXRQYWdlU2l6ZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2VsZWN0ZWRSb3dzIiwic2V0U2VsZWN0ZWRSb3dzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWFyY2hUZXh0Iiwic2V0U2VhcmNoVGV4dCIsInNraWxscyIsInNraWxsc1BlbmRpbmciLCJwYWdlIiwiaGFuZGxlRWRpdCIsImNvbmNhdCIsImhhbmRsZURlbGV0ZSIsImZpcmUiLCJ0aXRsZSIsInRleHQiLCJpY29uIiwic2hvd0NvbmZpcm1CdXR0b24iLCJzaG93Q2FuY2VsQnV0dG9uIiwiaHRtbCIsImRpZE9wZW4iLCJfU3dhbCRnZXRQb3B1cCIsIl9Td2FsJGdldFBvcHVwMiIsImNvbmZpcm1CdXR0b24iLCJnZXRQb3B1cCIsInF1ZXJ5U2VsZWN0b3IiLCJjYW5jZWxCdXR0b24iLCJhZGRFdmVudExpc3RlbmVyIiwidGhlbiIsImNsb3NlIiwiaGFuZGxlU2VhcmNoIiwidHJpbSIsImhhbmRsZVJlc2V0IiwiaGFuZGxlVGFibGVDaGFuZ2UiLCJwYWdpbmF0aW9uIiwiY3VycmVudCIsImNvbHVtbnMiLCJkYXRhSW5kZXgiLCJrZXkiLCJyZXNwb25zaXZlIiwicmVuZGVyIiwiXyIsInJlY29yZCIsIl9TcGFjZSIsInNpemUiLCJkYW5nZXIiLCJmaWx0ZXJlZERhdGEiLCJmaWx0ZXIiLCJpdCIsIl9pdCRuYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm92ZXJmbG93WCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJiYWNrZ3JvdW5kIiwibWFyZ2luQm90dG9tIiwiZmxleFdyYXAiLCJ3cmFwIiwibWV0YSIsInRvdGFsIiwicGxhY2Vob2xkZXIiLCJ3aWR0aCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwiX1RhYmxlIiwicm93U2VsZWN0aW9uIiwiZGF0YVNvdXJjZSIsIm1hcCIsImluZGV4IiwiX29iamVjdFNwcmVhZCIsInNob3dTaXplQ2hhbmdlciIsInJvd0tleSIsInNjcm9sbCIsIngiLCJ2aXNpYmxlIiwiY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24iLCJ0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbiIsInVwZGF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwiTmV3RWRpdFRlcm1zQ29uZGl0aW9uUGFnZSIsInRlcm1zQ29uZGl0aW9uIiwidGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlVGVybXNDb25kaXRpb25BY3Rpb24iLCJmZXRjaFRlcm1zQ29uZGl0aW9ucyIsIlRlcm1zQ29uZGl0aW9uTGlzdCIsInRlcm1zQ29uZGl0aW9ucyIsInRlcm1zQ29uZGl0aW9uc1BlbmRpbmciLCJsZW5ndGgiLCJjcmVhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJ0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJOZXdFZGl0VHJhaW5pbmdTZXNzaW9uUGFnZSIsInRyYWluaW5nU2Vzc2lvbiIsInRyYWluaW5nU2Vzc2lvblVwZGF0ZVBlbmRpbmciLCJkZWxldGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24iLCJmZXRjaFRyYWluaW5nU2Vzc2lvbnMiLCJUcmFpbmluZ1Nlc3Npb25MaXN0IiwiX3RyYWluaW5nU2Vzc2lvbnMkbWV0IiwiX3RyYWluaW5nU2Vzc2lvbnMkbWV0MiIsInRyYWluaW5nU2Vzc2lvbnMiLCJ0cmFpbmluZ1Nlc3Npb25zUGVuZGluZyIsImNyZWF0ZVRyYXZlbERheUFjdGlvbiIsInRyYXZlbERheURldGFpbEFjdGlvbiIsInVwZGF0ZVRyYXZlbERheUFjdGlvbiIsIk5ld0VkaXRUcmF2ZWxEYXlQYWdlIiwidHJhdmVsRGF5IiwidHJhdmVsRGF5VXBkYXRlUGVuZGluZyIsImRlbGV0ZVRyYXZlbERheUFjdGlvbiIsImZldGNoVHJhdmVsRGF5cyIsIlRyYXZlbERheUxpc3QiLCJfdHJhdmVsRGF5cyRtZXRhIiwiX3RyYXZlbERheXMkbWV0YTIiLCJ0cmF2ZWxEYXlzIiwidHJhdmVsRGF5c1BlbmRpbmciLCJ0IiwiciIsIlN5bWJvbCIsIm4iLCJpdGVyYXRvciIsIm8iLCJ0b1N0cmluZ1RhZyIsImkiLCJjIiwicHJvdG90eXBlIiwiR2VuZXJhdG9yIiwidSIsIk9iamVjdCIsImNyZWF0ZSIsIl9yZWdlbmVyYXRvckRlZmluZTIiLCJmIiwicCIsInkiLCJHIiwidiIsImEiLCJkIiwiYmluZCIsImwiLCJUeXBlRXJyb3IiLCJjYWxsIiwiZG9uZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibmV4dCIsInB1c2giLCJpc0FycmF5IiwiY3JlYXRlVXNlckFjdGlvbiIsInVzZXJEZXRhaWxBY3Rpb24iLCJ1cGRhdGVVc2VyQWN0aW9uIiwicG9zdFVwbG9hZCIsIlVwbG9hZE91dGxpbmVkIiwiT3B0aW9uIiwiTmV3RWRpdFVzZXJQYWdlIiwidXNlciIsInVzZXJVcGRhdGVQZW5kaW5nIiwicGhvdG9VcmwiLCJzZXRQaG90b1VybCIsInByZXZpZXdWaXNpYmxlIiwic2V0UHJldmlld1Zpc2libGUiLCJwcmV2aWV3VGl0bGUiLCJzZXRQcmV2aWV3VGl0bGUiLCJwcmV2aWV3Q29udGVudCIsInNldFByZXZpZXdDb250ZW50IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJwaG90b0xpc3QiLCJzZXRQaG90b0xpc3QiLCJfdXNlU2VsZWN0b3IyIiwiYXV0aCIsImN1cnJlbnRVc2VyIiwiaXNBZG1pbiIsInJvbGUiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwidXNlcm5hbWUiLCJlbWFpbCIsInBob25lIiwidGVsZWdyYW1faWQiLCJwaG90b191cmwiLCJncmFkX3R5cGUiLCJzdGF0dXMiLCJoYW5kbGVGaWxlQ2hhbmdlIiwiX3JlZiIsIl9jYWxsZWUiLCJmaWxlIiwiZmllbGROYW1lIiwiZm9ybURhdGEiLCJyZXNwb25zZSIsIl90IiwiX2NvbnRleHQiLCJjb25zb2xlIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJ1cmwiLCJfeCIsIl94MiIsIl94MyIsImhhbmRsZVBob3RvVXBsb2FkQ2hhbmdlIiwiX3JlZjIiLCJfY2FsbGVlMiIsInBob3RvRmlsZSIsIl9jb250ZXh0MiIsIl94NCIsImhhbmRsZUZpbGVDaGFuZ2VOZXciLCJfcmVmMyIsIl9jYWxsZWUzIiwiZmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsInVwZGF0ZWRGaWxlTGlzdCIsImRvbmVGaWxlTGlzdCIsImVycm9yRmlsZUxpc3QiLCJfdDIiLCJfY29udGV4dDMiLCJmb3JFYWNoIiwib3JpZ2luRmlsZU9iaiIsIl94NSIsIl94NiIsIl94NyIsImhhbmRsZVBob3RvVXBsb2FkQ2hhbmdlTmV3IiwiX3JlZjUiLCJfY2FsbGVlNCIsIl9yZWY0IiwiX2NvbnRleHQ0IiwiX3g4IiwiYmVmb3JlVXBsb2FkIiwiaXNJbWFnZSIsInN0YXJ0c1dpdGgiLCJoYW5kbGVQcmV2aWV3Iiwic3JjIiwiYWx0IiwidXBsb2FkQnV0dG9uIiwic2V0VXJsIiwicG9zaXRpb24iLCJjdXJzb3IiLCJtYXhIZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJib3R0b20iLCJyaWdodCIsImNvbG9yIiwiX2RvY3VtZW50JGdldEVsZW1lbnRCIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsaWNrIiwiZmlsZXMiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJfVXBsb2FkIiwibGlzdFR5cGUiLCJzaG93VXBsb2FkTGlzdCIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2xhc3NOYW1lIiwiX1NlbGVjdCIsImp1c3RpZnkiLCJfTW9kYWwiLCJmb290ZXIiLCJvbkNhbmNlbCIsImRlbGV0ZVVzZXJBY3Rpb24iLCJmZXRjaFVzZXJzIiwiVXNlckxpc3QiLCJfdXNlcnMkbWV0YSIsIl91c2VycyRtZXRhMiIsInVzZXJzIiwidXNlcnNQZW5kaW5nIiwiX0ltYWdlIiwiYm9yZGVyIiwiX2l0JGVtYWlsIiwiX2l0JHVzZXJuYW1lIiwiX2l0JHJvbGUiLCJfaXQkZmlyc3RfbmFtZSIsIl9pdCRsYXN0X25hbWUiLCJfaXQkcGhvbmUiLCJfaXQkdGVsZWdyYW1faWQiLCJfaXQkZ3JhZF90eXBlIiwiX2l0JHN0YXR1cyIsInVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uIiwibW9tZW50IiwiTmV3RWRpdFVzZXJBdHRlbmRhbmNlUGFnZSIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1biIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4zIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjUiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW42IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjgiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW45IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjEiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjExIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjE0IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTUiLCJ1c2VyQXR0ZW5kYW5jZSIsInVzZXJBdHRlbmRhbmNlVXBkYXRlUGVuZGluZyIsIl9UeXBvZ3JhcGh5IiwiVGV4dCIsInZvbHVudGVlciIsIm1haW5fY29kZSIsImNvZGUiLCJmb250V2VpZ2h0IiwibWVldGluZ19ub3RlIiwibWVldGluZ190aW1lIiwiZm9ybWF0IiwicGhvdG8iLCJsYXN0X25hbWVfa2htZXIiLCJmaXJzdF9uYW1lX2tobWVyIiwibGFzdF9uYW1lX2xhdGluIiwiZmlyc3RfbmFtZV9sYXRpbiIsInZvbHVudGVlcl9zdGF0dXMiLCJnZW5kZXIiLCJkYXRlX29mX2JpcnRoIiwicGhvbmVfbnVtYmVyIiwicGh1bWkiLCJzYW5na2F0Iiwia2hhbiIsInByb3ZpbmNlX2lkIiwiZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24iLCJmZXRjaFVzZXJBdHRlbmRhbmNlcyIsIlVzZXJBdHRlbmRhbmNlTGlzdCIsIl91c2VyQXR0ZW5kYW5jZXMkbWV0YSIsIl91c2VyQXR0ZW5kYW5jZXMkbWV0YTIiLCJ1c2VyQXR0ZW5kYW5jZXMiLCJ1c2VyQXR0ZW5kYW5jZXNQZW5kaW5nIiwiX3JlY29yZCR2b2x1bnRlZXIiLCJfcmVjb3JkJHZvbHVudGVlcjIiLCJfcmVjb3JkJHZvbHVudGVlcjMiLCJfaXQkbWVldGluZ19ub3RlIiwiX2l0JG1lZXRpbmdfdGltZSIsIl9pdCR2b2x1bnRlZXIiLCJfaXQkdm9sdW50ZWVyMiIsIl9pdCR2b2x1bnRlZXIzIiwiX2l0JHZvbHVudGVlcjQiLCJfaXQkdm9sdW50ZWVyNSIsIl9pdCR2b2x1bnRlZXI2IiwiX2l0JHZvbHVudGVlcjciLCJfaXQkdm9sdW50ZWVyOCIsIl9pdCR2b2x1bnRlZXI5IiwiX2l0JHZvbHVudGVlcjAiLCJfaXQkdm9sdW50ZWVyMSIsIl9pdCR2b2x1bnRlZXIxMCIsIl9pdCR2b2x1bnRlZXIxMSIsIl9pdCR2b2x1bnRlZXIxMiIsIm5hbWVLaG1lciIsIm5hbWVMYXRpbiIsInBob25lTnVtYmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=