(self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-index"],{ /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js": /*!**********************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js"); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_index_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss"); /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js": /*!******************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js"); __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js"); __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js"); __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js"); __webpack_require__(/*! core-js/modules/es.array.join.js */ "./node_modules/core-js/modules/es.array.join.js"); __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); $(document).ready(function () { lcCrudIndexToggle(); lcCrudIndexBatchActions(); lcCrudIndexInitFilter(); }); function lcCrudIndexToggle() { var toggles = document.querySelectorAll('.custom-switch input[type="checkbox"]'); for (i = 0; i < toggles.length; i++) { toggles[i].addEventListener('change', function () { var toggle = this; var newValue = this.checked; var oldValue = !newValue; var toggleUrl = this.closest('.custom-switch').dataset.url + "&newValue=" + newValue.toString(); var toggleRequest = $.ajax({ type: "POST", url: toggleUrl, data: {}, dataType: 'json' }); toggleRequest.done(function (response) { SovNotification.add('success', 'La propriété a bien été mise à jour.'); }); toggleRequest.fail(function () { toggle.checked = oldValue; toggle.disabled = true; toggle.closest('.checkbox-switch').classList.add('disabled'); SovNotification.add('error', 'Une erreur est survenue.'); }); }); } } function lcCrudIndexBatchActions() { var titleContent = $('.content-header-title > .title').html(); $(document).on('click', '.deselect-batch-button', function () { $(this).closest('.content').find(':checkbox.form-batch-checkbox-all').prop('checked', false).trigger('change'); }); $(document).on('change', '.form-batch-checkbox-all', function () { $(this).closest('.content').find(':checkbox.form-batch-checkbox').prop('checked', $(this).prop('checked')).trigger('change'); }); $(document).on('change', '.form-batch-checkbox', function () { var $content = $(this).closest('.content-wrapper'); var $input = $content.find(':hidden#batch_form_entityIds'); var ids = $input.val() ? $input.val().split(',') : []; var id = $(this).val(); if ($(this).prop('checked')) { $(this).closest('tr').addClass('selected-row'); if (-1 === ids.indexOf(id)) { ids.push(id); } } else { $(this).closest('tr').removeClass('selected-row'); ids = ids.filter(function (value) { return value !== id; }); $content.find(':checkbox.form-batch-checkbox-all').prop('checked', false); } if (0 === ids.length) { $content.find('.global-actions').show(); $content.find('.batch-actions').hide(); $content.find('table').removeClass('table-batch'); } else { $content.find('.batch-actions').show(); $content.find('.global-actions').hide(); $content.find('table').addClass('table-batch'); } $input.val(ids.join(',')); $content.find('.content-header-title > .title').html(0 === ids.length ? titleContent : ''); }); var modalTitle = $('#batch-action-confirmation-title'); var titleContentWithPlaceholders = modalTitle.text(); $('[data-action-batch]').on('click', function (event) { event.preventDefault(); event.stopPropagation(); var $actionElement = $(this); var actionName = $actionElement.attr('data-action-name'); var selectedItems = $('input[type="checkbox"].form-batch-checkbox:checked'); modalTitle.text(titleContentWithPlaceholders.replace('%action_name%', actionName).replace('%num_items%', selectedItems.length)); $('#modal-batch-action').modal({ backdrop: true, keyboard: true }).off('click', '#modal-batch-action-button').on('click', '#modal-batch-action-button', function () { $actionElement.unbind('click'); $form = document.createElement('form'); $form.setAttribute('action', $actionElement.attr('data-action-url')); $form.setAttribute('method', 'POST'); $actionNameInput = document.createElement('input'); $actionNameInput.setAttribute('type', 'hidden'); $actionNameInput.setAttribute('name', 'batchActionName'); $actionNameInput.setAttribute('value', $actionElement.attr('data-action-name')); $form.appendChild($actionNameInput); $entityFqcnInput = document.createElement('input'); $entityFqcnInput.setAttribute('type', 'hidden'); $entityFqcnInput.setAttribute('name', 'entityFqcn'); $entityFqcnInput.setAttribute('value', $actionElement.attr('data-entity-fqcn')); $form.appendChild($entityFqcnInput); $actionUrlInput = document.createElement('input'); $actionUrlInput.setAttribute('type', 'hidden'); $actionUrlInput.setAttribute('name', 'batchActionUrl'); $actionUrlInput.setAttribute('value', $actionElement.attr('data-action-url')); $form.appendChild($actionUrlInput); $csrfTokenInput = document.createElement('input'); $csrfTokenInput.setAttribute('type', 'hidden'); $csrfTokenInput.setAttribute('name', 'batchActionCsrfToken'); $csrfTokenInput.setAttribute('value', $actionElement.attr('data-action-csrf-token')); $form.appendChild($csrfTokenInput); selectedItems.each(function (i, item) { $entityIdInput = document.createElement('input'); $entityIdInput.setAttribute('type', 'hidden'); $entityIdInput.setAttribute('name', "batchActionEntityIds[".concat(i, "]")); $entityIdInput.setAttribute('value', item.value); $form.appendChild($entityIdInput); }); document.body.appendChild($form); //modalTitle.text(titleContentWithPlaceholders); $form.submit(); }); }); } function lcCrudIndexInitFilter() { $('#filters_form_reset').val(''); $('.lc-reset-filters').on('click', function (e) { //e.preventDefault(); $(this).parents('.table-filters-line').find('select,input').val('').trigger('change'); $('#filters_form_reset').val('clearAll'); Tools.log($(this).prop('form')); $(this).prop('form').submit(); //$(this).parents('form').submit(); }); } /***/ }), /***/ "./node_modules/core-js/modules/es.date.to-string.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es.date.to-string.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); var DatePrototype = Date.prototype; var INVALID_DATE = 'Invalid Date'; var TO_STRING = 'toString'; var nativeDateToString = DatePrototype[TO_STRING]; var getTime = DatePrototype.getTime; // `Date.prototype.toString` method // https://tc39.es/ecma262/#sec-date.prototype.tostring if (new Date(NaN) + '' != INVALID_DATE) { redefine(DatePrototype, TO_STRING, function toString() { var value = getTime.call(this); // eslint-disable-next-line no-self-compare -- NaN check return value === value ? nativeDateToString.call(this) : INVALID_DATE; }); } /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss": /*!********************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ "use strict"; /******/ /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_string_replace_js","vendors-node_modules_core-js_modules_es_array_find_js","vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-f7c72f"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ } ]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9pbmRleC9hcHAuaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4uL0xhQ2xpY0J1bmRsZS9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvaW5kZXgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9pbmRleC9pbmRleC5zY3NzIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsInJlYWR5IiwibGNDcnVkSW5kZXhUb2dnbGUiLCJsY0NydWRJbmRleEJhdGNoQWN0aW9ucyIsImxjQ3J1ZEluZGV4SW5pdEZpbHRlciIsInRvZ2dsZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiaSIsImxlbmd0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0b2dnbGUiLCJuZXdWYWx1ZSIsImNoZWNrZWQiLCJvbGRWYWx1ZSIsInRvZ2dsZVVybCIsImNsb3Nlc3QiLCJkYXRhc2V0IiwidXJsIiwidG9TdHJpbmciLCJ0b2dnbGVSZXF1ZXN0IiwiYWpheCIsInR5cGUiLCJkYXRhIiwiZGF0YVR5cGUiLCJkb25lIiwicmVzcG9uc2UiLCJTb3ZOb3RpZmljYXRpb24iLCJhZGQiLCJmYWlsIiwiZGlzYWJsZWQiLCJjbGFzc0xpc3QiLCJ0aXRsZUNvbnRlbnQiLCJodG1sIiwib24iLCJmaW5kIiwicHJvcCIsInRyaWdnZXIiLCIkY29udGVudCIsIiRpbnB1dCIsImlkcyIsInZhbCIsInNwbGl0IiwiaWQiLCJhZGRDbGFzcyIsImluZGV4T2YiLCJwdXNoIiwicmVtb3ZlQ2xhc3MiLCJmaWx0ZXIiLCJ2YWx1ZSIsInNob3ciLCJoaWRlIiwiam9pbiIsIm1vZGFsVGl0bGUiLCJ0aXRsZUNvbnRlbnRXaXRoUGxhY2Vob2xkZXJzIiwidGV4dCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCIkYWN0aW9uRWxlbWVudCIsImFjdGlvbk5hbWUiLCJhdHRyIiwic2VsZWN0ZWRJdGVtcyIsInJlcGxhY2UiLCJtb2RhbCIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJvZmYiLCJ1bmJpbmQiLCIkZm9ybSIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCIkYWN0aW9uTmFtZUlucHV0IiwiYXBwZW5kQ2hpbGQiLCIkZW50aXR5RnFjbklucHV0IiwiJGFjdGlvblVybElucHV0IiwiJGNzcmZUb2tlbklucHV0IiwiZWFjaCIsIml0ZW0iLCIkZW50aXR5SWRJbnB1dCIsImJvZHkiLCJzdWJtaXQiLCJlIiwicGFyZW50cyIsIlRvb2xzIiwibG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNDQUEsQ0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsS0FBWixDQUFrQixZQUFXO0FBQ3pCQyxtQkFBaUI7QUFDakJDLHlCQUF1QjtBQUN2QkMsdUJBQXFCO0FBQ3hCLENBSkQ7O0FBTUEsU0FBU0YsaUJBQVQsR0FBNkI7QUFDekIsTUFBTUcsT0FBTyxHQUFHTCxRQUFRLENBQUNNLGdCQUFULENBQTBCLHVDQUExQixDQUFoQjs7QUFDQSxPQUFLQyxDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUdGLE9BQU8sQ0FBQ0csTUFBeEIsRUFBZ0NELENBQUMsRUFBakMsRUFBcUM7QUFDakNGLFdBQU8sQ0FBQ0UsQ0FBRCxDQUFQLENBQVdFLGdCQUFYLENBQTRCLFFBQTVCLEVBQXNDLFlBQVk7QUFDOUMsVUFBTUMsTUFBTSxHQUFHLElBQWY7QUFDQSxVQUFNQyxRQUFRLEdBQUcsS0FBS0MsT0FBdEI7QUFDQSxVQUFNQyxRQUFRLEdBQUcsQ0FBQ0YsUUFBbEI7QUFDQSxVQUFNRyxT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QXBDLEtBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUW9DLElBQVIsQ0FBYSxNQUFiLEVBQXFCNkMsTUFBckIsR0FMNEMsQ0FNNUM7QUFDSCxHQVBEO0FBU0gsQzs7Ozs7Ozs7OztBQ3JKRCxlQUFlLG1CQUFPLENBQUMsMkVBQXVCOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7Ozs7Ozs7Ozs7O0FDaEJBIiwiZmlsZSI6ImFkbWlubHRlLWluZGV4LjNkZTQ4ZDMyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgJy4vaW5kZXguanMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcyciLCJcblxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG4gICAgbGNDcnVkSW5kZXhUb2dnbGUoKSA7XG4gICAgbGNDcnVkSW5kZXhCYXRjaEFjdGlvbnMoKSA7XG4gICAgbGNDcnVkSW5kZXhJbml0RmlsdGVyKCk7XG59KSA7XG5cbmZ1bmN0aW9uIGxjQ3J1ZEluZGV4VG9nZ2xlKCkge1xuICAgIGNvbnN0IHRvZ2dsZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY3VzdG9tLXN3aXRjaCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdG9nZ2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0b2dnbGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvZ2dsZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gIW5ld1ZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdG9nZ2xlVXJsID0gdGhpcy5jbG9zZXN0KCcuY3VzdG9tLXN3aXRjaCcpLmRhdGFzZXQudXJsICsgXCImbmV3VmFsdWU9XCIgKyBuZXdWYWx1ZS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBsZXQgdG9nZ2xlUmVxdWVzdCA9ICQuYWpheCh7dHlwZTogXCJQT1NUXCIsIHVybDogdG9nZ2xlVXJsLCBkYXRhOiB7fSwgZGF0YVR5cGU6ICdqc29uJ30pO1xuXG4gICAgICAgICAgICB0b2dnbGVSZXF1ZXN0LmRvbmUoZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgU292Tm90aWZpY2F0aW9uLmFkZCgnc3VjY2VzcycsICdMYSBwcm9wcmnDqXTDqSBhIGJpZW4gw6l0w6kgbWlzZSDDoCBqb3VyLicpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRvZ2dsZVJlcXVlc3QuZmFpbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlLmNoZWNrZWQgPSBvbGRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0b2dnbGUuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvZ2dsZS5jbG9zZXN0KCcuY2hlY2tib3gtc3dpdGNoJykuY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBTb3ZOb3RpZmljYXRpb24uYWRkKCdlcnJvcicsICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxjQ3J1ZEluZGV4QmF0Y2hBY3Rpb25zKCkge1xuICAgIGNvbnN0IHRpdGxlQ29udGVudCA9ICQoJy5jb250ZW50LWhlYWRlci10aXRsZSA+IC50aXRsZScpLmh0bWwoKTtcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnLmRlc2VsZWN0LWJhdGNoLWJ1dHRvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuY29udGVudCcpLmZpbmQoJzpjaGVja2JveC5mb3JtLWJhdGNoLWNoZWNrYm94LWFsbCcpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfSk7XG4gICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZm9ybS1iYXRjaC1jaGVja2JveC1hbGwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgnLmNvbnRlbnQnKS5maW5kKCc6Y2hlY2tib3guZm9ybS1iYXRjaC1jaGVja2JveCcpLnByb3AoJ2NoZWNrZWQnLCAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnKSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfSk7XG4gICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZm9ybS1iYXRjaC1jaGVja2JveCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgJGNvbnRlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5jb250ZW50LXdyYXBwZXInKTtcbiAgICAgICAgbGV0ICRpbnB1dCA9ICRjb250ZW50LmZpbmQoJzpoaWRkZW4jYmF0Y2hfZm9ybV9lbnRpdHlJZHMnKTtcbiAgICAgICAgbGV0IGlkcyA9ICRpbnB1dC52YWwoKSA/ICRpbnB1dC52YWwoKS5zcGxpdCgnLCcpIDogW107XG4gICAgICAgIGNvbnN0IGlkID0gJCh0aGlzKS52YWwoKTtcblxuICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKCdjaGVja2VkJykpIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5hZGRDbGFzcygnc2VsZWN0ZWQtcm93Jyk7XG4gICAgICAgICAgICBpZiAoLTEgPT09IGlkcy5pbmRleE9mKGlkKSkge1xuICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5yZW1vdmVDbGFzcygnc2VsZWN0ZWQtcm93Jyk7XG4gICAgICAgICAgICBpZHMgPSBpZHMuZmlsdGVyKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gaWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJGNvbnRlbnQuZmluZCgnOmNoZWNrYm94LmZvcm0tYmF0Y2gtY2hlY2tib3gtYWxsJykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgwID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuZ2xvYmFsLWFjdGlvbnMnKS5zaG93KCk7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuYmF0Y2gtYWN0aW9ucycpLmhpZGUoKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJ3RhYmxlJykucmVtb3ZlQ2xhc3MoJ3RhYmxlLWJhdGNoJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuYmF0Y2gtYWN0aW9ucycpLnNob3coKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJy5nbG9iYWwtYWN0aW9ucycpLmhpZGUoKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJ3RhYmxlJykuYWRkQ2xhc3MoJ3RhYmxlLWJhdGNoJyk7XG4gICAgICAgIH1cblxuICAgICAgICAkaW5wdXQudmFsKGlkcy5qb2luKCcsJykpO1xuICAgICAgICAkY29udGVudC5maW5kKCcuY29udGVudC1oZWFkZXItdGl0bGUgPiAudGl0bGUnKS5odG1sKDAgPT09IGlkcy5sZW5ndGggPyB0aXRsZUNvbnRlbnQgOiAnJyk7XG4gICAgfSk7XG5cbiAgICBsZXQgbW9kYWxUaXRsZSA9ICQoJyNiYXRjaC1hY3Rpb24tY29uZmlybWF0aW9uLXRpdGxlJyk7XG4gICAgY29uc3QgdGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVycyA9IG1vZGFsVGl0bGUudGV4dCgpO1xuXG4gICAgJCgnW2RhdGEtYWN0aW9uLWJhdGNoXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgbGV0ICRhY3Rpb25FbGVtZW50ID0gJCh0aGlzKTtcblxuICAgICAgICBjb25zdCBhY3Rpb25OYW1lID0gJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1hY3Rpb24tbmFtZScpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gJCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLmZvcm0tYmF0Y2gtY2hlY2tib3g6Y2hlY2tlZCcpO1xuICAgICAgICBtb2RhbFRpdGxlLnRleHQodGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVyc1xuICAgICAgICAgICAgLnJlcGxhY2UoJyVhY3Rpb25fbmFtZSUnLCBhY3Rpb25OYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoJyVudW1faXRlbXMlJywgc2VsZWN0ZWRJdGVtcy5sZW5ndGgpKTtcblxuICAgICAgICAkKCcjbW9kYWwtYmF0Y2gtYWN0aW9uJykubW9kYWwoe2JhY2tkcm9wOiB0cnVlLCBrZXlib2FyZDogdHJ1ZX0pXG4gICAgICAgICAgICAub2ZmKCdjbGljaycsICcjbW9kYWwtYmF0Y2gtYWN0aW9uLWJ1dHRvbicpXG4gICAgICAgICAgICAub24oJ2NsaWNrJywgJyNtb2RhbC1iYXRjaC1hY3Rpb24tYnV0dG9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICRhY3Rpb25FbGVtZW50LnVuYmluZCgnY2xpY2snKTtcblxuICAgICAgICAgICAgICAgICRmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgICAgICAgICAgICAgICRmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJywgJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1hY3Rpb24tdXJsJykpO1xuICAgICAgICAgICAgICAgICRmb3JtLnNldEF0dHJpYnV0ZSgnbWV0aG9kJywgJ1BPU1QnKTtcblxuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uTmFtZScpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsICRhY3Rpb25FbGVtZW50LmF0dHIoJ2RhdGEtYWN0aW9uLW5hbWUnKSk7XG4gICAgICAgICAgICAgICAgJGZvcm0uYXBwZW5kQ2hpbGQoJGFjdGlvbk5hbWVJbnB1dCk7XG5cbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICdlbnRpdHlGcWNuJyk7XG4gICAgICAgICAgICAgICAgJGVudGl0eUZxY25JbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1lbnRpdHktZnFjbicpKTtcbiAgICAgICAgICAgICAgICAkZm9ybS5hcHBlbmRDaGlsZCgkZW50aXR5RnFjbklucHV0KTtcblxuICAgICAgICAgICAgICAgICRhY3Rpb25VcmxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAgICAgJGFjdGlvblVybElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkYWN0aW9uVXJsSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uVXJsJyk7XG4gICAgICAgICAgICAgICAgJGFjdGlvblVybElucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAkYWN0aW9uRWxlbWVudC5hdHRyKCdkYXRhLWFjdGlvbi11cmwnKSk7XG4gICAgICAgICAgICAgICAgJGZvcm0uYXBwZW5kQ2hpbGQoJGFjdGlvblVybElucHV0KTtcblxuICAgICAgICAgICAgICAgICRjc3JmVG9rZW5JbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAgICAgJGNzcmZUb2tlbklucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkY3NyZlRva2VuSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uQ3NyZlRva2VuJyk7XG4gICAgICAgICAgICAgICAgJGNzcmZUb2tlbklucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAkYWN0aW9uRWxlbWVudC5hdHRyKCdkYXRhLWFjdGlvbi1jc3JmLXRva2VuJykpO1xuICAgICAgICAgICAgICAgICRmb3JtLmFwcGVuZENoaWxkKCRjc3JmVG9rZW5JbnB1dCk7XG5cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmVhY2goKGksIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgJGVudGl0eUlkSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgICAgICAgICAkZW50aXR5SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICRlbnRpdHlJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGBiYXRjaEFjdGlvbkVudGl0eUlkc1ske2l9XWApO1xuICAgICAgICAgICAgICAgICAgICAkZW50aXR5SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgaXRlbS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICRmb3JtLmFwcGVuZENoaWxkKCRlbnRpdHlJZElucHV0KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJGZvcm0pO1xuXG4gICAgICAgICAgICAgICAgLy9tb2RhbFRpdGxlLnRleHQodGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVycyk7XG4gICAgICAgICAgICAgICAgJGZvcm0uc3VibWl0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gbGNDcnVkSW5kZXhJbml0RmlsdGVyKCkge1xuICAgICQoJyNmaWx0ZXJzX2Zvcm1fcmVzZXQnKS52YWwoJycpO1xuXG4gICAgJCgnLmxjLXJlc2V0LWZpbHRlcnMnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAvL2UucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcudGFibGUtZmlsdGVycy1saW5lJykuZmluZCgnc2VsZWN0LGlucHV0JykudmFsKCcnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgJCgnI2ZpbHRlcnNfZm9ybV9yZXNldCcpLnZhbCgnY2xlYXJBbGwnKTtcbiAgICAgICAgVG9vbHMubG9nKCQodGhpcykucHJvcCgnZm9ybScpKTtcbiAgICAgICAgJCh0aGlzKS5wcm9wKCdmb3JtJykuc3VibWl0KCk7XG4gICAgICAgIC8vJCh0aGlzKS5wYXJlbnRzKCdmb3JtJykuc3VibWl0KCk7XG4gICAgfSlcblxufSIsInZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xuXG52YXIgRGF0ZVByb3RvdHlwZSA9IERhdGUucHJvdG90eXBlO1xudmFyIElOVkFMSURfREFURSA9ICdJbnZhbGlkIERhdGUnO1xudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgbmF0aXZlRGF0ZVRvU3RyaW5nID0gRGF0ZVByb3RvdHlwZVtUT19TVFJJTkddO1xudmFyIGdldFRpbWUgPSBEYXRlUHJvdG90eXBlLmdldFRpbWU7XG5cbi8vIGBEYXRlLnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWRhdGUucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAobmV3IERhdGUoTmFOKSArICcnICE9IElOVkFMSURfREFURSkge1xuICByZWRlZmluZShEYXRlUHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHZhciB2YWx1ZSA9IGdldFRpbWUuY2FsbCh0aGlzKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyBuYXRpdmVEYXRlVG9TdHJpbmcuY2FsbCh0aGlzKSA6IElOVkFMSURfREFURTtcbiAgfSk7XG59XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9