{"version":3,"sources":["handler-main.js","handler-internal-nav.js","handler-blocks.js","handler-opportunities.js","handler-calendar.js","handler-home.js","handler-stories-and-news.js","handler-our-network.js"],"names":["mainHandler","$openSmallHeader","$","$smallHeader","$numText","$imageResize","$sbiPhoto","$header","setMainHeight","headHeight","this","outerHeight","css","padding-top","setImageSize","imgs","size","on","imgsEl","data","each","parseFloat","mediaOn","Foundation","MediaQuery","is","attr","newHeight","width","resizeChild","height","children","opacity","lazyLoadImg","self","setTimeout","init","headEl","document","querySelector","options","$blockOurNetwork","length","addClass","$prevObj","prev","offset","Headroom","img","find","e","preventDefault","hasClass","removeClass","window","$target","closest","toggleClass","parent","next","internalNavHandler","$cellNavContent","$internalNavContainer","$html","$customMagellan","$cellChildren","$cellBreadcrumb","$main","templateNav","smoothScroll","url","$item","animate","scrollTop","top","customMagellan","screenTop","contentTop","position","id","$menuActive","appendApplyButton","$panelApplyButton","clone","appendTo","setTransparent","i","v","title","addonClass","before","re","RegExp","String","fromCharCode","checkNbsp","replace","isEmpty","parents","append","$newHtml","html","remove","foundation","hash","blocksHandler","$panelLineSeparator","$panelStoriesAndNewsColBg","$panelStoriesAndNewsColSbs","$blockTextHidePadding","$panelFind","$storiesAndNews","$panelStoriesAndNewsColTl","$openFactItem","$dropdownSelect","isLoad","viewType","findTimer","visualDataSearched","initialSelectFilter","arrFilter","ObjChart","renderChartStackBar","$chart","dtLabels","dtGroup","dtSeries","idx","globalFontSize","chartFontSize","btmChartFontSize","optPadBtm","atLeast","Chart","defaults","font","customLegend","get","idBlock","destroy","customTotalPlugin","[object Object]","chart","ctx","datasets","labels","forEach","label","index","bar","getDatasetMeta","total","reduce","sum","dataset","x","y","save","textAlign","fillStyle","fillText","restore","type","responsive","interaction","intersect","layout","padding","bottom","plugins","legend","display","align","tooltip","callbacks","context","value","raw","datalabels","anchor","formatter","color","weight","scales","stacked","grid","drawOnChartArea","drawBorder","ticks","stepSize","callback","includes","ChartDataLabels","createCustomLegend","renderChartBar","btmTextPos","captionPlugin","chartArea","caption","clip","isNotAvail","val","dataIndex","barHeight","datasetIndex","$animations","_to","labelWidth","backgroundColor","rotation","yAxisID","min","y1","y2","disableClick","legendItem","createElement","classList","add","colorBox","style","appendChild","createTextNode","addEventListener","meta","hidden","update","searchData","$this","JSON","parse","family","blockChart","target","click","stopPropagation","$selected","textVal","blockResize","$cellNav","outerWidth","widthWindow","innerWidth","documentElement","offsetWidth","paddingLeft","newPaddingLeft","parseInt","left","margin-left","margin-right","margin-bottom","$slctall","$outerW","--title-width","text","blockFind","$currPanelFind","$totalEntries","$buttonSort","$optItem","$optItemDefault","$targetRender","$btnStartSearch","$btnClearSearch","$txtSearch","$buttonReset","$visualCont","$inputCheckbox","$inputCheckboxIN","isOurNetwork","$iconInfo","$btnSlider","textEntries","$wrapper","distance","scrollBy","behavior","prop","blockFindRenderResult","$isActive","name","startFind","clearTimeout","checked","$parentId","setYearLine","itemHeight","getCounter","counter","$objCounter","split","toLowerCase","trim","$withUpdateUrl","force","searchType","postType","opportunityType","$loading","$sort","$visualListCont","$legend","$selectedEntries","contWidth","--mobile-height","dataFiltered","dataFilterField","dataFilterFieldLike","selectedFilter","selectedFilterField","selectedFilterFieldLike","searchKeywords","temp","tempFF","tempL","isFiltered","arrTopic","college","topic","einhorn_type","search","$inputFilterObj","isField","newURLParam","ourNetworkHandler","resetInterface","isLike","termID","isCollegeFiltered","push","$sortBy","Object","keys","map","key","join","location","origin","pathname","history","pushState","globalOurNetworkJson","response_json","filterDataVisual","filterDataGrid","ajax","myAjax","ajax_url","action","post_type","opportunity_type","filter","stringify","filter_field","filter_field_like","search_keywords","sort_by","view_type","is_filtered","arr_topic","beforeSend","success","response","$resultHtml","showHideData","showType","sortBy","$itemData","$itemDataContent","$cellContent","$inputSearchCont","sort","a","b","an","Number","bn","detach","Math","floor","random","target2","eq","resetAllVar","Graph","pauseAnimation","resumeAnimation","collegeIds","toString","topicIds","einTypes","nodeId","$itemDataV","showItem","colAvail","topicAvail","searchAvail","totalEntries","setProperty","refreshNode","clickNode","initCI","$collegeInitiatives","only","startSearch","item","inputName","blockStoryNews","$storiesFlickity","flickity","cellSelector","cellAlign","pageDots","fade","wrapAround","prevNextButtons","draggable","autoPlay","event","blockStatistics","$statsCont","gsap","registerPlugin","ScrollTrigger","tl","timeline","scrollTrigger","trigger","start","end","fromTo","stagger","onStart","$lottie","targets","lottie","loadAnimation","container","renderer","autoplay","loop","path","play","from","duration","ease","innerText","roundProps","onUpdate","getProperty","numberWithCommas","n","href","$currentPanelFind","$current","pauseAutoPlayOnHover","arrowShape","x0","x1","x2","x3","h","opportunitiesHandler","$listOptionsActive","$csCarousel","$csArrow","$csFilter","$selectedYear","$yearContainer","$participantContent","$pnlOpporPct","tagVal","participantFilter","refreshTag","contentYear","contentTag","yearVal","opporId","opporType","contentStyle","$selectedTag","yearLabel","siblings","csCar","freeScroll","change","$previousButton","$nextButton","csFilter","csTags","csYear","arrTags","resize","calendarHandler","$activeDate","$dateNav","$dateMoveUp","$dateMoveDown","$panelCalendar","$calendarContainer","$recentStories","$filterCategories","$dateRangeContainer","monthNames","$itemTax","$dateRange","selectedEvent","selectedType","activeID","moveMonth","$next","currDataDate","dataDateNow","newMonth","Date","month","getMonth","slice","strYM","getFullYear","strDate","loadCalendar","navigateCalendar","date","dateTo","classname","replaceWith","initTextClamp","filterEvents","linePosition","showRecentStories","$pnlCalendar","calendarEvents","arrEvDate","dateRangePicker","format","autoClose","singleMonth","showShortcuts","showTopbar","language","getValue","innerHTML","setValue","s","arrDate","strDateFrom","strDateTo","getDate","monthSelect","customArrowPrevSymbol","customArrowNextSymbol","yearSelect","moment","beforeShowDay","t","day","_class","bind","setFilterPosition","$expandedDesc","capitalizeFirstLetter","string","charAt","toUpperCase","resetCalendar","filterType","filterEvent","$itemEvtDay","$eventsListCalendar","$firstItem","$itemEvt","$itemEvtHide","filterClicked","dataType","dropdownSelect","arrEvent","dayOfWeek","lineNo","arKey","keyCheck","prevLine","strClass","filterEventType","insertBefore","reverse","homeHandler","$heroFlickity","$heroImage","$gridHeroImage","setSlider","setHeightImage","$obj","animateImage","imagesLoaded","$imageContainer","hostUrl","host","$anchor","$children","imageAnchor","handlerStoriesAndNews","$searchText","$iconSearch","selectedSort","searchQuery","process","searchStoriesAndNews","order","sortData","focus","$pnlContentList","highlightNodes","Set","highlightLinks","highlightSelectedNodes","showedNode","showedNodeUnsearched","tempTopics","filterNodes","hoverNode","firstState","forceReset","$active","zoomToFit","zoom","resetHighlight","highlightList","$id","dataAvailabilityCheck","node","dataAvail","loadNetwork","$visCont","contHeight","links","link","nodes","source","neighbors","ForceGraph","graphData","cooldownTicks","nodeColor","linkSource","linkTarget","linkCurvature","linkColor","linkLabel","autoPauseRedraw","linkVisibility","has","onNodeDrag","enableNodeDrag","linkWidth","nodeCanvasObject","globalScale","fontSize","bckgDimensions","measureText","w","addon_x","addon_y","addon_circle","arr_color","beginPath","arc","PI","globalCompositeOperation","globalAlpha","fill","onNodeHover","prevNode","hoverNodeCommand","onNodeClick","onEngineStop","zoomVal","$parent","selectedNode","showHideItemData","triggerClick","$parentPanel","$parentTtlEntry","clickNodeCommand","connLength","clear","centerAt","forceRefresh","isSearch","linkFiltered","neighbor","dataTopicAvail","stateTemp"],"mappings":"AAAAA,YAAc,CACVC,iBAAmBC,EAAE,+BACrBC,aAAeD,EAAE,uBACjBE,SAAUF,EAAE,sBACZG,aAAcH,EAAE,uBAChBI,UAAcJ,EAAE,aAChBK,QAASL,EAAE,UAEXM,cAAe,WACX,IAEIC,EAFOC,KAEWH,QAAQI,cAC9BT,EAAE,QAAQU,IAAI,CACVC,cAAeJ,KAIvBK,aAAc,SAASC,EAAO,KAAMC,EAAO,KAAMC,EAAK,MAClD,IACIC,EAASH,GADFL,KACqBL,aAE5BU,IACIC,GACAd,EAAEgB,GAAQC,KAAK,eAAgBH,GAG/BC,GACAf,EAAEgB,GAAQC,KAAK,eAAgBF,IAIvCC,EAAOE,KAAK,WACR,IAAIJ,EAAYK,WAAWnB,EAAEQ,MAAMS,KAAK,iBACpCG,EAAYpB,EAAEQ,MAAMS,KAAK,aAM7B,GAJKG,IACDA,EAAU,UAGVC,WAAWC,WAAWC,GAAGH,GAAU,CACnCpB,EAAEQ,MAAMgB,KAAK,QAAS,IAEtB,IACIC,EADYzB,EAAEQ,MAAMkB,QACIZ,EACxBa,EAAc3B,EAAEQ,MAAMS,KAAK,gBAE/BjB,EAAEQ,MAAME,IAAI,CACRkB,OAAUH,IAGVE,GACA3B,EAAEQ,MAAMqB,WAAWnB,IAAI,CACnBkB,OAAUH,EACVC,MAAU,SAKtB1B,EAAEQ,MAAME,IAAI,CACRoB,QAAW,OAKvBC,YAAa,WACT,IAAIC,EAAOxB,KACXR,EAAE,qBAAqBe,GAAG,OAAQ,WAC9BkB,WAAW,KACPD,EAAKpB,aAAaZ,EAAEQ,QACrB,QAIX0B,KAAO,WACH,IAAIF,EAAOxB,KAEP2B,EAAUC,SAASC,cAAc,UACjCC,EAAU,GACVC,EAAmBvC,EAAE,sBACzB,GAAIuC,EAAiBC,OAAS,EAAG,CAC7BR,EAAK3B,QAAQoC,SAAS,mBACtB,IAAIC,EAAWH,EAAiBI,OAChCL,EAAU,CACNM,OAASF,EAASF,OAAS,EAAIE,EAASjC,cAAgBuB,EAAK3B,QAAQuB,SAAW,GAGxE,IAAIiB,SAASV,EAAQG,GAC5BJ,OACTF,EAAK1B,gBACL0B,EAAKD,cAEDC,EAAK5B,UAAUoC,OAAS,GACxBR,EAAK5B,UAAUc,KAAK,WAChB,IAAI4B,EAAM9C,EAAEQ,MAAMuC,KAAK,OAEvBf,EAAKpB,aAAakC,EAAK,EAAG,WAIlCd,EAAKjC,iBAAiBgB,GAAG,QAAS,SAASiC,GACvCA,EAAEC,iBAEEjB,EAAK/B,aAAaiD,SAAS,eAC3BlB,EAAK/B,aAAakD,YAAY,cAC9BnD,EAAEQ,MAAM2C,YAAY,aACpBnD,EAAE,QAAQmD,YAAY,yBAEtBnB,EAAK/B,aAAawC,SAAS,cAC3BzC,EAAEQ,MAAMiC,SAAS,aACjBzC,EAAE,QAAQyC,SAAS,0BAK3BR,WAAW,KACPD,EAAKpB,eACLqB,WAAW,KACPD,EAAKpB,gBACN,MACJ,KAEHZ,EAAEoD,QAAQrC,GAAG,SAAU,SAASiC,GAC5Bf,WAAW,KACPD,EAAK1B,iBACN,KACH0B,EAAKpB,iBAGTZ,EAAE,iBAAiBe,GAAG,QAAS,WAC3B,IAAIsC,EAAUrD,EAAEQ,MAAM8C,QAAQ,gBAC9BD,EAAQxB,WAAW0B,YAAY,QAC/BF,EAAQG,SAASC,OAAOF,YAAY,YAIhDG,mBAAqB,CACjBC,gBAAkB3D,EAAE,qBACpB4D,sBAAuB5D,EAAE,2BACzB6D,MAAkB7D,EAAE,QACpB8D,gBAAkB9D,EAAE,oBACpB+D,cAAkB/D,EAAE,kBACpBgE,gBAAkBhE,EAAE,oBACpBiE,MAAkBjE,EAAE,QAEpBkE,YAAa,WACT,MAAQ,uRAKZC,aAAc,SAASnB,EAAGoB,GAEtB,GAAc,KAAVA,EAAI,GAAW,CACL,OAANpB,GACAA,EAAEC,iBAEN,IAAIoB,EAAQrE,EAAEoE,GACV7D,EAAaP,EAAE,UAAUS,cACzB4D,EAAM7B,OAAS,GACfxC,EAAE,cAAcsE,QAAQ,CACpBC,UAAWF,EAAMzB,SAAS4B,IAAMjE,GACjC,OAKfkE,eAAgB,WACZ,IAAIzC,EAAOxB,KACPkE,EAAY1E,EAAEoC,UAAUmC,YAExBvC,EAAK8B,gBAAgBtB,OAAS,GAC9BR,EAAK8B,gBAAgBf,KAAK,0BAA0B7B,KAAK,WACrD,IAAIyD,EAAgB3E,EAAEQ,MAAMoE,WAAWJ,IAAM,IACzCK,EAAK7E,EAAEQ,MAAMS,KAAK,mBAClB6D,EAAgB9C,EAAK8B,gBAAgBf,KAAK,+BAA+BA,KAAK,WAAW8B,EAAG,MAE3FH,EAAYC,IAAiBG,EAAY5B,SAAS,eACnDlB,EAAK8B,gBAAgBf,KAAK,+BAA+BlB,WAAWsB,YAAY,aAChF2B,EAAYrC,SAAS,iBAMrCsC,kBAAmB,WAEfC,kBADWxE,KACcmD,gBAAgBZ,KAAK,uBAE1CiC,kBAAkBxC,OAAS,GAC3BwC,kBAAkBC,QAAQC,SAJnB1E,KAIkCoD,sBAAsBb,KAAK,iCAI5Eb,KAAM,WACF,IAAIF,EAAOxB,KACP2E,GAAiB,EAErBnD,EAAK2B,gBAAgBZ,KAAK,uBAAuB7B,KAAK,SAASkE,EAAEC,GAC7D,IAAIC,EAAQtF,EAAEQ,MAAMS,KAAK,SACzBe,EAAK2B,gBAAgBlB,SAAS,YAE9B,IAAI8C,EAAa,GAER,GAALH,IACApD,EAAK2B,gBAAgB6B,OAAQxD,EAAKkC,eAClCqB,EAAa,aAEjB1B,MAAQ,aAAa7D,EAAEQ,MAAMgB,KAAK,MAAM,+BAA+B+D,EAAW,iCAAiCD,EAAM,aAEzH,IAAIG,EAAK,IAAIC,OAAOC,OAAOC,aAAa,KAAM,KAC1CC,EAAYP,EAAMQ,QAAQL,EAAI,KAC9BM,EAAwB,KAAbF,GAAoC,GAAhBP,EAAM9C,OACzC2C,EAA+B,KAAbU,EAEbE,GAAkD,GAAvC/F,EAAEQ,MAAMwF,QAAQ,aAAaxD,QACzCR,EAAK4B,sBAAsBb,KAAK,+BAA+BkD,OAAOpC,SAI1EsB,GACAnD,EAAK4B,sBAAsBb,KAAK,+BAA+BS,SAASf,SAAS,eAGtB,GAA3DT,EAAK2B,gBAAgBZ,KAAK,uBAAuBP,SAC7CR,EAAKiC,MAAMf,SAAS,uBACpBlB,EAAKgC,gBAAgBvB,SAAS,6BAE9BT,EAAKgC,gBAAgBvB,SAAS,8BAGlCT,EAAK+B,cAAcvB,OAAS,IAC5B0D,SAAWlE,EAAK+B,cAAcoC,OAC1BD,WACAlE,EAAK4B,sBAAsBb,KAAK,+BAA+BqD,SAC/DpE,EAAK+B,cAAckB,QAAQC,SAASlD,EAAK4B,sBAAsBb,KAAK,0BAK5Ed,WAAW,KACPD,EAAK6B,MAAMwC,aACXrE,EAAKyC,iBACLzC,EAAK+C,qBACN,KAGH/E,EAAEoC,UAAUrB,GAAG,QAAS,qCAAsC,SAASiC,GACjD,KAAdxC,KAAK8F,OACLtD,EAAEC,iBACFjB,EAAKmC,aAAanB,EAAGxC,KAAK8F,SAIlCtG,EAAEoC,UAAUrB,GAAG,SAAU,WACrBiB,EAAKyC,qBAIjB8B,cAAgB,CACZC,oBAAqBxG,EAAE,yBACvByG,0BAA2BzG,EAAE,8CAC7B0G,2BAA4B1G,EAAE,wCAC9B2D,gBAAiB3D,EAAE,qBACnB4D,sBAAuB5D,EAAE,2BACzB2G,sBAAuB3G,EAAE,4BAEzB4G,WAAY5G,EAAE,eACdE,SAAUF,EAAE,sBACZ6G,gBAAiB7G,EAAE,gFACnB8G,0BAA2B9G,EAAE,0CAC7B+G,cAAsB/G,EAAE,4BACxBgH,gBAAiBhH,EAAE,oBACnBiH,QAAQ,EACRC,SAAU,OACVC,UAAW,KACXC,oBAAoB,EACpBC,qBAAqB,EACrBC,UAAW,GACXC,SAAU,GAEVC,oBAAqB,SAASC,EAAQC,EAAUC,EAASC,EAAUC,GAC/D,IACIC,EAAiB,GACjBC,EAAiB,GACjBC,EAAmB,EAEnBC,EAAmB,GAEnB5G,WAAWC,WAAW4G,QAAQ,WAC9BJ,EAAiB,GACjBC,EAAiB,GACjBC,EAAmB,GACA,GACnBC,EAAmB,IAGvBE,MAAMC,SAASC,KAAKvH,KAASgH,EAE7B,MAAMQ,EAAeb,EAAOnE,QAAQ,gBAAgBP,KAAK,WAAWwF,IAAI,GAClEC,EAAef,EAAOnE,QAAQ,gBAAgB9B,KAAK,MAErDhB,KAAK+G,SAASiB,KACdhI,KAAK+G,SAASiB,GAASC,UACvBzI,EAAEsI,GAAcnC,KAAK,KAGzB,MAAMuC,EAAoB,CACtB7D,GAAI,cACJ8D,iBAAiBC,GACb,MAAMC,EAAMD,EAAMC,IACZC,EAAWF,EAAM3H,KAAK6H,SAE5BF,EAAM3H,KAAK8H,OAAOC,QAAQ,CAACC,EAAOC,KAC9B,MACMC,EADOP,EAAMQ,eAAeN,EAAStG,OAAS,GAClCvB,KAAKiI,GAEvB,GAAIC,EAAK,CAEL,MAAME,EAAQP,EAASQ,OAAO,CAACC,EAAKC,IAAYD,EAAMC,EAAQvI,KAAKiI,GAAQ,GAE3E,GAAIG,EAAQ,EAAG,CAEX,MAAMI,EAAIN,EAAIM,EACRC,EAAIP,EAAIO,EAAI,GAClBb,EAAIc,OACJd,EAAIe,UAAY,SAChBf,EAAIgB,UAAY,UAChBhB,EAAIR,KAAYN,EAAc,+BAC9Bc,EAAIiB,YAAYT,KAAUI,EAAGC,GAE7Bb,EAAIkB,gBAOxBvJ,KAAK+G,SAASiB,GAAW,IAAIL,MAAMV,EAAQ,CACvCuC,KAAM,MACN/I,KAAM,CACF8H,OAAQrB,EACRoB,SAAUlB,GAEdtF,QAAS,CACL2H,YAAY,EACZC,YAAa,CACVC,WAAW,GAEdC,OAAQ,CACJC,QAAS,CACL7F,IAAK,GACL8F,OAAQrC,IAGhBsC,QAAS,CACLC,OAAQ,CACJC,SAAS,EACT7F,SAAU,MACV8F,MAAO,OAEXC,QAAS,CACLC,UAAW,CACP3B,MAAO,SAAU4B,GACb,MAAMC,EAAQD,EAAQE,IACtB,OAAID,EAAQ,KACED,EAAQrB,QAAQP,UAAU6B,KAE7B,MAKvBE,WAAY,CACRC,OAAQ,MACRP,MAAO,SACPQ,UAAW,SAAUJ,GACjB,OAAIA,EAAQ,KACEA,KAEH,IAGfK,MAAO,UACP9C,KAAM,CACFvH,KAAMgH,EACNsD,OAAQ,WAEZxI,OAAQ,IAGhByI,OAAQ,CACJ5B,EAAG,CACC6B,SAAS,EACTC,KAAM,CACFC,iBAAiB,EACjBC,YAAY,GAEhBC,MAAO,CACHP,MAAO,UACP9C,KAAM,CACFvH,KAAMkH,EACNoD,OAAQ,OAIpB1B,EAAG,CACC4B,SAAS,EACTI,MAAO,CACHC,SAAU,GACVC,SAAWd,GACH,CAAC,EAAG,GAAI,GAAI,GAAI,KAAKe,SAASf,MACpBA,KAEP,KAEXzC,KAAM,CACF+C,OAAQ,SAM5Bb,QAAS,CAACuB,gBAAiBpD,KA7IflI,KAgJXuL,mBAhJWvL,KAgJa+G,SAASiB,GAAUF,EAAcE,GAAS,IAG3EwD,eAAgB,SAASvE,EAAQC,EAAUC,EAASC,EAAUC,GAC1D,IAAI7F,EAAYxB,KACZsH,EAAiB,GACjBC,EAAiB,GACjBC,EAAmB,EACnBiE,EAAmB,GACnBhE,EAAmB,GAEnB5G,WAAWC,WAAW4G,QAAQ,WAC9BJ,EAAiB,GACjBC,EAAiB,GACjBC,EAAmB,GACnBiE,EAAmB,GACnBhE,EAAmB,IAGvBE,MAAMC,SAASC,KAAKvH,KAASgH,EAE7B,MAAMQ,EAAeb,EAAOnE,QAAQ,gBAAgBP,KAAK,WAAWwF,IAAI,GAClEC,EAAef,EAAOnE,QAAQ,gBAAgB9B,KAAK,MAErDhB,KAAK+G,SAASiB,KACdhI,KAAK+G,SAASiB,GAASC,UACvBzI,EAAEsI,GAAcnC,KAAK,KAGzB,MAAM+F,EAAgB,CAClBrH,GAAI,gBACJ8D,UAAUC,GACN,MAAMC,IAAEA,EAAGsD,UAAEA,EAASzK,MAAEA,GAAUkH,EAC5BwD,EAAU3E,EAAOxG,KAAK,aAE5B4H,EAAIc,OACJd,EAAIe,UAAY,SAChBf,EAAIgB,UAAY,UAChBhB,EAAIR,KAAOL,EAAiB,gCAC5Ba,EAAIiB,SAASsC,EAAS1K,EAAQ,EAAGyK,EAAU7B,OAAS2B,GACpDpD,EAAIkB,YAIZvJ,KAAK+G,SAASiB,GAAW,IAAIL,MAAMV,EAAQ,CACvCuC,KAAM,MACN/I,KAAM,CACF8H,OAAQrB,EACRoB,SAAU,CACNlB,EAASC,GAAS,GAClBD,EAASC,GAAS,KAG1BvF,QAAS,CACL2H,YAAY,EACZG,OAAQ,CACJC,QAAS,CACL7F,IAAK,GACL8F,OAAQrC,IAGhBsC,QAAS,CACLC,OAAQ,CACJC,SAAS,EACT7F,SAAU,MACV8F,MAAO,OAEXM,WAAY,CACRC,OAAQ,MACRoB,MAAM,EACN3B,MAAQG,GACI7I,EAAKsK,WAAWzB,GAAY,MAAQ,SAEhDM,MAAQN,IACJ,IAAI0B,EAAS1B,EAAQrB,QAAQvI,KAAK4J,EAAQ2B,WAKtCC,EAJS5B,EAAQjC,MACFQ,eAAeyB,EAAQ6B,cACxBzL,KAAK4J,EAAQ2B,WAEVG,YAAY/K,OAAOgL,IACpCC,EAAcN,EAAI/J,OAASqI,EAAQjC,MAAMtG,QAAQiI,QAAQS,WAAW3C,KAAKvH,KAAO,GAAO,GAE3F,MAAe,IAAPyL,EAAa,UACJ,KAARA,GAAgBM,EAAaJ,EAAc5B,EAAQrB,QAAQsD,gBAAkB,QAE1FlK,OAAQ,EACRmK,SAAWlC,IAEP,MAAe,IADFA,EAAQrB,QAAQvI,KAAK4J,EAAQ2B,WACrB,EAAI,KAE7BnE,KAAM,CACFvH,KAAMiH,GAEVmD,UAAW,CAACJ,EAAOD,IACI,GAATC,GAAyB,IAATA,GAA6C,MAA3BD,EAAQrB,QAAQwD,QAAkClC,EAAd,cAK5FO,OAAQ,CACJ5B,EAAG,CACC8B,KAAM,CACFC,iBAAiB,EACjBC,YAAY,GAEhBC,MAAO,CACHP,MAAO,UACP9C,KAAM,CACF+C,OAAQ,IACRtK,KAAMkH,GAEViF,IAAK,KAGbC,GAAI,CACAlD,KAAM,SACNS,SAAS,EACT7F,SAAU,OACV8G,MAAO,CACHrD,KAAM,CACF+C,OAAQ,OAIpB+B,GAAI,CACAnD,KAAM,SACNS,SAAS,EACT7F,SAAU,QACV2G,KAAM,CACFE,YAAY,EACZD,iBAAiB,GAErBE,MAAO,CACHrD,KAAM,CACF+C,OAAQ,SAM5Bb,QAAS,CAACuB,gBAAiBI,KAG/BlK,EAAK+J,mBAAmB/J,EAAKuF,SAASiB,GAAUF,EAAcE,IAGlEuD,mBAAoB,SAASnD,EAAON,EAAcE,EAAS4E,GAAe,GACtE,IAAIpL,EAAOxB,KAEXoI,EAAM3H,KAAK6H,SAASE,QAAQ,CAACQ,EAASN,KAClC,MAAMmE,EAAajL,SAASkL,cAAc,OAC1CD,EAAWE,UAAUC,IAAI,eAEzB,MAAMC,EAAWrL,SAASkL,cAAc,OACxCG,EAASF,UAAUC,IAAI,cACvBC,EAASC,MAAMZ,gBAAkBtD,EAAQsD,gBAEzCO,EAAWM,YAAYF,GACvBJ,EAAWM,YAAYvL,SAASwL,eAAepE,EAAQP,QAElDmE,GAEDC,EAAWQ,iBAAiB,QAAS,KACjC7N,EAAEqN,GAAY9J,YAAY,YAC1B,MAAMuK,EAAO9L,EAAKuF,SAASiB,GAASY,eAAeF,GACnD4E,EAAKC,QAAUD,EAAKC,OACpB/L,EAAKuF,SAASiB,GAASwF,WAI/B1F,EAAaqF,YAAYN,MAIjCf,WAAY,SAASzB,GACjB,IAAI0B,EAAS1B,EAAQrB,QAAQvI,KAAK4J,EAAQ2B,WAKtCC,EAJS5B,EAAQjC,MACFQ,eAAeyB,EAAQ6B,cACxBzL,KAAK4J,EAAQ2B,WAEVG,YAAY/K,OAAOgL,IACpCC,EAAcN,EAAI/J,OAASqI,EAAQjC,MAAMtG,QAAQiI,QAAQS,WAAW3C,KAAKvH,KAAO,GAAO,GAE3F,MAAgB,IAAPyL,GAAeM,EAAaJ,GAGzCwB,WAAY,SAASC,EAAOrG,GACxB,IACImC,EAAYkE,EAAMjN,KAAK,cACvBwG,EAAYyG,EAAMnL,KAAK,oBACvB2E,EAAYyG,KAAKC,MAAOF,EAAMnL,KAAK,yBAAyBwJ,OAC5D5E,EAAYwG,KAAKC,MAAOF,EAAMnL,KAAK,wBAAwBwJ,OAC3D3E,EAAYuG,KAAKC,MAAOF,EAAMnL,KAAK,yBAAyBwJ,OAEhEpE,MAAMC,SAASC,KAAKgG,OAAS,4BAC7BlG,MAAMC,SAASC,KAAK+C,OAAS,IAC7BjD,MAAMC,SAAS+C,MAAc,UAEjB,OAARnB,EAXYxJ,KAYPwL,eAAevE,EAAQC,EAAUC,EAASC,EAAUC,GAZ7CrH,KAcPgH,oBAAoBC,EAAQC,EAAUC,EAASC,EAAUC,IAItEyG,WAAY,WACR,IAAItM,EAAcxB,KACAR,EAAE,gBAERkB,KAAK,WACbc,EAAKiM,WAAWjO,EAAEQ,MAAO,KAG7BR,EAAEoC,UAAUrB,GAAG,QAAS,SAASiC,IACvBhD,EAAEgD,EAAEuL,QAAQrL,SAAS,WAAelD,EAAE,iCAAiCwC,OAAS,GAClFxC,EAAE,kCAAkCwO,UAI5ChO,KAAKwG,gBAAgBjG,GAAG,QAAS,UAAW,SAASiC,GACjDA,EAAEyL,kBACFzO,EAAEQ,MAAMgD,SAASD,YAAY,YAGjC/C,KAAKwG,gBAAgBjG,GAAG,QAAS,YAAa,WAC1C,IAAI2N,EAAY1O,EAAEQ,MAAM8C,QAAQ,oBAAoBP,KAAK,aACrD4L,EAAY3O,EAAEQ,MAAM2F,OACpB2E,EAAY9K,EAAEQ,MAAMS,KAAK,SAE7Be,EAAKgF,gBAAgBjE,KAAK,aAAaI,YAAY,UAEf,GAA9BuL,EAAUzN,KAAK,aAAyB0N,GAAWD,EAAUvI,QAC/DuI,EAAUvI,KAAMuI,EAAUzN,KAAK,YAC/BjB,EAAEQ,MAAM2C,YAAY,YAEpBuL,EAAUvI,KAAMwI,GAChBD,EAAUzN,KAAK,YAAY,GAC3BjB,EAAEQ,MAAMiC,SAAS,WAErBiM,EAAUzN,KAAK,MAAO6J,GACtB9K,EAAEQ,MAAM8C,QAAQ,oBAAoBC,YAAY,UAEhDvB,EAAKiM,WAAWjO,EAAEQ,MAAM8C,QAAQ,gBAAiBwH,KAGrD,IAAIpJ,EAAQ1B,EAAEoD,QAAQ1B,QACtB1B,EAAEoD,QAAQrC,GAAG,SAAU,WACnBkB,WAAW,KACHP,IAAU1B,EAAEoD,QAAQ1B,SACH1B,EAAE,gBACRkB,KAAK,WACZ,IAAIqL,EAAMvM,EAAEQ,MAAMuC,KAAK,oBAAoBA,KAAK,aAAa9B,KAAK,OAClEsL,EAAMA,GAAY,EAElBvK,EAAKiM,WAAWjO,EAAEQ,MAAO+L,MAGlC,QAIXqC,YAAa,WACT,IACIC,EAAerO,KAAKoD,sBAAsBb,KAAK,uBAC/CrB,EAAelB,KAAKoD,sBAAsBkL,aAC1CC,EAAe/O,EAAEoD,QAAQ0L,cAAiB9O,EAAEoD,QAAQ4L,aAAe5M,SAAS6M,gBAAgBC,aAE5FC,EAAe,EACfC,EAAiB,EAEf5O,KAAKoD,sBAAsBpB,OAAS,IACtC2M,EAAcE,SAAU7O,KAAKoD,sBAAsBlD,IAAI,gBAAgBoF,QAAQ,KAAM,MAGnF+I,EAASrM,OAAS,IACLqM,EAASnN,QAAqE,EAA1D2N,SAASR,EAASnO,IAAI,eAAeoF,QAAQ,KAAM,KACtF+I,EAAShN,WAAWnB,IAAI,YAAamO,EAASnN,QAAQ,gBAG1D1B,EAAE,wBAAwBkB,KAAK,WAC3BkO,EAAiBpP,EAAEQ,MAAMgD,SAASZ,SAAS0M,OAErCtP,EAAEQ,MAAM0C,SAAS,mBAAuBlD,EAAEQ,MAAM0C,SAAS,mBAAqB7B,WAAWC,WAAWC,GAAG,YACzGvB,EAAEQ,MAAME,IAAI,CACRgB,MAAiBqN,EACjBQ,eAAkBH,EAAe,KACjCtN,QAAiB,MAIzBF,OAASmN,GAAe,EAAE,IAC1B/O,EAAEQ,MAAMuC,KAAK,sCAAsCrC,IAAI,CACnDkB,OAAWA,OACXF,MAAWqN,MAYnBvO,KAAKiG,0BAA0BvF,KAAK,WAChClB,EAAEQ,MAAME,IAAI,CACRgB,MAAgBA,EAEhB6N,eAAiBJ,EAAY,KAC7BK,gBAAiBL,EAAY,SAIrC3O,KAAKsG,0BAA0B5F,KAAK,WAChCU,OAASF,GAAS,EAAE,IACpB1B,EAAEQ,MAAMuC,KAAK,0BAA0BrC,IAAI,CACvCgB,MAAUA,EACVE,OAAUA,WAIdP,WAAWC,WAAWC,GAAG,gBA5DlBf,KA6DFqG,gBAAgB3F,KAAK,WACtBlB,EAAEQ,MAAMuC,KAAK,0BAA0BrC,IAAI,CACvC6O,eAAiBJ,EAAY,KAC7BK,gBAAiBL,EAAY,SAIkB,GApEhD3O,KAoEEmG,sBAAsBX,QAAQ,cApEhCxF,KAqEEmG,sBAAsBjG,IAAI,CAC3B2J,QAAiB,MACjBoF,gBAAiB,UAK7B,IAAIC,EAAW1P,EAAE,8CACb2P,EAAWD,EAASpM,QAAQ,kBAC5BqM,EAAQnN,OAAS,GACjBkN,EAAShP,IAAI,CACTkP,gBAAkBD,EAAQhN,OAAOmM,YAAW,GAAM,GAAI,QAKlEnG,YAAYU,GACR,IAAIwG,EAAO,QAIX,OAHIxG,EAAQ,IACRwG,EAAO,WAEJxG,EAAM,IAAIwG,GAGrBC,UAAW,WACP,IAAI9N,EAAOxB,KACXwB,EAAK4E,WAAW1F,KAAK,WACjB,IAAI6O,EAAkB/P,EAAEQ,MACpBwP,EAAkBhQ,EAAEQ,MAAMuC,KAAK,kBAC/BkN,EAAkBjQ,EAAEQ,MAAMuC,KAAK,gBAC/BmN,EAAkBlQ,EAAEQ,MAAMuC,KAAK,aAC/BoN,EAAkBnQ,EAAEQ,MAAMuC,KAAK,6BAC/BqN,EAAkBpQ,EAAEQ,MAAMuC,KAAK,iBAC/BsN,EAAkBrQ,EAAEQ,MAAMuC,KAAK,qBAC/BuN,EAAkBtQ,EAAEQ,MAAMuC,KAAK,qBAC/BwN,EAAkBvQ,EAAEQ,MAAMuC,KAAK,qBAC/ByN,EAAkBxQ,EAAEQ,MAAMuC,KAAK,iBAC/B0N,EAAkBzQ,EAAEQ,MAAMuC,KAAK,qBAC/B2N,EAAkB1Q,EAAEQ,MAAMuC,KAAK,8BAC/B4N,EAAmB3Q,EAAEQ,MAAMuC,KAAK,uDAEhC6N,EAAkB5Q,EAAEQ,MAAM0C,SAAS,qBACnC2N,EAAkB7Q,EAAEQ,MAAMuC,KAAK,cAC/B+N,EAAkB9Q,EAAEQ,MAAMuC,KAAK,eAInC,GAFAiN,EAAc7J,KAAKnE,EAAK+O,YAAYX,EAAcrN,KAAK,cAAcP,SAEjEsO,EAAWtO,OAAS,EAAG,CACvB,IAAIwO,EAAWF,EAAW9K,QAAQ,kBAElC8K,EAAW/P,GAAG,QAAS,WACnB,IAAIkQ,EAAWjR,EAAEQ,MAAM0C,SAAS,SAAW,IAAM,IAEjD8N,EAAS,GAAGE,SAAS,CACjB5B,KAAM2B,EACNE,SAAU,aAKtBlB,EAAYlP,GAAG,QAAS,WACpBf,EAAEQ,MAAMgD,SAASD,YAAY,YAGjCsN,EAAU9P,GAAG,QAAS,WAClBgP,EAAexM,YAAY,eAG/BiN,EAAazP,GAAG,QAAS,WAErBmP,EAAS/M,YAAY,UACrBgN,EAAgB1N,SAAS,UACzBiO,EAAeU,KAAK,WAAW,GAC/BT,EAAiBS,KAAK,WAAW,GAE7BR,GACA5Q,EAAE,iBAAiB+C,KAAK,8BAA8BqO,KAAK,WAAW,GAE1Ed,EAAgB9B,QAChBxO,EAAEQ,MAAM2C,YAAY,UACfyN,GACDH,EAAYtK,KAAK,IAErBiK,EAAc3N,SAAS,WACvBgO,EAAYhO,SAAS,aAGzB4N,EAAgBtP,GAAG,QAAS,WACxBiB,EAAKqP,sBAAsBtB,KAG/BO,EAAgBvP,GAAG,QAAS,WACxBkB,WAAW,KACPjC,EAAEQ,MAAMiC,SAAS,QACjB4N,EAAgBlN,YAAY,QAC5BoN,EAAWhE,IAAI,IACfvK,EAAKqP,sBAAsBtB,GAC6C,GAApEA,EAAehN,KAAK,sCAAsCP,QAC1DgO,EAAarN,YAAY,WAE9B,OAGP+M,EAASnP,GAAG,QAAS,WACjB,IAAIuQ,EAAYtR,EAAEQ,MAAM0C,SAAS,UACjCgN,EAAS/M,YAAY,UAChBmO,GACDtR,EAAEQ,MAAMiC,SAAS,UAErBT,EAAKqP,sBAAsBtB,GAC3B/P,EAAEQ,MAAM8C,QAAQ,SAASH,YAAY,YAGzCoN,EAAWxP,GAAG,QAAS,WACnBkB,WAAW,KACHjC,EAAEQ,MAAM+L,OACR+D,EAAgBnN,YAAY,QAC5BkN,EAAgB5N,SAAS,UAGzB6N,EAAgB7N,SAAS,QACzB4N,EAAgBlN,YAAY,UAOjC,KACCyN,GACA5O,EAAKqP,sBAAsBtB,KAInC/P,EAAEQ,MAAMuC,KAAK,eAAehC,GAAG,SAAU,WACrC,IAAIwQ,EAAOvR,EAAEQ,MAAMgB,KAAK,QAkBnBoP,IACKb,EAAehN,KAAK,sCAAsCP,OAAS,EACrEgO,EAAa/N,SAAS,UAEtB+N,EAAarN,YAAY,WAG7ByN,GAAgB5O,EAAKqF,qBAAwBkK,EAAK1F,SAAS,aAE3D7J,EAAKwP,UAAUzB,GACf1I,qBAAsB,OAKlCrH,EAAEoC,UAAUrB,GAAG,QAAS,mBAAoB,WACxC0Q,aAAazP,EAAKmF,WAClBnF,EAAKmF,UAAYlF,WAAW,KACxBD,EAAKwP,UAAUxR,EAAEQ,QAClB,OAGPR,EAAEoC,UAAUrB,GAAG,SAAU,kDAAmD,WACxEiB,EAAKwP,UAAUxR,EAAEQ,OAEjB,IAAIwQ,EAAWhR,EAAEQ,MAAM8C,QAAQ,kBACR,GAAnB0N,EAASxO,SACTwO,EAAWhR,EAAEQ,MAAM8C,QAAQ,uBAE/B0N,EAASjO,KAAK,yBAAyBqO,KAAK,UAAYJ,EAASjO,KAAK,+BAA+BP,QAAUwO,EAASjO,KAAK,uCAAuCP,UAGxKxC,EAAEoC,UAAUrB,GAAG,SAAU,4CAA6C,WAClE,IAAIwQ,EAAOvR,EAAEQ,MAAMgB,KAAK,QAAQsE,QAAQ,OAAQ,IAChD9F,EAAE,mCAAmCuR,EAAK,KAAKH,KAAK,UAAW5Q,KAAKkR,SACpE1P,EAAKwP,UAAUxR,EAAEQ,UAIzBgR,UAAW,SAAStD,GAChB,IACIyD,EAAYzD,EAAM5K,QAAQ,sBAAsBrC,KAAK,aACzD,GAAI0Q,EAAW,CACX,IAAI5B,EAAiB/P,EAAEA,EAAE,IAAI2R,GAAW,KAEV,WAAvBzD,EAAM1M,KAAK,SAA0BH,WAAWC,WAAW4G,QAAQ,WAAgB7G,WAAWC,WAAWC,GAAG,WAL5Gf,KAME6Q,sBAAsBtB,KAKvC6B,YAAa,WACEpR,KACFN,SAASsC,OAAS,GADhBhC,KAEFN,SAAS6C,KAAK,gCAAgC7B,KAAK,WACpDlB,EAAEQ,MAAMuC,KAAK,iBAAiB7B,KAAK,WAC/B,IAAI2Q,EAAa7R,EAAEQ,MAAMC,cACTT,EAAEQ,MAAMuC,KAAK,aAAatC,cAE1CT,EAAEQ,MAAMuC,KAAK,cAAcrC,IAAI,CAC3BkB,OAAUiQ,EAAa,UAO3CC,WAAY,WACR9R,EAAE,eAAekB,KAAK,WAClB,IAAIgN,EAAQlO,EAAEQ,MACdR,EAAEQ,MAAMuC,KAAK,4BAA4B7B,KAAK,WAC1C,IAAIqQ,EAAOvR,EAAEQ,MAAMgB,KAAK,QACpB+K,EAAOvM,EAAEQ,MAAM+L,MACfwF,EAAU,EACVC,EAAc9D,EAAMnL,KAAK,mBAAmBwO,EAAK,MAAMhF,EAAI,OAC3DyF,EAAYxP,OAAS,GACrBwP,EAAY9Q,KAAK,WACb,IAAID,EAAOjB,EAAEQ,MAAMS,KAAKsQ,GACpBtQ,EAAK4K,SAAS,KACA5K,EAAKgR,MAAM,KACjBjJ,QAAQ,SAASS,EAAErE,GACnBqE,EAAEyI,cAAcC,SAAW5F,EAAI2F,eAC/BH,MAGDxF,GAAOtL,GACd8Q,MAIRxF,IACavM,EAAE,2BAA2BuM,EAAI,MACvC9I,OAAOV,KAAK,YAAYoD,KAAK4L,QAMpDV,sBAAuB,SAASnD,EAAOkE,GAAiB,EAAMpI,EAAO,GAAIqI,GAAQ,GAC7E,IAAIrQ,EAAOxB,KACPwP,EAAkB9B,EAAMnL,KAAK,kBAC7BuP,EAAkBpE,EAAMjN,KAAK,eAC7BsR,EAAkBrE,EAAMjN,KAAK,aAC7BuR,EAAkBtE,EAAMjN,KAAK,oBAC7BwR,EAAkBvE,EAAMnL,KAAK,YAC7BqN,EAAkBlC,EAAMnL,KAAK,iBAC7B2P,EAAkBxE,EAAMnL,KAAK,SAC7B4P,EAAkBzE,EAAMnL,KAAK,0BAC7B0N,EAAkBvC,EAAMnL,KAAK,qBAC7B6P,EAAkB1E,EAAMnL,KAAK,0BAC7B8P,EAAkB3E,EAAMnL,KAAK,2BAE7ByN,GADAqC,EAAkB3E,EAAMnL,KAAK,2BACXmL,EAAMnL,KAAK,kBAC7B+P,EAAkB5E,EAAMnL,KAAK,kBAAkB+L,aACnD2B,EAAY/P,IAAI,CACZqS,kBAAmBD,EAAU,OAGjC,IAAIE,EAAsB,GACtBC,EAAsB,GACtBC,EAAsB,GACtBC,EAA0B,GAC1BC,EAA0B,GAC1BC,EAA0B,GAC1BC,EAAiB,GACjBC,EAAS,GACTC,EAAS,GACTC,EAAS,GACTC,GAAa,EACbC,EAAW,GAEf3R,EAAKsF,UAAY,CAACsM,QAAW,GAAIC,MAAS,GAAIC,aAAgB,GAAIC,OAAU,IAE5E,IAAIC,EAAkB,KAElBA,EADA3S,WAAWC,WAAW4G,QAAQ,UACZgG,EAAMnL,KAAK,SAEX/C,EAAE,QAAQ+C,KAAK,yBAAyBmL,EAAM1M,KAAK,MAAM,wDAG/E,IAAIyS,EAAU,EACVC,EAAc,GAElBlK,EAAOhI,EAAKkF,SAEZ8M,EAAgB9S,KAAK,WACjB,IAAIqQ,EAAOvR,EAAEQ,MAAMgB,KAAK,QAUxB,GATY,UAAR+P,IACA+B,EAAiBtT,EAAEQ,MAAM+L,MACzBvK,EAAKsF,UAAUyM,OAAST,EACxBa,kBAAkBC,kBAGtBH,EAAUjU,EAAEA,EAAEQ,MAAM,IAAIS,KAAK,YAC7BoT,OAAUrU,EAAEA,EAAEQ,MAAM,IAAIS,KAAK,WAExBjB,EAAEQ,MAAM,GAAGkR,QAAU,CACtBgC,GAAa,EACb,IAAIY,EAASjF,SAASrP,EAAEQ,MAAMgB,KAAK,iBAEvB,WAAR+P,IACAgD,mBAAoB,EAEfvS,EAAKsF,UAAUsM,QAAQ/H,SAASyI,IACjCtS,EAAKsF,UAAUsM,QAAQY,KAAKF,IAIxB,SAAR/C,IACAoC,EAASa,KAAKF,GAETtS,EAAKsF,UAAUuM,MAAMhI,SAASyI,IAC/BtS,EAAKsF,UAAUuM,MAAMW,KAAKF,IAItB,gBAAR/C,IACKvP,EAAKsF,UAAUwM,aAAajI,SAAS7L,EAAEQ,MAAM+L,QAC9CvK,EAAKsF,UAAUwM,aAAaU,KAAKxU,EAAEQ,MAAM+L,QAInC,GAAV8H,QACM9C,IAASkC,GAAWJ,EAAwB7Q,OAAS,IACvD0Q,EAAoBO,GAASJ,EAC7BA,EAA0B,IAE9BA,EAAwBmB,KAAKxU,EAAEQ,MAAM+L,OACrCkH,EAAQlC,GAEU,GAAX0C,GACD1C,IAASgC,GAAUJ,EAAe3Q,OAAS,IAC7CwQ,EAAaO,GAAQJ,EACrBA,EAAiB,IAErBA,EAAeqB,KAAKxU,EAAEQ,MAAM+L,OAC5BgH,EAAOhC,GAEW,GAAX0C,IACD1C,IAASiC,GAAYJ,EAAoB5Q,OAAS,IACpDyQ,EAAgBO,GAAUJ,EAC1BA,EAAsB,IAE1BA,EAAoBoB,KAAKxU,EAAEQ,MAAM+L,OACjCiH,EAASjC,MAMjB4B,EAAe3Q,OAAS,IACxBwQ,EAAaO,GAAQJ,GAGrBC,EAAoB5Q,OAAS,IAC7ByQ,EAAgBO,GAAUJ,GAG1BC,EAAwB7Q,OAAS,IACjC0Q,EAAoBO,GAASJ,GAGjC,IAAIoB,EAAc,GAgDlB,GA/CAvE,SAAWwC,EAAM3P,KAAK,oBAClBmN,SAAS1N,OAAS,IAClBiS,EAAUvE,SAAS1O,KAAK,UAG5BkT,OAAOC,KAAK3B,GAAc4B,IAAKC,IAC3BX,IAAgBA,EAAc,IAAM,KAAOW,EAAM,IAAM7B,EAAa6B,GAAKC,KAAK,OAGlFJ,OAAOC,KAAK1B,GAAiB2B,IAAKC,IAC9BX,IAAgBA,EAAc,IAAM,KAAOW,EAAM,IAAM5B,EAAgB4B,GAAKC,KAAK,OAGrFJ,OAAOC,KAAKzB,GAAqB0B,IAAKC,IAClCX,IAAgBA,EAAc,IAAM,KAAOW,EAAM,IAAM3B,EAAoB2B,GAAKC,KAAK,OAGlE,KAAnBxB,IACAY,IAAgBA,EAAc,IAAM,KAAO,UAAYZ,GAG3C,WAAZmB,IACAP,IAAgBA,EAAc,IAAM,KAAO,QAAUO,GAG5C,KAATzK,IACAkK,IAAgBA,EAAc,IAAM,KAAO,aAAelK,GAGzDkK,IACDA,EAAc9Q,OAAO2R,SAASC,OAAS5R,OAAO2R,SAASE,SACvD7R,OAAO8R,QAAQC,UAAU,iBAAkB,iBAAkBjB,IAU7DR,EACAlD,EAAa/N,SAAS,UAEtB+N,EAAarN,YAAY,UAGA,OAAzBiS,qBAaA,OAZA3C,EAAShQ,SAAS,QAClByL,EAAM1M,KAAK,YAAawI,GACxBqL,cAAgBD,0BAEK,kBAAjBpT,EAAKkF,SACLlF,EAAKsT,iBAAiBpH,EAAOgG,IAG7BlS,EAAKuT,eAAerH,EAAOuG,GAC3BrR,OAAO8R,QAAQC,UAAU,iBAAkB,iBAAkBjB,KAMlD,GAAflS,EAAKiF,QAELjH,EAAEwV,KAAK,CACHxL,KAAM,OACN5F,IAAKqR,OAAOC,SACZzU,KAAM,CACF0U,OAAQ,YACR3L,KAAMsI,EACNsD,UAAWrD,EACXsD,iBAAkBrD,EAClBsD,OAAQ3H,KAAK4H,UAAU/C,GACvBgD,aAAc7H,KAAK4H,UAAU9C,GAC7BgD,kBAAmB9H,KAAK4H,UAAU7C,GAClCgD,gBAAiB5C,EACjB6C,QAAS1B,EACT2B,UAAWpM,EACXqM,YAAa3C,EACb4C,UAAW3C,GAGf4C,WAAY,WACRnG,EAAcjK,KAAK,IACnBwM,EAAgBxM,KAAK,IACrBsK,EAAYtK,KAAK,IACjB0M,EAAiBhD,KAAK,IACtBgD,EAAiBvP,QAAQ,uBAAuBH,YAAY,cAC5DsP,EAAStP,YAAY,QACrByP,EAAQzP,YAAY,QACpBnB,EAAKiF,QAAS,GAGlBuP,QAAS,SAASC,GACd,IAAIC,EAAcD,EAAe,KACjChE,EAAShQ,SAAS,QAClByL,EAAM1M,KAAK,YAAawI,GAEZ,QAARA,GACAoG,EAAcnK,OAAOyQ,GACrBtG,EAAc/J,aACd2J,EAAc7J,KAAKnE,EAAK+O,YAAYX,EAAcrN,KAAK,cAAcP,WAGrE6S,cAAgBoB,EAAe,KAC/BzU,EAAKsT,iBAAiBpH,EAAOgG,EAAawC,IAE9C5W,YAAYc,eAEZoB,EAAKiF,QAAS,EAEVyM,GACAhQ,mBAAmBS,aAAa,KAAM,IAAI+J,EAAM1M,KAAK,OAGrD4Q,GACAhP,OAAO8R,QAAQC,UAAU,iBAAkB,iBAAkBjB,OAOjFyC,aAAc,SAASzI,EAAO0I,EAAW,OAAQC,GAC7C,IAAI7U,EAAOxB,KACPwP,EAAmB9B,EAAMnL,KAAK,kBAC9B+T,EAAmB5I,EAAMnL,KAAK,mCAC9BgU,EAAmB7I,EAAMnL,KAAK,uBAC9B0N,EAAmBvC,EAAMnL,KAAK,qBAC9BiU,EAAmB9I,EAAMnL,KAAK,iBAC9BkU,EAAmB/I,EAAMnL,KAAK,2BAEpB,gBAAV8T,GACAC,EAAUI,KAAK,SAASC,EAAGC,GACvB,IAAIC,EAAKC,OAAOtX,EAAEmX,GAAGlW,KAAK,UACtBsW,EAAKD,OAAOtX,EAAEoX,GAAGnW,KAAK,UAC1B,OAAIoW,EAAKE,EAAW,EAChBF,EAAKE,GAAY,EACd,IAEXT,EAAUU,SAAStS,SAAS6R,IAE5BD,EAAU5V,KAAK,WACX,IAAIqN,EAASkJ,KAAKC,MAAMD,KAAKE,SAAWb,EAAUtU,OAAQ,GAAK,EAC3DoV,EAAUH,KAAKC,MAAMD,KAAKE,SAAWb,EAAUtU,OAAQ,GAAK,EAChEsU,EAAUe,GAAGtJ,GAAQ/I,OAAOsR,EAAUe,GAAGD,MAIjC,kBAAZhB,IACAzC,kBAAkB2D,cACc,OAA5B3D,kBAAkB4D,QAClB5D,kBAAkB4D,MAAMC,iBACxB7D,kBAAkB4D,MAAME,oBAI3BnB,EAAUtU,OAAS,IAASR,EAAKsF,UAAUsM,QAAQpR,OAAS,GAAOR,EAAKsF,UAAUuM,MAAMrR,OAAS,GAAOR,EAAKsF,UAAUwM,aAAatR,OAAS,IAC9IsU,EAAUrU,SAAS,QACnBqU,EAAU5V,KAAK,WACX,IAAIgX,EAAalY,EAAEQ,MAAMS,KAAK,cAAckX,WAAWhG,OACnDiG,EAAapY,EAAEQ,MAAMS,KAAK,YAAYkX,WAAWhG,OACjDkG,EAAarY,EAAEQ,MAAMS,KAAK,gBAAgBkX,WAAWhG,OACrDmG,EAAatY,EAAEQ,MAAMS,KAAK,WAC1BsX,EAAarK,EAAMnL,KAAK,kCAAkCuV,GAC1DhT,EAAatF,EAAEQ,MAAMuC,KAAK,eAAe8M,OACzC2I,GAAa,EAcjB,GAZAN,EAA4B,KAAfA,EAAoBA,EAAWjG,MAAM,KAAK2C,IAAI0C,QAAU,GACrEc,EAA0B,KAAbA,EAAkBA,EAASnG,MAAM,KAAK2C,IAAI0C,QAAU,GACjEe,EAA0B,KAAbA,EAAkBA,EAASpG,MAAM,KAAO,GAEhDjQ,EAAKsF,UAAUwM,aAAatR,OAAS,GAAO6V,EAAS7V,OAAS,GAC/DR,EAAKsF,UAAUwM,aAAa9K,QAAQhG,IAC5BqV,EAASxM,SAAS7I,KAClBwV,GAAW,KAKlBxW,EAAKsF,UAAUsM,QAAQpR,OAAS,GAAMgW,EAAU,CACjD,IAAIC,GAAW,EACXP,EAAW1V,OAAS,GACpB0V,EAAWlP,QAAQhG,IACXhB,EAAKsF,UAAUsM,QAAQ/H,SAAS7I,KAChCyV,GAAW,KAIvBD,EAAWC,EA4Bf,GAAKzW,EAAKsF,UAAUuM,MAAMrR,OAAS,GAAMgW,EAAU,CAC/C,IAAIE,GAAa,EACbN,EAAS5V,OAAS,GAClB4V,EAASpP,QAAQhG,IACThB,EAAKsF,UAAUuM,MAAMhI,SAAS7I,KAC9B0V,GAAa,KAIzBF,EAAWE,EAGf,GAA8B,IAAzB1W,EAAKsF,UAAUyM,QAAiByE,EAAU,CAC3C,IAAIG,EAAcrT,EAAM4M,cAAcrG,SAAS7J,EAAKsF,UAAUyM,OAAO7B,eACrEsG,EAAWG,EAGXH,GACAxY,EAAEQ,MAAM2C,YAAY,QACpBoV,EAAWpV,YAAY,QAAQA,YAAY,cAE3CoV,EAAW9V,SAAS,qBAI5BqU,EAAU3T,YAAY,QAG1B,IAAIyV,EAAe1K,EAAMnL,KAAK,8CAA8CP,OACxD,GAAhBoW,EACA1K,EAAMnL,KAAK,mBAAmBI,YAAY,QAE1C+K,EAAMnL,KAAK,mBAAmBN,SAAS,QAE3C3C,YAAYc,eAEPoB,EAAKsF,UAAUsM,QAAQpR,OAAS,GAAOR,EAAKsF,UAAUwM,aAAatR,OAAS,GAC7EiO,EAAYjN,SAASL,YAAY,WACjC6T,EAAa7T,YAAY,WAET,kBAAZyT,IAC+B,GAA3B5U,EAAKoF,qBACL+M,kBAAkBjS,OAClBF,EAAKoF,oBAAqB,GAE9BpF,EAAKqF,qBAAsB,GAG/B2I,EAAc7J,KAAKnE,EAAK+O,YAAY6H,IACpC3B,EAAiB9T,YAAY,cAE7B6T,EAAavU,SAAS,WACtBgO,EAAYjN,SAASf,SAAS,WAC9BuN,EAAc7J,KAAKnE,EAAK+O,YAAY,IACpC/O,EAAKqF,qBAAsB,EAE3B4P,EAAiBlU,KAAK,qBAAqBN,SAAS,QACpDwU,EAAiBlU,KAAK,qBAAqBI,YAAY,QACvD8T,EAAiBlU,KAAK,qBAAqBwJ,IAAI,IAC/C0K,EAAiBxU,SAAS,cAIlC8S,eAAgB,SAASrH,EAAO2I,GACjBrW,KAENmW,aAAazI,EAAO,OAAQ2I,IAGrCvB,iBAAkB,SAASpH,EAAOgG,EAAawC,GAC3C,IACI/D,EAAkBzE,EAAMnL,KAAK,0BAC7B0N,EAAkBvC,EAAMnL,KAAK,qBAO7B2T,IACA/D,EAAgB1M,OAAOyQ,GACvB/D,EAAgBtM,cAXT7F,KAcNmW,aAAazI,EAAO,kBAEzB9L,SAAS6M,gBAAgBvB,MAAMmL,YAAY,mBAAoBpI,EAAY/O,QAAU,MAErF0B,OAAO8R,QAAQC,UAAU,iBAAkB,iBAAkBjB,GAlBlD1T,KAoBF4G,oBACL+M,kBAAkB2E,YAAY3E,kBAAkB4E,YAKxDC,OAAQ,WAGJ,IAAIC,EAAsBjZ,EAAE,4BACxBiZ,EAAoBzW,OAAS,GACXyW,EAAoBlW,KAAK,iBAC/B7B,KAAK,WAID,EAHAlB,EAAEQ,MAAMgB,KAAK,SACZxB,EAAEQ,MAAMgB,KAAK,UAEC,MACnBH,WAAWC,WAAW4X,KAAK,SAC3BlZ,EAAEQ,MAAME,IAAI,aAAc,UAE1BV,EAAEQ,MAAME,IAAI,aAAc,YAO9CyY,YAAa,WACT,IAAInX,EAAOxB,KAENwB,EAAK4E,YAEN5E,EAAK4E,WAAW1F,KAAK,WAEjB,IAAI6S,EAAS3Q,OAAO2R,SAAShB,OACzBA,GACgBA,EAAOjO,QAAQ,IAAK,IAAImM,MAAM,KACpCjJ,QAAQhG,IACd,IAAIoW,EAAYpW,EAAEiP,MAAM,KAAK,GAAGA,MAAM,KAClCoH,EAAYrW,EAAEiP,MAAM,KAAK,GAEzBoH,GACAD,EAAKpQ,QAAQ5D,IACTpF,EAAE,cAAcqZ,EAAU,YAAYjU,EAAE,MAAMgM,KAAK,WAAW,KAGrD,aAAbiI,IACArX,EAAKkF,SAAYkS,EAAK,MAKlCpX,EAAKqP,sBAAsBrR,EAAEQ,OAAO,EAAOwB,EAAKkF,aAa5DoS,eAAgB,WACZ,IAAIC,EAAmBvZ,EAAE,qBACrBuZ,EAAiB/W,OAAS,GAC1B+W,EAAiBrY,KAAK,WAClB,IAAIgN,EAAQlO,EAAEQ,MACHR,EAAEQ,MAAMgZ,SAAS,CACxBC,aAAc,gBACdC,UAAW,OACXC,UAAU,EACVC,MAAM,EACNC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXC,SAAU,MAGTjZ,GAAI,kBAAmB,SAAUkZ,EAAO/Q,GACzC,IAAIrE,EAAK7E,EAAEQ,MAAMuC,KAAK,6BAA6B9B,KAAK,aACxDiN,EAAMzK,OAAOV,KAAK,iBAAiBI,YAAY,UAC/C+K,EAAMzK,OAAOV,KAAK,yBAAyB8B,EAAG,KAAKpC,SAAS,eAM5EyX,gBAAiB,WACb,IAAIlY,EAAOxB,KACP2Z,EAAcna,EAAE,8BAGpB,GAAIma,EAAW3X,OAAS,EAAG,CACvB4X,KAAKC,eAAeC,eACpB,IAAIC,EAAKH,KAAKI,SAAS,CACnBC,cAAe,CACXC,QAASP,EACTQ,MAAO,UACPC,IAAK,gBAKbT,EAAWpX,KAAK,cAAc7B,KAAK,SAASkE,EAAEqE,GAC1C8Q,EAAGM,OAAO7a,EAAEQ,MAAO,CACfsB,QAAS,GACX,CACEA,QAAS,EACTgZ,QAAS,CACL5Z,KAAM,GACN6Z,QAAS,WACL,IAAIC,EAAUhb,EAAEQ,KAAKya,UAAU,IAAIlY,KAAK,gBACtBmY,OAAOC,cAAc,CACnCC,UAAWJ,EAAQzS,IAAI,GACvB8S,SAAU,MACVC,UAAU,EACVC,MAAM,EACNC,KAAMR,EAAQ/Z,KAAK,SAEbwa,UAGnB,QAAQC,KAAK1b,EAAEQ,MAAMuC,KAAK,eAAgB,CACzC4Y,SAAU,EACVC,KAAM,OACNC,UAAW,EACXC,WAAY,YACZC,SAAU,WACNvb,KAAKya,UAAUjS,QAAQuF,IACnB,MAAMhC,EAAM6N,KAAK4B,YAAYzN,EAAQ,aACrCA,EAAOsN,UAAY7Z,EAAKia,iBAAiB1P,OAGlD,YAQf0P,iBAAkB,SAASC,GAEvB,OADUA,EAAE/D,WAAWlG,MAAM,KAChB,GAAGnM,QAAQ,wBAAyB,MAGrD5D,KAAM,WACF,IAAIF,EAAOxB,KACXwB,EAAKiF,QAAS,EACdjF,EAAK8N,YACL9N,EAAK4M,cACL5M,EAAK4P,cAEL5P,EAAKgX,SAEQ5V,OAAO2R,SAAShB,OAC7B/R,EAAKmX,cACLnX,EAAKsX,iBACLtX,EAAKkY,kBACLlY,EAAKsM,aAeLtO,EAAEoD,QAAQrC,GAAG,SAAU,SAASiC,GAC5BhB,EAAK4P,cACL5P,EAAK4M,cACL5M,EAAKgX,WAGThZ,EAAE,yCAAyCe,GAAG,QAAS,SAASiC,GAC5DA,EAAEC,iBACF,IAAIkZ,EAAoBnc,EAAEQ,MAAMgB,KAAK,QAAQsE,QAAQ,IAAI,IACrDsW,EAAoBpc,EAAEQ,MAAM8C,QAAQ,iCAChB8Y,EAAkBrZ,KAAK,iCAE1CI,YAAY,UACjBnD,EAAEQ,MAAMiC,SAAS,UAEjBT,EAAKkF,SAAWiV,EACJ,kBAARA,GACAnc,EAAE,cAAcsE,QAAQ,CACpBC,UAAW6X,EAAkBxZ,SAAS4B,IAAMxE,EAAE,UAAU4B,UACzD,KAEPI,EAAKqP,sBAAsB+K,GAAmB,EAAMD,GAAM,KAG9Dnc,EAAE,uCAAuCkB,KAAK,WAC1C,IAAImb,EAAWrc,EAAEQ,MACH6b,EAAStZ,KAAK,eAChBP,OAAS,GACjBP,WAAW,WACPoa,EAAS7C,SAAS,CACdC,aAAc,cACdC,UAAW,OACXC,UAAU,EACVC,MAAM,EACNI,SAAU,IACVsC,sBAAsB,EACtBzC,YAAY,EACZE,WAAW,EACXD,iBAAiB,KAEtB,OAIX9Z,EAAE,mCAAmCkB,KAAK,WACtC,IAAImb,EAAWrc,EAAEQ,MACH6b,EAAStZ,KAAK,gBAChBP,OAAS,GACjBP,WAAW,WACPoa,EAAS7C,SAAS,CACdC,aAAc,eACdC,UAAW,OACXC,UAAU,EACVC,MAAM,EACNC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXwC,WAAY,CACRC,GAAI,GACJC,GAAI,GAAIvP,GAAI,GACZwP,GAAI,GAAIvP,GAAI,GACZwP,GAAI,OAGb,OAIX3a,EAAK+E,cAAchG,GAAG,QAAS,WAC3Bf,EAAEQ,MAAM+C,YAAY,UACpB,IAAIqZ,EAAI,EACJ5c,EAAEQ,MAAM0C,SAAS,WACjBlD,EAAEQ,MAAMiD,OAAO5B,WAAWX,KAAK,WAC3B0b,GAAK5c,EAAEQ,MAAMC,gBAIrBT,EAAEQ,MAAMiD,OAAO7B,OAAOgb,OAIlCC,qBAAuB,CACnBC,mBAAsB9c,EAAE,wBACxB+c,YAAsB/c,EAAE,gBACxBgd,SAAsBhd,EAAE,wBACxBid,UAAsBjd,EAAE,8BACxBkd,cAAsBld,EAAE,gCACxBmd,eAAsBnd,EAAE,wBACxBod,oBAAsBpd,EAAE,8BACxBqd,aAAsBrd,EAAE,4BACxByS,SAAsBzS,EAAE,kBACxBiH,QAAsB,EACtBqW,OAAsB,GAEtBC,kBAAmB,SAASC,GAAa,GACrC,IAAIxb,EAAOxB,KACP0T,EAAc,sBAElB,GAAmB,GAAflS,EAAKiF,OAAiB,CACtB,IAAIwW,EAAczb,EAAKob,oBAAoBnc,KAAK,gBAAgBkX,WAAWhG,OACvEuL,EAAc1b,EAAKob,oBAAoBnc,KAAK,eAAekX,WAAWhG,OAE1EnS,EAAEwV,KAAK,CACHxL,KAAM,OACN5F,IAAKqR,OAAOC,SACZzU,KAAM,CACF0U,OAAQ,mBACRgI,QAASF,EACTH,OAAQI,EACRE,QAAS5b,EAAKob,oBAAoBnc,KAAK,YACvC4c,UAAW7b,EAAKob,oBAAoBnc,KAAK,cACzC6c,aAAc9b,EAAKob,oBAAoBnc,KAAK,kBAGhDsV,WAAY,WACRvU,EAAKqb,aAAata,KAAK,8BAA8BoD,KAAK,IAC1DnE,EAAKyQ,SAAStP,YAAY,QAC1BnB,EAAKqb,aAAa5a,SAAS,eAC3BT,EAAKiF,QAAS,GAGlBuP,QAAS,SAASC,GACd,IAAIC,EAAcD,EAAe,KAIjC,GAHAzU,EAAKyQ,SAAShQ,SAAS,QACvBT,EAAKqb,aAAata,KAAK,8BAA8BoD,KAAKnG,EAAE0W,GAAa3T,KAAK,8BAA8BoD,QAExGqX,EAAY,CACZxb,EAAKqb,aAAata,KAAK,cAAcoD,KAAKnG,EAAE0W,GAAa3T,KAAK,cAAcoD,QAE5EuX,EAAaA,GAA0B1b,EAAKsb,OAE5C,IAAIS,EAAe/d,EAAE,kBAAkB0d,EAAW,MAC9CK,EAAavb,OAAS,GACtBP,WAAW,KACH8b,EAAa7a,SAAS,gBACtBlB,EAAKsb,OAASI,EACdK,EAAava,SAAS3B,WAAW0G,IAAI,GAAGiG,SAExCuP,EAAavP,SAElB,KAI2C,QAAlDxM,EAAKob,oBAAoBnc,KAAK,kBAC9Be,EAAKob,oBAAoB/W,aAEzBoX,IACAvJ,IAAgBA,EAAc,IAAM,KAAO,YAAcuJ,EAAY3X,QAAQ,IAAK,MAElF4X,IACAxJ,IAAgBA,EAAc,IAAM,KAAO,WAAawJ,GAEvDxJ,IACDA,EAAc9Q,OAAO2R,SAASC,OAAS5R,OAAO2R,SAASE,UAE3D7R,OAAO8R,QAAQC,UAAU,qBAAsB,qBAAsBjB,GAErElS,EAAKqb,aAAala,YAAY,eAC9BnB,EAAKiF,QAAS,OAM9B/E,KAAM,WACF,IAAIF,EAAOxB,KAuCX,GArCAwB,EAAK8a,mBAAmB/b,GAAG,QAAS,WAChCf,EAAEQ,MAAM+C,YAAY,YAGxBvB,EAAKkb,cAAcnc,GAAG,QAAS,SAASiC,GACpCA,EAAEC,iBAEFjD,EAAEQ,MAAM+C,YAAY,aACpBvB,EAAKmb,eAAe5Z,YAAY,aAGpCvB,EAAKmb,eAAepa,KAAK,8BAA8BhC,GAAG,QAAS,SAASiC,GACxEA,EAAEC,iBACF,IAAI+a,EAAche,EAAEQ,MAAMqP,OAC1B7N,EAAKob,oBAAoBnc,KAAK,eAAgBjB,EAAEQ,MAAMS,KAAK,aAG3DjB,EAAEQ,MAAMyd,SAAS,mCAAmC9a,YAAY,QAChEnD,EAAEQ,MAAMiC,SAAS,QAEjBT,EAAKkb,cAAcrN,KAAKmO,GAExBhc,EAAKkb,cAAc1O,QAEnBxM,EAAKub,mBAAkB,KAG3Bvd,EAAEoC,UAAUrB,GAAG,QAAS,4BAA6B,SAASiC,GAC1DA,EAAEC,iBACFjB,EAAKob,oBAAoBnc,KAAK,cAAejB,EAAEQ,MAAMS,KAAK,YAE1DjB,EAAEQ,MAAMyd,SAAS,yCAAyC9a,YAAY,eACtEnD,EAAEQ,MAAMiC,SAAS,eAEjBT,EAAKub,sBAGLvb,EAAK+a,YAAYva,OAAS,GAAKnB,WAAWC,WAAWC,GAAG,UAAW,CACnE,IAAI2c,EAAQlc,EAAK+a,YAAYvD,SAAS,CAClCC,aAAc,WACdC,UAAW,OACXC,UAAU,EACVC,MAAM,EACNC,YAAY,EACZsE,YAAY,EACZrE,iBAAiB,EACjBC,WAAW,EACXhZ,GAAI,CACAqd,OAAQ,SAAUlV,GACd,IAAImV,EAAkB,KAClBC,EAAc,KAClBtc,EAAKgb,SAAS9b,KAAK,WACf,IAAIib,EAAOnc,EAAEQ,MAAMgB,KAAK,QAEZ,kBAAR2a,EACAkC,EAAkBre,EAAEQ,MACL,cAAR2b,IACPmC,EAActe,EAAEQ,SAIX,GAAT0I,GACAoV,EAAYnb,YAAY,eACxBkb,EAAgB5b,SAAS,gBAClByG,GAASlH,EAAK+a,YAAYha,KAAK,YAAYP,OAAO,GACzD6b,EAAgBlb,YAAY,eAC5Bmb,EAAY7b,SAAS,iBAErB4b,EAAgBlb,YAAY,eAC5Bmb,EAAYnb,YAAY,oBAMxCnB,EAAKgb,SAAS9b,KAAK,WACflB,EAAEQ,MAAMO,GAAG,QAAS,SAASiC,GACzBA,EAAEC,iBAEF,IAAIkZ,EAAOnc,EAAEQ,MAAMgB,KAAK,QAEZ,kBAAR2a,EACA+B,EAAMnb,KAAK,uCAAuCyL,QACnC,cAAR2N,GACP+B,EAAMnb,KAAK,mCAAmCyL,YAK1DxM,EAAKib,UAAUlc,GAAG,QAAS,SAASiC,GAChCA,EAAEC,iBACF,IAAIsb,EAAWve,EAAEQ,MAAMS,KAAK,aAE5Be,EAAKib,UAAU9Z,YAAY,aAC3BnD,EAAEQ,MAAMiC,SAAS,aAEjBT,EAAK+a,YAAY5Z,YAAY,gBAC7BnB,EAAK+a,YAAYha,KAAK,YAAYI,YAAY,kBAC9B,OAAZob,IACAvc,EAAK+a,YAAYta,SAAS,gBAC1BT,EAAK+a,YAAYha,KAAK,YAAYN,SAAS,QAC3CT,EAAK+a,YAAYha,KAAK,YAAY7B,KAAK,WACnC,IAAIsd,EAASxe,EAAEQ,MAAMS,KAAK,WACtBwd,EAASze,EAAEQ,MAAMS,KAAK,WAE1B,GAAIud,EAAQ,CACR,IAAIE,EAAUF,EAAOvM,MAAM,KACvByM,GACAA,EAAQ1V,QAAQ8B,IACRyT,GAAYzT,GACZ9K,EAAEQ,MAAM2C,YAAY,UAMiD,GAAjFnB,EAAK+a,YAAYha,KAAK,0BAA0B0b,EAAO,gBAAgBjc,QAAgBxC,EAAEQ,MAAM0C,SAAS,SACxGlD,EAAEQ,MAAMiC,SAAS,gBAI7Byb,EAAM1E,WACNxZ,EAAEoD,QAAQub,cAK1BC,gBAAkB,CACdC,YAAa7e,EAAE,gBACf8e,SAAU9e,EAAE,aACZ+e,YAAa/e,EAAE,iBACfgf,cAAehf,EAAE,mBACjBif,eAAgBjf,EAAE,mBAClBkf,mBAAoBlf,EAAE,uBACtBmf,eAAgBnf,EAAE,yBAClBof,kBAAmBpf,EAAE,sBACrBqf,oBAAqBrf,EAAE,yBAEvBsf,WAAY,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAC3HC,SAAUvf,EAAE,aACZwf,WAAYxf,EAAE,eACdyf,cAAe,GACfC,aAAc,GACdC,SAAU,EACVzP,SAAUlQ,EAAE,aACZiH,QAAQ,EAER2Y,UAAW,SAASC,GAAQ,GACxB,IAGIC,EAHOtf,KAGaqe,YAAY5d,KAAK,QAAQgR,MAAM,KACnD8N,EAJOvf,KAIaqe,YAAY5d,KAAK,OAEzC,GAAI4e,EACA,IAAIG,EAAW,IAAIC,KAAKH,EAAa,GAAIzQ,SAASyQ,EAAa,IAAK,QAEhEE,EAAW,IAAIC,KAAKH,EAAa,GAAIzQ,SAASyQ,EAAa,GAAK,GAAI,GAE5E,IAAII,GAAS,IAAM7Q,SAAS2Q,EAASG,WAAW,IAAIC,OAAO,GACvDC,EAAQL,EAASM,cAAc,IAAIJ,EACnCK,EAAUF,EAAM,MAEpB7f,KAAKqe,YAAY5d,KAAK,OAAQsf,GAC9B/f,KAAKqe,YAAYrd,KAAK,YAAa+e,GACnC/f,KAAKqe,YAAY1Y,KAjBN3F,KAiBiB8e,WAAWU,EAASG,YAAc,IAAMH,EAASM,eACzEP,GAAeM,EACf7f,KAAKqe,YAAYpb,OAAOhB,SAAS,OAEjCjC,KAAKqe,YAAYpb,OAAON,YAAY,OAExC3C,KAAKggB,aAAaD,IAGtBE,iBAAkB,WACd,IAAIze,EAAOxB,KACXwB,EAAK+c,YAAYhe,GAAG,QAAS,WACzBiB,EAAK4d,WAAU,KAGnB5d,EAAKgd,cAAcje,GAAG,QAAS,WAC3BiB,EAAK4d,WAAU,MAIvBY,aAAc,SAASE,EAAMC,EAAS,IAClC,IAAI3e,EAAOxB,KACQ,GAAfwB,EAAKiF,QACLjH,EAAEwV,KAAK,CACHxL,KAAM,OACN5F,IAAKqR,OAAOC,SACZzU,KAAM,CACF0U,OAAQ,eACR+K,KAAMA,EACNC,OAAQA,GAGZpK,WAAY,WACRvU,EAAKiF,QAAS,EACdjF,EAAK8c,SAASrc,SAAS,YAG3B+T,QAAS,SAASC,GACd,IAAIC,EAAcD,EAAe,KACjC,IAAImK,EAAY5gB,EAAE0W,GAAalV,KAAK,SACpCQ,EAAKkd,mBAAmBnc,KAAK,mBAAmB8d,YAAYnK,GAC5D1U,EAAK8e,gBAEL7e,WAAW,KACPD,EAAKkd,mBAAmBnc,KAAK,mBAAmBN,SAASme,IAC1D,IACH5e,EAAK+e,eACL/e,EAAKgf,eACLhf,EAAKif,oBACLjf,EAAKiF,QAAS,EACdjF,EAAK8c,SAAS3b,YAAY,eAM1C8d,kBAAmB,WACf,IAAIjf,EAAOxB,KACXyB,WAAW,KAEP,IAAIif,EAAelf,EAAKkd,mBAAmBnc,KAAK,mBAC5Cme,EAAa1e,OAAS,IAClB0e,EAAahe,SAAS,aACtBlB,EAAKmd,eAAehc,YAAY,QAEhCnB,EAAKmd,eAAe1c,SAAS,UAItC,MAGP0e,eAAgB,WACZ,IAAInf,EAAOxB,KA+CX,GAAIwB,EAAKwd,WAAWhd,OAAS,EAAG,CAC5B,IAAI4e,EAAYpf,EAAKkd,mBAAmBnc,KAAK,mBAAmB9B,KAAK,SAASgR,MAAM,KACpFjQ,EAAKwd,WAAW6B,gBAAgB,CAC5BC,OAAQ,eACRC,WAAW,EACXC,aAAa,EACbC,eAAe,EACfC,YAAY,EACZC,SAAU,SACVC,SAAU,WACN,OAAOphB,KAAKqhB,WAEhBC,SAAU,SAASC,GACfvhB,KAAKqhB,UAAYE,EACjB,IAAIC,EAAUD,EAAE9P,MAAM,QAClBgQ,EAAc,IAAIhC,KAAK+B,EAAQ,IAC/BE,EAAc,IAAIjC,KAAK+B,EAAQ,IAEnCC,EAAcA,EAAY3B,cAAc,KAAK,IAAMjR,SAAS4S,EAAY9B,WAAW,IAAIC,OAAO,GAAG,IAAI6B,EAAYE,UACjHD,EAAcA,EAAU5B,cAAc,KAAK,IAAMjR,SAAS6S,EAAU/B,WAAW,IAAIC,OAAO,GAAG,IAAI8B,EAAUC,UAE3GngB,EAAKwe,aAAayB,EAAaC,IAEnCE,aAAa,EACbC,sBAAuB,iGACvBC,sBAAuB,oGACvBC,WAAY,CAAC,KAAMC,SAASja,IAAI,SAChCka,cAAe,SAASC,GACpB,IAAIC,EAAMH,OAAOE,GAAGpB,OAAO,cAC3B,IAAIsB,EAAWD,GAAOH,SAASlB,OAAO,cAAgB,QAAU,GAIhE,MAAO,EAFQ,EACfsB,GAAUxB,EAAUvV,SAAS8W,GAAO,aAAe,GAFpC,OAKpBE,KAAK,oBAAoB,WACxB7gB,EAAK8gB,sBAGT9gB,EAAK8gB,oBACL9iB,EAAEoD,QAAQrC,GAAG,SAAU,WACnBiB,EAAK8gB,sBAIb9iB,EAAEoC,UAAUrB,GAAG,QAAS,yBAA0B,SAASiC,GACvDA,EAAEC,iBACFjD,EAAEQ,MAAMgD,SAASD,YAAY,eAEjC/C,KAAKsgB,iBAGTA,cAAe,WACX,IAAIiC,EAAgB/iB,EAAE,kBAClB+iB,EAAcvgB,OAAS,GACvBugB,EAAchgB,KAAK,eAAerC,IAAI,qBAAsB,aAIpEoiB,kBAAmB,WACJtiB,KACFgf,WAAWhd,OAAS,GACzBP,WAAW,KACP,IACIqN,EADatP,EAAE,2BACG4C,SAAS0M,KAC/BlN,SAAS6M,gBAAgBvB,MAAMmL,YAAY,2BAA4BvJ,EAAO,OAC/E,MAIX0T,sBAAuB,SAASC,GAC5B,OAAOA,EAAOC,OAAO,GAAGC,cAAgBF,EAAO7C,MAAM,IAGzDgD,cAAe,WACA5iB,KACN0e,mBAAmBnc,KAAK,aAAaI,YAAY,UAD3C3C,KAEN0e,mBAAmBnc,KAAK,qBAAqBI,YAAY,UAFnD3C,KAGN0e,mBAAmBnc,KAAK,2BAA2BoD,KAAK,KAGjE4a,aAAc,WACV,IACIsC,EADO7iB,KACyB,aAAK,uBAD9BA,KAC0Dkf,aAAa,KAAO,GACrF4D,EAFO9iB,KAE0B,cAAI,6BAF9BA,KAEgEif,cAAc,KAAO,GAIhG,GANWjf,KAIN0e,mBAAmBnc,KAAK,yBAAyBqD,SAJ3C5F,KAMDif,eANCjf,KAMqBkf,aAAe,CANpClf,KAOF0e,mBAAmBnc,KAAK,mBAAmBN,SAAS,QACzD,IAAI8gB,EARG/iB,KAQgB0e,mBAAmBnc,KAAK,kBAAkBsgB,EAAWC,GAC5EC,EAAYpgB,YAAY,QATjB3C,KAUEkf,eACL6D,EAAYxgB,KAAK,YAAYN,SAAS,YACtC8gB,EAAYxgB,KAAK,WAAWN,SAAS,QACrC8gB,EAAYxgB,KAAK,6BAbdvC,KAagDkf,aAAa,MAAMvc,YAAY,cAb/E3C,KAgBF0e,mBAAmBnc,KAAK,YAAYI,YAAY,YAhB9C3C,KAiBF0e,mBAAmBnc,KAAK,mBAAmBI,YAAY,QAjBrD3C,KAkBF0e,mBAAmBnc,KAAK,WAAWI,YAAY,QAKxD,IAAIqgB,EAvBOhjB,KAuBoB0e,mBAAmBnc,KAAK,yBACnCygB,EAAoBzgB,KAAK,kBAE/BlB,WAAWsB,YAAY,cACrCqgB,EAAoBzgB,KAAK,kBAAkB7B,KAAK,WAC5C,IAAIuiB,EAAa,KAEjBzjB,EAAEQ,MAAMqB,WAAWX,KAAK,WACdlB,EAAEQ,MAAM0C,SAAS,SAA2B,MAAdugB,IAChCA,EAAazjB,EAAEQ,SAInBijB,GACAA,EAAWhhB,SAAS,gBAI5B,IAAIihB,EAAW1jB,EAAE,mBACb2jB,EAAe3jB,EAAE,wBACrB,GAAI0jB,EAASlhB,OAAS,EAAG,CACrB,IAAI0e,EA5CG1gB,KA4CiB0e,mBAAmBnc,KAAK,mBAC5C2gB,EAASlhB,QAAUmhB,EAAanhB,OAChC0e,EAAaze,SAAS,aAEtBye,EAAa/d,YAAY,aAhDtB3C,KAkDFygB,oBAlDEzgB,KAqDNwgB,gBAGT4C,cAAe,WACX,IAAI5hB,EAAOxB,KAEXwB,EAAKud,SAASxe,GAAG,QAAS,WACtB,IAAI8iB,EAAW7jB,EAAEQ,MAAMS,KAAK,QAC5B4iB,EAAaA,GAAY,QAEzB7hB,EAAKohB,gBACLphB,EAAKud,SAASpc,YAAY,UAC1BnB,EAAKud,SAASre,KAAK,WACflB,EAAEQ,MAAM2C,YAAY,YAAYnD,EAAEQ,MAAMS,KAAK,WAGjDjB,EAAEQ,MAAMiC,SAAS,UACjBzC,EAAEQ,MAAMiC,SAAS,YAAYohB,GAE7B7hB,EAAK0d,aAA4B,SAAZmE,EAAuB,GAAKA,EACjD7hB,EAAK+e,kBAIb+C,eAAgB,WACZ,IAAI9hB,EAAOxB,KAEXR,EAAE,oBAAoBe,GAAG,QAAS,UAAW,WACzCf,EAAEQ,MAAMgD,SAASD,YAAY,YAGjCvD,EAAE,oBAAoBe,GAAG,QAAS,YAAa,WAC3CiB,EAAKohB,gBACL,IAAIzU,EAAY3O,EAAEQ,MAAM2F,OACpBuI,EAAY1O,EAAEQ,MAAM8C,QAAQ,oBAAoBP,KAAK,aACrDiH,EAAOhK,EAAEQ,MAAM8C,QAAQ,oBAAoBrC,KAAK,QAEpDjB,EAAE,oBAAoB+C,KAAK,aAAaI,YAAY,UAEhB,GAA9BuL,EAAUzN,KAAK,aAAyB0N,GAAWD,EAAUvI,QAC/DuI,EAAUvI,KAAMuI,EAAUzN,KAAK,YAC/BjB,EAAEQ,MAAM2C,YAAY,UAER,SAAR6G,EACAhI,EAAKyd,cAAgB,GAErBzd,EAAK0d,aAAe,KAIxBhR,EAAUvI,KAAMwI,GAChBD,EAAUzN,KAAK,YAAY,GAC3BjB,EAAEQ,MAAMiC,SAAS,UAEL,SAARuH,EACAhI,EAAKyd,cAAgBzf,EAAEQ,MAAMS,KAAK,SAElCe,EAAK0d,aAAe1f,EAAEQ,MAAMS,KAAK,UAIzCe,EAAK+e,eACL/gB,EAAEQ,MAAM8C,QAAQ,oBAAoBC,YAAY,aAIxDyd,aAAc,WACCxgB,KACN0e,mBAAmBnc,KAAK,yBAAyB7B,KAAK,WACvD,IAAI6iB,EAAW,GACXC,EAAY,EAChBhkB,EAAEQ,MAAMuC,KAAK,aAAa7B,KAAK,WAC3B,IAAI+iB,EAAY,EAChBjkB,EAAEQ,MAAMuC,KAAK,8BAA8B7B,KAAK,SAASkE,EAAGpC,GACxD,IAAI6R,EAAW7U,EAAEQ,MAAMS,KAAK,OAE5B,GAAI4T,EAAK,CACL,IAAIqP,EAAWrP,EAAI5C,MAAM,MACrBkS,EAAWtP,EAAI/O,QAAQ,KAAKoe,EAAM,GAAI,MAAM7U,SAAS6U,EAAM,IAAM,IACjEE,EAAWL,EAASI,GAAYJ,EAASI,GAAY,EACrDE,EAAkBrkB,EAAEQ,MAAMgB,KAAK,SAC/B8iB,EAAkBtkB,EAAEQ,MAAMS,KAAK,qBAC/BoiB,EAAkBrjB,EAAEQ,MAAMS,KAAK,eAE9BmjB,EAAWH,GAAYG,EAAW,IACnCH,EAASG,EACTpkB,EAAE,eAAeqkB,EAAS,mCAAmCC,EAAgB,uBAAuBjB,EAAW,kBAAkBkB,aAAavkB,EAAEQ,UAG5IR,EAAEQ,MAAM0C,SAAS,oBAAwBlD,EAAEQ,MAAM0C,SAAS,gBAAkBlD,EAAEQ,MAAM0C,SAAS,gBAAkBlD,EAAEQ,MAAM0C,SAAS,WAClIlD,EAAEQ,MAAM0C,SAAS,mBAAmC,GAAb8gB,IAEzChkB,EAAEA,EAAEQ,MAAMuC,KAAK,sBAAsBwF,MAAMic,WAAWtjB,KAAK,SAASkE,EAAGpC,GACnEhD,EAAEQ,MAAME,IAAI,cAAe2O,SAAS,EAAEjK,GAAG,QAIjD2e,EAASlP,GAAOoP,EAEpBA,MAEJD,SAKZ9hB,KAAM,WAEF1B,KAAKigB,mBACLjgB,KAAK2gB,iBACL3gB,KAAKugB,eACLvgB,KAAKojB,gBACLpjB,KAAKsjB,iBACLtjB,KAAKwgB,eACLxgB,KAAKygB,sBAGbwD,YAAc,CACVC,cAAe1kB,EAAE,kBACjB2kB,WAAY3kB,EAAE,eACd4kB,eAAgB5kB,EAAE,oBAElB6kB,UAAW,WACIrkB,KAEFkkB,eAFElkB,KAGFkkB,cAAclL,SAAS,CACxBC,aAAc,aACdC,UAAW,OACXC,UAAU,EACVC,MAAM,EACNC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,KAKvB+K,eAAgB,SAASC,GACrB,IACInjB,EAAiB,MADTmjB,EAAKjW,aAGblN,EAAS,GACTmjB,EAAKrkB,IAAI,CACLkB,OAAUA,EAAO,QAK7BojB,aAAc,WACV,IAAIhjB,EAAOxB,KACXA,KAAKokB,eAAeK,aAAc,WAC9B,IAAIC,EAAkBljB,EAAK4iB,eAAe7hB,KAAK,yBAC/CmiB,EAAgBhkB,KAAK,SAASkE,EAAGC,GAC7BpD,WAAW,KACPjC,EAAEQ,MAAMiC,SAAS,WACb2C,EAAE,GAAK8f,EAAgB1iB,QACvBR,EAAK4iB,eAAe7hB,KAAK,mBAAmBN,SAAS,YAEtD,IAAJ2C,QAMflD,KAAM,WACF,IAAIF,EAAOxB,KACXwB,EAAKgjB,eACLhjB,EAAK6iB,YACL7iB,EAAK8iB,eAAe9iB,EAAK2iB,YAEzB,IAAIQ,EAAU/iB,SAAS2S,SAASqQ,KAEhCplB,EAAE,2BAA2B+C,KAAK,wDAAwD7B,KAAK,WAC3F,IAAImkB,EAAUrlB,EAAEQ,MACZ8kB,EAAYD,EAAQxjB,WACpB0jB,EAAmC,GAApBD,EAAU9iB,QAAe8iB,EAAU/jB,GAAG,OACrD6C,EAAMihB,EAAQ7jB,KAAK,QACnB4C,IACIA,EAAIyH,SAAS,UAAY0Z,IACpBnhB,EAAIyH,SAASsZ,KACdE,EAAQ5iB,SAAS,iBACJ4iB,EAAQ7jB,KAAK,WAEtB6jB,EAAQ7jB,KAAK,SAAU,aAO3CxB,EAAEoD,QAAQrC,GAAG,SAAU,WACnBiB,EAAK8iB,eAAe9iB,EAAK2iB,gBAIrCa,sBAAwB,CACpBpV,cAAepQ,EAAE,iBACjBgQ,cAAehQ,EAAE,kBACjBylB,YAAazlB,EAAE,gBACf0lB,YAAa1lB,EAAE,gBACfgH,gBAAiBhH,EAAE,oBACnB2lB,aAAc,GACdC,YAAa,GACbC,SAAS,EAETC,qBAAsB,WAClB,IAAI9jB,EAAOxB,KACXwB,EAAK6jB,SAAU,EACf7lB,EAAEwV,KAAK,CACHxL,KAAM,OACN5F,IAAKqR,OAAOC,SACZzU,KAAM,CACF0U,OAAQ,0BACR5B,OAAQ/R,EAAK4jB,YACbG,MAAO/jB,EAAK2jB,cAGhBpP,WAAY,WACRvU,EAAKoO,cAAcjK,KAAK,KAG5BqQ,QAAS,SAASC,GACd,IAAIC,EAAcD,EAAe,KACjCzU,EAAKoO,cAAcnK,OAAOyQ,GAC1B1U,EAAKgO,cAAc7J,KAAKnE,EAAKoO,cAAcrN,KAAK,iBAAiBP,QACjER,EAAK6jB,SAAU,MAK3BG,SAAU,WACN,IAAIhkB,EAAOxB,KACXA,KAAKwG,gBAAgBjG,GAAG,QAAS,UAAW,WACxCf,EAAEQ,MAAMgD,SAASD,YAAY,YAGjC/C,KAAKwG,gBAAgBjG,GAAG,QAAS,YAAa,WAC1C,IAAI2N,EAAY1O,EAAEQ,MAAM8C,QAAQ,oBAAoBP,KAAK,aACrD4L,EAAY3O,EAAEQ,MAAM2F,OACpB2E,EAAU9K,EAAEQ,MAAMS,KAAK,SAE3Be,EAAKgF,gBAAgBjE,KAAK,aAAaI,YAAY,UAEf,GAA9BuL,EAAUzN,KAAK,aAAyB0N,GAAWD,EAAUvI,QAC/DuI,EAAUvI,KAAMuI,EAAUzN,KAAK,YAC/BjB,EAAEQ,MAAM2C,YAAY,UACpBnB,EAAK2jB,aAAe,KAGpBjX,EAAUvI,KAAMwI,GAChBD,EAAUzN,KAAK,YAAY,GAC3BjB,EAAEQ,MAAMiC,SAAS,UACjBT,EAAK2jB,aAAe7a,GAGxB9K,EAAEQ,MAAM8C,QAAQ,oBAAoBC,YAAY,UAChDvB,EAAK8jB,0BAIb5jB,KAAM,WACF,IAAIF,EAAOxB,KAEXA,KAAKslB,uBACLtlB,KAAKwlB,WAED3kB,WAAWC,WAAWC,GAAG,WACzBf,KAAKklB,YAAY3kB,GAAG,QAAS,WACzBf,EAAEQ,MAAMgD,SAASD,YAAY,UAC7BvB,EAAKyjB,YAAYQ,UAGrBzlB,KAAKilB,YAAY1kB,GAAG,OAAQ,WACH,IAAjBf,EAAEQ,MAAM+L,QACRvM,EAAEQ,MAAMgD,SAASD,YAAY,UAC7BvB,EAAK4jB,YAAc,OAM/BplB,KAAKilB,YAAY1kB,GAAG,gBAAiB,WACb,GAAhBiB,EAAK6jB,UACL7jB,EAAK4jB,YAAc5lB,EAAEQ,MAAM+L,MAC3BvK,EAAK8jB,4BAKrB3R,kBAAoB,CAChB+R,gBAAiBlmB,EAAE,uBACnB6S,iBAAkB7S,EAAE,2BACpBmmB,eAAgB,IAAIC,IACpBC,eAAgB,IAAID,IACpBE,uBAAwB,IAAIF,IAC5BG,WAAY,IAAIH,IAChBI,qBAAsB,IAAIJ,IAC1BK,WAAY,IAAIL,IAChBM,YAAa,KACbC,UAAW,KACX5N,UAAW,KACX6N,YAAY,EACZ7O,MAAO,KAEP3D,eAAgB,SAASyS,GAAa,GAClC,IAAI7kB,EAAaxB,KACbsmB,EAAU9mB,EAAE,qEAEZ8mB,GAAWD,GACXC,EAAQ/jB,KAAK,oBAAoByL,QAGjCxM,EAAK+V,OAAS8O,GACd7kB,EAAK+V,MAAMgP,UAAU/kB,EAAK+V,MAAMiP,SAIxCC,eAAgB,WACZjnB,EAAE,kCAAkCmD,YAAY,aAGpD+jB,cAAe,SAASC,GACpBnnB,EAAE,kCAAkCyC,SAAS,YAC7CzC,EAAE,uCAAuCmnB,GAAKhkB,YAAY,aAG9DikB,sBAAuB,SAASC,GAC5B,IAAIC,GAAY,EAShB,GARK/gB,cAAce,UAAUwM,aAAatR,OAAS,GAAO6kB,EAAKvT,aAAatR,OAAS,GACjF6kB,EAAKvT,aAAa9K,QAAQhG,IAClBuD,cAAce,UAAUwM,aAAajI,SAAS7I,KAC9CskB,GAAY,KAKnB/gB,cAAce,UAAUsM,QAAQpR,OAAS,GAAM,EAAa,CAC7D,IAAIiW,GAAW,EACX4O,EAAKzT,QAAQpR,OAAS,GACtB6kB,EAAKzT,QAAQ5K,QAAQhG,IACbuD,cAAce,UAAUsM,QAAQ/H,SAAS7I,KACzCyV,GAAW,KAIvB6O,EAAY7O,EAIhB,GAAKlS,cAAce,UAAUuM,MAAMrR,OAAS,GAAM8kB,EAAW,CACzD,IAAI5O,GAAa,EACb2O,EAAKxT,MAAMrR,OAAS,GACpB6kB,EAAKxT,MAAM7K,QAAQhG,IACXuD,cAAce,UAAUuM,MAAMhI,SAAS7I,KACvC0V,GAAa,KAIzB4O,EAAY5O,EAEhB,OAAO4O,GAGXC,YAAa,WACT,IAAIvlB,EAAaxB,KAQjB,GANAwB,EAAK6Q,iBAAiBhD,KAAK,IAC3B7N,EAAK2kB,UAAa,KAClB3kB,EAAK+W,UAAa,KAElB/W,EAAK4kB,YAAa,EAEI,OAAlBvR,cAAwB,CAGxBrT,EAAKmkB,eAAiB,IAAIC,IAC1BpkB,EAAKqkB,eAAiB,IAAID,IAC1BpkB,EAAKukB,WAAa,IAAIH,IACtBpkB,EAAKwkB,qBAAuB,IAAIJ,IAChCpkB,EAAKskB,uBAAyB,IAAIF,IAElC,IAAIoB,EAAaxnB,EAAE,qBACf8S,EAAa0U,EAAShkB,SAASsL,aAAaqJ,WAAWrS,QAAQ,KAAM,IACrE2hB,EAAa3U,EAEjB0U,EAASrkB,YAAY,WAEjBkS,cAAcqS,MAAMllB,OAAS,GAC7B6S,cAAcqS,MAAM1e,QAAQ2e,IACxB,IAAIxQ,EAAI9B,cAAcuS,MAAM7kB,KAAK0G,GAAKA,EAAE5E,KAAO8iB,EAAKE,QAChDzQ,EAAI/B,cAAcuS,MAAM7kB,KAAK0G,GAAKA,EAAE5E,KAAO8iB,EAAKpZ,SAEnD4I,EAAE2Q,YAAc3Q,EAAE2Q,UAAY,KAC9B1Q,EAAE0Q,YAAc1Q,EAAE0Q,UAAY,IAE/B3Q,EAAE2Q,UAAUtT,KAAK4C,GACjBA,EAAE0Q,UAAUtT,KAAK2C,IAEhBA,EAAEuQ,QAAUvQ,EAAEuQ,MAAQ,KACtBtQ,EAAEsQ,QAAUtQ,EAAEsQ,MAAQ,IAEvBvQ,EAAEuQ,MAAMlT,KAAKmT,GACbvQ,EAAEsQ,MAAMlT,KAAKmT,KAIrB3lB,EAAK+V,MAAQgQ,YAAAA,CACZP,EAAS,IACLQ,UAAU3S,eACV3T,MAAMoR,GACNlR,OAAO6lB,GACPQ,cAAc,GACd3P,OAAO,MACP4P,UAAU,SACVC,WAAW,UACXC,WAAW,UACXC,cAAc,aACdC,UAAU,SACVC,UAAWZ,GACD,oDAAoDA,EAAKxc,MAAM,2MAA2Mwc,EAAK1e,MAAM,UAE/Ruf,iBAAgB,GAChBC,eAAed,KAAQ3lB,EAAKqkB,eAAeqC,IAAIf,IAC/CgB,YAAW,GACXC,gBAAe,GACfC,UAAU,KACVC,iBAAiB,CAACzB,EAAMxe,EAAKkgB,KAC1B,MAAM9f,EAAQoe,EAAKpe,MACb+f,EAAW,GAAGD,EAEdE,EAAiB,CADLpgB,EAAIqgB,YAAYjgB,GAAOvH,MACNsnB,GAAUpU,IAAIsH,GAAKA,EAAe,GAAX8M,GAE1D,IAAIvf,EAAI4d,EAAK5d,EACTC,EAAI2d,EAAK3d,EACTyf,EAAI,GAAGJ,EACPK,EAAUH,EAAe,GAAM,EAAEF,EACjCM,EAAU,EAAEN,EACZO,EAAe,EAAEP,EACjBzB,EAAYtlB,EAAKolB,sBAAsBC,GAM3C,IAJIC,GAActlB,EAAK+W,WAAc/W,EAAKskB,uBAAuBoC,IAAIrB,KACjErlB,EAAKwkB,qBAAqBhZ,IAAI6Z,GAGK,IAAlC9gB,cAAce,UAAUyM,QAAiBuT,EAAW,CACrD,IAAI3O,EAAc0O,EAAKpe,MAAMiJ,cAAcrG,SAAStF,cAAce,UAAUyM,OAAO7B,eACnFoV,EAAY3O,EAGhB,GAAI2O,GAActlB,EAAK+W,WAAc/W,EAAKskB,uBAAuBoC,IAAIrB,GAAS,CAI1E,GAHIC,GACAtlB,EAAKukB,WAAW/Y,IAAI6Z,GAEpBA,EAAKkC,UAAW,CAChB,IAAInkB,EAAI,EACRiiB,EAAKkC,UAAUnJ,QAAQoE,UAAUxb,QAAQmC,IACrCtC,EAAI2gB,YACJ3gB,EAAI4gB,IAAKhgB,EAAK6f,EAAelkB,EAAKsE,EAAGyf,EAAE,EAAG,EAAG,EAAI1R,KAAKiS,IAAI,GAGpD1nB,EAAKskB,uBAAuBoC,IAAIrB,IAAUrlB,EAAK2kB,WAAaU,GAAWrlB,EAAK4kB,YAAiC,MAAlB5kB,EAAK2kB,WAClG9d,EAAIgB,UAAcsB,EAClBtC,EAAI8gB,yBAA2B,gBAE/B9gB,EAAIgB,UAAc,yBAClBhB,EAAI8gB,yBAA2B,oBAGnC9gB,EAAI+gB,YAAetC,GAActlB,EAAK+W,WAAc/W,EAAKskB,uBAAuBoC,IAAIrB,GAAW,EAAI,EACnGxe,EAAIghB,OACJzkB,MAIRyD,EAAIR,KAAarG,EAAK+W,WAAasO,KAAW2B,oCAA6CA,gCAC3FngB,EAAIgB,UAAY,QAChBhB,EAAIe,UAAY,SAEZ5H,EAAKskB,uBAAuBoC,IAAIrB,IAAUrlB,EAAK2kB,WAAaU,KAC5Dxe,EAAI8gB,yBAA2B,cAC/B9gB,EAAIiB,SAASb,EAAOQ,EAAE2f,EAAS1f,EAAE2f,OAK5CS,YAAY,CAACzC,EAAM0C,KAChB/nB,EAAKgoB,iBAAiB3C,KAGzB4C,YAAY5C,KACLrlB,EAAKukB,WAAWmC,IAAIrB,IAASrlB,EAAKskB,uBAAuBoC,IAAIrB,KAC7DrnB,EAAE,SAASqnB,EAAKxiB,GAAG,qBAAqB2J,UAMpDxM,EAAK+V,MAAMmS,aAAa,IAAMloB,EAAK+V,MAAMgP,UAAU,IAEnD/mB,EAAE,sBAAsBe,GAAG,QAAS,SAASiC,GACzC,IAAImnB,EAAUnoB,EAAK+V,MAAMiP,OAAS,EAClChlB,EAAK+V,MAAMiP,KAAKmD,EAAS,OAG7BnqB,EAAE,uBAAuBe,GAAG,QAAS,SAASiC,GAC1C,IAAImnB,EAAUnoB,EAAK+V,MAAMiP,OAAS,EAClChlB,EAAK+V,MAAMiP,KAAKmD,EAAS,OAG7BnqB,EAAE,oBAAoBe,GAAG,QAAS,SAASiC,GACvC,IAAIonB,EAAUpqB,EAAEQ,MAAM8C,QAAQ,iCAC9B8mB,EAAQrnB,KAAK,8BAA8BqO,KAAK,WAAW,GAC3D7K,cAAc8K,sBAAsB+Y,KAGxCpqB,EAAE,8CAA8Ce,GAAG,aAAc,WAC7D,IAAIomB,EAAUnnB,EAAEQ,MAAMgD,SAAShC,KAAK,MAAMsE,QAAQ,QAAS,IACvDukB,EAAehV,cAAcuS,MAAM7kB,KAAK0G,GAAKA,EAAE5E,IAAMsiB,GACzDnlB,EAAKgoB,iBAAiBK,KAG1BrqB,EAAE,8CAA8Ce,GAAG,aAAc,WAC/Cf,EAAEQ,MAAM8C,QAAQ,uBACtBP,KAAK,cAAcI,YAAY,YACvCnB,EAAK2kB,UAAY,OAGrB3mB,EAAE,8CAA8Ce,GAAG,QAAS,WACxDiB,EAAKsoB,iBAAiBtqB,EAAEQ,WAKpC8pB,iBAAkB,SAASpc,EAAOqc,GAAe,GAC7C,IAAIvoB,EAAOxB,KACP4pB,EAAUlc,EAAM5K,QAAQ,uBACxB6jB,EAAUjZ,EAAM1K,SAAShC,KAAK,MAAMsE,QAAQ,QAAS,IACrDukB,EAAehV,cAAcuS,MAAM7kB,KAAK0G,GAAKA,EAAE5E,IAAMsiB,GACrDqD,EAAetc,EAAM5K,QAAQ,iCAC7BmnB,EAAkBzoB,EAAK6Q,iBAAiBvP,QAAQ,uBAChDsP,EAAe4X,EAAaznB,KAAK,0BAClBwD,cAAce,UAAUyM,OAE3C,GAAKsW,EAWL,GAPIE,GACAvoB,EAAK0oB,iBAAiBL,GAE1BroB,EAAK6Q,iBAAiBhD,KAAM,IAC5B4a,EAAgBtnB,YAAY,cAC5ByP,EAAQzP,YAAY,QAEf+K,EAAM1K,SAASN,SAAS,aAEtB,CAKH,GAJAknB,EAAQrnB,KAAK,cAAcN,SAAS,aACpC2nB,EAAQrnB,KAAK,mBAAmBokB,GAAKhkB,YAAY,aAAaA,YAAY,YAC1EyP,EAAQnQ,SAAS,QAEbT,EAAKmkB,eAAerlB,KAAO,EAAG,CAC9BkB,EAAKmkB,eAAend,QAAQkT,IACxBkO,EAAQrnB,KAAK,mBAAmBmZ,EAAErX,IAAI1B,YAAY,aAAaA,YAAY,cAG/E,IAAIwnB,EAAkBP,EAAQrnB,KAAK,6CAA6CP,OAAS,EAErFmoB,EAAa,IACbF,EAAgBhoB,SAAS,cACzBT,EAAK6Q,iBAAiBhD,KAAM8a,EAAW,eAA6B,GAAdA,EAAkB,GAAK,OAIrFP,EAAQ5mB,OAAO,0BAA0Be,UAAU,QAnBnD6lB,EAAQrnB,KAAK,cAAcI,YAAY,aAAaA,YAAY,aAuBxE2V,YAAa,SAASuO,GAClB,IAAIrlB,EAAOxB,KACXwB,EAAKqkB,eAAeuE,QAChBvD,GACArlB,EAAKwkB,qBAAuB,IAAIJ,IAChCpkB,EAAK0oB,iBAAiBrD,GAAM,GACvBrlB,EAAKolB,sBAAsBC,IAC5BrlB,EAAKoS,gBAAe,IAGxBpS,EAAK+V,MAAM8S,SAAS,EAAG,EAAG7oB,EAAK+V,MAAMiP,SAI7C0D,iBAAkB,SAASrD,EAAMyD,GAAe,GAC5C,IAAI9oB,EAAOxB,KACPuqB,EAA6C,IAAlCxkB,cAAce,UAAUyM,OACvC0S,WAAa,IAAIL,IAEbpkB,EAAKukB,WAAWmC,IAAIrB,IAAS0D,GAExBD,GACD9oB,EAAK+V,MAAM8S,SAASxD,EAAK5d,EAAG4d,EAAK3d,EAAG,KAIxC1H,EAAKqkB,eAAeuE,QACpB5oB,EAAKmkB,eAAeyE,QACpB5oB,EAAKskB,uBAAuBsE,QAEtBvD,GAASrlB,EAAK+W,YAAcsO,GAAU,GACxCrlB,EAAKmkB,eAAe3Y,IAAI6Z,GACxBrlB,EAAKskB,uBAAuB9Y,IAAI6Z,GAE5BA,EAAKK,OACLL,EAAKK,MAAM1e,QAAQ2e,IACf,IAAIqD,EAAgBzkB,cAAce,UAAUuM,MAAMhI,SAAS8b,EAAK9iB,KACzD7C,EAAKukB,WAAWmC,IAAIf,EAAKpZ,SAAWvM,EAAKukB,WAAWmC,IAAIf,EAAKE,SAC5DkD,GAAY/oB,EAAKwkB,qBAAqBkC,IAAIf,EAAKpZ,SAAWvM,EAAKwkB,qBAAqBkC,IAAIf,EAAKE,UAC7FR,EAAKxiB,IAAM8iB,EAAKE,OAAOhjB,IAAOmmB,IAClChpB,EAAKqkB,eAAe7Y,IAAIma,GACxBlB,WAAWjZ,IAAIma,EAAK9iB,OAK5BwiB,EAAKS,WACLT,EAAKS,UAAU9e,QAAQiiB,IACnB,IAAIC,GAAiB,EAErB,GAAIzE,WAAW3lB,KAAO,EAAG,CACrB,IAAIqqB,GAAY,EACZF,EAASpX,MAAMrR,OAAS,GACxByoB,EAASpX,MAAM7K,QAAQhG,IACnBmoB,IAAa1E,WAAWiC,IAAI1lB,IAAamoB,IAGjDD,EAAiBC,EAGjBD,IAAmBlpB,EAAKukB,WAAWmC,IAAIuC,IAAcF,GAAY/oB,EAAKwkB,qBAAqBkC,IAAIuC,MAC/FjpB,EAAKmkB,eAAe3Y,IAAIyd,GACxBjpB,EAAKskB,uBAAuB9Y,IAAIyd,MAK5CjpB,EAAK4kB,YAAa,EAClB5kB,EAAK+W,UAAYsO,GAAQ,KACpByD,GACD9oB,EAAKklB,cAAcG,EAAKxiB,MAG5B7C,EAAK4kB,YAAa,EAClB5kB,EAAK+W,UAAY,KACjB/W,EAAKilB,oBAGTjlB,EAAK4kB,YAAa,EAClB5kB,EAAK+W,UAAY,KACjB/W,EAAKilB,mBAIbnP,YAAa,WACTtX,KAAK+lB,WAAWqE,QAChBpqB,KAAK6lB,eAAeuE,QACpBpqB,KAAK2lB,eAAeyE,QACpBpqB,KAAK8lB,uBAAuBsE,SAGhCZ,iBAAkB,SAAS3C,GACvB,IAAIrlB,EAAOxB,KAEPwB,EAAKukB,WAAWmC,IAAIrB,IAChBrlB,EAAK+W,YACL/W,EAAKmkB,eAAeyE,QAChBvD,IACArlB,EAAKmkB,eAAe3Y,IAAI6Z,GACpBA,EAAKS,WACLT,EAAKS,UAAU9e,QAAQiiB,GAAYjpB,EAAKmkB,eAAe3Y,IAAIyd,MAKjD,MAAlBjpB,EAAK+W,YACDsO,EACArlB,EAAKklB,cAAcG,EAAKxiB,IAExB7C,EAAKilB,kBAGbjlB,EAAK2kB,UAAYU,GAAQ,OAEzBrlB,EAAK2kB,UAAY,KACjB3kB,EAAKilB,mBAIb/kB,KAAM,WAEF1B,KAAK+mB","sourcesContent":["mainHandler = {\r\n $openSmallHeader : $('[href=\"#open-small-header\"]'),\r\n $smallHeader : $('.small-header-panel'),\r\n $numText: $('.panel-number-text'),\r\n $imageResize: $('[data-image-resize]'),\r\n $sbiPhoto : $('sbi_photo'),\r\n $header: $('header'), \r\n\r\n setMainHeight: function() {\r\n var self = this;\r\n\r\n var headHeight = self.$header.outerHeight();\r\n $('main').css({\r\n 'padding-top': headHeight\r\n });\r\n },\r\n\r\n setImageSize: function(imgs = null, size = null, on = null) {\r\n var self = this;\r\n var imgsEl = imgs ? imgs : self.$imageResize; \r\n\r\n if (imgs) {\r\n if (size) {\r\n $(imgsEl).data('image-resize', size);\r\n }\r\n\r\n if (on) {\r\n $(imgsEl).data('image-resize', on);\r\n }\r\n }\r\n\r\n imgsEl.each(function() {\r\n var size = parseFloat($(this).data('image-resize'));\r\n var mediaOn = $(this).data('resize-on');\r\n \r\n if (!mediaOn) {\r\n mediaOn = 'medium';\r\n }\r\n\r\n if (Foundation.MediaQuery.is(mediaOn)) {\r\n $(this).attr('style', '');\r\n \r\n var currWidth = $(this).width();\r\n var newHeight = currWidth * size;\r\n var resizeChild = $(this).data('resize-child');\r\n \r\n $(this).css({\r\n 'height': newHeight,\r\n });\r\n\r\n if (resizeChild) {\r\n $(this).children().css({\r\n 'height': newHeight,\r\n 'width' : '100%'\r\n });\r\n }\r\n }\r\n\r\n $(this).css({\r\n 'opacity': 1\r\n });\r\n });\r\n },\r\n\r\n lazyLoadImg: function(){\r\n var self = this;\r\n $(\"img[loading=lazy]\").on('load', function(){\r\n setTimeout(() => {\r\n self.setImageSize($(this));\r\n }, 1000); \r\n })\r\n },\r\n\r\n init : function() {\r\n var self = this;\r\n \r\n var headEl = document.querySelector(\"header\");\r\n var options = {};\r\n var $blockOurNetwork = $('.block-our-network'); \r\n if ($blockOurNetwork.length > 0) {\r\n self.$header.addClass(\"our-network-opt\");\r\n var $prevObj = $blockOurNetwork.prev();\r\n options = {\r\n offset : $prevObj.length > 0 ? $prevObj.outerHeight() + self.$header.height() : 0\r\n }\r\n }\r\n var headroom = new Headroom(headEl, options);\r\n headroom.init();\r\n self.setMainHeight();\r\n self.lazyLoadImg();\r\n\r\n if (self.$sbiPhoto.length > 0) {\r\n self.$sbiPhoto.each(function() {\r\n var img = $(this).find('img');\r\n\r\n self.setImageSize(img, 1, 'small');\r\n });\r\n }\r\n\r\n self.$openSmallHeader.on('click', function(e) {\r\n e.preventDefault();\r\n\r\n if (self.$smallHeader.hasClass('is-showing')) {\r\n self.$smallHeader.removeClass('is-showing');\r\n $(this).removeClass('is-active');\r\n $('body').removeClass('disable-scroll-body');\r\n } else {\r\n self.$smallHeader.addClass('is-showing');\r\n $(this).addClass('is-active');\r\n $('body').addClass('disable-scroll-body');\r\n }\r\n });\r\n\r\n \r\n setTimeout(() => {\r\n self.setImageSize();\r\n setTimeout(() => {\r\n self.setImageSize();\r\n }, 800); \r\n }, 200);\r\n\r\n $(window).on('resize', function(e) {\r\n setTimeout(() => {\r\n self.setMainHeight(); \r\n }, 500);\r\n self.setImageSize();\r\n });\r\n\r\n $('a.subnav-open').on(\"click\", function() {\r\n var $target = $(this).closest('.subnav-open');\r\n $target.children().toggleClass('hide');\r\n $target.parent().next().toggleClass('hide');\r\n });\r\n }\r\n}","internalNavHandler = {\r\n $cellNavContent : $('.cell-nav-content'),\r\n $internalNavContainer: $('.internal-nav-container'),\r\n $html : $('html'),\r\n $customMagellan : $('.custom-magellan'),\r\n $cellChildren : $('.cell-children'),\r\n $cellBreadcrumb : $('.cell-breadcrumb'),\r\n $main : $('main'),\r\n\r\n templateNav: function(){\r\n return ' <div class=\"cell medium-3 cell-nav-container hide-for-small-only\" data-sticky-container> '+\r\n ' <div class=\"sticky\" data-sticky data-top-anchor=\"nav-content:top\" data-btm-anchor=\"nav-content:bottom\" data-margin-top=\"8\"><div class=\"menu-sticky-item-container\"></div></div>'+\r\n ' </div>';\r\n },\r\n\r\n smoothScroll: function(e, url){\r\n var self = this;\r\n if (url[0] == '#') {\r\n if (e !== null) {\r\n e.preventDefault();\r\n }\r\n var $item = $(url);\r\n var headHeight = $('header').outerHeight();\r\n if ($item.length > 0) {\r\n $('html, body').animate({\r\n scrollTop: $item.offset().top - headHeight //+ 200\r\n }, 100); \r\n }\r\n }\r\n },\r\n\r\n customMagellan: function(){\r\n var self = this;\r\n var screenTop = $(document).scrollTop();\r\n\r\n if (self.$customMagellan.length > 0) {\r\n self.$customMagellan.find('[data-magellan-target]').each(function(){\r\n var contentTop = $(this).position().top - 230;\r\n var id = $(this).data('magellan-target');\r\n var $menuActive = self.$customMagellan.find('.menu-sticky-item-container').find('[href=\"#'+id+'\"]');\r\n\r\n if ((screenTop > contentTop) && (!$menuActive.hasClass('is-active')) ) {\r\n self.$customMagellan.find('.menu-sticky-item-container').children().removeClass('is-active');\r\n $menuActive.addClass('is-active');\r\n }\r\n })\r\n } \r\n },\r\n\r\n appendApplyButton: function(){\r\n var self = this;\r\n $panelApplyButton = self.$cellNavContent.find('.panel-apply-button');\r\n \r\n if ($panelApplyButton.length > 0) {\r\n $panelApplyButton.clone().appendTo( self.$internalNavContainer.find('.menu-sticky-item-container') );\r\n }\r\n },\r\n\r\n init: function(){\r\n var self = this;\r\n var setTransparent = false;\r\n \r\n self.$cellNavContent.find('[data-internal-nav]').each(function(i,v){\r\n var title = $(this).data('title');\r\n self.$cellNavContent.addClass('medium-9');\r\n //self.$cellNavContent.removeClass('medium-offset-3'); \r\n var addonClass = ''; \r\n\r\n if (i == 0) {\r\n self.$cellNavContent.before( self.templateNav() );\r\n addonClass = 'is-active'; \r\n }\r\n $html = '<a href=\"#'+$(this).attr('id')+'\" class=\"menu-side-nav-item '+addonClass+'\"><div class=\"link-text jump\">'+title+'</div></a>';\r\n\r\n var re = new RegExp(String.fromCharCode(160), \"g\");\r\n var checkNbsp = title.replace(re, \"1\");\r\n var isEmpty = (checkNbsp == \"1\" && title.length == 1);\r\n setTransparent = (checkNbsp == \"1\");\r\n\r\n if (!isEmpty && $(this).parents('.skip-nav').length == 0) {\r\n self.$internalNavContainer.find('.menu-sticky-item-container').append($html);\r\n }\r\n })\r\n\r\n if (setTransparent) {\r\n self.$internalNavContainer.find('.menu-sticky-item-container').parent().addClass('transparent');\r\n }\r\n\r\n if (self.$cellNavContent.find('[data-internal-nav]').length == 0) {\r\n if (self.$main.hasClass('is-show-participant')) \r\n self.$cellBreadcrumb.addClass(' medium-offset-3 medium-7');\r\n else \r\n self.$cellBreadcrumb.addClass(' medium-offset-3 medium-6');\r\n }\r\n \r\n if (self.$cellChildren.length > 0) {\r\n $newHtml = self.$cellChildren.html();\r\n if ($newHtml) {\r\n self.$internalNavContainer.find('.menu-sticky-item-container').remove();\r\n self.$cellChildren.clone().appendTo(self.$internalNavContainer.find('.cell-nav-container'))\r\n }\r\n }\r\n \r\n\r\n setTimeout(() => {\r\n self.$html.foundation();\r\n self.customMagellan();\r\n self.appendApplyButton();\r\n }, 300);\r\n \r\n\r\n $(document).on(\"click\", \"a:not(.accordion-title)[href*='#']\", function(e) {\r\n if (this.hash !== \"\") {\r\n e.preventDefault();\r\n self.smoothScroll(e, this.hash);\r\n } \r\n });\r\n\r\n $(document).on('scroll', function(){\r\n self.customMagellan();\r\n })\r\n }\r\n}","blocksHandler = {\r\n $panelLineSeparator: $('.panel-line-separator'),\r\n $panelStoriesAndNewsColBg: $('.panel-stories-and-news.colored-background'),\r\n $panelStoriesAndNewsColSbs: $('.panel-stories-and-news.side-by-side'),\r\n $cellNavContent: $('.cell-nav-content'),\r\n $internalNavContainer: $('.internal-nav-container'),\r\n $blockTextHidePadding: $('.block-text.hide-padding'),\r\n\r\n $panelFind: $('.panel-find'),\r\n $numText: $('.panel-number-text'),\r\n $storiesAndNews: $('.panel-stories-and-news.side-by-side, .panel-stories-and-news.thumbnail-list'),\r\n $panelStoriesAndNewsColTl: $('.panel-stories-and-news.thumbnail-list'),\r\n $openFactItem : $('[href=\"#open-fact-item\"]'),\r\n $dropdownSelect: $('.dropdown-select'),\r\n isLoad: false,\r\n viewType: 'grid',\r\n findTimer: null,\r\n visualDataSearched: false,\r\n initialSelectFilter: true,\r\n arrFilter: {},\r\n ObjChart: [],\r\n\r\n renderChartStackBar: function($chart, dtLabels, dtGroup, dtSeries, idx) {\r\n var self = this;\r\n var globalFontSize = 10; \r\n var chartFontSize = 10;\r\n var btmChartFontSize = 8;\r\n var btmTextPos = 42;\r\n var optPadBtm = 10;\r\n \r\n if (Foundation.MediaQuery.atLeast('large')) {\r\n globalFontSize = 16;\r\n chartFontSize = 24;\r\n btmChartFontSize = 13;\r\n btmTextPos = 70;\r\n optPadBtm = 50;\r\n }\r\n\r\n Chart.defaults.font.size = globalFontSize;\r\n\r\n const customLegend = $chart.closest('.block-chart').find('.legend').get(0);\r\n const idBlock = $chart.closest('.block-chart').attr('id'); \r\n\r\n if (this.ObjChart[idBlock]) {\r\n this.ObjChart[idBlock].destroy();\r\n $(customLegend).html('');\r\n }\r\n\r\n const customTotalPlugin = {\r\n id: 'customTotal',\r\n afterDatasetDraw(chart) {\r\n const ctx = chart.ctx;\r\n const datasets = chart.data.datasets;\r\n\r\n chart.data.labels.forEach((label, index) => {\r\n const meta = chart.getDatasetMeta(datasets.length - 1); \r\n const bar = meta.data[index];\r\n\r\n if (bar) {\r\n // Calculate total for each bar\r\n const total = datasets.reduce((sum, dataset) => sum + dataset.data[index], 0);\r\n \r\n if (total > 0) {\r\n // Coordinates for custom label\r\n const x = bar.x;\r\n const y = bar.y - 10; // Adjust position above the bar\r\n ctx.save();\r\n ctx.textAlign = 'center';\r\n ctx.fillStyle = '#222222';\r\n ctx.font = chartFontSize+'px Sanomat Sans Text Regular';\r\n ctx.fillText(`${total}%`, x, y);\r\n\r\n ctx.restore();\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n this.ObjChart[idBlock] = new Chart($chart, {\r\n type: 'bar',\r\n data: {\r\n labels: dtLabels,\r\n datasets: dtSeries\r\n },\r\n options: {\r\n responsive: true,\r\n interaction: {\r\n intersect: false,\r\n },\r\n layout: {\r\n padding: {\r\n top: 40, \r\n bottom: optPadBtm \r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n position: 'top', \r\n align: 'end', \r\n },\r\n tooltip: {\r\n callbacks: {\r\n label: function (context) {\r\n const value = context.raw;\r\n if (value > 0) {\r\n return `${context.dataset.label}: ${value}%`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n }\r\n },\r\n datalabels: {\r\n anchor: 'end', \r\n align: 'bottom',\r\n formatter: function (value) {\r\n if (value > 0) {\r\n return `${value}%`;\r\n } else {\r\n return '';\r\n }\r\n },\r\n color: '#ffffff',\r\n font: {\r\n size: globalFontSize,\r\n weight: 'lighter',\r\n },\r\n offset: 0\r\n }\r\n },\r\n scales: {\r\n x: {\r\n stacked: true,\r\n grid: {\r\n drawOnChartArea: false, \r\n drawBorder: false,\r\n },\r\n ticks: {\r\n color: '#222222',\r\n font: {\r\n size: btmChartFontSize,\r\n weight: 600,\r\n }\r\n }\r\n },\r\n y: {\r\n stacked: true,\r\n ticks: {\r\n stepSize: 25,\r\n callback: (value) => {\r\n if ([0, 25, 50, 75, 100].includes(value)) {\r\n return `${value}%`;\r\n }\r\n return null; \r\n },\r\n font: {\r\n weight: 600,\r\n }\r\n },\r\n }\r\n },\r\n },\r\n plugins: [ChartDataLabels, customTotalPlugin]\r\n });\r\n\r\n self.createCustomLegend(self.ObjChart[idBlock], customLegend, idBlock, true);\r\n },\r\n\r\n renderChartBar: function($chart, dtLabels, dtGroup, dtSeries, idx) {\r\n var self = this;\r\n var globalFontSize = 10; \r\n var chartFontSize = 10;\r\n var btmChartFontSize = 8;\r\n var btmTextPos = 42;\r\n var optPadBtm = 10;\r\n\r\n if (Foundation.MediaQuery.atLeast('large')) {\r\n globalFontSize = 16;\r\n chartFontSize = 24;\r\n btmChartFontSize = 13;\r\n btmTextPos = 70;\r\n optPadBtm = 50;\r\n }\r\n \r\n Chart.defaults.font.size = globalFontSize;\r\n\r\n const customLegend = $chart.closest('.block-chart').find('.legend').get(0);\r\n const idBlock = $chart.closest('.block-chart').attr('id'); \r\n\r\n if (this.ObjChart[idBlock]) {\r\n this.ObjChart[idBlock].destroy();\r\n $(customLegend).html('');\r\n }\r\n\r\n const captionPlugin = {\r\n id: 'captionPlugin',\r\n afterDraw(chart) {\r\n const { ctx, chartArea, width } = chart;\r\n const caption = $chart.data('btm-label');\r\n\r\n ctx.save();\r\n ctx.textAlign = 'center';\r\n ctx.fillStyle = '#222222';\r\n ctx.font = btmChartFontSize+'px Sanomat Sans Text Semibold';\r\n ctx.fillText(caption, width / 2, chartArea.bottom + btmTextPos); // Add 20px below the chart\r\n ctx.restore();\r\n }\r\n };\r\n\r\n this.ObjChart[idBlock] = new Chart($chart, {\r\n type: 'bar',\r\n data: {\r\n labels: dtLabels,\r\n datasets: [\r\n dtSeries[idx]['y1'],\r\n dtSeries[idx]['y2'],\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n layout: {\r\n padding: {\r\n top: 20, \r\n bottom: optPadBtm \r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n position: 'top', \r\n align: 'end', \r\n },\r\n datalabels: {\r\n anchor: 'end', \r\n clip: true,\r\n align: (context) => {\r\n return (self.isNotAvail(context)) ? 'top' : 'bottom';\r\n },\r\n color: (context) => {\r\n let val = context.dataset.data[context.dataIndex]; \r\n let chart = context.chart;\r\n let meta = chart.getDatasetMeta(context.datasetIndex);\r\n let bar = meta.data[context.dataIndex];\r\n \r\n let barHeight = bar.$animations.height._to;\r\n let labelWidth = (val.length * context.chart.options.plugins.datalabels.font.size * 0.6) + 10; \r\n \r\n return (val == '') ? '#B8B8BD' : \r\n ((val !== '') && (labelWidth > barHeight)) ? context.dataset.backgroundColor : '#fff';\r\n }, \r\n offset: 8,\r\n rotation: (context) => {\r\n let val = context.dataset.data[context.dataIndex];\r\n return (val == '') ? 0 : 270; \r\n }, \r\n font: {\r\n size: chartFontSize, \r\n },\r\n formatter: (value, context) => {\r\n return (((value == 0) || (value == '')) && (context.dataset.yAxisID == 'y1')) ? ' N/A' : value; \r\n },\r\n }\r\n\r\n },\r\n scales: {\r\n x: {\r\n grid: {\r\n drawOnChartArea: false, // Hides vertical grid lines\r\n drawBorder: false, // Hides the axis border line\r\n },\r\n ticks: {\r\n color: '#222222',\r\n font: {\r\n weight: 600,\r\n size: btmChartFontSize\r\n },\r\n min: 60\r\n }\r\n },\r\n y1: {\r\n type: 'linear',\r\n display: true,\r\n position: 'left',\r\n ticks: {\r\n font: {\r\n weight: 600,\r\n }\r\n }\r\n },\r\n y2: {\r\n type: 'linear',\r\n display: true,\r\n position: 'right',\r\n grid: {\r\n drawBorder: false, \r\n drawOnChartArea: false, // only want the grid lines for one axis to show up\r\n },\r\n ticks: {\r\n font: {\r\n weight: 600,\r\n }\r\n }\r\n }\r\n },\r\n },\r\n plugins: [ChartDataLabels, captionPlugin]\r\n });\r\n\r\n self.createCustomLegend(self.ObjChart[idBlock], customLegend, idBlock);\r\n },\r\n\r\n createCustomLegend: function(chart, customLegend, idBlock, disableClick = false){\r\n let self = this; \r\n // Create custom HTML legend\r\n chart.data.datasets.forEach((dataset, index) => {\r\n const legendItem = document.createElement('div');\r\n legendItem.classList.add('legend-item');\r\n \r\n const colorBox = document.createElement('div');\r\n colorBox.classList.add('legend-box');\r\n colorBox.style.backgroundColor = dataset.backgroundColor;\r\n\r\n legendItem.appendChild(colorBox);\r\n legendItem.appendChild(document.createTextNode(dataset.label));\r\n\r\n if (!disableClick) {\r\n // Add event to toggle dataset visibility\r\n legendItem.addEventListener('click', () => {\r\n $(legendItem).toggleClass('inactive');\r\n const meta = self.ObjChart[idBlock].getDatasetMeta(index);\r\n meta.hidden = !meta.hidden; // Toggle visibility\r\n self.ObjChart[idBlock].update();\r\n });\r\n }\r\n\r\n customLegend.appendChild(legendItem);\r\n });\r\n },\r\n\r\n isNotAvail: function(context) {\r\n let val = context.dataset.data[context.dataIndex];\r\n let chart = context.chart;\r\n let meta = chart.getDatasetMeta(context.datasetIndex);\r\n let bar = meta.data[context.dataIndex];\r\n \r\n let barHeight = bar.$animations.height._to;\r\n let labelWidth = (val.length * context.chart.options.plugins.datalabels.font.size * 0.6) + 10; \r\n \r\n return ((val == '') || (labelWidth > barHeight));\r\n },\r\n\r\n searchData: function($this, idx){\r\n var self = this;\r\n var type = $this.data('chart-type');\r\n var $chart = $this.find('.chart-container');\r\n var dtLabels = JSON.parse( $this.find('textarea[name=labels]').val() );\r\n var dtGroup = JSON.parse( $this.find('textarea[name=group]').val() );\r\n var dtSeries = JSON.parse( $this.find('textarea[name=series]').val() );\r\n \r\n Chart.defaults.font.family = 'Sanomat Sans Text Regular';\r\n Chart.defaults.font.weight = 400;\r\n Chart.defaults.color = '#B8B8BD';\r\n \r\n if (type == 'bar') {\r\n self.renderChartBar($chart, dtLabels, dtGroup, dtSeries, idx);\r\n } else {\r\n self.renderChartStackBar($chart, dtLabels, dtGroup, dtSeries, idx);\r\n }\r\n },\r\n\r\n blockChart: function(){\r\n var self = this;\r\n var $blockChart = $('.block-chart');\r\n\r\n $blockChart.each(function(){\r\n self.searchData($(this), 0);\r\n })\r\n\r\n $(document).on('click', function(e){\r\n if ((!$(e.target).hasClass('select')) && ($('.panel-dropdown-select.active').length > 0)) {\r\n $('.panel-dropdown-select .select').click();\r\n }\r\n });\r\n\r\n this.$dropdownSelect.on('click', '.select', function(e){\r\n e.stopPropagation();\r\n $(this).parent().toggleClass('active');\r\n })\r\n \r\n this.$dropdownSelect.on('click', '.opt-item', function(){\r\n var $selected = $(this).closest('.dropdown-select').find('.selected');\r\n var textVal = $(this).html();\r\n var value = $(this).data('value');\r\n\r\n self.$dropdownSelect.find('.opt-item').removeClass('active');\r\n\r\n if ( ($selected.data('selected') == true) && (textVal == $selected.html()) ) {\r\n $selected.html( $selected.data('default') );\r\n $(this).removeClass('active'); \r\n } else {\r\n $selected.html( textVal );\r\n $selected.data('selected', true); \r\n $(this).addClass('active');\r\n } \r\n $selected.data('val', value);\r\n $(this).closest('.dropdown-select').toggleClass('active');\r\n\r\n self.searchData($(this).closest('.block-chart'), value);\r\n })\r\n\r\n let width = $(window).width();\r\n $(window).on('resize', function(){\r\n setTimeout(() => {\r\n if (width !== $(window).width()) {\r\n var $blckChart = $('.block-chart');\r\n $blckChart.each(function(){\r\n let val = $(this).find('.dropdown-select').find('.selected').data('val');\r\n val = val ? val : 0;\r\n \r\n self.searchData($(this), val);\r\n })\r\n }\r\n }, 400);\r\n })\r\n },\r\n\r\n blockResize: function(){\r\n var self = this;\r\n var $cellNav = this.$internalNavContainer.find('.cell-nav-container');\r\n var width = this.$internalNavContainer.outerWidth();\r\n var widthWindow = $(window).outerWidth() - ( $(window).innerWidth() - document.documentElement.offsetWidth );\r\n var cellNavWidth = 0;\r\n var paddingLeft = 0;\r\n var newPaddingLeft = 0;\r\n\r\n if (( this.$internalNavContainer.length > 0)) {\r\n paddingLeft = parseInt( this.$internalNavContainer.css('padding-left').replace('px', '') );\r\n }\r\n\r\n if ( ($cellNav.length > 0) ) {\r\n cellNavWidth = $cellNav.width() + (parseInt($cellNav.css('margin-left').replace('px', '')) * 2);\r\n $cellNav.children().css('max-width', $cellNav.width()+' !important');\r\n }\r\n\r\n $('[data-line-no-bleed]').each(function(){\r\n newPaddingLeft = $(this).parent().offset().left;\r\n\r\n if ((!$(this).hasClass('thumbnail-list')) || ($(this).hasClass('thumbnail-list') && Foundation.MediaQuery.is(\"medium\") )) {\r\n $(this).css({\r\n 'width' : widthWindow,\r\n 'margin-left' : -newPaddingLeft+'px',\r\n 'opacity' : '1'\r\n });\r\n }\r\n\r\n height = widthWindow * (9/16);\r\n $(this).find('.thumbnail-with-line, .img-stories').css({\r\n 'height' : height,\r\n 'width' : widthWindow,\r\n })\r\n })\r\n\r\n\r\n /* var panelSnLeft = paddingLeft;\r\n if ($(this.$panelStoriesAndNewsColBg).hasClass('is-single-oppor') && Foundation.MediaQuery.atLeast('medium')) {\r\n var extraLeft = $(this.$panelStoriesAndNewsColBg).parents('.cell-nav-content').siblings('.cell-nav-container').outerWidth(true);\r\n\r\n panelSnLeft = panelSnLeft + extraLeft;\r\n } */\r\n\r\n this.$panelStoriesAndNewsColBg.each(function(){\r\n $(this).css({\r\n 'width' : width,\r\n //'margin-top' : '-1px',\r\n 'margin-left' : -paddingLeft+'px',\r\n 'margin-right': -paddingLeft+'px',\r\n })\r\n })\r\n\r\n this.$panelStoriesAndNewsColTl.each(function(){\r\n height = width * (9/16);\r\n $(this).find('.cell-thumbnails-image').css({\r\n 'width' : width,\r\n 'height': height\r\n });\r\n });\r\n\r\n if (Foundation.MediaQuery.is(\"small only\")) {\r\n self.$storiesAndNews.each(function(){\r\n $(this).find('.cell-thumbnails-image').css({\r\n 'margin-left' : -paddingLeft+'px',\r\n 'margin-right': -paddingLeft+'px',\r\n })\r\n });\r\n\r\n if (self.$blockTextHidePadding.parents('.skip-nav') == 0) {\r\n self.$blockTextHidePadding.css({\r\n 'padding' : '0px',\r\n 'margin-bottom': '-1px',\r\n });\r\n }\r\n }\r\n\r\n let $slctall = $('.input-container.flex-container.select-all');\r\n let $outerW = $slctall.closest('.outer-wrapper');\r\n if ($outerW.length > 0) {\r\n $slctall.css({\r\n '--title-width': ($outerW.prev().outerWidth(true)+20)+\"px\"\r\n })\r\n }\r\n },\r\n\r\n textEntries(total) {\r\n let text = 'Entry';\r\n if (total > 1) {\r\n text = 'Entries';\r\n }\r\n return total+' '+text;\r\n },\r\n\r\n blockFind: function(){\r\n var self = this;\r\n self.$panelFind.each(function(){\r\n var $currPanelFind = $(this);\r\n var $totalEntries = $(this).find('.total-entries');\r\n var $buttonSort = $(this).find('.button-sort');\r\n var $optItem = $(this).find('.opt-item');\r\n var $optItemDefault = $(this).find('.opt-item[value=\"random\"]');\r\n var $targetRender = $(this).find('.cell-content');\r\n var $btnStartSearch = $(this).find('.btn-start-search');\r\n var $btnClearSearch = $(this).find('.btn-clear-search');\r\n var $txtSearch = $(this).find('.text-search-data');\r\n var $buttonReset = $(this).find('.button-reset');\r\n var $visualCont = $(this).find('#visual-container');\r\n var $inputCheckbox = $(this).find('.input-find.checkbox-style');\r\n var $inputCheckboxIN = $(this).find('.input-find.checkbox-style#in-network-opportunities');\r\n //var $inputCheckboxNA = $(this).find('.input-find.checkbox-style.na');\r\n var isOurNetwork = $(this).hasClass('panel-our-network');\r\n var $iconInfo = $(this).find('.icon-info');\r\n var $btnSlider = $(this).find('.btn-slider');\r\n\r\n $totalEntries.html(self.textEntries($targetRender.find('.item-data').length));\r\n\r\n if ($btnSlider.length > 0) {\r\n let $wrapper = $btnSlider.parents('.outer-wrapper');\r\n\r\n $btnSlider.on('click', function(){\r\n let distance = $(this).hasClass('prev') ? -200 : 200;\r\n\r\n $wrapper[0].scrollBy({\r\n left: distance,\r\n behavior: 'smooth'\r\n });\r\n })\r\n }\r\n\r\n $buttonSort.on('click', function(){\r\n $(this).parent().toggleClass('active');\r\n })\r\n\r\n $iconInfo.on('click', function(){\r\n $currPanelFind.toggleClass('show-info')\r\n })\r\n\r\n $buttonReset.on('click', function(){\r\n //$txtSearch.val('');\r\n $optItem.removeClass('active');\r\n $optItemDefault.addClass('active');\r\n $inputCheckbox.prop(\"checked\", false);\r\n $inputCheckboxIN.prop(\"checked\", true);\r\n //$inputCheckboxNA.prop(\"checked\", true);\r\n if (isOurNetwork) {\r\n $('#filter-modal').find('.input-find.checkbox-style').prop(\"checked\", false);\r\n }\r\n $btnClearSearch.click();\r\n $(this).removeClass('active');\r\n if (!isOurNetwork) {\r\n $visualCont.html('');\r\n }\r\n $targetRender.addClass('no-data');\r\n $visualCont.addClass('no-data');\r\n })\r\n\r\n $btnStartSearch.on('click', function(){\r\n self.blockFindRenderResult($currPanelFind);\r\n })\r\n\r\n $btnClearSearch.on('click', function(){\r\n setTimeout(() => {\r\n $(this).addClass('hide');\r\n $btnStartSearch.removeClass('hide');\r\n $txtSearch.val('');\r\n self.blockFindRenderResult($currPanelFind);\r\n if ($currPanelFind.find('.input-find.checkbox-style:checked').length == 0) {\r\n $buttonReset.removeClass('active');\r\n }\r\n }, 300);\r\n });\r\n\r\n $optItem.on('click', function(){\r\n var $isActive = $(this).hasClass('active');\r\n $optItem.removeClass('active');\r\n if (!$isActive) {\r\n $(this).addClass('active');\r\n }\r\n self.blockFindRenderResult($currPanelFind);\r\n $(this).closest('.sort').removeClass('active');\r\n })\r\n\r\n $txtSearch.on('keyup', function(){\r\n setTimeout(() => {\r\n if ($(this).val()) {\r\n $btnClearSearch.removeClass('hide');\r\n $btnStartSearch.addClass('hide');\r\n //$buttonReset.addClass('active');\r\n } else {\r\n $btnClearSearch.addClass('hide');\r\n $btnStartSearch.removeClass('hide');\r\n /*\r\n if ($currPanelFind.find('.input-find.checkbox-style:checked').length == 0) {\r\n $buttonReset.removeClass('active');\r\n }\r\n */\r\n }\r\n }, 500);\r\n if (isOurNetwork) {\r\n self.blockFindRenderResult($currPanelFind);\r\n }\r\n })\r\n\r\n $(this).find('.input-find').on('change', function(){\r\n let name = $(this).attr('name');\r\n /*\r\n let id = $(this).attr('id');\r\n let val = $(this).val();\r\n let $inputOppType = $currPanelFind.find('.input-find.checkbox-style[name*=\"opportunity_type\"]:not(.na)');\r\n\r\n if (id.includes('opportunity_type') && (val == 'n_a')) {\r\n $inputOppType.prop(\"checked\", false);\r\n } else if ($inputOppType) {\r\n var $unchecked = false;\r\n $inputOppType.each(function(){\r\n if ($(this).is(':checked')) {\r\n $unchecked = true;\r\n }\r\n })\r\n\r\n $currPanelFind.find('.input-find.checkbox-style[value=\"n_a\"]').prop(\"checked\", !$unchecked);\r\n }*/\r\n if (!isOurNetwork) {\r\n if ( ($currPanelFind.find('.input-find.checkbox-style:checked').length > 0) ) {\r\n $buttonReset.addClass('active');\r\n } else {\r\n $buttonReset.removeClass('active');\r\n }\r\n }\r\n if (isOurNetwork && self.initialSelectFilter && (name.includes('college'))) {\r\n //$currPanelFind.find('.input-find.checkbox-style[name=einhorn_type], .input-find.checkbox-style[name*=topic]').prop(\"checked\", true);\r\n self.startFind($currPanelFind);\r\n initialSelectFilter = false;\r\n }\r\n })\r\n })\r\n\r\n $(document).on('keyup', 'input.input-find', function(){\r\n clearTimeout(self.findTimer);\r\n self.findTimer = setTimeout(() => {\r\n self.startFind($(this));\r\n }, 800);\r\n })\r\n\r\n $(document).on('change', 'input.input-find.checkbox-style:not(.check-all)', function(){\r\n self.startFind($(this));\r\n\r\n let $wrapper = $(this).closest('.input-wrapper');\r\n if ($wrapper.length == 0) {\r\n $wrapper = $(this).closest('.accordion-content');\r\n }\r\n $wrapper.find('.input-find.check-all').prop(\"checked\", ($wrapper.find('.input-find:not(.check-all)').length == $wrapper.find('.input-find:checked:not(.check-all)').length));\r\n });\r\n\r\n $(document).on('change', 'input.input-find.checkbox-style.check-all', function(){\r\n let name = $(this).attr('name').replace('-all', '');\r\n $('.input-find.checkbox-style[name='+name+']').prop(\"checked\", this.checked);\r\n self.startFind($(this));\r\n });\r\n },\r\n\r\n startFind: function($this) {\r\n var self = this;\r\n var $parentId = $this.closest('.panel-filter-find').data('parent-id');\r\n if ($parentId) {\r\n var $currPanelFind = $($('#'+$parentId)[0]);\r\n\r\n if ( (($this.attr('name') !== 'search') && (Foundation.MediaQuery.atLeast(\"medium\"))) || (Foundation.MediaQuery.is(\"small\"))) {\r\n self.blockFindRenderResult($currPanelFind);\r\n }\r\n }\r\n },\r\n\r\n setYearLine: function() {\r\n var self = this;\r\n if (self.$numText.length > 0) {\r\n self.$numText.find('.content-container.type-year').each(function() {\r\n $(this).find('.content-item').each(function() {\r\n var itemHeight = $(this).outerHeight();\r\n var numHeight = $(this).find('.item-num').outerHeight();\r\n\r\n $(this).find('.year-line').css({\r\n 'height': itemHeight + 36\r\n });\r\n });\r\n });\r\n }\r\n },\r\n\r\n getCounter: function(){\r\n $('.panel-find').each(function(){\r\n var $this = $(this);\r\n $(this).find('.input-find:not(#search)').each(function(){\r\n var name = $(this).attr('name');\r\n var val = $(this).val();\r\n var counter = 0;\r\n var $objCounter = $this.find('.item-data[data-'+name+'*=\"'+val+'\"]');\r\n if ($objCounter.length > 0) {\r\n $objCounter.each(function(){\r\n var data = $(this).data(name);\r\n if (data.includes(',')) {\r\n var arrData = data.split(',');\r\n arrData.forEach(function(x,i){\r\n if (x.toLowerCase().trim() === val.toLowerCase()) {\r\n counter++;\r\n }\r\n })\r\n } else if (val == data) {\r\n counter++;\r\n }\r\n })\r\n }\r\n if (val) {\r\n var $input = $('input.input-find[value=\"'+val+'\"]');\r\n $input.next().find('.counter').html(counter);\r\n }\r\n })\r\n })\r\n },\r\n\r\n blockFindRenderResult: function($this, $withUpdateUrl = true, type = '', force = false){\r\n var self = this;\r\n var $totalEntries = $this.find('.total-entries');\r\n var searchType = $this.data('search-type');\r\n var postType = $this.data('post-type');\r\n var opportunityType = $this.data('opportunity-type');\r\n var $loading = $this.find('.loading');\r\n var $targetRender = $this.find('.cell-content');\r\n var $sort = $this.find('.sort');\r\n var $visualListCont = $this.find('.visual-list-container');\r\n var $visualCont = $this.find('#visual-container');\r\n var $legend = $this.find('.legend-zoom-container');\r\n var $selectedEntries= $this.find('.selected-entries .text');\r\n var $selectedEntries= $this.find('.selected-entries .text');\r\n var $buttonReset = $this.find('.button-reset');\r\n var contWidth = $this.find('.right-content').outerWidth();\r\n $visualCont.css({\r\n '--mobile-height': contWidth+'px'\r\n });\r\n\r\n var dataFiltered = {};\r\n var dataFilterField = {};\r\n var dataFilterFieldLike = {};\r\n var selectedFilter = [];\r\n var selectedFilterField = [];\r\n var selectedFilterFieldLike = [];\r\n var searchKeywords = \"\";\r\n var temp = \"\";\r\n var tempFF = \"\";\r\n var tempL = \"\";\r\n var isFiltered = false;\r\n var arrTopic = [];\r\n\r\n self.arrFilter = {'college': [], 'topic': [], 'einhorn_type': [], 'search': '' };\r\n\r\n var $inputFilterObj = null;\r\n if (Foundation.MediaQuery.atLeast(\"medium\")) {\r\n $inputFilterObj = $this.find('input');\r\n } else {\r\n $inputFilterObj = $('body').find('[data-reveal-find-id=\"'+$this.attr('id')+'\"] input, .panel-filter-find.our-network.topic input');\r\n }\r\n\r\n var isField = 0;\r\n var newURLParam = '';\r\n\r\n type = self.viewType;\r\n\r\n $inputFilterObj.each(function(){\r\n var name = $(this).attr('name');\r\n if (name == 'search') {\r\n searchKeywords = $(this).val();\r\n self.arrFilter.search = searchKeywords;\r\n ourNetworkHandler.resetInterface();\r\n }\r\n\r\n isField = $($(this)[0]).data('is-field');\r\n isLike = $($(this)[0]).data('is-like');\r\n\r\n if ( $(this)[0].checked ) {\r\n isFiltered = true;\r\n let termID = parseInt($(this).attr('data-term-id'));\r\n\r\n if (name == 'college') {\r\n isCollegeFiltered = true;\r\n\r\n if (!self.arrFilter.college.includes(termID)) {\r\n self.arrFilter.college.push(termID);\r\n }\r\n }\r\n\r\n if (name == 'topic') {\r\n arrTopic.push(termID);\r\n\r\n if (!self.arrFilter.topic.includes(termID)) {\r\n self.arrFilter.topic.push(termID);\r\n }\r\n }\r\n\r\n if (name == 'einhorn_type') {\r\n if (!self.arrFilter.einhorn_type.includes($(this).val())) {\r\n self.arrFilter.einhorn_type.push($(this).val());\r\n }\r\n }\r\n\r\n if (isLike == 1) {\r\n if ( (name !== tempL) && (selectedFilterFieldLike.length > 0) ) {\r\n dataFilterFieldLike[tempL] = selectedFilterFieldLike;\r\n selectedFilterFieldLike = [];\r\n }\r\n selectedFilterFieldLike.push($(this).val());\r\n tempL = name;\r\n\r\n } else if (isField == 0) {\r\n if ( (name !== temp) && (selectedFilter.length > 0) ) {\r\n dataFiltered[temp] = selectedFilter;\r\n selectedFilter = [];\r\n }\r\n selectedFilter.push($(this).val());\r\n temp = name;\r\n\r\n } else if (isField == 1) {\r\n if ( (name !== tempFF) && (selectedFilterField.length > 0) ) {\r\n dataFilterField[tempFF] = selectedFilterField;\r\n selectedFilterField = [];\r\n }\r\n selectedFilterField.push($(this).val());\r\n tempFF = name;\r\n }\r\n }\r\n })\r\n\r\n\r\n if (selectedFilter.length > 0) {\r\n dataFiltered[temp] = selectedFilter;\r\n }\r\n\r\n if (selectedFilterField.length > 0) {\r\n dataFilterField[tempFF] = selectedFilterField;\r\n }\r\n\r\n if (selectedFilterFieldLike.length > 0) {\r\n dataFilterFieldLike[tempL] = selectedFilterFieldLike;\r\n }\r\n\r\n var $sortBy = '';\r\n $optItem = $sort.find(\".opt-item.active\");\r\n if ($optItem.length > 0) {\r\n $sortBy = $optItem.attr('value');\r\n }\r\n\r\n Object.keys(dataFiltered).map((key) => {\r\n newURLParam += (newURLParam ? '&' : '?') + key + '=' + dataFiltered[key].join(',');\r\n });\r\n\r\n Object.keys(dataFilterField).map((key) => {\r\n newURLParam += (newURLParam ? '&' : '?') + key + '=' + dataFilterField[key].join(',');\r\n });\r\n\r\n Object.keys(dataFilterFieldLike).map((key) => {\r\n newURLParam += (newURLParam ? '&' : '?') + key + '=' + dataFilterFieldLike[key].join(',');\r\n });\r\n\r\n if (searchKeywords !== '') {\r\n newURLParam += (newURLParam ? '&' : '?') + 'search=' + searchKeywords;\r\n }\r\n\r\n if ($sortBy !== 'random') {\r\n newURLParam += (newURLParam ? '&' : '?') + 'sort=' + $sortBy;\r\n }\r\n\r\n if (type !== '') {\r\n newURLParam += (newURLParam ? '&' : '?') + 'view-type=' + type;\r\n }\r\n\r\n if (!newURLParam) {\r\n newURLParam = window.location.origin + window.location.pathname;\r\n window.history.pushState(\"Content Search\", \"Content Search\", newURLParam);\r\n }\r\n\r\n /*\r\n if ((self.visualDataSearched == true) && (self.viewType == 'visual-network') && (force == false)) {\r\n self.filterDataVisual($this);\r\n window.history.pushState(\"Content Search\", \"Content Search\", newURLParam);\r\n return;\r\n }*/\r\n\r\n if (isFiltered) {\r\n $buttonReset.addClass('active');\r\n } else {\r\n $buttonReset.removeClass('active');\r\n }\r\n\r\n if (globalOurNetworkJson !== null) {\r\n $loading.addClass('hide');\r\n $this.attr('data-view', type);\r\n response_json = globalOurNetworkJson;\r\n\r\n if (self.viewType == 'visual-network') {\r\n self.filterDataVisual($this, newURLParam);\r\n\r\n } else {\r\n self.filterDataGrid($this, $sortBy);\r\n window.history.pushState(\"Content Search\", \"Content Search\", newURLParam);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (self.isLoad == false) {\r\n\r\n $.ajax({\r\n type: 'post',\r\n url: myAjax.ajax_url,\r\n data: {\r\n action: 'find_post',\r\n type: searchType,\r\n post_type: postType,\r\n opportunity_type: opportunityType,\r\n filter: JSON.stringify(dataFiltered),\r\n filter_field: JSON.stringify(dataFilterField),\r\n filter_field_like: JSON.stringify(dataFilterFieldLike),\r\n search_keywords: searchKeywords,\r\n sort_by: $sortBy,\r\n view_type: type,\r\n is_filtered: isFiltered,\r\n arr_topic: arrTopic\r\n },\r\n\r\n beforeSend: function(){\r\n $targetRender.html('');\r\n $visualListCont.html('');\r\n $visualCont.html('');\r\n $selectedEntries.text('');\r\n $selectedEntries.closest('.total-entries-text').removeClass('connection');\r\n $loading.removeClass('hide');\r\n $legend.removeClass('show');\r\n self.isLoad = true;\r\n },\r\n\r\n success: function(response) {\r\n var $resultHtml = response['html'];\r\n $loading.addClass('hide');\r\n $this.attr('data-view', type);\r\n\r\n if (type == 'grid') {\r\n $targetRender.append($resultHtml);\r\n $targetRender.foundation();\r\n $totalEntries.html(self.textEntries($targetRender.find('.item-data').length));\r\n //self.getCounter();\r\n } else {\r\n response_json = response['json'];\r\n self.filterDataVisual($this, newURLParam, $resultHtml);\r\n }\r\n mainHandler.setImageSize();\r\n\r\n self.isLoad = false;\r\n\r\n if (isFiltered) {\r\n internalNavHandler.smoothScroll(null, '#'+$this.attr('id'));\r\n }\r\n\r\n if ($withUpdateUrl) {\r\n window.history.pushState(\"Content Search\", \"Content Search\", newURLParam);\r\n }\r\n }\r\n });\r\n }\r\n },\r\n\r\n showHideData: function($this, showType = 'grid', sortBy) {\r\n var self = this;\r\n var $totalEntries = $this.find('.total-entries');\r\n var $itemData = $this.find('.item-data:not(.accordion-item)');\r\n var $itemDataContent = $this.find('.panel-content-find');\r\n var $visualCont = $this.find('#visual-container');\r\n var $cellContent = $this.find('.cell-content');\r\n var $inputSearchCont = $this.find('.input-search-container');\r\n\r\n if (sortBy == 'alphabetical') {\r\n $itemData.sort(function(a, b) {\r\n var an = Number($(a).data('order'));\r\n var bn = Number($(b).data('order'));\r\n if (an > bn) return 1;\r\n if (an < bn) return -1;\r\n return 0;\r\n });\r\n $itemData.detach().appendTo($itemDataContent);\r\n } else {\r\n $itemData.each(function(){\r\n var target = Math.floor(Math.random() * $itemData.length -1) + 1;\r\n var target2 = Math.floor(Math.random() * $itemData.length -1) + 1;\r\n $itemData.eq(target).before($itemData.eq(target2));\r\n })\r\n }\r\n\r\n if (showType == 'visual-network') {\r\n ourNetworkHandler.resetAllVar();\r\n if (ourNetworkHandler.Graph !== null) {\r\n ourNetworkHandler.Graph.pauseAnimation();\r\n ourNetworkHandler.Graph.resumeAnimation();\r\n }\r\n }\r\n\r\n if (($itemData.length > 0) && ( (self.arrFilter.college.length > 0) || (self.arrFilter.topic.length > 0) || (self.arrFilter.einhorn_type.length > 0) )) {\r\n $itemData.addClass('hide');\r\n $itemData.each(function(){\r\n let collegeIds = $(this).data('college-id').toString().trim();\r\n let topicIds = $(this).data('topic-id').toString().trim();\r\n let einTypes = $(this).data('einhorn_type').toString().trim();\r\n let nodeId = $(this).data('node-id');\r\n let $itemDataV = $this.find('.accordion-item.item-data#list-'+nodeId);\r\n let title = $(this).find('.item-title').text();\r\n let showItem = false;\r\n\r\n collegeIds = collegeIds !== '' ? collegeIds.split(',').map(Number) : [];\r\n topicIds = topicIds !== '' ? topicIds.split(',').map(Number) : [];\r\n einTypes = einTypes !== '' ? einTypes.split(',') : [];\r\n\r\n if ((self.arrFilter.einhorn_type.length > 0) && (einTypes.length > 0)) {\r\n self.arrFilter.einhorn_type.forEach(e => {\r\n if (einTypes.includes(e)) {\r\n showItem = true;\r\n }\r\n });\r\n }\r\n\r\n if ((self.arrFilter.college.length > 0) && showItem) {\r\n let colAvail = false;\r\n if (collegeIds.length > 0) {\r\n collegeIds.forEach(e => {\r\n if (self.arrFilter.college.includes(e)) {\r\n colAvail = true;\r\n }\r\n });\r\n }\r\n showItem = colAvail;\r\n }\r\n\r\n /*\r\n if ((self.arrFilter.college.length > 0) && (collegeIds.length > 0)) {\r\n self.arrFilter.college.forEach(e => {\r\n if (collegeIds.includes(e)) {\r\n showItem = true;\r\n }\r\n });\r\n }\r\n\r\n if ((showItem == false) && self.arrFilter.college.length == 0) {\r\n showItem = true;\r\n }\r\n\r\n if ((self.arrFilter.einhorn_type.length > 0) && showItem) {\r\n let typeAvail = false;\r\n if (einTypes.length > 0) {\r\n einTypes.forEach(e => {\r\n if (self.arrFilter.einhorn_type.includes(e)) {\r\n typeAvail = true;\r\n }\r\n });\r\n }\r\n showItem = typeAvail;\r\n }*/\r\n\r\n if ((self.arrFilter.topic.length > 0) && showItem) {\r\n let topicAvail = false;\r\n if (topicIds.length > 0) {\r\n topicIds.forEach(e => {\r\n if (self.arrFilter.topic.includes(e)) {\r\n topicAvail = true;\r\n }\r\n });\r\n }\r\n showItem = topicAvail;\r\n }\r\n\r\n if ((self.arrFilter.search != '') && showItem) {\r\n let searchAvail = title.toLowerCase().includes(self.arrFilter.search.toLowerCase());\r\n showItem = searchAvail;\r\n }\r\n\r\n if (showItem) {\r\n $(this).removeClass('hide');\r\n $itemDataV.removeClass('hide').removeClass('invisible');\r\n } else {\r\n $itemDataV.addClass('hide invisible');;\r\n }\r\n });\r\n } else {\r\n $itemData.removeClass('hide');\r\n }\r\n\r\n let totalEntries = $this.find('.item-data:not(.accordion-item):not(.hide)').length;\r\n if (totalEntries == 0) {\r\n $this.find('.cell-not-found').removeClass('hide');\r\n } else {\r\n $this.find('.cell-not-found').addClass('hide');\r\n }\r\n mainHandler.setImageSize();\r\n\r\n if ((self.arrFilter.college.length > 0) && (self.arrFilter.einhorn_type.length > 0)) {\r\n $visualCont.parent().removeClass('no-data');\r\n $cellContent.removeClass('no-data');\r\n\r\n if (showType == 'visual-network') {\r\n if (self.visualDataSearched == false) {\r\n ourNetworkHandler.init();\r\n self.visualDataSearched = true;\r\n }\r\n self.initialSelectFilter = true;\r\n }\r\n\r\n $totalEntries.html(self.textEntries(totalEntries));\r\n $inputSearchCont.removeClass('disabled');\r\n } else {\r\n $cellContent.addClass('no-data');\r\n $visualCont.parent().addClass('no-data');\r\n $totalEntries.html(self.textEntries(0));\r\n self.initialSelectFilter = true;\r\n\r\n $inputSearchCont.find('.btn-clear-search').addClass('hide');\r\n $inputSearchCont.find('.btn-start-search').removeClass('hide');\r\n $inputSearchCont.find('.text-search-data').val('');\r\n $inputSearchCont.addClass('disabled');\r\n }\r\n },\r\n\r\n filterDataGrid: function($this, sortBy) {\r\n var self = this;\r\n\r\n self.showHideData($this, 'grid', sortBy);\r\n },\r\n\r\n filterDataVisual: function($this, newURLParam, $resultHtml) {\r\n var self = this;\r\n var $visualListCont = $this.find('.visual-list-container');\r\n var $visualCont = $this.find('#visual-container');\r\n // var $cellContent = $this.find('.cell-content');\r\n // var $legend = $this.find('.legend-zoom-container');\r\n // var $selectedEntries= $this.find('.selected-entries .text');\r\n // var $totalEntries = $this.find('.total-entries');\r\n // ourNetworkHandler.showedNode = new Set();\r\n\r\n if ($resultHtml) {\r\n $visualListCont.append($resultHtml);\r\n $visualListCont.foundation();\r\n }\r\n\r\n self.showHideData($this, 'visual-network');\r\n\r\n document.documentElement.style.setProperty('--dynamic-height', $visualCont.width() + 'px');\r\n\r\n window.history.pushState(\"Content Search\", \"Content Search\", newURLParam);\r\n //if (ourNetworkHandler.clickNode) {\r\n if (self.visualDataSearched) {\r\n ourNetworkHandler.refreshNode(ourNetworkHandler.clickNode);\r\n }\r\n //}\r\n },\r\n\r\n initCI: function() {\r\n // try to enlarge college initiaative logos that are square-ish\r\n // this is in order for them to look better\r\n var $collegeInitiatives = $('.ci-initiative-container');\r\n if ($collegeInitiatives.length > 0) {\r\n var $logoImages = $collegeInitiatives.find('img.item-logo');\r\n $logoImages.each(function() {\r\n var width = $(this).attr('width');\r\n var height = $(this).attr('height');\r\n // 2.5 is the minimum aspect ratio to be considered \"square\"\r\n if (width * 1.0 / height < 2.5) {\r\n if (Foundation.MediaQuery.only('small')) {\r\n $(this).css('max-height', '4.5rem');\r\n } else {\r\n $(this).css('max-height', '9rem');\r\n }\r\n }\r\n });\r\n }\r\n },\r\n\r\n startSearch: function(){\r\n var self = this;\r\n\r\n if ( self.$panelFind ) {\r\n //$('input[type=checkbox]').prop('checked', false);\r\n self.$panelFind.each(function(){\r\n //if (!$(this).hasClass('panel-our-network')) {\r\n var search = window.location.search;\r\n if (search) {\r\n var arrSearch = search.replace('?', '').split('&');\r\n arrSearch.forEach(e => {\r\n var item = e.split('=')[1].split(',');\r\n var inputName = e.split('=')[0];\r\n\r\n if (inputName) {\r\n item.forEach(i => {\r\n $('input[name='+inputName+'][value=\"'+i+'\"]').prop('checked', true);\r\n });\r\n }\r\n if (inputName == 'view-type') {\r\n self.viewType = item[0]\r\n }\r\n });\r\n }\r\n\r\n self.blockFindRenderResult($(this), false, self.viewType);\r\n\r\n /*\r\n if ($(this).hasClass('panel-our-network')) {\r\n let $acTitle = $(this).find('.filter-container .accordion-title');\r\n if ($acTitle.length > 0) {\r\n $($acTitle[0]).click();\r\n }\r\n }*/\r\n });\r\n }\r\n },\r\n\r\n blockStoryNews: function() {\r\n let $storiesFlickity = $('.stories-flickity');\r\n if ($storiesFlickity.length > 0) {\r\n $storiesFlickity.each(function(){\r\n let $this = $(this);\r\n let fkty = $(this).flickity({\r\n cellSelector: '.cell-stories',\r\n cellAlign: 'left',\r\n pageDots: false,\r\n fade: false,\r\n wrapAround: true,\r\n prevNextButtons: true,\r\n draggable: true,\r\n autoPlay: 5000\r\n });\r\n\r\n fkty.on( 'change.flickity', function( event, index ) {\r\n let id = $(this).find('.cell-stories.is-selected').data('active-id');\r\n $this.next().find('.item-stories').removeClass('active');\r\n $this.next().find('.item-stories[data-id='+id+']').addClass('active');\r\n });\r\n })\r\n }\r\n },\r\n\r\n blockStatistics: function(){\r\n let self = this;\r\n let $statsCont = $(\".item-statistics-container\");\r\n\r\n //gsap\r\n if ($statsCont.length > 0) {\r\n gsap.registerPlugin(ScrollTrigger);\r\n var tl = gsap.timeline({\r\n scrollTrigger: {\r\n trigger: $statsCont,\r\n start: \"top 70%\",\r\n end: \"bottom 70%\",\r\n //markers: true,\r\n },\r\n })\r\n\r\n $statsCont.find(\".item-stat\").each(function(i,x){\r\n tl.fromTo($(this), {\r\n opacity: 0,\r\n },{\r\n opacity: 1,\r\n stagger: {\r\n each: 0.5,\r\n onStart: function() {\r\n let $lottie = $(this.targets()[0]).find(\".lottie-item\");\r\n const animation = lottie.loadAnimation({\r\n container: $lottie.get(0),\r\n renderer: 'svg',\r\n autoplay: false,\r\n loop: false,\r\n path: $lottie.data('src'),\r\n });\r\n animation.play();\r\n }\r\n }\r\n }, \"<0.2\").from($(this).find(\".text-value\"), {\r\n duration: 2,\r\n ease: \"none\",\r\n innerText: 0,\r\n roundProps: \"innerText\",\r\n onUpdate: function() {\r\n this.targets().forEach(target => {\r\n const val = gsap.getProperty(target, \"innerText\");\r\n target.innerText = self.numberWithCommas(val);\r\n });\r\n },\r\n }, \"<0.4\");\r\n\r\n })\r\n }\r\n\r\n },\r\n\r\n\r\n numberWithCommas: function(n){\r\n var parts=n.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n },\r\n\r\n init: function () {\r\n var self = this;\r\n self.isLoad = false;\r\n self.blockFind();\r\n self.blockResize();\r\n self.setYearLine();\r\n //self.getCounter();\r\n self.initCI();\r\n\r\n var search = window.location.search;\r\n self.startSearch();\r\n self.blockStoryNews();\r\n self.blockStatistics();\r\n self.blockChart();\r\n\r\n // if ( self.$panelFind ) {\r\n // self.$panelFind.each(function(){\r\n // var $btnStartSearch = $(this).find('.btn-start-search');\r\n // $btnStartSearch.click();\r\n // })\r\n // }\r\n /*\r\n $(window).on('popstate', function(event) {\r\n setTimeout(() => {\r\n self.startSearch();\r\n }, 400);\r\n });*/\r\n\r\n $(window).on('resize', function(e) {\r\n self.setYearLine();\r\n self.blockResize();\r\n self.initCI();\r\n });\r\n\r\n $('a[href=#visual-network],a[href=#grid]').on('click', function(e){\r\n e.preventDefault();\r\n let href = $(this).attr('href').replace('#','');\r\n let $currentPanelFind = $(this).closest('.panel-find.panel-our-network');\r\n let $btn = $currentPanelFind.find('.panel-button-network .button');\r\n\r\n $btn.removeClass('active')\r\n $(this).addClass('active');\r\n\r\n self.viewType = href;\r\n if (href == 'visual-network') {\r\n $('html, body').animate({\r\n scrollTop: $currentPanelFind.offset().top - $('header').height() //+ 200\r\n }, 400);\r\n }\r\n self.blockFindRenderResult($currentPanelFind, true, href, true);\r\n })\r\n\r\n $('.block-text-with-slider .tws-images').each(function() {\r\n var $current = $(this);\r\n var $slides = $current.find('.image-item');\r\n if ($slides.length > 1) {\r\n setTimeout(function() {\r\n $current.flickity({\r\n cellSelector: '.image-item',\r\n cellAlign: 'left',\r\n pageDots: false,\r\n fade: true,\r\n autoPlay: 3000,\r\n pauseAutoPlayOnHover: false,\r\n wrapAround: true,\r\n draggable: true,\r\n prevNextButtons: false,\r\n });\r\n }, 250);\r\n }\r\n })\r\n\r\n $('.block-quotes .quotes-container').each(function() {\r\n var $current = $(this);\r\n var $slides = $current.find('.quote-slide');\r\n if ($slides.length > 1) {\r\n setTimeout(function() {\r\n $current.flickity({\r\n cellSelector: '.quote-slide',\r\n cellAlign: 'left',\r\n pageDots: false,\r\n fade: false,\r\n wrapAround: false,\r\n prevNextButtons: true,\r\n draggable: true,\r\n arrowShape: {\r\n x0: 20,\r\n x1: 65, y1: 45,\r\n x2: 70, y2: 40,\r\n x3: 30\r\n }\r\n });\r\n }, 250);\r\n }\r\n })\r\n\r\n self.$openFactItem.on('click', function(){\r\n $(this).toggleClass('active');\r\n let h = 0;\r\n if ($(this).hasClass('active')) {\r\n $(this).next().children().each(function(){\r\n h += $(this).outerHeight();\r\n })\r\n }\r\n\r\n $(this).next().height(h)\r\n })\r\n }\r\n}","opportunitiesHandler = {\r\n $listOptionsActive : $('.list-options-active'),\r\n $csCarousel : $('.cs-carousel'),\r\n $csArrow : $('.arrow-previous-next'),\r\n $csFilter : $('[href=\"#cs-filter-button\"]'),\r\n $selectedYear : $('[href=\"#participant-select\"]'),\r\n $yearContainer : $('.year-item-container'),\r\n $participantContent : $('.oppor-participant-content'),\r\n $pnlOpporPct : $('.panel-oppor-participant'),\r\n $loading : $('.oppor-loading'),\r\n isLoad : false,\r\n tagVal : '',\r\n \r\n participantFilter: function(refreshTag = false) {\r\n var self = this;\r\n var newURLParam = '?show_participant=1';\r\n\r\n if (self.isLoad == false) {\r\n let contentYear = self.$participantContent.data('content-year').toString().trim();\r\n let contentTag = self.$participantContent.data('content-tag').toString().trim();\r\n\r\n $.ajax({\r\n type: 'post',\r\n url: myAjax.ajax_url,\r\n data: {\r\n action: 'participant_load',\r\n yearVal: contentYear,\r\n tagVal: contentTag,\r\n opporId: self.$participantContent.data('oppor-id'),\r\n opporType: self.$participantContent.data('oppor-type'),\r\n contentStyle: self.$participantContent.data('content-style'),\r\n },\r\n \r\n beforeSend: function(){\r\n self.$pnlOpporPct.find('.oppor-participant-content').html('');\r\n self.$loading.removeClass('hide');\r\n self.$pnlOpporPct.addClass('unclickable');\r\n self.isLoad = true; \r\n },\r\n\r\n success: function(response) {\r\n var $resultHtml = response['html'];\r\n self.$loading.addClass('hide');\r\n self.$pnlOpporPct.find('.oppor-participant-content').html($($resultHtml).find('.oppor-participant-content').html());\r\n \r\n if (refreshTag) {\r\n self.$pnlOpporPct.find('.head-tags').html($($resultHtml).find('.head-tags').html());\r\n \r\n contentTag = contentTag ? contentTag : self.tagVal;\r\n\r\n let $selectedTag = $('[data-tag-key=\"'+contentTag+'\"]');\r\n if ($selectedTag.length > 0) {\r\n setTimeout(() => {\r\n if ($selectedTag.hasClass('is-disabled')) {\r\n self.tagVal = contentTag;\r\n $selectedTag.parent().children().get(0).click();\r\n } else {\r\n $selectedTag.click();\r\n }\r\n }, 200);\r\n }\r\n }\r\n\r\n if (self.$participantContent.data('content-style') == 'list')\r\n self.$participantContent.foundation();\r\n\r\n if (contentYear)\r\n newURLParam += (newURLParam ? '&' : '?') + 'year_key=' + contentYear.replace('-', ' ');\r\n\r\n if (contentTag)\r\n newURLParam += (newURLParam ? '&' : '?') + 'tag_key=' + contentTag;\r\n\r\n if (!newURLParam)\r\n newURLParam = window.location.origin + window.location.pathname;\r\n\r\n window.history.pushState(\"Participant Filter\", \"Participant Filter\", newURLParam);\r\n\r\n self.$pnlOpporPct.removeClass('unclickable');\r\n self.isLoad = false;\r\n }\r\n });\r\n }\r\n },\r\n\r\n init: function(){\r\n var self = this;\r\n\r\n self.$listOptionsActive.on('click', function(){\r\n $(this).toggleClass('active');\r\n });\r\n\r\n self.$selectedYear.on('click', function(e) {\r\n e.preventDefault();\r\n\r\n $(this).toggleClass('is-active');\r\n self.$yearContainer.toggleClass('is-show');\r\n }); \r\n\r\n self.$yearContainer.find('[href=\"#participant-year\"]').on('click', function(e) {\r\n e.preventDefault();\r\n var yearLabel = $(this).text();\r\n self.$participantContent.data('content-year', $(this).data('year-key'));\r\n //self.$participantContent.data('content-tag', '');\r\n\r\n $(this).siblings('[href=\"#participant-year\"].hide').removeClass('hide');\r\n $(this).addClass('hide');\r\n\r\n self.$selectedYear.text(yearLabel);\r\n\r\n self.$selectedYear.click();\r\n\r\n self.participantFilter(true);\r\n });\r\n\r\n $(document).on('click', '[href=\"#participant-tag\"]', function(e) {\r\n e.preventDefault();\r\n self.$participantContent.data('content-tag', $(this).data('tag-key'));\r\n\r\n $(this).siblings('[href=\"#participant-tag\"].is-selected').removeClass('is-selected');\r\n $(this).addClass('is-selected');\r\n\r\n self.participantFilter();\r\n });\r\n\r\n if (self.$csCarousel.length > 0 && Foundation.MediaQuery.is('medium')) {\r\n let csCar = self.$csCarousel.flickity({\r\n cellSelector: '.cs-cell',\r\n cellAlign: 'left',\r\n pageDots: false,\r\n fade: false,\r\n wrapAround: false,\r\n freeScroll: true,\r\n prevNextButtons: true,\r\n draggable: true,\r\n on: {\r\n change: function( index ) {\r\n var $previousButton = null;\r\n var $nextButton = null;\r\n self.$csArrow.each(function() {\r\n var href = $(this).attr('href');\r\n\r\n if (href == '#previous-cell') {\r\n $previousButton = $(this);\r\n } else if (href == '#next-cell') {\r\n $nextButton = $(this);\r\n }\r\n });\r\n \r\n if (index == 0) {\r\n $nextButton.removeClass('is-disabled');\r\n $previousButton.addClass('is-disabled');\r\n } else if (index == self.$csCarousel.find('.cs-cell').length-1) {\r\n $previousButton.removeClass('is-disabled');\r\n $nextButton.addClass('is-disabled');\r\n } else {\r\n $previousButton.removeClass('is-disabled');\r\n $nextButton.removeClass('is-disabled');\r\n }\r\n },\r\n } \r\n });\r\n\r\n self.$csArrow.each(function() {\r\n $(this).on('click', function(e) {\r\n e.preventDefault();\r\n\r\n var href = $(this).attr('href');\r\n\r\n if (href == '#previous-cell') {\r\n csCar.find('.flickity-prev-next-button.previous').click();\r\n } else if (href == '#next-cell') {\r\n csCar.find('.flickity-prev-next-button.next').click();\r\n }\r\n })\r\n });\r\n\r\n self.$csFilter.on('click', function(e) {\r\n e.preventDefault();\r\n var csFilter = $(this).data('cs-filter');\r\n\r\n self.$csFilter.removeClass('is-active');\r\n $(this).addClass('is-active');\r\n\r\n self.$csCarousel.removeClass('is-filtering');\r\n self.$csCarousel.find('.cs-item').removeClass('hide show-year');\r\n if (csFilter != 'all') {\r\n self.$csCarousel.addClass('is-filtering');\r\n self.$csCarousel.find('.cs-item').addClass('hide');\r\n self.$csCarousel.find('.cs-item').each(function() {\r\n var csTags = $(this).data('cs-tags');\r\n var csYear = $(this).data('cs-year');\r\n \r\n if (csTags) {\r\n var arrTags = csTags.split(',');\r\n if (arrTags) {\r\n arrTags.forEach(value => {\r\n if (csFilter == value) {\r\n $(this).removeClass('hide');\r\n } \r\n });\r\n }\r\n }\r\n\r\n if (self.$csCarousel.find('.cs-item[data-cs-year=\"'+csYear+'\"].show-year').length == 0 && !$(this).hasClass('hide')) {\r\n $(this).addClass('show-year');\r\n }\r\n });\r\n }\r\n csCar.flickity();\r\n $(window).resize();\r\n });\r\n }\r\n }\r\n}","calendarHandler = {\r\n $activeDate: $('.active-date'),\r\n $dateNav: $('.date-nav'),\r\n $dateMoveUp: $('.date-move-up'),\r\n $dateMoveDown: $('.date-move-down'),\r\n $panelCalendar: $('.panel-calendar'),\r\n $calendarContainer: $('.calendar-container'),\r\n $recentStories: $('.panel-recent-stories'),\r\n $filterCategories: $('.filter-categories'),\r\n $dateRangeContainer: $('.date-range-container'),\r\n //$expandedDesc: $('.expanded-desc'),\r\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n $itemTax: $('.item-tax'),\r\n $dateRange: $('#date-range'),\r\n selectedEvent: '',\r\n selectedType: '',\r\n activeID: 0,\r\n $optItem: $('.opt-item'),\r\n isLoad: false, \r\n\r\n moveMonth: function($next = true){\r\n var self = this;\r\n var $adjuster = ($next) ? 0 : -2;\r\n\r\n var currDataDate = self.$activeDate.data('date').split('-');\r\n var dataDateNow = self.$activeDate.data('now');\r\n\r\n if ($next) {\r\n var newMonth = new Date(currDataDate[0], parseInt(currDataDate[1]), 01);\r\n } else {\r\n var newMonth = new Date(currDataDate[0], parseInt(currDataDate[1] - 2), 01);\r\n } \r\n var month = ('0' + parseInt(newMonth.getMonth()+1)).slice(-2);\r\n var strYM = newMonth.getFullYear()+'-'+month;\r\n var strDate = strYM+'-0'+1;\r\n\r\n this.$activeDate.data('date', strDate);\r\n this.$activeDate.attr('data-date', strDate);\r\n this.$activeDate.html( self.monthNames[newMonth.getMonth()] + ' ' + newMonth.getFullYear() );\r\n if (dataDateNow == strYM) {\r\n this.$activeDate.next().addClass('now');\r\n } else {\r\n this.$activeDate.next().removeClass('now');\r\n }\r\n this.loadCalendar(strDate);\r\n },\r\n\r\n navigateCalendar: function(){\r\n var self = this;\r\n self.$dateMoveUp.on('click', function(){\r\n self.moveMonth(true);\r\n })\r\n\r\n self.$dateMoveDown.on('click', function(){\r\n self.moveMonth(false);\r\n })\r\n },\r\n\r\n loadCalendar: function(date, dateTo = ''){\r\n var self = this;\r\n if (self.isLoad == false) {\r\n $.ajax({\r\n type: 'post',\r\n url: myAjax.ajax_url,\r\n data: {\r\n action: 'get_calendar',\r\n date: date,\r\n dateTo: dateTo\r\n },\r\n \r\n beforeSend: function(){ \r\n self.isLoad = true;\r\n self.$dateNav.addClass('disable');\r\n },\r\n\r\n success: function(response) {\r\n var $resultHtml = response['html'];\r\n let classname = $($resultHtml).attr('class');\r\n self.$calendarContainer.find('.panel-calendar').replaceWith($resultHtml); \r\n self.initTextClamp();\r\n //self.$calendarContainer.foundation();\r\n setTimeout(() => {\r\n self.$calendarContainer.find('.panel-calendar').addClass(classname); \r\n }, 50);\r\n self.filterEvents();\r\n self.linePosition();\r\n self.showRecentStories();\r\n self.isLoad = false;\r\n self.$dateNav.removeClass('disable');\r\n }\r\n });\r\n }\r\n },\r\n\r\n showRecentStories: function(){ \r\n var self = this;\r\n setTimeout(() => {\r\n \r\n let $pnlCalendar = self.$calendarContainer.find('.panel-calendar');\r\n if ($pnlCalendar.length > 0) {\r\n if ($pnlCalendar.hasClass('no-events')) {\r\n self.$recentStories.removeClass('hide');\r\n } else {\r\n self.$recentStories.addClass('hide');\r\n } \r\n }\r\n \r\n }, 200);\r\n },\r\n\r\n calendarEvents: function(){\r\n var self = this;\r\n /*\r\n self.$calendarContainer.on('click', '.item-event-day', function(){\r\n self.resetCalendar();\r\n\r\n var id = $(this).data('id');\r\n var title = $(this).data('event-title');\r\n var date = $(this).data('date');\r\n \r\n if ((self.activeID != id) && (id > 0)) {\r\n var $dayEventExpand = $(this).closest('.day-date-container').next();\r\n var $eventDetailContainer = $dayEventExpand.find('.event-detail-container');\r\n \r\n $dayEventExpand.addClass('active'); \r\n $(this).closest('.day-cell').addClass('active');\r\n \r\n self.activeID = id; \r\n\r\n $.ajax({\r\n type: 'post',\r\n url: myAjax.ajax_url,\r\n data: {\r\n action: 'get_calendar_details',\r\n id: id,\r\n title: title,\r\n date: date\r\n },\r\n \r\n beforeSend: function(){\r\n $eventDetailContainer.html('');\r\n },\r\n \r\n success: function(response) {\r\n var $resultHtml = response['html'];\r\n $eventDetailContainer.append($resultHtml);\r\n \r\n internalNavHandler.$html.animate({\r\n scrollTop: $eventDetailContainer.offset().top - 200\r\n }, 'slow'); \r\n self.linePosition();\r\n }\r\n });\r\n } else {\r\n self.activeID = 0;\r\n }\r\n }); */\r\n\r\n if (self.$dateRange.length > 0) {\r\n let arrEvDate = self.$calendarContainer.find('.panel-calendar').data('dates').split(',');\r\n self.$dateRange.dateRangePicker({\r\n format: \"MMM DD, YYYY\",\r\n autoClose: true,\r\n singleMonth: true,\r\n showShortcuts: false,\r\n showTopbar: false,\r\n language: \"custom\",\r\n getValue: function() {\r\n return this.innerHTML;\r\n },\r\n setValue: function(s) {\r\n this.innerHTML = s;\r\n let arrDate = s.split(' to ');\r\n let strDateFrom = new Date(arrDate[0]);\r\n let strDateTo = new Date(arrDate[1]);\r\n \r\n strDateFrom = strDateFrom.getFullYear()+'-'+('0' + parseInt(strDateFrom.getMonth()+1)).slice(-2)+'-'+strDateFrom.getDate();\r\n strDateTo = strDateTo.getFullYear()+'-'+('0' + parseInt(strDateTo.getMonth()+1)).slice(-2)+'-'+strDateTo.getDate();\r\n \r\n self.loadCalendar(strDateFrom, strDateTo);\r\n },\r\n monthSelect: false,\r\n customArrowPrevSymbol: '<i class=\"far fa-chevron-left arrow color-black date-move-up mini-cal\" aria-hidden=\"true\"></i>',\r\n customArrowNextSymbol: '<i class=\"far fa-chevron-right arrow color-black date-move-down mini-cal\" aria-hidden=\"true\"></i>',\r\n yearSelect: [1900, moment().get('year')],\r\n beforeShowDay: function(t) {\r\n let day = moment(t).format(\"YYYY-MM-DD\");\r\n var _class = day == moment().format(\"YYYY-MM-DD\") ? 'today' : '';\r\n var _tooltip = '';\r\n var _valid = true;\r\n _class += arrEvDate.includes(day) ? ' color-all' : '';\r\n return [_valid,_class,_tooltip];\r\n }\r\n }).bind('datepicker-closed',function() {\r\n self.setFilterPosition();\r\n });\r\n\r\n self.setFilterPosition();\r\n $(window).on('resize', function(){\r\n self.setFilterPosition();\r\n })\r\n }\r\n\r\n $(document).on('click', 'a[href=\"#expand-desc\"]', function(e){\r\n e.preventDefault();\r\n $(this).parent().toggleClass('is-active');\r\n })\r\n this.initTextClamp();\r\n },\r\n\r\n initTextClamp: function() {\r\n let $expandedDesc = $('.expanded-desc');\r\n if ($expandedDesc.length > 0) {\r\n $expandedDesc.find('.event-desc').css('-webkit-box-orient', 'vertical');\r\n }\r\n },\r\n\r\n setFilterPosition: function() {\r\n let self = this;\r\n if (self.$dateRange.length > 0) {\r\n setTimeout(() => {\r\n let $btnPickDt = $('.button-pick-date-range');\r\n let left = $btnPickDt.offset().left;\r\n document.documentElement.style.setProperty('--left-button-date-range', left + 'px');\r\n }, 500); \r\n }\r\n },\r\n\r\n capitalizeFirstLetter: function(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n },\r\n\r\n resetCalendar: function(){\r\n var self = this;\r\n self.$calendarContainer.find('.day-cell').removeClass('active');\r\n self.$calendarContainer.find('.day-event-expand').removeClass('active');\r\n self.$calendarContainer.find('.event-detail-container').html('');\r\n },\r\n\r\n filterEvents: function(){\r\n var self = this;\r\n var filterType = (self.selectedType) ? '[data-filter-type*=\"'+self.selectedType+'\"]' : '';\r\n var filterEvent = (self.selectedEvent) ? '[data-filter-event-type*=\"'+self.selectedEvent+'\"]' : '';\r\n\r\n self.$calendarContainer.find('.item-event-day.blank').remove();\r\n\r\n if ( self.selectedEvent || self.selectedType ) { \r\n self.$calendarContainer.find('.item-event-day').addClass('hide'); \r\n let $itemEvtDay = self.$calendarContainer.find('.item-event-day'+filterType+filterEvent);\r\n $itemEvtDay.removeClass('hide');\r\n if (self.selectedType) {\r\n $itemEvtDay.find('.bullets').addClass('filtered');\r\n $itemEvtDay.find('.bullet').addClass('hide');\r\n $itemEvtDay.find('.bullet[data-bullet-type=\"'+self.selectedType+'\"]').removeClass('hide');\r\n }\r\n } else {\r\n self.$calendarContainer.find('.bullets').removeClass('filtered');\r\n self.$calendarContainer.find('.item-event-day').removeClass('hide');\r\n self.$calendarContainer.find('.bullet').removeClass('hide');\r\n\r\n }\r\n\r\n // small item handler\r\n var $eventsListCalendar = self.$calendarContainer.find('.events-list-calendar');\r\n var $dayContainer = $eventsListCalendar.find('.day-container');\r\n \r\n $dayContainer.children().removeClass('first-item');\r\n $eventsListCalendar.find('.day-container').each(function(){\r\n var $firstItem = null;\r\n \r\n $(this).children().each(function(){\r\n if ((!$(this).hasClass('hide')) && ($firstItem == null)) {\r\n $firstItem = $(this);\r\n }\r\n })\r\n \r\n if ($firstItem) {\r\n $firstItem.addClass('first-item');\r\n }\r\n })\r\n\r\n let $itemEvt = $('.item-event-day');\r\n let $itemEvtHide = $('.item-event-day.hide');\r\n if ($itemEvt.length > 0) { \r\n let $pnlCalendar = self.$calendarContainer.find('.panel-calendar');\r\n if ($itemEvt.length == $itemEvtHide.length) {\r\n $pnlCalendar.addClass('no-events');\r\n } else {\r\n $pnlCalendar.removeClass('no-events');\r\n }\r\n self.showRecentStories();\r\n } \r\n\r\n self.linePosition();\r\n },\r\n\r\n filterClicked: function(){\r\n var self = this;\r\n \r\n self.$itemTax.on('click', function(){\r\n var dataType = $(this).data('type');\r\n dataType = (!dataType) ? 'black' : dataType;\r\n \r\n self.resetCalendar();\r\n self.$itemTax.removeClass('active');\r\n self.$itemTax.each(function(){\r\n $(this).removeClass('bg-color-'+$(this).data('type'));\r\n });\r\n \r\n $(this).addClass('active');\r\n $(this).addClass('bg-color-'+dataType);\r\n\r\n self.selectedType = (dataType == 'black') ? '' : dataType;\r\n self.filterEvents();\r\n }) \r\n },\r\n \r\n dropdownSelect: function(){\r\n var self = this;\r\n\r\n $('.dropdown-select').on('click', '.select', function(){\r\n $(this).parent().toggleClass('active');\r\n })\r\n \r\n $('.dropdown-select').on('click', '.opt-item', function(){\r\n self.resetCalendar();\r\n var textVal = $(this).html();\r\n var $selected = $(this).closest('.dropdown-select').find('.selected');\r\n var type = $(this).closest('.dropdown-select').data('type');\r\n \r\n $('.dropdown-select').find('.opt-item').removeClass('active');\r\n\r\n if ( ($selected.data('selected') == true) && (textVal == $selected.html()) ) {\r\n $selected.html( $selected.data('default') );\r\n $(this).removeClass('active');\r\n\r\n if (type == 'event') {\r\n self.selectedEvent = '';\r\n } else {\r\n self.selectedType = '';\r\n }\r\n \r\n } else {\r\n $selected.html( textVal );\r\n $selected.data('selected', true); \r\n $(this).addClass('active');\r\n \r\n if (type == 'event') {\r\n self.selectedEvent = $(this).data('value');\r\n } else {\r\n self.selectedType = $(this).data('value');\r\n }\r\n }\r\n\r\n self.filterEvents();\r\n $(this).closest('.dropdown-select').toggleClass('active');\r\n })\r\n },\r\n\r\n linePosition: function(){\r\n let self = this;\r\n self.$calendarContainer.find('tr.day-date-container').each(function(){\r\n let arrEvent = [];\r\n let dayOfWeek = 1; \r\n $(this).find('.day-cell').each(function(){\r\n let lineNo = 1;\r\n $(this).find('.item-event-day:not(.hide)').each(function(i, e){\r\n let key = $(this).data('key');\r\n\r\n if (key) {\r\n let arKey = key.split('##');\r\n let keyCheck = key.replace('##'+arKey[2], '##'+(parseInt(arKey[2]) - 1));\r\n let prevLine = arrEvent[keyCheck] ? arrEvent[keyCheck] : 0;\r\n let strClass = $(this).attr('class');\r\n let filterEventType = $(this).data('filter-event-type');\r\n let filterType = $(this).data('filter-type');\r\n \r\n if ((prevLine > lineNo) && (prevLine > 0 )) {\r\n lineNo = prevLine;\r\n $('<div class=\"'+strClass+' blank\" data-filter-event-type=\"'+filterEventType+'\" data-filter-type=\"'+filterType+'\"> </div>').insertBefore($(this));\r\n } \r\n \r\n if ( (!$(this).hasClass('continous-item')) && ( $(this).hasClass('multi-day-2') || $(this).hasClass('multi-day-3') || $(this).hasClass('grant') ) || \r\n ( $(this).hasClass('continous-item') && (dayOfWeek == 1)) ) {\r\n \r\n $($(this).find('.bullet:not(.hide)').get().reverse()).each(function(i, e){\r\n $(this).css('margin-left', parseInt(8*i)+\"px\");\r\n })\r\n }\r\n\r\n arrEvent[key] = lineNo; \r\n }\r\n lineNo++;\r\n })\r\n dayOfWeek++;\r\n })\r\n })\r\n },\r\n \r\n init: function(){\r\n var self = this;\r\n this.navigateCalendar();\r\n this.calendarEvents();\r\n this.filterEvents();\r\n this.filterClicked();\r\n this.dropdownSelect();\r\n this.linePosition();\r\n this.showRecentStories();\r\n }\r\n}","homeHandler = {\r\n $heroFlickity: $('.hero-flickity'),\r\n $heroImage: $('.hero-image'),\r\n $gridHeroImage: $('.grid-hero-image'),\r\n\r\n setSlider: function(){\r\n var self = this;\r\n\r\n if (self.$heroFlickity) {\r\n self.$heroFlickity.flickity({\r\n cellSelector: '.hero-cell',\r\n cellAlign: 'left',\r\n pageDots: true,\r\n fade: false,\r\n wrapAround: false,\r\n prevNextButtons: false,\r\n draggable: true\r\n });\r\n }\r\n },\r\n\r\n setHeightImage: function($obj){\r\n var width = $obj.outerWidth();\r\n var height = width * (11/16);\r\n\r\n if (height > 0) {\r\n $obj.css({\r\n 'height': height+'px'\r\n })\r\n }\r\n },\r\n\r\n animateImage: function(){\r\n var self = this;\r\n this.$gridHeroImage.imagesLoaded( function() {\r\n var $imageContainer = self.$gridHeroImage.find('.hero-image-container');\r\n $imageContainer.each(function(i, v){\r\n setTimeout(() => {\r\n $(this).addClass('showing');\r\n if (i+1 == $imageContainer.length) {\r\n self.$gridHeroImage.find('.text-container').addClass('showing');\r\n }\r\n }, i * 125);\r\n })\r\n \r\n });\r\n },\r\n\r\n init: function(){\r\n var self = this;\r\n self.animateImage();\r\n self.setSlider();\r\n self.setHeightImage(self.$heroImage);\r\n\r\n var hostUrl = document.location.host;\r\n\r\n $('.internal-nav-container').find('a:not(.button, .social-media-item, .accordion-title)').each(function(){\r\n var $anchor = $(this);\r\n var $children = $anchor.children();\r\n var imageAnchor = ($children.length == 1 && $children.is('img'));\r\n var url = $anchor.attr('href');\r\n if (url) {\r\n if (url.includes('http') && !imageAnchor) {\r\n if (!url.includes(hostUrl)) {\r\n $anchor.addClass('external-link');\r\n var target = $anchor.attr('target');\r\n if (!target) {\r\n $anchor.attr('target', '_new');\r\n } \r\n }\r\n }\r\n }\r\n })\r\n\r\n $(window).on('resize', function(){\r\n self.setHeightImage(self.$heroImage);\r\n })\r\n }\r\n}","handlerStoriesAndNews = {\r\n $targetRender: $('.cell-content'),\r\n $totalEntries: $('.total-entries'),\r\n $searchText: $('#search-text'),\r\n $iconSearch: $('.icon-search'),\r\n $dropdownSelect: $('.dropdown-select'),\r\n selectedSort: '',\r\n searchQuery: '',\r\n process: false,\r\n\r\n searchStoriesAndNews: function(){\r\n var self = this;\r\n self.process = true;\r\n $.ajax({\r\n type: 'post',\r\n url: myAjax.ajax_url,\r\n data: {\r\n action: 'search_stories_and_news',\r\n search: self.searchQuery,\r\n order: self.selectedSort \r\n },\r\n \r\n beforeSend: function(){\r\n self.$targetRender.html(''); \r\n },\r\n\r\n success: function(response) {\r\n var $resultHtml = response['html'];\r\n self.$targetRender.append($resultHtml);\r\n self.$totalEntries.html(self.$targetRender.find('.item-stories').length);\r\n self.process = false; \r\n }\r\n });\r\n },\r\n\r\n sortData: function(){\r\n var self = this;\r\n this.$dropdownSelect.on('click', '.select', function(){\r\n $(this).parent().toggleClass('active');\r\n })\r\n \r\n this.$dropdownSelect.on('click', '.opt-item', function(){\r\n var $selected = $(this).closest('.dropdown-select').find('.selected');\r\n var textVal = $(this).html();\r\n var value = $(this).data('value');\r\n\r\n self.$dropdownSelect.find('.opt-item').removeClass('active');\r\n\r\n if ( ($selected.data('selected') == true) && (textVal == $selected.html()) ) {\r\n $selected.html( $selected.data('default') );\r\n $(this).removeClass('active');\r\n self.selectedSort = '';\r\n \r\n } else {\r\n $selected.html( textVal );\r\n $selected.data('selected', true); \r\n $(this).addClass('active');\r\n self.selectedSort = value;\r\n }\r\n\r\n $(this).closest('.dropdown-select').toggleClass('active');\r\n self.searchStoriesAndNews();\r\n })\r\n },\r\n\r\n init: function(){\r\n var self = this;\r\n\r\n this.searchStoriesAndNews();\r\n this.sortData();\r\n \r\n if (Foundation.MediaQuery.is(\"small\")) {\r\n this.$iconSearch.on('click', function(){\r\n $(this).parent().toggleClass('active');\r\n self.$searchText.focus(); \r\n })\r\n\r\n this.$searchText.on('blur', function(){\r\n if ($(this).val() == '') {\r\n $(this).parent().toggleClass('active');\r\n self.searchQuery = ''; \r\n }\r\n })\r\n }\r\n\r\n\r\n this.$searchText.on('change, keyup', function(){\r\n if (self.process == false) {\r\n self.searchQuery = $(this).val();\r\n self.searchStoriesAndNews();\r\n }\r\n });\r\n }\r\n}","ourNetworkHandler = {\r\n $pnlContentList: $('.panel-content-list'),\r\n $selectedEntries: $('.selected-entries .text'),\r\n highlightNodes: new Set(),\r\n highlightLinks: new Set(),\r\n highlightSelectedNodes: new Set(),\r\n showedNode: new Set(),\r\n showedNodeUnsearched: new Set(),\r\n tempTopics: new Set(),\r\n filterNodes: null,\r\n hoverNode: null,\r\n clickNode: null,\r\n firstState: true,\r\n Graph: null,\r\n\r\n resetInterface: function(forceReset = false){\r\n let self = this;\r\n let $active = $('.panel-our-network.panel-find .accordion-item.item-data.is-active');\r\n \r\n if ($active && forceReset) {\r\n $active.find('.accordion-title').click();\r\n }\r\n\r\n if (self.Graph && forceReset) {\r\n self.Graph.zoomToFit(self.Graph.zoom());\r\n }\r\n },\r\n\r\n resetHighlight: function() {\r\n $('.panel-content-list .item-data').removeClass('inactive');\r\n },\r\n \r\n highlightList: function($id) {\r\n $('.panel-content-list .item-data').addClass('inactive');\r\n $('.panel-content-list .item-data#list-'+$id).removeClass('inactive');\r\n },\r\n\r\n dataAvailabilityCheck: function(node) {\r\n let dataAvail = false;\r\n if ((blocksHandler.arrFilter.einhorn_type.length > 0) && (node.einhorn_type.length > 0)) { \r\n node.einhorn_type.forEach(e => {\r\n if (blocksHandler.arrFilter.einhorn_type.includes(e)) {\r\n dataAvail = true;\r\n } \r\n })\r\n }\r\n\r\n if ((blocksHandler.arrFilter.college.length > 0) && (dataAvail)) { \r\n let colAvail = false;\r\n if (node.college.length > 0) {\r\n node.college.forEach(e => {\r\n if (blocksHandler.arrFilter.college.includes(e)) {\r\n colAvail = true;\r\n } \r\n })\r\n }\r\n dataAvail = colAvail;\r\n }\r\n \r\n\r\n if ((blocksHandler.arrFilter.topic.length > 0) && dataAvail) { \r\n let topicAvail = false; \r\n if (node.topic.length > 0) {\r\n node.topic.forEach(e => {\r\n if (blocksHandler.arrFilter.topic.includes(e)) {\r\n topicAvail = true;\r\n } \r\n });\r\n }\r\n dataAvail = topicAvail;\r\n }\r\n return dataAvail;\r\n },\r\n\r\n loadNetwork: function(){\r\n let self = this;\r\n // reset \r\n self.$selectedEntries.text('');\r\n self.hoverNode = null;\r\n self.clickNode = null;\r\n //self.showedNode = null;\r\n self.firstState = true;\r\n\r\n if (response_json !== null) {\r\n const NODE_R = 8;\r\n \r\n self.highlightNodes = new Set();\r\n self.highlightLinks = new Set();\r\n self.showedNode = new Set();\r\n self.showedNodeUnsearched = new Set();\r\n self.highlightSelectedNodes = new Set();\r\n\r\n let $visCont = $('#visual-container');\r\n let contWidth = $visCont.parent().outerWidth().toString().replace('px', '');\r\n let contHeight = contWidth;\r\n\r\n $visCont.removeClass('no-data');\r\n\r\n if (response_json.links.length > 0) {\r\n response_json.links.forEach(link => {\r\n var a = response_json.nodes.find(x => x.id === link.source);\r\n var b = response_json.nodes.find(x => x.id === link.target);\r\n \r\n !a.neighbors && (a.neighbors = []);\r\n !b.neighbors && (b.neighbors = []);\r\n \r\n a.neighbors.push(b);\r\n b.neighbors.push(a);\r\n\r\n !a.links && (a.links = []);\r\n !b.links && (b.links = []);\r\n \r\n a.links.push(link);\r\n b.links.push(link);\r\n });\r\n }\r\n \r\n self.Graph = ForceGraph()\r\n ($visCont[0])\r\n .graphData(response_json)\r\n .width(contWidth)\r\n .height(contHeight)\r\n .cooldownTicks(0) \r\n .nodeId('id')\r\n .nodeColor('color')\r\n .linkSource('source')\r\n .linkTarget('target')\r\n .linkCurvature('curvature')\r\n .linkColor('color')\r\n .linkLabel((link) => {\r\n return '<div style=\"background: white; border: 1px solid '+link.color+'; color: black; border-radius: none;box-shadow: none; padding: 6px 8px 8px; text-align: center; max-width: 110px; font-family: Sanomat Sans Text Regular; font-size: 10px; outline: none; margin: -4px\">'+link.label+'</div>';\r\n })\r\n .autoPauseRedraw(false) // keep redrawing after engine has stopped\r\n .linkVisibility(link => self.highlightLinks.has(link) ? true : false )\r\n .onNodeDrag(false)\r\n .enableNodeDrag(false)\r\n .linkWidth(1.5)\r\n .nodeCanvasObject((node, ctx, globalScale) => {\r\n const label = node.label;\r\n const fontSize = 14/globalScale;\r\n const textWidth = ctx.measureText(label).width;\r\n const bckgDimensions = [textWidth, fontSize].map(n => n + fontSize * 0.2); // some padding\r\n \r\n let x = node.x;\r\n let y = node.y;\r\n let w = 12/globalScale;\r\n let addon_x = bckgDimensions[0] + (8/globalScale);\r\n let addon_y = 5/globalScale;\r\n let addon_circle = 6/globalScale;\r\n let dataAvail = self.dataAvailabilityCheck(node);\r\n\r\n if (dataAvail || (self.clickNode && (self.highlightSelectedNodes.has(node)))) {\r\n self.showedNodeUnsearched.add(node);\r\n }\r\n\r\n if ((blocksHandler.arrFilter.search != '') && dataAvail) { \r\n let searchAvail = node.label.toLowerCase().includes(blocksHandler.arrFilter.search.toLowerCase()); \r\n dataAvail = searchAvail;\r\n }\r\n \r\n if (dataAvail || (self.clickNode && (self.highlightSelectedNodes.has(node)))) {\r\n if (dataAvail) {\r\n self.showedNode.add(node);\r\n }\r\n if (node.arr_color) {\r\n let i = 0;\r\n node.arr_color.slice().reverse().forEach(color => {\r\n ctx.beginPath();\r\n ctx.arc((x - (addon_circle * i)), y, w/2, 0, 2 * Math.PI, false);\r\n //ctx.globalAlpha = (self.highlightNodes.has(node) || self.highlightSelectedNodes.has(node) || (self.firstState && (self.hoverNode == null)) || (self.clickNode == node) || (self.hoverNode == node)) ? 1 : 0.4;\r\n \r\n if ( (self.highlightSelectedNodes.has(node) || (self.hoverNode == node)) || (self.firstState && (self.hoverNode == null)) ) {\r\n ctx.fillStyle = color;\r\n ctx.globalCompositeOperation = 'source-over';\r\n } else {\r\n ctx.fillStyle = 'rgb(216 216 216 / 40%)';\r\n ctx.globalCompositeOperation = 'destination-over';\r\n }\r\n\r\n ctx.globalAlpha = (dataAvail || (self.clickNode && (self.highlightSelectedNodes.has(node)))) ? 1 : 0;\r\n ctx.fill();\r\n i++;\r\n })\r\n }\r\n \r\n ctx.font = (self.clickNode == node) ? `${fontSize}px Sanomat Sans Text Semibold` : `${fontSize}px Sanomat Sans Text Regular`;\r\n ctx.fillStyle = 'black';\r\n ctx.textAlign = 'right';\r\n\r\n if (self.highlightSelectedNodes.has(node) || (self.hoverNode == node)) {\r\n ctx.globalCompositeOperation = 'source-over';\r\n ctx.fillText(label, x+addon_x, y+addon_y);\r\n }\r\n } \r\n })\r\n\r\n .onNodeHover((node, prevNode) => {\r\n self.hoverNodeCommand(node);\r\n })\r\n\r\n .onNodeClick(node => {\r\n if (self.showedNode.has(node) || self.highlightSelectedNodes.has(node)) {\r\n $('#list-'+node.id+' .accordion-title').click();\r\n }\r\n });\r\n \r\n\r\n // fit to canvas when engine stops\r\n self.Graph.onEngineStop(() => self.Graph.zoomToFit(0));\r\n \r\n $('a[href=\"#zoom-in\"]').on('click', function(e){\r\n let zoomVal = self.Graph.zoom() + 2;\r\n self.Graph.zoom(zoomVal, 1000);\r\n });\r\n\r\n $('a[href=\"#zoom-out\"]').on('click', function(e){\r\n let zoomVal = self.Graph.zoom() - 2;\r\n self.Graph.zoom(zoomVal, 1000);\r\n });\r\n\r\n $('a[href=\"#reset\"]').on('click', function(e){\r\n let $parent = $(this).closest('.panel-our-network.panel-find');\r\n $parent.find('.input-find.checkbox-style').prop(\"checked\", false);\r\n blocksHandler.blockFindRenderResult($parent);\r\n });\r\n\r\n $('.accordion-item.item-data .accordion-title').on('mouseenter', function(){\r\n let $id = $(this).parent().attr('id').replace('list-', '');\r\n let selectedNode = response_json.nodes.find(x => x.id == $id);\r\n self.hoverNodeCommand(selectedNode);\r\n })\r\n\r\n $('.accordion-item.item-data .accordion-title').on('mouseleave', function(){\r\n let $parent = $(this).closest('.panel-content-list');\r\n $parent.find('.item-data').removeClass('inactive');\r\n self.hoverNode = null;\r\n })\r\n\r\n $('.accordion-item.item-data .accordion-title').on('click', function(){\r\n self.showHideItemData($(this));\r\n })\r\n }\r\n },\r\n\r\n showHideItemData: function($this, triggerClick = true) {\r\n let self = this;\r\n let $parent = $this.closest('.panel-content-list');\r\n let $id = $this.parent().attr('id').replace('list-', '');\r\n let selectedNode = response_json.nodes.find(x => x.id == $id);\r\n let $parentPanel = $this.closest('.panel-our-network.panel-find');\r\n let $parentTtlEntry = self.$selectedEntries.closest('.total-entries-text');\r\n let $legend = $parentPanel.find('.legend-zoom-container');\r\n let isSearch = blocksHandler.arrFilter.search != ''; \r\n\r\n if (!selectedNode) {\r\n return;\r\n }\r\n\r\n if (triggerClick) {\r\n self.clickNodeCommand(selectedNode);\r\n }\r\n self.$selectedEntries.text( '' );\r\n $parentTtlEntry.removeClass('connection');\r\n $legend.removeClass('show');\r\n\r\n if (!$this.parent().hasClass('is-active')) {\r\n $parent.find('.item-data').removeClass('invisible').removeClass('inactive');\r\n } else {\r\n $parent.find('.item-data').addClass('invisible');\r\n $parent.find('.item-data#list-'+$id).removeClass('invisible').removeClass('inactive');\r\n $legend.addClass('show');\r\n \r\n if (self.highlightNodes.size > 0) {\r\n self.highlightNodes.forEach(n => {\r\n $parent.find('.item-data#list-'+n.id).removeClass('invisible').removeClass('inactive');\r\n })\r\n\r\n let connLength = $parent.find('.item-data:not(.invisible):not(.inactive)').length - 1;\r\n \r\n if (connLength > 0) {\r\n $parentTtlEntry.addClass('connection');\r\n self.$selectedEntries.text( connLength+' Connection'+(connLength == 1 ? '' : 's') );\r\n } \r\n }\r\n\r\n $parent.parent(\".visual-list-container\").scrollTop(0);\r\n }\r\n },\r\n\r\n refreshNode: function(node) {\r\n let self = this;\r\n self.highlightLinks.clear();\r\n if (node) {\r\n self.showedNodeUnsearched = new Set();\r\n self.clickNodeCommand(node, true);\r\n if (!self.dataAvailabilityCheck(node)) {\r\n self.resetInterface(true);\r\n }\r\n } else {\r\n self.Graph.centerAt(0, 0, self.Graph.zoom());\r\n } \r\n },\r\n\r\n clickNodeCommand: function(node, forceRefresh = false) {\r\n let self = this;\r\n let isSearch = blocksHandler.arrFilter.search != ''; \r\n tempTopics = new Set();\r\n\r\n if (self.showedNode.has(node) || isSearch) {\r\n // Center/zoom on node\r\n if (!forceRefresh) {\r\n self.Graph.centerAt(node.x, node.y, 1000);\r\n }\r\n //self.Graph.zoom(8, 1000);\r\n\r\n self.highlightLinks.clear();\r\n self.highlightNodes.clear();\r\n self.highlightSelectedNodes.clear();\r\n\r\n if ( (node && (self.clickNode !== node)) || (forceRefresh) ) {\r\n self.highlightNodes.add(node);\r\n self.highlightSelectedNodes.add(node);\r\n\r\n if (node.links) {\r\n node.links.forEach(link => {\r\n let linkFiltered = (blocksHandler.arrFilter.topic.includes(link.id))\r\n if ( ((self.showedNode.has(link.target) && self.showedNode.has(link.source)) || \r\n ((isSearch && self.showedNodeUnsearched.has(link.target) && self.showedNodeUnsearched.has(link.source)))) \r\n && (node.id == link.source.id) && linkFiltered ) {\r\n self.highlightLinks.add(link);\r\n tempTopics.add(link.id);\r\n }\r\n });\r\n } \r\n \r\n if (node.neighbors) {\r\n node.neighbors.forEach(neighbor => {\r\n let dataTopicAvail = false;\r\n \r\n if (tempTopics.size > 0) { \r\n let stateTemp = false; \r\n if (neighbor.topic.length > 0) {\r\n neighbor.topic.forEach(e => {\r\n stateTemp = (tempTopics.has(e)) ? true : stateTemp; \r\n });\r\n }\r\n dataTopicAvail = stateTemp;\r\n } \r\n\r\n if (dataTopicAvail && (self.showedNode.has(neighbor) || (isSearch && self.showedNodeUnsearched.has(neighbor)))) {\r\n self.highlightNodes.add(neighbor);\r\n self.highlightSelectedNodes.add(neighbor);\r\n }\r\n });\r\n }\r\n \r\n self.firstState = false;\r\n self.clickNode = node || null;\r\n if (!forceRefresh) {\r\n self.highlightList(node.id);\r\n }\r\n } else {\r\n self.firstState = true;\r\n self.clickNode = null;\r\n self.resetHighlight();\r\n }\r\n } else {\r\n self.firstState = true;\r\n self.clickNode = null;\r\n self.resetHighlight();\r\n }\r\n },\r\n\r\n resetAllVar: function() {\r\n this.showedNode.clear();\r\n this.highlightLinks.clear();\r\n this.highlightNodes.clear();\r\n this.highlightSelectedNodes.clear();\r\n },\r\n\r\n hoverNodeCommand: function(node) {\r\n let self = this;\r\n\r\n if (self.showedNode.has(node)) {\r\n if (self.clickNode) {\r\n self.highlightNodes.clear();\r\n if (node) {\r\n self.highlightNodes.add(node);\r\n if (node.neighbors) {\r\n node.neighbors.forEach(neighbor => self.highlightNodes.add(neighbor));\r\n }\r\n }\r\n } \r\n \r\n if (self.clickNode == null) {\r\n if (node) {\r\n self.highlightList(node.id);\r\n } else {\r\n self.resetHighlight();\r\n }\r\n }\r\n self.hoverNode = node || null;\r\n } else {\r\n self.hoverNode = null;\r\n self.resetHighlight();\r\n }\r\n },\r\n\r\n init: function(){\r\n let self = this;\r\n this.loadNetwork(); \r\n }\r\n}"],"file":"extra-scripts.min.js"}