{"version":3,"file":"site.min.js","sources":["site.js"],"sourcesContent":["// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification\r\n// for details on configuring this project to bundle and minify static web assets.\r\n\r\n// Write your JavaScript code.\r\n\r\n// Cookies - For Keeping User Preference\r\n\r\nvar isMobile = false;\r\nvar isTablet = false;\r\nvar isLandscape = false;\r\n\r\n\r\nvar currentWidth = 0;\r\nvar currentHeight = 0;\r\n\r\ncheckIfMobile = function () {\r\n // get browser width\r\n currentWidth = window.innerWidth || document.documentElement.clientWidth;\r\n currentHeight = window.innerHeight || document.documentElement.clientHeight;\r\n \r\n isLandscape = (currentWidth > currentHeight);\r\n\r\n var md = new MobileDetect(navigator.userAgent)\r\n\r\n isMobile = (md.phone() != null);\r\n isTablet = (md.tablet() != null);\r\n\r\n //detect known mobile/tablet usage\r\n //if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i))) {\r\n // isMobile = true;\r\n //}else if (navigator.userAgent.match(/iPad/i)) {\r\n // isTablet = true;\r\n //}\r\n};\r\n\r\nfunction setCookie(cname, cvalue, exdays) {\r\n\tvar d = new Date();\r\n\td.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n\tvar expires = \"expires=\" + d.toUTCString();\r\n\tdocument.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n}\r\n\r\nfunction getCookie(cname) {\r\n\tvar name = cname + \"=\";\r\n\tvar ca = document.cookie.split(';');\r\n\tfor (var i = 0; i < ca.length; i++) {\r\n\t\tvar c = ca[i];\r\n\t\twhile (c.charAt(0) === ' ') {\r\n\t\t\tc = c.substring(1);\r\n\t\t}\r\n\t\tif (c.indexOf(name) === 0) {\r\n\t\t\treturn c.substring(name.length, c.length);\r\n\t\t}\r\n\t}\r\n\treturn \"\";\r\n}\r\n\r\nfunction setMode(sMode) {\r\n\r\n $(\"body\").removeClass(\"light-mode\")\r\n .removeClass(\"dark-mode\")\r\n .removeClass(\"blue\")\r\n .removeClass(\"purple\");\r\n\r\n $(\"body\").addClass(sMode);\r\n\r\n setCookie(\"site-mode\", sMode, 365);\r\n}\r\n\r\nformatLocalDateTime = function (iUnixTimeStamp, sformat) {\r\n\r\n if (sformat === undefined) {\r\n sformat = \"d/m/y h:m:s\"\r\n }\r\n\r\n return formatLocalTime(iUnixTimeStamp, sformat)\r\n};\r\n\r\nformatLocalTime = function (iUnixTimeStamp, sformat) {\r\n if (sformat === undefined) {\r\n sformat = \"h:m\"\r\n }\r\n if (iUnixTimeStamp == null) {\r\n iUnixTimeStamp = 0;\r\n }\r\n if (iUnixTimeStamp == 0) {\r\n return \"--:--\";\r\n } else {\r\n var d = new Date(iUnixTimeStamp);\r\n\r\n return formatDateTime(d, sformat);\r\n }\r\n};\r\n\r\ndownloadExport = function (obj) {\r\n var $this = $(obj);\r\n\r\n if (!$this.hasClass(\"disabled\")) {\r\n $this.addClass(\"disabled\");\r\n\r\n var sContent = \"
\"\r\n + \"
\"\r\n + \" \"\r\n + \"
\"\r\n + \"

Processing Please Wait

\"\r\n + \"
\";\r\n\r\n loadLocalContent(\"overlay-content\", sContent, true, \"md\", \"Exporting Data\");\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: $this.attr(\"href\"),\r\n cache: false,\r\n xhr: function () {\r\n var xhr = new XMLHttpRequest();\r\n xhr.responseType = 'blob'\r\n return xhr;\r\n },\r\n success: function (data, textStatus, xhr) {\r\n //debugger;\r\n $this.removeClass(\"disabled\", false);\r\n\r\n if (textStatus.indexOf(\"error\") > -1) {\r\n loadLocalContent(\"overlay-content\", \"

Error exporting data - please try again.

\", true, \"md\", \"Exporting Data Error\");\r\n } else {\r\n //var blob = new Blob([data], { type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" });\r\n //var blob = new Blob([data], { type: \"application/octet-stream\" });\r\n var blob = data;\r\n var filename = \"\";\r\n var disposition = xhr.getResponseHeader('Content-Disposition');\r\n\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '');\r\n }\r\n }\r\n\r\n //Check the Browser type and download the File.\r\n var isIE = false || !!document.documentMode;\r\n\r\n if (isIE) {\r\n window.navigator.msSaveBlob(blob, filename);\r\n } else {\r\n var url = window.URL || window.webkitURL;\r\n\r\n try {\r\n link = url.createObjectURL(blob);\r\n } catch (e) {\r\n link = url.createObjectURL(new Blob([data], { type: \"application/octet-stream\" }));\r\n }\r\n\r\n var sDownloadContent = \"
\"\r\n + \"
\"\r\n + \" \"\r\n + \"
\"\r\n + \"

