/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./resources/js/warehouse_management/mutations/index.js": /*!**************************************************************!*\ !*** ./resources/js/warehouse_management/mutations/index.js ***! \**************************************************************/ /***/ (() => { eval("$(document).ready(function () {\n console.log(\"Mutations index.js loaded\"); // Check if DataTables is available\n\n if (typeof $.fn.DataTable === \"undefined\") {\n console.error(\"DataTables not available!\");\n return;\n } // Initialize components\n\n\n initializeSelect2();\n initializeDatepickers(); // Wait for DOM to be fully ready\n\n setTimeout(function () {\n initializeDataTable();\n }, 100);\n});\n\nfunction initializeSelect2() {\n console.log(\"Initializing Select2...\"); // Initialize Select2 for dealer filter\n\n if (typeof $.fn.select2 !== \"undefined\") {\n $(\"#dealer_filter\").select2({\n placeholder: \"Pilih Dealer\",\n allowClear: false,\n width: \"100%\",\n dropdownAutoWidth: true,\n minimumResultsForSearch: 5 // Show search box if more than 5 options\n\n });\n } else {\n console.warn(\"Select2 not available, using regular select\");\n }\n}\n\nfunction initializeDatepickers() {\n console.log(\"Initializing datepickers...\"); // Initialize start date picker\n\n $(\"#date_from\").datepicker({\n dateFormat: \"yy-mm-dd\",\n changeMonth: true,\n changeYear: true,\n maxDate: new Date(),\n yearRange: \"-5:+0\",\n onSelect: function onSelect(selectedDate) {\n console.log(\"Start date selected:\", selectedDate);\n enableEndDatePicker(selectedDate);\n $(this).datepicker(\"hide\");\n },\n onClose: function onClose(selectedDate) {\n if (selectedDate) {\n console.log(\"Start date closed with value:\", selectedDate);\n enableEndDatePicker(selectedDate);\n }\n }\n }); // Initialize end date picker (initially disabled)\n\n initializeEndDatePicker(); // Initially disable end date input\n\n $(\"#date_to\").prop(\"disabled\", true); // Add calendar icons\n\n addCalendarIcons(); // Setup calendar icon click handlers\n\n setupIconClickHandlers(); // Backup: Listen to change event\n\n setupChangeEventHandlers();\n}\n\nfunction enableEndDatePicker(startDate) {\n console.log(\"Enabling end date picker with min date:\", startDate); // Enable the input\n\n $(\"#date_to\").prop(\"disabled\", false); // Destroy existing datepicker\n\n $(\"#date_to\").datepicker(\"destroy\"); // Re-initialize with new minDate\n\n $(\"#date_to\").datepicker({\n dateFormat: \"yy-mm-dd\",\n changeMonth: true,\n changeYear: true,\n maxDate: new Date(),\n yearRange: \"-5:+0\",\n minDate: new Date(startDate),\n // Convert to Date object for proper comparison\n onSelect: function onSelect(selectedDate) {\n console.log(\"End date selected:\", selectedDate);\n $(this).datepicker(\"hide\");\n }\n });\n console.log(\"End date picker enabled with minDate:\", startDate);\n}\n\nfunction initializeEndDatePicker() {\n $(\"#date_to\").datepicker({\n dateFormat: \"yy-mm-dd\",\n changeMonth: true,\n changeYear: true,\n maxDate: new Date(),\n yearRange: \"-5:+0\",\n onSelect: function onSelect(selectedDate) {\n console.log(\"End date selected:\", selectedDate);\n $(this).datepicker(\"hide\");\n }\n });\n}\n\nfunction addCalendarIcons() {\n // Remove any existing icons first\n $(\".input-icon\").remove(); // Add calendar icons with just the classes, no inline styles\n\n var iconHtml = '';\n $(\"#date_from\").after(iconHtml);\n $(\"#date_to\").after(iconHtml); // Ensure parent containers have relative positioning\n\n $(\"#date_from, #date_to\").closest(\".form-group\").css(\"position\", \"relative\");\n}\n\nfunction setupIconClickHandlers() {\n $(document).on(\"click\", \".input-icon\", function () {\n var input = $(this).prev(\"input\");\n\n if (!input.prop(\"disabled\")) {\n input.datepicker(\"show\");\n }\n });\n}\n\nfunction setupChangeEventHandlers() {\n $(\"#date_from\").on(\"change\", function () {\n var selectedDate = $(this).val();\n\n if (selectedDate) {\n console.log(\"Start date change event:\", selectedDate);\n enableEndDatePicker(selectedDate);\n }\n });\n}\n\nfunction initializeDataTable() {\n console.log(\"Initializing DataTable...\"); // Destroy existing table if any\n\n if ($.fn.DataTable.isDataTable(\"#mutations-table\")) {\n $(\"#mutations-table\").DataTable().destroy();\n } // Initialize DataTable\n\n\n var table = $(\"#mutations-table\").DataTable({\n processing: true,\n serverSide: true,\n destroy: true,\n ajax: {\n url: $(\"#mutations-table\").data(\"url\"),\n type: \"GET\",\n data: function data(d) {\n // Add filter parameters\n d.dealer_filter = $(\"#dealer_filter\").val();\n d.date_from = $(\"#date_from\").val();\n d.date_to = $(\"#date_to\").val();\n console.log(\"AJAX data being sent:\", {\n dealer_filter: d.dealer_filter,\n date_from: d.date_from,\n date_to: d.date_to\n });\n return d;\n },\n error: function error(xhr, _error, code) {\n console.error(\"DataTables AJAX error:\", _error, code);\n console.error(\"Response:\", xhr.responseText);\n }\n },\n columnDefs: [{\n targets: 0,\n width: \"5%\"\n }, // No. column\n {\n targets: 8,\n width: \"20%\",\n className: \"text-center\"\n }, // Action column\n {\n targets: [6, 7],\n className: \"text-center\"\n } // Total Items and Status columns\n ],\n columns: [{\n data: \"DT_RowIndex\",\n name: \"DT_RowIndex\",\n orderable: false,\n searchable: false\n }, {\n data: \"mutation_number\",\n name: \"mutation_number\",\n orderable: true\n }, {\n data: \"created_at\",\n name: \"created_at\",\n orderable: true\n }, {\n data: \"from_dealer\",\n name: \"from_dealer\",\n orderable: true\n }, {\n data: \"to_dealer\",\n name: \"to_dealer\",\n orderable: true\n }, {\n data: \"requested_by\",\n name: \"requested_by\",\n orderable: true\n }, {\n data: \"total_items\",\n name: \"total_items\",\n orderable: true\n }, {\n data: \"status\",\n name: \"status\",\n orderable: true\n }, {\n data: \"action\",\n name: \"action\",\n orderable: false,\n searchable: false\n }],\n order: [[1, \"desc\"]],\n // Order by mutation_number desc\n pageLength: 10,\n responsive: true,\n ordering: true,\n orderMulti: false\n }); // Setup filter button handlers\n\n setupFilterHandlers(table); // Setup other event handlers\n\n setupTableEventHandlers(table);\n}\n\nfunction setupFilterHandlers(table) {\n // Handle Filter Search Button\n $(\"#kt_search\").on(\"click\", function () {\n console.log(\"Filter button clicked\");\n var dealerFilter = $(\"#dealer_filter\").val();\n var dateFrom = $(\"#date_from\").val();\n var dateTo = $(\"#date_to\").val();\n console.log(\"Filtering with:\", {\n dealer: dealerFilter,\n dateFrom: dateFrom,\n dateTo: dateTo\n });\n table.ajax.reload();\n }); // Handle Filter Reset Button\n\n $(\"#kt_reset\").on(\"click\", function () {\n console.log(\"Reset button clicked\"); // Clear all filters\n\n $(\"#dealer_filter\").val(\"\").trigger(\"change\"); // Reset Select2\n\n $(\"#date_from\").val(\"\");\n $(\"#date_to\").val(\"\"); // Reset end date picker and disable it\n\n resetEndDatePicker(); // Reload table\n\n table.ajax.reload();\n }); // Handle Enter key on date inputs\n\n $(\"#date_from, #date_to\").on(\"keypress\", function (e) {\n if (e.which === 13) {\n // Enter key\n $(\"#kt_search\").click();\n }\n }); // Auto-filter when dealer selection changes\n\n $(\"#dealer_filter\").on(\"change\", function () {\n console.log(\"Dealer filter changed:\", $(this).val()); // Uncomment the line below if you want auto-filter on dealer change\n // table.ajax.reload();\n });\n}\n\nfunction resetEndDatePicker() {\n // Destroy existing datepicker\n $(\"#date_to\").datepicker(\"destroy\"); // Re-initialize without minDate constraint\n\n initializeEndDatePicker(); // Disable the input\n\n $(\"#date_to\").prop(\"disabled\", true);\n console.log(\"End date picker reset and disabled\");\n}\n\nfunction setupTableEventHandlers(table) {\n // Debug ordering events\n table.on(\"order.dt\", function () {\n console.log(\"Order changed:\", table.order());\n }); // Add loading indicator for ordering\n\n table.on(\"processing.dt\", function (e, settings, processing) {\n if (processing) {\n console.log(\"DataTable processing started\");\n } else {\n console.log(\"DataTable processing finished\");\n }\n }); // Manual click handler for column headers (fallback)\n\n $(\"#mutations-table thead th\").on(\"click\", function () {\n var columnIndex = $(this).index();\n console.log(\"Column header clicked:\", columnIndex, $(this).text()); // Skip if it's the first (No.) or last (Action) column\n\n if (columnIndex === 0 || columnIndex === 8) {\n console.log(\"Non-sortable column clicked, ignoring\");\n return;\n } // Check if DataTables is handling the click\n\n\n if ($(this).hasClass(\"sorting\") || $(this).hasClass(\"sorting_asc\") || $(this).hasClass(\"sorting_desc\")) {\n console.log(\"DataTables should handle this click\");\n } else {\n console.log(\"DataTables not handling click, manual trigger needed\"); // Force DataTables to handle the ordering\n\n table.order([columnIndex, \"asc\"]).draw();\n }\n }); // Handle Cancel Button Click with SweetAlert\n\n $(document).on(\"click\", \".btn-cancel\", function () {\n var mutationId = $(this).data(\"id\");\n handleCancelMutation(mutationId, table);\n }); // Handle form submissions with loading state\n\n $(document).on(\"submit\", \".approve-form\", function () {\n $(this).find('button[type=\"submit\"]').prop(\"disabled\", true).html(\"Memproses...\");\n }); // Validate quantity approved in receive modal\n\n $(document).on(\"input\", 'input[name*=\"quantity_approved\"]', function () {\n validateQuantityInput($(this));\n });\n}\n\nfunction handleCancelMutation(mutationId, table) {\n if (typeof Swal !== \"undefined\") {\n Swal.fire({\n title: \"Batalkan Mutasi?\",\n text: \"Apakah Anda yakin ingin membatalkan mutasi ini?\",\n icon: \"warning\",\n showCancelButton: true,\n confirmButtonColor: \"#d33\",\n cancelButtonColor: \"#3085d6\",\n confirmButtonText: \"Ya, Batalkan\",\n cancelButtonText: \"Batal\"\n }).then(function (result) {\n if (result.isConfirmed) {\n cancelMutation(mutationId, table);\n }\n });\n } else {\n if (confirm(\"Apakah Anda yakin ingin membatalkan mutasi ini?\")) {\n cancelMutation(mutationId, table);\n }\n }\n}\n\nfunction validateQuantityInput(input) {\n var maxValue = parseFloat(input.attr(\"max\"));\n var currentValue = parseFloat(input.val());\n\n if (maxValue && currentValue > maxValue) {\n input.val(maxValue);\n input.addClass(\"is-invalid\");\n\n if (!input.siblings(\".invalid-feedback\").length) {\n input.after('
Quantity tidak boleh melebihi yang diminta
');\n }\n } else {\n input.removeClass(\"is-invalid\");\n input.siblings(\".invalid-feedback\").remove();\n }\n}\n\nfunction cancelMutation(mutationId, table) {\n $.ajax({\n url: \"/warehouse/mutations/\" + mutationId + \"/cancel\",\n type: \"POST\",\n data: {\n _token: $('meta[name=\"csrf-token\"]').attr(\"content\")\n },\n success: function success(response) {\n if (typeof Swal !== \"undefined\") {\n Swal.fire({\n title: \"Berhasil!\",\n text: \"Mutasi berhasil dibatalkan\",\n icon: \"success\",\n timer: 2000,\n showConfirmButton: false\n });\n } else {\n alert(\"Mutasi berhasil dibatalkan\");\n } // Reload table\n\n\n table.ajax.reload();\n },\n error: function error(xhr) {\n var _xhr$responseJSON;\n\n var errorMsg = ((_xhr$responseJSON = xhr.responseJSON) === null || _xhr$responseJSON === void 0 ? void 0 : _xhr$responseJSON.message) || \"Gagal membatalkan mutasi\";\n\n if (typeof Swal !== \"undefined\") {\n Swal.fire({\n title: \"Error!\",\n text: errorMsg,\n icon: \"error\"\n });\n } else {\n alert(\"Error: \" + errorMsg);\n }\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyIkIiwiZG9jdW1lbnQiLCJyZWFkeSIsImNvbnNvbGUiLCJsb2ciLCJmbiIsIkRhdGFUYWJsZSIsImVycm9yIiwiaW5pdGlhbGl6ZVNlbGVjdDIiLCJpbml0aWFsaXplRGF0ZXBpY2tlcnMiLCJzZXRUaW1lb3V0IiwiaW5pdGlhbGl6ZURhdGFUYWJsZSIsInNlbGVjdDIiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJ3aWR0aCIsImRyb3Bkb3duQXV0b1dpZHRoIiwibWluaW11bVJlc3VsdHNGb3JTZWFyY2giLCJ3YXJuIiwiZGF0ZXBpY2tlciIsImRhdGVGb3JtYXQiLCJjaGFuZ2VNb250aCIsImNoYW5nZVllYXIiLCJtYXhEYXRlIiwiRGF0ZSIsInllYXJSYW5nZSIsIm9uU2VsZWN0Iiwic2VsZWN0ZWREYXRlIiwiZW5hYmxlRW5kRGF0ZVBpY2tlciIsIm9uQ2xvc2UiLCJpbml0aWFsaXplRW5kRGF0ZVBpY2tlciIsInByb3AiLCJhZGRDYWxlbmRhckljb25zIiwic2V0dXBJY29uQ2xpY2tIYW5kbGVycyIsInNldHVwQ2hhbmdlRXZlbnRIYW5kbGVycyIsInN0YXJ0RGF0ZSIsIm1pbkRhdGUiLCJyZW1vdmUiLCJpY29uSHRtbCIsImFmdGVyIiwiY2xvc2VzdCIsImNzcyIsIm9uIiwiaW5wdXQiLCJwcmV2IiwidmFsIiwiaXNEYXRhVGFibGUiLCJkZXN0cm95IiwidGFibGUiLCJwcm9jZXNzaW5nIiwic2VydmVyU2lkZSIsImFqYXgiLCJ1cmwiLCJkYXRhIiwidHlwZSIsImQiLCJkZWFsZXJfZmlsdGVyIiwiZGF0ZV9mcm9tIiwiZGF0ZV90byIsInhociIsImNvZGUiLCJyZXNwb25zZVRleHQiLCJjb2x1bW5EZWZzIiwidGFyZ2V0cyIsImNsYXNzTmFtZSIsImNvbHVtbnMiLCJuYW1lIiwib3JkZXJhYmxlIiwic2VhcmNoYWJsZSIsIm9yZGVyIiwicGFnZUxlbmd0aCIsInJlc3BvbnNpdmUiLCJvcmRlcmluZyIsIm9yZGVyTXVsdGkiLCJzZXR1cEZpbHRlckhhbmRsZXJzIiwic2V0dXBUYWJsZUV2ZW50SGFuZGxlcnMiLCJkZWFsZXJGaWx0ZXIiLCJkYXRlRnJvbSIsImRhdGVUbyIsImRlYWxlciIsInJlbG9hZCIsInRyaWdnZXIiLCJyZXNldEVuZERhdGVQaWNrZXIiLCJlIiwid2hpY2giLCJjbGljayIsInNldHRpbmdzIiwiY29sdW1uSW5kZXgiLCJpbmRleCIsInRleHQiLCJoYXNDbGFzcyIsImRyYXciLCJtdXRhdGlvbklkIiwiaGFuZGxlQ2FuY2VsTXV0YXRpb24iLCJmaW5kIiwiaHRtbCIsInZhbGlkYXRlUXVhbnRpdHlJbnB1dCIsIlN3YWwiLCJmaXJlIiwidGl0bGUiLCJpY29uIiwic2hvd0NhbmNlbEJ1dHRvbiIsImNvbmZpcm1CdXR0b25Db2xvciIsImNhbmNlbEJ1dHRvbkNvbG9yIiwiY29uZmlybUJ1dHRvblRleHQiLCJjYW5jZWxCdXR0b25UZXh0IiwidGhlbiIsInJlc3VsdCIsImlzQ29uZmlybWVkIiwiY2FuY2VsTXV0YXRpb24iLCJjb25maXJtIiwibWF4VmFsdWUiLCJwYXJzZUZsb2F0IiwiYXR0ciIsImN1cnJlbnRWYWx1ZSIsImFkZENsYXNzIiwic2libGluZ3MiLCJsZW5ndGgiLCJyZW1vdmVDbGFzcyIsIl90b2tlbiIsInN1Y2Nlc3MiLCJyZXNwb25zZSIsInRpbWVyIiwic2hvd0NvbmZpcm1CdXR0b24iLCJhbGVydCIsImVycm9yTXNnIiwicmVzcG9uc2VKU09OIiwibWVzc2FnZSJdLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvd2FyZWhvdXNlX21hbmFnZW1lbnQvbXV0YXRpb25zL2luZGV4LmpzPzdhNGUiXSwic291cmNlc0NvbnRlbnQiOlsiJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICAgIGNvbnNvbGUubG9nKFwiTXV0YXRpb25zIGluZGV4LmpzIGxvYWRlZFwiKTtcblxuICAgIC8vIENoZWNrIGlmIERhdGFUYWJsZXMgaXMgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiAkLmZuLkRhdGFUYWJsZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRGF0YVRhYmxlcyBub3QgYXZhaWxhYmxlIVwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgY29tcG9uZW50c1xuICAgIGluaXRpYWxpemVTZWxlY3QyKCk7XG4gICAgaW5pdGlhbGl6ZURhdGVwaWNrZXJzKCk7XG5cbiAgICAvLyBXYWl0IGZvciBET00gdG8gYmUgZnVsbHkgcmVhZHlcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaW5pdGlhbGl6ZURhdGFUYWJsZSgpO1xuICAgIH0sIDEwMCk7XG59KTtcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZVNlbGVjdDIoKSB7XG4gICAgY29uc29sZS5sb2coXCJJbml0aWFsaXppbmcgU2VsZWN0Mi4uLlwiKTtcblxuICAgIC8vIEluaXRpYWxpemUgU2VsZWN0MiBmb3IgZGVhbGVyIGZpbHRlclxuICAgIGlmICh0eXBlb2YgJC5mbi5zZWxlY3QyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICQoXCIjZGVhbGVyX2ZpbHRlclwiKS5zZWxlY3QyKHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlBpbGloIERlYWxlclwiLFxuICAgICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsXG4gICAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICBkcm9wZG93bkF1dG9XaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgIG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOiA1LCAvLyBTaG93IHNlYXJjaCBib3ggaWYgbW9yZSB0aGFuIDUgb3B0aW9uc1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJTZWxlY3QyIG5vdCBhdmFpbGFibGUsIHVzaW5nIHJlZ3VsYXIgc2VsZWN0XCIpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZURhdGVwaWNrZXJzKCkge1xuICAgIGNvbnNvbGUubG9nKFwiSW5pdGlhbGl6aW5nIGRhdGVwaWNrZXJzLi4uXCIpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBzdGFydCBkYXRlIHBpY2tlclxuICAgICQoXCIjZGF0ZV9mcm9tXCIpLmRhdGVwaWNrZXIoe1xuICAgICAgICBkYXRlRm9ybWF0OiBcInl5LW1tLWRkXCIsXG4gICAgICAgIGNoYW5nZU1vbnRoOiB0cnVlLFxuICAgICAgICBjaGFuZ2VZZWFyOiB0cnVlLFxuICAgICAgICBtYXhEYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB5ZWFyUmFuZ2U6IFwiLTU6KzBcIixcbiAgICAgICAgb25TZWxlY3Q6IGZ1bmN0aW9uIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiU3RhcnQgZGF0ZSBzZWxlY3RlZDpcIiwgc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgICAgIGVuYWJsZUVuZERhdGVQaWNrZXIoc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcihcImhpZGVcIik7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlN0YXJ0IGRhdGUgY2xvc2VkIHdpdGggdmFsdWU6XCIsIHNlbGVjdGVkRGF0ZSk7XG4gICAgICAgICAgICAgICAgZW5hYmxlRW5kRGF0ZVBpY2tlcihzZWxlY3RlZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBlbmQgZGF0ZSBwaWNrZXIgKGluaXRpYWxseSBkaXNhYmxlZClcbiAgICBpbml0aWFsaXplRW5kRGF0ZVBpY2tlcigpO1xuXG4gICAgLy8gSW5pdGlhbGx5IGRpc2FibGUgZW5kIGRhdGUgaW5wdXRcbiAgICAkKFwiI2RhdGVfdG9cIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpO1xuXG4gICAgLy8gQWRkIGNhbGVuZGFyIGljb25zXG4gICAgYWRkQ2FsZW5kYXJJY29ucygpO1xuXG4gICAgLy8gU2V0dXAgY2FsZW5kYXIgaWNvbiBjbGljayBoYW5kbGVyc1xuICAgIHNldHVwSWNvbkNsaWNrSGFuZGxlcnMoKTtcblxuICAgIC8vIEJhY2t1cDogTGlzdGVuIHRvIGNoYW5nZSBldmVudFxuICAgIHNldHVwQ2hhbmdlRXZlbnRIYW5kbGVycygpO1xufVxuXG5mdW5jdGlvbiBlbmFibGVFbmREYXRlUGlja2VyKHN0YXJ0RGF0ZSkge1xuICAgIGNvbnNvbGUubG9nKFwiRW5hYmxpbmcgZW5kIGRhdGUgcGlja2VyIHdpdGggbWluIGRhdGU6XCIsIHN0YXJ0RGF0ZSk7XG5cbiAgICAvLyBFbmFibGUgdGhlIGlucHV0XG4gICAgJChcIiNkYXRlX3RvXCIpLnByb3AoXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cbiAgICAvLyBEZXN0cm95IGV4aXN0aW5nIGRhdGVwaWNrZXJcbiAgICAkKFwiI2RhdGVfdG9cIikuZGF0ZXBpY2tlcihcImRlc3Ryb3lcIik7XG5cbiAgICAvLyBSZS1pbml0aWFsaXplIHdpdGggbmV3IG1pbkRhdGVcbiAgICAkKFwiI2RhdGVfdG9cIikuZGF0ZXBpY2tlcih7XG4gICAgICAgIGRhdGVGb3JtYXQ6IFwieXktbW0tZGRcIixcbiAgICAgICAgY2hhbmdlTW9udGg6IHRydWUsXG4gICAgICAgIGNoYW5nZVllYXI6IHRydWUsXG4gICAgICAgIG1heERhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHllYXJSYW5nZTogXCItNTorMFwiLFxuICAgICAgICBtaW5EYXRlOiBuZXcgRGF0ZShzdGFydERhdGUpLCAvLyBDb252ZXJ0IHRvIERhdGUgb2JqZWN0IGZvciBwcm9wZXIgY29tcGFyaXNvblxuICAgICAgICBvblNlbGVjdDogZnVuY3Rpb24gKHNlbGVjdGVkRGF0ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFbmQgZGF0ZSBzZWxlY3RlZDpcIiwgc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcihcImhpZGVcIik7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhcIkVuZCBkYXRlIHBpY2tlciBlbmFibGVkIHdpdGggbWluRGF0ZTpcIiwgc3RhcnREYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUVuZERhdGVQaWNrZXIoKSB7XG4gICAgJChcIiNkYXRlX3RvXCIpLmRhdGVwaWNrZXIoe1xuICAgICAgICBkYXRlRm9ybWF0OiBcInl5LW1tLWRkXCIsXG4gICAgICAgIGNoYW5nZU1vbnRoOiB0cnVlLFxuICAgICAgICBjaGFuZ2VZZWFyOiB0cnVlLFxuICAgICAgICBtYXhEYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB5ZWFyUmFuZ2U6IFwiLTU6KzBcIixcbiAgICAgICAgb25TZWxlY3Q6IGZ1bmN0aW9uIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRW5kIGRhdGUgc2VsZWN0ZWQ6XCIsIHNlbGVjdGVkRGF0ZSk7XG4gICAgICAgICAgICAkKHRoaXMpLmRhdGVwaWNrZXIoXCJoaWRlXCIpO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRDYWxlbmRhckljb25zKCkge1xuICAgIC8vIFJlbW92ZSBhbnkgZXhpc3RpbmcgaWNvbnMgZmlyc3RcbiAgICAkKFwiLmlucHV0LWljb25cIikucmVtb3ZlKCk7XG5cbiAgICAvLyBBZGQgY2FsZW5kYXIgaWNvbnMgd2l0aCBqdXN0IHRoZSBjbGFzc2VzLCBubyBpbmxpbmUgc3R5bGVzXG4gICAgY29uc3QgaWNvbkh0bWwgPSAnPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhciBpbnB1dC1pY29uXCI+PC9pPic7XG5cbiAgICAkKFwiI2RhdGVfZnJvbVwiKS5hZnRlcihpY29uSHRtbCk7XG4gICAgJChcIiNkYXRlX3RvXCIpLmFmdGVyKGljb25IdG1sKTtcblxuICAgIC8vIEVuc3VyZSBwYXJlbnQgY29udGFpbmVycyBoYXZlIHJlbGF0aXZlIHBvc2l0aW9uaW5nXG4gICAgJChcIiNkYXRlX2Zyb20sICNkYXRlX3RvXCIpXG4gICAgICAgIC5jbG9zZXN0KFwiLmZvcm0tZ3JvdXBcIilcbiAgICAgICAgLmNzcyhcInBvc2l0aW9uXCIsIFwicmVsYXRpdmVcIik7XG59XG5cbmZ1bmN0aW9uIHNldHVwSWNvbkNsaWNrSGFuZGxlcnMoKSB7XG4gICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBcIi5pbnB1dC1pY29uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSAkKHRoaXMpLnByZXYoXCJpbnB1dFwiKTtcbiAgICAgICAgaWYgKCFpbnB1dC5wcm9wKFwiZGlzYWJsZWRcIikpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGVwaWNrZXIoXCJzaG93XCIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldHVwQ2hhbmdlRXZlbnRIYW5kbGVycygpIHtcbiAgICAkKFwiI2RhdGVfZnJvbVwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9ICQodGhpcykudmFsKCk7XG4gICAgICAgIGlmIChzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiU3RhcnQgZGF0ZSBjaGFuZ2UgZXZlbnQ6XCIsIHNlbGVjdGVkRGF0ZSk7XG4gICAgICAgICAgICBlbmFibGVFbmREYXRlUGlja2VyKHNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZURhdGFUYWJsZSgpIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXRpYWxpemluZyBEYXRhVGFibGUuLi5cIik7XG5cbiAgICAvLyBEZXN0cm95IGV4aXN0aW5nIHRhYmxlIGlmIGFueVxuICAgIGlmICgkLmZuLkRhdGFUYWJsZS5pc0RhdGFUYWJsZShcIiNtdXRhdGlvbnMtdGFibGVcIikpIHtcbiAgICAgICAgJChcIiNtdXRhdGlvbnMtdGFibGVcIikuRGF0YVRhYmxlKCkuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgRGF0YVRhYmxlXG4gICAgY29uc3QgdGFibGUgPSAkKFwiI211dGF0aW9ucy10YWJsZVwiKS5EYXRhVGFibGUoe1xuICAgICAgICBwcm9jZXNzaW5nOiB0cnVlLFxuICAgICAgICBzZXJ2ZXJTaWRlOiB0cnVlLFxuICAgICAgICBkZXN0cm95OiB0cnVlLFxuICAgICAgICBhamF4OiB7XG4gICAgICAgICAgICB1cmw6ICQoXCIjbXV0YXRpb25zLXRhYmxlXCIpLmRhdGEoXCJ1cmxcIiksXG4gICAgICAgICAgICB0eXBlOiBcIkdFVFwiLFxuICAgICAgICAgICAgZGF0YTogZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICAgICAgICAvLyBBZGQgZmlsdGVyIHBhcmFtZXRlcnNcbiAgICAgICAgICAgICAgICBkLmRlYWxlcl9maWx0ZXIgPSAkKFwiI2RlYWxlcl9maWx0ZXJcIikudmFsKCk7XG4gICAgICAgICAgICAgICAgZC5kYXRlX2Zyb20gPSAkKFwiI2RhdGVfZnJvbVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICBkLmRhdGVfdG8gPSAkKFwiI2RhdGVfdG9cIikudmFsKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkFKQVggZGF0YSBiZWluZyBzZW50OlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGRlYWxlcl9maWx0ZXI6IGQuZGVhbGVyX2ZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgZGF0ZV9mcm9tOiBkLmRhdGVfZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZV90bzogZC5kYXRlX3RvLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICh4aHIsIGVycm9yLCBjb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkRhdGFUYWJsZXMgQUpBWCBlcnJvcjpcIiwgZXJyb3IsIGNvZGUpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJSZXNwb25zZTpcIiwgeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAgICB7IHRhcmdldHM6IDAsIHdpZHRoOiBcIjUlXCIgfSwgLy8gTm8uIGNvbHVtblxuICAgICAgICAgICAgeyB0YXJnZXRzOiA4LCB3aWR0aDogXCIyMCVcIiwgY2xhc3NOYW1lOiBcInRleHQtY2VudGVyXCIgfSwgLy8gQWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgeyB0YXJnZXRzOiBbNiwgN10sIGNsYXNzTmFtZTogXCJ0ZXh0LWNlbnRlclwiIH0sIC8vIFRvdGFsIEl0ZW1zIGFuZCBTdGF0dXMgY29sdW1uc1xuICAgICAgICBdLFxuICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJEVF9Sb3dJbmRleFwiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRFRfUm93SW5kZXhcIixcbiAgICAgICAgICAgICAgICBvcmRlcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBcIm11dGF0aW9uX251bWJlclwiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwibXV0YXRpb25fbnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgb3JkZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgZGF0YTogXCJjcmVhdGVkX2F0XCIsIG5hbWU6IFwiY3JlYXRlZF9hdFwiLCBvcmRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgZGF0YTogXCJmcm9tX2RlYWxlclwiLCBuYW1lOiBcImZyb21fZGVhbGVyXCIsIG9yZGVyYWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBkYXRhOiBcInRvX2RlYWxlclwiLCBuYW1lOiBcInRvX2RlYWxlclwiLCBvcmRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgZGF0YTogXCJyZXF1ZXN0ZWRfYnlcIiwgbmFtZTogXCJyZXF1ZXN0ZWRfYnlcIiwgb3JkZXJhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGRhdGE6IFwidG90YWxfaXRlbXNcIiwgbmFtZTogXCJ0b3RhbF9pdGVtc1wiLCBvcmRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgZGF0YTogXCJzdGF0dXNcIiwgbmFtZTogXCJzdGF0dXNcIiwgb3JkZXJhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJhY3Rpb25cIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcImFjdGlvblwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBvcmRlcjogW1sxLCBcImRlc2NcIl1dLCAvLyBPcmRlciBieSBtdXRhdGlvbl9udW1iZXIgZGVzY1xuICAgICAgICBwYWdlTGVuZ3RoOiAxMCxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgb3JkZXJpbmc6IHRydWUsXG4gICAgICAgIG9yZGVyTXVsdGk6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gU2V0dXAgZmlsdGVyIGJ1dHRvbiBoYW5kbGVyc1xuICAgIHNldHVwRmlsdGVySGFuZGxlcnModGFibGUpO1xuXG4gICAgLy8gU2V0dXAgb3RoZXIgZXZlbnQgaGFuZGxlcnNcbiAgICBzZXR1cFRhYmxlRXZlbnRIYW5kbGVycyh0YWJsZSk7XG59XG5cbmZ1bmN0aW9uIHNldHVwRmlsdGVySGFuZGxlcnModGFibGUpIHtcbiAgICAvLyBIYW5kbGUgRmlsdGVyIFNlYXJjaCBCdXR0b25cbiAgICAkKFwiI2t0X3NlYXJjaFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJGaWx0ZXIgYnV0dG9uIGNsaWNrZWRcIik7XG5cbiAgICAgICAgY29uc3QgZGVhbGVyRmlsdGVyID0gJChcIiNkZWFsZXJfZmlsdGVyXCIpLnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRlRnJvbSA9ICQoXCIjZGF0ZV9mcm9tXCIpLnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRlVG8gPSAkKFwiI2RhdGVfdG9cIikudmFsKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2coXCJGaWx0ZXJpbmcgd2l0aDpcIiwge1xuICAgICAgICAgICAgZGVhbGVyOiBkZWFsZXJGaWx0ZXIsXG4gICAgICAgICAgICBkYXRlRnJvbSxcbiAgICAgICAgICAgIGRhdGVUbyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGFibGUuYWpheC5yZWxvYWQoKTtcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBGaWx0ZXIgUmVzZXQgQnV0dG9uXG4gICAgJChcIiNrdF9yZXNldFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJSZXNldCBidXR0b24gY2xpY2tlZFwiKTtcblxuICAgICAgICAvLyBDbGVhciBhbGwgZmlsdGVyc1xuICAgICAgICAkKFwiI2RlYWxlcl9maWx0ZXJcIikudmFsKFwiXCIpLnRyaWdnZXIoXCJjaGFuZ2VcIik7IC8vIFJlc2V0IFNlbGVjdDJcbiAgICAgICAgJChcIiNkYXRlX2Zyb21cIikudmFsKFwiXCIpO1xuICAgICAgICAkKFwiI2RhdGVfdG9cIikudmFsKFwiXCIpO1xuXG4gICAgICAgIC8vIFJlc2V0IGVuZCBkYXRlIHBpY2tlciBhbmQgZGlzYWJsZSBpdFxuICAgICAgICByZXNldEVuZERhdGVQaWNrZXIoKTtcblxuICAgICAgICAvLyBSZWxvYWQgdGFibGVcbiAgICAgICAgdGFibGUuYWpheC5yZWxvYWQoKTtcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBFbnRlciBrZXkgb24gZGF0ZSBpbnB1dHNcbiAgICAkKFwiI2RhdGVfZnJvbSwgI2RhdGVfdG9cIikub24oXCJrZXlwcmVzc1wiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoZS53aGljaCA9PT0gMTMpIHtcbiAgICAgICAgICAgIC8vIEVudGVyIGtleVxuICAgICAgICAgICAgJChcIiNrdF9zZWFyY2hcIikuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQXV0by1maWx0ZXIgd2hlbiBkZWFsZXIgc2VsZWN0aW9uIGNoYW5nZXNcbiAgICAkKFwiI2RlYWxlcl9maWx0ZXJcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkRlYWxlciBmaWx0ZXIgY2hhbmdlZDpcIiwgJCh0aGlzKS52YWwoKSk7XG4gICAgICAgIC8vIFVuY29tbWVudCB0aGUgbGluZSBiZWxvdyBpZiB5b3Ugd2FudCBhdXRvLWZpbHRlciBvbiBkZWFsZXIgY2hhbmdlXG4gICAgICAgIC8vIHRhYmxlLmFqYXgucmVsb2FkKCk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc2V0RW5kRGF0ZVBpY2tlcigpIHtcbiAgICAvLyBEZXN0cm95IGV4aXN0aW5nIGRhdGVwaWNrZXJcbiAgICAkKFwiI2RhdGVfdG9cIikuZGF0ZXBpY2tlcihcImRlc3Ryb3lcIik7XG5cbiAgICAvLyBSZS1pbml0aWFsaXplIHdpdGhvdXQgbWluRGF0ZSBjb25zdHJhaW50XG4gICAgaW5pdGlhbGl6ZUVuZERhdGVQaWNrZXIoKTtcblxuICAgIC8vIERpc2FibGUgdGhlIGlucHV0XG4gICAgJChcIiNkYXRlX3RvXCIpLnByb3AoXCJkaXNhYmxlZFwiLCB0cnVlKTtcblxuICAgIGNvbnNvbGUubG9nKFwiRW5kIGRhdGUgcGlja2VyIHJlc2V0IGFuZCBkaXNhYmxlZFwiKTtcbn1cblxuZnVuY3Rpb24gc2V0dXBUYWJsZUV2ZW50SGFuZGxlcnModGFibGUpIHtcbiAgICAvLyBEZWJ1ZyBvcmRlcmluZyBldmVudHNcbiAgICB0YWJsZS5vbihcIm9yZGVyLmR0XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJPcmRlciBjaGFuZ2VkOlwiLCB0YWJsZS5vcmRlcigpKTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBsb2FkaW5nIGluZGljYXRvciBmb3Igb3JkZXJpbmdcbiAgICB0YWJsZS5vbihcInByb2Nlc3NpbmcuZHRcIiwgZnVuY3Rpb24gKGUsIHNldHRpbmdzLCBwcm9jZXNzaW5nKSB7XG4gICAgICAgIGlmIChwcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFUYWJsZSBwcm9jZXNzaW5nIHN0YXJ0ZWRcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFUYWJsZSBwcm9jZXNzaW5nIGZpbmlzaGVkXCIpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBNYW51YWwgY2xpY2sgaGFuZGxlciBmb3IgY29sdW1uIGhlYWRlcnMgKGZhbGxiYWNrKVxuICAgICQoXCIjbXV0YXRpb25zLXRhYmxlIHRoZWFkIHRoXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9ICQodGhpcykuaW5kZXgoKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJDb2x1bW4gaGVhZGVyIGNsaWNrZWQ6XCIsIGNvbHVtbkluZGV4LCAkKHRoaXMpLnRleHQoKSk7XG5cbiAgICAgICAgLy8gU2tpcCBpZiBpdCdzIHRoZSBmaXJzdCAoTm8uKSBvciBsYXN0IChBY3Rpb24pIGNvbHVtblxuICAgICAgICBpZiAoY29sdW1uSW5kZXggPT09IDAgfHwgY29sdW1uSW5kZXggPT09IDgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTm9uLXNvcnRhYmxlIGNvbHVtbiBjbGlja2VkLCBpZ25vcmluZ1wiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIERhdGFUYWJsZXMgaXMgaGFuZGxpbmcgdGhlIGNsaWNrXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICQodGhpcykuaGFzQ2xhc3MoXCJzb3J0aW5nXCIpIHx8XG4gICAgICAgICAgICAkKHRoaXMpLmhhc0NsYXNzKFwic29ydGluZ19hc2NcIikgfHxcbiAgICAgICAgICAgICQodGhpcykuaGFzQ2xhc3MoXCJzb3J0aW5nX2Rlc2NcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFUYWJsZXMgc2hvdWxkIGhhbmRsZSB0aGlzIGNsaWNrXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJEYXRhVGFibGVzIG5vdCBoYW5kbGluZyBjbGljaywgbWFudWFsIHRyaWdnZXIgbmVlZGVkXCIpO1xuICAgICAgICAgICAgLy8gRm9yY2UgRGF0YVRhYmxlcyB0byBoYW5kbGUgdGhlIG9yZGVyaW5nXG4gICAgICAgICAgICB0YWJsZS5vcmRlcihbY29sdW1uSW5kZXgsIFwiYXNjXCJdKS5kcmF3KCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBDYW5jZWwgQnV0dG9uIENsaWNrIHdpdGggU3dlZXRBbGVydFxuICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgXCIuYnRuLWNhbmNlbFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IG11dGF0aW9uSWQgPSAkKHRoaXMpLmRhdGEoXCJpZFwiKTtcbiAgICAgICAgaGFuZGxlQ2FuY2VsTXV0YXRpb24obXV0YXRpb25JZCwgdGFibGUpO1xuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIGZvcm0gc3VibWlzc2lvbnMgd2l0aCBsb2FkaW5nIHN0YXRlXG4gICAgJChkb2N1bWVudCkub24oXCJzdWJtaXRcIiwgXCIuYXBwcm92ZS1mb3JtXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKVxuICAgICAgICAgICAgLmZpbmQoJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJylcbiAgICAgICAgICAgIC5wcm9wKFwiZGlzYWJsZWRcIiwgdHJ1ZSlcbiAgICAgICAgICAgIC5odG1sKFwiTWVtcHJvc2VzLi4uXCIpO1xuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgcXVhbnRpdHkgYXBwcm92ZWQgaW4gcmVjZWl2ZSBtb2RhbFxuICAgICQoZG9jdW1lbnQpLm9uKFwiaW5wdXRcIiwgJ2lucHV0W25hbWUqPVwicXVhbnRpdHlfYXBwcm92ZWRcIl0nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhbGlkYXRlUXVhbnRpdHlJbnB1dCgkKHRoaXMpKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlQ2FuY2VsTXV0YXRpb24obXV0YXRpb25JZCwgdGFibGUpIHtcbiAgICBpZiAodHlwZW9mIFN3YWwgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiBcIkJhdGFsa2FuIE11dGFzaT9cIixcbiAgICAgICAgICAgIHRleHQ6IFwiQXBha2FoIEFuZGEgeWFraW4gaW5naW4gbWVtYmF0YWxrYW4gbXV0YXNpIGluaT9cIixcbiAgICAgICAgICAgIGljb246IFwid2FybmluZ1wiLFxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogXCIjZDMzXCIsXG4gICAgICAgICAgICBjYW5jZWxCdXR0b25Db2xvcjogXCIjMzA4NWQ2XCIsXG4gICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJZYSwgQmF0YWxrYW5cIixcbiAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiQmF0YWxcIixcbiAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgY2FuY2VsTXV0YXRpb24obXV0YXRpb25JZCwgdGFibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY29uZmlybShcIkFwYWthaCBBbmRhIHlha2luIGluZ2luIG1lbWJhdGFsa2FuIG11dGFzaSBpbmk/XCIpKSB7XG4gICAgICAgICAgICBjYW5jZWxNdXRhdGlvbihtdXRhdGlvbklkLCB0YWJsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUXVhbnRpdHlJbnB1dChpbnB1dCkge1xuICAgIGNvbnN0IG1heFZhbHVlID0gcGFyc2VGbG9hdChpbnB1dC5hdHRyKFwibWF4XCIpKTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBwYXJzZUZsb2F0KGlucHV0LnZhbCgpKTtcblxuICAgIGlmIChtYXhWYWx1ZSAmJiBjdXJyZW50VmFsdWUgPiBtYXhWYWx1ZSkge1xuICAgICAgICBpbnB1dC52YWwobWF4VmFsdWUpO1xuICAgICAgICBpbnB1dC5hZGRDbGFzcyhcImlzLWludmFsaWRcIik7XG5cbiAgICAgICAgaWYgKCFpbnB1dC5zaWJsaW5ncyhcIi5pbnZhbGlkLWZlZWRiYWNrXCIpLmxlbmd0aCkge1xuICAgICAgICAgICAgaW5wdXQuYWZ0ZXIoXG4gICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+UXVhbnRpdHkgdGlkYWsgYm9sZWggbWVsZWJpaGkgeWFuZyBkaW1pbnRhPC9kaXY+J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlucHV0LnJlbW92ZUNsYXNzKFwiaXMtaW52YWxpZFwiKTtcbiAgICAgICAgaW5wdXQuc2libGluZ3MoXCIuaW52YWxpZC1mZWVkYmFja1wiKS5yZW1vdmUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNhbmNlbE11dGF0aW9uKG11dGF0aW9uSWQsIHRhYmxlKSB7XG4gICAgJC5hamF4KHtcbiAgICAgICAgdXJsOiBcIi93YXJlaG91c2UvbXV0YXRpb25zL1wiICsgbXV0YXRpb25JZCArIFwiL2NhbmNlbFwiLFxuICAgICAgICB0eXBlOiBcIlBPU1RcIixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgX3Rva2VuOiAkKCdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJykuYXR0cihcImNvbnRlbnRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBTd2FsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQmVyaGFzaWwhXCIsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IFwiTXV0YXNpIGJlcmhhc2lsIGRpYmF0YWxrYW5cIixcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIHRpbWVyOiAyMDAwLFxuICAgICAgICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsZXJ0KFwiTXV0YXNpIGJlcmhhc2lsIGRpYmF0YWxrYW5cIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJlbG9hZCB0YWJsZVxuICAgICAgICAgICAgdGFibGUuYWpheC5yZWxvYWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICh4aHIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTXNnID1cbiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VKU09OPy5tZXNzYWdlIHx8IFwiR2FnYWwgbWVtYmF0YWxrYW4gbXV0YXNpXCI7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgU3dhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVycm9yIVwiLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBlcnJvck1zZyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGVydChcIkVycm9yOiBcIiArIGVycm9yTXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUFBLENBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0IsWUFBWTtFQUMxQkMsT0FBTyxDQUFDQyxHQUFSLENBQVksMkJBQVosRUFEMEIsQ0FHMUI7O0VBQ0EsSUFBSSxPQUFPSixDQUFDLENBQUNLLEVBQUYsQ0FBS0MsU0FBWixLQUEwQixXQUE5QixFQUEyQztJQUN2Q0gsT0FBTyxDQUFDSSxLQUFSLENBQWMsMkJBQWQ7SUFDQTtFQUNILENBUHlCLENBUzFCOzs7RUFDQUMsaUJBQWlCO0VBQ2pCQyxxQkFBcUIsR0FYSyxDQWExQjs7RUFDQUMsVUFBVSxDQUFDLFlBQVk7SUFDbkJDLG1CQUFtQjtFQUN0QixDQUZTLEVBRVAsR0FGTyxDQUFWO0FBR0gsQ0FqQkQ7O0FBbUJBLFNBQVNILGlCQUFULEdBQTZCO0VBQ3pCTCxPQUFPLENBQUNDLEdBQVIsQ0FBWSx5QkFBWixFQUR5QixDQUd6Qjs7RUFDQSxJQUFJLE9BQU9KLENBQUMsQ0FBQ0ssRUFBRixDQUFLTyxPQUFaLEtBQXdCLFdBQTVCLEVBQXlDO0lBQ3JDWixDQUFDLENBQUMsZ0JBQUQsQ0FBRCxDQUFvQlksT0FBcEIsQ0FBNEI7TUFDeEJDLFdBQVcsRUFB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QUFMO01BQ0gsQ0FYd0IsQ0FhekI7OztNQUNBNUUsS0FBSyxDQUFDRyxJQUFOLENBQVc2QixNQUFYO0lBQ0gsQ0FyQkU7SUFzQkh6RSxLQUFLLEVBQUUsZUFBVW9ELEdBQVYsRUFBZTtNQUFBOztNQUNsQixJQUFNa0UsUUFBUSxHQUNWLHNCQUFBbEUsR0FBRyxDQUFDbUUsWUFBSix3RUFBa0JDLE9BQWxCLEtBQTZCLDBCQURqQzs7TUFHQSxJQUFJLE9BQU85QixJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO1FBQzdCQSxJQUFJLENBQUNDLElBQUwsQ0FBVTtVQUNOQyxLQUFLLEVBQUUsUUFERDtVQUVOVixJQUFJLEVBQUVvQyxRQUZBO1VBR056QixJQUFJLEVBQUU7UUFIQSxDQUFWO01BS0gsQ0FORCxNQU1PO1FBQ0h3QixLQUFLLENBQUMsWUFBWUMsUUFBYixDQUFMO01BQ0g7SUFDSjtFQW5DRSxDQUFQO0FBcUNIIiwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL3dhcmVob3VzZV9tYW5hZ2VtZW50L211dGF0aW9ucy9pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/warehouse_management/mutations/index.js\n"); /***/ }) /******/ }); /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval-source-map devtool is used. /******/ var __webpack_exports__ = {}; /******/ __webpack_modules__["./resources/js/warehouse_management/mutations/index.js"](); /******/ /******/ })() ;