mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-10 22:24:19 +01:00
1 line
172 KiB
Plaintext
1 line
172 KiB
Plaintext
{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","method","trim","validSelector","charAt","indexOf","substr","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","querySelector","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","_createClass","key","get","on","Constructor","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","hasAttribute","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","direction","off","_objectSpread","_this2","_keydown","documentElement","clearTimeout","tagName","which","parentNode","slice","querySelectorAll","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","carousels","i","len","$carousel","SHOW","SHOWN","HIDE","HIDDEN","_isTransitioning","_triggerArray","makeArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","e","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","createElement","className","add","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","_this9","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this10","animation","template","title","delay","html","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","find","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","forEach","eventIn","eventOut","_fixTitle","titleType","$tip","tabClass","join","popperData","popperInstance","instance","popper","initConfigAnimation","_Tooltip","_getContent","ACTIVATE","SCROLL","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","nodes","scrollSpys","$spy","previous","listElement","itemSelector","nodeName","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","version"],"mappings":";;;;;m/BASA,ICCgBA,EAORC,EAEAC,EACAC,EAEAC,EAMAC,EAMAC,EAAAA,EAAAA,EAYAC,ECrCSP,EAOTC,EAEAC,EACAC,EACAK,EACAJ,EAEAE,EAAAA,EAAAA,EAMAG,EAAAA,EAAAA,EAAAA,EAAAA,EAQAJ,EAYAK,ECvCWV,EAOXC,EAEAC,EACAC,EACAK,EACAJ,EAKAO,EAQAC,EAQAC,EAAAA,EAAAA,EAAAA,EAOAR,EAWAC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAWAG,EAAAA,EAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAgBAK,GC9EWd,GAOXC,GAEAC,GACAC,GAEAC,GAEAO,GAKAC,GAKAP,GAQAC,GAAAA,GAAAA,GAAAA,GAOAS,GAAAA,GAKAN,GAAAA,GAWAO,GCtDWhB,GAOXC,GAEAC,GACAC,GACAK,GACAJ,GAOAa,GAEAZ,GAWAC,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAWAG,GAAAA,GAAAA,GAAAA,GAAAA,GAQAS,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAWAP,GAQAC,GAcAO,GCrFQnB,GAORC,GAEAC,GACAC,GAEAC,GAGAO,GAOAC,GAOAP,GAcAC,GAAAA,GAAAA,GAAAA,GAAAA,GAQAG,GAAAA,GAAAA,GAAAA,GAAAA,GAcAW,GChEUpB,GAOVC,GAEAC,GACAC,GACAC,GACAiB,GACAC,GAEAV,GAeAM,GAQAP,GAiBAY,GAAAA,GAKAlB,GAaAC,GAAAA,GAKAG,GAAAA,GAMAe,GAAAA,GAAAA,GAAAA,GAcAC,GCnGUzB,GAOVC,GAEAC,GACAC,GACAC,GACAiB,GACAC,GAEAX,GAWAC,GAKAN,GAAAA,GAKAG,GAAAA,GAKAJ,GAmBAqB,GC5DY1B,GAOZC,GAEAC,GACAC,GAEAC,GAEAO,GAMAC,GAMAP,GAMAC,GAAAA,GAMAG,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAYAkB,GAAAA,GAWAC,GC7DM5B,GASNE,GACAC,GAEAC,GAEAC,GAQAC,GAAAA,GAAAA,GAAAA,GAAAA,GAQAG,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAgBAoB,GV/CFC,GAAQ,SAAC9B,GAOb,IAAM+B,EAAiB,gBAsBvB,SAASC,EAAsBC,GAAU,IAAAC,EAAAC,KACnCC,GAAS,EAYb,OAVApC,EAAEmC,MAAME,IAAIP,EAAKC,eAAgB,WAC/BK,GAAS,IAGXE,WAAW,WACJF,GACHN,EAAKS,qBAAqBL,IAE3BD,GAEIE,KAcT,IAAML,EAAO,CAEXC,eAAgB,kBAEhBS,OAJW,SAIJC,GACL,KAEEA,MAvDU,IAuDGC,KAAKC,UACXC,SAASC,eAAeJ,KACjC,OAAOA,GAGTK,uBAZW,SAYYC,GACrB,IAAIC,EAAWD,EAAQE,aAAa,eAChCC,EAAS,gBAERF,GAAyB,MAAbA,IACfA,GAAYD,EAAQE,aAAa,SAAW,IAAIE,QAGlD,IAAMC,EAAgBJ,EACK,MAAvBA,EAASK,OAAO,KAAyC,IAA3BL,EAASM,QAAQ,OACjDN,EAAWA,EAASO,OAAO,GAC3BL,EAAS,kBAGX,IACE,OAAON,SAASM,GAAQF,GAAYI,EAAgB,KACpD,MAAOI,GACP,OAAO,OAIXC,iCAjCW,SAiCsBV,GAC/B,IAAKA,EACH,OAAO,EAIT,IAAIW,EAAqB1D,EAAE+C,GAASY,IAAI,uBAIxC,OAHgCC,WAAWF,IAQ3CA,EAAqBA,EAAmBG,MAAM,KAAK,GA/FvB,IAiGrBD,WAAWF,IANT,GASXI,OArDW,SAqDJf,GACL,OAAOA,EAAQgB,cAGjBxB,qBAzDW,SAyDUQ,GACnB/C,EAAE+C,GAASiB,QAAQjC,IAIrBkC,sBA9DW,WA+DT,OAAOC,QAAQnC,IAGjBoC,UAlEW,SAkEDC,GACR,OAAQA,EAAI,IAAMA,GAAKC,UAGzBC,gBAtEW,SAsEKC,EAAeC,EAAQC,GACrC,IAAK,IAAMC,KAAYD,EACrB,GAAIE,OAAOC,UAAUC,eAAeC,KAAKL,EAAaC,GAAW,CAC/D,IAAMK,EAAgBN,EAAYC,GAC5BM,EAAgBR,EAAOE,GACvBO,EAAgBD,GAASlD,EAAKqC,UAAUa,GAC1C,WAxHIZ,EAwHeY,EAvHtB,GAAGE,SAASJ,KAAKV,GAAKe,MAAM,eAAe,GAAGC,eAyH/C,IAAK,IAAIC,OAAON,GAAeO,KAAKL,GAClC,MAAM,IAAIM,MACLhB,EAAciB,cAAjB,aACWd,EADX,oBACuCO,EADvC,wBAEsBF,EAFtB,MA5HZ,IAAgBX,IAuIhB,OArGEpE,EAAEyF,GAAGC,qBAAuB1D,EAC5BhC,EAAE2F,MAAMC,QAAQ9D,EAAKC,gBA9Bd,CACL8D,SAAU9D,EACV+D,aAAc/D,EACdgE,OAHK,SAGEJ,GACL,GAAI3F,EAAE2F,EAAMK,QAAQC,GAAG9D,MACrB,OAAOwD,EAAMO,UAAUC,QAAQC,MAAMjE,KAAMkE,aA6H5CvE,EAnJK,CAoJX9B,GCnJGO,IAOEN,EAAsB,QAGtBE,EAAS,KADTD,EAAsB,YAGtBE,GAZQJ,EA0KbA,GA9J6ByF,GAAGxF,GAM3BI,EAAQ,CACZiG,MAAK,QAAoBnG,EACzBoG,OAAM,SAAoBpG,EAC1BqG,eAAc,QAAWrG,EAVC,aAatBG,EACI,QADJA,EAEI,OAFJA,EAGI,OASJC,EApCc,WAqClB,SAAAA,EAAYwC,GACVZ,KAAKsE,SAAW1D,EAtCA,IAAA2D,EAAAnG,EAAAqE,UAAA,OAAA8B,EAiDlBC,MAjDkB,SAiDZ5D,GACJ,IAAI6D,EAAczE,KAAKsE,SACnB1D,IACF6D,EAAczE,KAAK0E,gBAAgB9D,IAGjBZ,KAAK2E,mBAAmBF,GAE5BG,sBAIhB5E,KAAK6E,eAAeJ,IA7DJF,EAgElBO,QAhEkB,WAiEhBjH,EAAEkH,WAAW/E,KAAKsE,SAAUvG,GAC5BiC,KAAKsE,SAAW,MAlEAC,EAuElBG,gBAvEkB,SAuEF9D,GACd,IAAMC,EAAWlB,GAAKgB,uBAAuBC,GACzCoE,GAAa,EAUjB,OARInE,IACFmE,EAASvE,SAASwE,cAAcpE,IAG7BmE,IACHA,EAASnH,EAAE+C,GAASsE,QAAX,IAAuB/G,GAAmB,IAG9C6G,GAnFST,EAsFlBI,mBAtFkB,SAsFC/D,GACjB,IAAMuE,EAAatH,EAAEK,MAAMA,EAAMiG,OAGjC,OADAtG,EAAE+C,GAASiB,QAAQsD,GACZA,GA1FSZ,EA6FlBM,eA7FkB,SA6FHjE,GAAS,IAAAb,EAAAC,KAGtB,GAFAnC,EAAE+C,GAASwE,YAAYjH,GAElBN,EAAE+C,GAASyE,SAASlH,GAAzB,CAKA,IAAMoD,EAAqB5B,GAAK2B,iCAAiCV,GAEjE/C,EAAE+C,GACCV,IAAIP,GAAKC,eAAgB,SAAC4D,GAAD,OAAWzD,EAAKuF,gBAAgB1E,EAAS4C,KAClED,qBAAqBhC,QARtBvB,KAAKsF,gBAAgB1E,IAjGP2D,EA4GlBe,gBA5GkB,SA4GF1E,GACd/C,EAAE+C,GACC2E,SACA1D,QAAQ3D,EAAMkG,QACdoB,UAhHapH,EAqHXqH,iBArHW,SAqHMpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAMC,EAAW9H,EAAEmC,MACf4F,EAAaD,EAASC,KAAK7H,GAE1B6H,IACHA,EAAO,IAAIxH,EAAM4B,MACjB2F,EAASC,KAAK7H,EAAU6H,IAGX,UAAXvD,GACFuD,EAAKvD,GAAQrC,SAhID5B,EAqIXyH,eArIW,SAqIIC,GACpB,OAAO,SAAUtC,GACXA,GACFA,EAAMuC,iBAGRD,EAActB,MAAMxE,QA3INgG,EAAA5H,EAAA,KAAA,CAAA,CAAA6H,IAAA,UAAAC,IAAA,WA4ChB,MApCwB,YARR9H,EAAA,GAsJpBP,EAAE4C,UAAU0F,GACVjI,EAAMmG,eAxII,yBA0IVjG,EAAMyH,eAAe,IAAIzH,IAS3BP,EAAEyF,GAAGxF,GAAoBM,EAAMqH,iBAC/B5H,EAAEyF,GAAGxF,GAAMsI,YAAchI,EACzBP,EAAEyF,GAAGxF,GAAMuI,WAAc,WAEvB,OADAxI,EAAEyF,GAAGxF,GAAQG,EACNG,EAAMqH,kBAGRrH,GC1KHG,IAOET,EAAsB,SAGtBE,EAAS,KADTD,EAAsB,aAEtBM,EAAsB,YACtBJ,GAZSJ,EAmKdA,GAvJ6ByF,GAAGxF,GAE3BK,EACK,SADLA,EAEK,MAILG,EACiB,0BADjBA,EAEiB,0BAFjBA,EAGiB,QAHjBA,EAIiB,UAJjBA,EAKiB,OAGjBJ,EAAQ,CACZmG,eAAc,QAAgBrG,EAAYK,EAC1CiI,qBAhBInI,EAGK,SAaqBH,EAAYK,EAApB,QACSL,EAAYK,GASvCE,EAxCe,WAyCnB,SAAAA,EAAYqC,GACVZ,KAAKsE,SAAW1D,EA1CC,IAAA2D,EAAAhG,EAAAkE,UAAA,OAAA8B,EAqDnBgC,OArDmB,WAsDjB,IAAIC,GAAqB,EACrBC,GAAiB,EACfhC,EAAc5G,EAAEmC,KAAKsE,UAAUY,QACnC5G,GACA,GAEF,GAAImG,EAAa,CACf,IAAMiC,EAAQ1G,KAAKsE,SAASW,cAAc3G,GAE1C,GAAIoI,EAAO,CACT,GAAmB,UAAfA,EAAMC,KACR,GAAID,EAAME,SACR5G,KAAKsE,SAASuC,UAAUC,SAAS3I,GACjCqI,GAAqB,MAChB,CACL,IAAMO,EAAgBtC,EAAYQ,cAAc3G,GAE5CyI,GACFlJ,EAAEkJ,GAAe3B,YAAYjH,GAKnC,GAAIqI,EAAoB,CACtB,GAAIE,EAAMM,aAAa,aACrBvC,EAAYuC,aAAa,aACzBN,EAAMG,UAAUC,SAAS,aACzBrC,EAAYoC,UAAUC,SAAS,YAC/B,OAEFJ,EAAME,SAAW5G,KAAKsE,SAASuC,UAAUC,SAAS3I,GAClDN,EAAE6I,GAAO7E,QAAQ,UAGnB6E,EAAMO,QACNR,GAAiB,GAIjBA,GACFzG,KAAKsE,SAAS4C,aAAa,gBACxBlH,KAAKsE,SAASuC,UAAUC,SAAS3I,IAGlCqI,GACF3I,EAAEmC,KAAKsE,UAAU6C,YAAYhJ,IAnGdoG,EAuGnBO,QAvGmB,WAwGjBjH,EAAEkH,WAAW/E,KAAKsE,SAAUvG,GAC5BiC,KAAKsE,SAAW,MAzGC/F,EA8GZkH,iBA9GY,SA8GKpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,EAAEmC,MAAM4F,KAAK7H,GAEnB6H,IACHA,EAAO,IAAIrH,EAAOyB,MAClBnC,EAAEmC,MAAM4F,KAAK7H,EAAU6H,IAGV,WAAXvD,GACFuD,EAAKvD,QAxHQ2D,EAAAzH,EAAA,KAAA,CAAA,CAAA0H,IAAA,UAAAC,IAAA,WAgDjB,MAxCwB,YARP3H,EAAA,GAoIrBV,EAAE4C,UACC0F,GAAGjI,EAAMmG,eAAgB/F,EAA6B,SAACkF,GACtDA,EAAMuC,iBAEN,IAAIqB,EAAS5D,EAAMK,OAEdhG,EAAEuJ,GAAQ/B,SAASlH,KACtBiJ,EAASvJ,EAAEuJ,GAAQlC,QAAQ5G,IAG7BC,EAAOkH,iBAAiB9C,KAAK9E,EAAEuJ,GAAS,YAEzCjB,GAAGjI,EAAMoI,oBAAqBhI,EAA6B,SAACkF,GAC3D,IAAM4D,EAASvJ,EAAE2F,EAAMK,QAAQqB,QAAQ5G,GAAiB,GACxDT,EAAEuJ,GAAQD,YAAYhJ,EAAiB,eAAegF,KAAKK,EAAMmD,SASrE9I,EAAEyF,GAAGxF,GAAQS,EAAOkH,iBACpB5H,EAAEyF,GAAGxF,GAAMsI,YAAc7H,EACzBV,EAAEyF,GAAGxF,GAAMuI,WAAa,WAEtB,OADAxI,EAAEyF,GAAGxF,GAAQG,EACNM,EAAOkH,kBAGTlH,GCjKHI,IAOEb,EAAyB,WAGzBE,EAAS,KADTD,EAAyB,eAEzBM,EAAyB,YACzBJ,GAZWJ,EA2fhBA,GA/egCyF,GAAGxF,GAK9BU,EAAU,CACd6I,SAAW,IACXC,UAAW,EACXC,OAAW,EACXC,MAAW,QACXC,MAAW,GAGPhJ,EAAc,CAClB4I,SAAW,mBACXC,SAAW,UACXC,MAAW,mBACXC,MAAW,mBACXC,KAAW,WAGP/I,EACO,OADPA,EAEO,OAFPA,EAGO,OAHPA,EAIO,QAGPR,EAAQ,CACZwJ,MAAK,QAAoB1J,EACzB2J,KAAI,OAAoB3J,EACxB4J,QAAO,UAAoB5J,EAC3B6J,WAAU,aAAoB7J,EAC9B8J,WAAU,aAAoB9J,EAC9B+J,SAAQ,WAAoB/J,EAC5BgK,cAAa,OAAWhK,EAAYK,EACpCgG,eAAc,QAAWrG,EAAYK,GAGjCF,EACO,WADPA,EAEO,SAFPA,EAGO,QAHPA,EAIO,sBAJPA,EAKO,qBALPA,EAMO,qBANPA,EAOO,qBAIPG,EACU,UADVA,EAEU,wBAFVA,GAGU,iBAHVA,GAIU,2CAJVA,GAKU,uBALVA,GAMU,gCANVA,GAOU,yBASVK,GA9EiB,WA+ErB,SAAAA,EAAYiC,EAASyB,GACnBrC,KAAKiI,OAAsB,KAC3BjI,KAAKkI,UAAsB,KAC3BlI,KAAKmI,eAAsB,KAE3BnI,KAAKoI,WAAsB,EAC3BpI,KAAKqI,YAAsB,EAE3BrI,KAAKsI,aAAsB,KAE3BtI,KAAKuI,QAAsBvI,KAAKwI,WAAWnG,GAC3CrC,KAAKsE,SAAsBzG,EAAE+C,GAAS,GACtCZ,KAAKyI,mBAAsBzI,KAAKsE,SAASW,cAAc3G,IAEvD0B,KAAK0I,qBA7Fc,IAAAnE,EAAA5F,EAAA8D,UAAA,OAAA8B,EA4GrBoE,KA5GqB,WA6Gd3I,KAAKqI,YACRrI,KAAK4I,OAAOlK,IA9GK6F,EAkHrBsE,gBAlHqB,YAqHdpI,SAASqI,QACXjL,EAAEmC,KAAKsE,UAAUR,GAAG,aAAsD,WAAvCjG,EAAEmC,KAAKsE,UAAU9C,IAAI,eACzDxB,KAAK2I,QAvHYpE,EA2HrBwE,KA3HqB,WA4Hd/I,KAAKqI,YACRrI,KAAK4I,OAAOlK,IA7HK6F,EAiIrBiD,MAjIqB,SAiIfhE,GACCA,IACHxD,KAAKoI,WAAY,GAGfpI,KAAKsE,SAASW,cAAc3G,MAC9BqB,GAAKS,qBAAqBJ,KAAKsE,UAC/BtE,KAAKgJ,OAAM,IAGbC,cAAcjJ,KAAKkI,WACnBlI,KAAKkI,UAAY,MA5IE3D,EA+IrByE,MA/IqB,SA+IfxF,GACCA,IACHxD,KAAKoI,WAAY,GAGfpI,KAAKkI,YACPe,cAAcjJ,KAAKkI,WACnBlI,KAAKkI,UAAY,MAGflI,KAAKuI,QAAQlB,WAAarH,KAAKoI,YACjCpI,KAAKkI,UAAYgB,aACdzI,SAAS0I,gBAAkBnJ,KAAK6I,gBAAkB7I,KAAK2I,MAAMS,KAAKpJ,MACnEA,KAAKuI,QAAQlB,YA5JE9C,EAiKrB8E,GAjKqB,SAiKlBC,GAAO,IAAAvJ,EAAAC,KACRA,KAAKmI,eAAiBnI,KAAKsE,SAASW,cAAc3G,GAElD,IAAMiL,EAAcvJ,KAAKwJ,cAAcxJ,KAAKmI,gBAE5C,KAAImB,EAAQtJ,KAAKiI,OAAOwB,OAAS,GAAKH,EAAQ,GAI9C,GAAItJ,KAAKqI,WACPxK,EAAEmC,KAAKsE,UAAUpE,IAAIhC,EAAMyJ,KAAM,WAAA,OAAM5H,EAAKsJ,GAAGC,SADjD,CAKA,GAAIC,IAAgBD,EAGlB,OAFAtJ,KAAKwH,aACLxH,KAAKgJ,QAIP,IAAMU,EAAoBH,EAARD,EACd5K,EACAA,EAEJsB,KAAK4I,OAAOc,EAAW1J,KAAKiI,OAAOqB,MAzLhB/E,EA4LrBO,QA5LqB,WA6LnBjH,EAAEmC,KAAKsE,UAAUqF,IAAI3L,GACrBH,EAAEkH,WAAW/E,KAAKsE,SAAUvG,GAE5BiC,KAAKiI,OAAqB,KAC1BjI,KAAKuI,QAAqB,KAC1BvI,KAAKsE,SAAqB,KAC1BtE,KAAKkI,UAAqB,KAC1BlI,KAAKoI,UAAqB,KAC1BpI,KAAKqI,WAAqB,KAC1BrI,KAAKmI,eAAqB,KAC1BnI,KAAKyI,mBAAqB,MAvMPlE,EA4MrBiE,WA5MqB,SA4MVnG,GAMT,OALAA,EAAMuH,EAAA,GACDpL,EACA6D,GAEL1C,GAAKwC,gBAAgBrE,EAAMuE,EAAQ5D,GAC5B4D,GAlNYkC,EAqNrBmE,mBArNqB,WAqNA,IAAAmB,EAAA7J,KACfA,KAAKuI,QAAQjB,UACfzJ,EAAEmC,KAAKsE,UACJ6B,GAAGjI,EAAM0J,QAAS,SAACpE,GAAD,OAAWqG,EAAKC,SAAStG,KAGrB,UAAvBxD,KAAKuI,QAAQf,QACf3J,EAAEmC,KAAKsE,UACJ6B,GAAGjI,EAAM2J,WAAY,SAACrE,GAAD,OAAWqG,EAAKrC,MAAMhE,KAC3C2C,GAAGjI,EAAM4J,WAAY,SAACtE,GAAD,OAAWqG,EAAKb,MAAMxF,KAC1C,iBAAkB/C,SAASsJ,iBAQ7BlM,EAAEmC,KAAKsE,UAAU6B,GAAGjI,EAAM6J,SAAU,WAClC8B,EAAKrC,QACDqC,EAAKvB,cACP0B,aAAaH,EAAKvB,cAEpBuB,EAAKvB,aAAenI,WAAW,SAACqD,GAAD,OAAWqG,EAAKb,MAAMxF,IA7NhC,IA6NiEqG,EAAKtB,QAAQlB,cA5OtF9C,EAkPrBuF,SAlPqB,SAkPZtG,GACP,IAAI,kBAAkBL,KAAKK,EAAMK,OAAOoG,SAIxC,OAAQzG,EAAM0G,OACZ,KA3OyB,GA4OvB1G,EAAMuC,iBACN/F,KAAK+I,OACL,MACF,KA9OyB,GA+OvBvF,EAAMuC,iBACN/F,KAAK2I,SA9PUpE,EAoQrBiF,cApQqB,SAoQP5I,GAIZ,OAHAZ,KAAKiI,OAASrH,GAAWA,EAAQuJ,WAC7B,GAAGC,MAAMzH,KAAK/B,EAAQuJ,WAAWE,iBAAiB/L,KAClD,GACG0B,KAAKiI,OAAO9G,QAAQP,IAxQR2D,EA2QrB+F,oBA3QqB,SA2QDZ,EAAW3C,GAC7B,IAAMwD,EAAkBb,IAAchL,EAChC8L,EAAkBd,IAAchL,EAChC6K,EAAkBvJ,KAAKwJ,cAAczC,GACrC0D,EAAkBzK,KAAKiI,OAAOwB,OAAS,EAI7C,IAHwBe,GAAmC,IAAhBjB,GACnBgB,GAAmBhB,IAAgBkB,KAErCzK,KAAKuI,QAAQd,KACjC,OAAOV,EAGT,IACM2D,GAAanB,GADDG,IAAchL,GAAkB,EAAI,IACZsB,KAAKiI,OAAOwB,OAEtD,OAAsB,IAAfiB,EACH1K,KAAKiI,OAAOjI,KAAKiI,OAAOwB,OAAS,GAAKzJ,KAAKiI,OAAOyC,IA3RnCnG,EA8RrBoG,mBA9RqB,SA8RFC,EAAeC,GAChC,IAAMC,EAAc9K,KAAKwJ,cAAcoB,GACjCG,EAAY/K,KAAKwJ,cAAcxJ,KAAKsE,SAASW,cAAc3G,IAC3D0M,EAAanN,EAAEK,MAAMA,EAAMwJ,MAAO,CACtCkD,cAAAA,EACAlB,UAAWmB,EACXI,KAAMF,EACN1B,GAAIyB,IAKN,OAFAjN,EAAEmC,KAAKsE,UAAUzC,QAAQmJ,GAElBA,GA1SYzG,EA6SrB2G,2BA7SqB,SA6SMtK,GACzB,GAAIZ,KAAKyI,mBAAoB,CAC3B,IAAM0C,EAAa,GAAGf,MAAMzH,KAAK3C,KAAKyI,mBAAmB4B,iBAAiB/L,IAC1ET,EAAEsN,GACC/F,YAAYjH,GAEf,IAAMiN,EAAgBpL,KAAKyI,mBAAmB4C,SAC5CrL,KAAKwJ,cAAc5I,IAGjBwK,GACFvN,EAAEuN,GAAeE,SAASnN,KAxTXoG,EA6TrBqE,OA7TqB,SA6Tdc,EAAW9I,GAAS,IAQrB2K,EACAC,EACAX,EAVqBY,EAAAzL,KACnB+G,EAAgB/G,KAAKsE,SAASW,cAAc3G,GAC5CoN,EAAqB1L,KAAKwJ,cAAczC,GACxC4E,EAAgB/K,GAAWmG,GAC/B/G,KAAKsK,oBAAoBZ,EAAW3C,GAChC6E,EAAmB5L,KAAKwJ,cAAcmC,GACtCE,EAAY9J,QAAQ/B,KAAKkI,WAgB/B,GAVIwB,IAAchL,GAChB6M,EAAuBpN,EACvBqN,EAAiBrN,EACjB0M,EAAqBnM,IAErB6M,EAAuBpN,EACvBqN,EAAiBrN,EACjB0M,EAAqBnM,GAGnBiN,GAAe9N,EAAE8N,GAAatG,SAASlH,GACzC6B,KAAKqI,YAAa,OAKpB,IADmBrI,KAAK2K,mBAAmBgB,EAAad,GACzCjG,sBAIVmC,GAAkB4E,EAAvB,CAKA3L,KAAKqI,YAAa,EAEdwD,GACF7L,KAAKwH,QAGPxH,KAAKkL,2BAA2BS,GAEhC,IAAMG,EAAYjO,EAAEK,MAAMA,EAAMyJ,KAAM,CACpCiD,cAAee,EACfjC,UAAWmB,EACXI,KAAMS,EACNrC,GAAIuC,IAGN,GAAI/N,EAAEmC,KAAKsE,UAAUe,SAASlH,GAAkB,CAC9CN,EAAE8N,GAAaL,SAASE,GAExB7L,GAAKgC,OAAOgK,GAEZ9N,EAAEkJ,GAAeuE,SAASC,GAC1B1N,EAAE8N,GAAaL,SAASC,GAExB,IAAMhK,EAAqB5B,GAAK2B,iCAAiCyF,GAEjElJ,EAAEkJ,GACC7G,IAAIP,GAAKC,eAAgB,WACxB/B,EAAE8N,GACCvG,YAAemG,EADlB,IAC0CC,GACvCF,SAASnN,GAEZN,EAAEkJ,GAAe3B,YAAejH,EAAhC,IAAoDqN,EAApD,IAAsED,GAEtEE,EAAKpD,YAAa,EAElBlI,WAAW,WAAA,OAAMtC,EAAE4N,EAAKnH,UAAUzC,QAAQiK,IAAY,KAEvDvI,qBAAqBhC,QAExB1D,EAAEkJ,GAAe3B,YAAYjH,GAC7BN,EAAE8N,GAAaL,SAASnN,GAExB6B,KAAKqI,YAAa,EAClBxK,EAAEmC,KAAKsE,UAAUzC,QAAQiK,GAGvBD,GACF7L,KAAKgJ,UAjZYrK,EAuZd8G,iBAvZc,SAuZGpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,EAAEmC,MAAM4F,KAAK7H,GACpBwK,EAAOqB,EAAA,GACNpL,EACAX,EAAEmC,MAAM4F,QAGS,iBAAXvD,IACTkG,EAAOqB,EAAA,GACFrB,EACAlG,IAIP,IAAM0J,EAA2B,iBAAX1J,EAAsBA,EAASkG,EAAQhB,MAO7D,GALK3B,IACHA,EAAO,IAAIjH,EAASqB,KAAMuI,GAC1B1K,EAAEmC,MAAM4F,KAAK7H,EAAU6H,IAGH,iBAAXvD,EACTuD,EAAKyD,GAAGhH,QACH,GAAsB,iBAAX0J,EAAqB,CACrC,GAA4B,oBAAjBnG,EAAKmG,GACd,MAAM,IAAIC,UAAJ,oBAAkCD,EAAlC,KAERnG,EAAKmG,UACIxD,EAAQlB,WACjBzB,EAAK4B,QACL5B,EAAKoD,YAtbUrK,EA2bdsN,qBA3bc,SA2bOzI,GAC1B,IAAM3C,EAAWlB,GAAKgB,uBAAuBX,MAE7C,GAAKa,EAAL,CAIA,IAAMgD,EAAShG,EAAEgD,GAAU,GAE3B,GAAKgD,GAAWhG,EAAEgG,GAAQwB,SAASlH,GAAnC,CAIA,IAAMkE,EAAMuH,EAAA,GACP/L,EAAEgG,GAAQ+B,OACV/H,EAAEmC,MAAM4F,QAEPsG,EAAalM,KAAKc,aAAa,iBAEjCoL,IACF7J,EAAOgF,UAAW,GAGpB1I,EAAS8G,iBAAiB9C,KAAK9E,EAAEgG,GAASxB,GAEtC6J,GACFrO,EAAEgG,GAAQ+B,KAAK7H,GAAUsL,GAAG6C,GAG9B1I,EAAMuC,oBAxdaC,EAAArH,EAAA,KAAA,CAAA,CAAAsH,IAAA,UAAAC,IAAA,WAmGnB,MA3F2B,UARR,CAAAD,IAAA,UAAAC,IAAA,WAuGnB,OAAO1H,MAvGYG,EAAA,GAkevBd,EAAE4C,UACC0F,GAAGjI,EAAMmG,eAAgB/F,GAAqBK,GAASsN,sBAE1DpO,EAAEsO,QAAQhG,GAAGjI,EAAM8J,cAAe,WAEhC,IADA,IAAMoE,EAAY,GAAGhC,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KACjD+N,EAAI,EAAGC,EAAMF,EAAU3C,OAAQ4C,EAAIC,EAAKD,IAAK,CACpD,IAAME,EAAY1O,EAAEuO,EAAUC,IAC9B1N,GAAS8G,iBAAiB9C,KAAK4J,EAAWA,EAAU3G,WAUxD/H,EAAEyF,GAAGxF,GAAQa,GAAS8G,iBACtB5H,EAAEyF,GAAGxF,GAAMsI,YAAczH,GACzBd,EAAEyF,GAAGxF,GAAMuI,WAAa,WAEtB,OADAxI,EAAEyF,GAAGxF,GAAQG,EACNU,GAAS8G,kBAGX9G,IC1fHE,IAOEf,GAAsB,WAGtBE,GAAS,KADTD,GAAsB,eAGtBE,IAZWJ,GAiYhBA,GArX6ByF,GAAGxF,IAE3BU,GAAU,CACd+H,QAAS,EACTvB,OAAS,IAGLvG,GAAc,CAClB8H,OAAS,UACTvB,OAAS,oBAGL9G,GAAQ,CACZsO,KAAI,OAAoBxO,GACxByO,MAAK,QAAoBzO,GACzB0O,KAAI,OAAoB1O,GACxB2O,OAAM,SAAoB3O,GAC1BqG,eAAc,QAAWrG,GAlBC,aAqBtBG,GACS,OADTA,GAES,WAFTA,GAGS,aAHTA,GAIS,YAGTS,GACK,QADLA,GAEK,SAGLN,GACU,qBADVA,GAEU,2BASVO,GAvDiB,WAwDrB,SAAAA,EAAY+B,EAASyB,GACnBrC,KAAK4M,kBAAmB,EACxB5M,KAAKsE,SAAmB1D,EACxBZ,KAAKuI,QAAmBvI,KAAKwI,WAAWnG,GACxCrC,KAAK6M,cAAmBhP,GAAEiP,UAAUrM,SAAS4J,iBAC3C,mCAAmCzJ,EAAQmM,GAA3C,6CAC0CnM,EAAQmM,GADlD,OAIF,IADA,IAAMC,EAAa,GAAG5C,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KAClD+N,EAAI,EAAGC,EAAMU,EAAWvD,OAAQ4C,EAAIC,EAAKD,IAAK,CACrD,IAAMY,EAAOD,EAAWX,GAClBxL,EAAWlB,GAAKgB,uBAAuBsM,GACvCC,EAAgB,GAAG9C,MAAMzH,KAAKlC,SAAS4J,iBAAiBxJ,IAC3DsM,OAAO,SAACC,GAAD,OAAeA,IAAcxM,IAEtB,OAAbC,GAA4C,EAAvBqM,EAAczD,SACrCzJ,KAAKqN,UAAYxM,EACjBb,KAAK6M,cAAcS,KAAKL,IAI5BjN,KAAKuN,QAAUvN,KAAKuI,QAAQvD,OAAShF,KAAKwN,aAAe,KAEpDxN,KAAKuI,QAAQvD,QAChBhF,KAAKyN,0BAA0BzN,KAAKsE,SAAUtE,KAAK6M,eAGjD7M,KAAKuI,QAAQhC,QACfvG,KAAKuG,SApFY,IAAAhC,EAAA1F,EAAA4D,UAAA,OAAA8B,EAoGrBgC,OApGqB,WAqGf1I,GAAEmC,KAAKsE,UAAUe,SAASlH,IAC5B6B,KAAK0N,OAEL1N,KAAK2N,QAxGYpJ,EA4GrBoJ,KA5GqB,WA4Gd,IAMDC,EACAC,EAPC9N,EAAAC,KACL,IAAIA,KAAK4M,mBACP/O,GAAEmC,KAAKsE,UAAUe,SAASlH,MAOxB6B,KAAKuN,SAIgB,KAHvBK,EAAU,GAAGxD,MAAMzH,KAAK3C,KAAKuN,QAAQlD,iBAAiB/L,KACnD6O,OAAO,SAACF,GAAD,OAAUA,EAAKnM,aAAa,iBAAmBf,EAAKwI,QAAQvD,UAE1DyE,SACVmE,EAAU,QAIVA,IACFC,EAAchQ,GAAE+P,GAASE,IAAI9N,KAAKqN,WAAWzH,KAAK7H,MAC/B8P,EAAYjB,mBAFjC,CAOA,IAAMmB,EAAalQ,GAAEK,MAAMA,GAAMsO,MAEjC,GADA3O,GAAEmC,KAAKsE,UAAUzC,QAAQkM,IACrBA,EAAWnJ,qBAAf,CAIIgJ,IACF/O,EAAS4G,iBAAiB9C,KAAK9E,GAAE+P,GAASE,IAAI9N,KAAKqN,WAAY,QAC1DQ,GACHhQ,GAAE+P,GAAShI,KAAK7H,GAAU,OAI9B,IAAMiQ,EAAYhO,KAAKiO,gBAEvBpQ,GAAEmC,KAAKsE,UACJc,YAAYjH,IACZmN,SAASnN,IAEZ6B,KAAKsE,SAAS4J,MAAMF,GAAa,EAE7BhO,KAAK6M,cAAcpD,QACrB5L,GAAEmC,KAAK6M,eACJzH,YAAYjH,IACZgQ,KAAK,iBAAiB,GAG3BnO,KAAKoO,kBAAiB,GAEtB,IAcMC,EAAU,UADaL,EAAU,GAAG3K,cAAgB2K,EAAU5D,MAAM,IAEpE7I,EAAqB5B,GAAK2B,iCAAiCtB,KAAKsE,UAEtEzG,GAAEmC,KAAKsE,UACJpE,IAAIP,GAAKC,eAlBK,WACf/B,GAAEkC,EAAKuE,UACJc,YAAYjH,IACZmN,SAASnN,IACTmN,SAASnN,IAEZ4B,EAAKuE,SAAS4J,MAAMF,GAAa,GAEjCjO,EAAKqO,kBAAiB,GAEtBvQ,GAAEkC,EAAKuE,UAAUzC,QAAQ3D,GAAMuO,SAS9BlJ,qBAAqBhC,GAExBvB,KAAKsE,SAAS4J,MAAMF,GAAgBhO,KAAKsE,SAAS+J,GAAlD,QAvLmB9J,EA0LrBmJ,KA1LqB,WA0Ld,IAAA7D,EAAA7J,KACL,IAAIA,KAAK4M,kBACN/O,GAAEmC,KAAKsE,UAAUe,SAASlH,IAD7B,CAKA,IAAM4P,EAAalQ,GAAEK,MAAMA,GAAMwO,MAEjC,GADA7O,GAAEmC,KAAKsE,UAAUzC,QAAQkM,IACrBA,EAAWnJ,qBAAf,CAIA,IAAMoJ,EAAYhO,KAAKiO,gBAEvBjO,KAAKsE,SAAS4J,MAAMF,GAAgBhO,KAAKsE,SAASgK,wBAAwBN,GAA1E,KAEArO,GAAKgC,OAAO3B,KAAKsE,UAEjBzG,GAAEmC,KAAKsE,UACJgH,SAASnN,IACTiH,YAAYjH,IACZiH,YAAYjH,IAEf,IAAMoQ,EAAqBvO,KAAK6M,cAAcpD,OAC9C,GAAyB,EAArB8E,EACF,IAAK,IAAIlC,EAAI,EAAGA,EAAIkC,EAAoBlC,IAAK,CAC3C,IAAMxK,EAAU7B,KAAK6M,cAAcR,GAC7BxL,EAAWlB,GAAKgB,uBAAuBkB,GAC7C,GAAiB,OAAbhB,EACYhD,GAAE,GAAGuM,MAAMzH,KAAKlC,SAAS4J,iBAAiBxJ,KAC7CwE,SAASlH,KAClBN,GAAEgE,GAASyJ,SAASnN,IACjBgQ,KAAK,iBAAiB,GAMjCnO,KAAKoO,kBAAiB,GAUtBpO,KAAKsE,SAAS4J,MAAMF,GAAa,GACjC,IAAMzM,EAAqB5B,GAAK2B,iCAAiCtB,KAAKsE,UAEtEzG,GAAEmC,KAAKsE,UACJpE,IAAIP,GAAKC,eAZK,WACfiK,EAAKuE,kBAAiB,GACtBvQ,GAAEgM,EAAKvF,UACJc,YAAYjH,IACZmN,SAASnN,IACT0D,QAAQ3D,GAAMyO,UAQhBpJ,qBAAqBhC,MA/OLgD,EAkPrB6J,iBAlPqB,SAkPJI,GACfxO,KAAK4M,iBAAmB4B,GAnPLjK,EAsPrBO,QAtPqB,WAuPnBjH,GAAEkH,WAAW/E,KAAKsE,SAAUvG,IAE5BiC,KAAKuI,QAAmB,KACxBvI,KAAKuN,QAAmB,KACxBvN,KAAKsE,SAAmB,KACxBtE,KAAK6M,cAAmB,KACxB7M,KAAK4M,iBAAmB,MA7PLrI,EAkQrBiE,WAlQqB,SAkQVnG,GAOT,OANAA,EAAMuH,EAAA,GACDpL,GACA6D,IAEEkE,OAASxE,QAAQM,EAAOkE,QAC/B5G,GAAKwC,gBAAgBrE,GAAMuE,EAAQ5D,IAC5B4D,GAzQYkC,EA4QrB0J,cA5QqB,WA8QnB,OADiBpQ,GAAEmC,KAAKsE,UAAUe,SAASzG,IACzBA,GAAkBA,IA9QjB2F,EAiRrBiJ,WAjRqB,WAiRR,IAAA/B,EAAAzL,KACPgF,EAAS,KACTrF,GAAKqC,UAAUhC,KAAKuI,QAAQvD,SAC9BA,EAAShF,KAAKuI,QAAQvD,OAGoB,oBAA/BhF,KAAKuI,QAAQvD,OAAOyJ,SAC7BzJ,EAAShF,KAAKuI,QAAQvD,OAAO,KAG/BA,EAASvE,SAASwE,cAAcjF,KAAKuI,QAAQvD,QAG/C,IAAMnE,EAAQ,yCAC6Bb,KAAKuI,QAAQvD,OAD1C,KAGRqG,EAAW,GAAGjB,MAAMzH,KAAKqC,EAAOqF,iBAAiBxJ,IAQvD,OAPAhD,GAAEwN,GAAU3F,KAAK,SAAC2G,EAAGzL,GACnB6K,EAAKgC,0BACH5O,EAAS6P,sBAAsB9N,GAC/B,CAACA,MAIEoE,GAzSYT,EA4SrBkJ,0BA5SqB,SA4SK7M,EAAS+N,GACjC,GAAI/N,EAAS,CACX,IAAMgO,EAAS/Q,GAAE+C,GAASyE,SAASlH,IAE/BwQ,EAAalF,QACf5L,GAAE8Q,GACCxH,YAAYhJ,IAAsByQ,GAClCT,KAAK,gBAAiBS,KAnTV/P,EA0Td6P,sBA1Tc,SA0TQ9N,GAC3B,IAAMC,EAAWlB,GAAKgB,uBAAuBC,GAC7C,OAAOC,EAAWJ,SAASwE,cAAcpE,GAAY,MA5TlChC,EA+Td4G,iBA/Tc,SA+TGpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAMmJ,EAAUhR,GAAEmC,MACd4F,EAAYiJ,EAAMjJ,KAAK7H,IACrBwK,EAAOqB,EAAA,GACRpL,GACAqQ,EAAMjJ,OACY,iBAAXvD,GAAuBA,EAASA,EAAS,IAYrD,IATKuD,GAAQ2C,EAAQhC,QAAU,YAAYpD,KAAKd,KAC9CkG,EAAQhC,QAAS,GAGdX,IACHA,EAAO,IAAI/G,EAASmB,KAAMuI,GAC1BsG,EAAMjJ,KAAK7H,GAAU6H,IAGD,iBAAXvD,EAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SAtVU2D,EAAAnH,EAAA,KAAA,CAAA,CAAAoH,IAAA,UAAAC,IAAA,WA2FnB,MAnFwB,UARL,CAAAD,IAAA,UAAAC,IAAA,WA+FnB,OAAO1H,OA/FYK,EAAA,GAkWvBhB,GAAE4C,UAAU0F,GAAGjI,GAAMmG,eAAgB/F,GAAsB,SAAUkF,GAE/B,MAAhCA,EAAMsL,cAAc7E,SACtBzG,EAAMuC,iBAGR,IAAMgJ,EAAWlR,GAAEmC,MACba,EAAWlB,GAAKgB,uBAAuBX,MACvCgP,EAAY,GAAG5E,MAAMzH,KAAKlC,SAAS4J,iBAAiBxJ,IAC1DhD,GAAEmR,GAAWtJ,KAAK,WAChB,IAAMuJ,EAAUpR,GAAEmC,MAEZqC,EADU4M,EAAQrJ,KAAK7H,IACN,SAAWgR,EAASnJ,OAC3C/G,GAAS4G,iBAAiB9C,KAAKsM,EAAS5M,OAU5CxE,GAAEyF,GAAGxF,IAAQe,GAAS4G,iBACtB5H,GAAEyF,GAAGxF,IAAMsI,YAAcvH,GACzBhB,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNY,GAAS4G,kBAGX5G,IC/XHG,IAOElB,GAA2B,WAG3BE,GAAS,KADTD,GAA2B,eAE3BM,GAA2B,YAC3BJ,IAZWJ,GAgehBA,GApdkCyF,GAAGxF,IAOhCgB,GAA2B,IAAIoE,OAAUgM,YAEzChR,GAAQ,CACZwO,KAAI,OAAsB1O,GAC1B2O,OAAM,SAAsB3O,GAC5BwO,KAAI,OAAsBxO,GAC1ByO,MAAK,QAAsBzO,GAC3BmR,MAAK,QAAsBnR,GAC3BqG,eAAc,QAAarG,GAAYK,GACvC+Q,iBAAgB,UAAapR,GAAYK,GACzCgR,eAAc,QAAarR,GAAYK,IAGnCF,GACQ,WADRA,GAEQ,OAFRA,GAGQ,SAHRA,GAIQ,YAJRA,GAKQ,WALRA,GAMQ,sBANRA,GAQc,kBAGdG,GACY,2BADZA,GAEY,iBAFZA,GAGY,iBAHZA,GAIY,cAJZA,GAKY,8DAGZS,GACQ,YADRA,GAEQ,UAFRA,GAGQ,eAHRA,GAIQ,aAJRA,GAKQ,cALRA,GAOQ,aAIRP,GAAU,CACd8Q,OAAc,EACdC,MAAc,EACdC,SAAc,eACdC,UAAc,SACdC,QAAc,WAGVjR,GAAc,CAClB6Q,OAAc,2BACdC,KAAc,UACdC,SAAc,mBACdC,UAAc,mBACdC,QAAc,UASV1Q,GApFiB,WAqFrB,SAAAA,EAAY4B,EAASyB,GACnBrC,KAAKsE,SAAY1D,EACjBZ,KAAK2P,QAAY,KACjB3P,KAAKuI,QAAYvI,KAAKwI,WAAWnG,GACjCrC,KAAK4P,MAAY5P,KAAK6P,kBACtB7P,KAAK8P,UAAY9P,KAAK+P,gBAEtB/P,KAAK0I,qBA5Fc,IAAAnE,EAAAvF,EAAAyD,UAAA,OAAA8B,EA+GrBgC,OA/GqB,WAgHnB,IAAIvG,KAAKsE,SAAS0L,WAAYnS,GAAEmC,KAAKsE,UAAUe,SAASlH,IAAxD,CAIA,IAAM6G,EAAWhG,EAASiR,sBAAsBjQ,KAAKsE,UAC/C4L,EAAWrS,GAAEmC,KAAK4P,OAAOvK,SAASlH,IAIxC,GAFAa,EAASmR,eAELD,EAAJ,CAIA,IAAMtF,EAAgB,CACpBA,cAAe5K,KAAKsE,UAEhB8L,EAAYvS,GAAEK,MAAMA,GAAMsO,KAAM5B,GAItC,GAFA/M,GAAEmH,GAAQnD,QAAQuO,IAEdA,EAAUxL,qBAAd,CAKA,IAAK5E,KAAK8P,UAAW,CAKnB,GAAsB,oBAAXO,EACT,MAAM,IAAIrE,UAAU,gEAGtB,IAAIsE,EAAmBtQ,KAAKsE,SAEG,WAA3BtE,KAAKuI,QAAQkH,UACfa,EAAmBtL,EACVrF,GAAKqC,UAAUhC,KAAKuI,QAAQkH,aACrCa,EAAmBtQ,KAAKuI,QAAQkH,UAGa,oBAAlCzP,KAAKuI,QAAQkH,UAAUhB,SAChC6B,EAAmBtQ,KAAKuI,QAAQkH,UAAU,KAOhB,iBAA1BzP,KAAKuI,QAAQiH,UACf3R,GAAEmH,GAAQsG,SAASnN,IAErB6B,KAAK2P,QAAU,IAAIU,EAAOC,EAAkBtQ,KAAK4P,MAAO5P,KAAKuQ,oBAO3D,iBAAkB9P,SAASsJ,iBACsB,IAAlDlM,GAAEmH,GAAQE,QAAQ5G,IAAqBmL,QACxC5L,GAAE4C,SAAS+P,MAAMnF,WAAWlF,GAAG,YAAa,KAAMtI,GAAE4S,MAGtDzQ,KAAKsE,SAAS2C,QACdjH,KAAKsE,SAAS4C,aAAa,iBAAiB,GAE5CrJ,GAAEmC,KAAK4P,OAAOzI,YAAYhJ,IAC1BN,GAAEmH,GACCmC,YAAYhJ,IACZ0D,QAAQhE,GAAEK,MAAMA,GAAMuO,MAAO7B,QAvLbrG,EA0LrBO,QA1LqB,WA2LnBjH,GAAEkH,WAAW/E,KAAKsE,SAAUvG,IAC5BF,GAAEmC,KAAKsE,UAAUqF,IAAI3L,IACrBgC,KAAKsE,SAAW,MAChBtE,KAAK4P,MAAQ,QACT5P,KAAK2P,UACP3P,KAAK2P,QAAQe,UACb1Q,KAAK2P,QAAU,OAjMEpL,EAqMrBoM,OArMqB,WAsMnB3Q,KAAK8P,UAAY9P,KAAK+P,gBACD,OAAjB/P,KAAK2P,SACP3P,KAAK2P,QAAQiB,kBAxMIrM,EA8MrBmE,mBA9MqB,WA8MA,IAAA3I,EAAAC,KACnBnC,GAAEmC,KAAKsE,UAAU6B,GAAGjI,GAAMiR,MAAO,SAAC3L,GAChCA,EAAMuC,iBACNvC,EAAMqN,kBACN9Q,EAAKwG,YAlNYhC,EAsNrBiE,WAtNqB,SAsNVnG,GAaT,OAZAA,EAAMuH,EAAA,GACD5J,KAAK8Q,YAAYtS,QACjBX,GAAEmC,KAAKsE,UAAUsB,OACjBvD,GAGL1C,GAAKwC,gBACHrE,GACAuE,EACArC,KAAK8Q,YAAYrS,aAGZ4D,GAnOYkC,EAsOrBsL,gBAtOqB,WAuOnB,IAAK7P,KAAK4P,MAAO,CACf,IAAM5K,EAAShG,EAASiR,sBAAsBjQ,KAAKsE,UAC/CU,IACFhF,KAAK4P,MAAQ5K,EAAOC,cAAc3G,KAGtC,OAAO0B,KAAK4P,OA7OOrL,EAgPrBwM,cAhPqB,WAiPnB,IAAMC,EAAkBnT,GAAEmC,KAAKsE,SAAS6F,YACpC8G,EAAYlS,GAehB,OAZIiS,EAAgB3L,SAASlH,KAC3B8S,EAAYlS,GACRlB,GAAEmC,KAAK4P,OAAOvK,SAASlH,MACzB8S,EAAYlS,KAELiS,EAAgB3L,SAASlH,IAClC8S,EAAYlS,GACHiS,EAAgB3L,SAASlH,IAClC8S,EAAYlS,GACHlB,GAAEmC,KAAK4P,OAAOvK,SAASlH,MAChC8S,EAAYlS,IAEPkS,GAjQY1M,EAoQrBwL,cApQqB,WAqQnB,OAAoD,EAA7ClS,GAAEmC,KAAKsE,UAAUY,QAAQ,WAAWuE,QArQxBlF,EAwQrBgM,iBAxQqB,WAwQF,IAAA1G,EAAA7J,KACXkR,EAAa,GACgB,mBAAxBlR,KAAKuI,QAAQ+G,OACtB4B,EAAW5N,GAAK,SAACsC,GAKf,OAJAA,EAAKuL,QAALvH,EAAA,GACKhE,EAAKuL,QACLtH,EAAKtB,QAAQ+G,OAAO1J,EAAKuL,UAAY,IAEnCvL,GAGTsL,EAAW5B,OAAStP,KAAKuI,QAAQ+G,OAGnC,IAAM8B,EAAe,CACnBH,UAAWjR,KAAK+Q,gBAChBM,UAAW,CACT/B,OAAQ4B,EACR3B,KAAM,CACJ+B,QAAStR,KAAKuI,QAAQgH,MAExBgC,gBAAiB,CACfC,kBAAmBxR,KAAKuI,QAAQiH,YAWtC,MAL6B,WAAzBxP,KAAKuI,QAAQmH,UACf0B,EAAaC,UAAUI,WAAa,CAClCH,SAAS,IAGNF,GAzSYpS,EA8SdyG,iBA9Sc,SA8SGpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,GAAEmC,MAAM4F,KAAK7H,IAQxB,GALK6H,IACHA,EAAO,IAAI5G,EAASgB,KAHY,iBAAXqC,EAAsBA,EAAS,MAIpDxE,GAAEmC,MAAM4F,KAAK7H,GAAU6H,IAGH,iBAAXvD,EAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SA5TUrD,EAiUdmR,YAjUc,SAiUF3M,GACjB,IAAIA,GAhTyB,IAgTfA,EAAM0G,QACH,UAAf1G,EAAMmD,MApTqB,IAoTDnD,EAAM0G,OAKlC,IADA,IAAMwH,EAAU,GAAGtH,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KAC/C+N,EAAI,EAAGC,EAAMoF,EAAQjI,OAAQ4C,EAAIC,EAAKD,IAAK,CAClD,IAAMrH,EAAShG,EAASiR,sBAAsByB,EAAQrF,IAChDsF,EAAU9T,GAAE6T,EAAQrF,IAAIzG,KAAK7H,IAC7B6M,EAAgB,CACpBA,cAAe8G,EAAQrF,IAOzB,GAJI7I,GAAwB,UAAfA,EAAMmD,OACjBiE,EAAcgH,WAAapO,GAGxBmO,EAAL,CAIA,IAAME,EAAeF,EAAQ/B,MAC7B,GAAK/R,GAAEmH,GAAQK,SAASlH,OAIpBqF,IAAyB,UAAfA,EAAMmD,MAChB,kBAAkBxD,KAAKK,EAAMK,OAAOoG,UAA2B,UAAfzG,EAAMmD,MA9U/B,IA8UmDnD,EAAM0G,QAChFrM,GAAEiJ,SAAS9B,EAAQxB,EAAMK,SAF7B,CAMA,IAAMiO,EAAYjU,GAAEK,MAAMA,GAAMwO,KAAM9B,GACtC/M,GAAEmH,GAAQnD,QAAQiQ,GACdA,EAAUlN,uBAMV,iBAAkBnE,SAASsJ,iBAC7BlM,GAAE4C,SAAS+P,MAAMnF,WAAW1B,IAAI,YAAa,KAAM9L,GAAE4S,MAGvDiB,EAAQrF,GAAGnF,aAAa,gBAAiB,SAEzCrJ,GAAEgU,GAAczM,YAAYjH,IAC5BN,GAAEmH,GACCI,YAAYjH,IACZ0D,QAAQhE,GAAEK,MAAMA,GAAMyO,OAAQ/B,SAnXhB5L,EAuXdiR,sBAvXc,SAuXQrP,GAC3B,IAAIoE,EACEnE,EAAWlB,GAAKgB,uBAAuBC,GAM7C,OAJIC,IACFmE,EAASvE,SAASwE,cAAcpE,IAG3BmE,GAAUpE,EAAQuJ,YA/XNnL,EAmYd+S,uBAnYc,SAmYSvO,GAQ5B,IAAI,kBAAkBL,KAAKK,EAAMK,OAAOoG,WA7XX,KA8XzBzG,EAAM0G,OA/XmB,KA+XQ1G,EAAM0G,QA3Xd,KA4X1B1G,EAAM0G,OA7XoB,KA6XY1G,EAAM0G,OAC3CrM,GAAE2F,EAAMK,QAAQqB,QAAQ5G,IAAemL,SAAW3K,GAAeqE,KAAKK,EAAM0G,UAIhF1G,EAAMuC,iBACNvC,EAAMqN,mBAEF7Q,KAAKgQ,WAAYnS,GAAEmC,MAAMqF,SAASlH,KAAtC,CAIA,IAAM6G,EAAWhG,EAASiR,sBAAsBjQ,MAC1CkQ,EAAWrS,GAAEmH,GAAQK,SAASlH,IAEpC,IAAK+R,GA/YwB,KA+YX1M,EAAM0G,OA9YK,KA8YuB1G,EAAM0G,UACrDgG,GAhZwB,KAgZX1M,EAAM0G,OA/YK,KA+YuB1G,EAAM0G,OAD1D,CAWA,IAAM8H,EAAQ,GAAG5H,MAAMzH,KAAKqC,EAAOqF,iBAAiB/L,KAEpD,GAAqB,IAAjB0T,EAAMvI,OAAV,CAIA,IAAIH,EAAQ0I,EAAM7Q,QAAQqC,EAAMK,QA7ZH,KA+ZzBL,EAAM0G,OAAsC,EAARZ,GACtCA,IA/Z2B,KAkazB9F,EAAM0G,OAAgCZ,EAAQ0I,EAAMvI,OAAS,GAC/DH,IAGEA,EAAQ,IACVA,EAAQ,GAGV0I,EAAM1I,GAAOrC,aA/Bb,CAEE,GAjZ2B,KAiZvBzD,EAAM0G,MAA0B,CAClC,IAAM3D,EAASvB,EAAOC,cAAc3G,IACpCT,GAAE0I,GAAQ1E,QAAQ,SAGpBhE,GAAEmC,MAAM6B,QAAQ,YAnaCmE,EAAAhH,EAAA,KAAA,CAAA,CAAAiH,IAAA,UAAAC,IAAA,WAkGnB,MA1F6B,UARV,CAAAD,IAAA,UAAAC,IAAA,WAsGnB,OAAO1H,KAtGY,CAAAyH,IAAA,cAAAC,IAAA,WA0GnB,OAAOzH,OA1GYO,EAAA,GAqcvBnB,GAAE4C,UACC0F,GAAGjI,GAAMkR,iBAAkB9Q,GAAsBU,GAAS+S,wBAC1D5L,GAAGjI,GAAMkR,iBAAkB9Q,GAAeU,GAAS+S,wBACnD5L,GAAMjI,GAAMmG,eAHf,IAGiCnG,GAAMmR,eAAkBrQ,GAASmR,aAC/DhK,GAAGjI,GAAMmG,eAAgB/F,GAAsB,SAAUkF,GACxDA,EAAMuC,iBACNvC,EAAMqN,kBACN7R,GAASyG,iBAAiB9C,KAAK9E,GAAEmC,MAAO,YAEzCmG,GAAGjI,GAAMmG,eAAgB/F,GAAqB,SAAC2T,GAC9CA,EAAEpB,oBASNhT,GAAEyF,GAAGxF,IAAQkB,GAASyG,iBACtB5H,GAAEyF,GAAGxF,IAAMsI,YAAcpH,GACzBnB,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNe,GAASyG,kBAGXzG,ICheHC,IAOEnB,GAAqB,QAGrBE,GAAS,KADTD,GAAqB,YAGrBE,IAZQJ,GAsjBbA,GA1iB4ByF,GAAGxF,IAG1BU,GAAU,CACd0T,UAAW,EACX5K,UAAW,EACXL,OAAW,EACX0G,MAAW,GAGPlP,GAAc,CAClByT,SAAW,mBACX5K,SAAW,UACXL,MAAW,UACX0G,KAAW,WAGPzP,GAAQ,CACZwO,KAAI,OAAuB1O,GAC3B2O,OAAM,SAAuB3O,GAC7BwO,KAAI,OAAuBxO,GAC3ByO,MAAK,QAAuBzO,GAC5BmU,QAAO,UAAuBnU,GAC9BoU,OAAM,SAAuBpU,GAC7BqU,cAAa,gBAAuBrU,GACpCsU,gBAAe,kBAAuBtU,GACtCuU,gBAAe,kBAAuBvU,GACtCwU,kBAAiB,oBAAuBxU,GACxCqG,eAAc,QAAcrG,GA7BH,aAgCrBG,GACiB,0BADjBA,GAEiB,iBAFjBA,GAGiB,aAHjBA,GAIiB,OAJjBA,GAKiB,OAGjBG,GACiB,gBADjBA,GAEiB,wBAFjBA,GAGiB,yBAHjBA,GAIiB,oDAJjBA,GAKiB,cASjBW,GAjEc,WAkElB,SAAAA,EAAY2B,EAASyB,GACnBrC,KAAKuI,QAAuBvI,KAAKwI,WAAWnG,GAC5CrC,KAAKsE,SAAuB1D,EAC5BZ,KAAKyS,QAAuB7R,EAAQqE,cAAc3G,IAClD0B,KAAK0S,UAAuB,KAC5B1S,KAAK2S,UAAuB,EAC5B3S,KAAK4S,oBAAuB,EAC5B5S,KAAK6S,sBAAuB,EAC5B7S,KAAK8S,gBAAuB,EA1EZ,IAAAvO,EAAAtF,EAAAwD,UAAA,OAAA8B,EAyFlBgC,OAzFkB,SAyFXqE,GACL,OAAO5K,KAAK2S,SAAW3S,KAAK0N,OAAS1N,KAAK2N,KAAK/C,IA1F/BrG,EA6FlBoJ,KA7FkB,SA6Fb/C,GAAe,IAAA7K,EAAAC,KAClB,IAAIA,KAAK4M,mBAAoB5M,KAAK2S,SAAlC,CAII9U,GAAEmC,KAAKsE,UAAUe,SAASlH,MAC5B6B,KAAK4M,kBAAmB,GAG1B,IAAMwD,EAAYvS,GAAEK,MAAMA,GAAMsO,KAAM,CACpC5B,cAAAA,IAGF/M,GAAEmC,KAAKsE,UAAUzC,QAAQuO,GAErBpQ,KAAK2S,UAAYvC,EAAUxL,uBAI/B5E,KAAK2S,UAAW,EAEhB3S,KAAK+S,kBACL/S,KAAKgT,gBAELhT,KAAKiT,gBAELpV,GAAE4C,SAAS+P,MAAMlF,SAASnN,IAE1B6B,KAAKkT,kBACLlT,KAAKmT,kBAELtV,GAAEmC,KAAKsE,UAAU6B,GACfjI,GAAMmU,cACN/T,GACA,SAACkF,GAAD,OAAWzD,EAAK2N,KAAKlK,KAGvB3F,GAAEmC,KAAKyS,SAAStM,GAAGjI,GAAMsU,kBAAmB,WAC1C3U,GAAEkC,EAAKuE,UAAUpE,IAAIhC,GAAMqU,gBAAiB,SAAC/O,GACvC3F,GAAE2F,EAAMK,QAAQC,GAAG/D,EAAKuE,YAC1BvE,EAAK8S,sBAAuB,OAKlC7S,KAAKoT,cAAc,WAAA,OAAMrT,EAAKsT,aAAazI,QA1I3BrG,EA6IlBmJ,KA7IkB,SA6IblK,GAAO,IAAAqG,EAAA7J,KAKV,GAJIwD,GACFA,EAAMuC,kBAGJ/F,KAAK4M,kBAAqB5M,KAAK2S,SAAnC,CAIA,IAAMb,EAAYjU,GAAEK,MAAMA,GAAMwO,MAIhC,GAFA7O,GAAEmC,KAAKsE,UAAUzC,QAAQiQ,GAEpB9R,KAAK2S,WAAYb,EAAUlN,qBAAhC,CAIA5E,KAAK2S,UAAW,EAChB,IAAMW,EAAazV,GAAEmC,KAAKsE,UAAUe,SAASlH,IAiB7C,GAfImV,IACFtT,KAAK4M,kBAAmB,GAG1B5M,KAAKkT,kBACLlT,KAAKmT,kBAELtV,GAAE4C,UAAUkJ,IAAIzL,GAAMiU,SAEtBtU,GAAEmC,KAAKsE,UAAUc,YAAYjH,IAE7BN,GAAEmC,KAAKsE,UAAUqF,IAAIzL,GAAMmU,eAC3BxU,GAAEmC,KAAKyS,SAAS9I,IAAIzL,GAAMsU,mBAGtBc,EAAY,CACd,IAAM/R,EAAsB5B,GAAK2B,iCAAiCtB,KAAKsE,UAEvEzG,GAAEmC,KAAKsE,UACJpE,IAAIP,GAAKC,eAAgB,SAAC4D,GAAD,OAAWqG,EAAK0J,WAAW/P,KACpDD,qBAAqBhC,QAExBvB,KAAKuT,gBAvLShP,EA2LlBO,QA3LkB,WA4LhBjH,GAAEkH,WAAW/E,KAAKsE,SAAUvG,IAE5BF,GAAEsO,OAAQ1L,SAAUT,KAAKsE,SAAUtE,KAAK0S,WAAW/I,IAAI3L,IAEvDgC,KAAKuI,QAAuB,KAC5BvI,KAAKsE,SAAuB,KAC5BtE,KAAKyS,QAAuB,KAC5BzS,KAAK0S,UAAuB,KAC5B1S,KAAK2S,SAAuB,KAC5B3S,KAAK4S,mBAAuB,KAC5B5S,KAAK6S,qBAAuB,KAC5B7S,KAAK8S,gBAAuB,MAvMZvO,EA0MlBiP,aA1MkB,WA2MhBxT,KAAKiT,iBA3MW1O,EAgNlBiE,WAhNkB,SAgNPnG,GAMT,OALAA,EAAMuH,EAAA,GACDpL,GACA6D,GAEL1C,GAAKwC,gBAAgBrE,GAAMuE,EAAQ5D,IAC5B4D,GAtNSkC,EAyNlB8O,aAzNkB,SAyNLzI,GAAe,IAAAa,EAAAzL,KACpBsT,EAAazV,GAAEmC,KAAKsE,UAAUe,SAASlH,IAExC6B,KAAKsE,SAAS6F,YAChBnK,KAAKsE,SAAS6F,WAAWjI,WAAauR,KAAKC,cAE5CjT,SAAS+P,KAAKmD,YAAY3T,KAAKsE,UAGjCtE,KAAKsE,SAAS4J,MAAMwB,QAAU,QAC9B1P,KAAKsE,SAASsP,gBAAgB,eAC9B5T,KAAKsE,SAASuP,UAAY,EAEtBP,GACF3T,GAAKgC,OAAO3B,KAAKsE,UAGnBzG,GAAEmC,KAAKsE,UAAUgH,SAASnN,IAEtB6B,KAAKuI,QAAQtB,OACfjH,KAAK8T,gBAGP,IAAMC,EAAalW,GAAEK,MAAMA,GAAMuO,MAAO,CACtC7B,cAAAA,IAGIoJ,EAAqB,WACrBvI,EAAKlD,QAAQtB,OACfwE,EAAKnH,SAAS2C,QAEhBwE,EAAKmB,kBAAmB,EACxB/O,GAAE4N,EAAKnH,UAAUzC,QAAQkS,IAG3B,GAAIT,EAAY,CACd,IAAM/R,EAAsB5B,GAAK2B,iCAAiCtB,KAAKsE,UAEvEzG,GAAEmC,KAAKyS,SACJvS,IAAIP,GAAKC,eAAgBoU,GACzBzQ,qBAAqBhC,QAExByS,KAnQczP,EAuQlBuP,cAvQkB,WAuQF,IAAAG,EAAAjU,KACdnC,GAAE4C,UACCkJ,IAAIzL,GAAMiU,SACVhM,GAAGjI,GAAMiU,QAAS,SAAC3O,GACd/C,WAAa+C,EAAMK,QACnBoQ,EAAK3P,WAAad,EAAMK,QACsB,IAA9ChG,GAAEoW,EAAK3P,UAAU4P,IAAI1Q,EAAMK,QAAQ4F,QACrCwK,EAAK3P,SAAS2C,WA9QJ1C,EAmRlB2O,gBAnRkB,WAmRA,IAAAiB,EAAAnU,KACZA,KAAK2S,UAAY3S,KAAKuI,QAAQjB,SAChCzJ,GAAEmC,KAAKsE,UAAU6B,GAAGjI,GAAMoU,gBAAiB,SAAC9O,GAxQvB,KAyQfA,EAAM0G,QACR1G,EAAMuC,iBACNoO,EAAKzG,UAGC1N,KAAK2S,UACf9U,GAAEmC,KAAKsE,UAAUqF,IAAIzL,GAAMoU,kBA5Rb/N,EAgSlB4O,gBAhSkB,WAgSA,IAAAiB,EAAApU,KACZA,KAAK2S,SACP9U,GAAEsO,QAAQhG,GAAGjI,GAAMkU,OAAQ,SAAC5O,GAAD,OAAW4Q,EAAKZ,aAAahQ,KAExD3F,GAAEsO,QAAQxC,IAAIzL,GAAMkU,SApSN7N,EAwSlBgP,WAxSkB,WAwSL,IAAAc,EAAArU,KACXA,KAAKsE,SAAS4J,MAAMwB,QAAU,OAC9B1P,KAAKsE,SAAS4C,aAAa,eAAe,GAC1ClH,KAAK4M,kBAAmB,EACxB5M,KAAKoT,cAAc,WACjBvV,GAAE4C,SAAS+P,MAAMpL,YAAYjH,IAC7BkW,EAAKC,oBACLD,EAAKE,kBACL1W,GAAEwW,EAAK/P,UAAUzC,QAAQ3D,GAAMyO,WAhTjBpI,EAoTlBiQ,gBApTkB,WAqTZxU,KAAK0S,YACP7U,GAAEmC,KAAK0S,WAAWlN,SAClBxF,KAAK0S,UAAY,OAvTHnO,EA2TlB6O,cA3TkB,SA2TJqB,GAAU,IAAAC,EAAA1U,KAChB2U,EAAU9W,GAAEmC,KAAKsE,UAAUe,SAASlH,IACtCA,GAAiB,GAErB,GAAI6B,KAAK2S,UAAY3S,KAAKuI,QAAQ2J,SAAU,CA+B1C,GA9BAlS,KAAK0S,UAAYjS,SAASmU,cAAc,OACxC5U,KAAK0S,UAAUmC,UAAY1W,GAEvBwW,GACF3U,KAAK0S,UAAU7L,UAAUiO,IAAIH,GAG/B9W,GAAEmC,KAAK0S,WAAWqC,SAAStU,SAAS+P,MAEpC3S,GAAEmC,KAAKsE,UAAU6B,GAAGjI,GAAMmU,cAAe,SAAC7O,GACpCkR,EAAK7B,qBACP6B,EAAK7B,sBAAuB,EAG1BrP,EAAMK,SAAWL,EAAMsL,gBAGG,WAA1B4F,EAAKnM,QAAQ2J,SACfwC,EAAKpQ,SAAS2C,QAEdyN,EAAKhH,UAILiH,GACFhV,GAAKgC,OAAO3B,KAAK0S,WAGnB7U,GAAEmC,KAAK0S,WAAWpH,SAASnN,KAEtBsW,EACH,OAGF,IAAKE,EAEH,YADAF,IAIF,IAAMO,EAA6BrV,GAAK2B,iCAAiCtB,KAAK0S,WAE9E7U,GAAEmC,KAAK0S,WACJxS,IAAIP,GAAKC,eAAgB6U,GACzBlR,qBAAqByR,QACnB,IAAKhV,KAAK2S,UAAY3S,KAAK0S,UAAW,CAC3C7U,GAAEmC,KAAK0S,WAAWtN,YAAYjH,IAE9B,IAAM8W,EAAiB,WACrBP,EAAKF,kBACDC,GACFA,KAIJ,GAAI5W,GAAEmC,KAAKsE,UAAUe,SAASlH,IAAiB,CAC7C,IAAM6W,EAA6BrV,GAAK2B,iCAAiCtB,KAAK0S,WAE9E7U,GAAEmC,KAAK0S,WACJxS,IAAIP,GAAKC,eAAgBqV,GACzB1R,qBAAqByR,QAExBC,SAEOR,GACTA,KAhYclQ,EAyYlB0O,cAzYkB,WA0YhB,IAAMiC,EACJlV,KAAKsE,SAAS6Q,aAAe1U,SAASsJ,gBAAgBqL,cAEnDpV,KAAK4S,oBAAsBsC,IAC9BlV,KAAKsE,SAAS4J,MAAMmH,YAAiBrV,KAAK8S,gBAA1C,MAGE9S,KAAK4S,qBAAuBsC,IAC9BlV,KAAKsE,SAAS4J,MAAMoH,aAAkBtV,KAAK8S,gBAA3C,OAlZcvO,EAsZlB+P,kBAtZkB,WAuZhBtU,KAAKsE,SAAS4J,MAAMmH,YAAc,GAClCrV,KAAKsE,SAAS4J,MAAMoH,aAAe,IAxZnB/Q,EA2ZlBwO,gBA3ZkB,WA4ZhB,IAAMwC,EAAO9U,SAAS+P,KAAKlC,wBAC3BtO,KAAK4S,mBAAqB2C,EAAKC,KAAOD,EAAKE,MAAQtJ,OAAOuJ,WAC1D1V,KAAK8S,gBAAkB9S,KAAK2V,sBA9ZZpR,EAialByO,cAjakB,WAiaF,IAAA4C,EAAA5V,KACd,GAAIA,KAAK4S,mBAAoB,CAG3B,IAAMiD,EAAe,GAAGzL,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KACvDwX,EAAgB,GAAG1L,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KAG9DT,GAAEgY,GAAcnQ,KAAK,SAAC4D,EAAO1I,GAC3B,IAAMmV,EAAgBnV,EAAQsN,MAAMoH,aAC9BU,EAAoBnY,GAAE+C,GAASY,IAAI,iBACzC3D,GAAE+C,GACCgF,KAAK,gBAAiBmQ,GACtBvU,IAAI,gBAAoBC,WAAWuU,GAAqBJ,EAAK9C,gBAFhE,QAMFjV,GAAEiY,GAAepQ,KAAK,SAAC4D,EAAO1I,GAC5B,IAAMqV,EAAerV,EAAQsN,MAAMgI,YAC7BC,EAAmBtY,GAAE+C,GAASY,IAAI,gBACxC3D,GAAE+C,GACCgF,KAAK,eAAgBqQ,GACrBzU,IAAI,eAAmBC,WAAW0U,GAAoBP,EAAK9C,gBAF9D,QAMF,IAAMiD,EAAgBtV,SAAS+P,KAAKtC,MAAMoH,aACpCU,EAAoBnY,GAAE4C,SAAS+P,MAAMhP,IAAI,iBAC/C3D,GAAE4C,SAAS+P,MACR5K,KAAK,gBAAiBmQ,GACtBvU,IAAI,gBAAoBC,WAAWuU,GAAqBhW,KAAK8S,gBAFhE,QA7bcvO,EAmclBgQ,gBAnckB,WAqchB,IAAMsB,EAAe,GAAGzL,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KAC7DT,GAAEgY,GAAcnQ,KAAK,SAAC4D,EAAO1I,GAC3B,IAAMwV,EAAUvY,GAAE+C,GAASgF,KAAK,iBAChC/H,GAAE+C,GAASmE,WAAW,iBACtBnE,EAAQsN,MAAMoH,aAAec,GAAoB,KAInD,IAAMC,EAAW,GAAGjM,MAAMzH,KAAKlC,SAAS4J,iBAAT,GAA6B/L,KAC5DT,GAAEwY,GAAU3Q,KAAK,SAAC4D,EAAO1I,GACvB,IAAM0V,EAASzY,GAAE+C,GAASgF,KAAK,gBACT,oBAAX0Q,GACTzY,GAAE+C,GAASY,IAAI,eAAgB8U,GAAQvR,WAAW,kBAKtD,IAAMqR,EAAUvY,GAAE4C,SAAS+P,MAAM5K,KAAK,iBACtC/H,GAAE4C,SAAS+P,MAAMzL,WAAW,iBAC5BtE,SAAS+P,KAAKtC,MAAMoH,aAAec,GAAoB,IAxdvC7R,EA2dlBoR,mBA3dkB,WA4dhB,IAAMY,EAAY9V,SAASmU,cAAc,OACzC2B,EAAU1B,UAAY1W,GACtBsC,SAAS+P,KAAKmD,YAAY4C,GAC1B,IAAMC,EAAiBD,EAAUjI,wBAAwBmI,MAAQF,EAAUG,YAE3E,OADAjW,SAAS+P,KAAKmG,YAAYJ,GACnBC,GAjeSvX,EAseXwG,iBAteW,SAseMpD,EAAQuI,GAC9B,OAAO5K,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,GAAEmC,MAAM4F,KAAK7H,IAClBwK,EAAOqB,EAAA,GACRpL,GACAX,GAAEmC,MAAM4F,OACU,iBAAXvD,GAAuBA,EAASA,EAAS,IAQrD,GALKuD,IACHA,EAAO,IAAI3G,EAAMe,KAAMuI,GACvB1K,GAAEmC,MAAM4F,KAAK7H,GAAU6H,IAGH,iBAAXvD,EAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,GAAQuI,QACJrC,EAAQoF,MACjB/H,EAAK+H,KAAK/C,MA1fE5E,EAAA/G,EAAA,KAAA,CAAA,CAAAgH,IAAA,UAAAC,IAAA,WAgFhB,MAxEuB,UARP,CAAAD,IAAA,UAAAC,IAAA,WAoFhB,OAAO1H,OApFSS,EAAA,GAsgBpBpB,GAAE4C,UAAU0F,GAAGjI,GAAMmG,eAAgB/F,GAAsB,SAAUkF,GAAO,IACtEK,EADsE+S,EAAA5W,KAEpEa,EAAWlB,GAAKgB,uBAAuBX,MAEzCa,IACFgD,EAASpD,SAASwE,cAAcpE,IAGlC,IAAMwB,EAASxE,GAAEgG,GAAQ+B,KAAK7H,IAC1B,SADW6L,EAAA,GAER/L,GAAEgG,GAAQ+B,OACV/H,GAAEmC,MAAM4F,QAGM,MAAjB5F,KAAKiK,SAAoC,SAAjBjK,KAAKiK,SAC/BzG,EAAMuC,iBAGR,IAAMkJ,EAAUpR,GAAEgG,GAAQ3D,IAAIhC,GAAMsO,KAAM,SAAC4D,GACrCA,EAAUxL,sBAKdqK,EAAQ/O,IAAIhC,GAAMyO,OAAQ,WACpB9O,GAAE+Y,GAAM9S,GAAG,aACb8S,EAAK3P,YAKXhI,GAAMwG,iBAAiB9C,KAAK9E,GAAEgG,GAASxB,EAAQrC,QASjDnC,GAAEyF,GAAGxF,IAAQmB,GAAMwG,iBACnB5H,GAAEyF,GAAGxF,IAAMsI,YAAcnH,GACzBpB,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNgB,GAAMwG,kBAGRxG,ICpjBHK,IAOExB,GAAqB,UAGrBE,GAAS,KADTD,GAAqB,cAErBE,IAXUJ,GAusBfA,GA5rB4ByF,GAAGxF,IAC1BoB,GAAqB,aACrBC,GAAqB,IAAI+D,OAAJ,UAAqBhE,GAArB,OAAyC,KAyB9DV,GAAU,CACdqY,WAAsB,EACtBC,SAAsB,uGAGtBjV,QAAsB,cACtBkV,MAAsB,GACtBC,MAAsB,EACtBC,OAhBIlY,GAAgB,CACpBmY,KAAS,OACTC,IAAS,MACTC,MAAS,QACTC,OAAS,SACTC,KAAS,SAYTzW,WAhCIpC,GAAc,CAClBoY,UAAsB,UACtBC,SAAsB,SACtBC,MAAsB,4BACtBlV,QAAsB,SACtBmV,MAAsB,kBACtBC,KAAsB,UACtBpW,SAAsB,mBACtBoQ,UAAsB,oBACtB3B,OAAsB,kBACtBiI,UAAsB,2BACtBC,kBAAsB,iBACtBhI,SAAsB,qBAqBtByB,UAAsB,MACtB3B,OAAsB,EACtBiI,WAAsB,EACtBC,kBAAsB,OACtBhI,SAAsB,gBAGlBpQ,GAEG,MAGHlB,GAAQ,CACZwO,KAAI,OAAgB1O,GACpB2O,OAAM,SAAgB3O,GACtBwO,MARIpN,GACG,QAOapB,GACpByO,MAAK,QAAgBzO,GACrByZ,SAAQ,WAAgBzZ,GACxBmR,MAAK,QAAgBnR,GACrBmU,QAAO,UAAgBnU,GACvB0Z,SAAQ,WAAgB1Z,GACxB6J,WAAU,aAAgB7J,GAC1B8J,WAAU,aAAgB9J,IAGtBG,GACG,OADHA,GAEG,OAGHG,GAEY,iBAFZA,GAGY,SAGZe,GACK,QADLA,GAEK,QAFLA,GAGK,QAHLA,GAIK,SAULC,GAlGgB,WAmGpB,SAAAA,EAAYsB,EAASyB,GAKnB,GAAsB,oBAAXgO,EACT,MAAM,IAAIrE,UAAU,gEAItBhM,KAAK2X,YAAiB,EACtB3X,KAAK4X,SAAiB,EACtB5X,KAAK6X,YAAiB,GACtB7X,KAAK8X,eAAiB,GACtB9X,KAAK2P,QAAiB,KAGtB3P,KAAKY,QAAUA,EACfZ,KAAKqC,OAAUrC,KAAKwI,WAAWnG,GAC/BrC,KAAK+X,IAAU,KAEf/X,KAAKgY,gBAxHa,IAAAzT,EAAAjF,EAAAmD,UAAA,OAAA8B,EA2JpB0T,OA3JoB,WA4JlBjY,KAAK2X,YAAa,GA5JApT,EA+JpB2T,QA/JoB,WAgKlBlY,KAAK2X,YAAa,GAhKApT,EAmKpB4T,cAnKoB,WAoKlBnY,KAAK2X,YAAc3X,KAAK2X,YApKNpT,EAuKpBgC,OAvKoB,SAuKb/C,GACL,GAAKxD,KAAK2X,WAIV,GAAInU,EAAO,CACT,IAAM4U,EAAUpY,KAAK8Q,YAAY/S,SAC7B4T,EAAU9T,GAAE2F,EAAMsL,eAAelJ,KAAKwS,GAErCzG,IACHA,EAAU,IAAI3R,KAAK8Q,YACjBtN,EAAMsL,cACN9O,KAAKqY,sBAEPxa,GAAE2F,EAAMsL,eAAelJ,KAAKwS,EAASzG,IAGvCA,EAAQmG,eAAeQ,OAAS3G,EAAQmG,eAAeQ,MAEnD3G,EAAQ4G,uBACV5G,EAAQ6G,OAAO,KAAM7G,GAErBA,EAAQ8G,OAAO,KAAM9G,OAElB,CACL,GAAI9T,GAAEmC,KAAK0Y,iBAAiBrT,SAASlH,IAEnC,YADA6B,KAAKyY,OAAO,KAAMzY,MAIpBA,KAAKwY,OAAO,KAAMxY,QArMFuE,EAyMpBO,QAzMoB,WA0MlBkF,aAAahK,KAAK4X,UAElB/Z,GAAEkH,WAAW/E,KAAKY,QAASZ,KAAK8Q,YAAY/S,UAE5CF,GAAEmC,KAAKY,SAAS+I,IAAI3J,KAAK8Q,YAAY9S,WACrCH,GAAEmC,KAAKY,SAASsE,QAAQ,UAAUyE,IAAI,iBAElC3J,KAAK+X,KACPla,GAAEmC,KAAK+X,KAAKvS,SAGdxF,KAAK2X,WAAiB,KACtB3X,KAAK4X,SAAiB,KACtB5X,KAAK6X,YAAiB,MACtB7X,KAAK8X,eAAiB,QAClB9X,KAAK2P,SACP3P,KAAK2P,QAAQe,UAGf1Q,KAAK2P,QAAU,KACf3P,KAAKY,QAAU,KACfZ,KAAKqC,OAAU,KACfrC,KAAK+X,IAAU,MAhOGxT,EAmOpBoJ,KAnOoB,WAmOb,IAAA5N,EAAAC,KACL,GAAuC,SAAnCnC,GAAEmC,KAAKY,SAASY,IAAI,WACtB,MAAM,IAAI4B,MAAM,uCAGlB,IAAMgN,EAAYvS,GAAEK,MAAM8B,KAAK8Q,YAAY5S,MAAMsO,MACjD,GAAIxM,KAAK2Y,iBAAmB3Y,KAAK2X,WAAY,CAC3C9Z,GAAEmC,KAAKY,SAASiB,QAAQuO,GAExB,IAAMwI,EAAa/a,GAAEiJ,SACnB9G,KAAKY,QAAQiY,cAAc9O,gBAC3B/J,KAAKY,SAGP,GAAIwP,EAAUxL,uBAAyBgU,EACrC,OAGF,IAAMb,EAAQ/X,KAAK0Y,gBACbI,EAAQnZ,GAAKU,OAAOL,KAAK8Q,YAAYhT,MAE3Cia,EAAI7Q,aAAa,KAAM4R,GACvB9Y,KAAKY,QAAQsG,aAAa,mBAAoB4R,GAE9C9Y,KAAK+Y,aAED/Y,KAAKqC,OAAOwU,WACdhZ,GAAEka,GAAKzM,SAASnN,IAGlB,IAAM8S,EAA8C,mBAA1BjR,KAAKqC,OAAO4O,UAClCjR,KAAKqC,OAAO4O,UAAUtO,KAAK3C,KAAM+X,EAAK/X,KAAKY,SAC3CZ,KAAKqC,OAAO4O,UAEV+H,EAAahZ,KAAKiZ,eAAehI,GACvCjR,KAAKkZ,mBAAmBF,GAExB,IAAMzB,GAAsC,IAA1BvX,KAAKqC,OAAOkV,UAAsB9W,SAAS+P,KAAO3S,GAAE4C,UAAU0Y,KAAKnZ,KAAKqC,OAAOkV,WAEjG1Z,GAAEka,GAAKnS,KAAK5F,KAAK8Q,YAAY/S,SAAUiC,MAElCnC,GAAEiJ,SAAS9G,KAAKY,QAAQiY,cAAc9O,gBAAiB/J,KAAK+X,MAC/Dla,GAAEka,GAAKhD,SAASwC,GAGlB1Z,GAAEmC,KAAKY,SAASiB,QAAQ7B,KAAK8Q,YAAY5S,MAAMuZ,UAE/CzX,KAAK2P,QAAU,IAAIU,EAAOrQ,KAAKY,QAASmX,EAAK,CAC3C9G,UAAW+H,EACX3H,UAAW,CACT/B,OAAQ,CACNA,OAAQtP,KAAKqC,OAAOiN,QAEtBC,KAAM,CACJ6J,SAAUpZ,KAAKqC,OAAOmV,mBAExB6B,MAAO,CACLzY,QAAStC,IAEXiT,gBAAiB,CACfC,kBAAmBxR,KAAKqC,OAAOmN,WAGnC8J,SAAU,SAAC1T,GACLA,EAAK2T,oBAAsB3T,EAAKqL,WAClClR,EAAKyZ,6BAA6B5T,IAGtC6T,SAAU,SAAC7T,GACT7F,EAAKyZ,6BAA6B5T,MAItC/H,GAAEka,GAAKzM,SAASnN,IAMZ,iBAAkBsC,SAASsJ,iBAC7BlM,GAAE4C,SAAS+P,MAAMnF,WAAWlF,GAAG,YAAa,KAAMtI,GAAE4S,MAGtD,IAAMiJ,EAAW,WACX3Z,EAAKsC,OAAOwU,WACd9W,EAAK4Z,iBAEP,IAAMC,EAAiB7Z,EAAK8X,YAC5B9X,EAAK8X,YAAkB,KAEvBha,GAAEkC,EAAKa,SAASiB,QAAQ9B,EAAK+Q,YAAY5S,MAAMuO,OAE3CmN,IAAmBxa,IACrBW,EAAK0Y,OAAO,KAAM1Y,IAItB,GAAIlC,GAAEmC,KAAK+X,KAAK1S,SAASlH,IAAiB,CACxC,IAAMoD,EAAqB5B,GAAK2B,iCAAiCtB,KAAK+X,KAEtEla,GAAEmC,KAAK+X,KACJ7X,IAAIP,GAAKC,eAAgB8Z,GACzBnW,qBAAqBhC,QAExBmY,MA3UcnV,EAgVpBmJ,KAhVoB,SAgVf+G,GAAU,IAAA5K,EAAA7J,KACP+X,EAAY/X,KAAK0Y,gBACjB5G,EAAYjU,GAAEK,MAAM8B,KAAK8Q,YAAY5S,MAAMwO,MAC3CgN,EAAW,WACX7P,EAAKgO,cAAgBzY,IAAmB2Y,EAAI5N,YAC9C4N,EAAI5N,WAAWwM,YAAYoB,GAG7BlO,EAAKgQ,iBACLhQ,EAAKjJ,QAAQgT,gBAAgB,oBAC7B/V,GAAEgM,EAAKjJ,SAASiB,QAAQgI,EAAKiH,YAAY5S,MAAMyO,QAC1B,OAAjB9C,EAAK8F,SACP9F,EAAK8F,QAAQe,UAGX+D,GACFA,KAMJ,GAFA5W,GAAEmC,KAAKY,SAASiB,QAAQiQ,IAEpBA,EAAUlN,qBAAd,CAgBA,GAZA/G,GAAEka,GAAK3S,YAAYjH,IAIf,iBAAkBsC,SAASsJ,iBAC7BlM,GAAE4C,SAAS+P,MAAMnF,WAAW1B,IAAI,YAAa,KAAM9L,GAAE4S,MAGvDzQ,KAAK8X,eAAezY,KAAiB,EACrCW,KAAK8X,eAAezY,KAAiB,EACrCW,KAAK8X,eAAezY,KAAiB,EAEjCxB,GAAEmC,KAAK+X,KAAK1S,SAASlH,IAAiB,CACxC,IAAMoD,EAAqB5B,GAAK2B,iCAAiCyW,GAEjEla,GAAEka,GACC7X,IAAIP,GAAKC,eAAgB8Z,GACzBnW,qBAAqBhC,QAExBmY,IAGF1Z,KAAK6X,YAAc,KAhYDtT,EAmYpBoM,OAnYoB,WAoYG,OAAjB3Q,KAAK2P,SACP3P,KAAK2P,QAAQiB,kBArYGrM,EA2YpBoU,cA3YoB,WA4YlB,OAAO5W,QAAQ/B,KAAK8Z,aA5YFvV,EA+YpB2U,mBA/YoB,SA+YDF,GACjBnb,GAAEmC,KAAK0Y,iBAAiBpN,SAAYpM,GAApC,IAAoD8Z,IAhZlCzU,EAmZpBmU,cAnZoB,WAqZlB,OADA1Y,KAAK+X,IAAM/X,KAAK+X,KAAOla,GAAEmC,KAAKqC,OAAOyU,UAAU,GACxC9W,KAAK+X,KArZMxT,EAwZpBwU,WAxZoB,WAyZlB,IAAMhB,EAAM/X,KAAK0Y,gBACjB1Y,KAAK+Z,kBAAkBlc,GAAEka,EAAI1N,iBAAiB/L,KAA0B0B,KAAK8Z,YAC7Ejc,GAAEka,GAAK3S,YAAejH,GAAtB,IAAwCA,KA3ZtBoG,EA8ZpBwV,kBA9ZoB,SA8ZFpU,EAAUqU,GAC1B,IAAM/C,EAAOjX,KAAKqC,OAAO4U,KACF,iBAAZ+C,IAAyBA,EAAQ9X,UAAY8X,EAAQvL,QAE1DwI,EACGpZ,GAAEmc,GAAShV,SAASlB,GAAG6B,IAC1BA,EAASsU,QAAQC,OAAOF,GAG1BrU,EAASwU,KAAKtc,GAAEmc,GAASG,QAG3BxU,EAASsR,EAAO,OAAS,QAAQ+C,IA1ajBzV,EA8apBuV,SA9aoB,WA+alB,IAAI/C,EAAQ/W,KAAKY,QAAQE,aAAa,uBAQtC,OANKiW,IACHA,EAAqC,mBAAtB/W,KAAKqC,OAAO0U,MACvB/W,KAAKqC,OAAO0U,MAAMpU,KAAK3C,KAAKY,SAC5BZ,KAAKqC,OAAO0U,OAGXA,GAvbWxS,EA4bpB0U,eA5boB,SA4bLhI,GACb,OAAOlS,GAAckS,EAAU5N,gBA7bbkB,EAgcpByT,cAhcoB,WAgcJ,IAAAvM,EAAAzL,KACGA,KAAKqC,OAAOR,QAAQH,MAAM,KAElC0Y,QAAQ,SAACvY,GAChB,GAAgB,UAAZA,EACFhE,GAAE4N,EAAK7K,SAASuF,GACdsF,EAAKqF,YAAY5S,MAAMiR,MACvB1D,EAAKpJ,OAAOxB,SACZ,SAAC2C,GAAD,OAAWiI,EAAKlF,OAAO/C,UAEpB,GAAI3B,IAAYxC,GAAgB,CACrC,IAAMgb,EAAUxY,IAAYxC,GACxBoM,EAAKqF,YAAY5S,MAAM2J,WACvB4D,EAAKqF,YAAY5S,MAAMiU,QACrBmI,EAAWzY,IAAYxC,GACzBoM,EAAKqF,YAAY5S,MAAM4J,WACvB2D,EAAKqF,YAAY5S,MAAMwZ,SAE3B7Z,GAAE4N,EAAK7K,SACJuF,GACCkU,EACA5O,EAAKpJ,OAAOxB,SACZ,SAAC2C,GAAD,OAAWiI,EAAK+M,OAAOhV,KAExB2C,GACCmU,EACA7O,EAAKpJ,OAAOxB,SACZ,SAAC2C,GAAD,OAAWiI,EAAKgN,OAAOjV,KAI7B3F,GAAE4N,EAAK7K,SAASsE,QAAQ,UAAUiB,GAChC,gBACA,WAAA,OAAMsF,EAAKiC,WAIX1N,KAAKqC,OAAOxB,SACdb,KAAKqC,OAALuH,EAAA,GACK5J,KAAKqC,OADV,CAEER,QAAS,SACThB,SAAU,KAGZb,KAAKua,aA5eWhW,EAgfpBgW,UAhfoB,WAiflB,IAAMC,SAAmBxa,KAAKY,QAAQE,aAAa,wBAC/Cd,KAAKY,QAAQE,aAAa,UACb,WAAd0Z,KACDxa,KAAKY,QAAQsG,aACX,sBACAlH,KAAKY,QAAQE,aAAa,UAAY,IAExCd,KAAKY,QAAQsG,aAAa,QAAS,MAxfnB3C,EA4fpBiU,OA5foB,SA4fbhV,EAAOmO,GACZ,IAAMyG,EAAUpY,KAAK8Q,YAAY/S,UAEjC4T,EAAUA,GAAW9T,GAAE2F,EAAMsL,eAAelJ,KAAKwS,MAG/CzG,EAAU,IAAI3R,KAAK8Q,YACjBtN,EAAMsL,cACN9O,KAAKqY,sBAEPxa,GAAE2F,EAAMsL,eAAelJ,KAAKwS,EAASzG,IAGnCnO,IACFmO,EAAQmG,eACS,YAAftU,EAAMmD,KAAqBtH,GAAgBA,KACzC,GAGFxB,GAAE8T,EAAQ+G,iBAAiBrT,SAASlH,KACrCwT,EAAQkG,cAAgBzY,GACzBuS,EAAQkG,YAAczY,IAIxB4K,aAAa2H,EAAQiG,UAErBjG,EAAQkG,YAAczY,GAEjBuS,EAAQtP,OAAO2U,OAAUrF,EAAQtP,OAAO2U,MAAMrJ,KAKnDgE,EAAQiG,SAAWzX,WAAW,WACxBwR,EAAQkG,cAAgBzY,IAC1BuS,EAAQhE,QAETgE,EAAQtP,OAAO2U,MAAMrJ,MARtBgE,EAAQhE,SA1hBQpJ,EAqiBpBkU,OAriBoB,SAqiBbjV,EAAOmO,GACZ,IAAMyG,EAAUpY,KAAK8Q,YAAY/S,UAEjC4T,EAAUA,GAAW9T,GAAE2F,EAAMsL,eAAelJ,KAAKwS,MAG/CzG,EAAU,IAAI3R,KAAK8Q,YACjBtN,EAAMsL,cACN9O,KAAKqY,sBAEPxa,GAAE2F,EAAMsL,eAAelJ,KAAKwS,EAASzG,IAGnCnO,IACFmO,EAAQmG,eACS,aAAftU,EAAMmD,KAAsBtH,GAAgBA,KAC1C,GAGFsS,EAAQ4G,yBAIZvO,aAAa2H,EAAQiG,UAErBjG,EAAQkG,YAAczY,GAEjBuS,EAAQtP,OAAO2U,OAAUrF,EAAQtP,OAAO2U,MAAMtJ,KAKnDiE,EAAQiG,SAAWzX,WAAW,WACxBwR,EAAQkG,cAAgBzY,IAC1BuS,EAAQjE,QAETiE,EAAQtP,OAAO2U,MAAMtJ,MARtBiE,EAAQjE,SAjkBQnJ,EA4kBpBgU,qBA5kBoB,WA6kBlB,IAAK,IAAM1W,KAAW7B,KAAK8X,eACzB,GAAI9X,KAAK8X,eAAejW,GACtB,OAAO,EAIX,OAAO,GAnlBW0C,EAslBpBiE,WAtlBoB,SAslBTnG,GA4BT,MArB4B,iBAN5BA,EAAMuH,EAAA,GACD5J,KAAK8Q,YAAYtS,QACjBX,GAAEmC,KAAKY,SAASgF,OACE,iBAAXvD,GAAuBA,EAASA,EAAS,KAGnC2U,QAChB3U,EAAO2U,MAAQ,CACbrJ,KAAMtL,EAAO2U,MACbtJ,KAAMrL,EAAO2U,QAIW,iBAAjB3U,EAAO0U,QAChB1U,EAAO0U,MAAQ1U,EAAO0U,MAAMhU,YAGA,iBAAnBV,EAAO2X,UAChB3X,EAAO2X,QAAU3X,EAAO2X,QAAQjX,YAGlCpD,GAAKwC,gBACHrE,GACAuE,EACArC,KAAK8Q,YAAYrS,aAGZ4D,GAlnBWkC,EAqnBpB8T,mBArnBoB,WAsnBlB,IAAMhW,EAAS,GAEf,GAAIrC,KAAKqC,OACP,IAAK,IAAM4D,KAAOjG,KAAKqC,OACjBrC,KAAK8Q,YAAYtS,QAAQyH,KAASjG,KAAKqC,OAAO4D,KAChD5D,EAAO4D,GAAOjG,KAAKqC,OAAO4D,IAKhC,OAAO5D,GAhoBWkC,EAmoBpBsV,eAnoBoB,WAooBlB,IAAMY,EAAO5c,GAAEmC,KAAK0Y,iBACdgC,EAAWD,EAAKtM,KAAK,SAASnL,MAAM7D,IACzB,OAAbub,GAAqBA,EAASjR,QAChCgR,EAAKrV,YAAYsV,EAASC,KAAK,MAvoBfpW,EA2oBpBiV,6BA3oBoB,SA2oBSoB,GAC3B,IAAMC,EAAiBD,EAAWE,SAClC9a,KAAK+X,IAAM8C,EAAeE,OAC1B/a,KAAK6Z,iBACL7Z,KAAKkZ,mBAAmBlZ,KAAKiZ,eAAe2B,EAAW3J,aA/oBrC1M,EAkpBpBoV,eAlpBoB,WAmpBlB,IAAM5B,EAAM/X,KAAK0Y,gBACXsC,EAAsBhb,KAAKqC,OAAOwU,UACA,OAApCkB,EAAIjX,aAAa,iBAGrBjD,GAAEka,GAAK3S,YAAYjH,IACnB6B,KAAKqC,OAAOwU,WAAY,EACxB7W,KAAK0N,OACL1N,KAAK2N,OACL3N,KAAKqC,OAAOwU,UAAYmE,IA5pBN1b,EAiqBbmG,iBAjqBa,SAiqBIpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,GAAEmC,MAAM4F,KAAK7H,IAClBwK,EAA4B,iBAAXlG,GAAuBA,EAE9C,IAAKuD,IAAQ,eAAezC,KAAKd,MAI5BuD,IACHA,EAAO,IAAItG,EAAQU,KAAMuI,GACzB1K,GAAEmC,MAAM4F,KAAK7H,GAAU6H,IAGH,iBAAXvD,GAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SAnrBS2D,EAAA1G,EAAA,KAAA,CAAA,CAAA2G,IAAA,UAAAC,IAAA,WA8HlB,MAtHuB,UARL,CAAAD,IAAA,UAAAC,IAAA,WAkIlB,OAAO1H,KAlIW,CAAAyH,IAAA,OAAAC,IAAA,WAsIlB,OAAOpI,KAtIW,CAAAmI,IAAA,WAAAC,IAAA,WA0IlB,OAAOnI,KA1IW,CAAAkI,IAAA,QAAAC,IAAA,WA8IlB,OAAOhI,KA9IW,CAAA+H,IAAA,YAAAC,IAAA,WAkJlB,OAAOlI,KAlJW,CAAAiI,IAAA,cAAAC,IAAA,WAsJlB,OAAOzH,OAtJWa,EAAA,GA+rBtBzB,GAAEyF,GAAGxF,IAAQwB,GAAQmG,iBACrB5H,GAAEyF,GAAGxF,IAAMsI,YAAc9G,GACzBzB,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNqB,GAAQmG,kBAGVnG,ICvsBHC,IAOEzB,GAAsB,UAGtBE,GAAS,KADTD,GAAsB,cAEtBE,IAXUJ,GA+KfA,GApK6ByF,GAAGxF,IAC3BoB,GAAsB,aACtBC,GAAsB,IAAI+D,OAAJ,UAAqBhE,GAArB,OAAyC,KAE/DV,GAAOoL,EAAA,GACRtK,GAAQd,QADA,CAEXyS,UAAY,QACZpP,QAAY,QACZmY,QAAY,GACZlD,SAAY,wIAMRrY,GAAWmL,EAAA,GACZtK,GAAQb,YADI,CAEfub,QAAU,8BAGN7b,GACG,OAIHG,GACM,kBADNA,GAEM,gBAGNJ,GAAQ,CACZwO,KAAI,OAAgB1O,GACpB2O,OAAM,SAAgB3O,GACtBwO,MAbIrO,GAEG,QAWaH,GACpByO,MAAK,QAAgBzO,GACrByZ,SAAQ,WAAgBzZ,GACxBmR,MAAK,QAAgBnR,GACrBmU,QAAO,UAAgBnU,GACvB0Z,SAAQ,WAAgB1Z,GACxB6J,WAAU,aAAgB7J,GAC1B8J,WAAU,aAAgB9J,IAStBuB,GA5DgB,SAAA0b,WAAA,SAAA1b,IAAA,OAAA0b,EAAAhX,MAAAjE,KAAAkE,YAAAlE,OAAAib,KAAA1b,gFAAA,IAAAgF,EAAAhF,EAAAkD,UAAA,OAAA8B,EA6FpBoU,cA7FoB,WA8FlB,OAAO3Y,KAAK8Z,YAAc9Z,KAAKkb,eA9Fb3W,EAiGpB2U,mBAjGoB,SAiGDF,GACjBnb,GAAEmC,KAAK0Y,iBAAiBpN,SAAYpM,GAApC,IAAoD8Z,IAlGlCzU,EAqGpBmU,cArGoB,WAuGlB,OADA1Y,KAAK+X,IAAM/X,KAAK+X,KAAOla,GAAEmC,KAAKqC,OAAOyU,UAAU,GACxC9W,KAAK+X,KAvGMxT,EA0GpBwU,WA1GoB,WA2GlB,IAAM0B,EAAO5c,GAAEmC,KAAK0Y,iBAGpB1Y,KAAK+Z,kBAAkBU,EAAKtB,KAAK7a,IAAiB0B,KAAK8Z,YACvD,IAAIE,EAAUha,KAAKkb,cACI,mBAAZlB,IACTA,EAAUA,EAAQrX,KAAK3C,KAAKY,UAE9BZ,KAAK+Z,kBAAkBU,EAAKtB,KAAK7a,IAAmB0b,GAEpDS,EAAKrV,YAAejH,GAApB,IAAsCA,KArHpBoG,EA0HpB2W,YA1HoB,WA2HlB,OAAOlb,KAAKY,QAAQE,aAAa,iBAC/Bd,KAAKqC,OAAO2X,SA5HIzV,EA+HpBsV,eA/HoB,WAgIlB,IAAMY,EAAO5c,GAAEmC,KAAK0Y,iBACdgC,EAAWD,EAAKtM,KAAK,SAASnL,MAAM7D,IACzB,OAAbub,GAAuC,EAAlBA,EAASjR,QAChCgR,EAAKrV,YAAYsV,EAASC,KAAK,MAnIfpb,EAyIbkG,iBAzIa,SAyIIpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,GAAEmC,MAAM4F,KAAK7H,IAClBwK,EAA4B,iBAAXlG,EAAsBA,EAAS,KAEtD,IAAKuD,IAAQ,eAAezC,KAAKd,MAI5BuD,IACHA,EAAO,IAAIrG,EAAQS,KAAMuI,GACzB1K,GAAEmC,MAAM4F,KAAK7H,GAAU6H,IAGH,iBAAXvD,GAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SA3JS2D,EAAAzG,EAAA,KAAA,CAAA,CAAA0G,IAAA,UAAAC,IAAA,WAgElB,MAxDwB,UARN,CAAAD,IAAA,UAAAC,IAAA,WAoElB,OAAO1H,KApEW,CAAAyH,IAAA,OAAAC,IAAA,WAwElB,OAAOpI,KAxEW,CAAAmI,IAAA,WAAAC,IAAA,WA4ElB,OAAOnI,KA5EW,CAAAkI,IAAA,QAAAC,IAAA,WAgFlB,OAAOhI,KAhFW,CAAA+H,IAAA,YAAAC,IAAA,WAoFlB,OAAOlI,KApFW,CAAAiI,IAAA,cAAAC,IAAA,WAwFlB,OAAOzH,OAxFWc,EAAA,CA4DAD,IA2GtBzB,GAAEyF,GAAGxF,IAAQyB,GAAQkG,iBACrB5H,GAAEyF,GAAGxF,IAAMsI,YAAc7G,GACzB1B,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNsB,GAAQkG,kBAGVlG,IC9KHE,IAOE3B,GAAqB,YAGrBE,GAAS,KADTD,GAAqB,gBAGrBE,IAZYJ,GA+TjBA,GAnT4ByF,GAAGxF,IAE1BU,GAAU,CACd8Q,OAAS,GACTvO,OAAS,OACT8C,OAAS,IAGLpF,GAAc,CAClB6Q,OAAS,SACTvO,OAAS,SACT8C,OAAS,oBAGL3F,GAAQ,CACZid,SAAQ,WAAmBnd,GAC3Bod,OAAM,SAAmBpd,GACzBgK,cAAa,OAAUhK,GAlBE,aAqBrBG,GACY,gBADZA,GAGY,SAGZG,GACc,sBADdA,GAEc,UAFdA,GAGc,oBAHdA,GAIc,YAJdA,GAKc,YALdA,GAMc,mBANdA,GAOc,YAPdA,GAQc,iBARdA,GASc,mBAGdkB,GACO,SADPA,GAEO,WASPC,GA7DkB,WA8DtB,SAAAA,EAAYmB,EAASyB,GAAQ,IAAAtC,EAAAC,KAC3BA,KAAKsE,SAAiB1D,EACtBZ,KAAKqb,eAAqC,SAApBza,EAAQqJ,QAAqBkC,OAASvL,EAC5DZ,KAAKuI,QAAiBvI,KAAKwI,WAAWnG,GACtCrC,KAAKqN,UAAoBrN,KAAKuI,QAAQ1E,OAAhB,IAA0BvF,GAA1B,IACG0B,KAAKuI,QAAQ1E,OADhB,IAC0BvF,GAD1B,IAEG0B,KAAKuI,QAAQ1E,OAFhB,IAE0BvF,GAChD0B,KAAKsb,SAAiB,GACtBtb,KAAKub,SAAiB,GACtBvb,KAAKwb,cAAiB,KACtBxb,KAAKyb,cAAiB,EAEtB5d,GAAEmC,KAAKqb,gBAAgBlV,GAAGjI,GAAMkd,OAAQ,SAAC5X,GAAD,OAAWzD,EAAK2b,SAASlY,KAEjExD,KAAK2b,UACL3b,KAAK0b,WA7Ee,IAAAnX,EAAA9E,EAAAgD,UAAA,OAAA8B,EA4FtBoX,QA5FsB,WA4FZ,IAAA9R,EAAA7J,KACF4b,EAAa5b,KAAKqb,iBAAmBrb,KAAKqb,eAAelP,OAC3D3M,GAAsBA,GAEpBqc,EAAuC,SAAxB7b,KAAKuI,QAAQxH,OAC9B6a,EAAa5b,KAAKuI,QAAQxH,OAExB+a,EAAaD,IAAiBrc,GAChCQ,KAAK+b,gBAAkB,EAE3B/b,KAAKsb,SAAW,GAChBtb,KAAKub,SAAW,GAEhBvb,KAAKyb,cAAgBzb,KAAKgc,mBAEV,GAAG5R,MAAMzH,KAAKlC,SAAS4J,iBAAiBrK,KAAKqN,YAG1D4O,IAAI,SAACrb,GACJ,IAAIiD,EACEqY,EAAiBvc,GAAKgB,uBAAuBC,GAMnD,GAJIsb,IACFrY,EAASpD,SAASwE,cAAciX,IAG9BrY,EAAQ,CACV,IAAMsY,EAAYtY,EAAOyK,wBACzB,GAAI6N,EAAU1F,OAAS0F,EAAUC,OAE/B,MAAO,CACLve,GAAEgG,GAAQgY,KAAgBQ,IAAMP,EAChCI,GAIN,OAAO,OAER/O,OAAO,SAACmP,GAAD,OAAUA,IACjBC,KAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE,GAAKC,EAAE,KACxBrC,QAAQ,SAACkC,GACRzS,EAAKyR,SAAShO,KAAKgP,EAAK,IACxBzS,EAAK0R,SAASjO,KAAKgP,EAAK,OAtIR/X,EA0ItBO,QA1IsB,WA2IpBjH,GAAEkH,WAAW/E,KAAKsE,SAAUvG,IAC5BF,GAAEmC,KAAKqb,gBAAgB1R,IAAI3L,IAE3BgC,KAAKsE,SAAiB,KACtBtE,KAAKqb,eAAiB,KACtBrb,KAAKuI,QAAiB,KACtBvI,KAAKqN,UAAiB,KACtBrN,KAAKsb,SAAiB,KACtBtb,KAAKub,SAAiB,KACtBvb,KAAKwb,cAAiB,KACtBxb,KAAKyb,cAAiB,MArJFlX,EA0JtBiE,WA1JsB,SA0JXnG,GAMT,GAA6B,iBAL7BA,EAAMuH,EAAA,GACDpL,GACkB,iBAAX6D,GAAuBA,EAASA,EAAS,KAGnCwB,OAAqB,CACrC,IAAIkJ,EAAKlP,GAAEwE,EAAOwB,QAAQsK,KAAK,MAC1BpB,IACHA,EAAKpN,GAAKU,OAAOvC,IACjBD,GAAEwE,EAAOwB,QAAQsK,KAAK,KAAMpB,IAE9B1K,EAAOwB,OAAP,IAAoBkJ,EAKtB,OAFApN,GAAKwC,gBAAgBrE,GAAMuE,EAAQ5D,IAE5B4D,GA3KakC,EA8KtBwX,cA9KsB,WA+KpB,OAAO/b,KAAKqb,iBAAmBlP,OAC3BnM,KAAKqb,eAAeqB,YAAc1c,KAAKqb,eAAexH,WAhLtCtP,EAmLtByX,iBAnLsB,WAoLpB,OAAOhc,KAAKqb,eAAelG,cAAgB5U,KAAKoc,IAC9Clc,SAAS+P,KAAK2E,aACd1U,SAASsJ,gBAAgBoL,eAtLP5Q,EA0LtBqY,iBA1LsB,WA2LpB,OAAO5c,KAAKqb,iBAAmBlP,OAC3BA,OAAO0Q,YAAc7c,KAAKqb,eAAe/M,wBAAwB8N,QA5LjD7X,EA+LtBmX,SA/LsB,WAgMpB,IAAM7H,EAAe7T,KAAK+b,gBAAkB/b,KAAKuI,QAAQ+G,OACnD6F,EAAenV,KAAKgc,mBACpBc,EAAe9c,KAAKuI,QAAQ+G,OAChC6F,EACAnV,KAAK4c,mBAMP,GAJI5c,KAAKyb,gBAAkBtG,GACzBnV,KAAK2b,UAGUmB,GAAbjJ,EAAJ,CACE,IAAMhQ,EAAS7D,KAAKub,SAASvb,KAAKub,SAAS9R,OAAS,GAEhDzJ,KAAKwb,gBAAkB3X,GACzB7D,KAAK+c,UAAUlZ,OAJnB,CASA,GAAI7D,KAAKwb,eAAiB3H,EAAY7T,KAAKsb,SAAS,IAAyB,EAAnBtb,KAAKsb,SAAS,GAGtE,OAFAtb,KAAKwb,cAAgB,UACrBxb,KAAKgd,SAKP,IADA,IACS3Q,EADYrM,KAAKsb,SAAS7R,OACR4C,KAAM,CACRrM,KAAKwb,gBAAkBxb,KAAKub,SAASlP,IACxDwH,GAAa7T,KAAKsb,SAASjP,KACM,oBAAzBrM,KAAKsb,SAASjP,EAAI,IACtBwH,EAAY7T,KAAKsb,SAASjP,EAAI,KAGpCrM,KAAK+c,UAAU/c,KAAKub,SAASlP,OAjOb9H,EAsOtBwY,UAtOsB,SAsOZlZ,GACR7D,KAAKwb,cAAgB3X,EAErB7D,KAAKgd,SAEL,IAAIC,EAAUjd,KAAKqN,UAAU3L,MAAM,KAEnCub,EAAUA,EAAQhB,IAAI,SAACpb,GACrB,OAAUA,EAAH,iBAA4BgD,EAA5B,MACGhD,EADH,UACqBgD,EADrB,OAIT,IAAMqZ,EAAQrf,GAAE,GAAGuM,MAAMzH,KAAKlC,SAAS4J,iBAAiB4S,EAAQtC,KAAK,QAEjEuC,EAAM7X,SAASlH,KACjB+e,EAAMhY,QAAQ5G,IAAmB6a,KAAK7a,IAA0BgN,SAASnN,IACzE+e,EAAM5R,SAASnN,MAGf+e,EAAM5R,SAASnN,IAGf+e,EAAMC,QAAQ7e,IAAyByK,KAAQzK,GAA/C,KAAsEA,IAAuBgN,SAASnN,IAEtG+e,EAAMC,QAAQ7e,IAAyByK,KAAKzK,IAAoB+M,SAAS/M,IAAoBgN,SAASnN,KAGxGN,GAAEmC,KAAKqb,gBAAgBxZ,QAAQ3D,GAAMid,SAAU,CAC7CvQ,cAAe/G,KAlQGU,EAsQtByY,OAtQsB,WAuQpB,IAAMI,EAAQ,GAAGhT,MAAMzH,KAAKlC,SAAS4J,iBAAiBrK,KAAKqN,YAC3DxP,GAAEuf,GAAOjQ,OAAO7O,IAAiB8G,YAAYjH,KAxQzBsB,EA6QfgG,iBA7Qe,SA6QEpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAIE,EAAO/H,GAAEmC,MAAM4F,KAAK7H,IAQxB,GALK6H,IACHA,EAAO,IAAInG,EAAUO,KAHW,iBAAXqC,GAAuBA,GAI5CxE,GAAEmC,MAAM4F,KAAK7H,GAAU6H,IAGH,iBAAXvD,EAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SA3RW2D,EAAAvG,EAAA,KAAA,CAAA,CAAAwG,IAAA,UAAAC,IAAA,WAmFpB,MA3EuB,UARH,CAAAD,IAAA,UAAAC,IAAA,WAuFpB,OAAO1H,OAvFaiB,EAAA,GAuSxB5B,GAAEsO,QAAQhG,GAAGjI,GAAM8J,cAAe,WAIhC,IAHA,IAAMqV,EAAa,GAAGjT,MAAMzH,KAAKlC,SAAS4J,iBAAiB/L,KAGlD+N,EADgBgR,EAAW5T,OACL4C,KAAM,CACnC,IAAMiR,EAAOzf,GAAEwf,EAAWhR,IAC1B5M,GAAUgG,iBAAiB9C,KAAK2a,EAAMA,EAAK1X,WAU/C/H,GAAEyF,GAAGxF,IAAQ2B,GAAUgG,iBACvB5H,GAAEyF,GAAGxF,IAAMsI,YAAc3G,GACzB5B,GAAEyF,GAAGxF,IAAMuI,WAAa,WAEtB,OADAxI,GAAEyF,GAAGxF,IAAQG,GACNwB,GAAUgG,kBAGZhG,IC9THC,IAUE1B,GAAS,KADTD,GAAqB,UAGrBE,IAZMJ,GA2PXA,GA/O4ByF,GAAF,IAErBpF,GAAQ,CACZwO,KAAI,OAAoB1O,GACxB2O,OAAM,SAAoB3O,GAC1BwO,KAAI,OAAoBxO,GACxByO,MAAK,QAAoBzO,GACzBqG,eAAc,QAAWrG,GARA,aAWrBG,GACY,gBADZA,GAEY,SAFZA,GAGY,WAHZA,GAIY,OAJZA,GAKY,OAGZG,GACoB,YADpBA,GAEoB,oBAFpBA,GAGoB,UAHpBA,GAIoB,iBAJpBA,GAKoB,kEALpBA,GAMoB,mBANpBA,GAOoB,2BASpBoB,GA9CY,WA+ChB,SAAAA,EAAYkB,GACVZ,KAAKsE,SAAW1D,EAhDF,IAAA2D,EAAA7E,EAAA+C,UAAA,OAAA8B,EA2DhBoJ,KA3DgB,WA2DT,IAAA5N,EAAAC,KACL,KAAIA,KAAKsE,SAAS6F,YACdnK,KAAKsE,SAAS6F,WAAWjI,WAAauR,KAAKC,cAC3C7V,GAAEmC,KAAKsE,UAAUe,SAASlH,KAC1BN,GAAEmC,KAAKsE,UAAUe,SAASlH,KAH9B,CAOA,IAAI0F,EACA0Z,EACEC,EAAc3f,GAAEmC,KAAKsE,UAAUY,QAAQ5G,IAAyB,GAChEuC,EAAWlB,GAAKgB,uBAAuBX,KAAKsE,UAElD,GAAIkZ,EAAa,CACf,IAAMC,EAAwC,OAAzBD,EAAYE,SAAoBpf,GAAqBA,GAE1Eif,GADAA,EAAW1f,GAAEiP,UAAUjP,GAAE2f,GAAarE,KAAKsE,KACvBF,EAAS9T,OAAS,GAGxC,IAAMqI,EAAYjU,GAAEK,MAAMA,GAAMwO,KAAM,CACpC9B,cAAe5K,KAAKsE,WAGhB8L,EAAYvS,GAAEK,MAAMA,GAAMsO,KAAM,CACpC5B,cAAe2S,IASjB,GANIA,GACF1f,GAAE0f,GAAU1b,QAAQiQ,GAGtBjU,GAAEmC,KAAKsE,UAAUzC,QAAQuO,IAErBA,EAAUxL,uBACXkN,EAAUlN,qBADb,CAKI/D,IACFgD,EAASpD,SAASwE,cAAcpE,IAGlCb,KAAK+c,UACH/c,KAAKsE,SACLkZ,GAGF,IAAM9D,EAAW,WACf,IAAMiE,EAAc9f,GAAEK,MAAMA,GAAMyO,OAAQ,CACxC/B,cAAe7K,EAAKuE,WAGhByP,EAAalW,GAAEK,MAAMA,GAAMuO,MAAO,CACtC7B,cAAe2S,IAGjB1f,GAAE0f,GAAU1b,QAAQ8b,GACpB9f,GAAEkC,EAAKuE,UAAUzC,QAAQkS,IAGvBlQ,EACF7D,KAAK+c,UAAUlZ,EAAQA,EAAOsG,WAAYuP,GAE1CA,OA1HYnV,EA8HhBO,QA9HgB,WA+HdjH,GAAEkH,WAAW/E,KAAKsE,SAAUvG,IAC5BiC,KAAKsE,SAAW,MAhIFC,EAqIhBwY,UArIgB,SAqINnc,EAAS2W,EAAW9C,GAAU,IAAA5K,EAAA7J,KAQhC4d,GANqB,OAAvBrG,EAAUmG,SACK7f,GAAE0Z,GAAW4B,KAAK7a,IAElBT,GAAE0Z,GAAWlM,SAAS/M,KAGX,GACxBkQ,EAAkBiG,GACrBmJ,GAAU/f,GAAE+f,GAAQvY,SAASlH,IAE1Bub,EAAW,WAAA,OAAM7P,EAAKgU,oBAC1Bjd,EACAgd,EACAnJ,IAGF,GAAImJ,GAAUpP,EAAiB,CAC7B,IAAMjN,EAAqB5B,GAAK2B,iCAAiCsc,GAEjE/f,GAAE+f,GACC1d,IAAIP,GAAKC,eAAgB8Z,GACzBnW,qBAAqBhC,QAExBmY,KA9JYnV,EAkKhBsZ,oBAlKgB,SAkKIjd,EAASgd,EAAQnJ,GACnC,GAAImJ,EAAQ,CACV/f,GAAE+f,GAAQxY,YAAejH,GAAzB,IAA2CA,IAE3C,IAAM2f,EAAgBjgB,GAAE+f,EAAOzT,YAAYgP,KACzC7a,IACA,GAEEwf,GACFjgB,GAAEigB,GAAe1Y,YAAYjH,IAGK,QAAhCyf,EAAO9c,aAAa,SACtB8c,EAAO1W,aAAa,iBAAiB,GAYzC,GARArJ,GAAE+C,GAAS0K,SAASnN,IACiB,QAAjCyC,EAAQE,aAAa,SACvBF,EAAQsG,aAAa,iBAAiB,GAGxCvH,GAAKgC,OAAOf,GACZ/C,GAAE+C,GAAS0K,SAASnN,IAEhByC,EAAQuJ,YACRtM,GAAE+C,EAAQuJ,YAAY9E,SAASlH,IAA0B,CAC3D,IAAM4f,EAAkBlgB,GAAE+C,GAASsE,QAAQ5G,IAAmB,GAC9D,GAAIyf,EAAiB,CACnB,IAAMC,EAAqB,GAAG5T,MAAMzH,KAAKob,EAAgB1T,iBAAiB/L,KAC1ET,GAAEmgB,GAAoB1S,SAASnN,IAGjCyC,EAAQsG,aAAa,iBAAiB,GAGpCuN,GACFA,KAvMY/U,EA6MT+F,iBA7MS,SA6MQpD,GACtB,OAAOrC,KAAK0F,KAAK,WACf,IAAMmJ,EAAQhR,GAAEmC,MACZ4F,EAAOiJ,EAAMjJ,KAAK7H,IAOtB,GALK6H,IACHA,EAAO,IAAIlG,EAAIM,MACf6O,EAAMjJ,KAAK7H,GAAU6H,IAGD,iBAAXvD,EAAqB,CAC9B,GAA4B,oBAAjBuD,EAAKvD,GACd,MAAM,IAAI2J,UAAJ,oBAAkC3J,EAAlC,KAERuD,EAAKvD,SA3NK2D,EAAAtG,EAAA,KAAA,CAAA,CAAAuG,IAAA,UAAAC,IAAA,WAsDd,MA9CuB,YARTxG,EAAA,GAuOlB7B,GAAE4C,UACC0F,GAAGjI,GAAMmG,eAAgB/F,GAAsB,SAAUkF,GACxDA,EAAMuC,iBACNrG,GAAI+F,iBAAiB9C,KAAK9E,GAAEmC,MAAO,UASvCnC,GAAEyF,GAAF,IAAa5D,GAAI+F,iBACjB5H,GAAEyF,GAAF,IAAW8C,YAAc1G,GACzB7B,GAAEyF,GAAF,IAAW+C,WAAa,WAEtB,OADAxI,GAAEyF,GAAF,IAAarF,GACNyB,GAAI+F,kBAGN/F,KChPT,SAAE7B,GACA,GAAiB,oBAANA,EACT,MAAM,IAAImO,UAAU,kGAGtB,IAAMiS,EAAUpgB,EAAEyF,GAAGmL,OAAO/M,MAAM,KAAK,GAAGA,MAAM,KAOhD,GAAIuc,EAAQ,GALI,GAKYA,EAAQ,GAJnB,GAFA,IAMoCA,EAAQ,IAJ5C,IAI+DA,EAAQ,IAAmBA,EAAQ,GAHlG,GACA,GAEmHA,EAAQ,GAC1I,MAAM,IAAI7a,MAAM,+EAbpB,CAeGvF","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n let method = 'querySelector'\n\n if (!selector || selector === '#') {\n selector = (element.getAttribute('href') || '').trim()\n }\n\n const validSelector = selector\n if (selector.charAt(0) === '#' && selector.indexOf(',') === -1) {\n selector = selector.substr(1)\n method = 'getElementById'\n }\n\n try {\n return document[method](selector) ? validSelector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class 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(`.${ClassName.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(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.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\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\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 toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\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 // 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 ($(this._element).is(':visible') && $(this._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._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 _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .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 if ('ontouchstart' in document.documentElement) {\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 $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\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)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\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 = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.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\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(ClassName.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(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.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(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.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 data[action]()\n } else if (_config.interval) {\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(ClassName.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)\n .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\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\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(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.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) => elem.getAttribute('data-parent') === this._config.parent)\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(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.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(ClassName.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(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.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 if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.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(ClassName.COLLAPSING)\n .addClass(ClassName.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 = null\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 =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\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 if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\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 $this = $(this)\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 && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(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 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 <a> 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 $(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\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\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 static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(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 data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class 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._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._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.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 $(document.body).addClass(ClassName.OPEN)\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._isTransitioning || !this._isShown) {\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(ClassName.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(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\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 $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_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._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 _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\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.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.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 this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\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 && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\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._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.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(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.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 if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.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(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.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 =\n 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 = 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\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 = ClassName.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 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\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(document).find(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class 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 ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.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 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') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\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 +\n scrollHeight -\n 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 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 const offsetLength = this._offsets.length\n for (let i = offsetLength; 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 let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n const nodes = [].slice.call(document.querySelectorAll(this._selector))\n $(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY))\n\n const scrollSpysLength = scrollSpys.length\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\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 show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))\n $(dropdownToggleList).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} |