{"version":3,"file":"application_learnebo-ac031c5c.js","sources":["../../../app/whitelabels/learnebo/assets/javascripts/parsley.js","../../../app/whitelabels/learnebo/assets/javascripts/navbar.js","../../../app/whitelabels/learnebo/assets/javascripts/login.js","../../../app/whitelabels/learnebo/assets/javascripts/forms.js","../../../app/whitelabels/learnebo/assets/javascripts/registration.js","../../../app/whitelabels/learnebo/assets/javascripts/application.js","../../../app/frontend/entrypoints/application_learnebo.js"],"sourcesContent":["var userLang = navigator.language || navigator.userLanguage;\nuserLang = userLang.substring(0, 2).toLowerCase();\nif (![\"it\", \"en\", \"fr\", \"de\", \"es\"].includes(userLang)) {\n userLang = \"fr\";\n}\nwindow.Parsley.setLocale(userLang);\n\nif ($(\"#new_user\").length != 0) {\n $(\"#new_user\").parsley();\n}\n\nwindow.Parsley.addValidator(\"rejectEmoji\", {\n // requirementType: \"string\",\n validateString: function (value) {\n var regex = new RegExp(\n /[\\u{1f300}-\\u{1f5ff}\\u{1f900}-\\u{1f9ff}\\u{1f600}-\\u{1f64f}\\u{1f680}-\\u{1f6ff}\\u{2600}-\\u{26ff}\\u{2700}-\\u{27bf}\\u{1f1e6}-\\u{1f1ff}\\u{1f191}-\\u{1f251}\\u{1f004}\\u{1f0cf}\\u{1f170}-\\u{1f171}\\u{1f17e}-\\u{1f17f}\\u{1f18e}\\u{3030}\\u{2b50}\\u{2b55}\\u{2934}-\\u{2935}\\u{2b05}-\\u{2b07}\\u{2b1b}-\\u{2b1c}\\u{3297}\\u{3299}\\u{303d}\\u{00a9}\\u{00ae}\\u{2122}\\u{23f3}\\u{24c2}\\u{23e9}-\\u{23ef}\\u{25b6}\\u{23f8}-\\u{23fa}]/gu\n );\n return !regex.test(value);\n },\n});\n\nwindow.Parsley.addValidator(\"rejectPattern\", {\n requirementType: \"string\",\n validateString: function (value, requirement) {\n // check that the email value does not contain http or // via regex\n var regex = new RegExp(requirement);\n return !regex.test(value);\n },\n});\n\nwindow.Parsley.addAsyncValidator(\n \"emailUnique\",\n function (xhr) {\n console.log(\"AsyncValidator\");\n // Ritorna true anche se la richiesta non funziona per far\n // comunque andare avanti l'utente.\n // La validazione della mail c'รจ comunque alla fine del form.\n return xhr.status !== 200 || !xhr.responseJSON.found;\n },\n \"/api/v5/users/email/check?email={value}\"\n);\n\n\n$(function() {\n $(\"header.user-role-select-form .signup-steps input:submit[name!='commit']\").on('click', function(event) {\n event.preventDefault();\n manageStepChange(this);\n });\n\n $('header.user-role-select-form .flat-box-steps-circle div').on('click', function() {\n manageStepCircles(this);\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name='commit']\").on('click', function(event) {\n event.preventDefault();\n $(this).closest('form').submit();\n });\n\n $('header.user-role-select-form input').on('change keyup', function() {\n manageInputChange(this);\n });\n\n // check every input and select in the form to enable/disable submit button on change or keyup event (for each step)\n ['adult', 'teacher'].forEach(function(role) {\n ['1', '2', '3'].forEach(function(step) {\n ['input', 'select'].forEach(function(input) {\n $('.step-' + step + '-' + role + ' ' + input).on('change keyup', function() {\n manageDisableBtn(this, parseInt(step));\n });\n });\n });\n });\n\n // required to avoid double-click on submit button\n $(\".btn-signup-flow-last\").one('click', function (event) {\n $(this).prop('disabled', true);\n });\n $(\".btn-signup-flow-last\").dblclick(function(e){\n e.preventDefault();\n });\n});\n\n\n// --- START login/sign-up flow functions ----\n\nvar getCurrentStep = window.getCurrentStep = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n return curStep;\n};\n\nvar manageDisableBtn = window.manageDisableBtn = function($this, step) {\n var btn = $($this).closest('.signup-steps').find(\"input[type='submit']\");\n var form = $('#new_user').parsley({excluded: \"\"})\n var filled = form.isValid({group: 'step_' + step});\n // KEEP IT FOR FUTURE DEBUGGING\n // form.fields.forEach(function(field) {\n // if (!field.isValid({force: true}) && field.$element[0].id == \"select-city\") {\n // console.log('Field pending validation:', field.$element[0].id);\n // console.log('Error messages:', field.getErrorsMessages()[0]);\n // }\n // });\n if (filled === true) {\n $(btn).prop('disabled', false);\n } else {\n $(btn).prop('disabled', true);\n }\n};\n\nvar onPrivaciesChange = window.onPrivaciesChange = function($this, step) {\n if ($($this).is(':checked')) {\n $($this).attr('value', '1');\n $($this).attr('checked', true);\n } else {\n $($this).attr('value', '');\n $($this).attr('checked', null);\n }\n manageDisableBtn($this, step);\n};\n\nvar dateSeparator = '/';\n\nvar correctCaptcha = window.correctCaptcha = function(response) {\n $('#recaptcha_status').val('1');\n var classesParent = $(\".g-recaptcha\").closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n manageDisableBtn(\".g-recaptcha\", curStep);\n};\n\nvar manageStepCircles = window.manageStepCircles = function($this) {\n var currentIndex = $($this).siblings('.active').attr('class').split(' ')[0].split('-')[1];\n var selected = $($this).attr('class').split(' ')[0];\n var selectedIndex = selected.split('-')[1];\n if (selectedIndex*1 < currentIndex*1) {\n $('.flat-box.signup-steps').hide();\n $('.flat-box-header.signup-steps').hide();\n $('.flat-box-steps-circle').hide();\n $('.flat-box.signup-steps.'+ selected).show();\n $('.flat-box-header.signup-steps.'+ selected).show();\n $('.flat-box-steps-circle.'+selected).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n }\n};\n\nvar manageInputChange = window.manageInputChange = function($this) {\n var step = getCurrentStep($this);\n if ($($this).is(':checkbox')) {\n if ($($this).attr('id') == 'checkbox-form-tos_agreement') {\n $('.privacies input:checkbox').prop('checked', $($this).is(':checked'));\n $('.privacies input:checkbox').each(function() {\n onPrivaciesChange(this);\n });\n } else {\n $('#checkbox-form-tos_agreement').prop('checked', false);\n $('#checkbox-form-tos_agreement').attr('value', '');\n }\n onPrivaciesChange($this, step);\n }\n};\n\nvar manageStepChange = window.manageStepChange = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep = curStep*1+1;\n $('.signup-steps').hide();\n $('.flat-box-steps-circle').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n console.log('skip this step');\n nextStep = nextStep +1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\".flat-box-steps-circle.signup-steps.step-\" + nextStep + \"-role-\" + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\nvar gobackSignupFlow = window.gobackSignupFlow = function($this) {\n // event.preventDefault();\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep = curStep*1-1;\n $('.signup-steps').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n nextStep = nextStep - 1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\n","$('.avatar').click(function() {\n $('.avatar-dropdown').toggle(500);\n});\n\n// right menu\n$('.hamburger-icon').click(function() {\n $(this).toggleClass('open');\n $('.rightmenu').animate({width:'toggle'}, 350);\n});\n\n\n$('button.hamburger').click(function() {\n $(this).toggleClass('is-active');\n $('.rightmenu').animate({width:'toggle'}, 350);\n});","// login - sign up page\n$(document).ready(function(){\n const loginPage = document.querySelector('.pages.login-signup');\n if (loginPage) {\n const btnSignIn = document.querySelector('.btn-sign-in');\n const btnSignUp = document.querySelector('.btn-sign-up');\n const signInContainer = document.querySelector('.devise-sign-in');\n const signUpContainer = document.querySelector('.devise-sign-up');\n const loginFormInner = document.querySelector('.login-form-inner');\n const images = document.querySelectorAll('.login-side-image');\n\n function updateHeight() {\n const biggerHeight = Math.max(signInContainer.offsetHeight, signUpContainer.offsetHeight);\n loginFormInner.style.height = `${biggerHeight}px`;\n\n // this needed to fix the max height of the image at the left\n const loginForm = document.querySelector('.login-form');\n images.forEach((image) => {\n image.style.maxHeight = `${loginForm.offsetHeight}px`;\n });\n }\n\n btnSignIn.addEventListener('click', () => {\n btnSignIn.classList.add('active');\n btnSignUp.classList.remove('active');\n signInContainer.classList.add('active');\n signUpContainer.classList.remove('active');\n updateHeight();\n });\n\n btnSignUp.addEventListener('click', () => {\n btnSignIn.classList.remove('active');\n btnSignUp.classList.add('active');\n signInContainer.classList.remove('active');\n signUpContainer.classList.add('active');\n updateHeight();\n });\n\n // Initial height setting\n updateHeight();\n \n // Create a MediaQueryList object\n var mediaquery = window.matchMedia(\"(max-width: 768px)\")\n \n // Attach listener function on state changes\n mediaquery.addEventListener(\"change\", function() {\n updateHeight();\n });\n }\n});\n","/*if the user clicks anywhere outside the select box,\nthen close all select boxes:*/\n$(document).ready(function(){\n $('#select-nation').on('change', function(){\n fill_cities($(\"#select-city\"), this.value);\n });\n});\n\nwindow.fill_cities = function fill_cities(select, nation_id) {\n select.find('option').remove();\n select.append(\"\");\n if (nation_id && nation_id !== \"\"){\n var composedUrl = \"/school_data/cities_list_by_country_id?country_id=\" + nation_id;\n $.ajax({url: composedUrl,\n dataType: \"json\",\n success: function(result){\n $.each(result, function(key, value)\n {\n select.append('');\n });\n }});\n }\n}","// hide all elements with class .caps-lock-message then\n// check caps lock on form group wher class .check-caps-lock is present then select the %small .caps-lock-message and show it\n// do the check only on the input where the user just pressed any key\n$(document).ready(function(){\n\n $(\".caps-lock-message\").hide();\n $(\".check-caps-lock\").keypress(function(e){\n var $this = $(this);\n var $capsLockMessage = $this.parent().find(\".caps-lock-message\");\n var keyCode = e.keyCode ? e.keyCode : e.which;\n var shiftKey = e.shiftKey ? e.shiftKey : ((keyCode == 16) ? true : false);\n if (((keyCode >= 65 && keyCode <= 90) && !shiftKey) || ((keyCode >= 97 && keyCode <= 122) && shiftKey)) {\n $capsLockMessage.show();\n } else {\n $capsLockMessage.hide();\n }\n });\n\n\n});\n\n","import \"parsleyjs/src/parsley.js\";\nimport \"parsleyjs/src/i18n/fr.js\";\nimport \"parsleyjs/src/i18n/es.js\";\nimport \"parsleyjs/src/i18n/it.js\";\nimport \"parsleyjs/src/i18n/de.js\";\nimport \"./parsley\";\nimport \"jquery-ui/dist/jquery-ui.js\";\nimport \"@hotwired/turbo-rails\";\n// import \"jquery-smooth-scroll/jquery.smooth-scroll.js\";\n// import \"bootstrap/dist/js/bootstrap.bundle.js\";\nimport \"moment/src/moment.js\";\nimport \"moment/src/locale/de.js\";\nimport \"moment/src/locale/es.js\";\nimport \"moment/src/locale/fr.js\";\nimport \"moment/src/locale/it.js\";\n// import \"flexslider/jquery.flexslider.js\";\nimport \"@vendor/jquery.rwdImageMaps.js\";\nimport \"@vendor/jquery.capsChecker.js\";\nimport \"@vendor/handlebars-v1.2.0\";\nimport \"bootstrap-select\";\nimport \"./navbar\";\nimport \"./login\";\nimport \"./forms\";\nimport \"./registration\";\n\n\n// Select all links with hashes\n$('a.scrollAnimation[href*=\"#\"]')\n// Remove links that don't actually link to anything\n.not('[href=\"#\"]')\n.not('[href=\"#0\"]')\n.click(function (event) {\n // On-page links\n if (location.pathname.replace(/^\\//, \"\") == this.pathname.replace(/^\\//, \"\") && location.hostname == this.hostname) {\n // Figure out element to scroll to\n var target = $(this.hash);\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\n // Does a scroll target exist?\n if (target.length) {\n // Only prevent default if animation is actually gonna happen\n event.preventDefault();\n $(\"html, body\").animate(\n {\n scrollTop: target.offset().top,\n },\n 1000,\n function () {\n // Callback after animation\n // Must change focus!\n var $target = $(target);\n $target.focus();\n if ($target.is(\":focus\")) {\n // Checking if the target was focused\n return false;\n } else {\n $target.attr(\"tabindex\", \"-1\"); // Adding tabindex for elements not focusable\n $target.focus(); // Set focus again\n }\n }\n );\n }\n }\n});","import \"../src/shared/wrap_ready.js\"\nimport Cookie from \"../src/shared/cookie\";\n\nwindow.Learnebo = {};\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n window.Learnebo.Cookie = new Cookie();\n});\n\n// we moved Bootstrap here afer updating to BS5 because\n// it wasn't loaded in the right order in application.js\nimport * as bootstrap from '../../../node_modules/bootstrap/dist/js/bootstrap.bundle.js';\n\nwindow.bootstrap = bootstrap;\n\nimport \"../../whitelabels/learnebo/assets/javascripts/application.js\";\n"],"names":["userLang","$","value","regex","requirement","xhr","event","manageStepChange","manageStepCircles","manageInputChange","role","step","input","manageDisableBtn","e","getCurrentStep","$this","classesParent","curStep","btn","form","filled","onPrivaciesChange","response","currentIndex","selected","selectedIndex","curFlow","nextStep","updateHeight","biggerHeight","signInContainer","signUpContainer","loginFormInner","loginForm","images","image","btnSignIn","btnSignUp","mediaquery","select","nation_id","composedUrl","result","key","$capsLockMessage","keyCode","shiftKey","target","$target","Cookie","bootstrap"],"mappings":"sQAAA,IAAIA,EAAW,UAAU,UAAY,UAAU,aAC/CA,EAAWA,EAAS,UAAU,EAAG,CAAC,EAAE,YAAW,EAC1C,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAAE,SAASA,CAAQ,IACnDA,EAAW,MAEb,OAAO,QAAQ,UAAUA,CAAQ,EAE7BC,EAAE,WAAW,EAAE,QAAU,GAC3BA,EAAE,WAAW,EAAE,UAGjB,OAAO,QAAQ,aAAa,cAAe,CAEzC,eAAgB,SAAUC,EAAO,CAC/B,IAAIC,EAAQ,IAAI,OACd,gZACN,EACI,MAAO,CAACA,EAAM,KAAKD,CAAK,CACzB,CACH,CAAC,EAED,OAAO,QAAQ,aAAa,gBAAiB,CAC3C,gBAAiB,SACjB,eAAgB,SAAUA,EAAOE,EAAa,CAE5C,IAAID,EAAQ,IAAI,OAAOC,CAAW,EAClC,MAAO,CAACD,EAAM,KAAKD,CAAK,CACzB,CACH,CAAC,EAED,OAAO,QAAQ,kBACb,cACA,SAAUG,EAAK,CACb,eAAQ,IAAI,gBAAgB,EAIrBA,EAAI,SAAW,KAAO,CAACA,EAAI,aAAa,KAChD,EACD,yCACF,EAGAJ,EAAE,UAAW,CACXA,EAAE,yEAAyE,EAAE,GAAG,QAAS,SAASK,EAAO,CACvGA,EAAM,eAAc,EACpBC,EAAiB,IAAI,CACzB,CAAG,EAEDN,EAAE,yDAAyD,EAAE,GAAG,QAAS,UAAW,CAClFO,EAAkB,IAAI,CAC1B,CAAG,EAEDP,EAAE,wEAAwE,EAAE,GAAG,QAAS,SAASK,EAAO,CACtGA,EAAM,eAAc,EACpBL,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,OAAM,CAClC,CAAG,EAEDA,EAAE,oCAAoC,EAAE,GAAG,eAAgB,UAAW,CACpEQ,EAAkB,IAAI,CAC1B,CAAG,EAGD,CAAC,QAAS,SAAS,EAAE,QAAQ,SAASC,EAAM,CAC1C,CAAC,IAAK,IAAK,GAAG,EAAE,QAAQ,SAASC,EAAM,CACrC,CAAC,QAAS,QAAQ,EAAE,QAAQ,SAASC,EAAO,CAC1CX,EAAE,SAAWU,EAAO,IAAMD,EAAO,IAAME,CAAK,EAAE,GAAG,eAAgB,UAAW,CAC1EC,EAAiB,KAAM,SAASF,CAAI,CAAC,CAC/C,CAAS,CACT,CAAO,CACP,CAAK,CACL,CAAG,EAGDV,EAAE,uBAAuB,EAAE,IAAI,QAAS,SAAUK,EAAO,CACvDL,EAAE,IAAI,EAAE,KAAK,WAAY,EAAI,CACjC,CAAI,EACFA,EAAE,uBAAuB,EAAE,SAAS,SAASa,EAAE,CAC7CA,EAAE,eAAc,CACpB,CAAG,CACH,CAAC,EAKD,IAAIC,EAAiB,OAAO,eAAiB,SAASC,EAAO,CAC3D,IAAIC,EAAgBhB,EAAEe,CAAK,EAAE,QAAQ,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EACzEE,EAAUD,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAC3C,OAAOC,CACT,EAEIL,EAAmB,OAAO,iBAAmB,SAASG,EAAOL,EAAM,CACrE,IAAIQ,EAAMlB,EAAEe,CAAK,EAAE,QAAQ,eAAe,EAAE,KAAK,sBAAsB,EACnEI,EAAOnB,EAAE,WAAW,EAAE,QAAQ,CAAC,SAAU,EAAE,CAAC,EAC5CoB,EAASD,EAAK,QAAQ,CAAC,MAAO,QAAUT,CAAI,CAAC,EAQ7CU,IAAW,GACbpB,EAAEkB,CAAG,EAAE,KAAK,WAAY,EAAK,EAE7BlB,EAAEkB,CAAG,EAAE,KAAK,WAAY,EAAI,CAEhC,EAEIG,EAAoB,OAAO,kBAAoB,SAASN,EAAOL,EAAM,CACnEV,EAAEe,CAAK,EAAE,GAAG,UAAU,GACxBf,EAAEe,CAAK,EAAE,KAAK,QAAS,GAAG,EAC1Bf,EAAEe,CAAK,EAAE,KAAK,UAAW,EAAI,IAE7Bf,EAAEe,CAAK,EAAE,KAAK,QAAS,EAAE,EACzBf,EAAEe,CAAK,EAAE,KAAK,UAAW,IAAI,GAE/BH,EAAiBG,EAAOL,CAAI,CAC9B,EAIqB,OAAO,eAAiB,SAASY,EAAU,CAC9DtB,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAC9B,IAAIgB,EAAgBhB,EAAE,cAAc,EAAE,QAAQ,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EAClFiB,EAAUD,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAC3CJ,EAAiB,eAAgBK,CAAO,CAC1C,EAEA,IAAIV,EAAoB,OAAO,kBAAoB,SAASQ,EAAO,CACjE,IAAIQ,EAAevB,EAAEe,CAAK,EAAE,SAAS,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACpFS,EAAWxB,EAAEe,CAAK,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,EAC9CU,EAAgBD,EAAS,MAAM,GAAG,EAAE,CAAC,EACrCC,EAAc,EAAIF,EAAa,IACjCvB,EAAE,wBAAwB,EAAE,OAC5BA,EAAE,+BAA+B,EAAE,OACnCA,EAAE,wBAAwB,EAAE,OAC5BA,EAAE,0BAA2BwB,CAAQ,EAAE,KAAI,EAC3CxB,EAAE,iCAAkCwB,CAAQ,EAAE,KAAI,EAClDxB,EAAE,0BAA0BwB,CAAQ,EAAE,KAAI,EAC1CxB,EAAE,YAAY,EAAE,QAAQ,CAAE,UAAW,CAAC,EAAI,MAAM,EAEpD,EAEIQ,EAAoB,OAAO,kBAAoB,SAASO,EAAO,CACjE,IAAIL,EAAOI,EAAeC,CAAK,EAC3Bf,EAAEe,CAAK,EAAE,GAAG,WAAW,IACrBf,EAAEe,CAAK,EAAE,KAAK,IAAI,GAAK,+BACzBf,EAAE,2BAA2B,EAAE,KAAK,UAAWA,EAAEe,CAAK,EAAE,GAAG,UAAU,CAAC,EACtEf,EAAE,2BAA2B,EAAE,KAAK,UAAW,CAC7CqB,EAAkB,IAAI,CAC9B,CAAO,IAEDrB,EAAE,8BAA8B,EAAE,KAAK,UAAW,EAAK,EACvDA,EAAE,8BAA8B,EAAE,KAAK,QAAS,EAAE,GAEpDqB,EAAkBN,EAAOL,CAAI,EAEjC,EAEIJ,EAAmB,OAAO,iBAAmB,SAASS,EAAO,CAC/D,IAAIC,EAAgBhB,EAAEe,CAAK,EAAE,QAAQ,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EACzEE,EAAUD,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACvCU,EAAUV,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACvCW,EAAWV,EAAQ,EAAE,EACzBjB,EAAE,eAAe,EAAE,OACnBA,EAAE,wBAAwB,EAAE,OACxBA,EAAE,SAAU2B,EAAW,IAAMD,CAAO,EAAE,SAAS,WAAW,IAC5D,QAAQ,IAAI,gBAAgB,EAC5BC,EAAWA,EAAU,GAEvB3B,EAAE,SAAU2B,EAAW,IAAMD,CAAO,EAAE,OACtC1B,EAAE,4CAA8C2B,EAAW,SAAWD,CAAO,EAAE,OAC/E1B,EAAE,YAAY,EAAE,QAAQ,CAAE,UAAW,CAAC,EAAI,MAAM,CAClD,EAEuB,OAAO,iBAAmB,SAASe,EAAO,CAE/D,IAAIC,EAAgBhB,EAAEe,CAAK,EAAE,QAAQ,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,GAAG,EACzEE,EAAUD,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACvCU,EAAUV,EAAc,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACvCW,EAAWV,EAAQ,EAAE,EACzBjB,EAAE,eAAe,EAAE,OACfA,EAAE,SAAU2B,EAAW,IAAMD,CAAO,EAAE,SAAS,WAAW,IAC5DC,EAAWA,EAAW,GAExB3B,EAAE,SAAU2B,EAAW,IAAMD,CAAO,EAAE,OACtC1B,EAAE,YAAY,EAAE,QAAQ,CAAE,UAAW,CAAC,EAAI,MAAM,CAClD,EC5LAA,EAAE,SAAS,EAAE,MAAM,UAAW,CAC1BA,EAAE,kBAAkB,EAAE,OAAO,GAAG,CACpC,CAAC,EAGDA,EAAE,iBAAiB,EAAE,MAAM,UAAW,CAClCA,EAAE,IAAI,EAAE,YAAY,MAAM,EAC1BA,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,QAAQ,EAAG,GAAG,CACjD,CAAC,EAGDA,EAAE,kBAAkB,EAAE,MAAM,UAAW,CACnCA,EAAE,IAAI,EAAE,YAAY,WAAW,EAC/BA,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,QAAQ,EAAG,GAAG,CACjD,CAAC,ECbDA,EAAE,QAAQ,EAAE,MAAM,UAAU,CAExB,GADkB,SAAS,cAAc,qBAAqB,EAC/C,CAQX,IAAS4B,EAAT,UAAwB,CACpB,MAAMC,EAAe,KAAK,IAAIC,EAAgB,aAAcC,EAAgB,YAAY,EACxFC,EAAe,MAAM,OAAS,GAAGH,CAAY,KAG7C,MAAMI,EAAY,SAAS,cAAc,aAAa,EACtDC,EAAO,QAASC,GAAU,CACtBA,EAAM,MAAM,UAAY,GAAGF,EAAU,YAAY,IACjE,CAAa,CACJ,EAhBD,MAAMG,EAAY,SAAS,cAAc,cAAc,EACjDC,EAAY,SAAS,cAAc,cAAc,EACjDP,EAAkB,SAAS,cAAc,iBAAiB,EAC1DC,EAAkB,SAAS,cAAc,iBAAiB,EAC1DC,EAAiB,SAAS,cAAc,mBAAmB,EAC3DE,EAAS,SAAS,iBAAiB,mBAAmB,EAa5DE,EAAU,iBAAiB,QAAS,IAAM,CACtCA,EAAU,UAAU,IAAI,QAAQ,EAChCC,EAAU,UAAU,OAAO,QAAQ,EACnCP,EAAgB,UAAU,IAAI,QAAQ,EACtCC,EAAgB,UAAU,OAAO,QAAQ,EACzCH,GACZ,CAAS,EAEDS,EAAU,iBAAiB,QAAS,IAAM,CACtCD,EAAU,UAAU,OAAO,QAAQ,EACnCC,EAAU,UAAU,IAAI,QAAQ,EAChCP,EAAgB,UAAU,OAAO,QAAQ,EACzCC,EAAgB,UAAU,IAAI,QAAQ,EACtCH,GACZ,CAAS,EAGDA,IAGA,IAAIU,EAAa,OAAO,WAAW,oBAAoB,EAGvDA,EAAW,iBAAiB,SAAU,UAAW,CAC7CV,GACZ,CAAS,CACJ,CACL,CAAC,EC/CD5B,EAAE,QAAQ,EAAE,MAAM,UAAU,CAC1BA,EAAE,gBAAgB,EAAE,GAAG,SAAU,UAAU,CACzC,YAAYA,EAAE,cAAc,EAAG,KAAK,KAAK,CAC7C,CAAG,CACH,CAAC,EAED,OAAO,YAAc,SAAqBuC,EAAQC,EAAW,CAG3D,GAFAD,EAAO,KAAK,QAAQ,EAAE,OAAM,EAC5BA,EAAO,OAAO,6BAA6B,EACvCC,GAAaA,IAAc,GAAG,CAChC,IAAIC,EAAc,qDAAuDD,EACzExC,EAAE,KAAK,CAAC,IAAKyC,EACX,SAAU,OACV,QAAS,SAASC,EAAO,CACvB1C,EAAE,KAAK0C,EAAQ,SAASC,EAAK1C,EAC7B,CACEsC,EAAO,OAAO,iBAAmBtC,EAAM,GAAK,IAAMA,EAAM,UAAY,WAAW,CACzF,CAAS,CACJ,CAAA,CAAC,CACH,CACH,ECnBAD,EAAE,QAAQ,EAAE,MAAM,UAAU,CAE1BA,EAAE,oBAAoB,EAAE,OACxBA,EAAE,kBAAkB,EAAE,SAAS,SAASa,EAAE,CACxC,IAAIE,EAAQf,EAAE,IAAI,EACd4C,EAAmB7B,EAAM,OAAQ,EAAC,KAAK,oBAAoB,EAC3D8B,EAAUhC,EAAE,QAAUA,EAAE,QAAUA,EAAE,MACpCiC,EAAWjC,EAAE,SAAWA,EAAE,SAAagC,GAAW,GAChDA,GAAW,IAAMA,GAAW,IAAO,CAACC,GAAeD,GAAW,IAAMA,GAAW,KAAQC,EAC3FF,EAAiB,KAAI,EAErBA,EAAiB,KAAI,CAE3B,CAAG,CAGH,CAAC,ECQD5C,EAAE,8BAA8B,EAE/B,IAAI,YAAY,EAChB,IAAI,aAAa,EACjB,MAAM,SAAUK,EAAO,CAEtB,GAAI,SAAS,SAAS,QAAQ,MAAO,EAAE,GAAK,KAAK,SAAS,QAAQ,MAAO,EAAE,GAAK,SAAS,UAAY,KAAK,SAAU,CAElH,IAAI0C,EAAS/C,EAAE,KAAK,IAAI,EACxB+C,EAASA,EAAO,OAASA,EAAS/C,EAAE,SAAW,KAAK,KAAK,MAAM,CAAC,EAAI,GAAG,EAEnE+C,EAAO,SAET1C,EAAM,eAAc,EACpBL,EAAE,YAAY,EAAE,QACd,CACE,UAAW+C,EAAO,OAAM,EAAG,GAC5B,EACD,IACA,UAAY,CAGV,IAAIC,EAAUhD,EAAE+C,CAAM,EAEtB,GADAC,EAAQ,MAAK,EACTA,EAAQ,GAAG,QAAQ,EAErB,MAAO,GAEPA,EAAQ,KAAK,WAAY,IAAI,EAC7BA,EAAQ,MAAK,CAEhB,CACT,EAEG,CACH,CAAC,EC3DD,OAAO,SAAW,CAAA,EAElB,OAAO,iBAAiB,mBAAoB,IAAM,CAChD,OAAO,SAAS,OAAS,IAAIC,CAC/B,CAAC,EAMD,OAAO,UAAYC"}