"use strict";
(self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_main_i"],{
/***/ "./src/shared/views/main/interested_team/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/interested_team/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
/* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditInterestedTeamPage = function NewEditInterestedTeamPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_10__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeam = _useSelector.interestedTeam,
registerErrorMessage = _useSelector.registerErrorMessage,
interestedTeamUpdatePending = _useSelector.interestedTeamUpdatePending;
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state.volunteer;
}),
volunteerEvents = _useSelector2.volunteerEvents;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_6__["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_7__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchEvent)());
}, [dispatch]);
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.interestedTeamDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id && interestedTeam) {
form.setFieldsValue({
name: interestedTeam.name || '',
description: interestedTeam.description || '',
volunteer_event_id: interestedTeam.volunteer_event_id || null,
parent_id: interestedTeam.parent_id || null
});
}
}, [interestedTeam, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (!interestedTeamUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/interested-teams');
}
}
}, [interestedTeamUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.updateInterestedTeamAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.createInterestedTeamAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((react__WEBPACK_IMPORTED_MODULE_7___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("h2", null, id ? 'αααααααααα»αα
αΆααα’αΆαααααα' : 'ααααααααααΈαααα»αα
αΆααα’αΆαααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_4__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "Parent Team",
name: "parent_id"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"], {
allowClear: true,
placeholder: "Select Parent Team"
}, Array.isArray(interestedTeams) && interestedTeams.map(function (team) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(Option, {
key: team.id,
value: team.id
}, team.name);
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799 (Optional)",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__["default"], {
rows: 3
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
xs: 24,
sm: 12,
md: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u17A2\u17D2\u1793\u1780\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u178E\u17CD",
name: "volunteer_event_id",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"], {
placeholder: "Select a volunteer event"
}, Array.isArray(volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data) && (volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data.length) > 0 ? volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data.map(function (event) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"].Option, {
key: event.id,
value: event.id
}, event.name);
}) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"].Option, {
disabled: true
}, "No volunteer event available"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: interestedTeamUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/interested-teams');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditInterestedTeamPage);
/***/ }),
/***/ "./src/shared/views/main/interested_team/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/interested_team/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/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_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_4__);
/* 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_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/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__);
/* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var InterestedTeamList = function InterestedTeamList() {
var _interestedTeams$meta, _volunteerEvents$data, _interestedTeams$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 _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState0 = _slicedToArray(_useState9, 2),
eventIds = _useState0[0],
setEventIds = _useState0[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeamsPending = _useSelector.interestedTeamsPending;
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.volunteer;
}),
volunteerEvents = _useSelector2.volunteerEvents;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_14__.fetchEvent)());
}, [dispatch]);
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchInterestedTeams)({
search: searchText,
page: currentPage,
pageSize: pageSize,
event_ids: eventIds
}));
}, [dispatch, searchText, currentPage, pageSize, eventIds]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_12__.interestedTeamDetailAction)(id));
navigate("/interested-teams/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_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_12__.deleteInterestedTeamAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchInterestedTeams)());
});
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: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'ααααΉαααα·ααΆααα',
dataIndex: 'volunteer_event_name',
key: 'volunteer_event_name',
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_3__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_4___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_4___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 = ((interestedTeams === null || interestedTeams === void 0 ? void 0 : interestedTeams.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_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u17D2\u179A\u17BB\u1798\u1785\u17B6\u1794\u17CB\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_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_3__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (interestedTeams === null || interestedTeams === void 0 || (_interestedTeams$meta = interestedTeams.meta) === null || _interestedTeams$meta === void 0 ? void 0 : _interestedTeams$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_2__["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_4___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_4___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"), " \xA0\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], {
mode: "multiple",
style: {
width: '300px'
},
allowClear: true,
showSearch: true,
placeholder: "Select an event",
value: eventIds,
onChange: function onChange(values) {
return setEventIds(values);
},
filterOption: function filterOption(input, option) {
var _option$children;
return option === null || option === void 0 || (_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.toString().toLowerCase().includes(input.toLowerCase());
}
}, volunteerEvents === null || volunteerEvents === void 0 || (_volunteerEvents$data = volunteerEvents.data) === null || _volunteerEvents$data === void 0 ? void 0 : _volunteerEvents$data.map(function (event) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(Option, {
key: event.id,
value: event.id
}, event.name);
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_3__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_4___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("/interested-teams/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.name
}, it);
}),
pagination: {
current: currentPage,
pageSize: pageSize,
total: (interestedTeams === null || interestedTeams === void 0 || (_interestedTeams$meta2 = interestedTeams.meta) === null || _interestedTeams$meta2 === void 0 ? void 0 : _interestedTeams$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: interestedTeamsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterestedTeamList);
/***/ }),
/***/ "./src/shared/views/main/language/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/language/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_language_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/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 NewEditLanguagePage = function NewEditLanguagePage() {
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.language;
}),
language = _useSelector.language,
registerErrorMessage = _useSelector.registerErrorMessage,
languageUpdatePending = _useSelector.languageUpdatePending;
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_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.languageDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && language) {
form.setFieldsValue({
name: language.name || '',
description: language.description || ''
});
}
}, [language, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!languageUpdatePending && 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('/languages');
}
}
}, [languageUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateLanguageAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.createLanguageAction)({
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: languageUpdatePending
}, "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('/languages');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditLanguagePage);
/***/ }),
/***/ "./src/shared/views/main/language/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/language/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_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_language_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/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 LanguageList = function LanguageList() {
var _languages$meta, _languages$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.language;
}),
languages = _useSelector.languages,
languagesPending = _useSelector.languagesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchLanguages)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.languageDetailAction)(id));
navigate("/languages/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_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteLanguageAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchLanguages)());
});
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 = ((languages === null || languages === void 0 ? void 0 : languages.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\u1797\u17B6\u179F\u17B6"), /*#__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: ", (languages === null || languages === void 0 || (_languages$meta = languages.meta) === null || _languages$meta === void 0 ? void 0 : _languages$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("/languages/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: (languages === null || languages === void 0 || (_languages$meta2 = languages.meta) === null || _languages$meta2 === void 0 ? void 0 : _languages$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: languagesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LanguageList);
/***/ }),
/***/ "./src/shared/views/main/notification/core/notification_service.ts":
/*!*************************************************************************!*\
!*** ./src/shared/views/main/notification/core/notification_service.ts ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ notifyUserByStatus: () => (/* binding */ notifyUserByStatus),
/* harmony export */ notifyUserTelegramService: () => (/* binding */ notifyUserTelegramService)
/* harmony export */ });
/* harmony import */ var _core_base_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _configs_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../configs/constants */ "./src/shared/configs/constants.ts");
function _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 asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var notifyUserTelegramService = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(user_id, message) {
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
_context.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY, "?user_id=").concat(user_id, "&message=").concat(message));
case 1:
return _context.a(2, _context.v);
}
}, _callee);
}));
return function notifyUserTelegramService(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var notifyUserByStatus = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(status, message) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
_context2.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY_STATUS, "?status=").concat(status, "&message=").concat(message));
case 1:
return _context2.a(2, _context2.v);
}
}, _callee2);
}));
return function notifyUserByStatus(_x3, _x4) {
return _ref2.apply(this, arguments);
};
}();
/***/ }),
/***/ "./src/shared/views/main/notification/index.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/notification/index.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* 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_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_2__);
/* 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_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _core_notification_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/notification_service */ "./src/shared/views/main/notification/core/notification_service.ts");
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 asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var Option = antd_es_select__WEBPACK_IMPORTED_MODULE_6__["default"].Option;
var Invitation_to_Volunteer_Briefing_Meeting = "\n\uD83D\uDCE2 **\u1780\u17B6\u179A\u17A2\u1789\u17D2\u1787\u17BE\u1789\u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785**\n\n\n\uD83D\uDCDD **\u179F\u17BC\u1798\u17A2\u1789\u17D2\u1787\u17BE\u1789\u179B\u17C4\u1780\u17A2\u17D2\u1793\u1780** \u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8 **\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785\u1780\u17D2\u179A\u17BB\u1798\u1780\u17B6\u179A\u1784\u17B6\u179A**\n\u178A\u17BE\u1798\u17D2\u1794\u17B8\u179A\u17C0\u1794\u1785\u17C6\u1781\u17D2\u179B\u17BD\u1793\u1787\u17B6\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784 **\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD\u17A2\u1784\u17D2\u1782\u179A\u179F\u1784\u17D2\u1780\u17D2\u179A\u17B6\u1793\u17D2\u178F \u17E2\u17E0\u17E2\u17E5**\u3002\n\n\n\uD83D\uDCC5 \u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u17D6 \u1790\u17D2\u1784\u17C3\u179F\u17C5\u179A\u17CD \u1791\u17B8 \u17E2\u17E9 \u1781\u17C2\u1798\u17B8\u1793\u17B6 \u17E2\u17E0\u17E2\u17E5\n\u23F0 \u1796\u17C1\u179B\u179C\u17C1\u179B\u17B6\u17D6 \u17E9:\u17E0\u17E0 \u1796\u17D2\u179A\u17B9\u1780\n\uD83D\uDCCD \u1791\u17B8\u178F\u17B6\u17C6\u1784\u17D6 \u1791\u17B8\u179B\u17B6\u1793\u1795\u17D2\u178F\u17B6\u1785\u17CB\u1796\u17D2\u179A\u17D0\u178F\u17D2\u179A\u179F\u17A0\u1796\u17D0\u1793\u17D2\u1792\u1780\u17B8\u17A1\u17B6\u1794\u17CA\u17BC\u179B \u1793\u17B7\u1784\u1794\u17C9\u17C1\u178F\u1784\u17CB\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 (\u1796\u17A0\u17BB\u1780\u17B8\u17A1\u178A\u17D2\u178B\u17B6\u1793\u1787\u17B6\u178F\u17B7)\n\uD83D\uDC55 \u179F\u1798\u17D2\u179B\u17C0\u1780\u1794\u17C6\u1796\u17B6\u1780\u17CB\u17D6 \u179F\u1798\u179A\u1798\u17D2\u1799\n\n\uD83D\uDCDE \u1796\u17D0\u178F\u17CC\u1798\u17B6\u1793\u179B\u1798\u17D2\u17A2\u17B7\u178F\u179F\u17BC\u1798\u1791\u17C6\u1793\u17B6\u1780\u17CB\u1791\u17C6\u1793\u1784\u17D6 098 89 87 67\n";
var NotificationPage = function NotificationPage() {
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)("PARTICIPANTS"),
_useState2 = _slicedToArray(_useState, 2),
selectedStatus = _useState2[0],
setSelectedStatus = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(Invitation_to_Volunteer_Briefing_Meeting),
_useState4 = _slicedToArray(_useState3, 2),
messageText = _useState4[0],
setMessageText = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState6 = _slicedToArray(_useState5, 2),
loading = _useState6[0],
setLoading = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState8 = _slicedToArray(_useState7, 2),
confirmVisible = _useState8[0],
setConfirmVisible = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState0 = _slicedToArray(_useState9, 2),
finalConfirmVisible = _useState0[0],
setFinalConfirmVisible = _useState0[1];
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(""),
_useState10 = _slicedToArray(_useState1, 2),
sendType = _useState10[0],
setSendType = _useState10[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state;
}),
auth = _useSelector.auth;
var users = auth.users;
var userStatuses = ["PARTICIPANTS", "SHORTLIST", "INTERVIEW", "RESERVE", "FAILED", "RESIGNATION", "DISQUALIFICATION", "REGISTER"];
var showConfirmDialog = function showConfirmDialog(type) {
if (!messageText) {
return antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].warning("Please enter a message before sending.");
}
setSendType(type);
setConfirmVisible(true);
};
var handleFirstConfirm = function handleFirstConfirm() {
setConfirmVisible(false);
setFinalConfirmVisible(true);
};
var handleConfirmSend = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
var _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.p = _context.n) {
case 0:
setLoading(true);
setFinalConfirmVisible(false);
_context.p = 1;
if (!(sendType === "user")) {
_context.n = 3;
break;
}
_context.n = 2;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_9__.notifyUserTelegramService)(users.id, messageText);
case 2:
_context.n = 4;
break;
case 3:
_context.n = 4;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_9__.notifyUserByStatus)(selectedStatus, messageText);
case 4:
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success("Message(s) sent successfully!");
setMessageText(Invitation_to_Volunteer_Briefing_Meeting);
_context.n = 6;
break;
case 5:
_context.p = 5;
_t = _context.v;
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to send message(s)!");
case 6:
setLoading(false);
case 7:
return _context.a(2);
}
}, _callee, null, [[1, 5]]);
}));
return function handleConfirmSend() {
return _ref.apply(this, arguments);
};
}();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("div", {
style: {
padding: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("h2", null, "Send Notifications"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("div", {
style: {
marginBottom: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [16, 16]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_6__["default"], {
placeholder: "Select User Status",
value: selectedStatus,
onChange: setSelectedStatus,
style: {
width: 200
}
}, userStatuses.map(function (status) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(Option, {
key: status,
value: status
}, status);
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"].TextArea, {
placeholder: "Enter Message",
value: messageText,
onChange: function onChange(e) {
return setMessageText(e.target.value);
},
rows: 20
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_2___default()), {
type: "primary",
onClick: function onClick() {
return showConfirmDialog("status");
},
loading: loading
}, "Send by Status")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
title: "Confirm Sending Message",
visible: confirmVisible,
onOk: handleFirstConfirm,
onCancel: function onCancel() {
return setConfirmVisible(false);
},
okText: "Proceed",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], null, "Are you sure you want to send this message?"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("strong", null, "Message:"), " ", messageText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("strong", null, "User Status:"), " ", selectedStatus)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
title: "Final Confirmation",
visible: finalConfirmVisible,
onOk: handleConfirmSend,
onCancel: function onCancel() {
return setFinalConfirmVisible(false);
},
okText: "Yes, Send",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, "This is your final confirmation. Do you want to proceed with sending the message?")));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotificationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/form.tsx":
/*!***************************************************!*\
!*** ./src/shared/views/main/occupation/form.tsx ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/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 NewEditOccupationPage = function NewEditOccupationPage() {
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.occupation;
}),
occupation = _useSelector.occupation,
registerErrorMessage = _useSelector.registerErrorMessage,
occupationUpdatePending = _useSelector.occupationUpdatePending;
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_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.occupationDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && occupation) {
form.setFieldsValue({
name: occupation.name || '',
description: occupation.description || ''
});
}
}, [occupation, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!occupationUpdatePending && 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('/occupations');
}
}
}, [occupationUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateOccupationAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.createOccupationAction)({
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: occupationUpdatePending
}, "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('/occupations');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOccupationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/index.tsx":
/*!****************************************************!*\
!*** ./src/shared/views/main/occupation/index.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_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_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/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 OccupationList = function OccupationList() {
var _occupations$meta, _occupations$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.occupation;
}),
occupations = _useSelector.occupations,
occupationsPending = _useSelector.occupationsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOccupations)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.occupationDetailAction)(id));
navigate("/occupations/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_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteOccupationAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOccupations)());
});
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 = ((occupations === null || occupations === void 0 ? void 0 : occupations.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\u1798\u17BB\u1781\u179A\u1794\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: ", (occupations === null || occupations === void 0 || (_occupations$meta = occupations.meta) === null || _occupations$meta === void 0 ? void 0 : _occupations$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("/occupations/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: (occupations === null || occupations === void 0 || (_occupations$meta2 = occupations.meta) === null || _occupations$meta2 === void 0 ? void 0 : _occupations$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: occupationsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OccupationList);
/***/ }),
/***/ "./src/shared/views/main/offer_program/form.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/offer_program/form.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_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_col__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
/* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOfferProgramPage = function NewEditOfferProgramPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_10__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state.offerProgram;
}),
offerProgram = _useSelector.offerProgram,
registerErrorMessage = _useSelector.registerErrorMessage,
offerProgramUpdatePending = _useSelector.offerProgramUpdatePending;
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state.volunteer;
}),
volunteerEvents = _useSelector2.volunteerEvents;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_6__["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_7__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchEvent)());
}, [dispatch]);
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_9__.offerProgramDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id && offerProgram) {
form.setFieldsValue({
name: offerProgram.name || '',
description: offerProgram.description || '',
volunteer_event_id: offerProgram.volunteer_event_id || null
});
}
}, [offerProgram, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (!offerProgramUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/offer-programs');
}
}
}, [offerProgramUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_9__.updateOfferProgramAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_9__.createOfferProgramAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((react__WEBPACK_IMPORTED_MODULE_7___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("h2", null, id ? 'ααααααααααααΈααΈαααααααΌαβ' : 'ααααααααααΈααααααΈααΈαααααααΌαβ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_4__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
xs: 24,
sm: 12,
md: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u17A2\u17D2\u1793\u1780\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u178E\u17CD",
name: "volunteer_event_id",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "Select a volunteer event"
}, Array.isArray(volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data) && (volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data.length) > 0 ? volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.data.map(function (event) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"].Option, {
key: event.id,
value: event.id
}, event.name);
}) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"].Option, {
disabled: true
}, "No volunteer event available"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: offerProgramUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/offer-programs');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOfferProgramPage);
/***/ }),
/***/ "./src/shared/views/main/offer_program/index.tsx":
/*!*******************************************************!*\
!*** ./src/shared/views/main/offer_program/index.tsx ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/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_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_4__);
/* 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_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/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__);
/* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OfferProgramList = function OfferProgramList() {
var _offerPrograms$meta, _volunteerEvents$data, _offerPrograms$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 _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState0 = _slicedToArray(_useState9, 2),
eventIds = _useState0[0],
setEventIds = _useState0[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.offerProgram;
}),
offerPrograms = _useSelector.offerPrograms,
offerProgramsPending = _useSelector.offerProgramsPending;
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.volunteer;
}),
volunteerEvents = _useSelector2.volunteerEvents;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_14__.fetchEvent)());
}, [dispatch]);
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchOfferPrograms)({
search: searchText,
page: currentPage,
pageSize: pageSize,
event_ids: eventIds
}));
}, [dispatch, searchText, currentPage, pageSize, eventIds]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_12__.offerProgramDetailAction)(id));
navigate("/offer-programs/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_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_12__.deleteOfferProgramAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchOfferPrograms)());
});
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: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'ααααΉαααα·ααΆααα',
dataIndex: 'volunteer_event_name',
key: 'volunteer_event_name',
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_3__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_4___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_4___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 = ((offerPrograms === null || offerPrograms === void 0 ? void 0 : offerPrograms.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_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u1798\u17D2\u1798\u179C\u17B8\u1792\u17B8\u1795\u17D2\u178A\u179B\u17CB\u1787\u17BC\u1793\u200B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_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_3__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (offerPrograms === null || offerPrograms === void 0 || (_offerPrograms$meta = offerPrograms.meta) === null || _offerPrograms$meta === void 0 ? void 0 : _offerPrograms$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_2__["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_4___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_4___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"), " \xA0\xA0", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], {
mode: "multiple",
style: {
width: '300px'
},
allowClear: true,
showSearch: true,
placeholder: "Select an event",
value: eventIds,
onChange: function onChange(values) {
return setEventIds(values);
},
filterOption: function filterOption(input, option) {
var _option$children;
return option === null || option === void 0 || (_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.toString().toLowerCase().includes(input.toLowerCase());
}
}, volunteerEvents === null || volunteerEvents === void 0 || (_volunteerEvents$data = volunteerEvents.data) === null || _volunteerEvents$data === void 0 ? void 0 : _volunteerEvents$data.map(function (event) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(Option, {
key: event.id,
value: event.id
}, event.name);
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_3__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_4___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("/offer-programs/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.name
}, it);
}),
pagination: {
current: currentPage,
pageSize: pageSize,
total: (offerPrograms === null || offerPrograms === void 0 || (_offerPrograms$meta2 = offerPrograms.meta) === null || _offerPrograms$meta2 === void 0 ? void 0 : _offerPrograms$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: offerProgramsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OfferProgramList);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/form.tsx":
/*!***********************************************************!*\
!*** ./src/shared/views/main/opportunity_source/form.tsx ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/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 NewEditOpportunitySourcePage = function NewEditOpportunitySourcePage() {
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.opportunitySource;
}),
opportunitySource = _useSelector.opportunitySource,
registerErrorMessage = _useSelector.registerErrorMessage,
opportunitySourceUpdatePending = _useSelector.opportunitySourceUpdatePending;
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_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.opportunitySourceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && opportunitySource) {
form.setFieldsValue({
name: opportunitySource.name || '',
description: opportunitySource.description || ''
});
}
}, [opportunitySource, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!opportunitySourceUpdatePending && 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('/opportunity-sources');
}
}
}, [opportunitySourceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateOpportunitySourceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.createOpportunitySourceAction)({
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: opportunitySourceUpdatePending
}, "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('/opportunity-sources');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOpportunitySourcePage);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/index.tsx":
/*!************************************************************!*\
!*** ./src/shared/views/main/opportunity_source/index.tsx ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_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_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/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 OpportunitySourceList = function OpportunitySourceList() {
var _opportunitySources$m, _opportunitySources$m2;
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.opportunitySource;
}),
opportunitySources = _useSelector.opportunitySources,
opportunitySourcesPending = _useSelector.opportunitySourcesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOpportunitySources)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.opportunitySourceDetailAction)(id));
navigate("/opportunity-sources/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_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteOpportunitySourceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOpportunitySources)());
});
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 = ((opportunitySources === null || opportunitySources === void 0 ? void 0 : opportunitySources.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\u1794\u17D2\u179A\u1797\u1796\u17B1\u1780\u17B6\u179F"), /*#__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: ", (opportunitySources === null || opportunitySources === void 0 || (_opportunitySources$m = opportunitySources.meta) === null || _opportunitySources$m === void 0 ? void 0 : _opportunitySources$m.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("/opportunity-sources/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: (opportunitySources === null || opportunitySources === void 0 || (_opportunitySources$m2 = opportunitySources.meta) === null || _opportunitySources$m2 === void 0 ? void 0 : _opportunitySources$m2.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: opportunitySourcesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpportunitySourceList);
/***/ }),
/***/ "./src/shared/views/main/province/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/province/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_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_province_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/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 NewEditProvincePage = function NewEditProvincePage() {
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.province;
}),
province = _useSelector.province,
registerErrorMessage = _useSelector.registerErrorMessage,
provinceUpdatePending = _useSelector.provinceUpdatePending;
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_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.provinceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && province) {
form.setFieldsValue({
name: province.name || '',
description: province.description || ''
});
}
}, [province, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!provinceUpdatePending && 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('/provinces');
}
}
}, [provinceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateProvinceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.createProvinceAction)({
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: provinceUpdatePending
}, "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('/provinces');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditProvincePage);
/***/ }),
/***/ "./src/shared/views/main/province/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/province/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_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_province_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/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 ProvinceList = function ProvinceList() {
var _provinces$meta, _provinces$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.province;
}),
provinces = _useSelector.provinces,
provincesPending = _useSelector.provincesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchProvinces)({
search: searchText,
page: currentPage,
pageSize: pageSize
}));
}, [dispatch, searchText, currentPage, pageSize]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.provinceDetailAction)(id));
navigate("/provinces/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_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteProvinceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchProvinces)());
});
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 = ((provinces === null || provinces === void 0 ? void 0 : provinces.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\u1781\u17C1\u178F\u17D2\u178F"), /*#__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: ", (provinces === null || provinces === void 0 || (_provinces$meta = provinces.meta) === null || _provinces$meta === void 0 ? void 0 : _provinces$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("/provinces/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: (provinces === null || provinces === void 0 || (_provinces$meta2 = provinces.meta) === null || _provinces$meta2 === void 0 ? void 0 : _provinces$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: provincesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProvinceList);
/***/ })
}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX21haW5faS52b2x1bnRlZXJhcGkuM2IwOGQ3NjE3MGUyNmNjZmU1NDQuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtRDtBQUdJO0FBRWdHO0FBQ3hHO0FBQ0Q7QUFDMkI7QUFFekUsSUFBTVcseUJBQW1DLEdBQUcsU0FBdENBLHlCQUFtQ0EsQ0FBQSxFQUFTO0VBQ2hELElBQU1DLFFBQVEsR0FBR1Qsd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1VLFFBQVEsR0FBR0wsOERBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFNLFlBQUEsR0FBK0ZWLHdEQUFXLENBQ3hHLFVBQUNXLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDQyxjQUFjO0lBQUEsQ0FDNUMsQ0FBQztJQUZPQyxlQUFlLEdBQUFILFlBQUEsQ0FBZkcsZUFBZTtJQUFFRCxjQUFjLEdBQUFGLFlBQUEsQ0FBZEUsY0FBYztJQUFFRSxvQkFBb0IsR0FBQUosWUFBQSxDQUFwQkksb0JBQW9CO0lBQUVDLDJCQUEyQixHQUFBTCxZQUFBLENBQTNCSywyQkFBMkI7RUFHMUYsSUFBQUMsYUFBQSxHQUE0QmhCLHdEQUFXLENBQUMsVUFBQ1csS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNNLFNBQVM7SUFBQSxFQUFDO0lBQXRFQyxlQUFlLEdBQUFGLGFBQUEsQ0FBZkUsZUFBZTtFQUV2QixJQUFBQyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFB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QixZQUFZLENBQUNyRixHQUFHLENBQUMsVUFBQ3VGLEVBQUUsRUFBRTZCLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDbEgsR0FBRyxFQUFFb0YsRUFBRSxDQUFDL0gsRUFBRTtRQUNWNEosS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQm5KLElBQUksRUFBRXNILEVBQUUsQ0FBQ3RIO01BQUksR0FDVnNILEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSmIsVUFBVSxFQUFFO01BQ1ZDLE9BQU8sRUFBRTlDLFdBQVc7TUFDcEJJLFFBQVEsRUFBRUEsUUFBUTtNQUNsQm1FLEtBQUssRUFBRSxDQUFBa00sU0FBUyxhQUFUQSxTQUFTLGdCQUFBRCxnQkFBQSxHQUFUQyxTQUFTLENBQUVuTSxJQUFJLGNBQUFrTSxnQkFBQSx1QkFBZkEsZ0JBQUEsQ0FBaUJqTSxLQUFLLEtBQUksQ0FBQztNQUNsQ2tCLGVBQWUsRUFBRTtJQUNuQixDQUFFO0lBQ0ZoQixRQUFRLEVBQUU3QixpQkFBa0I7SUFDNUI4QyxNQUFNLEVBQUMsSUFBSTtJQUNYQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0ZsTSwwREFBQSxDQUFDMkYseUVBQWE7SUFBQ3dHLE9BQU8sRUFBRTZLO0VBQWlCLENBQUUsQ0FDeEMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUosWUFBWSxFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vbGFuZ3VhZ2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9sYW5ndWFnZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9ub3RpZmljYXRpb24vY29yZS9ub3RpZmljYXRpb25fc2VydmljZS50cyIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL25vdGlmaWNhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vY2N1cGF0aW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2NjdXBhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vZmZlcl9wcm9ncmFtL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2ZmZXJfcHJvZ3JhbS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vcHJvdmluY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9wcm92aW5jZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSwgU2VsZWN0IH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJbnRlcmVzdGVkVGVhbSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24sIGludGVyZXN0ZWRUZWFtRGV0YWlsQWN0aW9uLCB1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZXN0ZWRfdGVhbS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcbmltcG9ydCB7IGZldGNoRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy92b2x1bnRlZXIvY29yZS9hY3Rpb25zJztcblxuY29uc3QgTmV3RWRpdEludGVyZXN0ZWRUZWFtUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IGludGVyZXN0ZWRUZWFtcywgaW50ZXJlc3RlZFRlYW0sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5pbnRlcmVzdGVkVGVhbVxuICApO1xuICBjb25zdCB7IHZvbHVudGVlckV2ZW50cyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlcik7XG5cbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudCgpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBpbnRlcmVzdGVkVGVhbSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IGludGVyZXN0ZWRUZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBpbnRlcmVzdGVkVGVhbS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgdm9sdW50ZWVyX2V2ZW50X2lkOiBpbnRlcmVzdGVkVGVhbS52b2x1bnRlZXJfZXZlbnRfaWQgfHwgbnVsbCxcbiAgICAgICAgcGFyZW50X2lkOiBpbnRlcmVzdGVkVGVhbS5wYXJlbnRfaWQgfHwgbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2ludGVyZXN0ZWRUZWFtLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaW50ZXJlc3RlZFRlYW1VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL2ludGVyZXN0ZWQtdGVhbXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IEludGVyZXN0ZWRUZWFtKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6A4Z+S4Z6a4Z674Z6Y4Z6F4Z624Z6U4Z+L4Z6i4Z624Z6a4Z6Y4Z+S4Z6Y4Z6O4Z+NJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn40nfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIlBhcmVudCBUZWFtXCIgbmFtZT1cInBhcmVudF9pZFwiPlxuICAgICAgICAgICAgICA8U2VsZWN0IGFsbG93Q2xlYXIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUGFyZW50IFRlYW1cIj5cbiAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShpbnRlcmVzdGVkVGVhbXMpICYmIGludGVyZXN0ZWRUZWFtcy5tYXAoKHRlYW0pID0+IChcbiAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXt0ZWFtLmlkfSB2YWx1ZT17dGVhbS5pZH0+e3RlYW0ubmFtZX08L09wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemSAoT3B0aW9uYWwpXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCB4cz17MjR9IHNtPXsxMn0gbWQ9ezh9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeouGfkuGek+GegOGen+GfkuGemOGfkOGeguGfkuGemuGeheGet+Gej+GfkuGej+GegOGfkuGek+Geu+GehOGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGejuGfjVwiIG5hbWU9XCJ2b2x1bnRlZXJfZXZlbnRfaWRcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgPFNlbGVjdCBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIHZvbHVudGVlciBldmVudFwiPlxuICAgICAgICAgICAgICAgIHtBcnJheS5pc0FycmF5KHZvbHVudGVlckV2ZW50cz8uZGF0YSkgJiYgdm9sdW50ZWVyRXZlbnRzPy5kYXRhLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgICAgICB2b2x1bnRlZXJFdmVudHM/LmRhdGEubWFwKChldmVudCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0Lk9wdGlvbiBrZXk9e2V2ZW50LmlkfSB2YWx1ZT17ZXZlbnQuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgIHtldmVudC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdC5PcHRpb24+XG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0Lk9wdGlvbiBkaXNhYmxlZD5ObyB2b2x1bnRlZXIgZXZlbnQgYXZhaWxhYmxlPC9TZWxlY3QuT3B0aW9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9pbnRlcmVzdGVkLXRlYW1zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSwgQ29sLCBTZWxlY3QgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVJbnRlcmVzdGVkVGVhbUFjdGlvbiwgaW50ZXJlc3RlZFRlYW1EZXRhaWxBY3Rpb24sIGZldGNoSW50ZXJlc3RlZFRlYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW50ZXJlc3RlZF90ZWFtL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBmZXRjaEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdm9sdW50ZWVyL2NvcmUvYWN0aW9ucyc7XG5cbmNvbnN0IEludGVyZXN0ZWRUZWFtTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VTdGF0ZSgxMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbZXZlbnRJZHMsIHNldEV2ZW50SWRzXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSk7XG4gIGNvbnN0IHsgaW50ZXJlc3RlZFRlYW1zLCBpbnRlcmVzdGVkVGVhbXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW50ZXJlc3RlZFRlYW0pO1xuICBjb25zdCB7IHZvbHVudGVlckV2ZW50cyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlcik7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaEV2ZW50KCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoSW50ZXJlc3RlZFRlYW1zKHtcbiAgICAgIHNlYXJjaDogc2VhcmNoVGV4dCxcbiAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLFxuICAgICAgcGFnZVNpemUsXG4gICAgICBldmVudF9pZHM6IGV2ZW50SWRzXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZSwgZXZlbnRJZHNdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvaW50ZXJlc3RlZC10ZWFtcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZUludGVyZXN0ZWRUZWFtQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoSW50ZXJlc3RlZFRlYW1zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSAocGFnaW5hdGlvbjogYW55KSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBzZXRQYWdlU2l6ZShwYWdpbmF0aW9uLnBhZ2VTaXplKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+NJywgZGF0YUluZGV4OiAndm9sdW50ZWVyX2V2ZW50X25hbWUnLCBrZXk6ICd2b2x1bnRlZXJfZXZlbnRfbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChpbnRlcmVzdGVkVGVhbXM/LmRhdGEgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGegOGfkuGemuGeu+GemOGeheGetuGelOGfi+GeouGetuGemuGemOGfkuGemOGejuGfjTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtpbnRlcmVzdGVkVGVhbXM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPiAmbmJzcDsmbmJzcDtcblxuICAgICAgICAgIDxzcGFuPuGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjTwvc3Bhbj5cbiAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICBtb2RlPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6ICczMDBweCcgfX1cbiAgICAgICAgICAgIGFsbG93Q2xlYXJcbiAgICAgICAgICAgIHNob3dTZWFyY2hcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIGV2ZW50XCJcbiAgICAgICAgICAgIHZhbHVlPXtldmVudElkc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWVzKSA9PiBzZXRFdmVudElkcyh2YWx1ZXMpfVxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uPXsoaW5wdXQsIG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgb3B0aW9uPy5jaGlsZHJlbj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGlucHV0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZvbHVudGVlckV2ZW50cz8uZGF0YT8ubWFwKChldmVudCkgPT4gKFxuICAgICAgICAgICAgICA8T3B0aW9uIGtleT17ZXZlbnQuaWR9IHZhbHVlPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAge2V2ZW50Lm5hbWV9XG4gICAgICAgICAgICAgIDwvT3B0aW9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL2ludGVyZXN0ZWQtdGVhbXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17e1xuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRQYWdlLFxuICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSxcbiAgICAgICAgICB0b3RhbDogaW50ZXJlc3RlZFRlYW1zPy5tZXRhPy50b3RhbCB8fCAwLFxuICAgICAgICAgIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYmxlQ2hhbmdlfVxuICAgICAgICByb3dLZXk9XCJpZFwiXG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17aW50ZXJlc3RlZFRlYW1zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyZXN0ZWRUZWFtTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVMYW5ndWFnZUFjdGlvbiwgbGFuZ3VhZ2VEZXRhaWxBY3Rpb24sIHVwZGF0ZUxhbmd1YWdlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbGFuZ3VhZ2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRMYW5ndWFnZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBsYW5ndWFnZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGxhbmd1YWdlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKGxhbmd1YWdlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIGxhbmd1YWdlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogbGFuZ3VhZ2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsYW5ndWFnZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvbGFuZ3VhZ2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBMYW5ndWFnZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlTGFuZ3VhZ2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlTGFuZ3VhZ2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGel+GetuGen+GeticgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6X4Z624Z6f4Z62J308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtsYW5ndWFnZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9sYW5ndWFnZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdExhbmd1YWdlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlTGFuZ3VhZ2VBY3Rpb24sIGxhbmd1YWdlRGV0YWlsQWN0aW9uLCBmZXRjaExhbmd1YWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2xhbmd1YWdlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IExhbmd1YWdlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3BhZ2VTaXplLCBzZXRQYWdlU2l6ZV0gPSB1c2VTdGF0ZSgxMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IGxhbmd1YWdlcywgbGFuZ3VhZ2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoTGFuZ3VhZ2VzKHtcbiAgICAgIHNlYXJjaDogc2VhcmNoVGV4dCxcbiAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLFxuICAgICAgcGFnZVNpemVcbiAgICB9KSk7XG4gIH0sIFtkaXNwYXRjaCwgc2VhcmNoVGV4dCwgY3VycmVudFBhZ2UsIHBhZ2VTaXplXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gobGFuZ3VhZ2VEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL2xhbmd1YWdlcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZUxhbmd1YWdlQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoTGFuZ3VhZ2VzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSAocGFnaW5hdGlvbjogYW55KSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBzZXRQYWdlU2l6ZShwYWdpbmF0aW9uLnBhZ2VTaXplKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAobGFuZ3VhZ2VzPy5kYXRhIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5Lhnofhnrjhnpfhnrbhnp/hnrY8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7bGFuZ3VhZ2VzPy5tZXRhPy50b3RhbCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgIHNldEN1cnJlbnRQYWdlKDEpO1xuICAgICAgICAgICAgICBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvbGFuZ3VhZ2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3tcbiAgICAgICAgICBjdXJyZW50OiBjdXJyZW50UGFnZSxcbiAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgICAgdG90YWw6IGxhbmd1YWdlcz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e2xhbmd1YWdlc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMYW5ndWFnZUxpc3Q7XG4iLCJpbXBvcnQgeyBnZXRXaXRoQ29uZmlnLCBwb3N0V2l0aENvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2Jhc2Uvc2VydmljZXNcIjtcbmltcG9ydCB7IFVSTCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3MvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IG5vdGlmeVVzZXJUZWxlZ3JhbVNlcnZpY2UgPSBhc3luYyAodXNlcl9pZDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYXdhaXQgZ2V0V2l0aENvbmZpZyhcbiAgICAgICAgYCR7VVJMLk5PVElGWX0/dXNlcl9pZD0ke3VzZXJfaWR9Jm1lc3NhZ2U9JHttZXNzYWdlfWAsXG4gICAgKTtcbn07XG5cblxuXG5leHBvcnQgY29uc3Qgbm90aWZ5VXNlckJ5U3RhdHVzID0gYXN5bmMgKHN0YXR1czogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYXdhaXQgZ2V0V2l0aENvbmZpZyhcbiAgICAgICAgYCR7VVJMLk5PVElGWV9TVEFUVVN9P3N0YXR1cz0ke3N0YXR1c30mbWVzc2FnZT0ke21lc3NhZ2V9YCxcbiAgICApO1xufTsiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNlbGVjdCwgUm93LCBDb2wsIE1vZGFsLCBtZXNzYWdlIGFzIGFudGRNZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tIFwiLi4vLi4vLi4vcmVkdXgvc3RvcmVcIjtcbmltcG9ydCB7IG5vdGlmeVVzZXJCeVN0YXR1cywgbm90aWZ5VXNlclRlbGVncmFtU2VydmljZSB9IGZyb20gXCIuL2NvcmUvbm90aWZpY2F0aW9uX3NlcnZpY2VcIjtcblxuY29uc3QgeyBPcHRpb24gfSA9IFNlbGVjdDtcblxuY29uc3QgSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyA9IGBcbvCfk6IgKirhnoDhnrbhnprhnqLhnonhn5Lhnofhnr7hnonhnoXhnrzhnpvhnprhnr3hnpjhnoDhnrfhnoXhn5LhnoXhnpThn5Lhnprhnofhnrvhn4bhnpXhn5Lhnp/hnpbhn5LhnpzhnpXhn5Lhnp/hnrbhnpnhnqLhn4bhnpbhnrjhno/hnr3hnpPhnrbhnpHhnrjhnpfhnrbhnprhnoDhnrfhnoXhn5LhnoUqKlxuXG5cbvCfk50gKirhnp/hnrzhnpjhnqLhnonhn5Lhnofhnr7hnonhnpvhn4ThnoDhnqLhn5LhnpPhnoAqKiDhnoXhnrzhnpvhnprhnr3hnpjhnoDhnrfhnoXhn5LhnoXhnpThn5Lhnprhnofhnrvhn4bhnpXhn5Lhnp/hnpbhn5LhnpzhnpXhn5Lhnp/hnrbhnpnhnqLhn4bhnpbhnrggKirhno/hnr3hnpPhnrbhnpHhnrjhnpfhnrbhnprhnoDhnrfhnoXhn5LhnoXhnoDhn5LhnprhnrvhnpjhnoDhnrbhnprhnoThnrbhnpoqKlxu4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644Z6a4Z+A4Z6U4Z6F4Z+G4Z6B4Z+S4Z6b4Z694Z6T4Z6H4Z624Z6f4Z+S4Z6Y4Z+Q4Z6C4Z+S4Z6a4Z6F4Z634Z6P4Z+S4Z6P4Z6A4Z+S4Z6T4Z674Z6EICoq4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4Z6i4Z6E4Z+S4Z6C4Z6a4Z6f4Z6E4Z+S4Z6A4Z+S4Z6a4Z624Z6T4Z+S4Z6PIOGfouGfoOGfouGfpSoq44CCXG5cblxu8J+ThSDhnoDhnrbhnpvhnpThnprhnrfhnoXhn5Lhnobhn4HhnpHhn5Yg4Z6Q4Z+S4Z6E4Z+D4Z6f4Z+F4Z6a4Z+NIOGekeGeuCDhn6Lhn6kg4Z6B4Z+C4Z6Y4Z644Z6T4Z62IOGfouGfoOGfouGfpVxu4o+wIOGeluGfgeGem+GenOGfgeGem+GetuGfliDhn6k64Z+g4Z+gIOGeluGfkuGemuGeueGegFxu8J+TjSDhnpHhnrjhno/hnrbhn4bhnoThn5Yg4Z6R4Z644Z6b4Z624Z6T4Z6V4Z+S4Z6P4Z624Z6F4Z+L4Z6W4Z+S4Z6a4Z+Q4Z6P4Z+S4Z6a4Z6f4Z6g4Z6W4Z+Q4Z6T4Z+S4Z6S4Z6A4Z644Z6h4Z624Z6U4Z+K4Z684Z6bIOGek+Get+GehOGelOGfieGfgeGej+GehOGfi+GegOGemOGfkuGeluGeu+Geh+GetiAo4Z6W4Z6g4Z674Z6A4Z644Z6h4Z6K4Z+S4Z6L4Z624Z6T4Z6H4Z624Z6P4Z63KVxu8J+RlSDhnp/hnpjhn5Lhnpvhn4DhnoDhnpThn4bhnpbhnrbhnoDhn4vhn5Yg4Z6f4Z6Y4Z6a4Z6Y4Z+S4Z6ZXG5cbvCfk54g4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4Z6b4Z6Y4Z+S4Z6i4Z634Z6P4Z6f4Z684Z6Y4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4Z+WIDA5OCA4OSA4NyA2N1xuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgW3NlbGVjdGVkU3RhdHVzLCBzZXRTZWxlY3RlZFN0YXR1c10gPSB1c2VTdGF0ZShcIlBBUlRJQ0lQQU5UU1wiKTtcbiAgY29uc3QgW21lc3NhZ2VUZXh0LCBzZXRNZXNzYWdlVGV4dF0gPSB1c2VTdGF0ZShJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbY29uZmlybVZpc2libGUsIHNldENvbmZpcm1WaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ZpbmFsQ29uZmlybVZpc2libGUsIHNldEZpbmFsQ29uZmlybVZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VuZFR5cGUsIHNldFNlbmRUeXBlXSA9IHVzZVN0YXRlKFwiXCIpO1xuXG4gIGNvbnN0IHsgYXV0aCB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgeyB1c2VycyB9ID0gYXV0aDtcblxuICBjb25zdCB1c2VyU3RhdHVzZXMgPSBbXCJQQVJUSUNJUEFOVFNcIixcIlNIT1JUTElTVFwiLCBcIklOVEVSVklFV1wiLCBcIlJFU0VSVkVcIiwgXCJGQUlMRURcIiwgXCJSRVNJR05BVElPTlwiLCBcIkRJU1FVQUxJRklDQVRJT05cIixcIlJFR0lTVEVSXCJdO1xuXG4gIGNvbnN0IHNob3dDb25maXJtRGlhbG9nID0gKHR5cGU6IFwidXNlclwiIHwgXCJzdGF0dXNcIikgPT4ge1xuICAgIGlmICghbWVzc2FnZVRleHQpIHtcbiAgICAgIHJldHVybiBhbnRkTWVzc2FnZS53YXJuaW5nKFwiUGxlYXNlIGVudGVyIGEgbWVzc2FnZSBiZWZvcmUgc2VuZGluZy5cIik7XG4gICAgfVxuICAgIHNldFNlbmRUeXBlKHR5cGUpO1xuICAgIHNldENvbmZpcm1WaXNpYmxlKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZpcnN0Q29uZmlybSA9ICgpID0+IHtcbiAgICBzZXRDb25maXJtVmlzaWJsZShmYWxzZSk7XG4gICAgc2V0RmluYWxDb25maXJtVmlzaWJsZSh0cnVlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDb25maXJtU2VuZCA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgIHNldEZpbmFsQ29uZmlybVZpc2libGUoZmFsc2UpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChzZW5kVHlwZSA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgICAgYXdhaXQgbm90aWZ5VXNlclRlbGVncmFtU2VydmljZSh1c2Vycy5pZCwgbWVzc2FnZVRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgbm90aWZ5VXNlckJ5U3RhdHVzKHNlbGVjdGVkU3RhdHVzLCBtZXNzYWdlVGV4dCk7XG4gICAgICB9XG4gICAgICBhbnRkTWVzc2FnZS5zdWNjZXNzKFwiTWVzc2FnZShzKSBzZW50IHN1Y2Nlc3NmdWxseSFcIik7XG4gICAgICBzZXRNZXNzYWdlVGV4dChJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgYW50ZE1lc3NhZ2UuZXJyb3IoXCJGYWlsZWQgdG8gc2VuZCBtZXNzYWdlKHMpIVwiKTtcbiAgICB9XG4gICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6IDIwIH19PlxuICAgICAgPGgyPlNlbmQgTm90aWZpY2F0aW9uczwvaDI+XG4gICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMjAgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTYsMTZdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezE2fSBsZz17MjR9PlxuICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFVzZXIgU3RhdHVzXCJcbiAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFN0YXR1c31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtzZXRTZWxlY3RlZFN0YXR1c31cbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dXNlclN0YXR1c2VzLm1hcCgoc3RhdHVzKSA9PiAoXG4gICAgICAgICAgICAgIDxPcHRpb24ga2V5PXtzdGF0dXN9IHZhbHVlPXtzdGF0dXN9PlxuICAgICAgICAgICAgICAgIHtzdGF0dXN9XG4gICAgICAgICAgICAgIDwvT3B0aW9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxNn0gbGc9ezI0fT5cbiAgICAgICAgICA8SW5wdXQuVGV4dEFyZWFcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgTWVzc2FnZVwiXG4gICAgICAgICAgICB2YWx1ZT17bWVzc2FnZVRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldE1lc3NhZ2VUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgIHJvd3M9ezIwfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxNn0gbGc9ezI0fT5cbiAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gc2hvd0NvbmZpcm1EaWFsb2coXCJzdGF0dXNcIil9IGxvYWRpbmc9e2xvYWRpbmd9PlxuICAgICAgICAgICAgU2VuZCBieSBTdGF0dXNcbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxNb2RhbFxuICAgICAgICB0aXRsZT1cIkNvbmZpcm0gU2VuZGluZyBNZXNzYWdlXCJcbiAgICAgICAgdmlzaWJsZT17Y29uZmlybVZpc2libGV9XG4gICAgICAgIG9uT2s9e2hhbmRsZUZpcnN0Q29uZmlybX1cbiAgICAgICAgb25DYW5jZWw9eygpID0+IHNldENvbmZpcm1WaXNpYmxlKGZhbHNlKX1cbiAgICAgICAgb2tUZXh0PVwiUHJvY2VlZFwiXG4gICAgICAgIGNhbmNlbFRleHQ9XCJDYW5jZWxcIlxuICAgICAgPlxuICAgICAgICA8Q29sPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzZW5kIHRoaXMgbWVzc2FnZT88L0NvbD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHN0cm9uZz5NZXNzYWdlOjwvc3Ryb25nPiB7bWVzc2FnZVRleHR9XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHN0cm9uZz5Vc2VyIFN0YXR1czo8L3N0cm9uZz4ge3NlbGVjdGVkU3RhdHVzfVxuICAgICAgICA8L3A+XG4gICAgICA8L01vZGFsPlxuICAgICAgPE1vZGFsXG4gICAgICAgIHRpdGxlPVwiRmluYWwgQ29uZmlybWF0aW9uXCJcbiAgICAgICAgdmlzaWJsZT17ZmluYWxDb25maXJtVmlzaWJsZX1cbiAgICAgICAgb25Paz17aGFuZGxlQ29uZmlybVNlbmR9XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRGaW5hbENvbmZpcm1WaXNpYmxlKGZhbHNlKX1cbiAgICAgICAgb2tUZXh0PVwiWWVzLCBTZW5kXCJcbiAgICAgICAgY2FuY2VsVGV4dD1cIkNhbmNlbFwiXG4gICAgICA+XG4gICAgICAgIDxwPlRoaXMgaXMgeW91ciBmaW5hbCBjb25maXJtYXRpb24uIERvIHlvdSB3YW50IHRvIHByb2NlZWQgd2l0aCBzZW5kaW5nIHRoZSBtZXNzYWdlPzwvcD5cbiAgICAgIDwvTW9kYWw+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgT2NjdXBhdGlvbiB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT2NjdXBhdGlvbkFjdGlvbiwgb2NjdXBhdGlvbkRldGFpbEFjdGlvbiwgdXBkYXRlT2NjdXBhdGlvbkFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29jY3VwYXRpb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRPY2N1cGF0aW9uUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IG9jY3VwYXRpb24sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBvY2N1cGF0aW9uVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9jY3VwYXRpb25cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2gob2NjdXBhdGlvbkRldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBvY2N1cGF0aW9uKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogb2NjdXBhdGlvbi5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogb2NjdXBhdGlvbi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW29jY3VwYXRpb24sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvY2N1cGF0aW9uVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9vY2N1cGF0aW9ucycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW29jY3VwYXRpb25VcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBPY2N1cGF0aW9uKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVPY2N1cGF0aW9uQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZU9jY3VwYXRpb25BY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGemOGeu+GegeGemuGelOGemicgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6Y4Z674Z6B4Z6a4Z6U4Z6aJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtvY2N1cGF0aW9uVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL29jY3VwYXRpb25zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRPY2N1cGF0aW9uUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlT2NjdXBhdGlvbkFjdGlvbiwgb2NjdXBhdGlvbkRldGFpbEFjdGlvbiwgZmV0Y2hPY2N1cGF0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29jY3VwYXRpb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgT2NjdXBhdGlvbkxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBvY2N1cGF0aW9ucywgb2NjdXBhdGlvbnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2NjdXBhdGlvbik7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaE9jY3VwYXRpb25zKHtcbiAgICAgIHNlYXJjaDogc2VhcmNoVGV4dCxcbiAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLFxuICAgICAgcGFnZVNpemVcbiAgICB9KSk7XG4gIH0sIFtkaXNwYXRjaCwgc2VhcmNoVGV4dCwgY3VycmVudFBhZ2UsIHBhZ2VTaXplXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gob2NjdXBhdGlvbkRldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb2NjdXBhdGlvbnMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVPY2N1cGF0aW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoT2NjdXBhdGlvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldEN1cnJlbnRQYWdlKDEpO1xuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IChwYWdpbmF0aW9uOiBhbnkpID0+IHtcbiAgICBzZXRDdXJyZW50UGFnZShwYWdpbmF0aW9uLmN1cnJlbnQpO1xuICAgIHNldFBhZ2VTaXplKHBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChvY2N1cGF0aW9ucz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6Y4Z674Z6B4Z6a4Z6U4Z6aPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge29jY3VwYXRpb25zPy5tZXRhPy50b3RhbCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgIHNldEN1cnJlbnRQYWdlKDEpO1xuICAgICAgICAgICAgICBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvb2NjdXBhdGlvbnMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17e1xuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRQYWdlLFxuICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSxcbiAgICAgICAgICB0b3RhbDogb2NjdXBhdGlvbnM/Lm1ldGE/LnRvdGFsIHx8IDAsXG4gICAgICAgICAgc2hvd1NpemVDaGFuZ2VyOiB0cnVlLFxuICAgICAgICB9fVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlVGFibGVDaGFuZ2V9XG4gICAgICAgIHJvd0tleT1cImlkXCJcbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtvY2N1cGF0aW9uc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBPY2N1cGF0aW9uTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFNlbGVjdCB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgT2ZmZXJQcm9ncmFtIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPZmZlclByb2dyYW1BY3Rpb24sIG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbiwgdXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2ZmZXJfcHJvZ3JhbS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcbmltcG9ydCB7IGZldGNoRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy92b2x1bnRlZXIvY29yZS9hY3Rpb25zJztcblxuY29uc3QgTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBvZmZlclByb2dyYW0sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2ZmZXJQcm9ncmFtXG4gICk7XG4gIGNvbnN0IHsgdm9sdW50ZWVyRXZlbnRzIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudm9sdW50ZWVyKTtcblxuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaEV2ZW50KCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBvZmZlclByb2dyYW0pIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBvZmZlclByb2dyYW0ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IG9mZmVyUHJvZ3JhbS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgdm9sdW50ZWVyX2V2ZW50X2lkOiBvZmZlclByb2dyYW0udm9sdW50ZWVyX2V2ZW50X2lkIHx8IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtvZmZlclByb2dyYW0sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL29mZmVyLXByb2dyYW1zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbb2ZmZXJQcm9ncmFtVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogT2ZmZXJQcm9ncmFtKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVPZmZlclByb2dyYW1BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlT2ZmZXJQcm9ncmFtQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnoDhnpjhn5LhnpjhnpzhnrjhnpLhnrjhnpXhn5Lhnorhnpvhn4vhnofhnrzhnpPigIsnIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGegOGemOGfkuGemOGenOGeuOGekuGeuOGeleGfkuGeiuGem+Gfi+Geh+GevOGek+KAiyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdz5cbiAgICAgICAgICA8Q29sIHhzPXsyNH0gc209ezEyfSBtZD17OH0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6i4Z+S4Z6T4Z6A4Z6f4Z+S4Z6Y4Z+Q4Z6C4Z+S4Z6a4Z6F4Z634Z6P4Z+S4Z6P4Z6A4Z+S4Z6T4Z674Z6E4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6O4Z+NXCIgbmFtZT1cInZvbHVudGVlcl9ldmVudF9pZFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICA8U2VsZWN0IHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgdm9sdW50ZWVyIGV2ZW50XCI+XG4gICAgICAgICAgICAgICAge0FycmF5LmlzQXJyYXkodm9sdW50ZWVyRXZlbnRzPy5kYXRhKSAmJiB2b2x1bnRlZXJFdmVudHM/LmRhdGEubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgICAgIHZvbHVudGVlckV2ZW50cz8uZGF0YS5tYXAoKGV2ZW50KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3QuT3B0aW9uIGtleT17ZXZlbnQuaWR9IHZhbHVlPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2V2ZW50Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Lk9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxTZWxlY3QuT3B0aW9uIGRpc2FibGVkPk5vIHZvbHVudGVlciBldmVudCBhdmFpbGFibGU8L1NlbGVjdC5PcHRpb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e29mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vZmZlci1wcm9ncmFtcycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlLCBTZWxlY3QgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVPZmZlclByb2dyYW1BY3Rpb24sIG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbiwgZmV0Y2hPZmZlclByb2dyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2ZmZXJfcHJvZ3JhbS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IHsgZmV0Y2hFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZvbHVudGVlci9jb3JlL2FjdGlvbnMnO1xuXG5jb25zdCBPZmZlclByb2dyYW1MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuICBjb25zdCBbY3VycmVudFBhZ2UsIHNldEN1cnJlbnRQYWdlXSA9IHVzZVN0YXRlKDEpO1xuICBjb25zdCBbcGFnZVNpemUsIHNldFBhZ2VTaXplXSA9IHVzZVN0YXRlKDEwKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtldmVudElkcywgc2V0RXZlbnRJZHNdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgY29uc3QgeyBvZmZlclByb2dyYW1zLCBvZmZlclByb2dyYW1zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9mZmVyUHJvZ3JhbSk7XG4gIGNvbnN0IHsgdm9sdW50ZWVyRXZlbnRzIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudm9sdW50ZWVyKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoRXZlbnQoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaE9mZmVyUHJvZ3JhbXMoe1xuICAgICAgc2VhcmNoOiBzZWFyY2hUZXh0LFxuICAgICAgcGFnZTogY3VycmVudFBhZ2UsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGV2ZW50X2lkczogZXZlbnRJZHNcbiAgICB9KSk7XG4gIH0sIFtkaXNwYXRjaCwgc2VhcmNoVGV4dCwgY3VycmVudFBhZ2UsIHBhZ2VTaXplLCBldmVudElkc10pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9mZmVyUHJvZ3JhbURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb2ZmZXItcHJvZ3JhbXMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVPZmZlclByb2dyYW1BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hPZmZlclByb2dyYW1zKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSAocGFnaW5hdGlvbjogYW55KSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UocGFnaW5hdGlvbi5jdXJyZW50KTtcbiAgICBzZXRQYWdlU2l6ZShwYWdpbmF0aW9uLnBhZ2VTaXplKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+NJywgZGF0YUluZGV4OiAndm9sdW50ZWVyX2V2ZW50X25hbWUnLCBrZXk6ICd2b2x1bnRlZXJfZXZlbnRfbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChvZmZlclByb2dyYW1zPy5kYXRhIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnoDhnpjhn5LhnpjhnpzhnrjhnpLhnrjhnpXhn5Lhnorhnpvhn4vhnofhnrzhnpPigIs8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7b2ZmZXJQcm9ncmFtcz8ubWV0YT8udG90YWwgfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICAgICAgICAgICAgc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+ICZuYnNwOyZuYnNwO1xuXG4gICAgICAgICAgPHNwYW4+4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+NPC9zcGFuPlxuICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIG1vZGU9XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogJzMwMHB4JyB9fVxuICAgICAgICAgICAgYWxsb3dDbGVhclxuICAgICAgICAgICAgc2hvd1NlYXJjaFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYW4gZXZlbnRcIlxuICAgICAgICAgICAgdmFsdWU9e2V2ZW50SWRzfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZXMpID0+IHNldEV2ZW50SWRzKHZhbHVlcyl9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249eyhpbnB1dCwgb3B0aW9uKSA9PlxuICAgICAgICAgICAgICBvcHRpb24/LmNoaWxkcmVuPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaW5wdXQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dm9sdW50ZWVyRXZlbnRzPy5kYXRhPy5tYXAoKGV2ZW50KSA9PiAoXG4gICAgICAgICAgICAgIDxPcHRpb24ga2V5PXtldmVudC5pZH0gdmFsdWU9e2V2ZW50LmlkfT5cbiAgICAgICAgICAgICAgICB7ZXZlbnQubmFtZX1cbiAgICAgICAgICAgICAgPC9PcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvb2ZmZXItcHJvZ3JhbXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17e1xuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRQYWdlLFxuICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSxcbiAgICAgICAgICB0b3RhbDogb2ZmZXJQcm9ncmFtcz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e29mZmVyUHJvZ3JhbXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT2ZmZXJQcm9ncmFtTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IE9wcG9ydHVuaXR5U291cmNlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiwgb3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24sIHVwZGF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb3Bwb3J0dW5pdHlfc291cmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0T3Bwb3J0dW5pdHlTb3VyY2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgb3Bwb3J0dW5pdHlTb3VyY2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBvcHBvcnR1bml0eVNvdXJjZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vcHBvcnR1bml0eVNvdXJjZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBvcHBvcnR1bml0eVNvdXJjZSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IG9wcG9ydHVuaXR5U291cmNlLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHBvcnR1bml0eVNvdXJjZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW29wcG9ydHVuaXR5U291cmNlLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL29wcG9ydHVuaXR5LXNvdXJjZXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtvcHBvcnR1bml0eVNvdXJjZVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IE9wcG9ydHVuaXR5U291cmNlKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6U4Z+S4Z6a4Z6X4Z6W4Z6x4Z6A4Z624Z6fJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnpThn5LhnprhnpfhnpbhnrHhnoDhnrbhnp8nfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e29wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL29wcG9ydHVuaXR5LXNvdXJjZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdE9wcG9ydHVuaXR5U291cmNlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24sIG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uLCBmZXRjaE9wcG9ydHVuaXR5U291cmNlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29wcG9ydHVuaXR5X3NvdXJjZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBPcHBvcnR1bml0eVNvdXJjZUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBvcHBvcnR1bml0eVNvdXJjZXMsIG9wcG9ydHVuaXR5U291cmNlc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vcHBvcnR1bml0eVNvdXJjZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaE9wcG9ydHVuaXR5U291cmNlcyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9vcHBvcnR1bml0eS1zb3VyY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldEN1cnJlbnRQYWdlKDEpO1xuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IChwYWdpbmF0aW9uOiBhbnkpID0+IHtcbiAgICBzZXRDdXJyZW50UGFnZShwYWdpbmF0aW9uLmN1cnJlbnQpO1xuICAgIHNldFBhZ2VTaXplKHBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChvcHBvcnR1bml0eVNvdXJjZXM/LmRhdGEgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGelOGfkuGemuGel+GeluGeseGegOGetuGenzwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtvcHBvcnR1bml0eVNvdXJjZXM/Lm1ldGE/LnRvdGFsIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgICAgICAgIHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9vcHBvcnR1bml0eS1zb3VyY2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3tcbiAgICAgICAgICBjdXJyZW50OiBjdXJyZW50UGFnZSxcbiAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgICAgdG90YWw6IG9wcG9ydHVuaXR5U291cmNlcz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e29wcG9ydHVuaXR5U291cmNlc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBPcHBvcnR1bml0eVNvdXJjZUxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBQcm92aW5jZSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlUHJvdmluY2VBY3Rpb24sIHByb3ZpbmNlRGV0YWlsQWN0aW9uLCB1cGRhdGVQcm92aW5jZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb3ZpbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0UHJvdmluY2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgcHJvdmluY2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBwcm92aW5jZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5wcm92aW5jZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChwcm92aW5jZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBwcm92aW5jZSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHByb3ZpbmNlLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm92aW5jZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3Byb3ZpbmNlLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvdmluY2VVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3Byb3ZpbmNlcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3Byb3ZpbmNlVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogUHJvdmluY2UpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVByb3ZpbmNlQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVByb3ZpbmNlQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnoHhn4Hhno/hn5Lhno8nIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGegeGfgeGej+GfkuGejyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17cHJvdmluY2VVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvcHJvdmluY2VzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRQcm92aW5jZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVByb3ZpbmNlQWN0aW9uLCBwcm92aW5jZURldGFpbEFjdGlvbiwgZmV0Y2hQcm92aW5jZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wcm92aW5jZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBQcm92aW5jZUxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyBwcm92aW5jZXMsIHByb3ZpbmNlc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5wcm92aW5jZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFByb3ZpbmNlcyh7XG4gICAgICBzZWFyY2g6IHNlYXJjaFRleHQsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICAgIHBhZ2VTaXplXG4gICAgfSkpO1xuICB9LCBbZGlzcGF0Y2gsIHNlYXJjaFRleHQsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZV0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHByb3ZpbmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9wcm92aW5jZXMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVQcm92aW5jZUFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFByb3ZpbmNlcygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhYmxlQ2hhbmdlID0gKHBhZ2luYXRpb246IGFueSkgPT4ge1xuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2luYXRpb24uY3VycmVudCk7XG4gICAgc2V0UGFnZVNpemUocGFnaW5hdGlvbi5wYWdlU2l6ZSk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHByb3ZpbmNlcz8uZGF0YSB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6B4Z+B4Z6P4Z+S4Z6PPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge3Byb3ZpbmNlcz8ubWV0YT8udG90YWwgfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRDdXJyZW50UGFnZSgxKTtcbiAgICAgICAgICAgICAgc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3Byb3ZpbmNlcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgY3VycmVudDogY3VycmVudFBhZ2UsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgIHRvdGFsOiBwcm92aW5jZXM/Lm1ldGE/LnRvdGFsIHx8IDAsXG4gICAgICAgICAgc2hvd1NpemVDaGFuZ2VyOiB0cnVlLFxuICAgICAgICB9fVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlVGFibGVDaGFuZ2V9XG4gICAgICAgIHJvd0tleT1cImlkXCJcbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtwcm92aW5jZXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvdmluY2VMaXN0O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VEaXNwYXRjaCIsInVzZVNlbGVjdG9yIiwiY3JlYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24iLCJpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiIsInVwZGF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uIiwidXNlTmF2aWdhdGUiLCJUZXh0QXJlYSIsImZldGNoRXZlbnQiLCJOZXdFZGl0SW50ZXJlc3RlZFRlYW1QYWdlIiwiZGlzcGF0Y2giLCJuYXZpZ2F0ZSIsIl91c2VTZWxlY3RvciIsInN0YXRlIiwiaW50ZXJlc3RlZFRlYW0iLCJpbnRlcmVzdGVkVGVhbXMiLCJyZWdpc3RlckVycm9yTWVzc2FnZSIsImludGVyZXN0ZWRUZWFtVXBkYXRlUGVuZGluZyIsIl91c2VTZWxlY3RvcjIiLCJ2b2x1bnRlZXIiLCJ2b2x1bnRlZXJFdmVudHMiLCJfRm9ybSR1c2VGb3JtIiwiX0Zvcm0iLCJ1c2VGb3JtIiwiX0Zvcm0kdXNlRm9ybTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm0iLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImlkIiwiZ2V0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImlzQ2xpY2siLCJzZXRJc0NsaWNrIiwiTnVtYmVyIiwicmVzZXRGaWVsZHMiLCJzZXRGaWVsZHNWYWx1ZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInZvbHVudGVlcl9ldmVudF9pZCIsInBhcmVudF9pZCIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzdWNjZXNzIiwib25GaW5pc2giLCJ2YWx1ZXMiLCJkYXRhIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwibGF5b3V0Iiwic3R5bGUiLCJtYXhXaWR0aCIsIm1hcmdpbiIsIl9Sb3ciLCJndXR0ZXIiLCJfQ29sIiwic3BhbiIsIkl0ZW0iLCJsYWJlbCIsInJ1bGVzIiwicmVxdWlyZWQiLCJtZXNzYWdlIiwiX0lucHV0IiwiX1NlbGVjdCIsImFsbG93Q2xlYXIiLCJwbGFjZWhvbGRlciIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInRlYW0iLCJPcHRpb24iLCJrZXkiLCJ2YWx1ZSIsInJvd3MiLCJ4cyIsInNtIiwibWQiLCJsZW5ndGgiLCJldmVudCIsImRpc2FibGVkIiwiX0J1dHRvbiIsInR5cGUiLCJibG9jayIsImh0bWxUeXBlIiwibG9hZGluZyIsIm9uQ2xpY2siLCJMb2FkaW5nRGlhbG9nIiwiRGVsZXRlT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJkZWxldGVJbnRlcmVzdGVkVGVhbUFjdGlvbiIsImZldGNoSW50ZXJlc3RlZFRlYW1zIiwiU3dhbCIsIkludGVyZXN0ZWRUZWFtTGlzdCIsIl9pbnRlcmVzdGVkVGVhbXMkbWV0YSIsIl92b2x1bnRlZXJFdmVudHMkZGF0YSIsIl9pbnRlcmVzdGVkVGVhbXMkbWV0YTIiLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwYWdlU2l6ZSIsInNldFBhZ2VTaXplIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZWxlY3RlZFJvd3MiLCJzZXRTZWxlY3RlZFJvd3MiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlYXJjaFRleHQiLCJzZXRTZWFyY2hUZXh0IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJldmVudElkcyIsInNldEV2ZW50SWRzIiwiaW50ZXJlc3RlZFRlYW1zUGVuZGluZyIsInBhZ2UiLCJldmVudF9pZHMiLCJoYW5kbGVFZGl0IiwiY29uY2F0IiwiaGFuZGxlRGVsZXRlIiwiZmlyZSIsInRpdGxlIiwidGV4dCIsImljb24iLCJzaG93Q29uZmlybUJ1dHRvbiIsInNob3dDYW5jZWxCdXR0b24iLCJodG1sIiwiZGlkT3BlbiIsIl9Td2FsJGdldFBvcHVwIiwiX1N3YWwkZ2V0UG9wdXAyIiwiY29uZmlybUJ1dHRvbiIsImdldFBvcHVwIiwicXVlcnlTZWxlY3RvciIsImNhbmNlbEJ1dHRvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0aGVuIiwiY2xvc2UiLCJoYW5kbGVTZWFyY2giLCJ0cmltIiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVUYWJsZUNoYW5nZSIsInBhZ2luYXRpb24iLCJjdXJyZW50IiwiY29sdW1ucyIsImRhdGFJbmRleCIsInJlc3BvbnNpdmUiLCJyZW5kZXIiLCJfIiwicmVjb3JkIiwiX1NwYWNlIiwic2l6ZSIsImRhbmdlciIsImZpbHRlcmVkRGF0YSIsImZpbHRlciIsIml0IiwiX2l0JG5hbWUiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwib3ZlcmZsb3dYIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwicGFkZGluZyIsImJhY2tncm91bmQiLCJtYXJnaW5Cb3R0b20iLCJmbGV4V3JhcCIsIndyYXAiLCJtZXRhIiwidG90YWwiLCJ3aWR0aCIsIm9uQ2hhbmdlIiwiZSIsInRhcmdldCIsIm1vZGUiLCJzaG93U2VhcmNoIiwiZmlsdGVyT3B0aW9uIiwiaW5wdXQiLCJvcHRpb24iLCJfb3B0aW9uJGNoaWxkcmVuIiwiY2hpbGRyZW4iLCJ0b1N0cmluZyIsIl9UYWJsZSIsInJvd1NlbGVjdGlvbiIsImRhdGFTb3VyY2UiLCJpbmRleCIsIl9vYmplY3RTcHJlYWQiLCJzaG93U2l6ZUNoYW5nZXIiLCJyb3dLZXkiLCJzY3JvbGwiLCJ4IiwidmlzaWJsZSIsImNyZWF0ZUxhbmd1YWdlQWN0aW9uIiwibGFuZ3VhZ2VEZXRhaWxBY3Rpb24iLCJ1cGRhdGVMYW5ndWFnZUFjdGlvbiIsIk5ld0VkaXRMYW5ndWFnZVBhZ2UiLCJsYW5ndWFnZSIsImxhbmd1YWdlVXBkYXRlUGVuZGluZyIsImRlbGV0ZUxhbmd1YWdlQWN0aW9uIiwiZmV0Y2hMYW5ndWFnZXMiLCJMYW5ndWFnZUxpc3QiLCJfbGFuZ3VhZ2VzJG1ldGEiLCJfbGFuZ3VhZ2VzJG1ldGEyIiwibGFuZ3VhZ2VzIiwibGFuZ3VhZ2VzUGVuZGluZyIsInQiLCJyIiwiU3ltYm9sIiwibiIsIml0ZXJhdG9yIiwibyIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibCIsIlR5cGVFcnJvciIsImNhbGwiLCJkb25lIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJkaXNwbGF5TmFtZSIsIl9yZWdlbmVyYXRvciIsInciLCJtIiwiZGVmaW5lUHJvcGVydHkiLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJfaW52b2tlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJnZXRXaXRoQ29uZmlnIiwiVVJMIiwibm90aWZ5VXNlclRlbGVncmFtU2VydmljZSIsIl9yZWYiLCJfY2FsbGVlIiwidXNlcl9pZCIsIl9jb250ZXh0IiwiTk9USUZZIiwiX3giLCJfeDIiLCJub3RpZnlVc2VyQnlTdGF0dXMiLCJfcmVmMiIsIl9jYWxsZWUyIiwic3RhdHVzIiwiX2NvbnRleHQyIiwiTk9USUZZX1NUQVRVUyIsIl94MyIsIl94NCIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJmcm9tIiwidGVzdCIsIm5leHQiLCJwdXNoIiwiSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyIsIk5vdGlmaWNhdGlvblBhZ2UiLCJzZWxlY3RlZFN0YXR1cyIsInNldFNlbGVjdGVkU3RhdHVzIiwibWVzc2FnZVRleHQiLCJzZXRNZXNzYWdlVGV4dCIsInNldExvYWRpbmciLCJjb25maXJtVmlzaWJsZSIsInNldENvbmZpcm1WaXNpYmxlIiwiZmluYWxDb25maXJtVmlzaWJsZSIsInNldEZpbmFsQ29uZmlybVZpc2libGUiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJzZW5kVHlwZSIsInNldFNlbmRUeXBlIiwiYXV0aCIsInVzZXJzIiwidXNlclN0YXR1c2VzIiwic2hvd0NvbmZpcm1EaWFsb2ciLCJ3YXJuaW5nIiwiaGFuZGxlRmlyc3RDb25maXJtIiwiaGFuZGxlQ29uZmlybVNlbmQiLCJfdCIsImxnIiwiX01vZGFsIiwib25PayIsIm9uQ2FuY2VsIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsImNyZWF0ZU9jY3VwYXRpb25BY3Rpb24iLCJvY2N1cGF0aW9uRGV0YWlsQWN0aW9uIiwidXBkYXRlT2NjdXBhdGlvbkFjdGlvbiIsIk5ld0VkaXRPY2N1cGF0aW9uUGFnZSIsIm9jY3VwYXRpb24iLCJvY2N1cGF0aW9uVXBkYXRlUGVuZGluZyIsImRlbGV0ZU9jY3VwYXRpb25BY3Rpb24iLCJmZXRjaE9jY3VwYXRpb25zIiwiT2NjdXBhdGlvbkxpc3QiLCJfb2NjdXBhdGlvbnMkbWV0YSIsIl9vY2N1cGF0aW9ucyRtZXRhMiIsIm9jY3VwYXRpb25zIiwib2NjdXBhdGlvbnNQZW5kaW5nIiwiY3JlYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwib2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uIiwidXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2UiLCJvZmZlclByb2dyYW0iLCJvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nIiwiZGVsZXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiZmV0Y2hPZmZlclByb2dyYW1zIiwiT2ZmZXJQcm9ncmFtTGlzdCIsIl9vZmZlclByb2dyYW1zJG1ldGEiLCJfb2ZmZXJQcm9ncmFtcyRtZXRhMiIsIm9mZmVyUHJvZ3JhbXMiLCJvZmZlclByb2dyYW1zUGVuZGluZyIsImNyZWF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwib3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24iLCJ1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiIsIk5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2UiLCJvcHBvcnR1bml0eVNvdXJjZSIsIm9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyIsImRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwiZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMiLCJPcHBvcnR1bml0eVNvdXJjZUxpc3QiLCJfb3Bwb3J0dW5pdHlTb3VyY2VzJG0iLCJfb3Bwb3J0dW5pdHlTb3VyY2VzJG0yIiwib3Bwb3J0dW5pdHlTb3VyY2VzIiwib3Bwb3J0dW5pdHlTb3VyY2VzUGVuZGluZyIsImNyZWF0ZVByb3ZpbmNlQWN0aW9uIiwicHJvdmluY2VEZXRhaWxBY3Rpb24iLCJ1cGRhdGVQcm92aW5jZUFjdGlvbiIsIk5ld0VkaXRQcm92aW5jZVBhZ2UiLCJwcm92aW5jZSIsInByb3ZpbmNlVXBkYXRlUGVuZGluZyIsImRlbGV0ZVByb3ZpbmNlQWN0aW9uIiwiZmV0Y2hQcm92aW5jZXMiLCJQcm92aW5jZUxpc3QiLCJfcHJvdmluY2VzJG1ldGEiLCJfcHJvdmluY2VzJG1ldGEyIiwicHJvdmluY2VzIiwicHJvdmluY2VzUGVuZGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9