{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/checkout/formErrors.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/collapsibleItem.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/consentTracking.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/cookie.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/countrySelector.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/footer.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/scrollAnimate.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/toolTip.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/thirdParty/bootstrap.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/cart/cart.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/common/handleADA.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/common/input-animation.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/countrySelectorModal.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/geolocationModal.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/menu.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/miniCart.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/newsletterModal.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/search.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/slick-lightbox/slick-lightbox.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/spinner.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/login/login.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/main.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/base.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/detail.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/utilities/navigationUtilities.js","webpack:///./node_modules/bootstrap/js/src/alert.js","webpack:///./node_modules/bootstrap/js/src/carousel.js","webpack:///./node_modules/bootstrap/js/src/collapse.js","webpack:///./node_modules/bootstrap/js/src/modal.js","webpack:///./node_modules/bootstrap/js/src/scrollspy.js","webpack:///./node_modules/bootstrap/js/src/tab.js","webpack:///./node_modules/bootstrap/js/src/util.js","webpack:///./node_modules/detect-autofill/dist/detect-autofill.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/slick-carousel/slick/slick.js","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js","webpack:///(webpack)/buildin/global.js"],"names":["require","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","element","_element","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","removeData","selector","Util","getSelectorFromElement","parent","document","querySelector","closest","closeEvent","Event","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","config","each","$element","data","alertInstance","preventDefault","close","on","_handleDismiss","_jQueryInterface","Constructor","noConflict","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","window","PointerEvent","MSPointerEvent","_addEventListeners","_slide","hidden","is","css","next","triggerTransitionEnd","cycle","clearInterval","_updateInterval","setInterval","visibilityState","nextWhenVisible","bind","index","activeIndex","_getItemIndex","length","to","direction","off","typeCheckConfig","absDeltax","Math","abs","prev","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","toUpperCase","clientX","touches","move","end","_handleSwipe","clearTimeout","setTimeout","querySelectorAll","e","classList","add","test","target","tagName","which","parentNode","slice","call","indexOf","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","indicators","nextIndicator","children","addClass","elementInterval","parseInt","getAttribute","defaultInterval","activeElementIndex","nextElement","_getItemByDirection","nextElementIndex","isCycling","directionalClassName","orderClassName","_triggerSlideEvent","_setActiveIndicatorElement","slidEvent","reflow","action","TypeError","ride","slideIndex","_dataApiClickHandler","carousels","i","len","$carousel","toggle","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","contains","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","isElement","jquery","_getTargetFromElement","triggerArray","isOpen","toggleClass","currentTarget","$trigger","selectors","$target","ESCAPE_KEYCODE","backdrop","focus","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","forEach","htmlElement","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_triggerBackdropTransition","handleUpdate","_resetAdjustments","_resetScrollbar","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","_removeBackdrop","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","offset","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","getUID","pageYOffset","max","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","isActiveTarget","queries","split","$link","join","find","parents","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_DISABLED","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","nodeName","makeArray","hiddenEvent","container","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","setTransitionEndSupport","special","prefix","random","getElementById","hrefAttr","trim","_","transitionDelay","floatTransitionDuration","floatTransitionDelay","offsetHeight","supportsTransitionEnd","componentName","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","Error","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","jQueryDetection","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb,oBAAoB,mBAAO,CAAC,gKAA6B;;AAEzD;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCa;;AAEb;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;AClFa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;ACjBa;;AAEb,kBAAkB,mBAAO,CAAC,gJAAqB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACrHa;;AAEb;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3Ca;;AAEb,4BAA4B,mBAAO,CAAC,oKAAyB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,4CAA4C;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb,4BAA4B;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACvEa;;AAEb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;;;;;;;;;;;;;ACVa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCa;;AAEb,oBAAoB,mBAAO,CAAC,oJAAiB;;AAE7C;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;AC3Da;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ca;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACda;;AAEb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACVAA,mBAAO,CAAC,yEAAD,CAAP;;AACAA,mBAAO,CAAC,2EAAD,CAAP,C,CACA;;;AACAA,mBAAO,CAAC,iFAAD,CAAP;;AACAA,mBAAO,CAAC,iFAAD,CAAP,C,CACA;;;AACAA,mBAAO,CAAC,2EAAD,CAAP;;AACAA,mBAAO,CAAC,mFAAD,CAAP;;AACAA,mBAAO,CAAC,uEAAD,CAAP,C,CACA;AACA,0C;;;;;;;;;;;;ACVa;;AAEb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACZa;;AAEb,WAAW,mBAAO,CAAC,iGAAiB;AACpC,kBAAkB,mBAAO,CAAC,kJAAuB;;AAEjD;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,kCAAkC;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,uCAAuC,kCAAkC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC;AAC/F;AACA;AACA;AACA,0EAA0E;AAC1E;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,kCAAkC,EAAE;;AAE5E;AACA,wCAAwC,uCAAuC,EAAE;;AAEjF;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8DAA8D,IAAI;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;;AAEA;AACA;AACA,+CAA+C,IAAI;AACnD,oDAAoD,IAAI;;AAExD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACngCa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxFa;;AAEb,mBAAO,CAAC,+EAAiB;;AAEzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;AC5Ia;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACrGa;;AAEb,4BAA4B,mBAAO,CAAC,kLAAuC;AAC3E,qBAAqB,mBAAO,CAAC,qHAA2B;AACxD,kBAAkB,mBAAO,CAAC,kJAAuB;AACjD,gBAAgB,mBAAO,CAAC,yGAAqB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wDAAwD;AACxD;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,oDAAoD;AACpD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,oDAAoD;AACpD;AACA,iBAAiB,yCAAyC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,oDAAoD;AACpD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,qCAAqC;AACrC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb,4BAA4B;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;;;;;;;;;;;;AClXa;;AAEb,WAAW,mBAAO,CAAC,2FAAc;;AAEjC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;AClFA;;AAEa;;AAEb;AACA,qBAAqB,mBAAO,CAAC,oKAAgC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,8DAA8D,yCAAyC;;AAEvG;AACA,wCAAwC,sCAAsC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACzKa;;AAEb,eAAe,mBAAO,CAAC,0DAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;AChRA;;AAEa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kKAAkK;AAClK;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACrUY;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mDAAmD;AACtE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1EA;;AAEa;;;AAGb;AACA,yBAAyB,mBAAO,CAAC,oKAAgC;AACjE,kCAAkC,mBAAO,CAAC,0KAAmC;AAC7E,yBAAyB,mBAAO,CAAC,qHAA2B;;AAE5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8GAA8G;AAC1I,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4BAA4B,2DAA2D;AACvF;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gCAAgC,8DAA8D;AAC9F,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,gCAAgC,8DAA8D;AAC9F;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,CAAC;;;;;;;;;;;;;AChaD,2BAA2B,mBAAO,CAAC,oDAAQ;AAC3C,qBAAqB,mBAAO,CAAC,0HAAW;AACxC,mBAAmB,mBAAO,CAAC,wFAAuB;;AAElD;AACA;AACA,mBAAmB,mBAAO,CAAC,sGAAmB;AAC9C,mBAAmB,mBAAO,CAAC,oJAAwB;AACnD,mBAAmB,mBAAO,CAAC,sKAAiC;AAC5D,mBAAmB,mBAAO,CAAC,oJAAwB;AACnD,mBAAmB,mBAAO,CAAC,8GAAuB;AAClD,mBAAmB,mBAAO,CAAC,sKAAiC;AAC5D,mBAAmB,mBAAO,CAAC,0GAAqB;AAChD,mBAAmB,mBAAO,CAAC,gLAAsC;AACjE,mBAAmB,mBAAO,CAAC,sKAAiC;AAC5D,mBAAmB,mBAAO,CAAC,sJAAyB;AACpD,mBAAmB,mBAAO,CAAC,sIAAmC;AAC9D,mBAAmB,mBAAO,CAAC,8HAA+B;AAC1D,mBAAmB,mBAAO,CAAC,4HAA8B;AACzD,mBAAmB,mBAAO,CAAC,8FAAe;AAC1C,mBAAmB,mBAAO,CAAC,kIAAiC;AAC5D;AACA,CAAC;;AAED,mBAAO,CAAC,0JAA2B;AACnC,mBAAO,CAAC,4GAAsB;AAC9B,mBAAO,CAAC,oEAAgB;AACxB,mBAAO,CAAC,wJAA4C;;;;;;;;;;;;;AC3BvC;;AAEb,kBAAkB,mBAAO,CAAC,kJAAuB;AACjD,kBAAkB,mBAAO,CAAC,wJAA0B;AACpD,oBAAoB,mBAAO,CAAC,4FAAU;AACtC,sBAAsB,mBAAO,CAAC,4FAAU;AACxC,4BAA4B,mBAAO,CAAC,4FAAU;AAC9C,0BAA0B,mBAAO,CAAC,4FAAU;;AAE5C;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gGAAgG,QAAQ,SAAS,aAAa,cAAc;AAC5I;AACA,kHAAkH,cAAc,qBAAqB;AACrJ;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,mBAAmB,6CAA6C;AAChE;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA,mBAAmB,uDAAuD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAA2C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE,qBAAqB;AACvF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,EAAE,kCAAkC,EAAE;AACtG;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACt9Ca;;AAEb,WAAW,mBAAO,CAAC,wFAAQ;AAC3B,gBAAgB,mBAAO,CAAC,yGAAqB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C,kCAAkC,EAAE;;AAEhF;AACA,4CAA4C,uCAAuC,EAAE;;AAErF;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2HAA2H;AAC3L;AACA,iBAAiB;AACjB,gEAAgE,6CAA6C;AAC7G;AACA,aAAa;AACb,4DAA4D,6CAA6C;AACzG;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AC5lBA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,IAAI,GAAG,OAAb;AACA,IAAMC,OAAO,GAAG,OAAhB;AACA,IAAMC,QAAQ,GAAG,UAAjB;AACA,IAAMC,SAAS,cAAOD,QAAP,CAAf;AACA,IAAME,YAAY,GAAG,WAArB;AACA,IAAMC,kBAAkB,GAAGC,6CAAC,CAACC,EAAF,CAAKP,IAAL,CAA3B;AAEA,IAAMQ,gBAAgB,GAAG,wBAAzB;AAE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AAK,iBAAiB,mBAAmB,YAAY,WAAW,KAAK,sBAAsB,iFAAiF,IAAI,eAAe,YAAY,kCAAkC,qCAAqC,cAAc,EAAE,2FAA2F,SAAS,oBAAoB,QAAQ,cAAc,4LAA4L,aAAa,IAAI,+CAA+C,eAAe,UAAU,EAAE,SAAS,0BAA0B,IAAI,yDAAyD,GAAG,G;;;;;;;;;;;ACA1nM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,MAAM,KAA0B;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF,6CAA6C;AAC7C;AACA;AACA,kBAAkB,kCAAkC;AACpD,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD,UAAU,4CAA4C;AACtD;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,QAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,0BAA0B,wBAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,0CAA0C;AAC1C,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,sCAAsC;AAC9E,oCAAoC,uCAAuC;AAC3E,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,qCAAqC;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA,GAAG;AACH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;AACF;;AAEA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,sBAAsB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAuC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,cAAc,qCAAqC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C,cAAc,WAAW;AACxE,mBAAmB,UAAU;AAC7B;AACA,sBAAsB,cAAc,sBAAsB,gBAAgB;AAC1E,gBAAgB,WAAW,YAAY;AACvC,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa;;AAEb;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,KAAK;AACL;;AAEA,WAAW;AACX,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,gDAAgD;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,sBAAsB;AACtB,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD,eAAe,6DAA6D;AAC5E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,oGAAE;AACJ;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,CAAC;;;;;;;;;;;;ACvnVD,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;;AAEA;;;;;;;;;;;;;ACHA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAO,CAAC,yEAAQ,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACnC,KAAK,MAAM,EAIN;;AAEL,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;;AAEA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA,0BAA0B;AAC1B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA,0BAA0B,oBAAoB;AAC9C;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb,SAAS;;AAET;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb,SAAS;;AAET;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa;;AAEb,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA,gEAAgE,SAAS;AACzE;AACA,kCAAkC,gBAAgB;AAClD,WAAW;AACX;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,aAAa;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;;AAEzB;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,iCAAiC,6BAA6B;;AAE9D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD,aAAa;AACb;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,oCAAoC,uBAAuB;AAC3D;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA,SAAS;;AAET;;AAEA;;AAEA,aAAa;;;AAGb,SAAS;;AAET;;AAEA;;AAEA;;AAEA,iBAAiB;;AAEjB;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;;AAEA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,SAAS;;AAET;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,aAAa;;AAEb;AACA;;AAEA,aAAa;;AAEb;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;ACl8FD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,MAAM,IAA4D;AAClE;AACA,sBAAsB;AACtB,GAAG,MAAM,EAGN;;AAEH,CAAC;;;;;;;;;;;;AChbD;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C","file":"default/js/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/app_custom_core/cartridge/client/default/js/main.js\");\n","'use strict';\n\nvar scrollAnimate = require('../components/scrollAnimate');\n\n/**\n * Display error messages and highlight form fields with errors.\n * @param {string} parentSelector - the form which contains the fields\n * @param {Object} fieldErrors - the fields with errors\n */\nfunction loadFormErrors(parentSelector, fieldErrors) { // eslint-disable-line\n // Display error messages and highlight form fields with errors.\n $.each(fieldErrors, function (attr) {\n $('*[name=' + attr + ']', parentSelector)\n .addClass('is-invalid')\n .siblings('.invalid-feedback')\n .html(fieldErrors[attr]);\n });\n // Animate to top of form that has errors\n scrollAnimate($(parentSelector));\n}\n\n/**\n * Clear the form errors.\n * @param {string} parentSelector - the parent form selector.\n */\nfunction clearPreviousErrors(parentSelector) {\n $(parentSelector).find('.form-control.is-invalid').removeClass('is-invalid');\n $('.error-message').hide();\n}\n\nmodule.exports = {\n loadFormErrors: loadFormErrors,\n clearPreviousErrors: clearPreviousErrors\n};\n","'use strict';\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n var valid = true;\n if (this.checkValidity && !this.checkValidity()) {\n // safari\n valid = false;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n $(this).find('input, select').each(function () {\n if (!this.validity.valid) {\n $(this).trigger('invalid', this.validity);\n }\n });\n }\n return valid;\n}\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearForm(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = {\n invalid: function () {\n $('form input, form select').on('invalid', function (e) {\n e.preventDefault();\n this.setCustomValidity('');\n if (!this.validity.valid) {\n var validationMessage = this.validationMessage;\n $(this).addClass('is-invalid');\n if (this.validity.patternMismatch && $(this).data('pattern-mismatch')) {\n validationMessage = $(this).data('pattern-mismatch');\n }\n if ((this.validity.rangeOverflow || this.validity.rangeUnderflow)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if ((this.validity.tooLong || this.validity.tooShort)\n && $(this).data('range-error')) {\n validationMessage = $(this).data('range-error');\n }\n if (this.validity.valueMissing && $(this).data('missing-error')) {\n validationMessage = $(this).data('missing-error');\n }\n $(this).parents('.form-group').find('.invalid-feedback')\n .text(validationMessage);\n }\n });\n },\n\n submit: function () {\n $('form').on('submit', function (e) {\n return validateForm.call(this, e);\n });\n },\n\n buttonClick: function () {\n $('form button[type=\"submit\"], form input[type=\"submit\"]').on('click', function () {\n // clear all errors when trying to submit the form\n clearForm($(this).parents('form'));\n });\n },\n\n functions: {\n validateForm: function (form, event) {\n validateForm.call($(form), event || null);\n },\n clearForm: clearForm\n }\n};\n","'use strict';\nmodule.exports = function () {\n var sizes = ['xs', 'sm', 'md', 'lg', 'xl'];\n\n sizes.forEach(function (size) {\n var selector = '.collapsible-' + size + ' .title';\n $('body').on('click', selector, function (e) {\n e.preventDefault();\n $(this).parents('.collapsible-' + size).toggleClass('active');\n\n if ($(this).parents('.collapsible-' + size).hasClass('active')) {\n $(this).attr('aria-expanded', true);\n } else {\n $(this).attr('aria-expanded', false);\n }\n });\n });\n};\n","'use strict';\n\nvar focusHelper = require('../components/focus');\n\n/**\n * Renders a modal window that will track the users consenting to accepting site tracking policy\n */\nfunction showConsentModal() {\n var trackingConsentData = $('.tracking-consent');\n if (!trackingConsentData.data('caonline')) {\n return;\n }\n\n var urlContent = trackingConsentData.data('url');\n var urlAccept = trackingConsentData.data('accept');\n var urlReject = trackingConsentData.data('reject');\n var textYes = trackingConsentData.data('accepttext');\n var textNo = trackingConsentData.data('rejecttext');\n var textHeader = trackingConsentData.data('heading');\n var tokenName = trackingConsentData.data('tokenname');\n var token = trackingConsentData.data('token');\n\n var htmlString = ''\n + '
'\n + '
'\n + ''\n + '
'\n + '
'\n + textHeader\n + '
'\n + '
'\n + '
'\n + '
'\n + ''\n + ''\n + '
'\n + '
'\n + '
'\n + '
'\n + '
';\n $.spinner().start();\n $('body').append(htmlString);\n\n $.ajax({\n url: urlContent,\n type: 'get',\n dataType: 'html',\n success: function (response) {\n $('.modal-body').html(response);\n $('#consent-tracking').modal('show');\n },\n error: function () {\n $('#consent-tracking').remove();\n }\n });\n\n $('#consent-tracking .button-wrapper button').click(function (e) {\n e.preventDefault();\n var url = $(this).data('url');\n var data = {};\n data[tokenName] = token;\n $.ajax({\n url: url,\n type: 'post',\n data: data,\n dataType: 'json',\n success: function (response) {\n // Only hide modal if the operation is successful - don't want to give a false impression\n if (response.success) {\n $('#consent-tracking').remove();\n $.spinner().stop();\n }\n },\n error: function (err) {\n // Expected error response is for CSRF failure, which will include a redirect to CSRF-Fail\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n }\n });\n });\n}\n\nmodule.exports = function () {\n if ($('.consented').length === 0 && $('.tracking-consent').hasClass('api-true')) {\n showConsentModal();\n }\n\n if ($('.tracking-consent').hasClass('api-true')) {\n $('.tracking-consent').click(function () {\n showConsentModal();\n });\n }\n\n $('body').on('shown.bs.modal', '#consent-tracking', function () {\n $('#consent-tracking').siblings().attr('aria-hidden', 'true');\n $('#consent-tracking .affirm').focus();\n });\n\n $('body').on('hidden.bs.modal', '#consent-tracking', function () {\n $('#consent-tracking').siblings().attr('aria-hidden', 'false');\n });\n\n $('body').on('keydown', '#consent-tracking', function (e) {\n var focusParams = {\n event: e,\n containerSelector: '#consent-tracking',\n firstElementSelector: '.affirm',\n lastElementSelector: '.decline',\n nextToLastElementSelector: '.affirm'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n};\n","'use strict';\n\n/**\n * Get cookie value by cookie name from browser\n * @param {string} cookieName - name of the cookie\n * @returns {string} cookie value of the found cookie name\n */\nfunction getCookie(cookieName) {\n var name = cookieName + '=';\n var decodedCookie = decodeURIComponent(document.cookie);\n var cookieArray = decodedCookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookieItem = cookieArray[i];\n while (cookieItem.charAt(0) === ' ') {\n cookieItem = cookieItem.substring(1);\n }\n if (cookieItem.indexOf(name) === 0) {\n return cookieItem.substring(name.length, cookieItem.length);\n }\n }\n return '';\n}\n\nmodule.exports = function () {\n if ($('.valid-cookie-warning').length > 0) {\n var previousSessionID = window.localStorage.getItem('previousSid');\n var currentSessionID = getCookie('sid');\n if (!previousSessionID && currentSessionID) {\n // When a user first time visit the home page,\n // set the previousSessionID to currentSessionID\n // and Show the cookie alert\n previousSessionID = currentSessionID;\n window.localStorage.setItem('previousSid', previousSessionID);\n $('.cookie-warning-messaging').show();\n } else if (previousSessionID && previousSessionID === currentSessionID) {\n // Hide the cookie alert if user is in the same session\n $('.cookie-warning-messaging').hide();\n } else {\n // Clear the previousSessionID from localStorage\n // when user session is changed or expired\n window.localStorage.removeItem('previousSid');\n }\n }\n};\n","'use strict';\n\nvar keyboardAccessibility = require('./keyboardAccessibility');\n\nmodule.exports = function () {\n $('.country-selector a').click(function (e) {\n e.preventDefault();\n var action = $('.page').data('action');\n var localeCode = $(this).data('locale');\n var localeCurrencyCode = $(this).data('currencycode');\n var queryString = $('.page').data('querystring');\n var url = $('.country-selector').data('url');\n\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n data: {\n code: localeCode,\n queryString: queryString,\n CurrencyCode: localeCurrencyCode,\n action: action\n },\n success: function (response) {\n $.spinner().stop();\n if (response && response.redirectUrl) {\n window.location.href = response.redirectUrl;\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n\n keyboardAccessibility('.navbar-header .country-selector',\n {\n 40: function ($countryOptions) { // down\n if ($(this).is(':focus')) {\n $countryOptions.first().focus();\n } else {\n $(':focus').next().focus();\n }\n },\n 38: function ($countryOptions) { // up\n if ($countryOptions.first().is(':focus') || $(this).is(':focus')) {\n $(this).focus();\n $(this).removeClass('show');\n } else {\n $(':focus').prev().focus();\n }\n },\n 27: function () { // escape\n $(this).focus();\n $(this).removeClass('show').children('.dropdown-menu').removeClass('show');\n },\n 9: function () { // tab\n $(this).removeClass('show').children('.dropdown-menu').removeClass('show');\n }\n },\n function () {\n if (!($(this).hasClass('show'))) {\n $(this).addClass('show');\n }\n return $(this).find('.dropdown-country-selector').children('a');\n }\n );\n\n $('.navbar-header .country-selector').on('focusin', function () {\n $(this).addClass('show').children('.dropdown-menu').addClass('show');\n });\n};\n","'use strict';\n\nmodule.exports = function (element, message) {\n var errorHtml = '
' +\n '' + message + '
';\n\n $(element).append(errorHtml);\n};\n","'use strict';\n\nmodule.exports = {\n setTabNextFocus: function (focusParams) {\n var KEYCODE_TAB = 9;\n var isTabPressed = (focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB);\n\n if (!isTabPressed) {\n return;\n }\n\n var firstFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.firstElementSelector);\n var lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.lastElementSelector);\n\n if ($(focusParams.containerSelector + ' ' + focusParams.lastElementSelector).is(':disabled')) {\n lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.nextToLastElementSelector);\n if ($('.product-quickview.product-set').length > 0) {\n var linkElements = $(focusParams.containerSelector + ' a#fa-link.share-icons');\n lastFocusableEl = linkElements[linkElements.length - 1];\n }\n }\n\n if (focusParams.event.shiftKey) /* shift + tab */ {\n if ($(':focus').is(firstFocusableEl)) {\n lastFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n } else /* tab */ {\n if ($(':focus').is(lastFocusableEl)) { // eslint-disable-line\n firstFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n }\n }\n};\n","'use strict';\n\nvar scrollAnimate = require('./scrollAnimate');\n\n/**\n * appends params to a url\n * @param {string} data - data returned from the server's ajax call\n * @param {Object} button - button that was clicked for email sign-up\n */\nfunction displayMessage(data, button) {\n $.spinner().stop();\n var status;\n if (data.success) {\n status = 'alert-success';\n } else {\n status = 'alert-danger';\n }\n\n if ($('.email-signup-message').length === 0) {\n $('body').append(\n '
'\n );\n }\n $('.email-signup-message')\n .append('
' + data.msg + '
');\n\n setTimeout(function () {\n $('.email-signup-message').remove();\n button.removeAttr('disabled');\n }, 3000);\n}\n\nmodule.exports = function () {\n $('.back-to-top').click(function () {\n scrollAnimate();\n });\n\n $('.subscribe-email').on('click', function (e) {\n e.preventDefault();\n var url = $(this).data('href');\n var button = $(this);\n var emailId = $('input[name=hpEmailSignUp]').val();\n $.spinner().start();\n $(this).attr('disabled', true);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: {\n emailId: emailId\n },\n success: function (data) {\n displayMessage(data, button);\n },\n error: function (err) {\n displayMessage(err, button);\n }\n });\n });\n};\n","'use strict';\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function (key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\n .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n }\n }\n });\n }\n if (payload && payload.error) {\n var form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n form.prepend('
'\n + payload.error.join('
') + '
');\n }\n};\n","'use strict';\n\nmodule.exports = function (selector, keyFunctions, preFunction) {\n $(selector).on('keydown', function (e) {\n var key = e.which;\n var supportedKeyCodes = [37, 38, 39, 40, 27];\n if (supportedKeyCodes.indexOf(key) >= 0) {\n e.preventDefault();\n }\n var returnedScope = preFunction.call(this);\n if (keyFunctions[key]) {\n keyFunctions[key].call(this, returnedScope);\n }\n });\n};\n","'use strict';\n\nmodule.exports = function (element) {\n var position = element && element.length ? element.offset().top : 0;\n $('html, body').animate({\n scrollTop: position\n }, 500);\n if (!element) {\n $('.logo-home').focus();\n }\n};\n","'use strict';\n\nmodule.exports = function () {\n $('.info-icon').on('mouseenter focusin', function () {\n $(this).find('.tooltip').removeClass('d-none');\n });\n\n $('.info-icon').on('mouseleave focusout', function () {\n $(this).find('.tooltip').addClass('d-none');\n });\n};\n","require('bootstrap/js/src/util.js');\nrequire('bootstrap/js/src/alert.js');\n// require('bootstrap/js/src/button.js');\nrequire('bootstrap/js/src/carousel.js');\nrequire('bootstrap/js/src/collapse.js');\n// require('bootstrap/js/src/dropdown.js');\nrequire('bootstrap/js/src/modal.js');\nrequire('bootstrap/js/src/scrollspy.js');\nrequire('bootstrap/js/src/tab.js');\n// require('bootstrap/js/src/tooltip.js');\n// require('bootstrap/js/src/popover.js');\n","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n","'use strict';\n\nvar base = require('../product/base');\nvar focusHelper = require('base/components/focus');\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n var newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function (key) {\n return key + '=' + encodeURIComponent(params[key]);\n }).join('&');\n\n return newUrl;\n}\n\n/**\n * Checks whether the basket is valid. if invalid displays error message and disables\n * checkout button\n * @param {Object} data - AJAX response from the server\n */\nfunction validateBasket(data) {\n if (data.valid.error) {\n if (data.valid.message) {\n var errorHtml = '
' +\n '' + data.valid.message + '
';\n\n $('.cart-error').append(errorHtml);\n } else {\n $('.cart').empty().append('
' +\n '
' +\n '

' + data.resources.emptyCartMsg + '

' +\n '
' +\n '
'\n );\n $('.number-of-items').empty().append(data.resources.numberOfItems);\n $('.minicart-quantity').empty().append(data.numItems);\n $('.minicart-link').attr({\n 'aria-label': data.resources.minicartCountOfItems,\n title: data.resources.minicartCountOfItems\n });\n $('.minicart .popover').empty();\n $('.minicart .popover').removeClass('show');\n }\n\n $('.checkout-btn').addClass('disabled');\n } else {\n $('.checkout-btn').removeClass('disabled');\n }\n}\n\n/**\n * re-renders the line totals and the number of items in the cart\n * @param {Object} data - AJAX response from the server\n */\nfunction updateLineTotals(data, uuid) {\n for (const item of data.items) {\n if (item.UUID === uuid) {\n $('.total-line-price-' + uuid).empty().append(item.priceTotal.price);\n item.quantity > 1 ?\n $('#alertDuplicate-' + item.EAN).removeClass('d-none') :\n $('#alertDuplicate-' + item.EAN).addClass('d-none');\n }\n }\n}\n\n/**\n * re-renders the order totals and the number of items in the cart\n * @param {Object} data - AJAX response from the server\n */\nfunction updateCartTotals(data) {\n $('.number-of-items').empty().append(data.resources.numberOfItems);\n $('.shipping-cost').empty().append(data.totals.totalShippingCost);\n $('.tax-total').empty().append(data.totals.totalTax);\n $('.grand-total-sum').empty().append(data.totals.grandTotal);\n $('.sub-total').empty().append(data.totals.subTotal);\n $('.minicart-quantity').empty().append(data.numItems);\n $('.minicart-link').attr({\n 'aria-label': data.resources.minicartCountOfItems,\n title: data.resources.minicartCountOfItems\n });\n\n if (data.coupon) {\n $('.coupon-discount').removeClass('d-none');\n $('.coupon-code-applied').empty().append(data.coupontext + '(' + data.coupon + ')');\n $('.coupon-code-applied-quantity').empty().append(data.couponValue);\n } else {\n $('.coupon-discount').addClass('d-none');\n }\n\n if (data.promosValue) {\n $('.promos-discount').removeClass('d-none');\n $('.order-promos-discount-total').empty().append(data.promosValue);\n } else {\n $('.promos-discount').addClass('d-none');\n }\n\n if (data.totals.orderLevelDiscountTotal.value > 0) {\n $('.order-discount').removeClass('hide-order-discount');\n $('.order-discount-total').empty()\n .append('- ' + data.totals.orderLevelDiscountTotal.formatted);\n } else {\n $('.order-discount').addClass('hide-order-discount');\n }\n\n if (data.totals.shippingLevelDiscountTotal.value > 0) {\n $('.shipping-discount').removeClass('hide-shipping-discount');\n $('.shipping-discount-total').empty().append('- ' +\n data.totals.shippingLevelDiscountTotal.formatted);\n } else {\n $('.shipping-discount').addClass('hide-shipping-discount');\n }\n}\n\n/**\n * re-renders the order totals and the number of items in the cart\n * @param {Object} message - Error message to display\n */\nfunction createErrorNotification(message) {\n var errorHtml = '
' +\n '' + message + '
';\n\n $('.cart-error').append(errorHtml);\n}\n\n/**\n * re-renders the approaching discount messages\n * @param {Object} approachingDiscounts - updated approaching discounts for the cart\n */\nfunction updateApproachingDiscounts(approachingDiscounts) {\n var html = '';\n $('.approaching-discounts').empty();\n if (approachingDiscounts.length > 0) {\n approachingDiscounts.forEach(function (item) {\n html += '
'\n + item.discountMsg + '
';\n });\n }\n $('.approaching-discounts').append(html);\n}\n\n/**\n * Updates the availability of a product line item\n * @param {Object} data - AJAX response from the server\n * @param {string} uuid - The uuid of the product line item to update\n */\nfunction updateAvailability(data, uuid) {\n var lineItem;\n var messages = '';\n\n for (var i = 0; i < data.items.length; i++) {\n if (data.items[i].UUID === uuid) {\n lineItem = data.items[i];\n break;\n }\n }\n\n if (lineItem != null) {\n $('.availability-' + lineItem.UUID).empty();\n\n if (lineItem.availability) {\n if (lineItem.availability.messages) {\n lineItem.availability.messages.forEach(function (message) {\n messages += '

' + message + '

';\n });\n }\n\n if (lineItem.availability.inStockDate) {\n messages += '

'\n + lineItem.availability.inStockDate\n + '

';\n }\n }\n\n $('.availability-' + lineItem.UUID).html(messages);\n }\n}\n\n/**\n * Updates details of a product line item\n * @param {Object} data - AJAX response from the server\n * @param {string} uuid - The uuid of the product line item to update\n */\nfunction updateProductDetails(data, uuid) {\n $('.card.product-info.uuid-' + uuid).replaceWith(data.renderedTemplate);\n}\n\n/**\n * Generates the modal window on the first call.\n *\n */\nfunction getModalHtmlElement() {\n if ($('#editProductModal').length !== 0) {\n $('#editProductModal').remove();\n }\n var htmlString = ''\n + '
'\n + ''\n + '
'\n + ''\n + '
'\n + '
'\n + ' '\n + '
'\n + '
'\n + '
'\n + '
'\n + '
'\n + '
';\n $('body').append(htmlString);\n}\n\n/**\n * Parses the html for a modal window\n * @param {string} html - representing the body and footer of the modal window\n *\n * @return {Object} - Object with properties body and footer.\n */\nfunction parseHtml(html) {\n var $html = $('
').append($.parseHTML(html));\n\n var body = $html.find('.product-quickview');\n var footer = $html.find('.modal-footer').children();\n\n return { body: body, footer: footer };\n}\n\n/**\n * replaces the content in the modal window for product variation to be edited.\n * @param {string} editProductUrl - url to be used to retrieve a new product model\n */\nfunction fillModalElement(editProductUrl) {\n $('.modal-body').spinner().start();\n $.ajax({\n url: editProductUrl,\n method: 'GET',\n dataType: 'json',\n success: function (data) {\n var parsedHtml = parseHtml(data.renderedTemplate);\n\n $('#editProductModal .modal-body').empty();\n $('#editProductModal .modal-body').html(parsedHtml.body);\n $('#editProductModal .modal-footer').html(parsedHtml.footer);\n $('#editProductModal .modal-header .close .sr-only').text(data.closeButtonText);\n $('#editProductModal .enter-message').text(data.enterDialogMessage);\n $('#editProductModal').modal('show');\n $('body').trigger('editproductmodal:ready');\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\n/**\n * replace content of modal\n * @param {string} actionUrl - url to be used to remove product\n * @param {string} productID - pid\n * @param {string} productName - product name\n * @param {string} uuid - uuid\n */\nfunction confirmDelete(actionUrl, productID, productName, uuid, productColorToRemove) {\n var $deleteConfirmBtn = $('.cart-delete-confirmation-btn');\n var $productToRemoveSpan = $('.product-to-remove');\n\n $deleteConfirmBtn.data('pid', productID);\n $deleteConfirmBtn.data('action', actionUrl);\n $deleteConfirmBtn.data('uuid', uuid);\n\n $productToRemoveSpan.empty().append(productName + ' ' + productColorToRemove);\n}\n\n\nvar getColorToRevome = function (buttonClick) {\n var productColorToRemove = '';\n var parent = buttonClick.closest('.card.product-info');\n parent.find('p').each(function (index, element) {\n if (/Colour|Farbe|Color|Couleur|Kleur|Cor/.test(element.className)) {\n productColorToRemove = element.innerText;\n productColorToRemove = productColorToRemove.split(': ');\n productColorToRemove.length > 2 ?\n productColorToRemove = productColorToRemove + ' ' + productColorToRemove.shift() : productColorToRemove = productColorToRemove[1];\n return productColorToRemove;\n }\n });\n\n if (!productColorToRemove) { // si llega vacío es porque está borrando desde el mini-cart\n parent = buttonClick.closest('.product-line-item-details');\n parent.find('div').each(function (index, element) {\n if (element.className.includes('item-attributes')) {\n productColorToRemove = element.innerText;\n productColorToRemove = productColorToRemove.split('\\n');\n productColorToRemove.forEach(function (attr) {\n if (/Colour|Farbe|Color|Couleur|Kleur|Cor/.test(attr)) {\n productColorToRemove = attr.split(': ')[1];\n return productColorToRemove;\n }\n });\n }\n });\n }\n return productColorToRemove;\n};\n\n/**\n * Función para eliminar un producto del carrito\n * @param {*} pid Ean que vamos a eliminar del carrito\n */\nfunction removeComplementaryProduct(pid, uuid) {\n const urlParams = {\n pid: pid,\n uuid: uuid\n };\n const url = $('.remove-product').attr('data-action');\n const removeFromCartUrl = appendToUrl(url, urlParams);\n\n $.ajax({\n url: removeFromCartUrl,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n if (data.basket.items.length === 0) {\n $('.number-of-items').empty().append(data.basket.resources.numberOfItems);\n $('.minicart-quantity').empty().append(data.basket.numItems);\n $('.minicart-link').attr({\n 'aria-label': data.basket.resources.minicartCountOfItems,\n title: data.basket.resources.minicartCountOfItems\n });\n $('.minicart .popover').empty();\n $('.minicart .popover').removeClass('show');\n $('body').removeClass('modal-open');\n $('html').removeClass('veiled');\n $('.minicart-empty').removeClass('d-none');\n $('.minicart-item').addClass('d-none');\n window.location.reload();\n } else {\n if (data.toBeDeletedUUIDs && data.toBeDeletedUUIDs.length > 0) {\n for (var i = 0; i < data.toBeDeletedUUIDs.length; i++) {\n $('.uuid-' + data.toBeDeletedUUIDs[i]).remove();\n }\n }\n\n $('.coupons-and-promos').empty().append(data.basket.totals.discountsHtml);\n $('.minicart-empty').addClass('d-none');\n $('.minicart-item').removeClass('d-none');\n updateCartTotals(data.basket);\n updateApproachingDiscounts(data.basket.approachingDiscounts);\n $('body').trigger('setShippingMethodSelection', data.basket);\n validateBasket(data.basket);\n $('body').trigger('cart:onlyUpdate', data);\n }\n\n $.spinner().stop();\n return;\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification(err.responseJSON.errorMessage);\n $.spinner().stop();\n }\n return;\n }\n });\n}\n\nmodule.exports = function () {\n $('body').on('click', '.remove-product', function (e) {\n e.preventDefault();\n\n var actionUrl = $(this).data('action');\n var productID = $(this).data('pid');\n var productName = $(this).data('name');\n var uuid = $(this).data('uuid');\n var buttonClick = $(this);\n\n var productColorToRemove = getColorToRevome(buttonClick);\n confirmDelete(actionUrl, productID, productName, uuid, productColorToRemove);\n });\n\n $('body').on('afterRemoveFromCart', function (e, data) {\n e.preventDefault();\n var productColorToRemove = getColorToRevome();\n confirmDelete(data.actionUrl, data.productID, data.productName, data.uuid, productColorToRemove);\n });\n\n $('body').on('click', '.cart-delete-confirmation-btn', function (e) {\n e.preventDefault();\n\n var productID = $(this).data('pid');\n var url = $(this).data('action');\n var uuid = $(this).data('uuid');\n var urlParams = {\n pid: productID,\n uuid: uuid\n };\n\n url = appendToUrl(url, urlParams);\n\n $('body > .modal-backdrop').remove();\n\n $.spinner().start();\n\n $('body').trigger('cart:beforeUpdate');\n\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n if (data.basket.items.length === 0) {\n $('.number-of-items').empty().append(data.basket.resources.numberOfItems);\n $('.minicart-quantity').empty().append(data.basket.numItems);\n $('.minicart-link').attr({\n 'aria-label': data.basket.resources.minicartCountOfItems,\n title: data.basket.resources.minicartCountOfItems\n });\n $('.minicart .popover').empty();\n $('.minicart .popover').removeClass('show');\n $('body').removeClass('modal-open');\n $('html').removeClass('veiled');\n $('.minicart-empty').removeClass('d-none');\n $('.minicart-item').addClass('d-none');\n window.location.reload();\n } else {\n if (data.toBeDeletedUUIDs && data.toBeDeletedUUIDs.length > 0) {\n for (var i = 0; i < data.toBeDeletedUUIDs.length; i++) {\n $('.uuid-' + data.toBeDeletedUUIDs[i]).remove();\n }\n }\n $('.uuid-' + uuid).next().remove();\n $('.uuid-' + uuid).remove();\n if (!data.basket.hasBonusProduct) {\n $('.bonus-product').remove();\n }\n $('.coupons-and-promos').empty().append(data.basket.totals.discountsHtml);\n $('.minicart-empty').addClass('d-none');\n $('.minicart-item').removeClass('d-none');\n updateCartTotals(data.basket);\n updateApproachingDiscounts(data.basket.approachingDiscounts);\n $('body').trigger('setShippingMethodSelection', data.basket);\n validateBasket(data.basket);\n\n // Comprobamos si el elemento eliminado es uno de los productos complementarios, para desmarcarlo.\n let addComplementaryBlock = true;\n $('label[id*=\"labelComplementaryProduct-\"]').each(function () {\n const item = $(this);\n // Mismo elemento que ha sido eliminado del carrito, lo desmarcamos si está marcado\n if (item[0].attributes.uuid.value === uuid && item[0].control.checked) {\n item.trigger('click');\n addComplementaryBlock = false;\n }\n });\n\n // Comprobamos si solo queda 1 item en el carrito tras eliminar un item, para obtener los productos recomendados de nuevo.\n if (data.basket.items.length === 1 && addComplementaryBlock) {\n const complementaryUrl = $('.card.product-info').attr('data-complementary-url');\n $.ajax({\n url: complementaryUrl,\n type: 'get',\n dataType: 'json',\n success: function (dataComplementarySale) {\n if (dataComplementarySale.success) {\n $('#productSetBlock').append(dataComplementarySale.complementarySaleHtml);\n }\n $.spinner().stop();\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n }\n });\n }\n }\n\n $('body').trigger('cart:onlyUpdate', data);\n $.spinner().stop();\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification(err.responseJSON.errorMessage);\n $.spinner().stop();\n }\n }\n });\n });\n\n $('body').on('change', '.quantity-form > .quantity', function () {\n var preSelectQty = $(this).data('pre-select-qty');\n var quantity = $(this).val();\n var productID = $(this).data('pid');\n var url = $(this).data('action');\n var uuid = $(this).data('uuid');\n\n var urlParams = {\n pid: productID,\n quantity: quantity,\n uuid: uuid\n };\n url = appendToUrl(url, urlParams);\n\n $(this).parents('.card').spinner().start();\n\n $('body').trigger('cart:beforeUpdate');\n\n $.ajax({\n url: url,\n type: 'get',\n context: this,\n dataType: 'json',\n success: function (data) {\n $('.quantity[data-uuid=\"' + uuid + '\"]').val(quantity);\n $('.coupons-and-promos').empty().append(data.totals.discountsHtml);\n data.productID = productID.toString();\n updateLineTotals(data, uuid);\n updateCartTotals(data);\n updateApproachingDiscounts(data.approachingDiscounts);\n updateAvailability(data, uuid);\n validateBasket(data);\n $(this).data('pre-select-qty', quantity);\n\n $.spinner().stop();\n if ($(this).parents('.product-info').hasClass('bonus-product-line-item') && $('.cart-page').length) {\n location.reload();\n }\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification(err.responseJSON.errorMessage);\n $(this).val(parseInt(preSelectQty, 10));\n $.spinner().stop();\n }\n }\n });\n });\n\n $('.shippingMethods').change(function () {\n var url = $(this).attr('data-actionUrl');\n var urlParams = {\n methodID: $(this).find(':selected').attr('data-shipping-id')\n };\n // url = appendToUrl(url, urlParams);\n\n $('.totals').spinner().start();\n $('body').trigger('cart:beforeShippingMethodSelected');\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: urlParams,\n success: function (data) {\n if (data.error) {\n window.location.href = data.redirectUrl;\n } else {\n $('.coupons-and-promos').empty().append(data.totals.discountsHtml);\n updateCartTotals(data);\n updateApproachingDiscounts(data.approachingDiscounts);\n validateBasket(data);\n }\n\n $('body').trigger('cart:shippingMethodSelected', data);\n $.spinner().stop();\n },\n error: function (err) {\n if (err.redirectUrl) {\n window.location.href = err.redirectUrl;\n } else {\n createErrorNotification(err.responseJSON.errorMessage);\n $.spinner().stop();\n }\n }\n });\n });\n\n $('.promo-code-form').submit(function (e) {\n e.preventDefault();\n $.spinner().start();\n $('.coupon-missing-error').hide();\n $('.coupon-error-message').empty();\n if (!$('.coupon-code-field').val()) {\n $('.promo-code-form .form-control').addClass('is-invalid');\n $('.promo-code-form .form-control').attr('aria-describedby', 'missingCouponCode');\n $('.coupon-missing-error').show();\n $.spinner().stop();\n return false;\n }\n var $form = $('.promo-code-form');\n $('.promo-code-form .form-control').removeClass('is-invalid');\n $('.coupon-error-message').empty();\n $('body').trigger('promotion:beforeUpdate');\n\n $.ajax({\n url: $form.attr('action'),\n type: 'GET',\n dataType: 'json',\n data: $form.serialize(),\n success: function (data) {\n if (data.error) {\n $('.promo-code-form .form-control').addClass('is-invalid');\n $('.promo-code-form .form-control').attr('aria-describedby', 'invalidCouponCode');\n $('.coupon-error-message').empty().append(data.errorMessage);\n $('body').trigger('promotion:error', data);\n } else if (data.reloadPayments) {\n window.location.reload();\n } else {\n $('.coupons-and-promos').empty().append(data.totals.discountsHtml);\n updateCartTotals(data);\n updateApproachingDiscounts(data.approachingDiscounts);\n validateBasket(data);\n $('#remove-promoCode').removeClass('d-none');\n $('.btn-block.promo-code-btn').addClass('d-none');\n $('#validCouponCode').removeClass('d-none');\n $('.coupon-valid-icon').removeClass('d-none');\n\n $('body').trigger('promotion:success', data);\n\n if (data.renderedOrderProductSummary) {\n if ($('klarna-placement').length > 0) {\n var totalGrossPrice = data.totalGrossPrice;\n document.querySelector('klarna-placement').dataset.purchaseAmount = (totalGrossPrice * 100).toFixed(0);\n window.KlarnaOnsiteService = window.KlarnaOnsiteService || [];\n window.KlarnaOnsiteService.push({ eventName: 'refresh-placements' });\n }\n var $html = $('
').append($.parseHTML(data.renderedOrderProductSummary));\n var contentOrderSumary = $html.find('.card.order-product-summary').children();\n if ($('.card.order-product-summary').length > 0) { // are in the checkout\n $('.card.order-product-summary').empty().append(contentOrderSumary);\n } else { // are in basket\n window.location.reload();\n }\n }\n }\n\n $.spinner().stop();\n },\n error: function (err) {\n $('body').trigger('promotion:error', err);\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification(err.errorMessage);\n $.spinner().stop();\n }\n }\n });\n return false;\n });\n\n $('body').on('click', '.cart-page .bonus-product-button', function () {\n $.spinner().start();\n $(this).addClass('launched-modal');\n $.ajax({\n url: $(this).data('url'),\n method: 'GET',\n dataType: 'json',\n success: function (data) {\n base.methods.editBonusProducts(data);\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n\n $('body').on('hidden.bs.modal', '#chooseBonusProductModal', function () {\n $('#chooseBonusProductModal').remove();\n $('.modal-backdrop').remove();\n $('body').removeClass('modal-open');\n\n if ($('.cart-page').length) {\n $('.launched-modal .btn-outline-primary').trigger('focus');\n $('.launched-modal').removeClass('launched-modal');\n } else {\n $('.product-detail .add-to-cart').focus();\n }\n });\n\n $('body').on('click', '.cart-page .product-edit .edit, .cart-page .bundle-edit .edit', function (e) {\n e.preventDefault();\n\n var editProductUrl = $(this).attr('href');\n getModalHtmlElement();\n fillModalElement(editProductUrl);\n });\n\n $('body').on('shown.bs.modal', '#editProductModal', function () {\n $('#editProductModal').siblings().attr('aria-hidden', 'true');\n $('#editProductModal .close').focus();\n });\n\n $('body').on('hidden.bs.modal', '#editProductModal', function () {\n $('#editProductModal').siblings().attr('aria-hidden', 'false');\n });\n\n $('body').on('keydown', '#editProductModal', function (e) {\n var focusParams = {\n event: e,\n containerSelector: '#editProductModal',\n firstElementSelector: '.close',\n lastElementSelector: '.update-cart-product-global',\n nextToLastElementSelector: '.modal-footer .quantity-select'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n\n $('body').on('product:updateAddToCart', function (e, response) {\n // update global add to cart (single products, bundles)\n var dialog = $(response.$productContainer)\n .closest('.quick-view-dialog');\n\n $('.update-cart-product-global', dialog).attr('disabled',\n !$('.global-availability', dialog).data('ready-to-order')\n || !$('.global-availability', dialog).data('available')\n );\n });\n\n $('body').on('product:updateAvailability', function (e, response) {\n // bundle individual products\n $('.product-availability', response.$productContainer)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available && response.product.availablePrice)\n .find('.availability-msg')\n .empty()\n .html(response.message);\n\n\n var dialog = $(response.$productContainer)\n .closest('.quick-view-dialog');\n\n if ($('.product-availability', dialog).length) {\n // bundle all products\n var allAvailable = $('.product-availability', dialog).toArray()\n .every(function (item) { return $(item).data('available'); });\n\n var allReady = $('.product-availability', dialog).toArray()\n .every(function (item) { return $(item).data('ready-to-order'); });\n\n $('.global-availability', dialog)\n .data('ready-to-order', allReady)\n .data('available', allAvailable);\n\n $('.global-availability .availability-msg', dialog).empty()\n .html(allReady ? response.message : response.resources.info_selectforstock);\n } else {\n // single product\n $('.global-availability', dialog)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available && response.product.availablePrice)\n .find('.availability-msg')\n .empty()\n .html(response.message);\n }\n });\n\n $('body').on('product:afterAttributeSelect', function (e, response) {\n if ($('.modal.show .product-quickview .bundle-items').length) {\n $('.modal.show').find(response.container).data('pid', response.data.product.id);\n $('.modal.show').find(response.container).find('.product-id').text(response.data.product.id);\n } else {\n $('.modal.show .product-quickview').data('pid', response.data.product.id);\n }\n });\n\n $('body').on('change', '.quantity-select', function () {\n var selectedQuantity = $(this).val();\n $('.modal.show .update-cart-url').data('selected-quantity', selectedQuantity);\n });\n\n $('body').on('change', '.options-select', function () {\n var selectedOptionValueId = $(this).children('option:selected').data('value-id');\n $('.modal.show .update-cart-url').data('selected-option', selectedOptionValueId);\n });\n\n $('body').on('click', '.update-cart-product-global', function (e) {\n e.preventDefault();\n\n var updateProductUrl = $(this).closest('.cart-and-ipay').find('.update-cart-url').val();\n var selectedQuantity = $(this).closest('.cart-and-ipay').find('.update-cart-url').data('selected-quantity');\n var selectedOptionValueId = $(this).closest('.cart-and-ipay').find('.update-cart-url').data('selected-option');\n var uuid = $(this).closest('.cart-and-ipay').find('.update-cart-url').data('uuid');\n\n var form = {\n uuid: uuid,\n pid: base.getPidValue($(this)),\n quantity: selectedQuantity,\n selectedOptionValueId: selectedOptionValueId\n };\n\n $(this).parents('.card').spinner().start();\n\n $('body').trigger('cart:beforeUpdate');\n\n if (updateProductUrl) {\n $.ajax({\n url: updateProductUrl,\n type: 'post',\n context: this,\n data: form,\n dataType: 'json',\n success: function (data) {\n $('#editProductModal').modal('hide');\n\n $('.coupons-and-promos').empty().append(data.cartModel.totals.discountsHtml);\n updateCartTotals(data.cartModel);\n updateApproachingDiscounts(data.cartModel.approachingDiscounts);\n updateAvailability(data.cartModel, uuid);\n updateProductDetails(data, uuid);\n\n if (data.uuidToBeDeleted) {\n $('.uuid-' + data.uuidToBeDeleted).remove();\n }\n\n validateBasket(data.cartModel);\n $('body').trigger('cart:onlyUpdate', data);\n $.spinner().stop();\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification(err.responseJSON.errorMessage);\n $.spinner().stop();\n }\n }\n });\n }\n });\n\n $('body').on('click', '.cart_plus', function (e) {\n e.preventDefault();\n var parent = $(this).parent();\n var actualValue = parseInt(parent.find('.quantity').val());\n var maxValue = parseInt(parent.find('.quantity').attr('max'));\n var minValue = parseInt(parent.find('.quantity').attr('min'));\n if (actualValue + 1 > maxValue) {\n return;\n }\n if (actualValue + 1 === maxValue) {\n $(this).attr('disabled', true);\n }\n if (actualValue + 1 > minValue) {\n parent.find('#cart_minus').removeAttr('disabled');\n }\n parent.find('.quantity').val(actualValue + 1);\n parent.find('.quantity').trigger('change');\n });\n\n $('body').on('click', '.cart_minus', function (e) {\n e.preventDefault();\n var parent = $(this).parent();\n var actualValue = parseInt(parent.find('.quantity').val());\n var maxValue = parseInt(parent.find('.quantity').attr('max'));\n var minValue = parseInt(parent.find('.quantity').attr('min'));\n if (actualValue - 1 < minValue) {\n return;\n }\n if (actualValue - 1 === minValue) {\n $(this).attr('disabled', true);\n }\n if (actualValue - 1 < maxValue) {\n parent.find('#cart_plus').removeAttr('disabled');\n }\n parent.find('.quantity').val(actualValue - 1);\n parent.find('.quantity').trigger('change');\n });\n\n $('body').on('click', '#remove-promoCode', function (e) {\n e.preventDefault();\n const url = $('#remove-promoCode').attr('data-remove-coupon');\n\n $.spinner().start();\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n updateCartTotals(data);\n updateApproachingDiscounts(data);\n validateBasket(data);\n\n $('.coupon-code-field').val('');\n $('#remove-promoCode').addClass('d-none');\n $('#validCouponCode').addClass('d-none');\n $('.coupon-valid-icon ').addClass('d-none');\n $('.btn-block.promo-code-btn').removeClass('d-none');\n $.spinner().stop();\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n $.spinner().stop();\n }\n });\n });\n\n /* Añadimos los productos recomendados al carrito, misma llamada de addToCart pero sin reload */\n $('body').on('touchstart click', 'input.add-to-cart-recommendation-btn', function () {\n $('body').trigger('product:beforeAddToCart', this);\n const pid = $(this).attr('data-complementary-ean');\n const addToCartUrl = $(this).attr('data-complementary-method-url');\n\n const form = {\n pid: pid,\n quantity: '1',\n isCustomizable: 'false'\n };\n\n $(this).trigger('updateAddToCartFormData', form);\n\n // Comprobamos si está marcado el producto, para añadirlo o eliminarlo del carrito. Cuando se hace click y llegamos aquí ya está marcado el check, por lo que tenemos que tener en cuenta la negación para añadir el elemento al carrito.\n const isItemInCart = !$(`#labelComplementaryProduct-${pid}`)[0].control.checked;\n\n $.spinner().start();\n if (addToCartUrl && !isItemInCart) {\n $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n /* Añadir datalayer push, lo ponemos aquí ya que si no selecciona talla, se\n realiza la petición pero no devuelve un success, por lo que solo si lo ponemos aquí saltará una vez. */\n /* eslint-disable no-undef */\n dataLayer.push({\n event: 'addToCartRecommendation'\n });\n\n $('body').trigger('cart:onlyUpdate', data);\n\n // Necesitamos obtener el UUID del producto en el carrito, para si desea borrarlo el cliente, tener su UUID y poder eliminarlo.\n const newItemUUID = data.cart.items[data.cart.items.length - 1].UUID;\n $(`#complementaryProduct-${pid}`).attr('uuid', newItemUUID);\n $(`#labelComplementaryProduct-${pid}`).attr('uuid', newItemUUID);\n\n base.handlePostCartAdd(data);\n updateCartTotals(data.cart);\n validateBasket(data.cart);\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n } else {\n $('body').trigger('cart:beforeUpdate');\n const uuid = $(this).attr('uuid');\n removeComplementaryProduct(pid, uuid);\n // Añadimos Evento al eliminar cuando se hace click también en el check y quitamos el producto del carrito, para tener un evento en gtm que nos ayude a no enviar eventos duplicados.\n /* eslint-disable no-undef */\n dataLayer.push({\n event: 'removeFromCartRecommendation'\n });\n }\n });\n\n\n $(window).on('scroll', function () {\n const totalsElement = $('.totals');\n if (totalsElement.length === 0) return;\n if ((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) < 769) {\n const footer = $('footer');\n if (footer.length === 0) return;\n\n const footerHeight = footer[0].clientHeight;\n const footerIsVisible = document.scrollingElement.scrollHeight - document.scrollingElement.scrollTop - footerHeight <= window.innerHeight;\n\n if (footerIsVisible) {\n totalsElement.eq(0).css({\n position: 'absolute',\n bottom: '-' + (totalsElement[0].clientHeight + 25) + 'px',\n 'box-shadow': 'none',\n margin: '15px 0px'\n });\n\n const mainContent = $('#maincontent');\n if (mainContent.length > 0) {\n mainContent.css('margin-bottom', (totalsElement[0].clientHeight + 25) + 'px');\n }\n } else {\n totalsElement.eq(0).css({\n position: '',\n bottom: '',\n 'box-shadow': '',\n margin: '0px'\n });\n }\n } else {\n totalsElement.eq(0).css({\n position: '',\n bottom: '',\n 'box-shadow': '',\n margin: '0px'\n });\n }\n });\n\n base.selectAttribute();\n base.colorAttribute();\n base.removeBonusProduct();\n base.selectBonusProduct();\n base.enableBonusProductSelection();\n base.showMoreBonusProducts();\n base.addBonusProductsToCart();\n base.focusChooseBonusProductModal();\n base.trapChooseBonusProductModalFocus();\n base.onClosingChooseBonusProductModal();\n};\n","'use strict';\n\nfunction pressEnterItem(actionItem, itemForClick) {\n $(actionItem).keypress(function (e) {\n if (e.which === 13) {\n if (itemForClick) {\n $(itemForClick).click();\n } else {\n $(actionItem).click();\n }\n }\n });\n}\n\nfunction pressEnterToClickInsideElement(container, itemForEnter, itemForNavigate) {\n $(container).on('keydown', itemForEnter, function (e) {\n if (e.which === 13) {\n if (itemForEnter === itemForNavigate) {\n $(e.target).click();\n } else if ($(e.target).find(itemForNavigate)[0]) {\n $(e.target).find(itemForNavigate)[0].click();\n } else {\n $(e.target).find(itemForNavigate).click();\n }\n }\n });\n}\n\nfunction pressEnterToNavigateUsingAInsideElement(container, itemForEnter, itemForNavigate) {\n $(container).on('keydown', itemForEnter, function (e) {\n if (e.which === 13) {\n $(location).attr('href', $(e.target).find(itemForNavigate)[0].href);\n }\n });\n}\n\nfunction focusNextElementOutsidefromSortOrderContainerWhenPressTab() {\n $('#sort-order-by-button').keydown(function (e) {\n if (e.which === 9 && !$('#sort-by-container').hasClass('show')) {\n $('.refinement-tipo > .card-header > button').focus();\n }\n });\n}\n\nfunction focusNextElementOutsidefromContainerWhenPressTab(container, flagClass, nextElement) {\n $(container).keydown(function (e) {\n if (e.which === 9 && !$(container).hasClass(flagClass)) {\n e.preventDefault();\n $(nextElement).focus();\n }\n });\n}\n\nfunction pressEnterInHeaderActionsItems(actionItem) {\n $('.header-action-item').has(actionItem).keypress(function (e) {\n if (e.which === 13) {\n $(actionItem).click();\n }\n });\n}\n\nfunction tabParagraphCollapsible(currentElement, nextElement) {\n $(currentElement).on('blur', function (event) {\n if (event.which === 0 && $(this).attr('aria-expanded') === 'false') {\n $(nextElement).trigger('focus');\n }\n });\n}\n\nfunction shippingMethod() {\n $('[id^=\"labelshippingMethod\"]').keypress(function (e) {\n var id = $(this).prop('id');\n id = id.slice(5);\n if (e.which === 13) {\n $('#' + id).trigger('click');\n }\n });\n}\n\nmodule.exports = {\n pressEnterItem : pressEnterItem,\n focusNextElementOutsidefromSortOrderContainerWhenPressTab : focusNextElementOutsidefromSortOrderContainerWhenPressTab,\n pressEnterInHeaderActionsItems : pressEnterInHeaderActionsItems,\n tabParagraphCollapsible : tabParagraphCollapsible,\n shippingMethod : shippingMethod,\n pressEnterToNavigateUsingAInsideElement : pressEnterToNavigateUsingAInsideElement,\n pressEnterToClickInsideElement : pressEnterToClickInsideElement,\n focusNextElementOutsidefromContainerWhenPressTab : focusNextElementOutsidefromContainerWhenPressTab\n};\n","'use strict';\n\nrequire('detect-autofill');\n\n/** Adding no-empty class to input in order to animate the label */\nfunction labelInputAnimation() {\n $.each($('.form-control'), function () {\n if (!$(this).val()) {\n ($(this).prev('.form-group .form-control-label').hasClass('no-empty')) ? $(this).prev('.form-group .form-control-label').removeClass('no-empty') : '';\n } else {\n (!$(this).prev('.form-group .form-control-label').hasClass('no-empty')) ? $(this).prev('.form-group .form-control-label').addClass('no-empty') : '';\n }\n });\n}\n\nmodule.exports = {\n /** Adding no-empty class to input in order to animate the label */\n labelAnimation: function () {\n labelInputAnimation();\n $('.form-control').blur(function () {\n if (!$(this).val()) {\n $(this).prev('.form-group .form-control-label').removeClass('no-empty');\n }\n })\n .focus(function () {\n $(this).prev('.form-group .form-control-label').addClass('no-empty');\n });\n document.addEventListener('onautocomplete', function (e) {\n var children = e.target.parentNode.childNodes;\n for (var i = 0; i < children.length; i++) {\n if ($(children[i]).hasClass('form-control-label')) {\n $(children[i]).addClass('no-empty');\n break;\n }\n }\n });\n }\n};\n","'use strict';\n\nmodule.exports = function () {\n function selectCountryAndLanguage(localesData) {\n var selectedCountry = $('select[name=countries-select]').val();\n $('.option-language').remove();\n var filteredLocales = localesData.filter(function (loc) {\n return loc.country === selectedCountry;\n });\n /* Add - PIK-202006-78 - 20201020 - Append a option html element for every local allowed in each country */\n filteredLocales.forEach(function (locale) {\n $('#country-selector-box-locales').append(\n ''\n );\n });\n }\n\n /* Add - PIK-202006-113 - 20201209 - Method to redirect to external web sites */\n function redirectToExternalLocaleSite(locale, extUrls) {\n if (extUrls) {\n switch (locale) {\n case 'es_MX':\n window.location.href = extUrls.urlMX;\n break;\n case 'en_CA':\n window.location.href = extUrls.urlCA;\n break;\n case 'cn_CN':\n window.location.href = extUrls.urlCN;\n break;\n case 'jp_JP':\n window.location.href = extUrls.urlJP;\n break;\n default:\n }\n }\n }\n\n /* Add - PIK-202006-78 - 20201020 - Method to request countries and locales by ajax */\n function getCountriesAjaxResponse() {\n var url = $('.country-selector').data('url');\n $.ajax({\n url : url,\n method : 'GET',\n dataType : 'json',\n success : function (data) {\n var localesData = data.localesData;\n var siteLocale = data.siteLocale;\n /* Add - PIK-202006-78 - 20201020 - Append a option html element for every country allowed */\n data.allCountryCodes.forEach(function (country, index) {\n $('#country-selector-box-countries').append(\n ''\n );\n });\n\n /* Add - PIK-202006-78 - 20201020 - Select the country of the site */\n $('select option[value=\"' + siteLocale.countryCode + '\"]').attr('selected', true);\n\n /* Add - PIK-202006-78 - 20201020 - Filter the locales from the country selected */\n selectCountryAndLanguage(localesData);\n\n /* Add - PIK-202006-78 - 20201020 - When Country changes the previous locales are removed\n and the specifics ones from the choosen country are reappended */\n $('select[name=countries-select]').change(function () {\n selectCountryAndLanguage(localesData);\n });\n },\n error: function (e) {\n console.error(e);\n }\n });\n }\n\n var countrySelectorModalClass = '.countrySelectorModalClass';\n /* Add> - PIK-202006-78 - 20201020 - Display modal when user clicks the country-selector and doing the ajax request */\n $('body').on('click', '.country-selector', function (e) {\n e.preventDefault();\n $('.option-countries').remove();\n $('.option-language').remove();\n getCountriesAjaxResponse();\n $(countrySelectorModalClass).css('display', 'block');\n });\n\n $('body').on('click', '.geolocationModalLinkCountrySelector', function (e) {\n e.preventDefault();\n $('.geolocationModal').css('display', 'none');\n $('.option-countries').remove();\n $('.option-language').remove();\n getCountriesAjaxResponse();\n $(countrySelectorModalClass).css('display', 'block');\n });\n\n /* Add - PIK-202006-78 - 20201020 - Removes from DOM the options from country-selector and locales-selector when user close the modal */\n $('body').on('click', '.country-selector-modal-close-button', function (e) {\n e.preventDefault();\n $('.option-countries').remove();\n $('.option-language').remove();\n $(countrySelectorModalClass).css('display', 'none');\n });\n\n /* Add - PIK-202006-78 - 20201020 - When user clicks the submit button redirect to choosen locale whit ajax request */\n $('body').on('click', '.country-selector-modal-submit-button', function (e) {\n e.preventDefault();\n var localeSelected = $('select[name=locales-select]').val();\n var currencySelected = $('.option-language:first').data('currency');\n var url = $('.country-selector-modal-submit-button').data('url');\n var queryString = $('.page').data('querystring');\n var action = $('.page').data('action');\n\n $.ajax({\n url : url,\n type : 'get',\n dataType : 'json',\n data : {\n code : localeSelected,\n queryString : queryString,\n CurrencyCode : currencySelected,\n action : action\n },\n success: function (response) {\n if (response) {\n if (response.redirectUrl) {\n window.location.href = response.redirectUrl;\n } else if (response.externalUrls) {\n /* Add - PIK-202006-113 - 20201201 - Add redirect for the external sites */\n redirectToExternalLocaleSite(localeSelected, response.externalUrls);\n } else {\n console.debug('Response from redirect in country selector is not received');\n }\n }\n },\n error: function (err) {\n console.error('error... action', action, err);\n }\n });\n\n $('.option-countries').remove();\n $('.option-language').remove();\n $(countrySelectorModalClass).css('display', 'none');\n });\n};\n","'use strict';\n\nmodule.exports = function () {\n var previousCountryClass = '.geolocationModalPreviousCountry';\n var selectedCountryClass = '.geolocationModalSelectedCountry';\n var geolocationModalClass = '.geolocationModal';\n var currentLocationCode = $(geolocationModalClass).data('currentlocationcode');\n var selectedLocationCode = $(geolocationModalClass).data('selectedlocationcode');\n var localeID = $(geolocationModalClass).data('localeid');\n var sessionName = 'selectedCountry';\n\n /* Add - PIK-202006-79 - 20201020 - Add a sessionStorage Variable with the preferred country by user */\n function setSessionSelectedCountry(cssClass) {\n sessionStorage.setItem(sessionName, $(cssClass).data('selectedcountry'));\n }\n\n /* Add - PIK-202006-113 - 20201209 - Redirect to a external Url if user is allocated in CA,CN,JP,MX */\n function redirectToExternalLocaleSiteInGeolocationModal(countryCode) {\n var urlMX = $('.geolocationModalSelectedCountry').data('urlmexico');\n var urlCA = $('.geolocationModalSelectedCountry').data('urlcanada');\n var urlCN = $('.geolocationModalSelectedCountry').data('urlchina');\n var urlJP = $('.geolocationModalSelectedCountry').data('urljapan');\n if (countryCode) {\n switch (countryCode) {\n case 'MX':\n window.location.href = urlMX;\n break;\n case 'CA':\n window.location.href = urlCA;\n break;\n case 'CN':\n window.location.href = urlCN;\n break;\n case 'JP':\n window.location.href = urlJP;\n break;\n default:\n }\n }\n }\n\n /* Add - PIK-202006-79 - 20201020 - If the user has selected previously a preferred country or if actualy\n the country site is the same of the geolocation don't display the geolocation modal */\n if (sessionStorage.getItem(sessionName)\n && (sessionStorage.getItem(sessionName) === currentLocationCode\n || sessionStorage.getItem(sessionName) === selectedLocationCode)\n ) {\n $(geolocationModalClass).css('display', 'none');\n } else {\n $(geolocationModalClass).css('display', 'block');\n\n /* Add - PIK-202006-79 - 20201020 - Close the modal */\n $('body').on('click', '.geolocationModalCloseButton', function (e) {\n e.preventDefault();\n $(geolocationModalClass).css('display', 'none');\n });\n\n /* Add - PIK-202006-79 - 20201020 - Set the selected country and saves in sessionStorage, close the modal */\n $('body').on('click', selectedCountryClass, function (e) {\n e.preventDefault();\n setSessionSelectedCountry(selectedCountryClass);\n $(geolocationModalClass).css('display', 'none');\n });\n\n /* Add - PIK-202006-79 - 20201020 - Redirect to geolocation place */\n $('body').on('click', previousCountryClass, function (e) {\n e.preventDefault();\n\n /* Add - PIK-202006-113 - 20201214 - Redirect to a external Url if user is allocated in CA,CN,JP,MX */\n if (currentLocationCode === 'MX' || currentLocationCode === 'CA' || currentLocationCode === 'CN' || currentLocationCode === 'JP') {\n redirectToExternalLocaleSiteInGeolocationModal(currentLocationCode);\n } else {\n var action = $('.page').data('action');\n var localeCode = localeID;\n var localeCurrencyCode = $('.geolocationModalPreviousCountry').data('currencycode');\n var queryString = $('.page').data('querystring');\n var url = $('.geolocationModalPreviousCountry').data('url');\n\n $.ajax({\n url : url,\n type : 'get',\n dataType : 'json',\n data : {\n code : localeCode,\n queryString : queryString,\n CurrencyCode : localeCurrencyCode,\n action : action\n },\n success: function (response) {\n if (response && response.redirectUrl) {\n window.location.href = response.redirectUrl;\n }\n },\n error: function () {\n console.log('error... action', action);\n }\n });\n }\n $(geolocationModalClass).css('display', 'none');\n });\n }\n};\n","'use strict';\n\nvar keyboardAccessibility = require('base/components/keyboardAccessibility');\nvar inputAnimation = require('../common/input-animation');\nvar focusHelper = require('base/components/focus');\nvar handleADA = require('../common/handleADA');\n\nvar clearSelection = function (element) {\n $(element).closest('.dropdown').children('.dropdown-menu').children('.top-category')\n .detach();\n $(element).closest('.dropdown.show').children('.nav-link').attr('aria-expanded', 'false');\n $(element).closest('.dropdown.show').children('.dropdown-menu').attr('aria-hidden', 'true');\n $(element).closest('.dropdown.show').removeClass('show');\n // Show social icons\n $('.navbar .menu-mobile-links').removeClass('d-none');\n $('.navbar .menu-mobile-links').addClass('d-block');\n\n $('div.menu-group > ul.nav.navbar-nav > li.nav-item > a').attr('aria-hidden', 'false');\n $(element).closest('li').detach();\n};\n\n/**\n * Set header fixed if the scroll is not up\n */\nfunction fixHeaderTop() {\n var headerHeight;\n if ($('.header-navigation-content')[0]) {\n if ($(window).scrollTop() >= 30) {\n headerHeight = $('.header-navigation-content')[0].clientHeight;\n $('.header-navigation-content').addClass('fixed-header');\n $('#maincontent').css('margin-top', headerHeight + 'px');\n } else {\n $('.header-navigation-content').removeClass('fixed-header');\n $('#maincontent').css('margin-top', '0');\n }\n }\n}\n\nmodule.exports = function () {\n var isDesktop = function (element) {\n return $(element).parents('.menu-toggleable-left').css('position') !== 'fixed';\n };\n\n // Viewport height\n // First we get the viewport height and we multiple it by 1% to get a value for a vh unit\n var vh = window.innerHeight * 0.01;\n // Then we set the value in the --vh custom property to the root of the document\n document.documentElement.style.setProperty('--vh', vh + 'px');\n\n $(window).resize(function () {\n if ($(window).width() >= 992) {\n $('#sg-navbar-collapse').css('height', '');\n\n if ($('.header-container-item .navbar-toggler').hasClass('active')) {\n $('.header-container-item .navbar-toggler.active').click();\n }\n }\n });\n\n var headerBannerStatus = window.sessionStorage.getItem('hide_header_banner');\n $('.header-banner .close').on('click', function () {\n $('.header-banner').addClass('d-none');\n window.sessionStorage.setItem('hide_header_banner', '1');\n });\n\n if (!headerBannerStatus || headerBannerStatus < 0) {\n $('.header-banner').removeClass('d-none');\n }\n\n keyboardAccessibility('.main-menu .nav-link, .main-menu .dropdown-link',\n {\n 40: function (menuItem) { // down\n if (menuItem.hasClass('nav-item')) { // top level\n $('.navbar-nav .show').removeClass('show')\n .children('.dropdown-menu')\n .removeClass('show');\n menuItem.addClass('show').children('.dropdown-menu').addClass('show');\n menuItem.find('ul > li > a')\n .first()\n .focus();\n } else {\n menuItem.removeClass('show').children('.dropdown-menu').removeClass('show');\n if (!(menuItem.next().length > 0)) { // if this is the last menuItem\n menuItem.parent().parent().find('li > a').first().focus();\n } else {\n menuItem.next().children().first().focus();\n }\n }\n },\n 39: function (menuItem) { // right\n if (menuItem.hasClass('nav-item')) { // top level\n menuItem.removeClass('show').children('.dropdown-menu').removeClass('show');\n $(this).attr('aria-expanded', 'false');\n menuItem.next().children().first().focus();\n } else if (menuItem.hasClass('dropdown')) {\n menuItem.addClass('show').children('.dropdown-menu').addClass('show');\n $(this).attr('aria-expanded', 'true');\n menuItem.find('ul > li > a')\n .first()\n .focus();\n }\n },\n 38: function (menuItem) { // up\n if (menuItem.hasClass('nav-item')) { // top level\n menuItem.removeClass('show').children('.dropdown-menu').removeClass('show');\n } else if (menuItem.prev().length === 0) { // first menuItem\n menuItem.parent().parent().removeClass('show')\n .children('.nav-link')\n .attr('aria-expanded', 'false');\n menuItem.parent().children().last().children() // set the focus to the last menuItem\n .first()\n .focus();\n } else {\n menuItem.prev().children().first().focus();\n }\n },\n 37: function (menuItem) { // left\n if (menuItem.hasClass('nav-item')) { // top level\n menuItem.removeClass('show').children('.dropdown-menu').removeClass('show');\n $(this).attr('aria-expanded', 'false');\n menuItem.prev().children().first().focus();\n } else {\n menuItem.closest('.show').removeClass('show')\n .closest('li.show').removeClass('show')\n .children()\n .first()\n .focus()\n .attr('aria-expanded', 'false');\n }\n },\n 27: function (menuItem) { // escape\n var parentMenu = menuItem.hasClass('show')\n ? menuItem\n : menuItem.closest('li.show');\n parentMenu.children('.show').removeClass('show');\n parentMenu.removeClass('show').children('.nav-link')\n .attr('aria-expanded', 'false');\n parentMenu.children().first().focus();\n }\n },\n function () {\n return $(this).parent();\n }\n );\n\n $('.dropdown:not(.disabled) [data-toggle=\"dropdown\"]:not(.link)')\n .on('click', function (e) {\n if (!isDesktop(this)) {\n $('.modal-background').show();\n // copy parent element into current UL\n var li = $('
  • ');\n var link = $(this).clone().removeClass('dropdown-toggle')\n .removeAttr('data-toggle')\n .removeAttr('aria-expanded')\n .attr('aria-haspopup', 'false');\n li.append(link);\n var closeMenu = $('
  • ');\n closeMenu.append($('.close-menu').first().clone());\n $(this).parent().children('.dropdown-menu')\n .prepend(li)\n .prepend(closeMenu)\n .attr('aria-hidden', 'false');\n // copy navigation menu into view\n $(this).parent().addClass('show');\n $(this).attr('aria-expanded', 'true');\n $(link).focus();\n $('div.menu-group > ul.nav.navbar-nav > li.nav-item > a').attr('aria-hidden', 'true');\n // Hide social icons\n $('.navbar .menu-mobile-links').addClass('d-none');\n $('.navbar .menu-mobile-links').removeClass('d-block');\n e.preventDefault();\n }\n })\n .on('mouseenter', function () {\n if (isDesktop(this)) {\n var eventElement = this;\n\n if ($('.search.form-search').hasClass('active')) {\n $('.icon.icon-search:not(.icon-search-mobile)').trigger('click');\n $('.search.form-search').removeClass('active');\n }\n\n $('.navbar-nav > li').each(function () {\n if (!$.contains(this, eventElement)) {\n $(this).find('.show').each(function () {\n clearSelection(this);\n });\n if ($(this).hasClass('show')) {\n $(this).removeClass('show');\n $(this).children('ul.dropdown-menu').removeClass('show');\n $(this).children('.nav-link').attr('aria-expanded', 'false');\n }\n }\n });\n // need to close all the dropdowns that are not direct parent of current dropdown\n $(this).parent().addClass('show');\n $(this).siblings('.dropdown-menu').addClass('show');\n $(this).attr('aria-expanded', 'true');\n }\n })\n .parent()\n .on('mouseleave', function () {\n if (isDesktop(this)) {\n $(this).removeClass('show');\n $(this).children('.dropdown-menu').removeClass('show');\n $(this).children('.nav-link').attr('aria-expanded', 'false');\n }\n });\n\n $('.navbar>.close-menu>.close-button').on('click', function (e) {\n e.preventDefault();\n $('.menu-toggleable-left').removeClass('in');\n $('.modal-background').hide();\n\n $('.navbar-toggler').focus();\n\n $('.main-menu').attr('aria-hidden', 'true');\n $('.main-menu').siblings().attr('aria-hidden', 'false');\n $('header').siblings().attr('aria-hidden', 'false');\n });\n\n $('.navbar-nav').on('click', '.back', function (e) {\n e.preventDefault();\n clearSelection(this);\n });\n\n $('.navbar-nav').on('click', '.close-button', function (e) {\n e.preventDefault();\n $('.navbar-nav').find('.top-category').detach();\n $('.navbar-nav').find('.nav-menu').detach();\n $('.navbar-nav').find('.show').removeClass('show');\n $('.menu-toggleable-left').removeClass('in');\n\n $('.main-menu').siblings().attr('aria-hidden', 'false');\n $('header').siblings().attr('aria-hidden', 'false');\n\n $('.modal-background').hide();\n });\n\n $('.navbar-toggler').on('click', function (e) {\n e.preventDefault();\n // Set menu height in mobile\n if (!$(this).hasClass('active')) {\n var headerHeight = $('.header-navigation-content')[0].clientHeight;\n var headerBannerHeight = $('.header-banner')[0].clientHeight;\n var windowHeight = window.innerHeight;\n if ($('.header-navigation-content').eq(0).hasClass('fixed-header')) {\n $('#sg-navbar-collapse').css('height', windowHeight - headerHeight + 'px');\n } else {\n $('#sg-navbar-collapse').css('height', windowHeight - (headerHeight + headerBannerHeight) + 'px');\n }\n }\n $(this).toggleClass('active');\n $('body').toggleClass('overflow');\n $('.main-menu').toggleClass('in');\n $('.modal-background').show();\n\n $('.main-menu').removeClass('d-none');\n $('.main-menu').attr('aria-hidden', 'false');\n $('.main-menu').siblings().attr('aria-hidden', 'true');\n $('header').siblings().attr('aria-hidden', 'true');\n\n $('.main-menu .nav.navbar-nav .nav-link').first().focus();\n });\n\n $('.header-action-item').on('click', '.icon-search', function (e) {\n e.preventDefault();\n var inputText = $('.search-field');\n $(this).toggleClass('active');\n $('.form-search').toggleClass('active');\n $('.grid-header, .filters-container, .filter-bar, .breadcrumb, .product-breadcrumb').toggleClass('search-active');\n\n if (!$(this).hasClass('active')) {\n inputText.val('');\n }\n if ($(this).hasClass('active')) {\n inputText.focus();\n }\n });\n\n\n // PIK2021-82 Add Click Event to Enter in action items from header (ADA protocol)\n handleADA.pressEnterInHeaderActionsItems('.icon-search');\n handleADA.pressEnterInHeaderActionsItems('.country-selector');\n handleADA.pressEnterInHeaderActionsItems('.user-message');\n\n fixHeaderTop();\n\n $(window).scroll(function () {\n fixHeaderTop();\n });\n\n $('.mega-menu-content').on('touchstart click', 'button.title.btn', function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n var parents = $(this).parents('.mega-menu-content-item');\n if ($(parents[0]).hasClass('active')) {\n $(parents[0]).removeClass('active');\n $(this).attr('aria-expanded', 'false');\n } else {\n $(parents[0]).addClass('active');\n $(this).attr('aria-expanded', 'true');\n }\n });\n\n keyboardAccessibility('header .user',\n {\n 40: function ($popover) { // down\n if ($popover.children('a').first().is(':focus')) {\n $popover.next().children().first().focus();\n } else {\n $popover.children('a').first().focus();\n }\n },\n 38: function ($popover) { // up\n if ($popover.children('a').first().is(':focus')) {\n $(this).focus();\n $popover.removeClass('show');\n } else {\n $popover.children('a').first().focus();\n }\n },\n 27: function () { // escape\n $('header .user .popover').removeClass('show');\n $('.user').attr('aria-expanded', 'false');\n },\n 9: function () { // tab\n $('header .user .popover').removeClass('show');\n $('.user').attr('aria-expanded', 'false');\n }\n },\n function () {\n var $popover = $('.user .popover li.nav-item');\n return $popover;\n }\n );\n\n $('header .user').on('mouseenter', function () {\n if ($('header .user .popover').length > 0) {\n $('header .user .popover').addClass('show');\n $('.user').attr('aria-expanded', 'true');\n $(this).on('keydown', function (e) {\n var focusParams = {\n event : e,\n containerSelector : '.login',\n firstElementSelector : '#login-form-email',\n lastElementSelector : '#registration-miniLogin',\n nextToLastElementSelector : '#login-form-email'\n };\n var KEYCODE_TAB = 9;\n var isTabPressed = (focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB);\n\n if (!isTabPressed) {\n return;\n }\n $('header .user .popover').addClass('show');\n $('.user').attr('aria-expanded', 'true');\n focusHelper.setTabNextFocus(focusParams);\n });\n }\n }).on('mouseleave', function () {\n var parent = $(this).parent();\n if (!parent.find('input').is(':focus')) {\n $('header .user .popover').removeClass('show');\n $('.user').attr('aria-expanded', 'false');\n }\n });\n\n /** Adding no-empty class to input in order to animate the label */\n inputAnimation.labelAnimation();\n};\n","'use strict';\n\nvar cart = require('../cart/cart');\n\nvar updateMiniCart = true;\n\nmodule.exports = function () {\n cart();\n\n $('.minicart').on('count:update', function (event, count) {\n if (count && $.isNumeric(count.quantityTotal)) {\n $('.minicart .minicart-quantity').text(count.quantityTotal);\n $('.minicart .minicart-link').attr({\n 'aria-label': count.minicartCountOfItems,\n title: count.minicartCountOfItems\n });\n if (count.quantityTotal > 0) {\n $('.minicart-empty').addClass('d-none');\n $('.minicart-item').removeClass('d-none');\n } else {\n $('.minicart-empty').removeClass('d-none');\n $('.minicart-item').addClass('d-none');\n }\n }\n });\n\n $('.minicart').on('mouseenter focusin touchstart', function () {\n if ($('.search:visible').length === 0) {\n return;\n }\n var url = $('.minicart').data('action-url');\n var count = parseInt($('.minicart .minicart-quantity').text(), 10);\n\n if (count !== 0 && $('.minicart .popover.show').length === 0) {\n if (!updateMiniCart) {\n $('.minicart .popover').addClass('show');\n return;\n }\n\n $('.minicart .popover').addClass('show');\n $('.minicart .popover').spinner().start();\n $.get(url, function (data) {\n $('.minicart .popover').empty();\n $('.minicart .popover').append(data);\n updateMiniCart = false;\n $.spinner().stop();\n });\n }\n });\n $('body').on('touchstart click', function (e) {\n if ($('.minicart').has(e.target).length <= 0) {\n $('.minicart .popover').removeClass('show');\n }\n });\n $('.minicart').on('mouseleave focusout', function (event) {\n if ((event.type === 'focusout' && $('.minicart').has(event.target).length > 0)\n || (event.type === 'mouseleave' && $(event.target).is('.minicart .quantity'))\n || $('body').hasClass('modal-open')) {\n event.stopPropagation();\n return;\n }\n $('.minicart .popover').removeClass('show');\n });\n $('body').on('change', '.minicart .quantity', function () {\n if ($(this).parents('.bonus-product-line-item').length && $('.cart-page').length) {\n location.reload();\n }\n });\n $('body').on('product:afterAddToCart', function () {\n updateMiniCart = true;\n window.location.href = $('.checkout-url').val();\n });\n\n $('body').on('cart:update', function () {\n updateMiniCart = true;\n $('.minicart').mouseenter();\n });\n\n // Función diferente a cart:update, para no mostrar el minicart al añadir productos desde el carrito, solo el cliente si quiere mostrarlo para ver lo que tiene.\n $('body').on('cart:onlyUpdate', function () {\n updateMiniCart = true;\n });\n};\n\n","// NEW - PIK202006-147 - 210124 - Newsletter Subscription Modal\n\n'use strict';\n\nvar newsletterModal = '.newsletterModal';\nvar formValidation = require('base/components/formValidation');\n\nfunction isGenderPreferenceSelected() {\n return $('#genderMethod-woman').prop('checked') || $('#genderMethod-man').prop('checked') || $('#genderMethod-both').prop('checked');\n}\n\nfunction openModalContent() {\n $(newsletterModal).css('display', 'block');\n $('
    ').appendTo(document.body);\n $('body').addClass('modal-open');\n\n $('body').on('click', '.modal-backdrop.show', function (e) {\n e.preventDefault();\n $(newsletterModal).css('display', 'none');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n $('body').off('click', '.modal-backdrop.show');\n });\n}\n\nmodule.exports = function () {\n $('body').on('click', '#newsletterModalCloseButton', function (e) {\n e.preventDefault();\n $(newsletterModal).css('display', 'none');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n $('body').off('click', '.modal-backdrop.show');\n $('.floating-popup').removeClass('d-none');\n });\n\n $('body').on('click', '.newsletter-open-modal', function (e) {\n e.preventDefault();\n openModalContent();\n $('.floating-popup').addClass('d-none');\n });\n\n $('#sf-button').on('click', function () {\n $('#registration-form-email').val('');\n $('label[for=\"registration-form-email\"]').removeClass('no-empty');\n var email = $('#sf-email').val();\n if (email && email.length > 0) {\n $('label[for=\"registration-form-email\"]').addClass('no-empty');\n $('#registration-form-email').val(email);\n $('#registration-form-email').focus();\n /* eslint-disable no-undef */\n dataLayer.push({\n event : 'Suscripción Newsletter Footer',\n Categoria : 'Suscripción Newsletter Footer',\n Accion : 'Apertura de pop up con email de cliente',\n Etiqueta : window.location.href\n });\n } else {\n /* eslint-disable no-undef */\n dataLayer.push({\n event : 'Suscripción Newsletter Footer',\n Categoria : 'Suscripción Newsletter Footer',\n Accion : 'Apertura de pop up sin email de cliente',\n Etiqueta : window.location.href\n });\n }\n var locale = window.CQuotient.locale;\n var originUrl = window.location.origin;\n var destinyUrl = '/unete.html';\n var fullUrl = originUrl + destinyUrl;\n if (locale === 'en_US' || locale === 'es_US') {\n sessionStorage.setItem('emailValue', email);\n window.location.href = fullUrl;\n } else {\n $('.newsletter-open-modal').trigger('click');\n }\n });\n $('#sf-email').on('keypress', function (event) {\n if (event.which === 13) {\n $('#sf-button').trigger('click');\n }\n });\n\n $('.floating-popup #closeIconContainer').on('click', function () {\n $('.floating-popup').addClass('d-none');\n var cookieValue = document.cookie.replace(/(?:(?:^|.*;\\s*)joinToNewslettersFromPopUp\\s*=\\s*([^;]*).*$)|^.*$/, '$1');\n\n var deleteCookie = function (name) {\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n };\n var setCookie = function (name, value, days) {\n var expires = '';\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toUTCString();\n }\n document.cookie = name + '=' + (value || '') + expires + '; path=/;secure=falseSameSite=None';\n };\n cookieValue = '3';\n var cookiePopup = 'joinToNewslettersFromPopUp';\n var cookieDuration = 365;\n deleteCookie(cookiePopup);\n setCookie(cookiePopup, cookieValue, cookieDuration);\n });\n\n $('.floating-popup #bubbleWrapper').on('click', function (e) {\n e.preventDefault();\n openModalContent();\n $('.floating-popup').addClass('d-none');\n });\n\n $('body').on('click', '.newsletterSubscriptionButton', function () {\n var rgpdSelected = $('.rgpdTerms').prop('checked');\n if (rgpdSelected) {\n $('.rgpdTerms').removeClass('is-invalid');\n }\n if (!isGenderPreferenceSelected()) {\n $('.genderRadioButtons').addClass('is-invalid');\n $('.gender-preferences-error').addClass('d-block');\n } else {\n $('.genderRadioButtons').removeClass('is-invalid');\n $('.gender-preferences-error').removeClass('d-block');\n }\n });\n\n $('form.newsletter-registration').submit(function (e) {\n if (isGenderPreferenceSelected()) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n $.ajax({\n url : url,\n type : 'post',\n dataType : 'json',\n data : form.serialize(),\n success : function (data) {\n if (!data.success) {\n if (data.existingCustomer) {\n $('.newsletter-alert-message').removeClass('d-none');\n } else {\n formValidation(form, data);\n $('.newsletter-alert-message').addClass('d-none');\n }\n } else {\n $('.newsletterModal-step1').addClass('d-none');\n $('.newsletterModal-step2').removeClass('d-none');\n $('.modal-body-newsletter').eq(0).addClass('no-margin-top');\n var pageType = '';\n /* eslint-disable no-undef */\n // Recorremos el datalayer para obtener el pageType\n dataLayer.forEach(function (evento) {\n if (evento.event === 'pagina') pageType = evento.pageType;\n });\n var etiqueta = pageType + '-' + window.location.href;\n dataLayer.push({\n event : 'Suscripción Newsletter',\n Categoría : 'Suscripción Newsletter',\n Acción : 'Suscripción Enviada',\n Etiqueta : etiqueta\n });\n }\n },\n error: function (err) {\n console.error(err);\n }\n });\n }\n return false;\n });\n};\n","'use strict';\n\nvar debounce = require('lodash/debounce');\nvar endpoint = $('.suggestions-wrapper').data('url');\nvar minChars = 3;\nvar UP_KEY = 38;\nvar DOWN_KEY = 40;\nvar DIRECTION_DOWN = 1;\nvar DIRECTION_UP = -1;\n\n/**\n * Retrieves Suggestions element relative to scope\n *\n * @param {Object} scope - Search input field DOM element\n * @return {JQuery} - .suggestions-wrapper element\n */\nfunction getSuggestionsWrapper(scope) {\n return $(scope).siblings('.suggestions-wrapper');\n}\n\n/**\n * Determines whether DOM element is inside the .search-mobile class\n *\n * @param {Object} scope - DOM element, usually the input.search-field element\n * @return {boolean} - Whether DOM element is inside div.search-mobile\n */\nfunction isMobileSearch(scope) {\n return !!$(scope).closest('.search-mobile').length;\n}\n\n/**\n * Remove modal classes needed for mobile suggestions\n *\n */\nfunction clearModals() {\n $('body').removeClass('modal-open');\n $('header').siblings().attr('aria-hidden', 'false');\n $('.suggestions').removeClass('modal');\n}\n\n/**\n * Apply modal classes needed for mobile suggestions\n *\n * @param {Object} scope - Search input field DOM element\n */\nfunction applyModals(scope) {\n if (isMobileSearch(scope)) {\n $('body').addClass('modal-open');\n $('header').siblings().attr('aria-hidden', 'true');\n getSuggestionsWrapper(scope).find('.suggestions').addClass('modal');\n }\n}\n\n/**\n * Tear down Suggestions panel\n */\nfunction tearDownSuggestions() {\n $('input.search-field').val('');\n clearModals();\n $('.search-mobile .suggestions').unbind('scroll');\n $('.suggestions-wrapper').empty();\n}\n\n/**\n * Toggle search field icon from search to close and vice-versa\n *\n * @param {string} action - Action to toggle to\n */\nfunction toggleSuggestionsIcon(action) {\n var mobileSearchIcon = '.search-mobile button.';\n var iconSearch = 'fa-search';\n var iconSearchClose = 'fa-close';\n\n if (action === 'close') {\n $(mobileSearchIcon + iconSearch).removeClass(iconSearch).addClass(iconSearchClose).attr('type', 'button');\n } else {\n $(mobileSearchIcon + iconSearchClose).removeClass(iconSearchClose).addClass(iconSearch).attr('type', 'submit');\n }\n}\n\n/**\n * Determines whether the \"More Content Below\" icon should be displayed\n *\n * @param {Object} scope - DOM element, usually the input.search-field element\n */\nfunction handleMoreContentBelowIcon(scope) {\n if (($(scope).scrollTop() + $(scope).innerHeight()) >= $(scope)[0].scrollHeight) {\n $('.more-below').fadeOut();\n } else {\n $('.more-below').fadeIn();\n }\n}\n\n/**\n * Positions Suggestions panel on page\n *\n * @param {Object} scope - DOM element, usually the input.search-field element\n */\nfunction positionSuggestions(scope) {\n var outerHeight;\n var $scope;\n var $suggestions;\n var top;\n\n if (isMobileSearch(scope)) {\n $scope = $(scope);\n top = $scope.offset().top;\n outerHeight = $scope.outerHeight();\n $suggestions = getSuggestionsWrapper(scope).find('.suggestions');\n $suggestions.css('top', top + outerHeight);\n\n handleMoreContentBelowIcon(scope);\n\n // Unfortunately, we have to bind this dynamically, as the live scroll event was not\n // properly detecting dynamic suggestions element's scroll event\n $suggestions.scroll(function () {\n handleMoreContentBelowIcon(this);\n });\n }\n}\n\n/**\n * Process Ajax response for SearchServices-GetSuggestions\n *\n * @param {Object|string} response - Empty object literal if null response or string with rendered\n * suggestions template contents\n */\nfunction processResponse(response) {\n var $suggestionsWrapper = getSuggestionsWrapper(this).empty();\n\n $.spinner().stop();\n\n if (typeof (response) !== 'object') {\n $suggestionsWrapper.append(response).show();\n $(this).siblings('.reset-button').addClass('d-sm-block');\n positionSuggestions(this);\n\n if (isMobileSearch(this)) {\n toggleSuggestionsIcon('close');\n applyModals(this);\n }\n\n // Trigger screen reader by setting aria-describedby with the new suggestion message.\n var suggestionsList = $('.suggestions .item');\n if ($(suggestionsList).length) {\n $('input.search-field').attr('aria-describedby', 'search-result-count');\n } else {\n $('input.search-field').removeAttr('aria-describedby');\n }\n } else {\n $suggestionsWrapper.hide();\n }\n}\n\n/**\n * Retrieve suggestions\n *\n * @param {Object} scope - Search field DOM element\n */\nfunction getSuggestions(scope) {\n if ($(scope).val().length >= minChars) {\n $.spinner().start();\n $.ajax({\n context : scope,\n url : endpoint + encodeURIComponent($(scope).val()),\n method : 'GET',\n success : processResponse,\n error : function () {\n $.spinner().stop();\n }\n });\n } else {\n toggleSuggestionsIcon('search');\n $(scope).siblings('.reset-button').removeClass('d-sm-block');\n clearModals();\n getSuggestionsWrapper(scope).empty();\n }\n}\n\n/**\n * Handle Search Suggestion Keyboard Arrow Keys\n *\n * @param {Integer} direction takes positive or negative number constant, DIRECTION_UP (-1) or DIRECTION_DOWN (+1)\n */\nfunction handleArrow(direction) {\n // get all li elements in the suggestions list\n var suggestionsList = $('.suggestions .item');\n if (suggestionsList.filter('.selected').length === 0) {\n suggestionsList.first().addClass('selected');\n $('input.search-field').each(function () {\n $(this).attr('aria-activedescendant', suggestionsList.first()[0].id);\n });\n } else {\n suggestionsList.each(function (index) {\n var idx = index + direction;\n if ($(this).hasClass('selected')) {\n $(this).removeClass('selected');\n $(this).removeAttr('aria-selected');\n if (suggestionsList.eq(idx).length !== 0) {\n suggestionsList.eq(idx).addClass('selected');\n suggestionsList.eq(idx).attr('aria-selected', true);\n $(this).removeProp('aria-selected');\n $('input.search-field').each(function () {\n $(this).attr('aria-activedescendant', suggestionsList.eq(idx)[0].id);\n });\n } else {\n suggestionsList.first().addClass('selected');\n suggestionsList.first().attr('aria-selected', true);\n $('input.search-field').each(function () {\n $(this).attr('aria-activedescendant', suggestionsList.first()[0].id);\n });\n }\n return false;\n }\n return true;\n });\n }\n}\n\nmodule.exports = function () {\n $('form[name=\"simpleSearch\"]').submit(function (e) {\n if ($('input.search-field').val().length < minChars) {\n e.preventDefault();\n return;\n }\n var suggestionsList = $('.suggestions .item');\n if (suggestionsList.filter('.selected').length !== 0) {\n e.preventDefault();\n suggestionsList.filter('.selected').find('a')[0].click();\n }\n });\n\n $('input.search-field').each(function () {\n /**\n * Use debounce to avoid making an Ajax call on every single key press by waiting a few\n * hundred milliseconds before making the request. Without debounce, the user sees the\n * browser blink with every key press.\n */\n var debounceSuggestions = debounce(getSuggestions, 300);\n $(this).on('keyup focus', function (e) {\n // Capture Down/Up Arrow Key Events\n switch (e.which) {\n case DOWN_KEY:\n handleArrow(DIRECTION_DOWN);\n e.preventDefault(); // prevent moving the cursor\n break;\n case UP_KEY:\n handleArrow(DIRECTION_UP);\n e.preventDefault(); // prevent moving the cursor\n break;\n default:\n debounceSuggestions(this, e);\n }\n });\n });\n\n $('body').on('click', function (e) {\n if (!$('.suggestions').has(e.target).length && !$(e.target).hasClass('search-field')) {\n $('.suggestions').hide();\n }\n });\n\n $('body').on('click touchend', '.search-mobile button.fa-close', function (e) {\n e.preventDefault();\n $('.suggestions').hide();\n toggleSuggestionsIcon('search');\n tearDownSuggestions();\n });\n\n $('.site-search .reset-button').on('click', function () {\n $(this).removeClass('d-sm-block');\n });\n};\n","/* eslint-disable */\n\n'use strict';\n\n/*\n * SlickLightbox documentation #\n\nDocumentation generated by [CoffeeDoc](http://github.com/omarkhan/coffeedoc)\n */\n(function ($) {\n var SlickLightbox,\n defaults;\n SlickLightbox = (function () {\n /*\n \t\tThe one and only class used.\n */\n function SlickLightbox(element, options) {\n var that;\n this.options = options;\n\n /* Binds the plugin. */\n this.element = $(element);\n this.didInit = false;\n that = this;\n this.element.on('click.slickLightbox', this.options.itemSelector, function (e) {\n e.preventDefault();\n return that.init(that.element.find(that.options.itemSelector).index($(this)));\n });\n }\n\n SlickLightbox.prototype.init = function (index) {\n /* Creates the lightbox, opens it, binds events and calls `slick`. Accepts `index` of the element, that triggered it (so that we know, on which slide to start slick). */\n this.didInit = true;\n this.detectIE();\n this.createModal(index);\n this.bindEvents();\n this.initSlick();\n return this.open();\n };\n\n SlickLightbox.prototype.createModalItems = function (index) {\n /* Creates individual slides to be used with slick. If `options.images` array is specified, it uses it's contents, otherwise loops through elements' `options.itemSelector`. */\n var createItem, links;\n\n createItem = (function (_this) {\n return function (el) {\n var caption, src, srcset, sizes;\n caption = _this.getElementCaption(el);\n src = _this.getElementSrc(el);\n\n srcset = $(el).find('source').attr('srcset');\n sizes = $(el).find('source').attr('sizes');\n\n if (srcset && sizes) {\n return (\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n caption +\n '
    ' +\n '
    '\n );\n } else {\n return (\n '
    ' +\n '
    ' +\n '' +\n caption +\n '
    ' +\n '
    '\n );\n }\n };\n }(this));\n\n var a = this.element.find(this.options.itemSelector);\n links = $.map(a, createItem);\n\n return links;\n };\n\n SlickLightbox.prototype.createModal = function (index) {\n /* Creates a `slick`-friendly modal. Rearranges the items so that the `index`-th item is placed first. */\n var html,\n links;\n links = this.createModalItems(index);\n html = '
    \\n\t
    \\n\t\t
    ' + (links.join('')) + '
    \\n\t\t\\n\t
    \\n
    ';\n this.modalElement = $(html);\n return $('body').append(this.modalElement);\n };\n\n SlickLightbox.prototype.initSlick = function (index) {\n /* Runs slick by default, using `options.slick` if provided. If `options.slick` is a function, it gets fired instead of us initializing slick. */\n if (this.options.slick != null) {\n if (typeof this.options.slick === 'function') {\n /* Function expected to return slick instance. */\n this.slick = this.options.slick(this.modalElement);\n } else {\n this.slick = this.modalElement.find('.slick-lightbox-slick').slick(this.options.slick);\n }\n } else {\n this.slick = this.modalElement.find('.slick-lightbox-slick').slick();\n }\n return this.modalElement.trigger('init.slickLightbox');\n };\n\n SlickLightbox.prototype.open = function () {\n /* Opens the lightbox. */\n this.element.trigger('show.slickLightbox');\n setTimeout(((function (_this) {\n return function () {\n return _this.element.trigger('shown.slickLightbox');\n };\n })(this)), this.getTransitionDuration());\n return this.modalElement.removeClass('slick-hide-init');\n };\n\n SlickLightbox.prototype.close = function () {\n /* Closes the lightbox and destroys it, maintaining the original element bindings. */\n this.element.trigger('hide.slickLightbox');\n setTimeout(((function (_this) {\n return function () {\n return _this.element.trigger('hidden.slickLightbox');\n };\n })(this)), this.getTransitionDuration());\n this.modalElement.addClass('slick-hide');\n return this.destroy();\n };\n\n SlickLightbox.prototype.bindEvents = function () {\n /* Binds global events. */\n var resizeSlides;\n resizeSlides = (function (_this) {\n return function () {\n var h;\n h = _this.modalElement.find('.slick-lightbox-inner').height();\n _this.modalElement.find('.slick-lightbox-slick-item').height(h);\n return _this.modalElement.find('.slick-lightbox-slick-img').css('max-height', Math.round(0.9 * h));\n };\n }(this));\n $(window).on('orientationchange.slickLightbox resize.slickLightbox', resizeSlides);\n this.modalElement.on('init.slickLightbox', resizeSlides);\n this.modalElement.on('destroy.slickLightbox', (function (_this) {\n return function () {\n return _this.destroy();\n };\n }(this)));\n this.element.on('destroy.slickLightbox', (function (_this) {\n return function () {\n return _this.destroy(true);\n };\n }(this)));\n this.modalElement.on('click.slickLightbox touchstart.slickLightbox', '.slick-lightbox-close', (function (_this) {\n return function (e) {\n e.preventDefault();\n return _this.close();\n };\n }(this)));\n if (this.options.closeOnEscape || this.options.navigateByKeyboard) {\n $(document).on('keydown.slickLightbox', (function (_this) {\n return function (e) {\n var code;\n code = e.keyCode ? e.keyCode : e.which;\n if (_this.options.navigateByKeyboard) {\n if (code === 37) {\n _this.slideSlick('left');\n } else if (code === 39) {\n _this.slideSlick('right');\n }\n }\n if (_this.options.closeOnEscape) {\n if (code === 27) {\n return _this.close();\n }\n }\n };\n }(this)));\n }\n if (this.options.closeOnBackdropClick) {\n this.modalElement.on('click.slickLightbox touchstart.slickLightbox', '.slick-lightbox-slick-img', (function (_this) {\n return function (e) {\n return e.stopPropagation();\n };\n }(this)));\n this.modalElement.on('click.slickLightbox touchstart.slickLightbox', '.slick-lightbox-slick-iframe-wrap', (function (_this) {\n return function (e) {\n return e.stopPropagation();\n };\n }(this)));\n return this.modalElement.on('click.slickLightbox touchstart.slickLightbox', '.slick-lightbox-slick-item', (function (_this) {\n return function (e) {\n e.preventDefault();\n return _this.close();\n };\n }(this)));\n }\n };\n\n SlickLightbox.prototype.slideSlick = function (direction) {\n /* Moves the slick prev or next. */\n if (direction === 'left') {\n return this.slick.slick('slickPrev');\n }\n return this.slick.slick('slickNext');\n };\n\n SlickLightbox.prototype.detectIE = function () {\n /* Detects usage of IE8 and lower. */\n var ieversion;\n this.isIE = false;\n if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)) {\n ieversion = new Number(RegExp.$1);\n if (ieversion < 9) {\n return this.isIE = true;\n }\n }\n };\n\n SlickLightbox.prototype.getElementCaption = function (el) {\n /* Returns caption for each slide based on the type of `options.caption`. */\n var c;\n if (!this.options.caption) {\n return '';\n }\n c = (function () {\n switch (typeof this.options.caption) {\n case 'function':\n return this.options.caption(el);\n case 'string':\n return $(el).data(this.options.caption);\n }\n }).call(this);\n return '' + c + '';\n };\n\n SlickLightbox.prototype.getElementSrc = function (el) {\n /* Returns src for each slide image based on the type of `options.src`. */\n switch (typeof this.options.src) {\n case 'function':\n return this.options.src(el);\n case 'string':\n return $(el).attr(this.options.src);\n default:\n return el.href;\n }\n };\n\n SlickLightbox.prototype.detectImage = function (url) {\n /* Returns true if finds image file extension, optionally allow querystrings through if they exist */\n return url.match(/\\.(jpeg|jpg|gif|png)(\\?.*)?$/) !== null;\n };\n\n SlickLightbox.prototype.unbindEvents = function () {\n /* Unbinds global events. */\n $(window).off('.slickLightbox');\n $(document).off('.slickLightbox');\n return this.modalElement.off('.slickLightbox');\n };\n\n SlickLightbox.prototype.destroy = function (unbindAnchors) {\n if (unbindAnchors == null) {\n unbindAnchors = false;\n }\n\n /* Destroys the lightbox and unbinds global events. If `true` is passed as an argument, unbinds the original element as well. */\n if (this.didInit) {\n this.unbindEvents();\n setTimeout(((function (_this) {\n return function () {\n return _this.modalElement.remove();\n };\n })(this)), this.options.destroyTimeout);\n }\n if (unbindAnchors) {\n this.element.off('.slickLightbox');\n return this.element.off('.slickLightbox', this.options.itemSelector);\n }\n };\n\n SlickLightbox.prototype.destroyPrevious = function () {\n /* Destroys lightboxes currently in DOM. */\n return $('body').children('.slick-lightbox').trigger('destroy.slickLightbox');\n };\n\n SlickLightbox.prototype.getTransitionDuration = function () {\n /* Detects the transition duration to know when to remove stuff from DOM etc. */\n var duration;\n if (this.transitionDuration) {\n return this.transitionDuration;\n }\n duration = this.modalElement.css('transition-duration');\n if (typeof duration === 'undefined') {\n return this.transitionDuration = 500;\n }\n return this.transitionDuration = duration.indexOf('ms') > -1 ? parseFloat(duration) : parseFloat(duration) * 1000;\n };\n\n return SlickLightbox;\n }());\n defaults = {\n background : 'rgba(0,0,0,.8)',\n closeOnEscape : true,\n closeOnBackdropClick : true,\n destroyTimeout : 500,\n itemSelector : 'a',\n navigateByKeyboard : true,\n src : false,\n caption : false,\n captionPosition : 'dynamic',\n images : false,\n slick : {}\n };\n $.fn.slickLightbox = function (options) {\n /* Fires the plugin. */\n options = $.extend({}, defaults, options);\n new SlickLightbox(this, options);\n return this;\n };\n return $.fn.unslickLightbox = function () {\n /* Removes everything. */\n return $(this).trigger('destroy.slickLightbox');\n };\n}(jQuery));\n","'use strict';\n\n/**\n * Show a spinner inside a given element\n * @param {element} $target - Element to block by the veil and spinner.\n * Pass body to block the whole page.\n */\nfunction addSpinner($target) {\n var $veil = $('
    ');\n $veil.append('
    ');\n if ($target.get(0).tagName === 'IMG') {\n $target.after($veil);\n $veil.css({ width: $target.width(), height: $target.height() });\n if ($target.parent().css('position') === 'static') {\n $target.parent().css('position', 'relative');\n }\n } else {\n $target.append($veil);\n if ($target.css('position') === 'static') {\n $target.parent().css('position', 'relative');\n $target.parent().addClass('veiled');\n }\n if ($target.get(0).tagName === 'BODY') {\n $veil.find('.spinner').css('position', 'fixed');\n }\n }\n $veil.click(function (e) {\n e.stopPropagation();\n });\n}\n\n/**\n * Remove existing spinner\n * @param {element} $veil - jQuery pointer to the veil element\n */\nfunction removeSpinner($veil) {\n if ($('.veiled')) {\n $('.veiled').css('position', '');\n $('.veiled').removeClass('veiled');\n }\n $veil.off('click');\n $veil.remove();\n}\n\n// element level spinner:\n$.fn.spinner = function () {\n var $element = $(this);\n var Fn = function () {\n this.start = function () {\n if ($element.length) {\n addSpinner($element);\n }\n };\n this.stop = function () {\n if ($element.length) {\n var $veil = $('.veil');\n removeSpinner($veil);\n }\n };\n };\n return new Fn();\n};\n\n// page-level spinner:\n$.spinner = function () {\n var Fn = function () {\n this.start = function () {\n addSpinner($('body'));\n };\n this.stop = function () {\n removeSpinner($('.veil'));\n };\n };\n return new Fn();\n};\n","/* eslint-disable no-undef */\n\n'use strict';\n\n\n$(document).ready(function () {\n var formValidation = require('base/components/formValidation');\n var createErrorNotification = require('base/components/errorNotification');\n var inputAnimation = require('../common/input-animation');\n\n /* Aquí cargamos todo lo necesario para utilizar el plugin intlTelInput, y validar el teléfono móvil introducido por el usuario */\n\n var inputPhone = document.querySelector('#registration-form-phone, #registration-form-phone-checkout');\n var phone;\n var locale;\n if (inputPhone) {\n locale = window && window.CQuotient && window.CQuotient.locale;\n locale = locale.split('_')[1];\n phone = intlTelInput(inputPhone, {\n utilsScript : 'https://www.pikolinos.com/on/demandware.static/-/Library-Sites-GrupoPikolinos/default/plugins/TelephoneInputValidator/js/utils.js',\n autoInsertDialCode : true,\n nationalMode : false,\n separateDialCode : true,\n autoPlaceholder : 'polite',\n placeholderNumberType : 'MOBILE',\n initialCountry : locale,\n preferredCountries : ['ES', 'US', 'FR', 'DE', 'BE', 'NL', 'GB', 'PT']\n });\n }\n\n function validatePhoneData() {\n var valid = phone.isValidNumber();\n var errorType = phone.getValidationError();\n var isPhoneEmpty = phone.getNumber() === '';\n var isMobilePhone = phone.getNumberType(); // Móvil == 1, Para USA no se distingue entre fijo y móvil\n\n if (!isPhoneEmpty && !valid && errorType === intlTelInputUtils.validationError.TOO_SHORT) {\n $('#form-phone-error').text($('#' + phone.a.id).attr('data-phone-short'));\n $('#form-phone-error').show();\n return valid;\n } else if (!isPhoneEmpty && !valid && errorType === intlTelInputUtils.validationError.TOO_LONG) {\n $('#form-phone-error').text($('#' + phone.a.id).attr('data-phone-long'));\n $('#form-phone-error').show();\n return valid;\n } else if (!isPhoneEmpty && isMobilePhone !== intlTelInputUtils.numberType.MOBILE && isMobilePhone !== intlTelInputUtils.numberType.FIXED_LINE_OR_MOBILE && errorType !== 0) {\n $('#form-phone-error').text($('#' + phone.a.id).attr('data-phone-mobile'));\n $('#form-phone-error').show();\n return valid;\n } else if (!isPhoneEmpty && !valid && errorType !== 0) {\n $('#form-phone-error').text($('#' + phone.a.id).attr('data-phone-error'));\n $('#form-phone-error').show();\n return valid;\n } else if (isPhoneEmpty || errorType === -99) {\n $('#form-phone-error').text($('#' + phone.a.id).attr('data-pattern-mismatch'));\n $('#form-phone-error').show();\n return valid;\n } else if (valid) {\n $('#form-phone-error').hide();\n return valid;\n }\n return true;\n }\n\n function getPhoneNumber() {\n return phone && phone.getNumber().trim();\n }\n\n function moveAlert() {\n if ($('.alert.alert-danger:not(\".newsletter-alert-message\")').length > 1) {\n $('.alert.alert-danger:not(\".newsletter-alert-message\")')[0].remove();\n }\n var container = $('.login-page')[0];\n var divToMove = $('.alert.alert-danger:not(\".newsletter-alert-message\")')[0];\n if (divToMove.childNodes.length > 0) {\n var title = '
    ' + divToMove.childNodes[0].data + '
    ';\n var desc = '

    ' + divToMove.childNodes[2].data + '

    ';\n divToMove.innerHTML = title + desc;\n }\n container.insertBefore(divToMove, container.firstChild);\n }\n\n function isSameEmails(form) {\n // form validation\n var emailValue = form.find('#registration-form-email-login, #registration-form-email')[0].value;\n var emailConfirmValue = form.find('#registration-form-email-confirm, #registration-form-email-confirm')[0].value;\n\n return emailValue.toLowerCase() === emailConfirmValue.toLowerCase();\n }\n\n function hidePreviousConfirmationMessage() {\n if (!$('.recover-password-notification').hasClass('d-none')) {\n $('.recover-password-notification').addClass('d-none');\n $('.recover-password-notification').removeClass('d-block');\n }\n if (!$('.confirm-reset-password-notification').hasClass('d-none')) {\n $('.confirm-reset-password-notification').addClass('d-none');\n $('.confirm-reset-password-notification').removeClass('d-block');\n }\n }\n\n /**\n * Funciones para ocultar o mostrar la contraseña en los diferentes formularios.\n */\n function showPasswordIconsCurrent(input) {\n input.type = 'text';\n $('#hidePasswordCurrent').removeClass('d-none');\n $('#showPasswordCurrent').addClass('d-none');\n }\n\n function showPasswordIcons(input) {\n input.type = 'text';\n $('#hidePassword').removeClass('d-none');\n $('#showPassword').addClass('d-none');\n }\n\n function showPasswordIconsLogin(input) {\n input.type = 'text';\n if (input.id.includes('-normal')) {\n $('#hidePasswordLogin-normal').removeClass('d-none');\n $('#showPasswordLogin-normal').addClass('d-none');\n } else if (input.id.includes('-mini')) {\n $('#hidePasswordLogin-mini').removeClass('d-none');\n $('#showPasswordLogin-mini').addClass('d-none');\n }\n }\n\n function showPasswordIconsConfirm(input) {\n input.type = 'text';\n $('#hidePasswordConfirm').removeClass('d-none');\n $('#showPasswordConfirm').addClass('d-none');\n }\n\n function hidePasswordIconsCurrent(input) {\n input.type = 'password';\n $('#hidePasswordCurrent').addClass('d-none');\n $('#showPasswordCurrent').removeClass('d-none');\n }\n\n function hidePasswordIcons(input) {\n input.type = 'password';\n $('#hidePassword').addClass('d-none');\n $('#showPassword').removeClass('d-none');\n }\n\n function hidePasswordIconsLogin(input) {\n input.type = 'password';\n if (input.id.includes('-normal')) {\n $('#hidePasswordLogin-normal').addClass('d-none');\n $('#showPasswordLogin-normal').removeClass('d-none');\n } else if (input.id.includes('-mini')) {\n $('#hidePasswordLogin-mini').addClass('d-none');\n $('#showPasswordLogin-mini').removeClass('d-none');\n }\n }\n\n function hidePasswordIconsConfirm(input) {\n input.type = 'password';\n $('#hidePasswordConfirm').addClass('d-none');\n $('#showPasswordConfirm').removeClass('d-none');\n }\n\n function checkConstraints(inputText) {\n if (inputText.length >= 8) {\n return true;\n }\n return false;\n }\n\n\n // PIK200620-32-MyAccount 2021/01/11 Recover email from sessionStorage when user is redirected from resetPasswordPage\n var resetPasswordEmailSession = sessionStorage.getItem('resetPasswordEmail');\n if (resetPasswordEmailSession) {\n $('.recover-password-email').append(sessionStorage.getItem('resetPasswordEmail'));\n $('.recover-password-notification').removeClass('d-none');\n $('.recover-password-notification').addClass('d-block');\n sessionStorage.removeItem('resetPasswordEmail');\n } else {\n var urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get('confirmResetPassword') === 'true') {\n $('.confirm-reset-password-notification').removeClass('d-none');\n $('.confirm-reset-password-notification').addClass('d-block');\n }\n }\n\n $('form.login').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n $('form.login').trigger('login:submit', e);\n hidePreviousConfirmationMessage();\n $.ajax({\n url : url,\n type : 'post',\n dataType : 'json',\n data : form.serialize(),\n success : function (data) {\n form.spinner().stop();\n if (!data.success) {\n formValidation(form, data);\n moveAlert();\n $('form.login').trigger('login:error', data);\n scroll({ behavior: 'smooth', top: $('.alert-danger')[0].offsetTop - ($('.header-navigation-content').height() + 100) });\n } else {\n $('form.login').trigger('login:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (data) {\n if (data.responseJSON.redirectUrl) {\n window.location.href = data.responseJSON.redirectUrl;\n } else {\n $('form.login').trigger('login:error', data);\n form.spinner().stop();\n scroll({ behavior: 'smooth', top: $('.alert-danger')[0].offsetTop });\n }\n }\n });\n return false;\n });\n\n /* Validación de los datos, email, teléfono*/\n $('form.registration').on('touchstart click', '#submit', function () {\n var form = $('form.registration');\n var emailValid = form.find('#registration-form-email-login, #registration-form-email')[0].checkValidity();\n var emailConfirmValid = form.find('#registration-form-email-confirm, #registration-form-email-confirm')[0].checkValidity();\n if (!$('#form-email-confirm-error-not-same').hasClass('d-none')) {\n $('#form-email-confirm-error-not-same').addClass('d-none');\n }\n if (!$('#password-reset-register').hasClass('d-none')) {\n $('#password-reset-register').addClass('d-none');\n }\n if (emailValid && emailConfirmValid) {\n if (!isSameEmails(form)) {\n $('#form-email-confirm-error-not-same').removeClass('d-none');\n }\n }\n\n // Validamos el telefono, para en caso de tener un error externo al formulario, no realizar la llamda. El form comprueba que no esté vacio y longitud, pero ahora con el plugin comprobamos que el teléfono sea válido para el país que ha seleccionado el cliente.\n validatePhoneData();\n });\n\n $('form.registration').submit(function (e) {\n if (validatePhoneData()) {\n $('#form-phone-error').hide();\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n var isNewsletterChecked = $('#add-to-email-list').is(':checked');\n // when this event is executed, the form is correct but it has not been verified if the emails are the same\n $('#registration-form-phone').val(getPhoneNumber());\n\n if (!$('#form-email-confirm-error-not-same').hasClass('d-none')) {\n $('#form-email-confirm-error-not-same').addClass('d-none');\n }\n if (!$('#password-reset-register').hasClass('d-none')) {\n $('#password-reset-register').addClass('d-none');\n }\n $('form.registration').trigger('login:register', e);\n hidePreviousConfirmationMessage();\n $.ajax({\n url : url,\n type : 'post',\n dataType : 'json',\n data : form.serialize(),\n success : function (data) {\n form.spinner().stop();\n if (!data.success) {\n if (data.existCustomer) {\n $('#password-reset-register').removeClass('d-none');\n }\n $('form.registration').trigger('login:register:error', data);\n formValidation(form, data);\n } else {\n if (isNewsletterChecked) {\n var pageType = '';\n /* eslint-disable no-undef */\n // Recorremos el datalayer para obtener el pageType\n dataLayer.forEach(function (evento) {\n if (evento.event === 'pagina') pageType = evento.pageType;\n });\n\n var etiqueta = pageType + '-' + window.location.href;\n dataLayer.push({\n event : 'Suscripcion Newsletter',\n Categoría : 'Suscripcion Newsletter',\n Acción : 'Suscripcion Enviada',\n Etiqueta : etiqueta\n });\n }\n\n $('form.registration').trigger('login:register:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (err) {\n form.spinner().stop();\n if (!err.responseJSON) {\n createErrorNotification($('.error-messaging'), 'There was an error in the google captcha validation, please try again in a few minutes');\n scroll({ behavior: 'smooth', top: $('.error-messaging')[0].offsetTop });\n } else if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n createErrorNotification($('.error-messaging'), err.responseJSON.errorMessage);\n scroll({ behavior: 'smooth', top: $('.error-messaging')[0].offsetTop });\n }\n }\n });\n }\n return false;\n });\n\n $('.reset-password-form').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n $('.reset-password-form').trigger('login:register', e);\n $.ajax({\n url : url,\n type : 'post',\n dataType : 'json',\n data : form.serialize(),\n success : function (data) {\n form.spinner().stop();\n if (!data.success) {\n formValidation(form, data);\n } else {\n var a_href = $('#backToLogin').attr('href');\n // PIK200620-32-MyAccount 2021/01/11 Recover email from sessionStorage when user is redirected from resetPasswordPage\n sessionStorage.removeItem('resetPasswordEmail');\n sessionStorage.setItem('resetPasswordEmail', form[0][0].value);\n window.location.href = a_href;\n }\n },\n error: function (err) {\n console.error(err);\n form.spinner().stop();\n }\n });\n return false;\n });\n\n $('#login .modal').on('hidden.bs.modal', function () {\n $('#reset-password-email').val('');\n $('.modal-dialog .form-control.is-invalid').removeClass('is-invalid');\n });\n\n\n $('.tabs').on('touchstart click', '.tabs-btn', function (e) {\n e.preventDefault();\n var id = $(this).attr('rel');\n $('.tabs-btn').removeClass('active');\n $(this).addClass('active');\n $('.tab-pane').hide();\n $('#' + id).show();\n });\n\n $('#showPasswordCurrent, #hidePasswordCurrent').on('touchstart click', function () {\n var input = $(this).siblings('input')[0];\n if (input.type === 'password') {\n showPasswordIconsCurrent(input);\n } else {\n hidePasswordIconsCurrent(input);\n }\n });\n\n $('#showPassword, #hidePassword').on('touchstart click', function () {\n var input = $(this).siblings('input')[0];\n if (input.type === 'password') {\n showPasswordIcons(input);\n } else {\n hidePasswordIcons(input);\n }\n });\n\n $('#showPasswordLogin-normal, #showPasswordLogin-mini, #hidePasswordLogin-normal, #hidePasswordLogin-mini').on('touchstart click', function () {\n var input = $(this).siblings('input')[0];\n if (input.type === 'password') {\n showPasswordIconsLogin(input);\n } else {\n hidePasswordIconsLogin(input);\n }\n });\n\n $('#showPasswordConfirm, #hidePasswordConfirm').on('touchstart click', function () {\n var input = $(this).siblings('input')[0];\n if (input.type === 'password') {\n showPasswordIconsConfirm(input);\n } else {\n hidePasswordIconsConfirm(input);\n }\n });\n\n $('#registration-form-password, #newPassword').on('keyup', function () {\n var inputText = $('#registration-form-password, #newPassword').val();\n if (checkConstraints(inputText)) {\n $('#checkPassword').removeClass('d-none');\n } else {\n $('#checkPassword').addClass('d-none');\n }\n });\n\n $('#registration-form-password-confirm, #newPasswordConfirm').on('keyup', function () {\n var pass = $('#registration-form-password, #newPassword').val();\n var passConfirm = $('#registration-form-password-confirm, #newPasswordConfirm').val();\n if (checkConstraints(passConfirm) && pass === passConfirm) {\n $('#checkPasswordConfirm').removeClass('d-none');\n } else {\n $('#checkPasswordConfirm').addClass('d-none');\n }\n });\n\n /** Adding no-empty class to input in order to animate the label */\n inputAnimation.labelAnimation();\n});\n\n","window.jQuery = window.$ = require('jquery');\nvar processInclude = require('base/util');\nvar smoothscroll = require('smoothscroll-polyfill');\n\n$(document).ready(function () {\n $('.logo-home').focus();\n processInclude(require('./components/menu'));\n processInclude(require('base/components/cookie'));\n processInclude(require('base/components/consentTracking'));\n processInclude(require('base/components/footer'));\n processInclude(require('./components/miniCart'));\n processInclude(require('base/components/collapsibleItem'));\n processInclude(require('./components/search'));\n processInclude(require('base/components/clientSideValidation'));\n processInclude(require('base/components/countrySelector'));\n processInclude(require('base/components/toolTip'));\n processInclude(require('./components/countrySelectorModal'));\n processInclude(require('./components/geolocationModal'));\n processInclude(require('./components/newsletterModal'));\n processInclude(require('./login/login'));\n processInclude(require('./utilities/navigationUtilities'));\n smoothscroll.polyfill();\n});\n\nrequire('base/thirdParty/bootstrap');\nrequire('./components/spinner');\nrequire('slick-carousel');\nrequire('./components/slick-lightbox/slick-lightbox');\n","'use strict';\n\nvar focusHelper = require('base/components/focus');\nvar formHelpers = require('base/checkout/formErrors');\nvar reloadGallery = require('./detail').showMainGalleryMobile;\nvar openZoomDesktop = require('./detail').openZoomDesktop;\nvar createCarouselDesktop = require('./detail').createCarouselDesktop;\nvar showRecommendations = require('./detail').showRecommendations;\n\n/**\n * Retrieves the relevant pid value\n * @param {jquery} $el - DOM container for a given add to cart button\n * @return {string} - value to be used when adding product to cart\n */\nfunction getPidValue($el) {\n var pid;\n\n if ($('#quickViewModal').hasClass('show') && !$('.product-set').length) {\n pid = $($el).closest('.modal-content').find('.product-quickview').data('pid');\n } else if ($($el).hasClass('add-to-cart-no-checkout')) {\n pid = $($el).data('pid');\n } else if ($('.product-set-detail').length || $('.product-set').length) {\n pid = $($el).closest('.product-detail').find('.product-id').text();\n } else {\n pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n }\n\n return pid;\n}\n\n/**\n * Retrieve contextual quantity selector\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {jquery} - quantity selector DOM container\n */\nfunction getQuantitySelector($el) {\n var quantitySelected;\n if ($el && $('.set-items').length) {\n quantitySelected = $($el).closest('.product-detail').find('.quantity-select');\n } else if ($el && $('.product-bundle').length) {\n var quantitySelectedModal = $($el).closest('.modal-footer').find('.quantity-select');\n var quantitySelectedPDP = $($el).closest('.bundle-footer').find('.quantity-select');\n if (quantitySelectedModal.val() === undefined) {\n quantitySelected = quantitySelectedPDP;\n } else {\n quantitySelected = quantitySelectedModal;\n }\n } else {\n quantitySelected = $('.quantity-select');\n }\n return quantitySelected;\n}\n\n/**\n * Retrieves the value associated with the Quantity pull-down menu\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {string} - value found in the quantity input\n */\nfunction getQuantitySelected($el) {\n return getQuantitySelector($el).val();\n}\n\n/**\n * Change add-to-cart-size-selector button to add-to-cart button.\n */\nfunction changeAddToCartSizeSelectorButton() {\n if ($('button.add-to-cart-size-selector').length) {\n var addToCartSizeSelectorElement = $('button.add-to-cart-size-selector');\n addToCartSizeSelectorElement.addClass('add-to-cart').removeClass('add-to-cart-size-selector');\n addToCartSizeSelectorElement.attr('data-target', '#chooseBonusProductModal');\n }\n}\n\n/**\n * Change add-to-cart button to add-to-cart-size-selector button.\n */\nfunction changeAddToCartButton() {\n if ($('button.add-to-cart').length && !$('.js-product-list-size').hasClass('selected')) {\n var addToCartElement = $('button.add-to-cart');\n addToCartElement.addClass('add-to-cart-size-selector').removeClass('add-to-cart');\n addToCartElement.attr('data-target', '#sizeSelectorModal');\n addToCartElement.removeAttr('disabled');\n addToCartElement.removeProp('disabled');\n }\n}\n\n/**\n * Process the attribute values for an attribute that has image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n * @param {Object} msgs - object containing resource messages\n * @param {Boolean} updateUrlSwatch - true if you want update the data-url attribute\n */\nfunction processSwatchValues(attr, $productContainer, msgs, updateUrlSwatch) {\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer.find('[data-attr=\"' + attr.id + '\"] [data-attr-value=\"' +\n attrValue.value + '\"]');\n var $swatchButton = $attrValue.parent();\n var label = $productContainer.find('.' + attr.id + '.non-input-label');\n\n if (attrValue.selected) {\n if (label && label.length > 0) {\n label.empty().append(attr.displayName + ' : ' + attrValue.displayValue);\n }\n $attrValue.addClass('selected');\n $attrValue.siblings('.selected-assistive-text').text(msgs.assistiveSelectedText);\n } else {\n $attrValue.removeClass('selected');\n $attrValue.siblings('.selected-assistive-text').empty();\n }\n\n if (updateUrlSwatch) {\n if (attrValue.url) {\n $swatchButton.attr('data-url', attrValue.url);\n } else {\n $swatchButton.removeAttr('data-url');\n }\n }\n\n // Disable if not selectable\n $attrValue.removeClass('selectable unselectable');\n\n if (updateUrlSwatch) {\n $attrValue.addClass(attrValue.selectable ? 'selectable' : 'unselectable');\n } else {\n $attrValue.addClass('selectable');\n }\n });\n}\n\n/**\n * Recorremos los diferentes selectors, ya que a cada uno hay que añadirle o quitarle diferentes *clases.\n * @param {Array} selectors diferentes selectores de talla\n */\nfunction addClassesDependsOnSelectorType(selectors, isAlertSizeNotificationEnabled) {\n selectors.each(function () {\n var item = $(this)[0];\n if (item.nodeName == 'LI' && isAlertSizeNotificationEnabled) {\n $(this).addClass('unselectable');\n } else if (item.nodeName == 'LI' && !isAlertSizeNotificationEnabled) {\n $(this).append('
    ');\n $(this).addClass('unselectable');\n } else {\n item.setAttribute('disabled', '');\n }\n });\n}\n\nfunction removeIconSizeNotificationFromModal() {\n $('li.js-product-list-size-modal.swatch-rectangle.disabled.unselectable').each(function () {\n if ($(this).find('.email-size-available').length > 0) {\n $(this).find('.email-size-available').remove();\n }\n });\n}\n\nfunction addDiagoanlToModal() {\n $('li.js-product-list-size-modal.swatch-rectangle.disabled.unselectable').each(function () {\n $(this).first().prepend('
    ');\n });\n}\n\nfunction showEmailIconOrDiagonal(params) {\n var $attrValue = params && params.$attrValue;\n var attrValue = params && params.attrValue;\n var attrSelected = params && params.attrSelected;\n var isOutlet = params && params.attrValue.isOutlet;\n var isAlertSizeNotificationEnabled = params && params.attrValue.isAlertSizeNotificationEnabled;\n\n if (!attrValue.selectable) {\n $attrValue.addClass('disabled');\n if (isAlertSizeNotificationEnabled && !isOutlet) {\n $attrValue.prepend('
    ');\n } else if (isAlertSizeNotificationEnabled && isOutlet) {\n var hasDiagonal = false;\n for (var i = 0; i < $attrValue[0].childNodes.length; i++) {\n var childNode = $attrValue[0].childNodes[i];\n if (childNode.nodeName === 'DIV' && childNode.className === 'diagonal') {\n hasDiagonal = true;\n }\n }\n\n if (!hasDiagonal) {\n $attrValue.prepend('
    ');\n }\n }\n addClassesDependsOnSelectorType($attrValue, attrValue.isAlertSizeNotificationEnabled);\n } else {\n $attrValue.removeClass('disabled');\n $attrValue.removeAttr('disabled');\n $attrValue.removeClass('unselectable');\n $attrValue.find('.diagonal').remove();\n if (isAlertSizeNotificationEnabled && !isOutlet) {\n $attrValue.find('.icon').remove();\n }\n }\n if (attrValue.selected) {\n $attrValue.addClass('selected');\n attrSelected = true;\n }\n\n return attrSelected;\n}\n\n/**\n * Process attribute values associated with an attribute that does not have image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n */\n\nfunction processNonSwatchValues(attr, $productContainer) {\n var $attr = '[data-attr=\"' + attr.id + '\"]';\n var $defaultOption = $productContainer.find($attr + ' .select-' + attr.id + ' option:first');\n $defaultOption.attr('value', attr.resetUrl);\n var attrSelected = false;\n $('.icon.email-size-available').remove();\n $('.icon.email-size-available-white').remove();\n\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer\n .find($attr + ' [data-attr-value=\"' + attrValue.value + '\"]');\n $attrValue.attr('value', attrValue.url)\n .removeAttr('hidden');\n\n var params = {\n attrValue : attrValue,\n $attrValue: $attrValue,\n attrSelected : attrSelected\n };\n\n // en base a isOutlet y isAlertSizeNotificationEnabled se mostrar o la diagonal para el tachado o el icono de email para la alerta por tallas.\n attrSelected = showEmailIconOrDiagonal(params);\n\n // Se añade la información referente a los nuevos atributos añadios para el aviso de stock por tallas.\n $attrValue.attr('data-attr-value', attrValue.displayValue);\n $attrValue.attr('data-attr-ean', attrValue.ean);\n $attrValue.attr('data-attr-stock', attrValue.stock);\n });\n\n removeIconSizeNotificationFromModal();\n addDiagoanlToModal();\n\n if (!attrSelected && !$('button.add-to-cart-size-selector').length) {\n changeAddToCartButton();\n }\n // Disabled add to cart pdp button.\n var addToCartElement;\n if ($('button.add-to-cart-size-selector').length) {\n addToCartElement = $('button.add-to-cart-size-selector');\n } else if ($('button.add-to-cart').length) {\n addToCartElement = $('button.add-to-cart');\n }\n if (addToCartElement) {\n if (attr.values.length === 0) {\n addToCartElement.prop('disabled', true);\n addToCartElement.attr('disabled', true);\n } else {\n addToCartElement.removeAttr('disabled');\n addToCartElement.removeProp('disabled');\n }\n }\n}\n\n/**\n * Routes the handling of attribute processing depending on whether the attribute has image\n * swatches or not\n *\n * @param {Object} attrs - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {jQuery} $productContainer - DOM element for a given product\n * @param {Object} msgs - object containing resource messages\n * @param {Boolean} updateUrlSwatch - true if you want update the data-url attribute\n */\nfunction updateAttrs(attrs, $productContainer, msgs, updateUrlSwatch) {\n // Currently, the only attribute type that has image swatches is Color.\n var attrsWithSwatches = ['color'];\n\n attrs.forEach(function (attr) {\n if (attrsWithSwatches.indexOf(attr.id) > -1) {\n processSwatchValues(attr, $productContainer, msgs, updateUrlSwatch);\n } else {\n processNonSwatchValues(attr, $productContainer);\n }\n });\n}\n\n/**\n * Updates the availability status in the Product Detail Page\n *\n * @param {Object} response - Ajax response object after an\n * attribute value has been [de]selected\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction updateAvailability(response, $productContainer) {\n var availabilityValue = '';\n var availabilityMessages = response.product.availability.messages;\n if (!response.product.readyToOrder) {\n availabilityValue = '
  • ' + response.resources.info_selectforstock + '
  • ';\n } else {\n availabilityMessages.forEach(function (message) {\n availabilityValue += '
  • ' + message + '
  • ';\n });\n }\n\n $($productContainer).trigger('product:updateAvailability', {\n product: response.product,\n $productContainer: $productContainer,\n message: availabilityValue,\n resources: response.resources\n });\n}\n\n/**\n * Generates html for product attributes section\n *\n * @param {array} attributes - list of attributes\n * @return {string} - Compiled HTML\n */\nfunction getAttributesHtml(attributes) {\n if (!attributes) {\n return '';\n }\n\n var html = '';\n\n attributes.forEach(function (attributeGroup) {\n if (attributeGroup.ID === 'mainAttributes') {\n attributeGroup.attributes.forEach(function (attribute) {\n html += '
    ' + attribute.label + ': '\n + attribute.value + '
    ';\n });\n }\n });\n\n return html;\n}\n\n/**\n * Updates DOM using post-option selection Ajax response\n *\n * @param {OptionSelectionResponse} optionsHtml - Ajax response optionsHtml from selecting a product option\n * @param {jQuery} $productContainer - DOM element for current product\n */\nfunction updateOptions(optionsHtml, $productContainer) {\n // Update options\n $productContainer.find('.product-options').empty().html(optionsHtml);\n}\n\n/**\n * Update the icons.\n * @param {Object} product - The product.\n */\nfunction updateIcons(product) {\n var ribbonIcons = $('#nameProductContainer .productIcons');\n if (ribbonIcons) {\n ribbonIcons.empty();\n }\n if (product.icons) {\n var template = '';\n if (product.priceInfo) {\n template += '';\n }\n if (product.promotions != null) {\n for (var i = 0; i < product.promotions.length; i++) {\n var promotion = product.promotions[i];\n if (promotion.image != null) {\n template += '\"'';\n }\n }\n }\n if (product.ribbons != null) {\n for (var j = 0; j < product.ribbons.length; j++) {\n var ribbon = product.ribbons[j];\n template += '\"'';\n }\n }\n ribbonIcons.html(template);\n }\n}\n\n/** Actualiza las imagenes del modelo color seleccionado para el zoom Desktop */\n// function createZoomDesktop(images) {\n// var container = $('#zoom #image-container');\n// container.empty();\n// $.each(images, function (key, dataImage) {\n// var url = dataImage[0];\n// var srcset = dataImage[1];\n// var title = dataImage[2];\n// var alt = dataImage[2];\n// if (!srcset.includes('video')) {\n// var preffix = url.substring(url.lastIndexOf('/'), url.length).split('-')[0].substring(1);\n// container.append('\"'');\n// }\n// });\n// openZoomDesktop();\n// createCarouselDesktop();\n// }\n\nfunction createZoomDesktop(images) {\n var container = $('#zoom #image-container');\n container.empty().css({\n position: 'relative',\n overflow: 'hidden'\n });\n\n $.each(images, function (key, dataImage) {\n var url = dataImage[0];\n var type = dataImage[1];\n var title = dataImage[2];\n var alt = dataImage[3];\n var srcset = dataImage[4];\n\n if (type !== 'video') {\n var preffix = url.substring(url.lastIndexOf('/'), url.length).split('-')[0].substring(1);\n container.append(\n '' +\n '' +\n '\"'' +\n ''\n );\n }\n });\n\n // Reset zoom\n container.trigger('zoom.destroy');\n\n openZoomDesktop();\n createCarouselDesktop();\n}\n\n/**\n * Actualiza y renderiza las imagenes y video\n * @param {*} media\n * */\nfunction createGallery(media, poster) {\n if (media.length > 0) {\n $('#galleryBox').empty();\n $('#galleryBox').removeClass('slick-initialized slick-slider slick-dotted');\n var videoKey = 0;\n $.each(media, function (key, dataImage) {\n var preffix;\n var url = dataImage[0];\n var type = dataImage[1];\n var title = dataImage[2];\n var alt = dataImage[3];\n var srcset = dataImage[4];\n\n if (type.includes('video')) {\n preffix = 'video';\n } else {\n preffix = url.substring(url.lastIndexOf('/'), url.length).split('-')[0].substring(1);\n }\n\n if (type.includes('video')) {\n $('#galleryBox').append('
    ');\n videoKey++;\n } else {\n $('#galleryBox').append(\n ''\n );\n }\n });\n }\n}\n\n/** TODO FBM: custom function to add imgSmall\n * Dynamically creates Bootstrap carousel from response containing images\n * @param {Object[]} imgs - Array of large product images,along with related information\n * @param {Object[]} imgsSmall - Array of small product images,along with related information\n * @param {Object[]} primaryVideos - Array of videos\n * @param {Object[]} primaryImageVideos - Array of small product images videos\n * @param {String} productName\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction createCarousel(imgs, imgsSmall, $productContainer, primaryVideos, primaryImageVideos, productName) {\n var carousel = $productContainer.find('.carousel');\n $(carousel).carousel('dispose');\n var carouselId = $(carousel).attr('id');\n $(carousel).empty().append('
      ');\n for (var i = 0; i < imgs.length; i++) {\n $('
      \"'
      ').appendTo($(carousel).find('.carousel-inner'));\n }\n // Add videos\n for (var k = 0; k < (primaryVideos && primaryVideos.length); k++) {\n $('
      ').appendTo($(carousel).find('.carousel-inner'));\n }\n $($(carousel).find('.carousel-item')).first().addClass('active');\n for (var j = 0; j < imgsSmall.length; j++) {\n $('
    1. \"'
    2. ').appendTo($(carousel).find('.carousel-indicators'));\n }\n // Add images videos\n for (var l = 0; l < (primaryImageVideos && primaryImageVideos.length); l++) {\n $('
    3. \"'
    4. ').appendTo($(carousel).find('.carousel-indicators'));\n }\n $($(carousel).find('.carousel-indicators > li')).first().addClass('active');\n if (imgs.length === 1 && primaryVideos && primaryVideos.length === 0) {\n $($(carousel).find('.carousel-indicators, a[class^=\"carousel-control-\"]')).detach();\n }\n $(carousel).carousel();\n}\n\n\nfunction changeImageModal(imageSmall) {\n var alt = imageSmall.alt.trim();\n var url = imageSmall.url;\n var item = $('#sizeSelectorModal .imageSizeSelectorModal img');\n item.attr('src', url).attr('alt', alt);\n}\n/** TODO FBM: custom function to add imgSmall in call to createCarousel\n * Parses JSON from Ajax call made whenever an attribute value is [de]selected\n * @param {Object} response - response from Ajax call\n * @param {Object} response.product - Product object\n * @param {string} response.product.id - Product ID\n * @param {Object[]} response.product.variationAttributes - Product attributes\n * @param {Object[]} response.product.images - Product images\n * @param {boolean} response.product.hasRequiredAttrsSelected - Flag as to whether all required\n * attributes have been selected. Used partially to\n * determine whether the Add to Cart button can be enabled\n * @param {jQuery} $productContainer - DOM element for a given product.\n * @param {Boolean} updateUrlSwatch - true if you want update the data-url attribute\n */\nfunction handleVariantResponse(response, $productContainer, updateUrlSwatch) {\n var isChoiceOfBonusProducts =\n $productContainer.parents('.choose-bonus-product-dialog').length > 0;\n var isVaraint;\n if (response.product.variationAttributes) {\n updateAttrs(response.product.variationAttributes, $productContainer, response.resources, updateUrlSwatch);\n isVaraint = response.product.productType === 'variant';\n if (isChoiceOfBonusProducts && isVaraint) {\n $productContainer.parent('.bonus-product-item')\n .data('pid', response.product.id);\n\n $productContainer.parent('.bonus-product-item')\n .data('ready-to-order', response.product.readyToOrder);\n }\n }\n\n // Update primary images\n var allGallery = response.mediaFiles;\n var primaryImageUrls = response.product.images.large;\n var color = response.colorSelected;\n var currentImageColorURL = $('#galleryBox div[class^=\"mediaBox\"]:first-child img').attr('src');\n var search = '_' + color.toUpperCase() + '_';\n if (!$('#quickViewModal').hasClass('show')) {\n if (currentImageColorURL && !currentImageColorURL.includes(search)) {\n $.spinner().start();\n createGallery(allGallery, response.videoPoster);\n changeImageModal(response.product.images.small[0]);\n createZoomDesktop(allGallery);\n $.spinner().stop();\n }\n } else {\n var primaryImageSmallUrls = response.product.images.small;\n var primaryImageVideos = response.product.imagesVideos;\n var productName = response.product.productName;\n createCarousel(primaryImageUrls, primaryImageSmallUrls, $productContainer, null, primaryImageVideos, productName);\n }\n\n\n // Update pricing\n if (!isChoiceOfBonusProducts) {\n var $priceSelector = $('.prices .price', $productContainer).length\n ? $('.prices .price', $productContainer)\n : $('.prices .price');\n $priceSelector.replaceWith(response.product.price.html);\n }\n\n // Empty promotions before calculation if it has\n $productContainer.find('.promotions').empty();\n\n // Update promotions\n if (Array.isArray(response.product.promotions) && response.product.promotions.length > 0) {\n response.product.promotions.forEach(function (promotion, index) { // eslint-disable-line no-unused-vars\n if (promotion.calloutMsg !== '') {\n $productContainer.find('.promotions').empty().html(promotion.calloutMsg);\n }\n });\n } else {\n $productContainer.find('.promotions').empty().html(response.product.promotionsHtml);\n }\n\n updateAvailability(response, $productContainer);\n\n if (isChoiceOfBonusProducts) {\n var $selectButton = $productContainer.find('.select-bonus-product');\n $selectButton.trigger('bonusproduct:updateSelectButton', {\n product: response.product, $productContainer: $productContainer\n });\n } else {\n // Enable \"Add to Cart\" button if all required attributes have been selected\n $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', {\n product: response.product, $productContainer: $productContainer\n }).trigger('product:statusUpdate', response.product);\n }\n\n // Update attributes\n $productContainer.find('.main-attributes').empty()\n .html(getAttributesHtml(response.product.attributes));\n\n\n // Update icons.\n updateIcons(response.product);\n\n if (!$('#quickViewModal').hasClass('show')) {\n reloadGallery();\n\n if (currentImageColorURL && !currentImageColorURL.includes(search)) {\n var recommendationOther = response.productRecomendationsOther && response.productRecomendationsOther.trim();\n var recommendationCrossSelling = response.productRecomendationsCrossSelling && response.productRecomendationsCrossSelling.trim();\n var currentCarousel = $('#recommendationsContainer');\n currentCarousel.html('');\n\n // Mostramos los productos recomendados pero si NO estamos en el quick view.\n if (recommendationOther) {\n currentCarousel.append(recommendationOther);\n }\n\n if (recommendationCrossSelling) {\n currentCarousel.append(recommendationCrossSelling);\n }\n showRecommendations();\n }\n }\n}\n\n/**\n * Updates the quantity DOM elements post Ajax call\n * @param {UpdatedQuantity[]} quantities -\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction updateQuantities(quantities, $productContainer) {\n if ($productContainer.parent('.bonus-product-item').length <= 0) {\n var optionsHtml = quantities.map(function (quantity) {\n var selected = quantity.selected ? ' selected ' : '';\n return '';\n }).join('');\n getQuantitySelector($productContainer).empty().html(optionsHtml);\n }\n}\n\n/**\n * updates the product view when a product attribute is selected or deselected or when\n * changing quantity\n * @param {string} selectedValueUrl - the Url for the selected variation value\n * @param {jQuery} $productContainer - DOM element for current product\n * @param {Boolean} updateUrlSwatch - true if you want update the data-url attribute\n */\nfunction attributeSelect(selectedValueUrl, $productContainer, updateUrlSwatch) {\n if (selectedValueUrl) {\n $('body').trigger('product:beforeAttributeSelect',\n { url: selectedValueUrl, container: $productContainer });\n $.ajax({\n url: selectedValueUrl,\n method: 'GET',\n success: function (data) {\n handleVariantResponse(data, $productContainer, updateUrlSwatch);\n updateOptions(data.product.optionsHtml, $productContainer);\n updateQuantities(data.product.quantities, $productContainer);\n $('body').trigger('product:afterAttributeSelect',\n { data: data, container: $productContainer });\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @return {string} - The provided URL to use when adding a product to the cart\n */\nfunction getAddToCartUrl() {\n return $('.add-to-cart-url').val();\n}\n\n/**\n * Parses the html for a modal window\n * @param {string} html - representing the body and footer of the modal window\n *\n * @return {Object} - Object with properties body and footer.\n */\nfunction parseHtml(html) {\n var $html = $('
      ').append($.parseHTML(html));\n\n var body = $html.find('.choice-of-bonus-product');\n var footer = $html.find('.modal-footer').children();\n\n return { body: body, footer: footer };\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @param {Object} data - data object used to fill in dynamic portions of the html\n */\nfunction chooseBonusProducts(data) {\n $('.modal-body').spinner().start();\n\n if ($('#chooseBonusProductModal').length !== 0) {\n $('#chooseBonusProductModal').remove();\n }\n var bonusUrl;\n if (data.bonusChoiceRuleBased) {\n bonusUrl = data.showProductsUrlRuleBased;\n } else {\n bonusUrl = data.showProductsUrlListBased;\n }\n\n var htmlString = ''\n + '
      '\n + ''\n + '
      '\n + ''\n + '
      '\n + '
      '\n + ' ' + data.labels.selectprods + ''\n + ' '\n + '
      '\n + '
      '\n + '
      '\n + '
      '\n + '
      '\n + '
      ';\n $('body').append(htmlString);\n $('.modal-body').spinner().start();\n\n $.ajax({\n url: bonusUrl,\n method: 'GET',\n dataType: 'json',\n success: function (response) {\n var parsedHtml = parseHtml(response.renderedTemplate);\n $('#chooseBonusProductModal .modal-body').empty();\n $('#chooseBonusProductModal .enter-message').text(response.enterDialogMessage);\n $('#chooseBonusProductModal .modal-header .close .sr-only').text(response.closeButtonText);\n $('#chooseBonusProductModal .modal-body').html(parsedHtml.body);\n $('#chooseBonusProductModal .modal-footer').html(parsedHtml.footer);\n $('#chooseBonusProductModal').modal('show');\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\n/**\n * Updates the Mini-Cart quantity value after the customer has pressed the \"Add to Cart\" button\n * (Remove the SFRA alert message)\n * @param {string} response - ajax response from clicking the add to cart button\n */\nfunction handlePostCartAdd(response) {\n $('.minicart').trigger('count:update', response);\n}\n\n/**\n * Retrieves the bundle product item ID's for the Controller to replace bundle master product\n * items with their selected variants\n *\n * @return {string[]} - List of selected bundle product item ID's\n */\nfunction getChildProducts() {\n var childProducts = [];\n $('.bundle-item').each(function () {\n childProducts.push({\n pid: $(this).find('.product-id').text(),\n quantity: parseInt($(this).find('label.quantity').data('quantity'), 10)\n });\n });\n\n return childProducts.length ? JSON.stringify(childProducts) : [];\n}\n\n/**\n * Retrieve product options\n *\n * @param {jQuery} $productContainer - DOM element for current product\n * @return {string} - Product options and their selected values\n */\nfunction getOptions($productContainer) {\n var options = $productContainer\n .find('.product-option')\n .map(function () {\n var $elOption = $(this).find('.options-select');\n var urlValue = $elOption.val();\n var selectedValueId = $elOption.find('option[value=\"' + urlValue + '\"]')\n .data('value-id');\n return {\n optionId: $(this).data('option-id'),\n selectedValueId: selectedValueId\n };\n }).toArray();\n\n return JSON.stringify(options);\n}\n\n/**\n * Return an property of an element of a form\n *\n * @param {object} form - DOM form\n * @param {string} element - DOM element (id, class...)\n * @param {string} property - DOM property element\n * @return {string} - Content of a prop\n */\nfunction getPropertyElementForm(form, element, property) {\n return form.find(element).prop(property);\n}\n\n/**\n * Return an data of an element of a form\n *\n * @param {object} form - DOM form\n * @param {string} element - DOM element (id, class...)\n * @param {string} data - DOM data element\n * @return {string} - Content of a data\n */\nfunction getDataElementForm(form, element, data) {\n return form.find(element).data(data);\n}\n\n/**\n * Return an data of an element of a form\n *\n * @param {object} form - DOM form\n * @param {string} element - DOM element (id, class...)\n * @param {string} data - DOM data element\n * @param {object} error - object with errors\n */\nfunction addErrorForm(form, element, data, error) {\n var inputName = getPropertyElementForm(form, element, 'name');\n error[inputName] = getDataElementForm(form, element, data);\n}\n\n/**\n * Function to validate fields form\n *\n * @return {Object} - with error\n */\nfunction getErrorsPersonalizationForm(personalizationForm, name1, name2, date) {\n // Validations\n var MAX_LENGTH_NAME1 = 16;\n var MAX_LENGTH_NAME2 = 16;\n var MAX_LENGTH_DATE = 16;\n var error = {};\n\n if (!name1 || name1.length > MAX_LENGTH_NAME1) {\n addErrorForm(personalizationForm, '#name1', !name1 ? 'missing-error' : 'range-error', error);\n }\n if (!name2 || name2.length > MAX_LENGTH_NAME2) {\n addErrorForm(personalizationForm, '#name2', !name2 ? 'missing-error' : 'range-error', error);\n }\n if (date.length > MAX_LENGTH_DATE) {\n addErrorForm(personalizationForm, '#date', 'range-error', error);\n }\n return $.isEmptyObject(error) ? null : [error];\n}\n\n/**\n * Function to validate personalization form\n *\n * @return {Object} - with form serialize and boolean with isCustomizable\n */\nfunction validatePersonalizationForm() {\n var idPersonalizationForm = '#personalization-form';\n formHelpers.clearPreviousErrors(idPersonalizationForm);\n var personalizationForm = $(idPersonalizationForm);\n var personalizationFormSerialize = personalizationForm.serialize();\n var isCustomizable = false;\n var valid = true;\n var name1 = personalizationForm.find('#name1').val();\n var name2 = personalizationForm.find('#name2').val();\n var date = personalizationForm.find('#date').val();\n if (personalizationForm && personalizationForm.length > 0) {\n isCustomizable = true;\n var errors = getErrorsPersonalizationForm(personalizationForm, name1, name2, date);\n if (errors && errors.length > 0) {\n valid = false;\n personalizationForm.find('#name1').focus();\n errors.forEach(function (error) {\n if (Object.keys(error).length) {\n // formHelpers.loadFormErrors(idPersonalizationForm, error);\n $.each(error, function (attr) {\n $('*[name=' + attr + ']', idPersonalizationForm)\n .addClass('is-invalid')\n .siblings('.invalid-feedback')\n .html(error[attr]);\n });\n }\n });\n }\n }\n return {\n name1 : name1,\n name2 : name2,\n date : date,\n valid : valid,\n isCustomizable : isCustomizable,\n personalizationFormSerialize : personalizationFormSerialize\n };\n}\n\n/**\n * Makes a call to the server to report the event of adding an item to the cart\n *\n * @param {string | boolean} url - a string representing the end point to hit so that the event can be recorded, or false\n */\nfunction miniCartReportingUrl(url) {\n if (url) {\n $.ajax({\n url: url,\n method: 'GET',\n success: function () {\n // reporting urls hit on the server\n },\n error: function () {\n // no reporting urls hit on the server\n }\n });\n }\n}\n\nmodule.exports = {\n attributeSelect: attributeSelect,\n methods: {\n editBonusProducts: function (data) {\n chooseBonusProducts(data);\n }\n },\n\n focusChooseBonusProductModal: function () {\n $('body').on('shown.bs.modal', '#chooseBonusProductModal', function () {\n $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'true');\n $('#chooseBonusProductModal .close').focus();\n });\n },\n\n onClosingChooseBonusProductModal: function () {\n $('body').on('hidden.bs.modal', '#chooseBonusProductModal', function () {\n $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'false');\n });\n },\n\n trapChooseBonusProductModalFocus: function () {\n $('body').on('keydown', '#chooseBonusProductModal', function (e) {\n var focusParams = {\n event: e,\n containerSelector: '#chooseBonusProductModal',\n firstElementSelector: '.close',\n lastElementSelector: '.add-bonus-products'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n },\n\n colorAttribute: function () {\n $(document).on('touchstart click', '[data-attr=\"color\"] button', function (e) {\n e.preventDefault();\n var isSelected = $(this).find('span').hasClass('selected');\n if ($(this).attr('disabled') || isSelected) {\n return;\n }\n var updateUrlSwatch = true;\n var $productContainer;\n $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n $('.js-product-list-size').removeClass('selected');\n $('.js-product-list-size-modal').removeClass('selected');\n attributeSelect($(this).attr('data-url'), $productContainer, updateUrlSwatch);\n });\n },\n\n selectAttribute: function () {\n $(document).on('change', 'select[class*=\"select-\"], .options-select', function (e) {\n e.preventDefault();\n var $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n var updateUrlSwatch = false;\n attributeSelect(e.currentTarget.value, $productContainer, updateUrlSwatch);\n });\n },\n\n availability: function () {\n $(document).on('change', '.quantity-select', function (e) {\n e.preventDefault();\n\n var searchPID = $(this).closest('.product-detail').attr('data-pid');\n var selectorPrefix = '.product-detail[data-pid=\"' + searchPID + '\"]';\n\n if ($(selectorPrefix + ' .selected-store-with-inventory').is(':visible')) {\n return;\n }\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.modal-content').find('.product-quickview');\n }\n\n if ($('.bundle-items', $productContainer).length === 0) {\n var updateUrlSwatch = true;\n attributeSelect($(e.currentTarget).find('option:selected').data('url'),\n $productContainer, updateUrlSwatch);\n }\n });\n },\n\n addToCart: function () {\n $(document).on('touchstart click', 'button.add-to-cart, button.add-to-cart-global, button.add-to-cart-no-checkout', function () {\n var addToCartUrl;\n var pid;\n var pidsObj;\n var setPids;\n var goToCheckout = $(this).hasClass('add-to-cart');\n\n var personalizationForm = validatePersonalizationForm();\n if (!personalizationForm.valid) {\n return;\n }\n\n $('body').trigger('product:beforeAddToCart', this);\n\n if ($('.set-items').length && $(this).hasClass('add-to-cart-global')) {\n setPids = [];\n\n $('.product-detail').each(function () {\n if (!$(this).hasClass('product-set-detail')) {\n setPids.push({\n pid: $(this).find('.product-id').text(),\n qty: $(this).find('.quantity-select').val(),\n options: getOptions($(this))\n });\n }\n });\n pidsObj = JSON.stringify(setPids);\n }\n\n pid = getPidValue($(this));\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.quick-view-dialog').find('.product-detail');\n }\n\n addToCartUrl = getAddToCartUrl();\n\n var form = {\n pid: pid,\n pidsObj: pidsObj,\n childProducts: getChildProducts(),\n quantity: getQuantitySelected($(this)),\n personalizationForm: personalizationForm.personalizationFormSerialize,\n isCustomizable: personalizationForm.isCustomizable,\n name1: personalizationForm.name1,\n name2: personalizationForm.name2,\n date: personalizationForm.date\n };\n\n if (!$('.bundle-item').length) {\n form.options = getOptions($productContainer);\n }\n\n var addToCartEvent = $(this).hasClass('add-to-cart-recommendation-btn') ? 'addToCartRecommendation' : 'addToCart';\n\n $(this).trigger('updateAddToCartFormData', form);\n if (addToCartUrl) {\n $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n /* Añadir datalayer push, lo ponemos aquí ya que si no selecciona talla, se\n realiza la petición pero no devuelve un succes, por lo que solo si lo ponemos aquí saltará una vez. */\n /* eslint-disable no-undef */\n dataLayer.push({\n event: addToCartEvent\n });\n handlePostCartAdd(data);\n if (goToCheckout) {\n $('body').trigger('product:afterAddToCart', data);\n } else {\n if ($('#quickViewModal').length) {\n $('#quickViewModal').modal('hide');\n }\n $('body').trigger('cart:update', data);\n }\n $.spinner().stop();\n miniCartReportingUrl(data.reportingURL);\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\n });\n },\n selectBonusProduct: function () {\n $(document).on('touchstart click', '.select-bonus-product', function () {\n var $choiceOfBonusProduct = $(this).parents('.choice-of-bonus-product');\n var pid = $(this).data('pid');\n var maxPids = $('.choose-bonus-product-dialog').data('total-qty');\n var submittedQty = parseInt($choiceOfBonusProduct.find('.bonus-quantity-select').val(), 10);\n var totalQty = 0;\n $.each($('#chooseBonusProductModal .selected-bonus-products .selected-pid'), function () {\n totalQty += $(this).data('qty');\n });\n totalQty += submittedQty;\n var optionID = $choiceOfBonusProduct.find('.product-option').data('option-id');\n var valueId = $choiceOfBonusProduct.find('.options-select option:selected').data('valueId');\n if (totalQty <= maxPids) {\n var selectedBonusProductHtml = ''\n + '
      '\n + '
      '\n + $choiceOfBonusProduct.find('.product-name').html()\n + '
      '\n + '
      '\n + '
      '\n ;\n $('#chooseBonusProductModal .selected-bonus-products').append(selectedBonusProductHtml);\n $('.pre-cart-products').html(totalQty);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n } else {\n $('.selected-bonus-products .bonus-summary').addClass('alert-danger');\n }\n });\n },\n removeBonusProduct: function () {\n $(document).on('touchstart click', '.selected-pid', function () {\n $(this).remove();\n var $selected = $('#chooseBonusProductModal .selected-bonus-products .selected-pid');\n var count = 0;\n if ($selected.length) {\n $selected.each(function () {\n count += parseInt($(this).data('qty'), 10);\n });\n }\n\n $('.pre-cart-products').html(count);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n });\n },\n enableBonusProductSelection: function () {\n $('body').on('bonusproduct:updateSelectButton', function (e, response) {\n $('button.select-bonus-product', response.$productContainer).attr('disabled',\n (!response.product.readyToOrder || !response.product.available || !response.product.availablePrice));\n var pid = response.product.id;\n $('button.select-bonus-product', response.$productContainer).data('pid', pid);\n });\n },\n showMoreBonusProducts: function () {\n $(document).on('touchstart click', '.show-more-bonus-products', function () {\n var url = $(this).data('url');\n $('.modal-content').spinner().start();\n $.ajax({\n url: url,\n method: 'GET',\n success: function (html) {\n var parsedHtml = parseHtml(html);\n $('.modal-body').append(parsedHtml.body);\n $('.show-more-bonus-products:first').remove();\n $('.modal-content').spinner().stop();\n },\n error: function () {\n $('.modal-content').spinner().stop();\n }\n });\n });\n },\n addBonusProductsToCart: function () {\n $(document).on('touchstart click', '.add-bonus-products', function () {\n var $readyToOrderBonusProducts = $('.choose-bonus-product-dialog .selected-pid');\n var queryString = '?pids=';\n var url = $('.choose-bonus-product-dialog').data('addtocarturl');\n var pidsObject = {\n bonusProducts: []\n };\n\n $.each($readyToOrderBonusProducts, function () {\n var qtyOption =\n parseInt($(this)\n .data('qty'), 10);\n\n var option = null;\n if (qtyOption > 0) {\n if ($(this).data('optionid') && $(this).data('option-selected-value')) {\n option = {};\n option.optionId = $(this).data('optionid');\n option.productId = $(this).data('pid');\n option.selectedValueId = $(this).data('option-selected-value');\n }\n pidsObject.bonusProducts.push({\n pid: $(this).data('pid'),\n qty: qtyOption,\n options: [option]\n });\n pidsObject.totalQty = parseInt($('.pre-cart-products').html(), 10);\n }\n });\n queryString += JSON.stringify(pidsObject);\n queryString = queryString + '&uuid=' + $('.choose-bonus-product-dialog').data('uuid');\n queryString = queryString + '&pliuuid=' + $('.choose-bonus-product-dialog').data('pliuuid');\n $.spinner().start();\n $.ajax({\n url: url + queryString,\n method: 'POST',\n success: function (data) {\n $.spinner().stop();\n if (data.error) {\n $('#chooseBonusProductModal').modal('hide');\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
      ');\n }\n $('.add-to-cart-messages').append(\n '
      '\n + data.errorMessage + '
      '\n );\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n }, 3000);\n } else {\n $('.configure-bonus-product-attributes').html(data);\n $('.bonus-products-step2').removeClass('hidden-xl-down');\n $('#chooseBonusProductModal').modal('hide');\n\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
      ');\n }\n $('.minicart-quantity').html(data.totalQty);\n $('.add-to-cart-messages').append(\n '
      '\n + data.msgSuccess + '
      '\n );\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n if ($('.cart-page').length) {\n location.reload();\n }\n }, 1500);\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n },\n\n getPidValue: getPidValue,\n getQuantitySelected: getQuantitySelected,\n miniCartReportingUrl: miniCartReportingUrl,\n customSelectSize: function () {\n $('select.select-size').on('change', function () {\n var selectedSize = $('select.select-size option:selected');\n if (selectedSize.hasClass('disabled')) {\n return;\n }\n var size = selectedSize.data('attr-value');\n var value = selectedSize.val();\n $('.product-sizes__selector .js-product-list-size').removeClass('selected');\n $('.product-sizes__selector .js-product-list-size[data-attr-value=' + size + ']').addClass('selected');\n if (size && value) {\n changeAddToCartSizeSelectorButton();\n } else {\n changeAddToCartButton();\n }\n });\n\n var clearSelectClasses = function () {\n $('.product-sizes__selector .js-product-list-size').removeClass('selected');\n $('.email-size-available-white').addClass('email-size-available');\n $('.email-size-available-white').removeClass('email-size-available-white');\n $('.select-size option').removeAttr('selected');\n $('#notifySizeButton').removeClass('d-none');\n $('#notificationSucces').addClass('d-none');\n $('#notificationFail').addClass('d-none');\n $('#buyButton').removeClass('add-to-cart');\n $('#buyButton').addClass('add-to-cart-size-selector');\n $('#buyButton').attr('data-target', '#sizeSelectorModal');\n $('#buyButtonBlock .prices').removeClass('top');\n\n // Recoremos las tallas del modal, y también quitamos la seleccion, ya que si se abre el modal, aparecería la última talla seleccionada.\n $('.js-product-list-size-modal').removeClass('selected');\n $('.js-product-list-size-modal').each(function () {\n $(this)[0].childNodes.forEach(function (child) {\n if (child.nodeName == 'DIV' && child.className.includes('icon email-size-available')) {\n child.remove();\n }\n });\n });\n };\n\n var addSelectClasses = function (sizeObject) {\n var value = sizeObject.data('attr-value');\n sizeObject.addClass('selected');\n $('.select-size option[data-attr-value=\"' + value + '\"]').prop('selected', true);\n };\n\n $('.js-product-list-size').on('click', function () {\n var sizeObject = $(this);\n var notificationSizeIcon = sizeObject.children('.icon.email-size-available');\n\n // Mostramos el bloque para introducir el email y avisar cuando entre stock de la talla.\n if (sizeObject.hasClass('selected') && sizeObject.attr('data-attr-stock') == '0.0' && sizeObject.attr('data-attr-value') !== 'U' || (notificationSizeIcon && notificationSizeIcon.length > 0)) {\n clearSelectClasses();\n $('#closeNotify').trigger('click');\n\n notificationSizeIcon.length > 0 ?\n notificationSizeIcon.addClass('email-size-available-white') :\n notificationSizeIcon.removeClass('email-size-available');\n\n addSelectClasses(sizeObject);\n\n $('#buyButton').addClass('d-none');\n $('#notifySizeBlock').removeClass('d-none');\n $('#notificationInfo').removeClass('d-none');\n $('.prices.d-lg-none.col-3').addClass('top');\n } else {\n notificationSizeIcon.addClass('email-size-available');\n notificationSizeIcon.removeClass('email-size-available-white');\n $('#buyButton').removeClass('d-none');\n $('#inputEmailBlock').addClass('d-none');\n $('#notifySizeBlock').addClass('d-none');\n }\n\n var isSelected = sizeObject.hasClass('selected') || sizeObject.hasClass('unselectable') || sizeObject.hasClass('disabled');\n if (isSelected) {\n return;\n }\n\n clearSelectClasses();\n addSelectClasses(sizeObject);\n $('select.select-size').trigger('change');\n });\n\n $('#closeNotify').on('click', function () {\n clearSelectClasses();\n $('#notifySizeBlock').addClass('d-none');\n $('#buyButton').removeClass('d-none');\n $('#inputEmailBlock').addClass('d-none');\n $('#closeNotify').addClass('d-none');\n });\n\n $('#notifySizeButton').on('click', function () {\n $('.prices.d-lg-none.col-3').addClass('top');\n $('#notifySizeButton').addClass('d-none');\n $('#inputEmailBlock').removeClass('d-none');\n $('#inputEmailBlock').addClass('fade-in-block');\n $('#closeNotify').addClass('fade-in-block');\n $('#closeNotify').removeClass('d-none');\n\n if ($(window).width() < 768) {\n $('#infoProductContainer').get(0).scrollIntoView({ behavior: 'smooth' });\n }\n });\n\n $('#notifyButtonEmail').on('click', function (e) {\n // Validamos el email introducido por el usuario y ya realizamos llamada al controlador para guardar email en custom object.\n var inputEmail = $('#customerEmail').val();\n inputEmail = inputEmail.trim();\n e.preventDefault();\n\n if (inputEmail !== '' && /^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(inputEmail)) {\n var actionUrl = $('#sizeReminderForm').attr('action');\n var itemSelected =\n $('.js-product-list-size.swatch-rectangle.unselectable.disabled.selected');\n\n $('#notify-email-error').css('display', 'none');\n $('#customerEmail').val(inputEmail);\n $('#ean').val(itemSelected.attr('data-attr-ean'));\n $('#size').val(itemSelected.attr('data-attr-value'));\n\n $.spinner().start();\n var formData = $('#sizeReminderForm');\n\n $.ajax({\n url: actionUrl,\n method: 'POST',\n data: formData.serialize(),\n success: function (response) {\n $.spinner().stop();\n if (response && !response.succes) {\n console.error(response.message);\n }\n\n $('#buyButtonBlock .prices').removeClass('top');\n $('#notificationInfo').addClass('d-none');\n $('#inputEmailBlock').addClass('d-none');\n $('#notificationSucces').removeClass('d-none');\n\n // Datalayer push para evento Alerta Tallas de GA4.\n dataLayer.push({\n event: 'Solicitud Alerta Talla',\n Categoria : 'Solicitud Alerta Talla',\n Accion : 'Solicitud de aviso de disponibiliad de talla por cliente',\n Etiqueta : window.location.href\n });\n },\n error: function () {\n $.spinner().stop();\n }\n });\n } else {\n var emailError = $('#customerEmail').attr('data-error-email');\n $('#notify-email-error').text(emailError);\n $('#notify-email-error').css('display', 'block');\n return;\n }\n });\n },\n sizeSelectorAddToCartModal: function () {\n $('body').on('click', '.js-product-list-size-modal', function (e) {\n e.preventDefault();\n var sizeObject = $(this);\n var isSelected = sizeObject.hasClass('unselectable') || sizeObject.hasClass('disabled');\n if (isSelected) {\n return;\n }\n var size = $(this).data('attr-value');\n $('.js-product-list-size-modal').removeClass('selected');\n $(this).addClass('selected');\n $('.select-size option').removeAttr('selected');\n $('.select-size option[data-attr-value=\"' + size + '\"]').prop('selected', true);\n // Close modal, select size and add to cart.\n $('.sizeSelectorModalClass').modal('hide');\n if ($('button.add-to-cart-size-selector').length) {\n $('button.add-to-cart-size-selector').blur();\n }\n // Select size.\n $('.js-product-list-size').each(function () {\n if ($(this).data('attr-value') === size) {\n $(this).fadeIn().delay(500).queue(function () {\n $(this).click();\n changeAddToCartSizeSelectorButton();\n $('button.add-to-cart').fadeIn().delay(500).queue(function () {\n $(this).focus();\n $(this).click();\n });\n });\n }\n });\n });\n },\n updateIcons: updateIcons,\n updateAvailability: updateAvailability,\n updateOptions: updateOptions,\n updateQuantities: updateQuantities,\n handlePostCartAdd : handlePostCartAdd\n};\n","'use strict';\n\nvar base = require('./base');\nvar handleADA = require('../common/handleADA');\n\nvar mediaBreakLimit = 992;\nvar mainGallery =\n{\n lazyLoad : 'ondemand',\n dots : true,\n arrows : false,\n infinite : false,\n vertical : false,\n slidesToShow : 1,\n slidesToScroll : 1\n};\n\nvar optionsType =\n{\n dots : false,\n arrows : true,\n infinite : true,\n vertical : false,\n slidesToShow : 4,\n slidesToScroll : 1,\n responsive : [{\n breakpoint : 1200,\n settings : {\n slidesToShow : 3,\n slidesToScroll : 1,\n arrows : true\n }\n },\n {\n breakpoint : 991,\n settings : {\n slidesToShow : 3,\n slidesToScroll : 1,\n arrows : true\n }\n },\n {\n breakpoint : 768,\n settings : {\n slidesToShow : 2,\n slidesToScroll : 1,\n arrows : true\n }\n },\n {\n breakpoint : 500,\n settings : {\n slidesToShow : 2,\n slidesToScroll : 1,\n arrows : true\n }\n }]\n};\n\n/** Fix carousel trigger keyboard */\n$(document).bind('keyup', function (e) {\n if (e.which == 39) {\n $('.carousel').carousel('next');\n } else if (e.which == 37) {\n $('.carousel').carousel('prev');\n }\n});\n\n/**\n * Enable/disable UI elements\n * @param {boolean} enableOrDisable - true or false\n */\nfunction updateAddToCartEnableDisableOtherElements(enableOrDisable) {\n $('button.add-to-cart-global').attr('disabled', enableOrDisable);\n}\n\nfunction showLightbox() {\n $('#galleryBox').slickLightbox({\n navigateByKeyboard: true,\n background: 'rgba(255,255,255,1)',\n lazy: true\n }).on({\n 'show.slickLightbox': function () {\n $('meta[name=\"viewport\"]').attr('content', 'width=device-width, initial-scale=1');\n },\n 'hide.slickLightbox': function () {\n $('meta[name=\"viewport\"]').attr('content', 'width=device-width, initial-scale=1, maximum-scale=1');\n $('#galleryBox').unslickLightbox();\n }\n });\n}\n\n/** Inicializacion del slick slider en la galeria principal */\nfunction showMainGalleryMobile() {\n var deviceScreenWidth = $(window).width();\n if (deviceScreenWidth < mediaBreakLimit) {\n if (!$('#galleryBox').hasClass('slick-initialized')) {\n $('#galleryBox').slick(mainGallery);\n $('.slick-lightbox').remove();\n $('.slick-current.slick-active').on('click', function () {\n showLightbox();\n });\n }\n } else if ($('#galleryBox').hasClass('slick-initialized')) {\n $('#galleryBox').slick('unslick');\n }\n}\n/** cambia la posicion del título entre dispositivos */\nfunction changeProductName() {\n var deviceScreenWidth = $(window).width();\n if (deviceScreenWidth < mediaBreakLimit) {\n $('#mediaContainer').parent().prepend($('#nameProductContainer'));\n } else {\n $('#infoProductContainer').prepend($('#nameProductContainer'));\n }\n}\n\n/** Cambia la posicion de los bloques de informacion */\nfunction changeInfoPositions() {\n var deviceScreenWidth = $(window).width();\n if (deviceScreenWidth < mediaBreakLimit) {\n $('#recommendationsContainer').parent().prepend($('#descriptionContainer'));\n $('#recommendationsContainer').parent().prepend($('#sustainabilityContainer'));\n $('#recommendationsContainer').parent().prepend($('#shippingReturnsContainer'));\n $('#recommendationsContainer').parent().prepend($('#descriptionContainer'));\n $('#recommendationsContainer').parent().prepend($('#moreInfoContainer'));\n } else {\n $('#infoProductContainer').prepend($('#descriptionContainer'));\n $('#infoProductContainer').prepend($('#sustainabilityContainer'));\n $('#infoProductContainer').prepend($('#shippingReturnsContainer'));\n $('#infoProductContainer').prepend($('#descriptionContainer'));\n $('#infoProductContainer').prepend($('#moreInfoContainer'));\n }\n}\n\nfunction showMobileView() {\n showMainGalleryMobile();\n changeProductName();\n changeInfoPositions();\n}\n\nfunction ekomiName() {\n setTimeout(function () {\n var names = document.querySelectorAll('.reviews-stack .review_date');\n if (names.length > 0) {\n for (var nameIndex = 0; nameIndex < names.length; nameIndex++) {\n var name = names[nameIndex].firstChild.nodeValue.split(' ')[0];\n names[nameIndex].firstChild.nodeValue = name;\n }\n }\n }, 500);\n}\n\nmodule.exports = {\n methods: {\n updateAddToCartEnableDisableOtherElements: updateAddToCartEnableDisableOtherElements\n },\n availability: base.availability,\n addToCart: base.addToCart,\n showMainGalleryMobile: function () {\n $(document).ready(function () {\n showMobileView();\n });\n $(window).on('resize', function () {\n showMobileView();\n });\n },\n updateAttributesAndDetails: function () {\n $('body').on('product:statusUpdate', function (e, data) {\n var $productContainer = $('.product-detail[data-pid=\"' + data.id + '\"]');\n\n $productContainer.find('.description-and-detail .product-attributes')\n .empty()\n .html(data.attributesHtml);\n\n if (data.shortDescription) {\n $productContainer.find('.product-short-description')\n .removeClass('hidden-xl-down');\n $productContainer.find('.product-short-description').empty().html('

      ' + data.shortDescription + '

      ');\n } else {\n $productContainer.find('.product-short-description')\n .addClass('hidden-xl-down');\n }\n\n if (data.longDescription) {\n $productContainer.find('.description-and-detail .details')\n .removeClass('hidden-xl-down');\n $productContainer.find('.description-and-detail .details .content')\n .empty()\n .html(data.longDescription);\n } else {\n $productContainer.find('.description-and-detail .details')\n .addClass('hidden-xl-down');\n }\n });\n },\n showSpinner: function () {\n $('body').on('product:beforeAddToCart product:beforeAttributeSelect', function () {\n $.spinner().start();\n });\n },\n updateAttribute: function () {\n $('body').on('product:afterAttributeSelect', function (e, response) {\n if ($('.product-detail>.bundle-items').length) {\n response.container.data('pid', response.data.product.id);\n response.container.find('.product-id').text(response.data.product.id);\n } else if ($('.product-set-detail').eq(0)) {\n response.container.data('pid', response.data.product.id);\n response.container.find('.product-id').text(response.data.product.id);\n } else {\n $('.product-id').text(response.data.product.id);\n $('.product-detail:not(\".bundle-item\")').data('pid', response.data.product.id);\n }\n });\n },\n updateAddToCart: function () {\n $('body').on('product:updateAddToCart', function (e, response) {\n // update local add to cart (for sets)\n $('button.add-to-cart', response.$productContainer).attr('disabled',\n (!response.product.availableCountry || !response.product.readyToOrder || !response.product.available || !response.product.availablePrice));\n\n var enable = $('.product-availability').toArray().every(function (item) {\n return $(item).data('availableCountry') && $(item).data('available') && $(item).data('ready-to-order');\n });\n module.exports.methods.updateAddToCartEnableDisableOtherElements(!enable);\n });\n },\n updateAvailability: function () {\n $('body').on('product:updateAvailability', function (e, response) {\n $('div.availability', response.$productContainer)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available && response.product.availablePrice);\n\n $('.availability-msg', response.$productContainer)\n .empty().html(response.message);\n\n if ($('.global-availability').length) {\n var allAvailable = $('.product-availability').toArray()\n .every(function (item) { return $(item).data('available'); });\n\n var allReady = $('.product-availability').toArray()\n .every(function (item) { return $(item).data('ready-to-order'); });\n\n $('.global-availability')\n .data('ready-to-order', allReady)\n .data('available', allAvailable);\n\n $('.global-availability .availability-msg').empty()\n .html(allReady ? response.message : response.resources.info_selectforstock);\n }\n });\n },\n sizeChart: function () {\n $('.size-chart a').on('touchstart click', function (e) {\n e.preventDefault();\n var url = $(this).attr('href');\n var $prodSizeChart = $(this).closest('.size-chart').find('.size-chart-collapsible');\n if ($prodSizeChart.is(':empty')) {\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n $prodSizeChart.append(data.content);\n },\n error: function (err) {\n console.error(err);\n }\n });\n }\n $prodSizeChart.toggleClass('active');\n });\n\n var $sizeChart = $('.size-chart-collapsible');\n $('body').on('touchstart click', function (e) {\n if ($('.size-chart').has(e.target).length <= 0) {\n $sizeChart.removeClass('active');\n }\n });\n },\n copyProductLink: function () {\n $('body').on('touchstart click', '#fa-link', function () {\n event.preventDefault();\n var $temp = $('');\n $('body').append($temp);\n $temp.val($('#shareUrl').val()).select();\n document.execCommand('copy');\n $temp.remove();\n $('.copy-link-message').attr('role', 'alert');\n $('.copy-link-message').removeClass('d-none');\n setTimeout(function () {\n $('.copy-link-message').addClass('d-none');\n }, 3000);\n });\n },\n showRecommendations: function () {\n $(document).ready(function () {\n var carruselType = ['recommendationType1', 'recommendationType2'];\n $.each(carruselType, function (index, value) {\n var carrusel = $('#' + value + ' div[id^=\"pdpCarouselRecomendations-\"]');\n var items = $('#' + value + ' div[id^=\"pdpCarouselRecomendations-\"]').length;\n if (items > 0) {\n carrusel.slick(optionsType);\n }\n });\n });\n },\n openWhatsapp: function () {\n $('.icon-wh').on('click', function (e) {\n e.preventDefault();\n window.open(\n this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600'\n );\n return false;\n });\n },\n fixedAddCartButton: function () {\n $(window).on('scroll', function () {\n if ((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) < 769) {\n var footerHeight = $('footer')[0].clientHeight;\n var footerIsVisible = document.scrollingElement.scrollHeight - document.scrollingElement.scrollTop - footerHeight <= window.innerHeight;\n if (footerIsVisible) {\n $('.prices-add-to-cart-actions').eq(0).css({ position: 'absolute', bottom: '-' + ($('.prices-add-to-cart-actions')[0].clientHeight + 20) + 'px', 'box-shadow': 'none' });\n $('#maincontent').css('margin-bottom', ($('.prices-add-to-cart-actions')[0].clientHeight + 20) + 'px');\n } else {\n $('.prices-add-to-cart-actions').eq(0).css({ position: '', bottom: '', 'box-shadow': '' });\n }\n } else {\n $('.prices-add-to-cart-actions').eq(0).css({ position: '', bottom: '', 'box-shadow': '' });\n }\n });\n },\n stickyRigthColumn: function () {\n $(window).scroll(function () {\n var rigthColumn = $('#sticky-product-details');\n if ($(window).scrollTop() >= 1800) {\n rigthColumn.removeClass('product-details-fixed-top');\n rigthColumn.addClass('product-details-fixed-bottom');\n $('.page').css('overflow-x', 'hidden');\n } else if ($(window).scrollTop() >= 30) {\n rigthColumn.addClass('product-details-fixed-top');\n $('.page').css('overflow-x', 'unset');\n rigthColumn.removeClass('product-details-fixed-bottom');\n if ($('.search').hasClass('active')) {\n rigthColumn.addClass('search-add-top');\n } else {\n rigthColumn.removeClass('search-add-top');\n }\n } else {\n rigthColumn.removeClass('product-details-fixed-top');\n $('.page').css('overflow-x', 'hidden');\n rigthColumn.removeClass('product-details-fixed-bottom');\n }\n });\n },\n focusChooseBonusProductModal: base.focusChooseBonusProductModal,\n sizeSelectorAddToCartModal: base.sizeSelectorAddToCartModal,\n pressEnterAndClickInElementRecommedations: handleADA.pressEnterToClickInsideElement('.pdpRecommendation', '.tile-body', 'button'),\n pressEnterAndClickInElementSizes: handleADA.pressEnterToClickInsideElement('.attribute > ul', 'li', 'li'),\n pressEnterAndClickInElementDescriptionAndDetail: handleADA.pressEnterToClickInsideElement('.description-and-detail', '.collapsible-xl', 'h2'),\n focusNextElementOutsidefromCollapsibleInfoWhenIsClosedAndPressTab: handleADA.focusNextElementOutsidefromContainerWhenPressTab('.description-and-detail > div:nth-child(3)', 'active', '.icon-fb'),\n collapsibleInfoItems: function () {\n $('.collapsible').on('click', function (event) {\n if ($(event.target).closest('.content').length) {\n return;\n }\n\n var current = $(this);\n if (current.hasClass('active')) {\n current.removeClass('active');\n current.attr('aria-expanded', false);\n } else {\n var currentId = current.parent().attr('id');\n $('.collapsible').each(function () {\n var collapsible = $(this);\n var id = collapsible.parent().attr('id');\n if (currentId != id) {\n if (collapsible.hasClass('active')) {\n collapsible.removeClass('active');\n collapsible.attr('aria-expanded', false);\n }\n } else {\n collapsible.addClass('active');\n collapsible.attr('aria-expanded', true);\n }\n });\n }\n });\n },\n customSelectSize: base.customSelectSize,\n ekomiScroll: function () {\n $('.ekomi-widget-container').click(function (e) {\n e.preventDefault();\n var id = '#reviewsContainer';\n $('html,body').animate({ scrollTop: $(id).offset().top - 100 }, 1000);\n });\n },\n ekomiName: ekomiName,\n moreReviews: function () {\n setTimeout(function () {\n var names = document.querySelectorAll('.reviews-stack .review_date');\n if (names.length > 0) {\n for (var nameIndex = 0; nameIndex < names.length; nameIndex++) {\n var name = names[nameIndex].firstChild && names[nameIndex].firstChild.nodeValue && names[nameIndex].firstChild.nodeValue.split(' ')[0];\n if (names[nameIndex].firstChild && names[nameIndex].firstChild.nodeValue) {\n names[nameIndex].firstChild.nodeValue = name;\n }\n }\n }\n var button = document.querySelectorAll('.read-more-reviews');\n for (var i = 0; i < button.length; i++) {\n button[i].addEventListener('click', function () {\n ekomiName();\n });\n }\n }, 3500);\n },\n createCarouselDesktop: function () {\n $(document).ready(function () {\n var carrusel = $('#zoom #image-container');\n\n carrusel.css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '100%'\n });\n\n var slides = $('#zoom #image-container picture.zoom-slide');\n slides.css({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '100%',\n display: 'none'\n });\n\n slides.first().css('display', 'block');\n });\n },\n closeZoomDesktop: function () {\n $('#zoom').click(function (event) {\n if (event.target.id == $('#zoom').attr('id')) {\n $('#zoom').addClass('d-none');\n var parentZoom = $('#zoom #image-container');\n parentZoom.trigger('zoom.destroy');\n }\n });\n\n $('#zoom .close').click(function () {\n $('#zoom').addClass('d-none');\n var parentZoom = $('#zoom #image-container');\n parentZoom.trigger('zoom.destroy');\n });\n\n $('#zoom .navigation').click(function (event) {\n if (!event.target.className.includes('left') && !event.target.className.includes('right')) {\n $('#zoom').addClass('d-none');\n var parentZoom = $('#zoom #image-container');\n parentZoom.trigger('zoom.destroy');\n }\n });\n },\n\n openZoomDesktop: function () {\n $('#galleryBox div[class^=\"mediaBox-\"]').click(function () {\n var deviceScreenWidth = $(window).width();\n if (deviceScreenWidth >= mediaBreakLimit) {\n var parentZoom = $('#zoom #image-container');\n\n var clickedIndex = $(this).index();\n\n var currentSlide = $('#zoom #image-container picture.zoom-slide').eq(clickedIndex);\n\n $('#zoom #image-container picture.zoom-slide').removeClass('current').hide();\n currentSlide.addClass('current').show();\n\n $('#zoom').removeClass('d-none');\n\n parentZoom.trigger('zoom.destroy');\n\n var zoomImageSrc = currentSlide.find('source').attr('srcset').split(',')[0].trim().split(' ')[0];\n\n parentZoom.zoom({\n on: 'grab',\n url: zoomImageSrc,\n onZoomIn: function () {\n $(this).css('cursor', 'zoom-out');\n },\n onZoomOut: function () {\n $(this).css('cursor', 'zoom-in');\n }\n });\n }\n });\n },\n\n navigateZoomDesktop: function () {\n function loopSlide(node, direction) {\n $.spinner().start();\n var parentZoom = $('#zoom #image-container');\n parentZoom.zoom().trigger('zoom.destroy');\n\n var currentSlide = $('#zoom #image-container picture.zoom-slide.current');\n currentSlide.removeClass('current').hide();\n\n if (node.length == 0) {\n var allSlides = $('#zoom #image-container picture.zoom-slide');\n if (direction === 'right') {\n node = currentSlide.next().length ? currentSlide.next() : allSlides.first();\n } else {\n node = currentSlide.prev().length ? currentSlide.prev() : allSlides.last();\n }\n }\n\n node.show().addClass('current');\n\n var zoomImageSrc = node.find('source').attr('srcset').split(',')[0].trim().split(' ')[0];\n\n parentZoom.zoom({\n on: 'grab',\n url: zoomImageSrc,\n onZoomIn: function () {\n $(this).css('cursor', 'zoom-out');\n },\n onZoomOut: function () {\n $(this).css('cursor', 'zoom-in');\n }\n });\n\n $.spinner().stop();\n }\n\n $('#zoom .navigation .right').click(function () {\n var next = $('#zoom #image-container picture.zoom-slide.current').next('picture.zoom-slide');\n loopSlide(next, 'right');\n });\n\n $('#zoom .navigation .left').click(function () {\n var prev = $('#zoom #image-container picture.zoom-slide.current').prev('picture.zoom-slide');\n loopSlide(prev, 'left');\n });\n },\n initTechnicalIconsSlider: function () {\n var container = document.querySelector('.technicalIconBlock');\n var slider = container.querySelector('ul');\n if (!slider) return;\n\n var isDown = false;\n var startX;\n var scrollLeft;\n\n /** Codigo que segun la resolucion marca si es mobile o no, y si es asi deja el justifycontent de manera fija, o si hay mas iconos de los esperados flex-start para realizar scroll */\n function updateLayout() {\n var items = slider.querySelectorAll('li');\n var itemCount = items.length;\n var isMobile = window.innerWidth <= 768;\n var limit = isMobile ? 4 : 7;\n\n if (itemCount <= limit) {\n slider.style.justifyContent = 'center';\n slider.style.width = '100%';\n } else {\n slider.style.justifyContent = 'flex-start';\n slider.style.width = 'max-content';\n }\n }\n\n function startDragging(e) {\n isDown = true;\n container.style.cursor = 'grabbing';\n startX = e.type.includes('mouse') ? e.pageX : e.touches[0].pageX;\n scrollLeft = container.scrollLeft;\n }\n\n function stopDragging() {\n isDown = false;\n container.style.cursor = 'grab';\n }\n\n function drag(e) {\n if (!isDown) return;\n e.preventDefault();\n var x = e.type.includes('mouse') ? e.pageX : e.touches[0].pageX;\n var walk = (x - startX) * 2;\n container.scrollLeft = scrollLeft - walk;\n }\n\n updateLayout();\n window.addEventListener('resize', updateLayout);\n\n container.addEventListener('mousedown', startDragging);\n container.addEventListener('touchstart', startDragging);\n\n document.addEventListener('mousemove', drag);\n document.addEventListener('touchmove', drag);\n\n document.addEventListener('mouseup', stopDragging);\n document.addEventListener('touchend', stopDragging);\n\n container.addEventListener('mouseleave', stopDragging);\n }\n};\n","function blockNewTabInButtonQuickView() {\n $(document).on('contextmenu', 'a.quickview', function () {\n return false;\n });\n\n $(document).on('auxclick', 'a.quickview', function (e) {\n if (e.which === 2) { // middle Click\n return false;\n }\n return true;\n });\n}\n\nmodule.exports = {\n blockNewTabInButtonQuickView: blockNewTabInButtonQuickView\n};\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both
        and