{"version":3,"sources":["node_modules/browser-pack/_prelude.js","vf_app_storefront_core/cartridge/js/accessibility.js","vf_app_storefront_core/cartridge/js/app.js","vf_app_storefront_core/cartridge/js/breakpoint.js","vf_app_storefront_core/cartridge/js/carousel.js","vf_app_storefront_core/cartridge/js/lib/lodash.debounce.js","vf_app_storefront_core/cartridge/js/newsletter.js","vf_app_storefront_core/cartridge/js/pages/application.js","vf_app_storefront_core/cartridge/js/pages/contactus.js","vf_app_storefront_core/cartridge/js/pages/content/customerservice.js","vf_app_storefront_core/cartridge/js/pages/donation/adyenscript.js","vf_app_storefront_core/cartridge/js/pages/donation/index.js","vf_app_storefront_core/cartridge/js/pages/donation/step1.js","vf_app_storefront_core/cartridge/js/pages/donation/step2.js","vf_app_storefront_core/cartridge/js/pages/donation/step3.js","vf_app_storefront_core/cartridge/js/pages/news.js","vf_app_storefront_core/cartridge/js/phone-codes.js","vf_app_storefront_core/cartridge/js/validator.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","handleLastKeydown","keyCode","shiftKey","preventDefault","data","firstFocusableElement","focus","handleFirstKeydown","lastFocusableElement","trapFocusInit","$focusableWrapper","isFirstFocused","isReinit","$firstFocusableElement","$lastFocusableElement","attr","$focusableElements","find","not","filter","first","last","off","removeAttr","on","accessibility","breakpoint","validator","newsletter","carousel","phoneCodes","cache","$window","$","window","initFloatingLabels","$forms","updateStatus","$this","this","closest","toggleClass","val","each","siblings","refreshSelectmenuWidth","$selects","$select","selectWidth","selectmenu","hide","outerWidth","maxWidth","css","show","initializeJQueryUiPlugins","$customStyleInputs","$customStyleSelects","add","checkboxradio","resize","loader","state","alert","$customLoader","$loader","undefined","$alert","next","html","Resources","ALERT_MESSAGE","initializeEvents","debounceDropdownShow","$dropdownList","menuPanelIsVisible","menuSwitchTimeout","$mobileMenu","$mobileMenuOpen","$mobileMenuClose","$fileInputs","$currentElement","clearTimeout","removeClass","addClass","setTimeout","is","isMenuVisible","$currentMenuList","hasClass","customAccordion","type","target","currentTarget","click","$fileInput","$fileVisibleValue","parent","text","files","name","widget","ui","_renderButtonItem","item","buttonItem","placeholder","element","index","_setText","label","_addClass","fn","method","methodData","_$this","$tabs","parentsUntil","$tabsToggle","$tabsContent","methods","init","el","$accordionToggle","$accordionContent","accordionToggleRole","uniqueId","slideUp","vbqUtils","trigger","$target","slideDown","activeTarget","active","eq","prev","inactive","destroy","error","pages","news","contactus","content","donation","application","app","extend","ns","pageContext","jQuery","document","ready","breakpointHelper","mq","options","matches","enter","mediaQueryList","mobilePortrait","mobileLandscape","mobile","mobileAndTablet","tablet","tabletAndDesktop","fromDesktop","desktop","desktopAndDesktopLarge","fromDesktopLarge","desktopLarge","desktopExtraLarge","mediaQueryName","matchMedia","getMediaQuery","set","settings","isChangeOnly","Array","isArray","media","mediaQuery","addEventListener","CarouselHelper","$carousel","disableCarousel","slick","getCarouselSettings","slidesToShow","isFallBackMode","rows","slidesPerRow","appendArrows","appendDots","enable","showDots","showArrows","halfSlideMode","infinite","variableWidth","JSON","parse","hasOwnProperty","initCarousel","carouselSettings","halfSlideModeSlidesToShow","children","dots","arrows","centerMode","centerPadding","_debounce","carouselInit","carouselHelper","desktopExtraLargeSettings","desktopLargeSettings","desktopSettings","tabletSettings","mobileSettings","stringify","lazySizes","unveil","that","now","root","Date","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","isObject","value","toNumber","other","valueOf","replace","isBinary","test","slice","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","debounced","isInvoking","arguments","cancel","flush","submitForm","submitInProcess","$successMessageWrapper","$errorMessageWrapper","$form","validate","valid","formData","FormData","append","$email","$consent","prop","$subscribe","ajax","url","processData","contentType","done","response","errorMessage","success","errorData","showErrors","message","NEWSLETTER_SUBSCRIBE_ERROR","remove","fail","$document","$formWrapper","onPhoneChange","intlTelPhone","intlTelNumber","isValidNumber","getNumber","$phone","validateForm","formSubmited","$recaptchaButton","scrollToErrorElement","setLabelMandatory","$element","newLabel","$label","setLabelNonMandatory","errorElement","errorList","$errorParent","scrollTo","top","offset","behavior","updateStateStatus","selectedStateName","states","$all","$state","selectedStates","onCountryChange","selectedCountry","$selectStates","countryCode","isFieldRequired","zipCodeCountries","indexOf","$postalCode","$activeState","$other","onStateChange","$validateButton","$country","split","$US","$MX","$CA","$AU","currentCountryCode","countChars","$counterMessage","rawCounterMessage","validateFields","$send","toggleAccordion","$next","$currentSection","isActive","$faqAccToggle","$faqAccPanel","$faqSections","$html","animate","scrollTop","viewOffset","initEvents","location","hash","$faqWrapper","height","initializeCardComponent","originKey","environment","locale","translations","Configuration","AdyenCheckoutObject","AdyenCheckout","CardValid","AdyenCard","create","hasHolderName","holderNameRequired","groupTypes","enableStoreDetails","ariaLabels","lang","adyenOptions","encryptedExpiryDate","labels","expiryDate","encryptedSecurityCode","securityCode","placeholders","holderName","encryptedCardNumber","onChange","isValid","storeDetails","storePaymentMethod","$browserInfo","browserInfo","onBrand","AdyenCardBrand","brand","onFieldValid","endDigits","mount","$card","get","$donationWrapper","initCache","scriptTag","adyenJsonOptions","createElement","src","checkoutUrl","appendChild","readyState","onreadystatechange","onload","linkAction","formStep","$goBack","submitAction","selectedAmount","flashMessageCleanup","$amount","$errorWrapper","$submit","$donationStep1loader","$selectAmount","freeAmount","$freeAmount","amountError","AMOUNT_REQUIRED","action","redirectUrl","href","TECHNICAL_ERROR","keyPressAction","flashmessage","keycode","onSelectAmountAction","flashMessageAction","$flashmessage","$donationStep2loader","requiredZipCodeCountries","$zipcode","copyCardData","$donationStep3loader","submit","showValidation","adyenscript","card","cardfields","$type","$owner","$number","$month","encryptedExpiryMonth","$year","encryptedExpiryYear","$securityCode","getFilteredArticles","event","isFilterSelected","$filterButton","filterId","then","$highlightedArticle","$articlesList","$showMore","showMoreArticles","$listLoader","loadUtils","updateCountryNames","initialCountryCode","iti","phone","preferredCountries","initialCountry","intlTelInputGlobals","host","Urls","intlTelInputUtils","countryData","getCountryData","country","tmp","translatedName","trim","iso2","toUpperCase","toLowerCase","push","intlTelInput","countrySearch","autoPlaceholder","nationalMode","hiddenInput","telInputName","promise","setCountry","rules","phoneintl","getInstance","defaults","errorClass","ignore","errorPlacement","$fieldset","highlight","$formGroup","$successContainer","unhighlight","addMethod","RegExp","FORM_XSS_PATTERN","FORM_XSS_ERROR_MESSAGE","messages","email","dataset","msgParse","pattern","regexp","$el","INVALID_PHONE","fileType","allowedTypes","accept","valueData","some","INVALID_FILE_TYPE","setDefaults"],"mappings":"AAAA,CAAA,SAAAA,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAC,GAAA,GAAA,CAAAJ,EAAAG,GAAA,CAAA,GAAA,CAAAJ,EAAAI,GAAA,CAAA,IAAAE,EAAA,YAAA,OAAAC,SAAAA,QAAA,GAAA,CAAAF,GAAAC,EAAA,OAAAA,EAAAF,EAAA,CAAA,CAAA,EAAA,GAAAI,EAAA,OAAAA,EAAAJ,EAAA,CAAA,CAAA,EAAA,MAAAK,EAAA,IAAAC,MAAA,uBAAAN,EAAA,GAAA,GAAAO,KAAA,mBAAAF,CAAA,CAAAG,EAAAX,EAAAG,GAAA,CAAAS,QAAA,EAAA,EAAAb,EAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,CAAA,CAAA,EAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,CAAA,CAAA,CAAA,OAAAD,EAAAG,GAAAS,OAAA,CAAA,IAAA,IAAAL,EAAA,YAAA,OAAAD,SAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,CAAA,GAAAD,EAAAD,EAAAE,EAAA,EAAA,OAAAD,CAAA,EAAA,CAAAa,EAAA,CAAA,SAAAT,EAAAU,EAAAJ,GCAA,aAGA,SAAAK,EAAAlB,GACA,IAAAA,EAAAmB,SAAAnB,EAAAoB,WACApB,EAAAqB,eAAA,EAEArB,EAAAsB,KAAAC,sBAAAC,MAAA,EAEA,CAEA,SAAAC,EAAAzB,GACA,IAAAA,EAAAmB,SAAAnB,EAAAoB,WACApB,EAAAqB,eAAA,EAEArB,EAAAsB,KAAAI,qBAAAF,MAAA,EAEA,CAoCAP,EAAAJ,QAlCA,CAMAc,cAAA,SAAAC,EAAAC,EAAAC,GACA,IAEAC,EACAC,EAHA,MAAAJ,EAAAK,KAAA,iBAAA,GAAAH,CAAAA,IAEAC,GADAG,EAAAN,EAAAO,KAAA,4BAAA,EAAAC,IAAA,iBAAA,EAAAC,OAAA,UAAA,GACAC,MAAA,EACAN,EAAAE,EAAAK,KAAA,EAEAL,EAAAG,OAAA,yBAAA,EAAAG,IAAA,UAAA,KAAAf,CAAA,EAAAgB,WAAA,kBAAA,EACAP,EAAAG,OAAA,wBAAA,EAAAG,IAAA,UAAA,KAAAtB,CAAA,EAAAuB,WAAA,iBAAA,EAGAZ,GACAE,EAAAP,MAAA,EAIAQ,EAAAC,KAAA,kBAAA,MAAA,EACAS,GAAA,UAAA,KAAA,CAAAnB,sBAAAQ,CAAA,EAAAb,CAAA,EAGAa,EAAAE,KAAA,mBAAA,MAAA,EACAS,GAAA,UAAA,KAAA,CAAAhB,qBAAAM,CAAA,EAAAP,CAAA,EAGAG,EAAAK,KAAA,kBAAA,IAAA,EAEA,CACA,C,yBC5CA,aAIA,IAAAU,EAAApC,EAAA,iBAAA,EAEAqC,EAAArC,EAAA,iBAAA,EACAsC,EAAAtC,EAAA,aAAA,EACAuC,EAAAvC,EAAA,cAAA,EACAwC,EAAAxC,EAAA,YAAA,EACAyC,EAAAzC,EAAA,eAAA,EACA0C,EAAA,CACAC,QAAAC,EAAAC,MAAA,CACA,EAoGA,SAAAC,EAAAC,GACA,SAAAC,IACA,IAAAC,EAAAL,EAAAM,IAAA,EACAD,EAAAE,QAAA,mBAAA,EAAAC,YAAA,SAAA,KAAAH,EAAAI,IAAA,CAAA,CACA,CAEAN,EAAAO,KAAA,WACAV,EAAAM,IAAA,EACAtB,KAAA,oBAAA,EAAA2B,SAAA,WAAA,EAAAtB,IAAA,oBAAAe,CAAA,EAEAb,GAAA,oBAAAa,CAAA,EACAM,KAAAN,CAAA,CACA,CAAA,CACA,CA8JA,SAAAQ,EAAAC,GACAA,EAAAH,KAAA,WACA,IAAAI,EAAAd,EAAAM,IAAA,EAMAS,GAFAD,EAAAE,WAAA,QAAA,EAAAC,KAAA,EAEAH,EAAAI,WAAA,GACAC,EAAAJ,EAAA,EAGAD,EAAAE,WAAA,QAAA,EAAAI,IAAA,WAAAL,CAAA,EACAD,EAAAE,WAAA,QAAA,EAAAK,KAAA,EAGAP,EAAAE,WAAA,YAAA,EAAAI,IAAA,WAAAD,CAAA,CACA,CAAA,CACA,CAOA,SAAAG,IACA,IAAAC,EAAAvB,EAAA,0EAAA,EACAwB,EAAAxB,EAAA,0BAAA,EAEAuB,EACArC,OAAA,yCAAA,EACAuC,IAAAF,EAAAvC,KAAA,yCAAA,CAAA,EACA0C,cAAA,EAEAF,EAAAR,WAAA,EACAJ,EAAAY,CAAA,EAEA1B,EAAAC,QAAA4B,OAAA,WACAH,EAAAR,WAAA,OAAA,EACAJ,EAAAY,CAAA,CACA,CAAA,CACA,CAQA,SAAAI,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAC,KAAAA,IAAAF,EAAAA,EAAA/B,EAAA,YAAA,EACAkC,EAAAF,EAAAG,KAAA,oBAAA,EAEAF,KAAAA,IAAAJ,GAAAA,GACAI,KAAAA,IAAAH,GAAAA,CAAAA,GACAI,EAAAE,KAAA,SAAAnC,OAAAoC,UAAAC,cAAA,SAAA,EAEAN,EAAAX,KAAA,IAGAS,GACAI,EAAAE,KAAA,EAAA,EAEAJ,EAAAf,KAAA,EAEA,CAUA,SAAAsB,IAxVA,IAEAC,EACAC,EACAC,EACAC,EAoDAC,EACAC,EACAC,EAwDAC,EAhHAN,EAAAzC,EAAA,cAAA,EACA0C,EAAA,CAAA,EACAC,EAAA,KAEA3C,EAAA,iBAAA,EACAT,GAAA,aAAA,WACA,IAAAyD,EAAAhD,EAAAM,IAAA,EAEA2C,aAAAT,CAAA,EACAC,EAAAS,YAAA,SAAA,EAAApE,KAAA,gBAAA,OAAA,EAAAA,KAAA,cAAA,MAAA,EAEA4D,GAaAM,EAAAhE,KAAA,cAAA,EAAAmE,SAAA,SAAA,EAAArE,KAAA,gBAAA,MAAA,EAAAA,KAAA,cAAA,OAAA,EACA4D,EAAA,CAAA,EACAC,GACA1C,OAAAgD,aAAAN,CAAA,GAfAH,EAAAvC,OAAAmD,WAAA,WACAJ,EAAAK,GAAA,QAAA,IACAL,EAAAhE,KAAA,cAAA,EAAAmE,SAAA,SAAA,EAAArE,KAAA,gBAAA,MAAA,EAAAA,KAAA,cAAA,OAAA,EACA4D,EAAA,CAAA,EAEAC,IACA1C,OAAAgD,aAAAN,CAAA,CAGA,EAAA,GAAA,CASA,CAAA,EACApD,GAAA,aAAA,WACA0D,aAAAT,CAAA,EACAC,EAAAS,YAAA,SAAA,EAAApE,KAAA,gBAAA,OAAA,EAAAA,KAAA,cAAA,MAAA,EACA6D,EAAA1C,OAAAmD,WAAA,WACAV,EAAA,CAAA,CACA,EAAA,GAAA,CACA,CAAA,EAEA1C,EAAA,iBAAA,EAAAT,GAAA,UAAA,SAAA1C,GAEA,IAKAyG,EALA,IAAAzG,EAAAmB,SAAA,IAAAnB,EAAAmB,UAEAnB,EAAAqB,eAAA,EAGAoF,GADAC,EAAAvD,EAAAM,IAAA,EAAAtB,KAAA,cAAA,GACAwE,SAAA,SAAA,EAEAf,EAAAxD,IAAAsE,CAAA,EAAAL,YAAA,SAAA,EAAApE,KAAA,gBAAA,OAAA,EAAAA,KAAA,cAAA,MAAA,EACAyE,EAAA/C,YAAA,UAAA,CAAA8C,CAAA,EAAAxE,KAAA,gBAAAwE,EAAA,QAAA,MAAA,EAAAxE,KAAA,cAAAwE,EAAA,OAAA,OAAA,EAEA,CAAA,EAGAV,EAAA5C,EAAA,gBAAA,EACA6C,EAAA7C,EAAA,eAAA,EACA8C,EAAA9C,EAAA,qBAAA,EAGA4C,EAAAa,gBAAA,EAEAZ,EAAAtD,GAAA,gBAAA,SAAA1C,GAEA,SAAAA,EAAA6G,OAAA,WAAA7G,EAAA6G,MAAA,IAAA7G,EAAAmB,SAAA,IAAAnB,EAAAmB,WAEAnB,EAAAqB,eAAA,EAEA0E,EAAAO,SAAA,MAAA,EAGAL,EAAAzE,MAAA,EAEA,CAAA,EAEAyE,EAAAvD,GAAA,YAAA,WACAqD,EAAAM,YAAA,MAAA,EAGAL,EAAAxE,MAAA,CACA,CAAA,EAEAuE,EAAArD,GAAA,YAAA,SAAA1C,GAEAA,EAAA8G,QAAA9G,EAAA+G,eAIAd,EAAAe,MAAA,CACA,CAAA,EAGArE,EAAAhB,cAAAoE,CAAA,EA8PA1C,EAAAF,EAAA,MAAA,CAAA,GAzOA+C,EAAA/C,EAAA,gBAAA,GAEAU,KAAA,WACA,IAAAoD,EAAA9D,EAAAM,IAAA,EAEAyD,EADAD,EAAAE,OAAA,qBAAA,EACAhF,KAAA,sBAAA,EAEA,GAAA8E,EAAArD,IAAA,EAAA7C,QACAmG,EAAAE,KAAAH,EAAAhF,KAAA,mBAAA,CAAA,EAGAiE,EAAAxD,GAAA,SAAA,WACA,IAAAc,EAAAL,EAAAM,IAAA,EAEAyD,EAAAE,KAAA,GAAA5D,EAAAI,IAAA,EAAA7C,OAAAyC,EAAAvB,KAAA,mBAAA,EAAAuB,EAAA,GAAA6D,MAAA,GAAAC,IAAA,CACA,CAAA,EAEApB,EAAAxD,GAAA,QAAA,WACAS,EAAAM,IAAA,EAAA0D,OAAA,qBAAA,EAAAb,SAAA,OAAA,CACA,CAAA,EAEAJ,EAAAxD,GAAA,OAAA,WACAS,EAAAM,IAAA,EAAA0D,OAAA,qBAAA,EAAAd,YAAA,OAAA,CACA,CAAA,CACA,CAAA,CAqNA,CA7MAlD,EAAAoE,OAAA,iBAAApE,EAAAqE,GAAArD,WAAA,CAYAsD,kBAAA,SAAAC,GACA,IAAAC,EAAAxE,EAAA,QAAA,EACAyE,EAAAnE,KAAAoE,QAAA5F,KAAA,kBAAA,EAUA,OAPA,GAAAyF,EAAAI,OAAAF,EACAnE,KAAAsE,SAAAJ,EAAAC,CAAA,EAEAnE,KAAAsE,SAAAJ,EAAAD,EAAAM,KAAA,EAEAvE,KAAAwE,UAAAN,EAAA,oBAAA,EAEAA,CACA,CACA,CAAA,EAGAxE,EAAA+E,GAAAtB,gBAAA,SAAAuB,EAAAC,GACA,IAAAC,EAAA5E,KAEA6E,EAAAD,EAAAlG,KAAA,mBAAA,EAAAE,OAAA,WACA,MAAA,CAAAc,EAAAM,IAAA,EAAA8E,aAAAF,EAAA,mBAAA,EAAAtH,MACA,CAAA,EACAyH,EAAAH,EAAAlG,KAAA,2BAAA,EAAAF,KAAA,gBAAA,OAAA,EAAAA,KAAA,WAAA,GAAA,EACAwG,EAAAD,EAAAlD,KAAA,EACAoD,EAAA,CACAC,KAAA,WACAL,EAAA7F,WAAA,OAAA,EAAAR,KAAA,OAAA,QAAA,EAAAA,KAAA,cAAA,MAAA,EAEAuG,EAAA3E,KAAA,SAAAiE,EAAAc,GACA,IAAAC,EAAA1F,EAAAyF,CAAA,EACAE,EAAAD,EAAAvD,KAAA,EACAyD,EAAAF,EAAA5G,KAAA,MAAA,GAAA,GAGA4G,EAAA5G,KAAA,OAAA8G,EAAAhI,OAAA,UAAAgI,EAAA,QAAA,EAGA3D,MAAAyD,EAAA5G,KAAA,IAAA,GACA4G,EAAAG,SAAA,EAEA5D,MAAA0D,EAAA7G,KAAA,IAAA,GACA6G,EAAAE,SAAA,EAEAH,EAAA5G,KAAA,gBAAA6G,EAAA7G,KAAA,IAAA,CAAA,EACA6G,EAAA7G,KAAA,kBAAA4G,EAAA5G,KAAA,IAAA,CAAA,EAEA6G,EAAAtC,GAAA,UAAA,GACAqC,EAAAvC,SAAA,QAAA,EAAArE,KAAA,gBAAA,MAAA,EAAAqD,KAAA,EAAAgB,SAAA,QAAA,EAAArE,KAAA,cAAA,OAAA,CAEA,CAAA,EAEAoG,EAAA3F,GAAA,gBAAA,4BAAA,SAAA1C,GAEA,IAIAwD,EAJA,SAAAxD,EAAA6G,OAAA,WAAA7G,EAAA6G,MAAA,IAAA7G,EAAAmB,SAAA,IAAAnB,EAAAmB,WAEAnB,EAAAqB,eAAA,GAEAmC,EAAAL,EAAAM,IAAA,GAEAkD,SAAA,QAAA,GACAnD,EAAA6C,YAAA,QAAA,EAAApE,KAAA,gBAAA,OAAA,EAAAqD,KAAA,EAAAe,YAAA,QAAA,EAAApE,KAAA,cAAA,MAAA,EAAAgH,QAAA,EACA7F,OAAA8F,SAAAjG,MAAAC,QAAAiG,QAAA,uBAAA,IAGAC,EAAAjG,EAAAnD,EAAA8G,MAAA,EAAApD,QAAA,2BAAA,EACA8E,EAAApG,IAAAgH,CAAA,EAAA/C,YAAA,QAAA,EAAApE,KAAA,gBAAA,OAAA,EAAAqD,KAAA,EAAAe,YAAA,QAAA,EAAApE,KAAA,cAAA,MAAA,EAAAgH,QAAA,EACAzF,EAAA8C,SAAA,QAAA,EAAArE,KAAA,gBAAA,MAAA,EAAAqD,KAAA,EAAAgB,SAAA,QAAA,EAAArE,KAAA,cAAA,OAAA,EAAAoH,UAAA,EACAjG,OAAA8F,SAAAjG,MAAAC,QAAAiG,QAAA,sBAAA,CAAA,CAAAG,aAAAF,CAAA,EAAA,GAGA,CAAA,EACAf,EAAA/B,SAAA,uBAAA,EAAAhF,KAAA,kBAAA,CAAA,CAAA,CACA,EACAiI,OAAA,SAAAzB,GACA1C,KAAAA,IAAA0C,GAAAQ,EAAAkB,GAAA1B,CAAA,EAAAnB,SAAA,QAAA,GACA2B,EAAAkB,GAAA1B,CAAA,EAAA2B,KAAA,EAAAN,QAAA,OAAA,CAEA,EACAO,SAAA,SAAA5B,GACA1C,KAAAA,IAAA0C,GAAAQ,EAAAkB,GAAA1B,CAAA,EAAAnB,SAAA,QAAA,GACA2B,EAAAkB,GAAA1B,CAAA,EAAA2B,KAAA,EAAAN,QAAA,OAAA,CAEA,EACAQ,QAAA,WACAtB,EAAAhC,YAAA,uBAAA,EAAA/E,KAAA,kBAAA,CAAA,CAAA,EACAkH,EAAAnC,YAAA,QAAA,EAAA5D,WAAA,kCAAA,EACAgG,EAAApC,YAAA,QAAA,EAAA5D,WAAA,wCAAA,EACA4F,EAAA7F,IAAA,gBAAA,2BAAA,CACA,CACA,EAYA,OAVAkG,EAAAP,GACAE,EAAA/G,KAAA,iBAAA,EAGAoH,EAAAP,GAAAC,CAAA,EAFAjF,EAAAyG,MAAA,eAAAzB,EAAA,iCAAA,EAIAE,EAAA/G,KAAA,iBAAA,GACAoH,EAAAC,KAAA,EAGAlF,IACA,EA4FA,IAAAoG,EAAA,CACAC,KAAAvJ,EAAA,cAAA,EACAwJ,UAAAxJ,EAAA,mBAAA,EACAyJ,QAAAzJ,EAAA,iCAAA,EACA0J,SAAA1J,EAAA,mBAAA,EACA2J,YAAA3J,EAAA,qBAAA,CACA,EAEA4J,EACA,WACA/G,OAAA8F,SAAA9F,OAAA8F,UAAA,GACA9F,OAAA8F,SAAA/F,EAAAiH,OAAA,GAAAhH,OAAA8F,SAAA,CACAjG,MAAAA,EACAL,WAAAA,EACAmC,OAAAA,EACA1B,mBAAAA,EACAoB,0BAAAA,EACAV,uBAAAA,EACAf,WAAAA,CACA,CAAA,EAnCAyB,EAAA,EAGA1B,EAAA4F,KAAA,EAmCAjD,EAAA,EACA7C,EAAA8F,KAAA,EACA7F,EAAA6F,KAAA,EAGA,IAAA0B,EAAAjH,OAAAkH,YAAAD,GACAA,GAAAR,EAAAQ,IAAAR,EAAAQ,GAAA1B,MACAkB,EAAAQ,GAAA1B,KAAA,CAEA,EAIA4B,OAAAC,QAAA,EAAAC,MAAA,SAAAtH,GACAgH,EAAA,CACA,CAAA,C,+PC7ZA,aAoBA,SAAAO,EAAAC,GACAA,GAAA,UAAA,OAAAA,EAAAC,SAAA,OAAAD,EAAAC,SACAD,EAAAE,SAAA,YAAA,OAAAF,EAAAC,QAAAE,OACAH,EAAAC,QAAAE,MAAAH,CAAA,CAGA,CAxBA,IAAAI,EAAA,CAEAC,eAAA,qCACAC,gBAAA,4DACAC,OAAA,qCAEAC,gBAAA,sCACAC,OAAA,6DAEAC,iBAAA,qCACAC,YAAA,sCACAC,QAAA,8DACAC,uBAAA,8DACAC,iBAAA,sCACAC,aAAA,8DACAC,kBAAA,qCACA,EAwEA1K,EAAAJ,QA9DA,CAMA2F,GAAA,SAAAoF,GACA,OAAAxI,OAAAyI,WAAApI,KAAAqI,cAAAF,CAAA,CAAA,EAAAf,OACA,EAMAiB,cAAA,SAAAF,GACA,OAAAb,EAAAa,IAAA,KACA,EAeAG,IAAA,SAAAC,EAAAC,GAGA,GAFAA,EAAA7G,MAAA6G,GAAAA,EAEAD,GAAAE,MAAAC,QAAAH,CAAA,EACA,IAAA,IAAA5L,EAAA,EAAAA,EAAA4L,EAAAjL,OAAAX,CAAA,GAAA,CACA,IAKA2K,EALAH,EAAAoB,EAAA5L,GAEA,UAAA,OAAAwK,GAAA,OAAAA,GACA,UAAA,OAAAA,EAAAwB,QACAC,EAAAzB,EAAAwB,OACArB,EAAA3H,OAAAyI,WAAAQ,CAAA,GAGAzB,QAAAA,EAGAqB,GACAvB,EAAAK,CAAA,EAIAA,EAAAuB,iBAAA,SAAA,SAAAtM,GACA0K,EAAA1K,EAAA+G,aAAA,CACA,CAAA,EAGA,CAEA,CACA,C,yBCxFA,aAMA,SAAAwF,EAAAC,GA8MA,SAAAC,IACAD,EAAA7F,SAAA,mBAAA,GACA6F,EAAAE,MAAA,SAAA,EAAArG,YAAA,yCAAA,CAEA,CAEA5C,KAAA+I,UAAAA,EACA/I,KAAAkJ,oBA9MA,SAAA9F,GACA,IAOA+F,EACAC,EACAC,EACAC,EACAC,EACAC,EAZAjB,EAAA,GACAkB,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EAQA,OAAA1G,GACA,IAAA,sBAEAgG,EAAA,GADAb,EAAAwB,KAAAC,MAAAjB,EAAAvK,KAAA,mCAAA,GAAA,IAAA,IACA+J,EAAA0B,eAAA,QAAA,GACAR,EAAAlB,GAAAA,EAAA0B,eAAA,QAAA,EAAA1B,EAAAkB,OAAAA,EACAK,EAAAvB,GAAAA,EAAA0B,eAAA,eAAA,EAAA1B,EAAAuB,cAAAA,EACAX,EAAAZ,GAAAA,EAAAY,cAAA,EACAO,EAAAnB,EAAAA,EAAAmB,SAAAA,EACAC,EAAApB,EAAAA,EAAAoB,WAAAA,EACAC,EAAArB,EAAAA,EAAAqB,cAAAA,EACAC,EAAAtB,GAAAA,EAAA0B,eAAA,UAAA,EAAA1B,EAAAsB,SAAAA,EACAR,EAAAd,GAAAA,EAAA0B,eAAA,MAAA,EAAA1B,EAAAc,KAAA,GACAC,EAAAf,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAe,aAAA,GACAC,EAAAhB,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAgB,aAAA,GACAC,EAAAjB,GAAAA,EAAA0B,eAAA,YAAA,EAAA1B,EAAAiB,WAAA,GACA,MAEA,IAAA,gBAEAJ,EAAA,GADAb,EAAAwB,KAAAC,MAAAjB,EAAAvK,KAAA,6BAAA,GAAA,IAAA,IACA+J,EAAA0B,eAAA,QAAA,GACAR,EAAAlB,GAAAA,EAAA0B,eAAA,QAAA,EAAA1B,EAAAkB,OAAAA,EACAK,EAAAvB,GAAAA,EAAA0B,eAAA,eAAA,EAAA1B,EAAAuB,cAAAA,EACAX,EAAAZ,GAAAA,EAAAY,cAAA,EACAO,EAAAnB,EAAAA,EAAAmB,SAAAA,EACAC,EAAApB,EAAAA,EAAAoB,WAAAA,EACAC,EAAArB,EAAAA,EAAAqB,cAAAA,EACAC,EAAAtB,GAAAA,EAAA0B,eAAA,UAAA,EAAA1B,EAAAsB,SAAAA,EACAR,EAAAd,GAAAA,EAAA0B,eAAA,MAAA,EAAA1B,EAAAc,KAAA,GACAC,EAAAf,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAe,aAAA,GACAC,EAAAhB,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAgB,aAAA,GACAC,EAAAjB,GAAAA,EAAA0B,eAAA,YAAA,EAAA1B,EAAAiB,WAAA,GACA,MAEA,IAAA,UAEAJ,EAAA,GADAb,EAAAwB,KAAAC,MAAAjB,EAAAvK,KAAA,uBAAA,GAAA,IAAA,IACA+J,EAAA0B,eAAA,QAAA,GACAR,EAAAlB,GAAAA,EAAA0B,eAAA,QAAA,EAAA1B,EAAAkB,OAAAA,EACAK,EAAAvB,GAAAA,EAAA0B,eAAA,eAAA,EAAA1B,EAAAuB,cAAAA,EACAX,EAAAZ,GAAAA,EAAAY,cAAA,EACAO,EAAAnB,EAAAA,EAAAmB,SAAAA,EACAC,EAAApB,EAAAA,EAAAoB,WAAAA,EACAC,EAAArB,EAAAA,EAAAqB,cAAAA,EACAC,EAAAtB,GAAAA,EAAA0B,eAAA,UAAA,EAAA1B,EAAAsB,SAAAA,EACAR,EAAAd,GAAAA,EAAA0B,eAAA,MAAA,EAAA1B,EAAAc,KAAA,GACAC,EAAAf,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAe,aAAA,GACAC,EAAAhB,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAgB,aAAA,GACAC,EAAAjB,GAAAA,EAAA0B,eAAA,YAAA,EAAA1B,EAAAiB,WAAA,GACA,MAEA,IAAA,SAEAJ,EAAA,GADAb,EAAAwB,KAAAC,MAAAjB,EAAAvK,KAAA,sBAAA,GAAA,IAAA,IACA+J,EAAA0B,eAAA,QAAA,GACAR,EAAAlB,CAAAA,CAAAA,GAAAA,EAAAkB,OACAK,EAAAvB,GAAAA,EAAA0B,eAAA,eAAA,EAAA1B,EAAAuB,cAAAA,EACAX,EAAAZ,GAAAA,EAAAY,cAAA,EACAO,EAAAnB,EAAAA,EAAAmB,SAAAA,EACAC,EAAApB,EAAAA,EAAAoB,WAAAA,EACAC,EAAArB,EAAAA,EAAAqB,cAAAA,EACAC,EAAAtB,GAAAA,EAAA0B,eAAA,UAAA,EAAA1B,EAAAsB,SAAAA,EACAR,EAAAd,GAAAA,EAAA0B,eAAA,MAAA,EAAA1B,EAAAc,KAAA,GACAC,EAAAf,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAe,aAAA,GACAC,EAAAhB,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAgB,aAAA,GACAC,EAAAjB,GAAAA,EAAA0B,eAAA,YAAA,EAAA1B,EAAAiB,WAAA,GACA,MAEA,IAAA,SAEAJ,EAAA,GADAb,EAAAwB,KAAAC,MAAAjB,EAAAvK,KAAA,sBAAA,GAAA,IAAA,IACA+J,EAAA0B,eAAA,QAAA,GACAR,EAAAlB,CAAAA,CAAAA,GAAAA,EAAAkB,OACAK,EAAAvB,GAAAA,EAAA0B,eAAA,eAAA,EAAA1B,EAAAuB,cAAAA,EACAX,EAAAZ,GAAAA,EAAAY,cAAA,EACAO,EAAAnB,CAAAA,GAAAA,EAAAmB,SACAC,EAAApB,EAAAA,EAAAoB,WAAAA,EACAC,EAAArB,EAAAA,EAAAqB,cAAAA,EACAC,EAAAtB,GAAAA,EAAA0B,eAAA,UAAA,EAAA1B,EAAAsB,SAAAA,EACAR,EAAAd,GAAAA,EAAA0B,eAAA,MAAA,EAAA1B,EAAAc,KAAA,GACAC,EAAAf,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAe,aAAA,GACAC,EAAAhB,GAAAA,EAAA0B,eAAA,cAAA,EAAA1B,EAAAgB,aAAA,GACAC,EAAAjB,GAAAA,EAAA0B,eAAA,YAAA,EAAA1B,EAAAiB,WAAA,EAKA,CAEA,MAAA,CACAJ,eAAAA,EACAK,OAAAA,EACAN,aAAAA,EACAO,SAAAA,EACAC,WAAAA,EACAC,cAAAA,EACAC,SAAAA,EACAC,cAAAA,EACAT,KAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,WAAAA,CACA,CACA,EA6FAxJ,KAAAkK,aAtFA,SAAA3B,GAGA,IACA4B,EA0BAC,EA7BApB,EAAA,EAEAT,EAAAkB,QAAA,CAAAV,EAAA7F,SAAA,mBAAA,GAAA6F,EAAAsB,SAAA,EAAA/M,OAAAiL,EAAAY,eACAgB,EAAA,CACAhB,aAAA,EAAAZ,EAAAY,aAAAZ,EAAAY,aAAA,EACAmB,KAAA/B,EAAAmB,SACAa,OAAAhC,EAAAoB,WACAE,SAAAtB,EAAAsB,SACAC,cAAAvB,EAAAuB,aACA,EAEAvB,EAAAc,OACAc,EAAAd,KAAAd,EAAAc,MAGAd,EAAAe,eACAa,EAAAb,aAAAf,EAAAe,cAGAf,EAAAgB,eACAY,EAAAZ,aAAAhB,EAAAgB,cAGAhB,EAAAiB,aACAW,EAAAX,WAAAjB,EAAAiB,YAGAjB,EAAAqB,gBAEAQ,EAAA,EAGAD,EAAAN,SAAA,CAAA,EAGA,EAAAtB,EAAAY,eACAiB,EAAA7B,EAAAY,cAKAgB,EAAAhB,aAAAiB,EAAA,EAaAD,EAAAhB,aAAA,GAAA,IACAgB,EAAAK,WAAA,CAAA,GAIAL,EAAAM,cAAA,IAAAL,EAAA,EAAA,KAGArB,EAAAE,MAAAkB,CAAA,EAEA5B,EAAAoB,YAAA,CAAApB,EAAAqB,eACAb,EAAAlG,SAAA,sBAAA,EAGA0F,EAAAqB,gBACAb,EAAAlG,SAAA,oBAAA,CAGA,EAcA7C,KAAAgJ,gBAAAA,CACA,CA1NA,IAAA0B,EAAA5N,EAAA,uBAAA,EA4UAU,EAAAJ,QAhHA,CAMAuN,aAAA,SAAA5B,GACA,IAAA6B,EAAA,IAAA9B,EAAAC,CAAA,EACA8B,EAAAD,EAAA1B,oBAAA,qBAAA,EACA4B,EAAAF,EAAA1B,oBAAA,eAAA,EACA6B,EAAAH,EAAA1B,oBAAA,SAAA,EACA8B,EAAAJ,EAAA1B,oBAAA,QAAA,EACA+B,EAAAL,EAAA1B,oBAAA,QAAA,EAEA0B,EAAA7B,UAAA7F,SAAA,mBAAA,IAOA2H,EAAAzB,iBAEAyB,EAAAd,KAAAC,MAAAD,KAAAmB,UAAAJ,CAAA,CAAA,GAGAnL,OAAA8F,SAAAtG,WAAAmJ,IAAA,CACA,CACAK,MAAAhJ,OAAA8F,SAAAtG,WAAAkJ,cAAA,QAAA,EACAhB,MAAA,WAEA4D,EAAAxB,OACAmB,EAAAV,aAAAe,CAAA,EAGAL,EAAA5B,gBAAA,CAEA,CACA,EACA,CACAL,MAAAhJ,OAAA8F,SAAAtG,WAAAkJ,cAAA,QAAA,EACAhB,MAAA,WAEA2D,EAAAvB,OACAmB,EAAAV,aAAAc,CAAA,EAGAJ,EAAA5B,gBAAA,CAEA,CACA,EACA,CACAL,MAAAhJ,OAAA8F,SAAAtG,WAAAkJ,cAAA,SAAA,EACAhB,MAAA,WAEA0D,EAAAtB,OACAmB,EAAAV,aAAAa,CAAA,EAGAH,EAAA5B,gBAAA,CAEA,CACA,EACA,CACAL,MAAAhJ,OAAA8F,SAAAtG,WAAAkJ,cAAA,cAAA,EACAhB,MAAA,WAEAyD,EAAArB,OACAmB,EAAAV,aAAAY,CAAA,EAGAF,EAAA5B,gBAAA,CAEA,CACA,EACA,CACAL,MAAAhJ,OAAA8F,SAAAtG,WAAAkJ,cAAA,mBAAA,EACAhB,MAAA,WAEAwD,EAAApB,OACAmB,EAAAV,aAAAW,CAAA,EAGAD,EAAA5B,gBAAA,CAEA,CACA,EACA,EAEA4B,EAAA7B,UAAArK,KAAA,WAAA,EAAA0B,KAAA,SAAAiE,EAAAc,GACAxF,OAAAwL,UAAA7J,OAAA8J,OAAAjG,CAAA,CACA,CAAA,EAEAxF,OAAA8F,SAAAjG,MAAAC,QAAA4B,OAAAqJ,EAAA,WACAE,EAAA7B,UAAA7F,SAAA,mBAAA,GACA0H,EAAA7B,UAAAE,MAAA,aAAA,CAEA,EAAA,GAAA,CAAA,EACA,EAKA/D,KAAA,WACA,IAAAmG,EAAArL,KACAN,EAAA,cAAA,EAAAU,KAAA,WAEAiL,EAAAV,aAAAjL,EAAAM,IAAA,CAAA,CACA,CAAA,CACA,CACA,C,2ECrQA,SAAAsL,IACA,OAAAC,EAAAC,KAAAF,IAAA,CACA,CAhEA,IAGAG,EAAA,IAGAC,EAAA,kBAGAC,EAAA,aAGAC,EAAA,qBAGAC,EAAA,aAGAC,EAAA,cAGAC,EAAAC,SAGAC,EAAA,UAAA,OAAAC,GAAAA,GAAAA,EAAAC,SAAAA,QAAAD,EAGAE,EAAA,UAAA,OAAAC,MAAAA,MAAAA,KAAAF,SAAAA,QAAAE,KAGAd,EAAAU,GAAAG,GAAAE,SAAA,aAAA,EAAA,EAUAC,EAPAJ,OAAAK,UAOAC,SAGAC,EAAAC,KAAAC,IACAC,EAAAF,KAAAG,IA+NA,SAAAC,EAAAC,GACA,IAAA5J,EAAA,OAAA4J,EACA,OAAAA,IAAA,UAAA5J,GAAA,YAAAA,EACA,CA2EA,SAAA6J,EAAAD,GACA,GAAA,UAAA,OAAAA,EACA,OAAAA,EAEA,GA/BA,UAAA,OADAA,EAgCAA,IApDA,CAAA,EADAA,EAuBAA,IAtBA,UAAA,OAAAA,GAsBAT,EAAAlP,KAAA2P,CAAA,GAAAtB,EA+BA,OAAAD,EAjCA,IAoCAyB,EAGA,GAAA,UAAA,OAFAF,EAFAD,EAAAC,CAAA,EAEAD,EADAG,EAAA,YAAA,OAAAF,EAAAG,QAAAH,EAAAG,QAAA,EAAAH,CACA,EAAAE,EAAA,GAAAA,EAEAF,GACA,OAAA,IAAAA,EAAAA,EAAA,CAAAA,EAEAA,EAAAA,EAAAI,QAAAzB,EAAA,EAAA,EACA,IAAA0B,EAAAxB,EAAAyB,KAAAN,CAAA,EACA,OAAAK,GAAAvB,EAAAwB,KAAAN,CAAA,EACAjB,EAAAiB,EAAAO,MAAA,CAAA,EAAAF,EAAA,EAAA,CAAA,EACAzB,EAAA0B,KAAAN,CAAA,EAAAvB,EAAA,CAAAuB,CACA,CAEAxP,EAAAJ,QAtPA,SAAAoQ,EAAAC,EAAAtG,GACA,IAAAuG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,EAAA,CAAA,EAEA,GAAA,YAAA,OAAAX,EACA,MAAA,IAAAY,UArIA,qBAqIA,EAUA,SAAAC,EAAAC,GACA,IAAAC,EAAAb,EACAc,EAAAb,EAKA,OAHAD,EAAAC,EAAAhM,KAAAA,EACAqM,EAAAM,EACAT,EAAAL,EAAAiB,MAAAD,EAAAD,CAAA,CAEA,CAmBA,SAAAG,EAAAJ,GACA,IAAAK,EAAAL,EAAAP,EAMA,OAAApM,KAAAA,IAAAoM,GAAAN,GAAAkB,GACAA,EAAA,GAAAT,GAAAN,GANAU,EAAAN,CAOA,CAEA,SAAAY,IACA,IAjBAf,EAiBAS,EAAAhD,EAAA,EACA,GAAAoD,EAAAJ,CAAA,EACA,OAAAO,EAAAP,CAAA,EAGAR,EAAAhL,WAAA8L,GAtBAf,EAAAJ,IAHAa,EAyBAA,GAxBAP,GAIAG,EAAArB,EAAAgB,EAAAD,GAHAU,EAAAN,EAGA,EAAAH,EAoBA,CACA,CAEA,SAAAgB,EAAAP,GAKA,OAJAR,EAAAnM,KAAAA,EAIAwM,GAAAT,EACAW,EAAAC,CAAA,GAEAZ,EAAAC,EAAAhM,KAAAA,EACAkM,EACA,CAcA,SAAAiB,IACA,IAAAR,EAAAhD,EAAA,EACAyD,EAAAL,EAAAJ,CAAA,EAMA,GAJAZ,EAAAsB,UACArB,EAAA3N,KACA+N,EAAAO,EAEAS,EAAA,CACA,GAAApN,KAAAA,IAAAmM,EACA,OArEAE,EAFAM,EAuEAP,EAnEAD,EAAAhL,WAAA8L,EAAAnB,CAAA,EAEAQ,EAAAI,EAAAC,CAAA,EAAAT,EAmEA,GAAAK,EAGA,OADAJ,EAAAhL,WAAA8L,EAAAnB,CAAA,EACAY,EAAAN,CAAA,CAEA,CAIA,OAHApM,KAAAA,IAAAmM,IACAA,EAAAhL,WAAA8L,EAAAnB,CAAA,GAEAI,CACA,CAGA,OAxGAJ,EAAAR,EAAAQ,CAAA,GAAA,EACAV,EAAA5F,CAAA,IACA8G,EAAA,CAAA,CAAA9G,EAAA8G,QACAC,EAAA,YAAA/G,EACAyG,EAAAM,EAAAxB,EAAAO,EAAA9F,EAAAyG,OAAA,GAAA,EAAAH,CAAA,EAAAG,EACAO,EAAA,aAAAhH,EAAA,CAAA,CAAAA,EAAAgH,SAAAA,GAiGAW,EAAAG,OAnCA,WACAtN,KAAAA,IAAAmM,GACAnL,aAAAmL,CAAA,EAGAJ,EAAAK,EAAAJ,EAAAG,EAAAnM,KADAqM,EAAA,EAEA,EA8BAc,EAAAI,MA5BA,WACA,OAAAvN,KAAAA,IAAAmM,EAAAD,EAAAgB,EAAAvD,EAAA,CAAA,CACA,EA2BAwD,CACA,C,sJC3PA,aA2BA,SAAAK,EAAA5S,GAGA,IAUA6C,EAZA7C,EAAAqB,eAAA,EAEAwR,IAIAA,EAAA,CAAA,EAGA5P,EAAAH,WAAAgQ,uBAAAvN,KAAA,EAAA,EACAtC,EAAAH,WAAAiQ,qBAAAxN,KAAA,EAAA,EAEA1C,EAAAI,EAAAH,WAAAkQ,MAAAC,SAAA,EAEAhQ,EAAAH,WAAAkQ,MAAAE,MAAA,IAMAC,EAAA,IAAAC,UACAC,OAAApQ,EAAAH,WAAAwQ,OAAArR,KAAA,MAAA,EAAAgB,EAAAH,WAAAwQ,OAAA1P,IAAA,CAAA,EACAuP,EAAAE,OAAApQ,EAAAH,WAAAyQ,SAAAtR,KAAA,MAAA,EAAAgB,EAAAH,WAAAyQ,SAAAC,KAAA,SAAA,EAAA,WAAA,EAAA,EACAL,EAAAE,OAAApQ,EAAAH,WAAA2Q,WAAAxR,KAAA,MAAA,EAAA,WAAA,EAGAgB,EAAAH,WAAAkQ,MAAA1M,SAAA,kBAAA,EACAlD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAH,WAAAqC,OAAA,EAEAhC,EAAAuQ,KAAA,CACAC,IAAA1Q,EAAAH,WAAAkQ,MAAA/Q,KAAA,QAAA,EACAkG,OAAA,OACA7G,KAAA6R,EACAS,YAAA,CAAA,EACAC,YAAA,CAAA,CACA,CAAA,EACAC,KAAA,SAAAC,GAIA,IAQAC,EARA,GAFAnB,EAAA,CAAA,EAEA,CAAAkB,EAAAE,QAEA,OAAAF,EAAAG,UACArR,KAAAA,EAAAsR,WAAAJ,EAAAG,SAAA,GAKAF,EAAAD,EAAAK,SAAAhR,OAAAoC,UAAA6O,2BACApR,EAAAH,WAAAiQ,qBAAAxN,KAAAyO,CAAA,EAGA/Q,EAAAH,WAAAkQ,MAAA3M,YAAA,kBAAA,EAHApD,KAIAG,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAH,WAAAqC,OAAA,GAMAtC,EAAA8G,QAAA,EAGA1G,EAAAH,WAAAkQ,MAAAsB,OAAA,EACArR,EAAAH,WAAAgQ,uBAAAzM,YAAA,WAAA,EAAAd,KAAAwO,EAAAK,OAAA,EAEAhR,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAH,WAAAqC,OAAA,CACA,CAAA,EACAoP,KAAA,WAEA1B,EAAA,CAAA,EAGA5P,EAAAH,WAAAkQ,MAAA3M,YAAA,kBAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAH,WAAAqC,OAAA,EAGAlC,EAAAH,WAAAiQ,qBAAAxN,KAAAnC,OAAAoC,UAAA6O,0BAAA,CACA,CAAA,GA7DAxB,EAAA,CAAA,EA8DA,CAtGA,IAAA5P,EAAA,GACA4P,EAAA,CAAA,EA8GA5R,EAAAJ,QAAA8H,KAAA,WAxGA1F,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAAH,WAAA,GACAG,EAAAH,WAAA2R,aAAAxR,EAAAuR,UAAArS,KAAA,qBAAA,EACAc,EAAAH,WAAAkQ,MAAA/P,EAAAH,WAAA2R,aAAAtS,KAAA,uBAAA,EACAc,EAAAH,WAAAwQ,OAAArQ,EAAAH,WAAAkQ,MAAA7Q,KAAA,sBAAA,EACAc,EAAAH,WAAAyQ,SAAAtQ,EAAAH,WAAAkQ,MAAA7Q,KAAA,eAAA,EACAc,EAAAH,WAAA2Q,WAAAxQ,EAAAH,WAAAkQ,MAAA7Q,KAAA,QAAA,EACAc,EAAAH,WAAAgQ,uBAAA7P,EAAAH,WAAA2R,aAAAtS,KAAA,0BAAA,EACAc,EAAAH,WAAAiQ,qBAAA9P,EAAAH,WAAAkQ,MAAA7Q,KAAA,wBAAA,EACAc,EAAAH,WAAAqC,QAAAlC,EAAAH,WAAA2R,aAAAtS,KAAA,uBAAA,EA4FAc,EAAAH,WAAA2Q,WAAA/Q,GAAA,QAAAkQ,CAAA,CAMA,C,yBCtHA,aAmDA,SAAA8B,EAAA1U,GACAA,EAAAqB,eAAA,EAGA4B,EAAA0R,eAKAC,EAAA3R,EAAA0R,aAAAE,cAAA,EACA5R,EAAA0R,aAAAG,UAAA,EACA,GAEA7R,EAAA8R,OAAAjR,SAAA,gCAAA,EAAAF,IAAAgR,CAAA,EACA,CAyBA,SAAAI,EAAAhV,GACAA,EAAAqB,eAAA,EAGA4B,EAAAgS,eAIAhS,EAAAgS,aAAA,CAAA,EAGAhS,EAAA+P,MAAAE,MAAA,EAQAjQ,EAAAiS,iBAAAlO,MAAA,GAPA/D,EAAAgS,aAAA,CAAA,EACAE,EAAA,GAOA,CAMA,SAAAC,EAAAC,GACA,IAEAC,GAAAC,EAFAF,EAAAvR,SAAA,OAAA,GAEAyB,KAAA,EAAAsL,QAAA,IAAA,GAAA,GAAA,EAAA,IAEA0E,EAAAhQ,KAAA+P,CAAA,CACA,CAMA,SAAAE,EAAAH,GACA,IACAC,GAAAC,EADAF,EAAAvR,SAAA,OAAA,GACAyB,KAAA,EAAAsL,QAAA,IAAA,GAAA,GAAA,EAEA0E,EAAAhQ,KAAA+P,CAAA,CACA,CAjIA,IAAArS,EAAA,GACAkL,EAAA5N,EAAA,wBAAA,EAiEA4U,EAAA,WACA,IACAM,EAAAxS,EAAAJ,UAAA6S,UAAA3U,OAAAkC,EAAAJ,UAAA6S,UAAA,GAAA7N,QAAA,KACA8N,EAAAF,EAAAtS,EAAAsS,CAAA,EAAA/R,QAAA,eAAA,EAAA,KAGAiS,GAAA,GAAAA,EAAA5U,QAIAqC,OAAAwS,SAAA,CACAC,IAAAF,EAAAG,OAAA,EAAAD,IAVA,GAWAE,SAAA,QACA,CAAA,CACA,EAuDAC,EAAA,SAAAC,GACAhT,EAAAiT,OAAAC,KAAAtS,KAAA,SAAAiE,EAAAD,GACA,IAAAuO,EAAAjT,EAAA0E,CAAA,EAEAwO,EAAAJ,GAAAG,EAAAnU,KAAA,MAAA,GAAAgU,EAEAxF,EAAA4F,EAAAD,EAAAxS,IAAA,EAAA,IAIAyS,EACAjB,EAGAI,GAHAY,CAAA,EAOAA,EAAAnU,KAAA,WAAA,CAAA,CAAA,EAEAmU,EAAA/P,YAAA,iBAAA,EAEA+P,EAAAxS,IAAA6M,CAAA,EAAAtM,WAAA,SAAA,EAEAiS,EAAA1S,QAAA,YAAA,EAAA4C,SAAA,WAAA,CACA,CAAA,CACA,EA4BA,SAAAgQ,EAAAtW,GACAA,EAAAqB,eAAA,EAEA,IACAkV,EADApT,EAAAnD,EAAA+G,aAAA,EACAnD,IAAA,EACA4S,EAAAvT,EAAAiT,OAAA,IAAAK,GACAN,EAAAO,EAAAA,EAAAvU,KAAA,MAAA,EAAA,GAGA+T,EAAAC,CAAA,GA/BAQ,EAkCAF,OA5BAG,EAAA,CAAA,GAAAzT,EAAA0T,iBAAAC,QAAAH,CAAA,GAGArB,EAGAI,GAHAvS,EAAA4T,WAAA,EAMA5T,EAAA4T,YAAArD,KAAA,WAAAkD,CAAA,GAqBAF,GAEAA,EAAAvU,KAAA,WAAA,CAAA,CAAA,EAEAuU,EAAAlQ,SAAA,iBAAA,GAEAwQ,EAAAN,EAAA9S,QAAA,YAAA,GAEA2C,YAAA,WAAA,EACAjD,OAAA8F,SAAAnF,uBAAA+S,EAAA3U,KAAA,QAAA,CAAA,EAGAc,EAAAiT,OAAAa,OAAArT,QAAA,gBAAA,EAAA4C,SAAA,WAAA,GAIArD,EAAAiT,OAAAa,OAAArT,QAAA,gBAAA,EAAA2C,YAAA,WAAA,EAIApD,EAAAJ,UAAAqQ,MAAA,GACAjQ,EAAA+P,MAAAE,MAAA,CAEA,CAQA,SAAA8D,EAAAhX,GACAA,EAAAqB,eAAA,EAGA4B,EAAAJ,UAAAqQ,MAAA,GACAjQ,EAAA+P,MAAAE,MAAA,CAEA,CAyBAjS,EAAAJ,QAAA8H,KAAA,WAnQA1F,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAA+P,MAAA/P,EAAAuR,UAAArS,KAAA,kBAAA,EACAc,EAAAiS,iBAAAjS,EAAA+P,MAAA7Q,KAAA,sBAAA,EACAc,EAAAgU,gBAAAhU,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAA8R,OAAA9R,EAAA+P,MAAA7Q,KAAA,iBAAA,EACAc,EAAAiU,SAAAjU,EAAA+P,MAAA7Q,KAAA,oBAAA,EACAc,EAAA4T,YAAA5T,EAAA+P,MAAA7Q,KAAA,iBAAA,EACAc,EAAA0T,kBAAA1T,EAAA+P,MAAA/Q,KAAA,uBAAA,GAAA,IAAAkV,MAAA,GAAA,EAEAlU,EAAAiT,OAAA,CACAC,KAAAlT,EAAA+P,MAAA7Q,KAAA,6BAAA,EACAiV,IAAAnU,EAAA+P,MAAA7Q,KAAA,yBAAA,EACAkV,IAAApU,EAAA+P,MAAA7Q,KAAA,yBAAA,EACAmV,IAAArU,EAAA+P,MAAA7Q,KAAA,yBAAA,EACAoV,IAAAtU,EAAA+P,MAAA7Q,KAAA,yBAAA,EACA4U,OAAA9T,EAAA+P,MAAA7Q,KAAA,uBAAA,CACA,EAEAc,EAAA0R,aAAA,KAGA1R,EAAAuU,mBAAAvU,EAAA+P,MAAA/Q,KAAA,kBAAA,GAAA,GAGAgB,EAAAJ,UAAAI,EAAA+P,MAAAC,SAAA,EAEAhQ,EAAAgS,aAAA,CAAA,EAOAhS,EAAA0R,aAAAvR,OAAA8F,SAAAlG,WAAA2F,KAAA1F,EAAAiU,SAAAjU,EAAA8R,OAAA9R,EAAAuU,kBAAA,EA+MAvU,EAAAgU,gBAAAvU,GAAA,QAAAsS,CAAA,EACA/R,EAAA8R,OAAArS,GAAA,4BAAAgS,CAAA,EACAzR,EAAAiU,SAAAxU,GAAA,mBAAAyL,EAAAmI,EAAA,IAAA,CAAAjF,QAAA,GAAA,CAAA,CAAA,EACApO,EAAAiT,OAAAC,KAAAzT,GAAA,mBAAAyL,EAAA6I,EAAA,IAAA,CAAA3F,QAAA,GAAA,CAAA,CAAA,EAEApO,EAAAiU,SAAAxU,GAAA,SAAA,SAAA1C,GAEAmD,EAAAnD,EAAA+G,aAAA,EAAA5C,WAAA,SAAA,EAAAgF,QAAA,kBAAA,CACA,CAAA,EAEAlG,EAAAiT,OAAAC,KAAAzT,GAAA,SAAA,SAAA1C,GAEAmD,EAAAnD,EAAA+G,aAAA,EAAA5C,WAAA,SAAA,CACA,CAAA,EAGAlB,EAAAiU,SAAA/N,QAAA,QAAA,CAOA,C,mDClRA,aAuBA,SAAAsO,EAAAzX,GACAA,EAAAqB,eAAA,EAGAN,EADAoC,EAAAnD,EAAA8G,MAAA,EACAlD,IAAA,EAAA7C,OAEAkC,EAAA8G,UAAA2N,gBAAAnS,KAAAtC,EAAA8G,UAAA4N,kBAAA9G,QAAA,SAAA,IAAA9P,GAAAmP,SAAA,CAAA,CAAA,CACA,CAMA,SAAA0H,EAAA5X,GACAA,EAAAqB,eAAA,EAEA8B,EAAAnD,EAAA8G,MAAA,EAEAoM,MAAA,CACA,CAtCA,IAAAjQ,EAAA,GAqDAhC,EAAAJ,QAAA8H,KAAA,WA/CA1F,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAA8G,UAAA,GACA9G,EAAA8G,UAAAiJ,MAAA/P,EAAAuR,UAAArS,KAAA,oBAAA,EACAc,EAAA8G,UAAAuJ,OAAArQ,EAAA8G,UAAAiJ,MAAA7Q,KAAA,qBAAA,EACAc,EAAA8G,UAAA8N,MAAA5U,EAAA8G,UAAAiJ,MAAA7Q,KAAA,QAAA,EACAc,EAAA8G,UAAA2N,gBAAAzU,EAAA8G,UAAAiJ,MAAA7Q,KAAA,8BAAA,EACAc,EAAA8G,UAAA4N,kBAAA1U,EAAA8G,UAAA2N,gBAAAzV,KAAA,UAAA,EAgCAgB,EAAA8G,UAAAiJ,MAAAtQ,GAAA,WAAA,sCAAAkV,CAAA,EAEA3U,EAAA8G,UAAAiJ,MAAA7Q,KAAA,0BAAA,EAAAO,GAAA,mBAAAkV,CAAA,EACA3U,EAAA8G,UAAAiJ,MAAAtQ,GAAA,eAAA,uBAAA+U,CAAA,EAGAxU,EAAA8G,UAAAiJ,MAAA7Q,KAAA,sBAAA,EAAAgH,QAAA,QAAA,CAMA,C,yBC5DA,aAoBA,SAAA2O,EAAA9X,GAEA,IAKA+X,EACAC,EACAC,EAPA,SAAAjY,EAAA6G,OAAA,WAAA7G,EAAA6G,MAAA,IAAA7G,EAAAmB,SAAA,IAAAnB,EAAAmB,WAEAnB,EAAAqB,eAAA,EAEAmC,EAAAL,EAAAM,IAAA,EACAsU,EAAA5U,EAAAM,IAAA,EAAA6B,KAAA,gBAAA,EACA0S,EAAAxU,EAAAoB,IAAAmT,CAAA,EACAE,EAAAzU,EAAAmD,SAAA,QAAA,EAEA1D,EAAAiV,cAAA9V,IAAA4V,CAAA,EAAA/V,KAAA,gBAAA,OAAA,EACAgB,EAAAkV,aAAA/V,IAAA4V,CAAA,EAAA/V,KAAA,cAAA,MAAA,EACAgB,EAAAmV,aAAAhW,IAAA4V,CAAA,EAAA3R,YAAA,QAAA,EAEA2R,EAAArU,YAAA,QAAA,EACAH,EAAAvB,KAAA,gBAAAgW,EAAA,QAAA,MAAA,EACAF,EAAA9V,KAAA,cAAAgW,EAAA,OAAA,OAAA,EAEAhV,EAAAoV,MAAAC,QAAA,CACAC,UAAAR,EAAAjC,OAAA,EAAAD,IAAA5S,EAAAuV,UACA,EAAA,GAAA,EAEA,CAvCA,IAAAvV,EAAA,GA8DA,SAAAwV,IAjBAxV,EAAAiV,cAAAjW,KAAA,OAAA,KAAA,EAAAA,KAAA,WAAA,GAAA,EAAAA,KAAA,gBAAA,OAAA,EACAgB,EAAAkV,aAAAlW,KAAA,cAAA,MAAA,EAEAgB,EAAAiV,cAAArU,KAAA,SAAAiE,EAAAc,GACA,IAAApF,EAAAL,EAAAM,IAAA,EAEAD,EAAAvB,KAAA,gBAAA,UAAA6F,CAAA,EACAtE,EAAA8B,KAAA,gBAAA,EACArD,KAAA,OAAA,UAAA,EACAA,KAAA,KAAA,UAAA6F,CAAA,EACA7F,KAAA,cAAA,MAAA,CACA,CAAA,EASAgB,EAAAiV,cAAAxV,GAAA,gBAAAoV,CAAA,EAGA,EAAA1U,OAAAsV,SAAAC,KAAA5X,QACAkC,EAAA2V,YAAAzW,KAAAiB,OAAAsV,SAAAC,IAAA,EAAAxP,QAAA,OAAA,CAEA,CAEAlI,EAAAJ,QAAA8H,KAAA,WAtEA1F,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAAoV,MAAAlV,EAAA,YAAA,EACAF,EAAA2V,YAAA3V,EAAAuR,UAAArS,KAAA,cAAA,EACAc,EAAAmV,aAAAnV,EAAA2V,YAAAzW,KAAA,iCAAA,EACAc,EAAAiV,cAAAjV,EAAA2V,YAAAzW,KAAA,iBAAA,EACAc,EAAAkV,aAAAlV,EAAA2V,YAAAzW,KAAA,gBAAA,EACAc,EAAAuV,WAAA/I,SAAAtM,EAAAC,MAAA,EAAAyV,OAAA,EAAA,EAAA,EAAA,EAkEAJ,EAAA,CACA,C,0BChFA,aAiDA,SAAAK,EAAAC,EAAAC,EAAAC,EAAAC,GACA9V,OAAA+V,cAAA,CACAF,OAAAA,EACAF,UAAAA,EACAC,YAAAA,EACAE,aAAA,EACA,EACA9V,OAAA+V,cAAAD,aAAAD,GAAAC,EAEAE,EAAA,IAAAhW,OAAAiW,cAAAjW,OAAA+V,aAAA,EAoBA/V,OAAAkW,UAAA,CAAA,EACAlW,OAAAmW,UAAAH,EAAAI,OAAA,OAAA,CACA3S,KAAA,OACA4S,cAAA,CAAA,EACAC,mBAAA,CAAA,EACAC,WAAA,CAAA,OAAA,KAAA,QACAC,mBAAA,CAAA,EAGAC,WAAA,CACAC,KAAA7W,EAAA8W,aAAAd,OACAe,oBAAA,CACAhS,MAAA/E,EAAA8W,aAAAE,OAAAC,UACA,EACAC,sBAAA,CACAnS,MAAA/E,EAAA8W,aAAAE,OAAAG,YACA,CACA,EACAC,aAAA,CACAC,WAAArX,EAAA8W,aAAAM,aAAAC,WACAC,oBAAA,sBACAP,oBAAA,QACAG,sBAAA,KACA,EACAK,SAAA,SAAAxV,GAEA5B,OAAAkW,UAAAtU,EAAAyV,QACArX,OAAAsX,aAAA1V,EAAA1D,KAAAqZ,mBACA1X,EAAA2X,aAAAhX,IAAA4J,KAAAmB,UAAA3J,EAAA1D,KAAAuZ,WAAA,CAAA,CACA,EACAC,QAAA,SAAA9V,GACA5B,OAAA2X,eAAA/V,EAAAgW,KACA,EACAC,aAAA,SAAA3Z,GACAA,EAAA4Z,SAKA,CACA,CAAA,EAEA9X,OAAAmW,UAAA4B,MAAAlY,EAAAmY,MAAAC,IAAA,CAAA,CAAA,CACA,CA1GA,IAAApY,EAAA,GA4IAhC,EAAAJ,QAAA8H,KAAA,SAAA2S,GACAC,IA7BAC,EAzGAvY,EAAAqY,iBAAAA,EACArY,EAAAmY,MAAAnY,EAAAqY,iBAAAnZ,KAAA,OAAA,EACAc,EAAA2X,aAAA3X,EAAAqY,iBAAAnZ,KAAA,kCAAA,EAGAsZ,EAAAxY,EAAAqY,iBAAAnZ,KAAA,sBAAA,EAAAF,KAAA,oBAAA,GAAA,KAaAgB,EAAA8W,aAAAvM,KAAAC,MAAAgO,CAAA,GAuFAD,EAAAhR,SAAAkR,cAAA,QAAA,GACAC,IAAA1Y,EAAA8W,aAAA6B,YACAJ,EAAA3U,KAAA,kBAGA5D,EAAAqY,iBAAAD,IAAA,CAAA,EAAAQ,YAAAL,CAAA,EAIAA,EAAAM,WACAN,EAAAO,mBAAA,WACA,UAAAP,EAAAM,YACA,YAAAN,EAAAM,aACAN,EAAAO,mBAAA,KAEAjD,EAAA7V,EAAA8W,aAAAhB,UAAA9V,EAAA8W,aAAAf,YAAA/V,EAAA8W,aAAAd,OAAAhW,EAAA8W,aAAAb,YAAA,EAEA,EAIAsC,EAAAQ,OAAA,WAEAlD,EAAA7V,EAAA8W,aAAAhB,UAAA9V,EAAA8W,aAAAf,YAAA/V,EAAA8W,aAAAd,OAAAhW,EAAA8W,aAAAb,YAAA,CACA,CAOA,C,0BC9JA,aAmBA,SAAA+C,IAEA7Y,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAkC,OAAA,CACA,CAlBA,IAAAlC,EAAA,GAmDAhC,EAAAJ,QAAA8H,KAAA,WA5BA,IAEAuT,EAnBAjZ,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAAqY,iBAAArY,EAAAuR,UAAArS,KAAA,sBAAA,EACAc,EAAAkZ,QAAAlZ,EAAAqY,iBAAAnZ,KAAA,mBAAA,EACAc,EAAAkC,QAAAlC,EAAAqY,iBAAAnZ,KAAA,qBAAA,GAgBA+Z,EAAA9Y,OAAAkH,YAAAzD,QAQA,SAAAqV,EACA3b,EAAA,SAAA,EAAAoI,KAAA1F,EAAAqY,gBAAA,EAEA,SAAAY,EACA3b,EAAA,SAAA,EAAAoI,KAAA1F,EAAAqY,gBAAA,EAEA,SAAAY,GACA3b,EAAA,SAAA,EAAAoI,KAAA1F,EAAAqY,gBAAA,EAIAlY,OAAA8F,SAAA7F,mBAAAF,EAAA,mBAAA,CAAA,EAGAF,EAAAkZ,QAAAzZ,GAAA,QAAAuZ,CAAA,EAOA,C,gEC1DA,aA2BA,SAAAG,EAAApc,GACAA,EAAAqB,eAAA,EAEA,IAAAoZ,EAAA,CAAA,EAqBA4B,GAlBAC,EAAA,EAGArZ,EAAAsZ,QAAAlW,YAAA,cAAA,EACApD,EAAAuZ,cAAAjX,KAAA,EAAA,EAGAtC,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA1M,SAAA,kBAAA,EACAlD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAyZ,oBAAA,EAGAzZ,EAAA+P,MAAAE,MAAA,IACAuH,EAAA,CAAA,GAGAxX,EAAA0Z,cAAAta,OAAA,UAAA,EAAAuB,IAAA,GACAgZ,EAAA3Z,EAAA4Z,YAAAjZ,IAAA,EACAyY,GAAAO,KAKAE,EAAA,IACA7Z,EAAA4Z,YAAA5a,KAAA,MAAA,GAAAmB,OAAAoC,UAAAuX,gBACA9Z,EAAAJ,UAAAsR,WAAA2I,CAAA,EACA7Z,EAAAsZ,QAAAjW,SAAA,cAAA,EAEAmU,EAAA,CAAA,GAGAA,GAWAuC,EAAA/Z,EAAA+P,MAAA/Q,KAAA,QAAA,GACAkR,EAAA,IAAAC,SAAAnQ,EAAA+P,MAAAqI,IAAA,CAAA,CAAA,GAEAhI,OAAApQ,EAAAwZ,QAAAxa,KAAA,MAAA,EAAA,QAAA,EAEAkB,EAAAuQ,KAAA,CACAC,IAAAqJ,EACA7U,OAAA,OACA7G,KAAA6R,EACAS,YAAA,CAAA,EACAC,YAAA,CAAA,CACA,CAAA,EACAC,KAAA,SAAAC,GACA,IAeAC,EAfA,GAAA,CAAAD,EAAAE,SAAA,CAAAF,EAAAkJ,YASA,OAPAha,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA3M,YAAA,kBAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAyZ,oBAAA,EAGA3I,EAAAG,UACAjR,KAAAA,EAAAJ,UAAAsR,WAAAJ,EAAAG,SAAA,GAKAF,EAAAD,EAAAK,SAAAhR,OAAAoC,UAAA6O,2BACApR,KAAAA,EAAAuZ,cAAAjX,KAAAyO,CAAA,GAKA5Q,OAAAsV,SAAAwE,KAAAnJ,EAAAkJ,WACA,CAAA,EACA1I,KAAA,WAEAtR,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA3M,YAAA,kBAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAyZ,oBAAA,EAGAzZ,EAAAuZ,cAAAjX,KAAAnC,OAAAoC,UAAA2X,eAAA,CACA,CAAA,IAvDAla,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA3M,YAAA,kBAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAyZ,oBAAA,EAoDA,CAOA,SAAAU,EAAApd,GA4BA,OA1BAiD,EAAA0Z,cAAAnJ,KAAA,UAAA,CAAA,CAAA,EAGAvQ,EAAA4Z,YAAA3J,MAAA,GAAA,CAAAjQ,EAAAoa,cACApa,EAAAsZ,QAAAlW,YAAA,cAAA,EAIAiX,EAAAtd,EAAAmB,QAcA,CAAA,EAAA,CAAA,IAAA,IAAA,KAAAyV,QAAA0G,CAAA,GACAra,EAAA4Z,YAAA1T,QAAA,cAAA,EAGA,CAAA,IAjBA,CACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IAQAyN,QAAA0G,CAAA,CACA,CAMA,SAAAC,EAAAvd,GACAA,EAAAqB,eAAA,EAGA4B,EAAA4Z,YAAAjZ,IAAA,EAAA,EAEA,IAAAkZ,EAAA,GACAA,EAAA7Z,EAAA4Z,YAAA5a,KAAA,MAAA,GAAA,GACAgB,EAAAJ,UAAAsR,WAAA2I,CAAA,EACA7Z,EAAAsZ,QAAAlW,YAAA,cAAA,EAGApD,EAAA0Z,cAAAnJ,KAAA,UAAA,CAAA,CAAA,EAGArQ,EAAAnD,EAAA+G,aAAA,EAAAyM,KAAA,UAAA,CAAA,CAAA,CACA,CAUA,SAAAgK,IAEAva,EAAAoa,eAIApa,EAAAoa,aAAA,CAAA,EAEApa,EAAAwa,cAAApX,YAAA,QAAA,EACApD,EAAAsZ,QAAAjW,SAAA,cAAA,EAEAC,WAAA,WACA+V,EAAA,CACA,EAAA,GAAA,EACA,CA1MA,IAAArZ,EAAA,GAoLAqZ,EAAA,WACArZ,EAAAoa,eACApa,EAAAoa,aAAA,CAAA,EACApa,EAAAwa,cAAAnX,SAAA,QAAA,EACArD,EAAAsZ,QAAAlW,YAAA,cAAA,EAEA,EAkCApF,EAAAJ,QAAA8H,KAAA,SAAA2S,GArNArY,EAAAqY,iBAsNAA,EArNArY,EAAA+P,MAAA/P,EAAAqY,iBAAAnZ,KAAA,oBAAA,EACAc,EAAA0Z,cAAA1Z,EAAA+P,MAAA7Q,KAAA,2BAAA,EACAc,EAAA4Z,YAAA5Z,EAAA+P,MAAA7Q,KAAA,yBAAA,EACAc,EAAAwZ,QAAAxZ,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAAuZ,cAAAvZ,EAAAqY,iBAAAnZ,KAAA,mBAAA,EACAc,EAAAsZ,QAAAtZ,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAAyZ,qBAAAzZ,EAAAqY,iBAAAnZ,KAAA,2BAAA,EACAc,EAAAwa,cAAAxa,EAAA+P,MAAA7Q,KAAA,mBAAA,EAGAc,EAAAJ,UAAAI,EAAA+P,MAAAC,SAAA,EAEAhQ,EAAAoa,aAAA,CAAA,EA4LApa,EAAAwZ,QAAA/Z,GAAA,QAAA0Z,CAAA,EAGAnZ,EAAA4Z,YAAAna,GAAA,UAAA0a,CAAA,EACAna,EAAA4Z,YAAAna,GAAA,eAAA8a,CAAA,EAEAva,EAAA0Z,cAAAja,GAAA,SAAA6a,CAAA,EAGAta,EAAA4Z,YAAA3J,MAAA,CAMA,C,0BCnOA,aAuCA,SAAAkJ,EAAApc,GAUA,IAOAmT,EAhBAnT,EAAAqB,eAAA,EAGA4B,EAAAuZ,cAAAjX,KAAA,EAAA,EAGAtC,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAAE,MAAA,GAMA8J,EAAA/Z,EAAA+P,MAAA/Q,KAAA,QAAA,GACAkR,EAAA,IAAAC,SAAAnQ,EAAA+P,MAAAqI,IAAA,CAAA,CAAA,GAEAhI,OAAApQ,EAAAwZ,QAAAxa,KAAA,MAAA,EAAA,QAAA,EAEAgB,EAAA+P,MAAA1M,SAAA,kBAAA,EACAlD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAya,oBAAA,EAEAva,EAAAuQ,KAAA,CACAC,IAAAqJ,EACA7U,OAAA,OACA7G,KAAA6R,EACAS,YAAA,CAAA,EACAC,YAAA,CAAA,CACA,CAAA,EACAC,KAAA,SAAAC,GACA,IAeAC,EAfA,GAAA,CAAAD,EAAAE,SAAA,CAAAF,EAAAkJ,YASA,OAPAha,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA3M,YAAA,kBAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAya,oBAAA,EAGA3J,EAAAG,UACAjR,KAAAA,EAAAJ,UAAAsR,WAAAJ,EAAAG,SAAA,GAKAF,EAAAD,EAAAK,SAAAhR,OAAAoC,UAAA6O,2BACApR,KAAAA,EAAAuZ,cAAAjX,KAAAyO,CAAA,GAKA5Q,OAAAsV,SAAAwE,KAAAnJ,EAAAkJ,WACA,CAAA,EACA1I,KAAA,WAEAtR,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAgB,EAAA+P,MAAA3M,YAAA,+CAAA,EACAjD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAya,oBAAA,EAGAza,EAAAuZ,cAAAjX,KAAAnC,OAAAoC,UAAA2X,eAAA,CACA,CAAA,GArDAla,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,CAsDA,CA6DA,SAAAqU,EAAAtW,GACAA,EAAAqB,eAAA,EAEA,IACAkV,EADApT,EAAAnD,EAAA+G,aAAA,EACAnD,IAAA,EACA4S,EAAAvT,EAAAiT,OAAA,IAAAK,GACAN,EAAAO,EAAAA,EAAAvU,KAAA,MAAA,EAAA,GAGA+T,EAAAC,CAAA,EAEAO,GAEAA,EAAAvU,KAAA,WAAA,CAAA,CAAA,EAEAuU,EAAAlQ,SAAA,iBAAA,GAEAwQ,EAAAN,EAAA9S,QAAA,YAAA,GAEA2C,YAAA,WAAA,EACAjD,OAAA8F,SAAAnF,uBAAA+S,EAAA3U,KAAA,QAAA,CAAA,EAGAc,EAAAiT,OAAAa,OAAArT,QAAA,gBAAA,EAAA4C,SAAA,WAAA,GAIArD,EAAAiT,OAAAa,OAAArT,QAAA,gBAAA,EAAA2C,YAAA,WAAA,EAIA,CAAA,EAAApD,EAAA0a,yBAAA/G,QAAAL,CAAA,GACAnB,EAAAnS,EAAA2a,QAAA,EACA3a,EAAA2a,SAAA3b,KAAA,WAAA,CAAA,CAAA,IAGAuT,EAAAvS,EAAA2a,QAAA,EACA3a,EAAA2a,SAAA3b,KAAA,WAAA,CAAA,CAAA,GAIAgB,EAAAJ,UAAAqQ,MAAA,GACAjQ,EAAA+P,MAAAE,MAAA,CAEA,CAQA,SAAA8D,EAAAhX,GACAA,EAAAqB,eAAA,EAGA4B,EAAAJ,UAAAqQ,MAAA,GACAjQ,EAAA+P,MAAAE,MAAA,CAEA,CA7NA,IAAAjQ,EAAA,GACAkL,EAAA5N,EAAA,2BAAA,EA0GA6U,EAAA,SAAAC,GACA,IAAAE,EAAAF,EAAAvR,SAAA,OAAA,EAEAwR,EAAAC,EAAAhQ,KAAA,EAAAsL,QAAA,IAAA,GAAA,GAAA,EAAA,IAEA0E,EAAAhQ,KAAA+P,CAAA,CACA,EAMAE,EAAA,SAAAH,GACA,IAAAE,EAAAF,EAAAvR,SAAA,OAAA,EACAwR,EAAAC,EAAAhQ,KAAA,EAAAsL,QAAA,IAAA,GAAA,GAAA,EAEA0E,EAAAhQ,KAAA+P,CAAA,CACA,EAMAU,EAAA,SAAAC,GACAhT,EAAAiT,OAAAC,KAAAtS,KAAA,SAAAiE,EAAAD,GACA,IAAAuO,EAAAjT,EAAA0E,CAAA,EAEAwO,EAAAJ,GAAAG,EAAAnU,KAAA,MAAA,GAAAgU,EAEAxF,EAAA4F,EAAAD,EAAAxS,IAAA,EAAA,IAIAyS,EACAjB,EAGAI,GAHAY,CAAA,EAOAA,EAAAnU,KAAA,WAAA,CAAA,CAAA,EAEAmU,EAAA/P,YAAA,iBAAA,EAEA+P,EAAAxS,IAAA6M,CAAA,EAAAtM,WAAA,SAAA,EAEAiS,EAAA1S,QAAA,YAAA,EAAA4C,SAAA,WAAA,CACA,CAAA,CACA,EAyFArF,EAAAJ,QAAA8H,KAAA,SAAA2S,GA9OAA,EA+OAA,EA9OArY,EAAAqY,iBAAAA,EACArY,EAAA+P,MAAA/P,EAAAqY,iBAAAnZ,KAAA,oBAAA,EACAc,EAAA2a,SAAA3a,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAAiU,SAAAjU,EAAA+P,MAAA7Q,KAAA,sBAAA,EACAc,EAAAwZ,QAAAxZ,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAAuZ,cAAAlB,EAAAnZ,KAAA,mBAAA,EACAc,EAAAya,qBAAAza,EAAAqY,iBAAAnZ,KAAA,2BAAA,EAEAc,EAAAiT,OAAA,CACAC,KAAAlT,EAAA+P,MAAA7Q,KAAA,0BAAA,EACAiV,IAAAnU,EAAA+P,MAAA7Q,KAAA,sBAAA,EACAkV,IAAApU,EAAA+P,MAAA7Q,KAAA,sBAAA,EACAmV,IAAArU,EAAA+P,MAAA7Q,KAAA,sBAAA,EACAoV,IAAAtU,EAAA+P,MAAA7Q,KAAA,sBAAA,EACA4U,OAAA9T,EAAA+P,MAAA7Q,KAAA,oBAAA,CACA,EAEAc,EAAA0a,0BAAA1a,EAAA+P,MAAA/Q,KAAA,wBAAA,GAAA,IAAAkV,MAAA,GAAA,EAGAlU,EAAAJ,UAAAI,EAAA+P,MAAAC,SAAA,EAuMAhQ,EAAAwZ,QAAA/Z,GAAA,QAAA0Z,CAAA,EACAnZ,EAAAiU,SAAAxU,GAAA,mBAAAyL,EAAAmI,EAAA,IAAA,CAAAjF,QAAA,GAAA,CAAA,CAAA,EACApO,EAAAiT,OAAAC,KAAAzT,GAAA,mBAAAyL,EAAA6I,EAAA,IAAA,CAAA3F,QAAA,GAAA,CAAA,CAAA,EAEApO,EAAAiU,SAAAxU,GAAA,SAAA,SAAA1C,GAEAmD,EAAAnD,EAAA+G,aAAA,EAAA5C,WAAA,SAAA,EAAAgF,QAAA,kBAAA,CACA,CAAA,EAEAlG,EAAAiT,OAAAC,KAAAzT,GAAA,SAAA,SAAA1C,GAEAmD,EAAAnD,EAAA+G,aAAA,EAAA5C,WAAA,SAAA,CACA,CAAA,EAGAlB,EAAAiU,SAAA/N,QAAA,QAAA,CAMA,C,uDC5PA,aAyDA,SAAAiT,EAAApc,GACAA,EAAAqB,eAAA,EAGA4B,EAAAuZ,cAAAjX,KAAA,EAAA,EACAtC,EAAA+P,MAAA3M,YAAA,qBAAA,EAGApD,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAGAmB,OAAAmW,UAAAkB,SAQAoD,EAAAza,OAAAmW,SAAA,EAGAtW,EAAA+P,MAAA1M,SAAA,4CAAA,EACAlD,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAA6a,oBAAA,EAGA7a,EAAA+P,MAAA+K,OAAA,IAbA9a,EAAAwZ,QAAAxa,KAAA,WAAA,CAAA,CAAA,EAEAmB,OAAAmW,UAAAyE,eAAA,EAYA,CAhFA,IAAAC,EAAA1d,EAAA,eAAA,EACA0C,EAAA,GAuCA4a,EAAA,SAAAK,GACAjb,EAAAkb,WAAAC,MAAAxa,IAAAR,OAAA2X,cAAA,EACA9X,EAAAkb,WAAAE,OAAAza,IAAAsa,EAAAlZ,MAAA1D,KAAAgZ,UAAA,EACArX,EAAAkb,WAAAG,QAAA1a,IAAAsa,EAAAlZ,MAAA1D,KAAAiZ,mBAAA,EACAtX,EAAAkb,WAAAI,OAAA3a,IAAAsa,EAAAlZ,MAAA1D,KAAAkd,oBAAA,EACAvb,EAAAkb,WAAAM,MAAA7a,IAAAsa,EAAAlZ,MAAA1D,KAAAod,mBAAA,EACAzb,EAAAkb,WAAAQ,cAAA/a,IAAAsa,EAAAlZ,MAAA1D,KAAA6Y,qBAAA,CACA,EA0CAlZ,EAAAJ,QAAA8H,KAAA,SAAA2S,GAlFA,IAAAA,EAAAA,EAmFAA,EAlFArY,EAAAqY,iBAAAA,EACArY,EAAA+P,MAAA/P,EAAAqY,iBAAAnZ,KAAA,oBAAA,EACAc,EAAAwZ,QAAAxZ,EAAA+P,MAAA7Q,KAAA,qBAAA,EACAc,EAAAuZ,cAAAlB,EAAAnZ,KAAA,mBAAA,EACAc,EAAA6a,qBAAA7a,EAAAqY,iBAAAnZ,KAAA,2BAAA,EAEAc,EAAAkb,WAAA,CACAC,MAAAnb,EAAA+P,MAAA7Q,KAAA,oCAAA,EACAkc,OAAApb,EAAA+P,MAAA7Q,KAAA,qCAAA,EACAmc,QAAArb,EAAA+P,MAAA7Q,KAAA,+CAAA,EACAoc,OAAAtb,EAAA+P,MAAA7Q,KAAA,gDAAA,EACAsc,MAAAxb,EAAA+P,MAAA7Q,KAAA,+CAAA,EACAwc,cAAA1b,EAAA+P,MAAA7Q,KAAA,iDAAA,CACA,EAOAc,EAAAkb,WAAAC,MAAAxa,IAAA,EAAA,EACAX,EAAAkb,WAAAE,OAAAza,IAAA,EAAA,EACAX,EAAAkb,WAAAG,QAAA1a,IAAA,EAAA,EACAX,EAAAkb,WAAAI,OAAA3a,IAAA,EAAA,EACAX,EAAAkb,WAAAM,MAAA7a,IAAA,EAAA,EACAX,EAAAkb,WAAAQ,cAAA/a,IAAA,EAAA,EA2DAqa,EAAAtV,KAAA2S,CAAA,EANArY,EAAAwZ,QAAA/Z,GAAA,QAAA0Z,CAAA,CAQA,C,4CClGA,aAuBA,SAAAwC,EAAAC,GACAA,EAAAxd,eAAA,EAEA,IAAAmC,EAAAL,EAAA0b,EAAA9X,aAAA,EAQA+X,GALA7b,EAAA8b,cAAA3c,IAAAoB,CAAA,EAAA6C,YAAA,UAAA,EAGA7C,EAAAG,YAAA,UAAA,EAEAH,EAAAmD,SAAA,UAAA,GACAgN,EAAAnQ,EAAAvB,KAAA,MAAA,EACA+c,EAAAF,EAAAtb,EAAAvB,KAAA,eAAA,EAAA,KAGAmB,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAkC,OAAA,EAEAhC,EAAAuQ,KAAA,CACAC,IAAAA,EACArS,KAAA,CACA0d,SAAAA,CACA,CACA,CAAA,EACAC,KAAA,SAAAlL,GAEA+K,EACA7b,EAAAic,oBAAA5Y,SAAA,QAAA,EAGArD,EAAAic,oBAAA7Y,YAAA,QAAA,EAIApD,EAAAkc,cAAA5Z,KAAAwO,CAAA,EAGA9Q,EAAAmc,UAAAnc,EAAAkc,cAAAhd,KAAA,uBAAA,EAGAiB,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAkC,OAAA,CACA,CAAA,CACA,CAMA,SAAAka,EAAAR,GACAA,EAAAxd,eAAA,EAEAmC,EAAAL,EAAA0b,EAAA9X,aAAA,EAGA3D,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAqc,WAAA,EAEAnc,EAAAuQ,KAAA,CACAC,IAAAnQ,EAAAvB,KAAA,MAAA,CACA,CAAA,EACAgd,KAAA,SAAAlL,GAEA9Q,EAAAmc,WAAAnc,EAAAmc,UAAAre,QACAkC,EAAAmc,UAAA9K,OAAA,EAIArR,EAAAkc,cAAA9L,OAAAU,CAAA,EAGA9Q,EAAAmc,UAAAnc,EAAAkc,cAAAhd,KAAA,uBAAA,EAGAiB,OAAA8F,SAAAnE,OAAA,CAAA,EAAA,CAAA,EAAA9B,EAAAqc,WAAA,CACA,CAAA,CACA,CA7FA,IAAArc,EAAA,GAuGAhC,EAAAJ,QAAA8H,KAAA,WAjGA1F,EAAAuR,UAAArR,EAAAqH,QAAA,EACAvH,EAAA8b,cAAA9b,EAAAuR,UAAArS,KAAA,iBAAA,EACAc,EAAAic,oBAAAjc,EAAAuR,UAAArS,KAAA,wBAAA,EACAc,EAAAkc,cAAAlc,EAAAuR,UAAArS,KAAA,mBAAA,EACAc,EAAAmc,UAAAnc,EAAAkc,cAAAhd,KAAA,uBAAA,EACAc,EAAAkC,QAAAlC,EAAAuR,UAAArS,KAAA,qBAAA,EACAc,EAAAqc,YAAArc,EAAAuR,UAAArS,KAAA,0BAAA,EAuFAc,EAAA8b,cAAArc,GAAA,QAAAkc,CAAA,EACA3b,EAAAkc,cAAAzc,GAAA,QAAA,wBAAA2c,CAAA,CAMA,C,0BC9GA,aAIA,IAAAE,EAAA,CAAA,EACAC,EAAA,CAAA,EA0FA3e,EAAA8H,KArFA,SAAAuO,EAAAnC,EAAA0K,GAQA,IAAAC,EAAAjJ,EAAAkJ,EA+BAC,EACAC,EA7BA,GAVAN,IACAnc,OAAA0c,oBAAAP,UAAA,WAAAnc,OAAAsV,SAAAqH,KAAA3c,OAAA4c,KAAAC,iBAAA,EAAAhB,KAAA,WACAlK,EAAA5L,QAAA,oBAAA,CACA,CAAA,EACAoW,EAAA,CAAA,GAMAxK,CAAAA,EAAA5N,OAAA,EAAAR,SAAA,KAAA,EAwCA,OA7BA6Y,IACAU,EAAA9c,OAAA0c,oBAAAK,eAAA,EACAhd,EAAAU,KAAAqc,EAAA,SAAA9f,EAAAggB,GACA,IAEAC,EAFAC,EAAAnd,EAAAod,KAAArJ,EAAA/U,KAAA,iBAAAie,EAAAI,KAAAC,YAAA,EAAA,IAAA,EAAArZ,KAAA,CAAA,EACA,OAAAkZ,GAAA,KAAAA,GACAD,EAAAD,EAAA9Y,KAAA6P,MAAA,GAAA,EACAiJ,EAAA9Y,KAAAgZ,GAAA,GAAAD,EAAAtf,OAAA,KAAAsf,EAAA,GAAAI,YAAA,EAAA,KAGAL,EAAA9Y,KAAA8Y,EAAA9Y,KAAAmZ,YAAA,CAEA,CAAA,EAEAjB,EAAA,CAAA,GAIAI,EAAA,IAGAC,GAJAA,EAAA3I,EAAAtT,IAAA,GAAA6b,GAEAI,EAAAa,YAAA,EAAA,KAGAd,EAAAe,KAAAd,CAAA,EAIA,MAAAA,GAAA,MAAAA,IACAA,EAAA,MAGA,EAAA9K,EAAAhU,SAEA2e,EAAAtc,OAAAwd,aAAA7L,EAAA,GAAA,CACA8L,cAAA,CAAA,EACAC,gBAAA,aACAjB,eAAAA,EACAkB,aAAA,CAAA,EACAnB,mBAAAA,EACAoB,YAAA,SAAAC,GACA,MAAA,CACAtB,MAAAsB,CACA,CACA,CACA,CAAA,GACAC,QAAAjC,KAAA,WACAlK,EAAA5N,OAAA,EAAAR,SAAA,KAAA,GACAoO,EAAA9S,KAAA,OAAA,SAAA7B,EAAA6B,GAAA,OAAAA,EAAA,UAAA,CAAA,EAGAiV,EAAAxU,GAAA,0BAAA,WACA+T,EAAAS,EAAAtT,IAAA,EACA+b,EAAAxc,EAAAod,KAAAxL,EAAAnR,IAAA,CAAA,EACA,KAAA6S,GAAA,KAAAkJ,GACAD,EAAAyB,WAAA1K,EAAAiK,YAAA,CAAA,CAEA,CAAA,EAEA3L,EAAAqM,MAAA,MAAA,CAAAC,UAAA,EAAA,CAAA,CACA,CAAA,EAEA3B,GA9BA,KAAA,EAtCAA,EAAAtc,OAAA0c,oBAAAwB,YAAAvM,EAAA,EAAA,EACA0B,EAAAS,EAAAtT,IAAA,GAAA6b,EACAE,EAAAxc,EAAAod,KAAAxL,EAAAnR,IAAA,CAAA,EACA,OAAA6S,GAAA,KAAAA,GAAA,KAAAkJ,GACAD,EAAAyB,WAAA1K,EAAAiK,YAAA,CAAA,CAkEA,C,0BC7FA,aAOA,IAAAa,EAAApe,EAAAN,UAAA0e,SAEAA,EAAAC,WAAA,mBACAD,EAAA9L,aAAA,OACA8L,EAAAE,OAAA,gCACAF,EAAAG,eAAA,SAAA9X,EAAA/B,GACA8Z,EAAAxe,EAAA0E,CAAA,EAAAnE,QAAA,gBAAA,EACAie,EAAAxf,KAAA,uBAAA,EAAAmS,OAAA,EACAqN,EAAAtO,OAAAzJ,CAAA,CACA,EACA2X,EAAAK,UAAA,SAAA/Z,GACA,IAAAwN,EAAAlS,EAAA0E,CAAA,EACAga,EAAAxM,EAAA3R,QAAA,gBAAA,EACAoe,EAAAD,EAAA1f,KAAA,6BAAA,EAEAkT,EAAApT,KAAA,gBAAA,IACAoT,EAAAzR,IAAA,GAAAyR,EAAApT,KAAA,aAAA,IACA4f,EAAA1f,KAAA,wBAAA,EAAAmS,OAAA,EACAuN,EAAAvb,SAAA,cAAA,GAGAub,EAAAxb,YAAA,gBAAA,EACAyb,EAAA7f,KAAA,cAAA,MAAA,EAEA,EACAsf,EAAAQ,YAAA,SAAAla,GACA,IAAAwN,EAAAlS,EAAA0E,CAAA,EACAga,EAAAxM,EAAA3R,QAAA,gBAAA,EACAoe,EAAAD,EAAA1f,KAAA,6BAAA,EAEAkT,EAAApT,KAAA,gBAAA,IACA4f,EAAAxb,YAAA,cAAA,EACAwb,EAAA1f,KAAA,wBAAA,EAAAmS,OAAA,EACAuN,EAAA1f,KAAA,uBAAA,EAAAmS,OAAA,EAEAuN,EAAAlb,SAAA,uBAAA,IACA0O,EAAAzR,IAAA,GAAAyR,EAAApT,KAAA,aAAA,IACA4f,EAAAvb,SAAA,gBAAA,EACAwb,EAAA7f,KAAA,cAAA,OAAA,EAIA,EAKAkB,EAAAN,UAAAmf,UAAA,MAAA,SAAAvR,GAEA,MAAA,CADA,IAAAwR,OAAA7e,OAAAoC,UAAA0c,iBAAA,IAAA,EACAnR,KAAAN,CAAA,CACA,EAAArN,OAAAoC,UAAA2c,sBAAA,EAKAhf,EAAAN,UAAAmf,UAAA,QAAA,SAAAvR,EAAA7H,GACAzF,EAAAN,UAAAuf,SAAAC,MAAAzZ,EAAA0Z,QAAAC,UAAA,GACAC,EAAA5Z,EAAA0Z,QAAAG,OAGA,OAFA,IAAAR,OAAAO,CAAA,EAEAzR,KAAAN,CAAA,CACA,EAAA,EAAA,EAKAtN,EAAAN,UAAAmf,UAAA,UAAA,SAAAvR,EAAA7H,GACAzF,EAAAN,UAAAuf,SAAAI,QAAA5Z,EAAA0Z,QAAAC,UAAA,GACAC,EAAA5Z,EAAA0Z,QAAAG,OAIA,OAHA,IAAAR,OAAAO,CAAA,EACAzR,KAAAN,CAAA,CAGA,EAAA,EAAA,EAKAtN,EAAAN,UAAAmf,UAAA,YAAA,SAAAvR,EAAA7H,GACA,MAAA,KAAA6H,GAMAiS,CADAvf,EAAAyF,CAAA,EACAzB,OAAA,EAAAR,SAAA,KAAA,GACAvD,OAAA0c,oBAAAwB,YAAA1Y,CAAA,EAAAiM,cAAA,CAIA,EAAAzR,OAAAoC,UAAAmd,aAAA,EAKAxf,EAAAN,UAAAmf,UAAA,WAAA,SAAAvR,EAAA7H,GACA,IAOAga,EAPA,MAAA,KAAAnS,IAKAoS,EAAAja,EAAAka,OACAC,EAAAna,EAAA6H,MAAA0G,MAAA,GAAA,EACAyL,EAAAG,EAAAhiB,OAAAgiB,EAAAA,EAAAhiB,OAAA,GAAAgiB,EAAA,GAGAF,CAAAA,IAIAA,EAAA1L,MAAA,GAAA,EAAA6L,KAAA,SAAAnc,GAEA,OAAA,EAAAA,EAAA+P,QAAAgM,CAAA,CACA,CAAA,CACA,EAAAxf,OAAAoC,UAAAyd,iBAAA,EAMAhiB,EAAAJ,QAAA8H,KAAA,WAHAxF,EAAAN,UAAAqgB,YAAA3B,CAAA,CAKA","file":"app.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i\" );\n\n this._setText( buttonItem, item.label );\n this._addClass( buttonItem, \"ui-selectmenu-text\" );\n\n return buttonItem;\n }\n */\n _renderButtonItem: function(item) {\n var buttonItem = $(''),\n placeholder = this.element.attr('data-placeholder');\n\n // set selectmenu placeholder if default index = 0 on initialization\n if (item.index == 0 && placeholder) {\n this._setText(buttonItem, placeholder);\n } else {\n this._setText(buttonItem, item.label);\n }\n this._addClass(buttonItem, 'ui-selectmenu-text');\n\n return buttonItem;\n }\n});\n\n// EADA23-7 - ADA #285 - Button marked as a tab on the e gift card accordion\n$.fn.customAccordion = function (method, methodData) {\n var _$this = this,\n // For nested accordions separation, remove accordion elements that are children of the main accordion.\n $tabs = _$this.find('.js-accordion-tab').filter(function () {\n return !$(this).parentsUntil(_$this, '.js-accordion-tab').length;\n }),\n $tabsToggle = _$this.find('.js-tabs-accordion-header').attr('aria-expanded', 'false').attr('tabindex' , '0'),\n $tabsContent = $tabsToggle.next(),\n methods = {\n init: function () {\n $tabs.removeAttr('style').attr('role' ,'region').attr('aria-hidden', 'true');\n\n $tabsToggle.each(function (index, el) {\n var $accordionToggle = $(el),\n $accordionContent = $accordionToggle.next(),\n accordionToggleRole = $accordionToggle.attr('role') || '';\n\n // EADA23-16 - ADA #265 - add role heading and aria-level 2 on accordion headers on the PDP\n $accordionToggle.attr('role', accordionToggleRole.length ? ('button ' + accordionToggleRole) : 'button');\n\n // ID generation\n if ($accordionToggle.attr('id') == undefined) {\n $accordionToggle.uniqueId();\n }\n if ($accordionContent.attr('id') == undefined) {\n $accordionContent.uniqueId();\n }\n $accordionToggle.attr('aria-controls', $accordionContent.attr('id'));\n $accordionContent.attr('aria-labelledby', $accordionToggle.attr('id'));\n\n if ($accordionContent.is(':visible')) {\n $accordionToggle.addClass('active').attr('aria-expanded', 'true').next().addClass('active').attr('aria-hidden', 'false');\n }\n });\n\n _$this.on('click keydown', '.js-tabs-accordion-header', function (e) {\n // mouse click or enter/space key\n if (e.type == 'click' || (e.type == 'keydown' && (e.keyCode == 13 || e.keyCode == 32))) {\n // prevent the default action to stop scrolling when space is pressed\n e.preventDefault();\n\n var $this = $(this);\n\n if ($this.hasClass('active')) {\n $this.removeClass('active').attr('aria-expanded', 'false').next().removeClass('active').attr('aria-hidden', 'true').slideUp();\n window.vbqUtils.cache.$window.trigger('accordion.tabInactive');\n }\n else {\n var $target = $(e.target).closest('.js-tabs-accordion-header');\n $tabsToggle.not($target).removeClass('active').attr('aria-expanded', 'false').next().removeClass('active').attr('aria-hidden', 'true').slideUp();\n $this.addClass('active').attr('aria-expanded', 'true').next().addClass('active').attr('aria-hidden', 'false').slideDown();\n window.vbqUtils.cache.$window.trigger('accordion.tabActive', [{activeTarget: $target}]);\n }\n }\n });\n _$this.addClass('accordion-initialized').data('customAccordion', true);\n },\n active: function (index) {\n if (index !== undefined && !$tabs.eq(index).hasClass('active')) {\n $tabs.eq(index).prev().trigger('click');\n }\n },\n inactive: function (index) {\n if (index !== undefined && $tabs.eq(index).hasClass('active')) {\n $tabs.eq(index).prev().trigger('click');\n }\n },\n destroy: function () {\n _$this.removeClass('accordion-initialized').data('customAccordion', false);\n $tabsToggle.removeClass('active').removeAttr('role aria-controls aria-expanded');\n $tabsContent.removeClass('active').removeAttr('role aria-hidden aria-labelledby style');\n _$this.off('click keydown', '.js-tabs-accordion-header');\n }\n };\n\n if (methods[method]) {\n if (!_$this.data('customAccordion')) {\n $.error('Cannot call ' + method + ' prior to plugin initialisation');\n } else {\n methods[method](methodData);\n }\n } else if (!_$this.data('customAccordion')) {\n methods.init();\n }\n\n return this;\n};\n\n/**\n * @private\n * @function\n * @description Refresh selectmenu width: widget & menuWidget\n */\nfunction refreshSelectmenuWidth($selects) {\n $selects.each(function () {\n var $select = $(this);\n\n // hide select button to get origin select width\n // important for the next correct calculation\n $select.selectmenu('widget').hide();\n\n var selectWidth = $select.outerWidth(),\n maxWidth = selectWidth - 2; // select width - 2px for border\n\n // restrict button element to apply ellipsis text-overflow via css\n $select.selectmenu('widget').css('maxWidth', selectWidth);\n $select.selectmenu('widget').show();\n\n // restrict menu widget to align with select width\n $select.selectmenu('menuWidget').css('maxWidth', maxWidth);\n });\n}\n\n/**\n * @private\n * @function\n * @description Initializes jQuery UI plugins\n */\nfunction initializeJQueryUiPlugins() {\n var $customStyleInputs = $('.gl_radio:not(.gl_radio-buttons), .gl_checkbox:not(.gl_checkbox-buttons)'),\n $customStyleSelects = $('.gl_select-custom select');\n\n $customStyleInputs\n .filter('input[type=radio], input[type=checkbox]')\n .add($customStyleInputs.find('input[type=radio], input[type=checkbox]'))\n .checkboxradio();\n\n $customStyleSelects.selectmenu();\n refreshSelectmenuWidth($customStyleSelects);\n\n cache.$window.resize(function() {\n $customStyleSelects.selectmenu('close');\n refreshSelectmenuWidth($customStyleSelects);\n });\n}\n\n/**\n * @function\n * @description show progress loader\n * @param {Boolean} state - false to hide loader, undefined or true to show it\n * @param {Boolean} alert - false to not show alert, undefined or true to show it\n */\nfunction loader(state, alert, $customLoader) {\n var $loader = $customLoader !== undefined ? $customLoader : $('.js-loader'),\n $alert = $loader.next('.js-progress-alert');\n\n if (state === undefined || state) {\n if (alert === undefined || alert) {\n $alert.html('' + window.Resources.ALERT_MESSAGE + '');\n }\n $loader.show();\n }\n else {\n if (!alert) {\n $alert.html('');\n }\n $loader.hide();\n }\n}\n\nfunction initializeDom() {\n // Initialize the jQuery UI elements\n initializeJQueryUiPlugins();\n\n // Init any found carousel on the page\n carousel.init();\n}\n\nfunction initializeEvents() {\n // VF-37 - Vilebrequin Foundation - SFCC front-end - navigation menu\n navigationInit();\n\n initFloatingLabels($('form'));\n\n // VF-46 -Vilebrequin Foundation - SFCC front-end - program application form\n initUploadFileInput();\n}\n\nvar pages = {\n news: require('./pages/news'),\n contactus: require('./pages/contactus'),\n content: require('./pages/content/customerservice'),\n donation: require('./pages/donation/'),\n application: require('./pages/application')\n};\n\nvar app = {\n init: function () {\n window.vbqUtils = window.vbqUtils || {};\n window.vbqUtils = $.extend({}, window.vbqUtils, {\n cache: cache,\n breakpoint: breakpoint,\n loader: loader,\n initFloatingLabels: initFloatingLabels,\n initializeJQueryUiPlugins: initializeJQueryUiPlugins,\n refreshSelectmenuWidth: refreshSelectmenuWidth,\n phoneCodes: phoneCodes\n });\n\n initializeDom();\n initializeEvents();\n validator.init();\n newsletter.init();\n\n // execute page specific initializations\n var ns = window.pageContext.ns;\n if (ns && pages[ns] && pages[ns].init) {\n pages[ns].init();\n }\n }\n};\n\n// initialize app\njQuery(document).ready(function ($) { // pass $ as parameter to scope it as GTM overrides it (rakuten)\n app.init();\n});\n","'use strict';\n\nvar mediaQueryList = {\n // mobile\n mobilePortrait: 'only screen and (max-width: 479px)',\n mobileLandscape: 'only screen and (min-width: 480px) and (max-width: 767px)',\n mobile: 'only screen and (max-width: 767px)',\n // tablet\n mobileAndTablet: 'only screen and (max-width: 1023px)',\n tablet: 'only screen and (min-width: 768px) and (max-width: 1023px)',\n // desktop\n tabletAndDesktop: 'only screen and (min-width: 768px)',\n fromDesktop: 'only screen and (min-width: 1024px)',\n desktop: 'only screen and (min-width: 1024px) and (max-width: 1357px)',\n desktopAndDesktopLarge: 'only screen and (min-width: 1024px) and (max-width: 1919px)',\n fromDesktopLarge: 'only screen and (min-width: 1358px)',\n desktopLarge: 'only screen and (min-width: 1358px) and (max-width: 1919px)',\n desktopExtraLarge: 'only screen and (min-width: 1920px)'\n};\n\nvar breakpointHelper = function (mq) {\n if (mq && typeof mq.options === 'object' && mq.options !== null) {\n if (mq.matches && typeof mq.options.enter === 'function') {\n mq.options.enter(mq);\n }\n }\n};\n\nvar breakpoint = {\n /**\n * @function\n * @description check media query\n * @param {String} mediaQueryName - media query name to find value in mediaQueryList array\n */\n is: function (mediaQueryName) {\n return window.matchMedia(this.getMediaQuery(mediaQueryName)).matches;\n },\n /**\n * @function\n * @description get media query from default list\n * @param {String} mediaQueryName - media query name to find value in mediaQueryList array\n */\n getMediaQuery: function (mediaQueryName) {\n return mediaQueryList[mediaQueryName] || 'all';\n },\n /**\n * @function\n * @description set logic on target media query\n * @param {Object} settings - mandatory arg; array of objects with media query settings:\n * {String} media - mandatory arg; media query string\n * {Function} enter - optional arg; execute enter function if target media query = true\n * {Function} exit - optional arg; execute exit function if target media query = false\n * @param {Boolean} isChangeOnly - optional arg; set logic on media query change only\n * Usage:\n * approach 1: set logic on page init and page resize\n * window.vbqUtils.breakpoint.set([]);\n * approach 2: set logic on media query change only\n * window.vbqUtils.breakpoint.set([], true);\n */\n set: function (settings, isChangeOnly) {\n isChangeOnly = isChangeOnly != undefined ? isChangeOnly : false;\n\n if (settings && Array.isArray(settings)) {\n for (var i = 0; i < settings.length; i++) {\n var options = settings[i];\n\n if (typeof options === 'object' && options !== null) {\n if (typeof options.media === 'string') {\n var mediaQuery = options.media,\n mediaQueryList = window.matchMedia(mediaQuery);\n\n // attach options to mediaQueryList\n mediaQueryList.options = options;\n\n // on page load\n if (!isChangeOnly) {\n breakpointHelper(mediaQueryList);\n }\n\n // on media query change\n mediaQueryList.addEventListener('change', function(e) {\n breakpointHelper(e.currentTarget);\n });\n }\n }\n }\n }\n }\n};\n\nmodule.exports = breakpoint;\n","'use strict';\n\n/* globals window $ */\n\nvar _debounce = require('./lib/lodash.debounce');\n\nvar CarouselHelper = function ($carousel) {\n /**\n * Get carousel settings\n *\n * @param {String} type - carousel type (large-desktop/desktop/tablet/mobile)\n * @return {Object} carousel settings\n */\n var getCarouselSettings = function(type) {\n var settings = {},\n enable = true,\n showDots = false,\n showArrows = false,\n halfSlideMode = false,\n infinite = true,\n variableWidth = false,\n slidesToShow,\n isFallBackMode,\n rows,\n slidesPerRow,\n appendArrows,\n appendDots;\n\n switch (type) {\n case 'desktop-extra-large':\n settings = JSON.parse($carousel.attr('data-desktop-extra-large-settings') || '{}');\n isFallBackMode = !(settings && settings.hasOwnProperty('enable'));\n enable = settings && settings.hasOwnProperty('enable') ? settings.enable : enable;\n variableWidth = settings && settings.hasOwnProperty('variableWidth') ? settings.variableWidth : variableWidth;\n slidesToShow = settings && settings.slidesToShow || 6;\n showDots = settings ? settings.showDots : showDots;\n showArrows = settings ? settings.showArrows : showArrows;\n halfSlideMode = settings ? settings.halfSlideMode : halfSlideMode;\n infinite = settings && settings.hasOwnProperty('infinite') ? settings.infinite : infinite;\n rows = settings && settings.hasOwnProperty('rows') ? settings.rows : '';\n slidesPerRow = settings && settings.hasOwnProperty('slidesPerRow') ? settings.slidesPerRow : '';\n appendArrows = settings && settings.hasOwnProperty('appendArrows') ? settings.appendArrows : '';\n appendDots = settings && settings.hasOwnProperty('appendDots') ? settings.appendDots : '';\n break;\n\n case 'desktop-large':\n settings = JSON.parse($carousel.attr('data-desktop-large-settings') || '{}');\n isFallBackMode = !(settings && settings.hasOwnProperty('enable'));\n enable = settings && settings.hasOwnProperty('enable') ? settings.enable : enable;\n variableWidth = settings && settings.hasOwnProperty('variableWidth') ? settings.variableWidth : variableWidth;\n slidesToShow = settings && settings.slidesToShow || 5;\n showDots = settings ? settings.showDots : showDots;\n showArrows = settings ? settings.showArrows : showArrows;\n halfSlideMode = settings ? settings.halfSlideMode : halfSlideMode;\n infinite = settings && settings.hasOwnProperty('infinite') ? settings.infinite : infinite;\n rows = settings && settings.hasOwnProperty('rows') ? settings.rows : '';\n slidesPerRow = settings && settings.hasOwnProperty('slidesPerRow') ? settings.slidesPerRow : '';\n appendArrows = settings && settings.hasOwnProperty('appendArrows') ? settings.appendArrows : '';\n appendDots = settings && settings.hasOwnProperty('appendDots') ? settings.appendDots : '';\n break;\n\n case 'desktop':\n settings = JSON.parse($carousel.attr('data-desktop-settings') || '{}');\n isFallBackMode = !(settings && settings.hasOwnProperty('enable'));\n enable = settings && settings.hasOwnProperty('enable') ? settings.enable : enable;\n variableWidth = settings && settings.hasOwnProperty('variableWidth') ? settings.variableWidth : variableWidth;\n slidesToShow = settings && settings.slidesToShow || 4;\n showDots = settings ? settings.showDots : showDots;\n showArrows = settings ? settings.showArrows : showArrows;\n halfSlideMode = settings ? settings.halfSlideMode : halfSlideMode;\n infinite = settings && settings.hasOwnProperty('infinite') ? settings.infinite : infinite;\n rows = settings && settings.hasOwnProperty('rows') ? settings.rows : '';\n slidesPerRow = settings && settings.hasOwnProperty('slidesPerRow') ? settings.slidesPerRow : '';\n appendArrows = settings && settings.hasOwnProperty('appendArrows') ? settings.appendArrows : '';\n appendDots = settings && settings.hasOwnProperty('appendDots') ? settings.appendDots : '';\n break;\n\n case 'tablet':\n settings = JSON.parse($carousel.attr('data-tablet-settings') || '{}');\n isFallBackMode = !(settings && settings.hasOwnProperty('enable'));\n enable = settings ? settings.enable : false;\n variableWidth = settings && settings.hasOwnProperty('variableWidth') ? settings.variableWidth : variableWidth;\n slidesToShow = settings && settings.slidesToShow || 3;\n showDots = settings ? settings.showDots : showDots;\n showArrows = settings ? settings.showArrows : showArrows;\n halfSlideMode = settings ? settings.halfSlideMode : halfSlideMode;\n infinite = settings && settings.hasOwnProperty('infinite') ? settings.infinite : infinite;\n rows = settings && settings.hasOwnProperty('rows') ? settings.rows : '';\n slidesPerRow = settings && settings.hasOwnProperty('slidesPerRow') ? settings.slidesPerRow : '';\n appendArrows = settings && settings.hasOwnProperty('appendArrows') ? settings.appendArrows : '';\n appendDots = settings && settings.hasOwnProperty('appendDots') ? settings.appendDots : '';\n break;\n\n case 'mobile':\n settings = JSON.parse($carousel.attr('data-mobile-settings') || '{}');\n isFallBackMode = !(settings && settings.hasOwnProperty('enable'));\n enable = settings ? settings.enable : false;\n variableWidth = settings && settings.hasOwnProperty('variableWidth') ? settings.variableWidth : variableWidth;\n slidesToShow = settings && settings.slidesToShow || 1;\n showDots = settings ? settings.showDots : true;\n showArrows = settings ? settings.showArrows : showArrows;\n halfSlideMode = settings ? settings.halfSlideMode : halfSlideMode;\n infinite = settings && settings.hasOwnProperty('infinite') ? settings.infinite : infinite;\n rows = settings && settings.hasOwnProperty('rows') ? settings.rows : '';\n slidesPerRow = settings && settings.hasOwnProperty('slidesPerRow') ? settings.slidesPerRow : '';\n appendArrows = settings && settings.hasOwnProperty('appendArrows') ? settings.appendArrows : '';\n appendDots = settings && settings.hasOwnProperty('appendDots') ? settings.appendDots : '';\n break;\n\n default:\n // do nothing\n }\n\n return {\n isFallBackMode: isFallBackMode,\n enable: enable,\n slidesToShow: slidesToShow,\n showDots: showDots,\n showArrows: showArrows,\n halfSlideMode: halfSlideMode,\n infinite: infinite,\n variableWidth: variableWidth,\n rows: rows,\n slidesPerRow: slidesPerRow,\n appendArrows: appendArrows,\n appendDots: appendDots\n };\n };\n\n /**\n * Initialize carousel\n *\n * @param {Object} settings - carousel settings\n */\n var initCarousel = function (settings) {\n disableCarousel(); // security\n\n if (settings.enable && !$carousel.hasClass('slick-initialized') && $carousel.children().length > settings.slidesToShow) {\n var carouselSettings = {\n slidesToShow: settings.slidesToShow > 0 ? settings.slidesToShow : 1, // minimum 1 slide\n dots: settings.showDots,\n arrows: settings.showArrows,\n infinite: settings.infinite,\n variableWidth: settings.variableWidth\n };\n\n if (settings.rows) {\n carouselSettings.rows = settings.rows;\n }\n\n if (settings.slidesPerRow) {\n carouselSettings.slidesPerRow = settings.slidesPerRow;\n }\n\n if (settings.appendArrows) {\n carouselSettings.appendArrows = settings.appendArrows;\n }\n\n if (settings.appendDots) {\n carouselSettings.appendDots = settings.appendDots;\n }\n\n if (settings.halfSlideMode) {\n // halfSlideModeSlidesToShow is initial slidesToShow \n var halfSlideModeSlidesToShow = 2;\n\n // force infinite to render halfSlideModee carousel correctly\n carouselSettings.infinite = true;\n\n // minimum slidesToShow should be 2 to render halfSlideMode correctly\n if (settings.slidesToShow > 1) {\n halfSlideModeSlidesToShow = settings.slidesToShow;\n }\n\n // half-visible slides on both side leads to -1 slides in reachable slides area\n // carouselSettings.slidesToShow is adjusted slidesToShow\n carouselSettings.slidesToShow = halfSlideModeSlidesToShow - 1;\n\n // halfSlideMode carousel:\n // case 1: adjusted slidesToShow is odd\n // infinite = true;\n // centerPadding = space of 1 half-slide on both side\n // centerMode = true;\n // case 2: adjusted slidesToShow is even\n // infinite = true;\n // centerPadding = space of 1 half-slide on both side\n // no centerMode\n\n // centerMode enables centered view with odd numbered slidesToShow counts (case 1)\n if (carouselSettings.slidesToShow % 2 === 1) {\n carouselSettings.centerMode = true;\n } \n\n // equal space of 2 half-slides on both side\n carouselSettings.centerPadding = (100 / halfSlideModeSlidesToShow / 2) + '%';\n }\n\n $carousel.slick(carouselSettings);\n\n if (settings.showArrows && !settings.halfSlideMode) {\n $carousel.addClass('carousel-with-arrows');\n }\n\n if (settings.halfSlideMode) {\n $carousel.addClass('half-carousel-mode');\n }\n }\n };\n\n /**\n * Disable carousel\n */\n var disableCarousel = function () {\n if ($carousel.hasClass('slick-initialized')) {\n $carousel.slick('unslick').removeClass('carousel-with-arrows half-carousel-mode');\n }\n };\n\n this.$carousel = $carousel;\n this.getCarouselSettings = getCarouselSettings;\n this.initCarousel = initCarousel;\n this.disableCarousel = disableCarousel;\n};\n\nvar carousel = {\n /**\n * Create carousel based on found settings\n *\n * @param {jQuery} $carousel\n */\n carouselInit: function ($carousel) {\n var carouselHelper = new CarouselHelper($carousel),\n desktopExtraLargeSettings = carouselHelper.getCarouselSettings('desktop-extra-large'),\n desktopLargeSettings = carouselHelper.getCarouselSettings('desktop-large'),\n desktopSettings = carouselHelper.getCarouselSettings('desktop'),\n tabletSettings = carouselHelper.getCarouselSettings('tablet'),\n mobileSettings = carouselHelper.getCarouselSettings('mobile');\n\n if (carouselHelper.$carousel.hasClass('slick-initialized')) {\n // don't execute any of the remaining calls as the carousel is already initialized\n // this can be the case when .carousel.init() is called multiple times\n return;\n }\n\n // if extra desktop-extra-large settings is not set then use desktop-large settings values\n if (desktopExtraLargeSettings.isFallBackMode) {\n // make a copy of the settings\n desktopExtraLargeSettings = JSON.parse(JSON.stringify(desktopLargeSettings));\n }\n\n window.vbqUtils.breakpoint.set([\n {\n media: window.vbqUtils.breakpoint.getMediaQuery('mobile'),\n enter: function () {\n // if carousel is enabled then initialize it\n if (mobileSettings.enable) {\n carouselHelper.initCarousel(mobileSettings);\n }\n else {\n carouselHelper.disableCarousel();\n }\n }\n },\n {\n media: window.vbqUtils.breakpoint.getMediaQuery('tablet'),\n enter: function () {\n // if carousel is enabled then initialize it\n if (tabletSettings.enable) {\n carouselHelper.initCarousel(tabletSettings);\n }\n else {\n carouselHelper.disableCarousel();\n }\n }\n },\n {\n media: window.vbqUtils.breakpoint.getMediaQuery('desktop'),\n enter: function () {\n // if carousel is enabled then initialize it\n if (desktopSettings.enable) {\n carouselHelper.initCarousel(desktopSettings);\n }\n else {\n carouselHelper.disableCarousel();\n }\n }\n },\n {\n media: window.vbqUtils.breakpoint.getMediaQuery('desktopLarge'),\n enter: function () {\n // if carousel is enabled then initialize it\n if (desktopLargeSettings.enable) {\n carouselHelper.initCarousel(desktopLargeSettings);\n }\n else {\n carouselHelper.disableCarousel();\n }\n }\n },\n {\n media: window.vbqUtils.breakpoint.getMediaQuery('desktopExtraLarge'),\n enter: function () {\n // if carousel is enabled then initialize it\n if (desktopExtraLargeSettings.enable) {\n carouselHelper.initCarousel(desktopExtraLargeSettings);\n }\n else {\n carouselHelper.disableCarousel();\n }\n }\n }\n ]);\n\n carouselHelper.$carousel.find('.lazyload').each(function (index, el) {\n window.lazySizes.loader.unveil(el);\n });\n\n window.vbqUtils.cache.$window.resize(_debounce(function () {\n if (carouselHelper.$carousel.hasClass('slick-initialized')) {\n carouselHelper.$carousel.slick('setPosition');\n }\n }, 250));\n },\n\n /**\n * Initialize found carousels\n */\n init: function () {\n var that = this;\n $('.js-carousel').each(function () {\n // initialize carousel for each individual carousel wrappers\n that.carouselInit($(this));\n });\n }\n};\n\nmodule.exports = carousel;\n","/* jshint ignore:start */\n/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n/* jshint ignore:end */\n","'use strict';\n\n/* globals $ document window FormData */\n\nvar cache = {},\n submitInProcess = false;\n\n/**\n * Cache newsletter elements\n */\nvar initCache = function () {\n cache.$document = $(document);\n cache.newsletter = {};\n cache.newsletter.$formWrapper = cache.$document.find('.js-newsletter-form');\n cache.newsletter.$form = cache.newsletter.$formWrapper.find('#newsletter-subscribe');\n cache.newsletter.$email = cache.newsletter.$form.find('.js-newsletter-email');\n cache.newsletter.$consent = cache.newsletter.$form.find('input.consent');\n cache.newsletter.$subscribe = cache.newsletter.$form.find('button');\n cache.newsletter.$successMessageWrapper = cache.newsletter.$formWrapper.find('.success_message-wrapper');\n cache.newsletter.$errorMessageWrapper = cache.newsletter.$form.find('.error_message-wrapper');\n cache.newsletter.$loader = cache.newsletter.$formWrapper.find('.js-newsletter-loader');\n};\n\n/**\n * Submit newsletter form\n * @param {Jquery event} e\n */\nvar submitForm = function (e) {\n e.preventDefault();\n\n if (submitInProcess) {\n return;\n }\n // block a new submit action\n submitInProcess = true;\n\n // clear any response message\n cache.newsletter.$successMessageWrapper.html('');\n cache.newsletter.$errorMessageWrapper.html('');\n\n var validator = cache.newsletter.$form.validate();\n\n if (!cache.newsletter.$form.valid()) {\n // allow a new submit action\n submitInProcess = false;\n return;\n }\n\n var formData = new FormData();\n formData.append(cache.newsletter.$email.attr('name'), cache.newsletter.$email.val());\n formData.append(cache.newsletter.$consent.attr('name'), cache.newsletter.$consent.prop('checked') ? 'accepted' : '');\n formData.append(cache.newsletter.$subscribe.attr('name'), 'subscribe');\n\n // disabled newsletter form\n cache.newsletter.$form.addClass('gl_form-disabled');\n window.vbqUtils.loader(true, false, cache.newsletter.$loader);\n\n $.ajax({\n url: cache.newsletter.$form.attr('action'),\n method: 'POST',\n data: formData,\n processData: false,\n contentType: false\n })\n .done(function (response) {\n // allow a new submit action\n submitInProcess = false;\n\n if (!response.success) {\n // error messages will be shown below each field which has an error\n if (response.errorData) {\n validator.showErrors(response.errorData);\n return;\n }\n\n // global message\n var errorMessage = response.message || window.Resources.NEWSLETTER_SUBSCRIBE_ERROR;\n cache.newsletter.$errorMessageWrapper.html(errorMessage);\n\n // enable newsletter form\n cache.newsletter.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.newsletter.$loader);\n\n return;\n }\n\n // remove form validation; it will be enabled next time the user will click on submit button\n validator.destroy();\n\n // activate success form state\n cache.newsletter.$form.remove();\n cache.newsletter.$successMessageWrapper.removeClass('gl_hidden').html(response.message);\n\n window.vbqUtils.loader(false, false, cache.newsletter.$loader);\n })\n .fail(function () {\n // allow a new submit action\n submitInProcess = false;\n\n // enable newsletter form\n cache.newsletter.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.newsletter.$loader);\n\n // general error\n cache.newsletter.$errorMessageWrapper.html(window.Resources.NEWSLETTER_SUBSCRIBE_ERROR);\n });\n};\n\n/**\n * Bind events for newsletter\n */\nvar initEvents = function () {\n cache.newsletter.$subscribe.on('click', submitForm);\n};\n\nmodule.exports.init = function () {\n initCache();\n initEvents();\n};\n","'use strict';\n\n/* globals $ document window */\n\nvar cache = {},\n _debounce = require('../lib/lodash.debounce');\n\n/**\n * Cache application form elements\n */\nvar initCache = function () {\n cache.$document = $(document);\n cache.$form = cache.$document.find('#ApplicationForm');\n cache.$recaptchaButton = cache.$form.find('.js-recaptcha_button');\n cache.$validateButton = cache.$form.find('.js-validate_button');\n cache.$phone = cache.$form.find('.js-phone_field');\n cache.$country = cache.$form.find('.js-select_country');\n cache.$postalCode = cache.$form.find('.js-postal_code');\n cache.zipCodeCountries = (cache.$form.attr('data-zipcodecountries') || '').split(',');\n\n cache.states = {\n $all: cache.$form.find('.js-application_stateselect'),\n $US: cache.$form.find('.js-application_stateUS'),\n $MX: cache.$form.find('.js-application_stateMX'),\n $CA: cache.$form.find('.js-application_stateCA'),\n $AU: cache.$form.find('.js-application_stateAU'),\n $other: cache.$form.find('.js-application_state')\n };\n\n cache.intlTelPhone = null;\n\n // get current country code ( geolocation )\n cache.currentCountryCode = cache.$form.attr('data-countrycode') || '';\n\n // cache form validator\n cache.validator = cache.$form.validate();\n\n cache.formSubmited = false;\n};\n\n/**\n * Initialize phone intlTel plugin\n */\nvar initPhoneFormat = function () {\n cache.intlTelPhone = window.vbqUtils.phoneCodes.init(cache.$country, cache.$phone, cache.currentCountryCode);\n};\n\n/**\n * Update hidden phone number with the intlTel value\n * @param {jQuery Object} e - event object\n */\nvar onPhoneChange = function (e) {\n e.preventDefault();\n\n // security, do nothing if intlTel is not initialized\n if (!cache.intlTelPhone) {\n return;\n }\n\n // get the intlTel number only if it's valid\n var intlTelNumber = cache.intlTelPhone.isValidNumber()\n ? cache.intlTelPhone.getNumber()\n : '';\n\n cache.$phone.siblings('[name=dwfrm_application_phone]').val(intlTelNumber);\n};\n\n/**\n * Scrolls the winodow to respecitve error element\n */\nvar scrollToErrorElement = function () {\n var topOffest = 60,\n errorElement = cache.validator.errorList.length ? cache.validator.errorList[0].element : null,\n $errorParent = errorElement ? $(errorElement).closest('.gl_has-error') : null;\n\n // security, do nothing if there are no error elements\n if (!$errorParent || $errorParent.length == 0) {\n return;\n }\n\n window.scrollTo({\n top: $errorParent.offset().top - topOffest,\n behavior: 'smooth'\n });\n};\n\n/**\n * Validate form before submit action\n * @param {jQuery Object} e - event object\n */\nvar validateForm = function (e) {\n e.preventDefault();\n\n // security, prevent double submit\n if (cache.formSubmited) {\n return;\n }\n\n cache.formSubmited = true;\n\n // don't submit if form is not valid\n if (!cache.$form.valid()) {\n cache.formSubmited = false;\n scrollToErrorElement();\n return;\n }\n\n\n // form is valid so trigger click on \"recaptcha\" button for recaptcha validation\n cache.$recaptchaButton.click();\n};\n\n/**\n * Update element label with a star (*)\n * @param {jQuery} $element - jquery element\n */\nvar setLabelMandatory = function ($element) {\n var $label = $element.siblings('label'),\n // security; remove any '*' chars if any before adding a new one\n newLabel = $label.html().replace('*', '', 'g') + '*';\n\n $label.html(newLabel);\n};\n\n/**\n * Remove the star (*) from element label.\n * @param {jQuery} $element - jquery element\n */\nvar setLabelNonMandatory = function ($element) {\n var $label = $element.siblings('label'),\n newLabel = $label.html().replace('*', '', 'g');\n\n $label.html(newLabel);\n};\n\n/**\n * Hide all select state elements, update also the selected state for each of them\n * @param {String} selectedStateName - name of the selected state\n */\nvar updateStateStatus = function updateStateStatus(selectedStateName) {\n cache.states.$all.each(function updateState(index, element) {\n var $state = $(element),\n // check if current select states element is selected\n selectedStates = selectedStateName && $state.attr('name') == selectedStateName,\n // keep the value only for the selected state if it's available\n value = selectedStates ? $state.val() : '';\n\n // add mandatory label for the current select states element\n // for the rest of the select elements set label non mandatory ( remove the star from label )\n if (selectedStates) {\n setLabelMandatory($state);\n }\n else {\n setLabelNonMandatory($state);\n }\n\n // remove required attribute\n $state.attr('required', false);\n // remove forcevalidation class ( required for jquery validator )\n $state.removeClass('forcevalidation');\n // update state value\n $state.val(value).selectmenu('refresh');\n // hide the element\n $state.closest('.gl_select').addClass('gl_hidden');\n });\n};\n\n/**\n * Update postal code mandatory status based on the current country code\n * @param {String} countryCode - current selected country\n */\nfunction updatePostalCode(countryCode) {\n // do nothing if no country is selected\n if (!countryCode) {\n return;\n }\n\n var isFieldRequired = cache.zipCodeCountries.indexOf(countryCode) != -1;\n\n if (isFieldRequired) {\n setLabelMandatory(cache.$postalCode);\n }\n else {\n setLabelNonMandatory(cache.$postalCode);\n }\n\n cache.$postalCode.prop('required', isFieldRequired);\n}\n\n/**\n * Show correct states element based on the current selected country\n * @param {jQuery Object} e - event object\n */\nvar onCountryChange = function onCountryChange(e) {\n e.preventDefault();\n\n var $country = $(e.currentTarget),\n selectedCountry = $country.val(),\n $selectStates = cache.states['$' + selectedCountry],\n selectedStateName = $selectStates ? $selectStates.attr('name') : '';\n\n // hide all select states\n updateStateStatus(selectedStateName);\n\n // update postal code mandatory status\n updatePostalCode(selectedCountry);\n\n if ($selectStates) {\n // add required attribute\n $selectStates.attr('required', true);\n // add forcevalidation class ( required for jquery validator )\n $selectStates.addClass('forcevalidation');\n // show states for the selected country\n var $activeState = $selectStates.closest('.gl_select');\n\n $activeState.removeClass('gl_hidden');\n window.vbqUtils.refreshSelectmenuWidth($activeState.find('select'));\n\n // hide the other state field\n cache.states.$other.closest('.gl_form-group').addClass('gl_hidden');\n }\n else {\n // show the other state field\n cache.states.$other.closest('.gl_form-group').removeClass('gl_hidden');\n }\n\n // if the form was already submited then check again if it's valid\n if (!cache.validator.valid()) {\n cache.$form.valid();\n }\n};\n\n/**\n * Reomve error message if a state is selected, show if no states is selected\n * The validation is done only if the form was already submited and has error message\n * Else the select element will be validated during form submision.\n * @param {jQuery Object} e - event object\n */\nvar onStateChange = function (e) {\n e.preventDefault();\n\n // if the form was already submited then check again if it's valid\n if (!cache.validator.valid()) {\n cache.$form.valid();\n }\n};\n\n/**\n * Initialize events\n */\nvar initEvents = function () {\n cache.$validateButton.on('click', validateForm);\n cache.$phone.on('change intltelutilsloaded', onPhoneChange);\n cache.$country.on('selectmenuchange', _debounce(onCountryChange, 500, {'maxWait': 2000}));\n cache.states.$all.on('selectmenuchange', _debounce(onStateChange, 500, {'maxWait': 2000}));\n\n cache.$country.on('change', function (e) {\n // update jquery ui selectmenu element\n $(e.currentTarget).selectmenu('refresh').trigger('selectmenuchange');\n });\n\n cache.states.$all.on('change', function (e) {\n // update jquery ui selectmenu element\n $(e.currentTarget).selectmenu('refresh');\n });\n\n // trigger country change to auto show the correct select state element if it's the case\n cache.$country.trigger('change');\n};\n\nmodule.exports.init = function () {\n initCache();\n initPhoneFormat();\n initEvents();\n};\n","'use strict';\n\n/* globals $ document */\n\nvar cache = {};\n\n/**\n * Cache newsletter elements\n */\nvar initCache = function () {\n cache.$document = $(document);\n cache.contactus = {};\n cache.contactus.$form = cache.$document.find('.js-contactus-form');\n cache.contactus.$email = cache.contactus.$form.find('.js-contactus-email');\n cache.contactus.$send = cache.contactus.$form.find('button');\n cache.contactus.$counterMessage = cache.contactus.$form.find('#js-contactus_countermessage');\n cache.contactus.rawCounterMessage = cache.contactus.$counterMessage.attr('data-raw');\n};\n\n/**\n * Count remaining chars\n * @param {jQury Object} e - event object\n */\nvar countChars = function (e) {\n e.preventDefault();\n\n var $this = $(e.target),\n length = $this.val().length;\n\n cache.contactus.$counterMessage.html(cache.contactus.rawCounterMessage.replace(/\\{0\\}/, (1000 - length).toString()));\n};\n\n/**\n * Validate field on focus out\n * @param {jQury Object} e - event object\n */\nvar validateFields = function (e) {\n e.preventDefault();\n\n var $this = $(e.target);\n\n $this.valid();\n};\n\n/**\n * Bind events for contact us form\n */\nvar initEvents = function () {\n cache.contactus.$form.on('focusout', '.gl-input, .gl-select, .gl-textarea', validateFields);\n // check for custom events fired by jquery ui plugin for select elements\n cache.contactus.$form.find('.gl_select-custom select').on('selectmenuchange', validateFields);\n cache.contactus.$form.on('keyup change', '.gl-textarea.counter', countChars);\n\n // on page load count any characters available in the textarea\n cache.contactus.$form.find('.gl-textarea.counter').trigger('change');\n};\n\nmodule.exports.init = function () {\n initCache();\n initEvents();\n};\n","'use strict';\n\n/* globals $ document parseInt window */\n\nvar cache = {};\n\nvar initCache = function () {\n cache.$document = $(document);\n cache.$html = $('html, body');\n cache.$faqWrapper = cache.$document.find('.faq-wrapper');\n cache.$faqSections = cache.$faqWrapper.find('.faq-info-title, .faq-info-desc');\n cache.$faqAccToggle = cache.$faqWrapper.find('.faq-info-title');\n cache.$faqAccPanel = cache.$faqWrapper.find('.faq-info-desc');\n cache.viewOffset = parseInt($(window).height() / 3, 10);\n};\n\n/**\n * Toggle current clicked block\n * @param {jQuery Object} e - event object\n */\nvar toggleAccordion = function (e) {\n // mouse click or enter/space key\n if (e.type == 'click' || (e.type == 'keydown' && (e.keyCode == 13 || e.keyCode == 32))) {\n // prevent the default action to stop scrolling when space is pressed\n e.preventDefault();\n\n var $this = $(this),\n $next = $(this).next('.faq-info-desc'),\n $currentSection = $this.add($next),\n isActive = $this.hasClass('active');\n\n cache.$faqAccToggle.not($currentSection).attr('aria-expanded', 'false');\n cache.$faqAccPanel.not($currentSection).attr('aria-hidden', 'true');\n cache.$faqSections.not($currentSection).removeClass('active');\n\n $currentSection.toggleClass('active');\n $this.attr('aria-expanded', (isActive ? 'false': 'true'));\n $next.attr('aria-hidden', (isActive ? 'true': 'false'));\n\n cache.$html.animate({\n scrollTop: $next.offset().top - cache.viewOffset\n }, 1000);\n }\n};\n\n/**\n * FAQ accordion ADA init\n */\n function faqAccordionADAInit() {\n cache.$faqAccToggle.attr('role', 'tab').attr('tabindex', '0').attr('aria-expanded', 'false');\n cache.$faqAccPanel.attr('aria-hidden', 'true');\n\n cache.$faqAccToggle.each(function (index, el) {\n var $this = $(this);\n\n $this.attr('aria-controls', 'faq-id-' + index);\n $this.next('.faq-info-desc')\n .attr('role', 'tabpanel')\n .attr('id', 'faq-id-' + index)\n .attr('aria-hidden', 'true');\n });\n }\n\n/**\n * Initialize events for customer service pages\n */\nvar initEvents = function () {\n // faq accordion init\n faqAccordionADAInit();\n cache.$faqAccToggle.on('click keydown', toggleAccordion);\n\n // Open corresponding section in case of anchored URL\n if (window.location.hash.length > 1) {\n cache.$faqWrapper.find(window.location.hash).trigger('click');\n }\n};\n\nmodule.exports.init = function () {\n initCache();\n initEvents();\n};\n","'use strict';\n\n/**\n * VF-25 - Vilebrequin Foundation - SFCC back-end - donation form step 3 - credit card form\n * js functionality taken from vf_int_adyen_overlay -> adyenpaymentfields.isml template\n * Changes:\n * - on Adyen card creation added:\n * - placeholdersattribute\n * - added possibility to add custom styles ( code commented for the moment )\n * - added onBrand function which saves the card brand in window.AdyenCardBrand\n * - set enableStoreDetails to false\n */\n\n/* globals window document */\n\nvar cache = {};\n\n/**\n * Init cache\n * @param {jQuery Element} $donationWrapper - donation wrapper jQuery element\n */\nvar initCache = function ($donationWrapper) {\n cache.$donationWrapper = $donationWrapper;\n cache.$card = cache.$donationWrapper.find('#card');\n cache.$browserInfo = cache.$donationWrapper.find('#dwfrm_donationstep3_browserInfo');\n\n // get adyen data options\n var adyenJsonOptions = cache.$donationWrapper.find('[data-adyen-options]').attr('data-adyen-options') || '{}';\n /**\n * fields:\n * - originKey\n * - loadingContext\n * - environment\n * - checkoutUrl\n * - locale\n * - MASKED_CC_PREFIX\n * - translations\n * - labels\n * - placeholders\n */\n cache.adyenOptions = JSON.parse(adyenJsonOptions);\n};\n\n/**\n * Initialize Adyen credit card component\n * @param {String} originKey - adyen origin key\n * @param {String} environment - adyen mode\n * @param {String} locale - current locale\n */\nvar initializeCardComponent = function (originKey, environment, locale, translations) {\n window.Configuration = {\n locale: locale,\n originKey: originKey,\n environment: environment,\n translations: {}\n };\n window.Configuration.translations[locale] = translations;\n\n var AdyenCheckoutObject = new window.AdyenCheckout(window.Configuration);\n // Uncomment for adding custom styles for the form fields\n // var styleObject = {\n // base: {\n // color: '#0c315d',\n // fontSize: '11px',\n // fontSmoothing: 'antialiased',\n // fontFamily: 'Arial'\n // },\n // error: {\n // color: 'red'\n // },\n // placeholder: {\n // color: '#d8d8d8'\n // },\n // validated: {\n // color: '#1b65b1'\n // }\n // };\n\n window.CardValid = false;\n window.AdyenCard = AdyenCheckoutObject.create('card', {\n type: 'card',\n hasHolderName: true,\n holderNameRequired: true,\n groupTypes: ['visa', 'mc', 'amex'],\n enableStoreDetails: false, // window.showStoreDetails, NOT WANTED\n // Uncomment for custom styles\n // styles: styleObject,\n ariaLabels: {\n lang: cache.adyenOptions.locale,\n encryptedExpiryDate: {\n label: cache.adyenOptions.labels.expiryDate\n },\n encryptedSecurityCode: {\n label: cache.adyenOptions.labels.securityCode\n }\n },\n placeholders: {\n holderName: cache.adyenOptions.placeholders.holderName,\n encryptedCardNumber: '4111 1111 1111 1111',\n encryptedExpiryDate: '03/30',\n encryptedSecurityCode: '737'\n },\n onChange: function(state) {\n // checks whether card was valid then was changed to be invalid\n window.CardValid = state.isValid;\n window.storeDetails = state.data.storePaymentMethod;\n cache.$browserInfo.val(JSON.stringify(state.data.browserInfo));\n },\n onBrand: function (state) {\n window.AdyenCardBrand = state.brand;\n },\n onFieldValid: function (data) {\n if(data.endDigits){\n // mask credit card number\n // @TODO not used\n //$('#dwfrm_billing_paymentMethods_creditCard_number').val(cache.adyenOptions.MASKED_CC_PREFIX + data.endDigits);\n }\n }\n });\n\n window.AdyenCard.mount(cache.$card.get(0));\n};\n\n/**\n * Load adyen checkout script\n */\nvar loadScript = function () {\n var scriptTag = document.createElement('script');\n scriptTag.src = cache.adyenOptions.checkoutUrl;\n scriptTag.type = 'text/javascript';\n\n // append script to the donation wrapper element\n cache.$donationWrapper.get(0).appendChild(scriptTag);\n\n // Wait for it to load\n // Working for older browsers\n if (scriptTag.readyState) {\n scriptTag.onreadystatechange = function () {\n if (scriptTag.readyState == 'loaded' ||\n scriptTag.readyState == 'complete') {\n scriptTag.onreadystatechange = null;\n // Init Component\n initializeCardComponent(cache.adyenOptions.originKey, cache.adyenOptions.environment, cache.adyenOptions.locale, cache.adyenOptions.translations);\n }\n };\n }\n // Working for new browsers\n else {\n scriptTag.onload = function () {\n // Init Component\n initializeCardComponent(cache.adyenOptions.originKey, cache.adyenOptions.environment, cache.adyenOptions.locale, cache.adyenOptions.translations);\n };\n }\n};\n\nmodule.exports.init = function ($donationWrapper) {\n initCache($donationWrapper);\n loadScript();\n};\n","'use strict';\n\n/* globals $ document window */\n\nvar cache = {};\n\n/**\n * Init donation page cache\n */\nvar initCache = function () {\n cache.$document = $(document);\n cache.$donationWrapper = cache.$document.find('.js-donation_wrapper');\n cache.$goBack = cache.$donationWrapper.find('.js-donation_back');\n cache.$loader = cache.$donationWrapper.find('.js-donation-loader');\n};\n\n/**\n * Additional link action\n */\nvar linkAction = function () {\n // render page loader\n window.vbqUtils.loader(true, false, cache.$loader);\n};\n\n/**\n * Initiate the provieded donation form step\n */\nvar loadDonationFormStep = function () {\n // form step is stored in the pageContext.type attribute\n var formStep = window.pageContext.type;\n\n // do nothing if formStep is not available\n if (!formStep) {\n return;\n }\n\n // initiate the step\n if (formStep == 'step1') {\n require('./step1').init(cache.$donationWrapper);\n }\n else if (formStep == 'step2') {\n require('./step2').init(cache.$donationWrapper);\n }\n else if (formStep == 'step3') {\n require('./step3').init(cache.$donationWrapper);\n }\n\n // init floating labels on the form\n window.vbqUtils.initFloatingLabels($('.js-donation_form'));\n\n // attach loader on page re-loading\n cache.$goBack.on('click', linkAction);\n};\n\n\nmodule.exports.init = function () {\n initCache();\n loadDonationFormStep();\n};\n","'use strict';\n\n/* globals window FormData $ setTimeout */\n\nvar cache = {};\n\n/**\n * Initialize donation form step 1 cache\n * @param {jQuery Element} $donationWrapper - donation wrapper jQuery element\n */\nvar initCache = function ($donationWrapper) {\n cache.$donationWrapper = $donationWrapper;\n cache.$form = cache.$donationWrapper.find('#js-donation_step1');\n cache.$selectAmount = cache.$form.find('.js-donation_selectamount');\n cache.$freeAmount = cache.$form.find('.js-donation_freeamount');\n cache.$submit = cache.$form.find('.js-donation_submit');\n cache.$errorWrapper = cache.$donationWrapper.find('.js-error_message');\n cache.$amount = cache.$form.find('.js-donation-amount');\n cache.$donationStep1loader = cache.$donationWrapper.find('.js-donation_step1-loader');\n cache.$flashmessage = cache.$form.find('.js-flash_message');\n\n // cache form validator\n cache.validator = cache.$form.validate();\n // global variable required for flash message\n cache.flashmessage = false;\n};\n\nvar submitAction = function (e) {\n e.preventDefault();\n\n var isValid = true;\n\n // remove flash message error\n flashMessageCleanup();\n\n // remove any previous error message\n cache.$amount.removeClass('gl_has-error');\n cache.$errorWrapper.html('');\n\n // security; disable submit button\n cache.$submit.attr('disabled', true);\n\n // disabled donation-step1 form\n cache.$form.addClass('gl_form-disabled');\n window.vbqUtils.loader(true, false, cache.$donationStep1loader);\n\n // validate the form\n if (!cache.$form.valid()) {\n isValid = false;\n }\n\n var selectedAmount = cache.$selectAmount.filter(':checked').val(),\n freeAmount = cache.$freeAmount.val(),\n amount = selectedAmount || freeAmount;\n\n // check if an amount was selected / set\n if (!amount) {\n // show error message\n var amountError = {};\n amountError[cache.$freeAmount.attr('name')] = window.Resources.AMOUNT_REQUIRED;\n cache.validator.showErrors(amountError);\n cache.$amount.addClass('gl_has-error');\n\n isValid = false;\n }\n\n if (!isValid) {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n\n // enable donation-step1 form\n cache.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.$donationStep1loader);\n\n return;\n }\n\n var action = cache.$form.attr('action'),\n formData = new FormData(cache.$form.get(0));\n\n formData.append(cache.$submit.attr('name'), 'submit');\n\n $.ajax({\n url: action,\n method: 'POST',\n data: formData,\n processData: false,\n contentType: false\n })\n .done(function (response) {\n if (!response.success || !response.redirectUrl) {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n\n // enable donation-step1 form\n cache.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.$donationStep1loader);\n\n // error messages will be shown below each field which has an error\n if (response.errorData) {\n cache.validator.showErrors(response.errorData);\n return;\n }\n\n // global message\n var errorMessage = response.message || window.Resources.NEWSLETTER_SUBSCRIBE_ERROR;\n cache.$errorWrapper.html(errorMessage);\n return;\n }\n\n // redirect the page to step 2\n window.location.href = response.redirectUrl;\n })\n .fail(function () {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n\n // enable donation-step1 form\n cache.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.$donationStep1loader);\n\n // show a general error message\n cache.$errorWrapper.html(window.Resources.TECHNICAL_ERROR);\n });\n};\n\n/**\n * Action to do on free amount value input / change\n * @param {jQuery Object} e - event object\n * @returns {Boolean} true if the current char is not a dot\n */\nvar keyPressAction = function (e) {\n // uncheck any selected amount, if any\n cache.$selectAmount.prop('checked', false);\n\n // remove error class if no errors\n if (cache.$freeAmount.valid() && !cache.flashmessage) {\n cache.$amount.removeClass('gl_has-error');\n }\n\n // Don't allow dot char\n var keycode = e.keyCode,\n notAllowedKeyCodes = [\n 110, // dot . ( numpad )\n 107, // + ( numpad )\n 189, // dash - ( keyboard )\n 109, // minus - ( keyboard numpad )\n 190, // dot ( keyboard )\n 188, // comma ,\n 32, // tab on mobile qwerty keyboard\n 0, // dash - on mobile qwerty keyboard,\n 69 // e - on the keyboard\n ];\n\n // trigger flashmessage event if the key pressed is dot or comma\n if ([110, 190, 188].indexOf(keycode) > -1) {\n cache.$freeAmount.trigger('flashmessage');\n }\n\n return notAllowedKeyCodes.indexOf(keycode) === -1;\n};\n\n/**\n * Action to do on select amount for donation\n * @param {jquery Object} e - event object\n */\nvar onSelectAmountAction = function (e) {\n e.preventDefault();\n\n // Empty free amount value if it has any\n cache.$freeAmount.val('');\n // remove any field error if exists\n var amountError = {};\n amountError[cache.$freeAmount.attr('name')] = '';\n cache.validator.showErrors(amountError);\n cache.$amount.removeClass('gl_has-error');\n\n // uncheck any previous selected amount\n cache.$selectAmount.prop('checked', false);\n\n // check current clicked amount element\n $(e.currentTarget).prop('checked', true);\n};\n\nvar flashMessageCleanup = function () {\n if (cache.flashmessage) {\n cache.flashmessage = false;\n cache.$flashmessage.addClass('hidden');\n cache.$amount.removeClass('gl_has-error');\n }\n};\n\nvar flashMessageAction = function () {\n // do nothing if flash message is visible\n if (cache.flashmessage) {\n return;\n }\n\n cache.flashmessage = true;\n // show flash message\n cache.$flashmessage.removeClass('hidden');\n cache.$amount.addClass('gl_has-error');\n\n setTimeout(function () {\n flashMessageCleanup();\n }, 3000);\n};\n\n/**\n * Initialize donation form step 1 events\n */\nvar initEvents = function () {\n cache.$submit.on('click', submitAction);\n\n // don't allow any dot chars in freeamount ( type = number )\n cache.$freeAmount.on('keydown', keyPressAction);\n cache.$freeAmount.on('flashmessage', flashMessageAction);\n\n cache.$selectAmount.on('change', onSelectAmountAction);\n\n // validate freeamount field\n cache.$freeAmount.valid();\n};\n\nmodule.exports.init = function ($donationWrapper) {\n initCache($donationWrapper);\n initEvents();\n};\n","'use strict';\n\n/* globals window FormData $ */\n\nvar cache = {},\n _debounce = require('../../lib/lodash.debounce');\n\n/**\n * Initialize donation form step 1 cache\n * @param {jQuery Element} $donationWrapper - donation wrapper jQuery element\n */\nvar initCache = function ($donationWrapper) {\n cache.$donationWrapper = $donationWrapper;\n cache.$form = cache.$donationWrapper.find('#js-donation_step2');\n cache.$zipcode = cache.$form.find('.js-donation_postal');\n cache.$country = cache.$form.find('.js-donation_country');\n cache.$submit = cache.$form.find('.js-donation_submit');\n cache.$errorWrapper = $donationWrapper.find('.js-error_message');\n cache.$donationStep2loader = cache.$donationWrapper.find('.js-donation_step2-loader');\n\n cache.states = {\n $all: cache.$form.find('.js-donation_stateselect'),\n $US: cache.$form.find('.js-donation_stateUS'),\n $MX: cache.$form.find('.js-donation_stateMX'),\n $CA: cache.$form.find('.js-donation_stateCA'),\n $AU: cache.$form.find('.js-donation_stateAU'),\n $other: cache.$form.find('.js-donation_state')\n };\n\n cache.requiredZipCodeCountries = (cache.$form.attr('data-zipcode-countries') || '').split(',');\n\n // cache form validator\n cache.validator = cache.$form.validate();\n};\n\n/**\n * Submit action for the current form\n * @param {jQuery Object} e - event object\n */\nvar submitAction = function (e) {\n e.preventDefault();\n\n // remove any previous error message\n cache.$errorWrapper.html('');\n\n // security; disable submit button\n cache.$submit.attr('disabled', true);\n\n // validate the form\n if (!cache.$form.valid()) {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n return;\n }\n\n var action = cache.$form.attr('action'),\n formData = new FormData(cache.$form.get(0));\n\n formData.append(cache.$submit.attr('name'), 'submit');\n\n cache.$form.addClass('gl_form-disabled');\n window.vbqUtils.loader(true, false, cache.$donationStep2loader);\n\n $.ajax({\n url: action,\n method: 'POST',\n data: formData,\n processData: false,\n contentType: false\n })\n .done(function (response) {\n if (!response.success || !response.redirectUrl) {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n\n // enable donation-step1 form\n cache.$form.removeClass('gl_form-disabled');\n window.vbqUtils.loader(false, false, cache.$donationStep2loader);\n\n // error messages will be shown below each field which has an error\n if (response.errorData) {\n cache.validator.showErrors(response.errorData);\n return;\n }\n\n // global message\n var errorMessage = response.message || window.Resources.NEWSLETTER_SUBSCRIBE_ERROR;\n cache.$errorWrapper.html(errorMessage);\n return;\n }\n\n // redirect the page to step 3\n window.location.href = response.redirectUrl;\n })\n .fail(function () {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n\n // enable donation-step2 form\n cache.$form.removeClass('gl_form-disabled donation_form-special_amount');\n window.vbqUtils.loader(false, false, cache.$donationStep2loader);\n\n // show a general error message\n cache.$errorWrapper.html(window.Resources.TECHNICAL_ERROR);\n });\n};\n\n/**\n * Update element label with a star (*)\n * @param {jQuery} $element - jquery element\n */\nvar setLabelMandatory = function ($element) {\n var $label = $element.siblings('label'),\n // security; remove any '*' chars if any before adding a new one\n newLabel = $label.html().replace('*', '', 'g') + '*';\n\n $label.html(newLabel);\n};\n\n/**\n * Remove the star (*) from element label.\n * @param {jQuery} $element - jquery element\n */\nvar setLabelNonMandatory = function ($element) {\n var $label = $element.siblings('label'),\n newLabel = $label.html().replace('*', '', 'g');\n\n $label.html(newLabel);\n};\n\n/**\n * Hide all select state elements, update also the selected state for each of them\n * @param {String} selectedStateName - name of the selected state\n */\nvar updateStateStatus = function updateStateStatus(selectedStateName) {\n cache.states.$all.each(function updateState(index, element) {\n var $state = $(element),\n // check if current select states element is selected\n selectedStates = selectedStateName && $state.attr('name') == selectedStateName,\n // keep the value only for the selected state if it's available\n value = selectedStates ? $state.val() : '';\n\n // add mandatory label for the current select states element\n // for the rest of the select elements set label non mandatory ( remove the star from label )\n if (selectedStates) {\n setLabelMandatory($state);\n }\n else {\n setLabelNonMandatory($state);\n }\n\n // remove required attribute\n $state.attr('required', false);\n // remove forcevalidation class ( required for jquery validator )\n $state.removeClass('forcevalidation');\n // update state value\n $state.val(value).selectmenu('refresh');\n // hide the element\n $state.closest('.gl_select').addClass('gl_hidden');\n });\n};\n\n/**\n * Show correct states element based on the current selected country\n * @param {jQuery Object} e - event object\n */\nvar onCountryChange = function onCountryChange(e) {\n e.preventDefault();\n\n var $country = $(e.currentTarget),\n selectedCountry = $country.val(),\n $selectStates = cache.states['$' + selectedCountry],\n selectedStateName = $selectStates ? $selectStates.attr('name') : '';\n\n // hide all select states\n updateStateStatus(selectedStateName);\n\n if ($selectStates) {\n // add required attribute\n $selectStates.attr('required', true);\n // add forcevalidation class ( required for jquery validator )\n $selectStates.addClass('forcevalidation');\n // show states for the selected country\n var $activeState = $selectStates.closest('.gl_select');\n\n $activeState.removeClass('gl_hidden');\n window.vbqUtils.refreshSelectmenuWidth($activeState.find('select'));\n\n // hide the other state field\n cache.states.$other.closest('.gl_form-group').addClass('gl_hidden');\n }\n else {\n // show the other state field\n cache.states.$other.closest('.gl_form-group').removeClass('gl_hidden');\n }\n\n // update postal code mandatory attribute\n if (cache.requiredZipCodeCountries.indexOf(selectedCountry) > -1) {\n setLabelMandatory(cache.$zipcode);\n cache.$zipcode.attr('required', true);\n }\n else {\n setLabelNonMandatory(cache.$zipcode);\n cache.$zipcode.attr('required', false);\n }\n\n // if the form was already submited then check again if it's valid\n if (!cache.validator.valid()) {\n cache.$form.valid();\n }\n};\n\n/**\n * Reomve error message if a state is selected, show if no states is selected\n * The validation is done only if the form was already submited and has error message\n * Else the select element will be validated during form submision.\n * @param {jQuery Object} e - event object\n */\nvar onStateChange = function (e) {\n e.preventDefault();\n\n // if the form was already submited then check again if it's valid\n if (!cache.validator.valid()) {\n cache.$form.valid();\n }\n};\n\n/**\n * Initialize donation form step 1 events\n */\nvar initEvents = function () {\n cache.$submit.on('click', submitAction);\n cache.$country.on('selectmenuchange', _debounce(onCountryChange, 500, {'maxWait': 2000}));\n cache.states.$all.on('selectmenuchange', _debounce(onStateChange, 500, {'maxWait': 2000}));\n\n cache.$country.on('change', function (e) {\n // update jquery ui selectmenu element\n $(e.currentTarget).selectmenu('refresh').trigger('selectmenuchange');\n });\n\n cache.states.$all.on('change', function (e) {\n // update jquery ui selectmenu element\n $(e.currentTarget).selectmenu('refresh');\n });\n\n // trigger country change to auto show the correct select state element if it's the case\n cache.$country.trigger('change');\n};\n\nmodule.exports.init = function ($donationWrapper) {\n initCache($donationWrapper);\n initEvents();\n};\n","'use strict';\n\n/* globals window FormData $ */\n\nvar adyenscript = require('./adyenscript'),\n cache = {};\n\n/**\n * Initialize donation form step 1 cache\n * @param {jQuery Element} $donationWrapper - donation wrapper jQuery element\n */\nvar initCache = function ($donationWrapper) {\n cache.$donationWrapper = $donationWrapper;\n cache.$form = cache.$donationWrapper.find('#js-donation_step3');\n cache.$submit = cache.$form.find('.js-donation_submit');\n cache.$errorWrapper = $donationWrapper.find('.js-error_message');\n cache.$donationStep3loader = cache.$donationWrapper.find('.js-donation_step3-loader');\n\n cache.cardfields = {\n $type: cache.$form.find('#dwfrm_donationstep3_adyenCardType'),\n $owner: cache.$form.find('#dwfrm_donationstep3_adyenCardOwner'),\n $number: cache.$form.find('#dwfrm_donationstep3_adyenEncryptedCardNumber'),\n $month: cache.$form.find('#dwfrm_donationstep3_adyenEncryptedExpiryMonth'),\n $year: cache.$form.find('#dwfrm_donationstep3_adyenEncryptedExpiryYear'),\n $securityCode: cache.$form.find('#dwfrm_donationstep3_adyenEncryptedSecurityCode')\n };\n};\n\n/**\n * Clears form hidden input fieds values\n */\nvar clearCardData = function () {\n cache.cardfields.$type.val('');\n cache.cardfields.$owner.val('');\n cache.cardfields.$number.val('');\n cache.cardfields.$month.val('');\n cache.cardfields.$year.val('');\n cache.cardfields.$securityCode.val('');\n};\n\n/**\n * Copy card data from Adyen to hiden input fields\n * @param {Object} card - adyen card to copy fields from\n */\nvar copyCardData = function (card) {\n cache.cardfields.$type.val(window.AdyenCardBrand);\n cache.cardfields.$owner.val(card.state.data.holderName);\n cache.cardfields.$number.val(card.state.data.encryptedCardNumber);\n cache.cardfields.$month.val(card.state.data.encryptedExpiryMonth);\n cache.cardfields.$year.val(card.state.data.encryptedExpiryYear);\n cache.cardfields.$securityCode.val(card.state.data.encryptedSecurityCode);\n};\n\n/**\n * Submit action for the current form\n * @param {jQuery Object} e - event object\n */\nvar submitAction = function (e) {\n e.preventDefault();\n\n // remove any previous error message\n cache.$errorWrapper.html('');\n cache.$form.removeClass('donation_form-error');\n\n // security; disable submit button\n cache.$submit.attr('disabled', true);\n\n // validate the form\n if (!window.AdyenCard.isValid) {\n // enable the submit button\n cache.$submit.attr('disabled', false);\n // show adyen validation errors\n window.AdyenCard.showValidation();\n return;\n }\n\n copyCardData(window.AdyenCard);\n\n // disabled donation-step3 form\n cache.$form.addClass('gl_form-disabled donation_form-text_loader');\n window.vbqUtils.loader(true, false, cache.$donationStep3loader);\n\n // submit form\n cache.$form.submit();\n};\n\n/**\n * Initialize donation form step 1 events\n */\nvar initEvents = function () {\n cache.$submit.on('click', submitAction);\n};\n\nmodule.exports.init = function ($donationWrapper) {\n initCache($donationWrapper);\n clearCardData();\n adyenscript.init($donationWrapper);\n initEvents();\n};\n","'use strict';\n\n/* globals $ document */\n\nvar cache = {};\n\n/**\n * Init cache\n */\nvar initCache = function () {\n cache.$document = $(document);\n cache.$filterButton = cache.$document.find('.js-news_filter');\n cache.$highlightedArticle = cache.$document.find('.js-highlighed_article');\n cache.$articlesList = cache.$document.find('.js-articles_list');\n cache.$showMore = cache.$articlesList.find('.js-showMore_articles');\n cache.$loader = cache.$document.find('.js-articles-loader');\n cache.$listLoader = cache.$document.find('.js-articles-list-loader');\n};\n\n/**\n * Get filtered articles\n * @param {jQuery object} event - event object\n */\nvar getFilteredArticles = function (event) {\n event.preventDefault();\n\n var $this = $(event.currentTarget);\n\n // clear previous filters\n cache.$filterButton.not($this).removeClass('selected');\n\n // toggle class 'selected'\n $this.toggleClass('selected');\n\n var isFilterSelected = $this.hasClass('selected'),\n url = $this.attr('href'),\n filterId = isFilterSelected ? $this.attr('data-filterid') : null;\n\n // turn on loader animation\n window.vbqUtils.loader(true, false, cache.$loader);\n\n $.ajax({\n url: url,\n data: {\n filterId: filterId\n }\n })\n .then(function (response) {\n // show/hide highlighted article based if the filter is selected or unselected\n if (isFilterSelected) {\n cache.$highlightedArticle.addClass('hidden');\n }\n else {\n cache.$highlightedArticle.removeClass('hidden');\n }\n\n // update articles list\n cache.$articlesList.html(response);\n\n // update cache for show more button if exists\n cache.$showMore = cache.$articlesList.find('.js-showMore_articles');\n\n // turn off loader animation\n window.vbqUtils.loader(false, false, cache.$loader);\n });\n};\n\n/**\n * Get more articles and append to the existing list\n * @param {jQuery object} event - event object\n */\nvar showMoreArticles = function (event) {\n event.preventDefault();\n\n var $this = $(event.currentTarget);\n\n // turn on loader animation\n window.vbqUtils.loader(true, false, cache.$listLoader);\n\n $.ajax({\n url: $this.attr('href')\n })\n .then(function (response) {\n // remove current show more button\n if (cache.$showMore && cache.$showMore.length) {\n cache.$showMore.remove();\n }\n\n // append the new articles to the list\n cache.$articlesList.append(response);\n\n // update cache for show more button if exists\n cache.$showMore = cache.$articlesList.find('.js-showMore_articles');\n\n // turn off loader animation\n window.vbqUtils.loader(false, false, cache.$listLoader);\n });\n};\n\n/**\n * Init events\n */\nvar initEvents = function () {\n cache.$filterButton.on('click', getFilteredArticles);\n cache.$articlesList.on('click', '.js-showMore_articles', showMoreArticles);\n};\n\nmodule.exports.init = function () {\n initCache();\n initEvents();\n};\n","'use strict';\n\n/* globals window $ */\n\nvar loadUtils = true,\n updateCountryNames = true;\n\n/**\n * manage phone numbers international codes\n */\nfunction init($country, $phone, initialCountryCode) {\n if (loadUtils) {\n window.intlTelInputGlobals.loadUtils('https://' + window.location.host + window.Urls.intlTelInputUtils).then(function () {\n $phone.trigger('intltelutilsloaded');\n });\n loadUtils = false;\n }\n\n var iti, countryCode, phone;\n\n // already initialized\n if ($phone.parent().hasClass('iti')) {\n // force the country refresh\n iti = window.intlTelInputGlobals.getInstance($phone[0]);\n countryCode = $country.val() || initialCountryCode;\n phone = $.trim($phone.val());\n if (countryCode !== null && countryCode !== '' && phone === '') {\n iti.setCountry(countryCode.toLowerCase());\n }\n return;\n }\n\n if (updateCountryNames) {\n var countryData = window.intlTelInputGlobals.getCountryData();\n $.each(countryData, function(i, country) {\n var translatedName = $.trim($country.find('option[value=\"' + country.iso2.toUpperCase() + '\"]').text());\n if (translatedName !== null && translatedName !== '') {\n var tmp = country.name.split('(');\n country.name = translatedName + (tmp.length == 2 ? ' (' + tmp[1].toUpperCase() : '');\n }\n else {\n country.name = country.name.toUpperCase();\n }\n });\n\n updateCountryNames = false;\n }\n\n var initialCountry = $country.val() || initialCountryCode,\n preferredCountries = [];\n initialCountry = initialCountry ? initialCountry.toLowerCase() : '';\n\n if (initialCountry) {\n preferredCountries.push(initialCountry);\n }\n\n // for Canary Islands, Ceuta and Melilla, use the Spain data for the phone\n if (initialCountry == 'ic' || initialCountry == 'ea') {\n initialCountry = 'es';\n }\n\n if ($phone.length > 0) {\n // https://github.com/jackocnr/intl-tel-input/tree/v20.0.0?tab=readme-ov-file#initialisation-options\n iti = window.intlTelInput($phone[0], {\n countrySearch: false,\n autoPlaceholder: 'aggressive',\n initialCountry: initialCountry,\n nationalMode: true,\n preferredCountries: preferredCountries,\n hiddenInput: function(telInputName) {\n return {\n phone: telInputName\n }\n }\n });\n iti.promise.then(function () {\n if ($phone.parent().hasClass('iti')) {\n $phone.attr('name', function (i, attr) {return attr + '_intltel';});\n }\n\n $country.on('change selectmenuchange', function () {\n countryCode = $country.val();\n phone = $.trim($phone.val());\n if (countryCode !== '' && phone === '') {\n iti.setCountry(countryCode.toLowerCase());\n }\n });\n\n $phone.rules('add', {phoneintl: []});\n });\n\n return iti;\n }\n}\n\nexports.init = init;\n","'use strict';\n\n/* globals $ window */\n\n/**\n * Set defaults for validator\n */\nvar defaults = $.validator.defaults;\n\ndefaults.errorClass = 'gl_error-message';\ndefaults.errorElement = 'span';\ndefaults.ignore = ':hidden:not(.forcevalidation)';\ndefaults.errorPlacement = function (error, element) {\n var $fieldset = $(element).closest('.gl_form-group');\n $fieldset.find('span.gl_error-message').remove();\n $fieldset.append(error);\n};\ndefaults.highlight = function (element) {\n var $element = $(element),\n $formGroup = $element.closest('.gl_form-group'),\n $successContainer = $formGroup.find('.gl_input-success-container');\n\n if (!$element.attr('formnovalidate')) {\n if ($element.val() != $element.attr('placeholder')) {\n $formGroup.find('.backend-error-message').remove();\n $formGroup.addClass('gl_has-error');\n }\n\n $formGroup.removeClass('gl_has-success');\n $successContainer.attr('aria-hidden', 'true');\n }\n};\ndefaults.unhighlight = function (element) {\n var $element = $(element),\n $formGroup = $element.closest('.gl_form-group'),\n $successContainer = $formGroup.find('.gl_input-success-container');\n\n if (!$element.attr('formnovalidate')) {\n $formGroup.removeClass('gl_has-error');\n $formGroup.find('.backend-error-message').remove();\n $formGroup.find('span.gl_error-message').remove();\n\n if (!$formGroup.hasClass('gl_no-success-allowed')) {\n if ($element.val() != $element.attr('placeholder')) {\n $formGroup.addClass('gl_has-success');\n $successContainer.attr('aria-hidden', 'false');\n }\n }\n }\n};\n\n/**\n * Add XSS check validation\n */\n$.validator.addMethod('xss', function (value) {\n var regexp = new RegExp(window.Resources.FORM_XSS_PATTERN, 'gi');\n return !regexp.test(value);\n}, window.Resources.FORM_XSS_ERROR_MESSAGE);\n\n/**\n * Add email validation\n */\n$.validator.addMethod('email', function (value, el) {\n $.validator.messages.email = el.dataset.msgParse || '';\n var pattern = el.dataset.regexp;\n var regExp = new RegExp(pattern);\n\n return regExp.test(value);\n}, '');\n\n/**\n * Add pattern validation\n */\n$.validator.addMethod('pattern', function (value, el) {\n $.validator.messages.pattern = el.dataset.msgParse || '';\n var pattern = el.dataset.regexp;\n var regExp = new RegExp(pattern);\n var success = regExp.test(value);\n\n return success;\n}, '');\n\n/**\n * Add phoneintl method\n */\n$.validator.addMethod('phoneintl', function (value, el) {\n if (value === '') {\n // no value, should be managed by the required status of the field\n return true;\n }\n\n var $el = $(el);\n if ($el.parent().hasClass('iti')) {\n return window.intlTelInputGlobals.getInstance(el).isValidNumber();\n }\n\n return true;\n}, window.Resources.INVALID_PHONE);\n\n/**\n * Add file upload type check\n */\n$.validator.addMethod('filetype', function (value, el) {\n if (value === '') {\n // no value, should be managed by the required status of the field\n return true;\n }\n\n var allowedTypes = el.accept,\n valueData = el.value.split('.'),\n fileType = valueData.length ? valueData[valueData.length - 1] : valueData[0];\n\n // security\n if (!allowedTypes) {\n return true;\n }\n\n return allowedTypes.split(',').some(function (type) {\n // on index 0 is the dot \".\"\n return type.indexOf(fileType) > 0;\n });\n}, window.Resources.INVALID_FILE_TYPE);\n\nvar setValidatorDefaults = function () {\n $.validator.setDefaults(defaults); // security\n};\n\nmodule.exports.init = function () {\n setValidatorDefaults();\n};\n"]}