Export Complete

\"\r\n + \"

If your file doesn't automatically download .

\"\r\n + \"

\";\r\n\r\n loadLocalContent(\"overlay-content\", sDownloadContent, true, \"md\", \"Export Data\");\r\n\r\n var a = $(\"click here\");\r\n a.attr(\"download\", filename);\r\n a.attr(\"href\", link);\r\n\r\n $(\"#download-link\").append(a);\r\n a[0].click();\r\n }\r\n }\r\n },\r\n failure: function (response) {\r\n $this.removeClass(\"disabled\", false);\r\n\r\n if (response.indexOf(\"error\") > -1) {\r\n loadLocalContent(\"overlay-content\", \"

Error exporting data - please try again.

\", true, \"md\", \"Exporting Data Error\");\r\n }\r\n },\r\n error: function (response) {\r\n $this.removeClass(\"disabled\", false);\r\n\r\n if ((response !== null) && (response !== undefined) && (response !== \"\")) { \r\n if (response.statusText.indexOf(\"error\") > -1) {\r\n loadLocalContent(\"overlay-content\", \"

Error exporting data - please try again.

\", true, \"md\", \"Exporting Data Error\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n return false;\r\n }\r\n};\r\n\r\nbindControls = function ($obj) {\r\n $obj.find('[data-mask]').each(function (idx, obj) {\r\n //$(obj).inputmask()\r\n });\r\n\r\n $obj.find('.wysiwyg').each(function (idx, obj) {\r\n $(obj).summernote({\r\n styleTags: [\r\n 'p',\r\n { title: 'Small Text', tag: 'p', className: 'small-text', value: 'p' },\r\n 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'\r\n ]});\r\n });\r\n\r\n $obj.find('.seachableDDL').each(function (idx, obj) {\r\n $(obj).select2();\r\n });\r\n\r\n\r\n $obj.find('.colourPickerUI').each(function (idx, obj) {\r\n //color picker with addon\r\n $(obj).colorpicker()\r\n\r\n $(obj).find('.input-group-append').on(\"click\", function () {\r\n $(obj).find(\"input\").focus();\r\n });\r\n\r\n\r\n $(obj).on('colorpickerChange', function (event) {\r\n $(obj).find('.fa-square').css('color', event.color.toString());\r\n });\r\n });\r\n\r\n $obj.find('.datePickerUI').each(function (idx, obj) {\r\n $(obj).datetimepicker({\r\n format: 'DD MMM yyyy',\r\n allowInputToggle: true,\r\n keepOpen: false,\r\n debug: true,\r\n buttons: {\r\n showToday: true,\r\n showClear: true,\r\n showClose: true\r\n },\r\n icons: {\r\n time: \"far fa-clock\",\r\n date: \"far fa-calendar-alt\",\r\n up: \"fa fa-arrow-up\",\r\n down: \"fa fa-arrow-down\",\r\n clear: \"far fa-calendar-times\",\r\n close: \"far fa-times-circle\",\r\n today: 'far fa-calendar-check'\r\n }\r\n });\r\n });\r\n\r\n $obj.find('.datetimePickerUI').each(function (idx, obj) {\r\n $(obj).datetimepicker({\r\n format: 'DD MMM yyyy HH:mm',\r\n allowInputToggle: true,\r\n keepOpen: false,\r\n buttons: {\r\n showToday: true,\r\n showClear: true,\r\n showClose: true\r\n },\r\n icons: {\r\n time: \"far fa-clock\",\r\n date: \"far fa-calendar-alt\",\r\n up: \"fa fa-arrow-up\",\r\n down: \"fa fa-arrow-down\",\r\n clear: \"far fa-calendar-times\",\r\n close: \"far fa-times-circle\",\r\n today: 'far fa-calendar-check'\r\n }\r\n });\r\n });\r\n\r\n $obj.find('.timePickerUI').each(function (idx, obj) {\r\n $(obj).datetimepicker({\r\n format: 'HH:mm',\r\n allowInputToggle: true,\r\n keepOpen: false\r\n });\r\n });\r\n\r\n $obj.find(\"input[type=file]\").each(function (idx, obj) {\r\n $(obj).on(\"change\", function () {\r\n var fileName = $(this).val();\r\n\r\n if (fileName !== \"\") {\r\n if (fileName.indexOf(\"\\\\\") > 0) {\r\n aPathParts = fileName.split(\"\\\\\");\r\n\r\n if (aPathParts.length > 0) {\r\n fileName = aPathParts[aPathParts.length - 1];\r\n }\r\n }\r\n } else {\r\n fileName = \"Choose file\";\r\n }\r\n\r\n\r\n $(this).next('.custom-file-label').html(fileName);\r\n });\r\n });\r\n\r\n $obj.find('.pass_show').each(function (idx, obj) {\r\n //debugger;\r\n var $inp = $(this).find(\"input[type=password]\");\r\n\r\n var $showPass = $('
');\r\n\r\n $(obj).prepend($showPass);\r\n\r\n $showPass.on(\"click\", function () {\r\n if ($inp.attr(\"type\") == \"password\") {\r\n $inp.attr(\"type\", \"text\");\r\n $(this).html(\"\");\r\n } else {\r\n $inp.attr(\"type\", \"password\");\r\n $(this).html(\"\");\r\n }\r\n });\r\n });\r\n\r\n $obj.find('input[type=\"password\"][data-toggle=popover]').on('keyup', function () {\r\n //minimum 8 characters\r\n var bad = /(?=.{8,}).*/;\r\n\r\n //Alpha Numeric plus minimum 8\r\n var good = /^(?=\\S*?[a-z])(?=\\S*?[0-9])\\S{8,}$/;\r\n\r\n //Must contain at least one upper case letter, one lower case letter and (one number OR one special char).\r\n var better = /^(?=\\S*?[A-Z])(?=\\S*?[a-z])((?=\\S*?[0-9])|(?=\\S*?[^\\w\\*]))\\S{8,}$/;\r\n\r\n //Must contain at least one upper case letter, one lower case letter and (one number AND one special char).\r\n var best = /^(?=\\S*?[A-Z])(?=\\S*?[a-z])(?=\\S*?[0-9])(?=\\S*?[^\\w\\*])\\S{8,}$/;\r\n\r\n var password = $(this);\r\n var pass = password.val();\r\n var passLabel = $('[for=\"password\"]');\r\n\r\n var stength = 'Weak';\r\n var pclass = 'danger';\r\n\r\n if (best.test(pass) == true) {\r\n stength = 'Very Strong';\r\n pclass = 'success';\r\n } else if (better.test(pass) == true) {\r\n stength = 'Strong (Try adding a number or a symbol or a Uppercase)';\r\n pclass = 'warning';\r\n } else if (good.test(pass) == true) {\r\n stength = 'Almost Strong (At least 1 number, At least 1 symbol, At least 1 Uppercase)';\r\n pclass = 'warning';\r\n } else if (bad.test(pass) == true) {\r\n stength = 'Weak (At least 1 number, At least 1 symbol)';\r\n } else {\r\n stength = 'Very Weak (Must be 8 or more characters, At least 1 number, At least 1 symbol, At least 1 Uppercase)';\r\n }\r\n\r\n var popover = password.attr('data-content', stength).data('bs.popover');\r\n\r\n popover.setContent();\r\n\r\n var $tip = $(popover.tip);\r\n\r\n $tip.removeClass('danger success info warning primary').addClass(pclass);\r\n\r\n });\r\n\r\n $obj.find('input[data-toggle=\"popover\"]').popover({\r\n placement: 'top',\r\n trigger: 'focus'\r\n });\r\n\r\n $obj.find('i[data-toggle=\"popover\"]').popover({\r\n placement: 'left',\r\n trigger: 'hover'\r\n });\r\n}\r\n\r\n$(window).ready(function () {\r\n checkIfMobile();\r\n\r\n\tvar nav_cookie = getCookie(\"setNav\"),\r\n\t\tbody = $(\"body\");\r\n\r\n\tif (nav_cookie === \"full-menu\") {\r\n\t\tbody.removeClass(\"sidebar-collapse\");\r\n\t}\r\n\tif (nav_cookie === \"mini-menu\") {\r\n\t\tbody.addClass(\"sidebar-collapse\");\r\n\t}\r\n\r\n\tvar menutogglers = $(\"a[data-widget='pushmenu']\");\r\n\r\n menutogglers.each(function (idx, obj) {\r\n $(obj).on(\"click\", function () {\r\n if (body.hasClass(\"sidebar-collapse\")) {\r\n setCookie(\"setNav\", \"full-menu\", 1);\r\n //console.log(\"cookie: setNav = \" + nav_cookie);\r\n } else {\r\n setCookie(\"setNav\", \"mini-menu\", 1);\r\n //console.log(\"cookie: setNav = \" + nav_cookie);\r\n }\r\n });\r\n });\r\n\r\n bindControls($(this));\r\n\r\n $(\".alert-dismissible\").each(function (idx, obj) {\r\n var $obj = $(obj);\r\n\r\n if ($obj.data(\"autohide\") === true) {\r\n var iTimout = $obj.data(\"autohidedelay\");\r\n\r\n setTimeout(function () {\r\n $obj.slideUp(500);\r\n }, iTimout);\r\n }\r\n });\r\n});\r\n\r\n//if ('serviceWorker' in navigator) {\r\n// window.addEventListener(\"load\", () => {\r\n// navigator.serviceWorker.register(\"/js/ServiceWorker.js\");\r\n// });\r\n//}"],"names":["isMobile","isTablet","isLandscape","currentWidth","currentHeight","setCookie","cname","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","getCookie","name","ca","split","i","length","c","charAt","substring","indexOf","setMode","sMode","$","removeClass","addClass","checkIfMobile","window","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","md","MobileDetect","navigator","userAgent","phone","tablet","formatLocalDateTime","iUnixTimeStamp","sformat","undefined","formatLocalTime","formatDateTime","downloadExport","obj","$this","hasClass","loadLocalContent","ajax","type","url","attr","cache","xhr","XMLHttpRequest","responseType","success","data","textStatus","blob","filename","disposition","getResponseHeader","matches","exec","replace","documentMode","msSaveBlob","URL","webkitURL","link","createObjectURL","e","Blob","a","append","click","failure","response","error","statusText","bindControls","$obj","find","each","idx","summernote","styleTags","title","tag","className","value","select2","colorpicker","on","focus","event","css","color","toString","datetimepicker","format","allowInputToggle","keepOpen","debug","buttons","showToday","showClear","showClose","icons","time","date","up","down","clear","close","today","fileName","this","val","aPathParts","next","html","$inp","$showPass","prepend","password","pass","stength","pclass","test","popover","setContent","tip","placement","trigger","ready","nav_cookie","body","iTimout","setTimeout","slideUp"],"mappings":"AAOA,IAAIA,UAAW,EACXC,UAAW,EACXC,aAAc,EAGdC,aAAe,EACfC,cAAgB,EAsBpB,SAASC,UAAUC,EAAOC,EAAQC,GACjC,IAAIC,EAAI,IAAIC,KACZD,EAAEE,QAAQF,EAAEG,UAAsB,GAATJ,EAAc,GAAK,GAAK,KAC7CK,EAAU,WAAaJ,EAAEK,cAC7BC,SAASC,OAASV,EAAQ,IAAMC,EAAS,IAAMM,EAAU,UAG1D,SAASI,UAAUX,GAGlB,IAFA,IAAIY,EAAOZ,EAAQ,IACfa,EAAKJ,SAASC,OAAOI,MAAM,KACtBC,EAAI,EAAGA,EAAIF,EAAGG,OAAQD,IAAK,CAEnC,IADA,IAAIE,EAAIJ,EAAGE,GACY,MAAhBE,EAAEC,OAAO,IACfD,EAAIA,EAAEE,UAAU,GAEjB,GAAwB,IAApBF,EAAEG,QAAQR,GACb,OAAOK,EAAEE,UAAUP,EAAKI,OAAQC,EAAED,QAGpC,MAAO,GAGR,SAASK,QAAQC,GAEbC,EAAE,QAAQC,YAAY,cACjBA,YAAY,aACZA,YAAY,QACZA,YAAY,UAEjBD,EAAE,QAAQE,SAASH,GAEnBvB,UAAU,YAAauB,EAAO,KAnDlCI,cAAgB,WAEZ7B,aAAe8B,OAAOC,YAAcnB,SAASoB,gBAAgBC,YAC7DhC,cAAgB6B,OAAOI,aAAetB,SAASoB,gBAAgBG,aAE/DpC,YAA8BE,cAAfD,aAEf,IAAIoC,EAAK,IAAIC,aAAaC,UAAUC,WAEpC1C,SAA0B,MAAduC,EAAGI,QACf1C,SAA2B,MAAfsC,EAAGK,UA4CnBC,oBAAsB,SAAUC,EAAgBC,GAM5C,YAJgBC,IAAZD,IACAA,EAAU,eAGPE,gBAAgBH,EAAgBC,IAG3CE,gBAAkB,SAAUH,EAAgBC,GAOxC,QANgBC,IAAZD,IACAA,EAAU,OAKQ,IAFlBD,EADkB,MAAlBA,EACiB,EAEjBA,GACA,MAAO,QAEHrC,EAAI,IAAIC,KAAKoC,GAEjB,OAAOI,eAAezC,EAAGsC,IAIjCI,eAAiB,SAAUC,GACvB,IAAIC,EAAQxB,EAAEuB,GAEd,IAAKC,EAAMC,SAAS,YAAa,CAC7BD,EAAMtB,SAAS,YA4Ff,OAnFAwB,iBAAiB,kBAPF,6OAO+B,EAAM,KAAM,kBAE1D1B,EAAE2B,KAAK,CACHC,KAAM,MACNC,IAAKL,EAAMM,KAAK,QAChBC,OAAO,EACPC,IAAK,WACD,IAAIA,EAAM,IAAIC,eAEd,OADAD,EAAIE,aAAe,OACZF,GAEXG,QAAS,SAAUC,EAAMC,EAAYL,GAIjC,GAFAR,EAAMvB,YAAY,YAAY,IAEK,EAA/BoC,EAAWxC,QAAQ,SACnB6B,iBAAiB,kBAAmB,8EAAgF,EAAM,KAAM,4BAC7H,CAGH,IAAIY,EAAOF,EACPG,EAAW,GACXC,EAAcR,EAAIS,kBAAkB,uBAaxC,GAXID,IAAsD,IAAvCA,EAAY3C,QAAQ,gBAGpB,OADX6C,EADgB,yCACQC,KAAKH,KACVE,EAAQ,KAC3BH,EAAWG,EAAQ,GAAGE,QAAQ,QAAS,QAKzB1D,SAAS2D,aAG3BzC,OAAOQ,UAAUkC,WAAWR,EAAMC,OAC/B,CACH,IAAIV,EAAMzB,OAAO2C,KAAO3C,OAAO4C,UAE/B,IACIC,KAAOpB,EAAIqB,gBAAgBZ,GAC7B,MAAOa,GACLF,KAAOpB,EAAIqB,gBAAgB,IAAIE,KAAK,CAAChB,GAAO,CAAER,KAAM,8BAWxDF,iBAAiB,kBARM,sTAQ+B,EAAM,KAAM,eAE9D2B,EAAIrD,EAAE,qBACVqD,EAAEvB,KAAK,WAAYS,GACnBc,EAAEvB,KAAK,OAAQmB,MAEfjD,EAAE,kBAAkBsD,OAAOD,GAC3BA,EAAE,GAAGE,WAIjBC,QAAS,SAAUC,GACfjC,EAAMvB,YAAY,YAAY,IAEG,EAA7BwD,EAAS5D,QAAQ,UACjB6B,iBAAiB,kBAAmB,8EAAgF,EAAM,KAAM,yBAGxIgC,MAAO,SAAUD,GACbjC,EAAMvB,YAAY,YAAY,GAE1B,MAACwD,GAAgE,KAAbA,IACR,EAAxCA,EAASE,WAAW9D,QAAQ,UAC5B6B,iBAAiB,kBAAmB,8EAAgF,EAAM,KAAM,4BAMzI,IAIfkC,aAAe,SAAUC,GACrBA,EAAKC,KAAK,eAAeC,KAAK,SAAUC,EAAKzC,MAI7CsC,EAAKC,KAAK,YAAYC,KAAK,SAAUC,EAAKzC,GACtCvB,EAAEuB,GAAK0C,WAAW,CACdC,UAAW,CACP,IACA,CAAEC,MAAO,aAAcC,IAAK,IAAKC,UAAW,aAAcC,MAAO,KACjE,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,UAIjDT,EAAKC,KAAK,iBAAiBC,KAAK,SAAUC,EAAKzC,GAC3CvB,EAAEuB,GAAKgD,YAIXV,EAAKC,KAAK,mBAAmBC,KAAK,SAAUC,EAAKzC,GAE7CvB,EAAEuB,GAAKiD,cAEPxE,EAAEuB,GAAKuC,KAAK,uBAAuBW,GAAG,QAAS,WAC3CzE,EAAEuB,GAAKuC,KAAK,SAASY,UAIzB1E,EAAEuB,GAAKkD,GAAG,oBAAqB,SAAUE,GACrC3E,EAAEuB,GAAKuC,KAAK,cAAcc,IAAI,QAASD,EAAME,MAAMC,gBAI3DjB,EAAKC,KAAK,iBAAiBC,KAAK,SAAUC,EAAKzC,GAC3CvB,EAAEuB,GAAKwD,eAAe,CAClBC,OAAQ,cACRC,kBAAkB,EAClBC,UAAU,EACVC,OAAO,EACPC,QAAS,CACLC,WAAW,EACXC,WAAW,EACXC,WAAW,GAEfC,MAAO,CACHC,KAAM,eACNC,KAAM,sBACNC,GAAI,iBACJC,KAAM,mBACNC,MAAO,wBACPC,MAAO,sBACPC,MAAO,6BAKnBlC,EAAKC,KAAK,qBAAqBC,KAAK,SAAUC,EAAKzC,GAC/CvB,EAAEuB,GAAKwD,eAAe,CAClBC,OAAQ,oBACRC,kBAAkB,EAClBC,UAAU,EACVE,QAAS,CACLC,WAAW,EACXC,WAAW,EACXC,WAAW,GAEfC,MAAO,CACHC,KAAM,eACNC,KAAM,sBACNC,GAAI,iBACJC,KAAM,mBACNC,MAAO,wBACPC,MAAO,sBACPC,MAAO,6BAKnBlC,EAAKC,KAAK,iBAAiBC,KAAK,SAAUC,EAAKzC,GAC3CvB,EAAEuB,GAAKwD,eAAe,CAClBC,OAAQ,QACRC,kBAAkB,EAClBC,UAAU,MAIlBrB,EAAKC,KAAK,oBAAoBC,KAAK,SAAUC,EAAKzC,GAC9CvB,EAAEuB,GAAKkD,GAAG,SAAU,WAChB,IAAIuB,EAAWhG,EAAEiG,MAAMC,MAEN,KAAbF,EAC6B,EAAzBA,EAASnG,QAAQ,QACjBsG,WAAaH,EAASzG,MAAM,MAEJ,EAApB4G,WAAW1G,SACXuG,EAAWG,WAAWA,WAAW1G,OAAS,KAIlDuG,EAAW,cAIfhG,EAAEiG,MAAMG,KAAK,sBAAsBC,KAAKL,OAIhDnC,EAAKC,KAAK,cAAcC,KAAK,SAAUC,EAAKzC,GAExC,IAAI+E,EAAOtG,EAAEiG,MAAMnC,KAAK,wBAEpByC,EAAYvG,EAAE,2EAElBA,EAAEuB,GAAKiF,QAAQD,GAEfA,EAAU9B,GAAG,QAAS,WACO,YAArB6B,EAAKxE,KAAK,SACVwE,EAAKxE,KAAK,OAAQ,QAClB9B,EAAEiG,MAAMI,KAAK,gCAEbC,EAAKxE,KAAK,OAAQ,YAClB9B,EAAEiG,MAAMI,KAAK,yCAKzBxC,EAAKC,KAAK,+CAA+CW,GAAG,QAAS,WAEjE,IAWIgC,EAAWzG,EAAEiG,MACbS,EAAOD,EAASP,MAGhBS,GAFY3G,EAAE,oBAEJ,QACV4G,EAAS,SAEU,GATZ,iEASFC,KAAKH,IACVC,EAAU,cACVC,EAAS,WACmB,GAfnB,oEAeKC,KAAKH,IACnBC,EAAU,0DACVC,EAAS,WACiB,GArBnB,qCAqBKC,KAAKH,IACjBC,EAAU,6EACVC,EAAS,WAETD,EADyB,GA3BnB,cA2BKE,KAAKH,GACN,8CAEA,uGAGVI,EAAUL,EAAS3E,KAAK,eAAgB6E,GAASvE,KAAK,cAE1D0E,EAAQC,aAEG/G,EAAE8G,EAAQE,KAEhB/G,YAAY,uCAAuCC,SAAS0G,KAIrE/C,EAAKC,KAAK,gCAAgCgD,QAAQ,CAC9CG,UAAW,MACXC,QAAS,UAGbrD,EAAKC,KAAK,4BAA4BgD,QAAQ,CAC1CG,UAAW,OACXC,QAAS,WAIjBlH,EAAEI,QAAQ+G,MAAM,WACZhH,gBAEH,IAAIiH,EAAahI,UAAU,UAC1BiI,EAAOrH,EAAE,QAES,cAAfoH,GACHC,EAAKpH,YAAY,oBAEC,cAAfmH,GACHC,EAAKnH,SAAS,oBAGIF,EAAE,6BAEL+D,KAAK,SAAUC,EAAKzC,GAC7BvB,EAAEuB,GAAKkD,GAAG,QAAS,WACX4C,EAAK5F,SAAS,oBACdjD,UAAU,SAAU,YAAa,GAGjCA,UAAU,SAAU,YAAa,OAM7CoF,aAAa5D,EAAEiG,OAEfjG,EAAE,sBAAsB+D,KAAK,SAAUC,EAAKzC,GACxC,IAAIsC,EAAO7D,EAAEuB,IAEiB,IAA1BsC,EAAKzB,KAAK,cACNkF,EAAUzD,EAAKzB,KAAK,iBAExBmF,WAAW,WACP1D,EAAK2D,QAAQ,MACdF"}