{"version":3,"sources":["main.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","global","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","slice","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","clearTimeout","flush","window","2","requiredElem","document","querySelectorAll","flyInElems","windowHeight","debounce","slightlyMoreThanAFrame","utils","handleWindowResize","innerHeight","handleWindowScroll","forEach","addClass","elem","index","elemRect","getBoundingClientRect","hasBeenScrolledPast","top","height","hasComeIntoView","classList","add","addEventListener","init","./utils","lodash.debounce","3","styleElem","createElement","allowOutline","evt","which","textContent","disallowOutline","getElementsByTagName","appendChild","4","selectorMatches","el","selector","Element","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","s","indexOf","closest","element","nodeType","parentNode","object","callback","getElemNaturalHeight","doRecalc","naturalHeight","currentHeight","style","getSiteHeaderHeight","getElementById","preventDefault","scrollTo","position","TweenLite","to","ease","Power2","easeOut","y","scrollToElement","5","summaryButtons","accordionClass","accordionOpenClass","detailsElemClass","detailsElems","iconCloseClass","iconOpenClass","addSummaryEventListener","summary","handleSummaryClick","parent","contains","openAccordion","initOpenedState","detailsElem","accordion","summaryElem","querySelector","remove","closeAccordion","isAccordionOpen","toggleAll","accordionContainer","toggleClosed","accordions","../auxilliary/utils","6","backToTopElem","visibleClass","hide","show","7","navAnchors","detailTabsNav","closeButton","menuButton","addTabNavEventListeners","anchor","anchorSelectedClass","selectedDetailTab","hash","detailTabs","tabSelectedClass","url","location","href","substring","getAttribute","stateObj","state","saveState","history","pushState","tab","handleTabNavClick","toggleMenu","navListContainer","innerWidth","toggle","checkHash","$links","$","find","Number","isInteger","click","animate","scrollTop","offsetTop","each","mq","matchMedia","behavior","scrollIntoView","onpopstate","event","8","rect","scrollLeft","scrollToElem","pageXOffset","documentElement","pageYOffset","left","9","emailDisclaimer","emailControlPath","emailParams","emailFrameParams","processEmailDisclaimer","disclaimer","handleEmailLink","user","domain","open","10","ev","fn","trigger","jQuery","on","css","overflow","target","11","slick","slidesToShow","slidesToScroll","fade","centerMode","arrows","asNavFor","focusOnSelect","dots","responsive","breakpoint","settings","12","requireElem","isAssociatePage","isShareholderPage","ASSOCIATE_KEY","SHAREHOLDER_KEY","getCookie","key","cookie","split","trim","startsWith","setCookie","d","setDate","getDate","setHours","midnight","toUTCString","openModal","prop","closeModal","data","checked","removeAttr","13","professionalGrid","gridItemClass","showMoreButton","$professionalGridItems","$gridItems","$toggleButton","$itemsToToggle","isShown","slideUp","text","slideDown","14","15","servicesGrid","accordionModule","toggleAccordions","viewAllButton","viewAllButtonActiveClass","textActive","textInactive","textActiveClass","viewAllButtonClassList","../components/accordion","16","./auxilliary/fly-in","./auxilliary/toggle-focus-outline","./components/accordion","./components/detail-tabs","./components/down-arrow-scroll","./components/email-disclaimer","./components/gallery","./components/gallery-modal","./components/modal","./components/professional-grid","./components/reader-view","./components/services-grid","./modules/standard-panel-nav","./structures/site-header","17","panelCoords","backToTop","panels","siteHeaderHeight","handleAnchorClick","panel","clickedElem","handleScroll","activeHash","anchors","anchorActiveClass","scrollY","currentPanelIndex","docPos","getCurrentPanelIndex","id","setPanelCoords","clientRect","coords","push","body","../components/back-to-top","18","siteHeader","drawerToggleNavLinks","drawer","drawerActiveClass","drawerToggleActiveClass","isDrawerOpen","MutationObserver","setDrawerHeight","closeDrawer","openDrawer","wasSearchButtonClicked","wasShareToolsClicked","requestAnimationFrame","siteNav","siteSearch","shareTools","updateClasses","focus","handleNavClick","activeLink","shouldDrawerOpen","isMenuLinkActive","removeEventListener"],"mappings":"CAAA,WAA+b,OAAnb,SAASA,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,IAAIE,EAAE,mBAAmBC,SAASA,QAAQ,IAAIF,GAAGC,EAAE,OAAOA,EAAEF,GAAE,GAAI,GAAGI,EAAE,OAAOA,EAAEJ,GAAE,GAAI,IAAIK,EAAE,IAAIC,MAAM,uBAAuBN,EAAE,KAAK,MAAMK,EAAEE,KAAK,mBAAmBF,EAAE,IAAIG,EAAEX,EAAEG,IAAIS,YAAYb,EAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAoB,OAAOI,EAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,OAAOD,EAAEG,GAAGS,QAAQ,IAAI,IAAIL,EAAE,mBAAmBD,SAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,IAAI,OAAOD,GAA7b,EAAA,EAA6ca,GAAG,SAAST,EAAQU,EAAOJ,IACxe,SAAWK,IAAQ,WAWnB,IAAIC,EAAkB,sBAGlBC,EAAM,IAGNC,EAAY,kBAGZC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAGfC,EAA8B,iBAAVV,GAAsBA,GAAUA,EAAOW,SAAWA,QAAUX,EAGhFY,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKF,SAAWA,QAAUE,KAGxEC,EAAOJ,GAAcE,GAAYG,SAAS,cAATA,GAUjCC,EAPcL,OAAOM,UAOQC,SAG7BC,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IAkBjBC,EAAM,WACR,OAAOV,EAAKW,KAAKD,OA4MnB,SAASE,EAASC,GAChB,IAAIC,SAAcD,EAClB,QAASA,IAAkB,UAARC,GAA4B,YAARA,GA4EzC,SAASC,EAASF,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBtBG,CAAaH,IAAUX,EAAepB,KAAK+B,IAAUxB,EA8BpD4B,CAASJ,GACX,OAAOzB,EAET,GAAIwB,EAASC,GAAQ,CACnB,IAAIK,EAAgC,mBAAjBL,EAAMM,QAAwBN,EAAMM,UAAYN,EACnEA,EAAQD,EAASM,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATL,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMO,QAAQ9B,EAAQ,IAC9B,IAAI+B,EAAW7B,EAAW8B,KAAKT,GAC/B,OAAQQ,GAAY5B,EAAU6B,KAAKT,GAC/BnB,EAAamB,EAAMU,MAAM,GAAIF,EAAW,EAAI,GAC3C9B,EAAW+B,KAAKT,GAASzB,GAAOyB,EAGvC5B,EAAOJ,QAtPP,SAAkB2C,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARZ,EACT,MAAM,IAAIa,UAAUlD,GAUtB,SAASmD,EAAWC,GAClB,IAAIC,EAAOb,EACPc,EAAUb,EAKd,OAHAD,EAAWC,OAAWc,EACtBT,EAAiBM,EACjBT,EAASN,EAAKmB,MAAMF,EAASD,GAqB/B,SAASI,EAAaL,GACpB,IAAIM,EAAoBN,EAAOP,EAM/B,YAAyBU,IAAjBV,GAA+Ba,GAAqBpB,GACzDoB,EAAoB,GAAOV,GANJI,EAAON,GAM8BJ,EAGjE,SAASiB,IACP,IAAIP,EAAO7B,IACX,GAAIkC,EAAaL,GACf,OAAOQ,EAAaR,GAGtBR,EAAUiB,WAAWF,EAzBvB,SAAuBP,GACrB,IAEIT,EAASL,GAFWc,EAAOP,GAI/B,OAAOG,EAAS3B,EAAUsB,EAAQD,GAHRU,EAAON,IAGkCH,EAoBhCmB,CAAcV,IAGnD,SAASQ,EAAaR,GAKpB,OAJAR,OAAUW,EAINN,GAAYT,EACPW,EAAWC,IAEpBZ,EAAWC,OAAWc,EACfZ,GAeT,SAASoB,IACP,IAAIX,EAAO7B,IACPyC,EAAaP,EAAaL,GAM9B,GAJAZ,EAAWyB,UACXxB,EAAWyB,KACXrB,EAAeO,EAEXY,EAAY,CACd,QAAgBT,IAAZX,EACF,OAvEN,SAAqBQ,GAMnB,OAJAN,EAAiBM,EAEjBR,EAAUiB,WAAWF,EAAcrB,GAE5BS,EAAUI,EAAWC,GAAQT,EAiEzBwB,CAAYtB,GAErB,GAAIG,EAGF,OADAJ,EAAUiB,WAAWF,EAAcrB,GAC5Ba,EAAWN,GAMtB,YAHgBU,IAAZX,IACFA,EAAUiB,WAAWF,EAAcrB,IAE9BK,EAIT,OAxGAL,EAAOV,EAASU,IAAS,EACrBb,EAASc,KACXQ,IAAYR,EAAQQ,QAEpBL,GADAM,EAAS,YAAaT,GACHrB,EAAUU,EAASW,EAAQG,UAAY,EAAGJ,GAAQI,EACrEO,EAAW,aAAcV,IAAYA,EAAQU,SAAWA,GAiG1Dc,EAAUK,OAnCV,gBACkBb,IAAZX,GACFyB,aAAazB,GAEfE,EAAiB,EACjBN,EAAWK,EAAeJ,EAAWG,OAAUW,GA+BjDQ,EAAUO,MA5BV,WACE,YAAmBf,IAAZX,EAAwBD,EAASiB,EAAarC,MA4BhDwC,KAiINpE,KAAKuE,QAAQvE,KAAKuE,KAAuB,oBAAXnE,OAAyBA,OAAyB,oBAATa,KAAuBA,KAAyB,oBAAX2D,OAAyBA,gBAClIC,GAAG,SAASpF,EAAQU,EAAOJ,GAChC,IACO+E,GAAAA,EAAeC,SAASC,iBAAiB,YAE5B/E,QAGnB,SAAUgF,GACR,IAGIC,EAHAC,EAAW1F,EAAQ,mBACnB2F,EAAyB,GACzBC,EAAQ5F,EAAQ,WAYpB,SAAS6F,IACLJ,EAAeN,OAAOW,YAG1B,SAASC,IACLH,EAAMI,QAAQR,EAAYS,GAG9B,SAASA,EAASC,EAAMC,GACpB,IAAIC,EAAWF,EAAKG,wBAChBC,EAAsBF,EAASG,KAAOH,EAASI,OAC/CC,EAAkBL,EAASG,IAAMd,GAEjCgB,GAAmBH,IACnBd,EAAWW,GAAOO,UAAUC,IAAI,sBApBpCd,IACAE,IACAZ,OAAOyB,iBAAiB,SAAUf,GAClCV,OAAOyB,iBAAiB,SAAUlB,EAASK,EAAoBJ,IAd/DkB,CAAKxB,KAoCVyB,UAAU,EAAEC,kBAAkB,IAAIC,GAAG,SAAShH,EAAQU,EAAOJ,IAC/D,WACG,IAAI2G,EAAY3B,SAAS4B,cAAc,SAWvC,SAASC,EAAaC,GACY,IAAdA,EAAIC,QAGhBJ,EAAUK,YAAc,IAIhC,SAASC,IACLN,EAAUK,YAAc,uEAfxBC,IACAjC,SAASkC,qBAAqB,QAAQ,GAAGC,YAAYR,GACrD9B,OAAOyB,iBAAiB,YAAaW,GACrCpC,OAAOyB,iBAAiB,UAAWO,GAT3C,QAyBMO,GAAG,SAAS1H,EAAQU,EAAOJ,GACjCI,EAAOJ,QAAW,WAad,SAASqH,EAAgBC,EAAIC,GACzB,IAAIxH,EAAIyH,QAAQlG,UAIhB,OAHQvB,EAAE0H,SAAW1H,EAAE2H,uBAAyB3H,EAAE4H,oBAAsB5H,EAAE6H,mBAAqB,SAASC,GACpG,OAAgE,OAAtDC,QAAQ7H,KAAK+E,SAASC,iBAAiB4C,GAAIrD,QAEhDvE,KAAKqH,EAAIC,GAsDtB,OACIQ,QAxEJ,SAAiBC,EAAST,GACtB,KAAOS,GAAgC,IAArBA,EAAQC,UAAgB,CACtC,GAAIZ,EAAgBW,EAAST,GACzB,OAAOS,EAGXA,EAAUA,EAAQE,WAGtB,OAAO,MAgEPxC,QArDJ,SAAiByC,EAAQC,GACrB,IAAI7I,EAEJ,IAAKA,EAAI,EAAGA,EAAI4I,EAAOjI,OAAQX,IAC3B6I,EAASD,EAAO5I,GAAIA,IAkDxB8I,qBA9CJ,SAA8BzC,EAAM0C,GAChC,IACIC,EADAC,EAAgB5C,EAAKG,wBAAwBG,OAWjD,OARAN,EAAK6C,MAAMvC,OAAS,OACpBqC,EAAgB3C,EAAKG,wBAAwBG,OAC7CN,EAAK6C,MAAMvC,OAASsC,EAAgB,KAEhCF,GACA1C,EAAKG,wBAGFwC,EAAgB,MAmCvBG,oBAhCJ,WACI,OAAO1D,SAAS2D,eAAe,mBAAmB5C,wBAAwBG,QAgC1E0C,eA7BJ,SAAwB9B,GACpBA,EAAI8B,kBA6BJC,SA1BJ,SAAkBC,GAGdC,UAAUC,GAAGnE,OAFQ,KAGjBoE,KAAMC,OAAOC,QACbN,UACIO,EAAGN,MAqBXO,gBAhBJ,SAAyBzD,GAGrBmD,UAAUC,GAAGnE,OAFQ,KAGjBoE,KAAMC,OAAOC,QACbN,SAAUjD,MApEL,QAmFX0D,GAAG,SAAS5J,EAAQU,EAAOJ,GACjCI,EAAOJ,QAAW,SAAUuG,GACxB,IAAIxB,EAAeC,SAASC,iBAAiB,kCAE7C,GAAIF,EAAa7E,OACb,OAEN,SAAUqJ,GACR,IAAIC,EAAiB,gBACjBC,EAAqB,uBACrBC,EAAmB,wBACnBC,EAAe3E,SAASC,iBAAiB,0BACzC2E,EAAiB,YACjBC,EAAgB,aAChBvE,EAAQ5F,EAAQ,uBASpB,SAASoK,EAAwBC,GAC7BA,EAAQzD,iBAAiB,QAAS0D,GAItC,SAAyBD,GACrB,IAAIE,EAAS3E,EAAMyC,QAAQgC,EAAS,IAAMP,GACpBS,EAAO7D,UAAU8D,SAAST,IAG5CU,EAAcF,GARlBG,CAAgBL,GAYpB,SAASxE,IACLD,EAAMI,QAAQiE,EAEd,SAA6BU,GACZ/E,EAAMyC,QAAQsC,EAAa,IAAMb,GAEnCpD,UAAU8D,SAAST,KAC1BY,EAAY5B,MAAMvC,OAASZ,EAAM+C,qBAAqBgC,GAAa,MAmB/E,SAASF,EAAcG,GACnB,IAAIC,EAAcD,EAAUE,cAAc,gCACtCH,EAAcC,EAAUE,cAAc,IAAMd,GAEhDY,EAAUlE,UAAUC,IAAIoD,GACxBY,EAAY5B,MAAMvC,OAASZ,EAAM+C,qBAAqBgC,GAAa,GACnEE,EAAYnE,UAAUC,IAAIwD,GAC1BU,EAAYnE,UAAUqE,OAAOb,GAGjC,SAASc,EAAeJ,GACpB,IAAIC,EAAcD,EAAUE,cAAc,gCAE1CF,EAAUlE,UAAUqE,OAAOhB,GAC3Ba,EAAUE,cAAc,IAAMd,GAAkBjB,MAAMvC,OAAS,EAC/DqE,EAAYnE,UAAUC,IAAIuD,GAC1BW,EAAYnE,UAAUqE,OAAOZ,GAGjC,SAASG,IACL,IAAIC,EAAS3E,EAAMyC,QAAQvD,KAAM,IAAMgF,GACnCmB,EAAkBV,EAAO7D,UAAU8D,SAAST,GAE5CkB,EACAD,EAAeT,GAEfE,EAAcF,GAItB,OA1EI3E,EAAMI,QAAQ6D,EAAgBO,GAC9BjF,OAAOyB,iBAAiB,SAAUf,IA0ElCqF,UA7CJ,SAAmBC,EAAoBC,GACnC,IAAIC,EAAaF,EAAmB5F,iBAAiB,IAAMuE,GAE3DlE,EAAMI,QAAQqF,EAEd,SAAkBT,GACVQ,EACAJ,EAAeJ,GAEfH,EAAcG,OArDf/D,CAAKxB,GAJH,KAiGdiG,sBAAsB,IAAIC,GAAG,SAASvL,EAAQU,EAAOJ,GACxDI,EAAOJ,QAAW,SAAUuG,GACxB,IAAIxB,EAAeC,SAAS2D,eAAe,mBAE3C,GAAI5D,EACA,OAEN,SAAUmG,GACR,IACIrC,EADQnJ,EAAQ,uBACCmJ,SACjBsC,EAAe,0BAiBnB,OAfAD,EAAc5E,iBAAiB,QAE/B,SAAgBQ,GACZA,EAAI8B,iBACJC,EAAS,MAYTuC,KATJ,WACIF,EAAc9E,UAAUqE,OAAOU,IAS/BE,KANJ,WACIH,EAAc9E,UAAUC,IAAI8E,KAnBrB5E,CAAKxB,GAJH,KAgCdiG,sBAAsB,IAAIM,GAAG,SAAS5L,EAAQU,EAAOJ,GACvD,IACO+E,GAAAA,EAAeC,SAASC,iBAAiB,iCAE5B/E,QAInB,SAAUqL,GACR,IAAIjG,EAAQ5F,EAAQ,uBAChB8L,EAAgBxG,SAAS2D,eAAe,uBACxC8C,EAAczG,SAAS2D,eAAe,0CACtC+C,EAAa1G,SAAS2D,eAAe,oCAWzC,SAASgD,EAAwBC,GAC7BA,EAAOtF,iBAAiB,QAAS,SAAUQ,IA4D/C,SAA2BA,EAAKlB,GAC5B,IAAIiG,EAAsB,uCACtBC,EAAoB9G,SAAS2D,eAAe/C,EAAKmG,KAAKrJ,MAAM,IAC5DsJ,EAAahH,SAASC,iBAAiB,mBACvCgH,EAAmB,0BAGnBC,EAAMrH,OAAOsH,SAASC,KACvBF,EAAIpE,QAAQ,MAAQ,IACnBoE,EAAMA,EAAIG,UAAU,EAAGH,EAAIpE,QAAQ,OAEvCoE,EAAMA,EAAM,IAAMJ,EAAkBQ,aAAa,MACjD,IAAIC,EAAW1H,OAAO2H,WACP3I,GAAZ0I,IACCA,GAAYL,IAAKA,IAErBpF,EAAI8B,iBAED/D,OAAO4H,UACN5H,OAAO6H,QAAQC,UAAUJ,EAAU,WAAYL,GAE/CrH,OAAO4H,WAAY,EAEvBnH,EAAMI,QAAQ6F,EASd,SAA6BK,GACzBA,EAAOxF,UAAUqE,OAAOoB,KAT5BvG,EAAMI,QAAQsG,EAYd,SAA0BY,GACtBA,EAAIxG,UAAUqE,OAAOwB,KAZzBH,EAAkB1F,UAAUC,IAAI4F,GAChC3G,EAAMI,QAAQ6F,EAAY,SAASqB,GAC5BA,EAAIN,aAAa,SAAW,IAAMR,EAAkBQ,aAAa,OAChEM,EAAIxG,UAAUC,IAAIwF,KAvFtBgB,CAAkB/F,EAAK8E,KAE3BA,EAAOtF,iBAAiB,QAASwG,GAGrC,SAASA,IACL,IACIC,EAAmB/H,SAAS2D,eAAe,uCAE3C9D,OAAOmI,WAHa,OAOpBxB,EAAcpF,UAAU6G,OAAO,8BAC/BF,EAAiBtE,MAAMvC,OAASZ,EAAM+C,qBAAqB0E,GAAkB,GAE7EA,EAAiBtE,MAAMvC,OAAS,GAGxC,SAASgH,IACL,IAAIhB,EAAMrH,OAAOsH,SAASC,KACtBe,EAASC,EAAE,oBAAoBC,KAAK,4BAExC,GAAGnB,EAAIpE,QAAQ,MAAQ,EAAE,CACrB,IAAIiE,EAAOG,EAAIxJ,MAAMwJ,EAAIpE,QAAQ,KAAO,GAErCwF,OAAOC,UAAUzM,SAASiL,MACzBoB,EAAO,GAAGK,QAEVrJ,WAAW,KACPiJ,EAAE,gBAAgBK,SACdC,UAAW1I,SAASC,iBAAiB,YAAY8G,EAAK,MAAM,GAAG4B,WAC9D,MACN,MAIPR,EAAOS,KAAK,WACR,GAAGR,EAAE5I,MAAM,GAAG8H,aAAa,SAAW,IAAMP,EAAK,CAC3C,IAAI8B,EAAKhJ,OAAOiJ,WAAY,2BACxBzE,EAAkBrE,SAAS2D,eAAe,aAC9C,GAAIkF,EAAGpG,SAAW4B,EAAgB,CAC9B,IAAIrB,EAAUqB,EAAgBtD,wBAAwBE,IACtDpB,OAAOgE,UAAW5C,IAAK+B,EAAS+F,SAAU,gBAEtC1E,GAAiBA,EAAgB2E,iBAE1CZ,EAAE5I,MAAM,GAAGgJ,gBAOfL,EAAOjN,OAAS,GACrBiN,EAAO,GAAGK,QA/Dd/B,EAAYnF,iBAAiB,QAASwG,GACtCpB,EAAWpF,iBAAiB,QAASwG,GACrCxH,EAAMI,QAAQ6F,EAAYI,GAC1BuB,IAyGJrI,OAAOoJ,WAAa,SAASC,GACzBrJ,OAAO4H,WAAY,EACnBS,KA1HA3G,CAAKxB,GAETF,OAAO4H,WAAY,IA4HpBzB,sBAAsB,IAAImD,GAAG,SAASzO,EAAQU,EAAOJ,GAQtD,IACIsF,EAPeN,SAASC,iBAAiB,8BAE5B/E,SAKboF,EAAQ5F,EAAQ,uBAKMsF,SAASC,iBAAiB,8BAA8B,GAC9DqB,iBAAiB,QAAS,WACxC,IAOUgB,EACV8G,EACJC,EACAX,EAVQY,EAAetJ,SAAS2D,eAAe,aACvC2F,GACFhJ,EAAMuD,UAKEvB,EALcgH,EAMxBF,EAAO9G,EAAGvB,wBACdsI,EAAaxJ,OAAO0J,aAAevJ,SAASwJ,gBAAgBH,WAC5DX,EAAY7I,OAAO4J,aAAezJ,SAASwJ,gBAAgBd,WAClDzH,IAAKmI,EAAKnI,IAAMyH,EAAWgB,KAAMN,EAAKM,KAAOL,IATZpI,IAAM,QAXlDpB,OAAO4H,WAAY,IAwBlBzB,sBAAsB,IAAI2D,GAAG,SAASjP,EAAQU,EAAOJ,GACvD,IACO+E,GAAAA,EAAeC,SAASC,iBAAiB,2BAK/C,SAAU2J,GACR,IAAIC,EAAmB,oBACnBC,EAAc,mCACdC,EAAmB,+GACnBzJ,EAAQ5F,EAAQ,uBAQpB,SAASsP,EAAuBC,GAC5BA,EAAW3I,iBAAiB,QAAS4I,GAGzC,SAASA,IACL,IAAIC,EAAO3K,KAAK8H,aAAa,mBACzB8C,EAAS5K,KAAK8H,aAAa,qBACnB,MAAR6C,GAAwB,IAARA,GAAwB,MAAVC,GAA4B,IAAVA,GACpDvK,OAAOwK,KAAKR,EAAmBC,EAAYvM,QAAQ,MAAO4M,GAAM5M,QAAQ,MAAO6M,GAAS,SAAUL,GAAkB,GAXpHzJ,EAAMI,QAAQkJ,EAAiBI,GAX/BzI,CAAKxB,KA0BViG,sBAAsB,IAAIsE,IAAI,SAAS5P,EAAQU,EAAOJ,IACzD,WACE,IAAI+E,EAAeqI,EAAE,kBACjBrI,IAIF,SAAWqI,GACTA,EAAEQ,MAAM,OAAQ,QAAS,SAAUrO,EAAGgQ,GACpC,IAAIjI,EAAK8F,EAAEoC,GAAGD,GACdnC,EAAEoC,GAAGD,GAAM,WAET,OADA/K,KAAKiL,QAAQF,GACNjI,EAAGxD,MAAMU,KAAMD,cAL5B,CAQGmL,QACC1K,SAASwF,cAAc,oBAC3B4C,EAAE,kBAAkBuC,GAAG,OAAQ,WAC3BvC,EAAE,QAAQwC,KACRC,SAAY,SACZ3J,OAAU,OACV4C,SAAY,YAGjBsE,EAAE,kBAAkBuC,GAAG,OAAQ,WAC5BvC,EAAE,QAAQwC,KACRC,SAAY,UACZ3J,OAAU,GACV4C,SAAY,OAGjB9D,SAASwF,cAAc,kBAAkBlE,iBAAiB,QAAS,SAAUnH,GACrEA,EAAE2Q,SAAWtL,MAA+C,SAAvC4I,EAAE,kBAAkBwC,IAAI,YAC7CxC,EAAE,kBAAkBhC,WAhCjC,QAuCM2E,IAAI,SAASrQ,EAAQU,EAAOJ,IAClC,SAAWuG,GACT,IAAIxB,EAAeqI,EAAE,YAKrB,SAAS7G,IACP6G,EAAE,YAAYuC,GAAG,QAAS,SAAUzB,GAC9BA,EAAM4B,SAAWtL,MACnB4I,EAAE,kBAAkBhC,SAIxBgC,EAAE,mBAAmBuC,GAAG,QAAS,WAC/BvC,EAAE,kBAAkB/B,OACf+B,EAAE,8BAA8BlN,SACnCkN,EAAE,YAAY4C,OACZC,aAAc,EACdC,eAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,QAAQ,EACRC,SAAU,SAEZlD,EAAE,QAAQ4C,OACRC,aAAc,EACdC,eAAgB,EAChBI,SAAU,WACVC,eAAe,EACfF,QAAQ,EACRG,MAAM,EACNJ,YAAY,EACZK,aACEC,WAAY,IACZC,UACEV,aAAc,KAIhBS,WAAY,KACZC,UACEV,aAAc,KAIhBS,WAAY,IACZC,UACEV,aAAc,KAIhBS,WAAY,IACZC,UACEV,aAAc,UAnDtBlL,GACFwB,EAAKxB,GAHT,QA+DM6L,IAAI,SAASlR,EAAQU,EAAOJ,IAClC,WACE,IAAI+E,EAAeqI,EAAE,UACjBrI,GAGJ,SAAe8L,GAUb,GATA,SAAWzD,GACTA,EAAEQ,MAAM,OAAQ,QAAS,SAAUrO,EAAGgQ,GACpC,IAAIjI,EAAK8F,EAAEoC,GAAGD,GACdnC,EAAEoC,GAAGD,GAAM,WAET,OADA/K,KAAKiL,QAAQF,GACNjI,EAAGxD,MAAMU,KAAMD,cAL5B,CAQGmL,QACC1K,SAASwF,cAAc,UAAW,CACpC4C,EAAE,UAAUuC,GAAG,OAAQ,WACrBvC,EAAE,QAAQwC,KACRC,SAAY,SACZ3J,OAAU,WAGdkH,EAAE,UAAUuC,GAAG,OAAQ,WACrBvC,EAAE,QAAQwC,KACRC,SAAY,UACZ3J,OAAU,OAGd,IAAI4K,EAAkB1D,EAAE,+BAA+B,GACnD2D,EAAoB3D,EAAE,wBAAwB,GAElD,GAAM0D,GAAmBC,EASpB,CACH,MAAMC,EAAgB,2BAChBC,EAAkB,6BAElBC,EAAaC,IAASnM,SAASoM,OAAOC,MAAM,KAC/ChE,KAAK+D,GAAUA,EAAOE,OAAOC,WAAWJ,EAAM,OAAS,IACvDG,OAEGE,EAAY,CAACL,EAAKnP,KACtB,MAAMyP,EAAI,IAAI3P,KACd2P,EAAEC,SAAQ,IAAI5P,MAAO6P,UAAY,GACjCF,EAAEG,SAAS,EAAG,EAAG,EAAG,GACpB,MAAMC,EAAWJ,EAAEK,cACnB9M,SAASoM,UAAYD,KAAOnP,cAAkB6P,aAGhD,SAASE,IACP3E,EAAE,yBAAyBwC,IAAI,UAAW,QAC1CxC,EAAE,sBAAsB/B,OACxB+B,EAAE,8FAA8FwC,IAAI,UAAW,KAC/GxC,EAAE,cAAcwC,KACdC,SAAU,SACV3J,OAAQ,SAEVkH,EAAE,mCAAmC4E,KAAK,WAAW,GACrD5E,EAAE,sBAAsB4E,KAAK,WAAY,YAG3C,SAASC,IACP7E,EAAE,yBAAyBhC,OAC3BgC,EAAE,sBAAsBhC,OACxBgC,EAAE,cAAcwC,KACdC,SAAU,OACV3J,OAAQ,SAIR4K,GACF9L,SAASwF,cAAc,+BAA+BlE,iBAAiB,QAAS,SAAUnH,GACpF+R,EAAUF,GACZnM,OAAOwK,KAAKjC,EAAE,sBAAsB8E,KAAK,mBAAoB,UAG7DH,MAIFhB,GACF/L,SAAS2D,eAAe,uBAAuBrC,iBAAiB,QAAS,SAAUnH,GACjFA,EAAEyJ,iBACEsI,EAAUD,GACZpM,OAAOwK,KAAKjC,EAAE,sBAAsB8E,KAAK,mBAAoB,UAG7DH,MAKN/M,SAASwF,cAAc,qBAAqBlE,iBAAiB,QAAS,SAAUnH,GAC9E8S,MAGFjN,SAASwF,cAAc,sBAAsBlE,iBAAiB,QAAS,SAAUnH,GAC/E8S,MAGFjN,SAASwF,cAAc,mCAAmClE,iBAAiB,SAAU,SAAUnH,GACzFqF,KAAK2N,QACP/E,EAAE,sBAAsBgF,WAAW,YAGnChF,EAAE,sBAAsB4E,KAAK,WAAY,cAI7ChN,SAASwF,cAAc,sBAAsBlE,iBAAiB,QAAS,SAAUnH,GAC3E2R,GACFjM,OAAOwK,KAAKjC,EAAEjO,EAAE2Q,QAAQoC,KAAK,mBAAoB,UACjDV,EAAUR,EAAe,IAElBD,IACPlM,OAAOwK,KAAKjC,EAAEjO,EAAE2Q,QAAQoC,KAAK,mBAAoB,UACjDV,EAAUP,EAAiB,IAE7BgB,WA5FFjN,SAASwF,cAAc,UAAUlE,iBAAiB,QAAS,SAAUnH,GAC/DA,EAAE2Q,SAAWtL,MAAuC,SAA/B4I,EAAE,UAAUwC,IAAI,YACvCxC,EAAE,UAAUhC,UAhCpB7E,GAHJ,QAoIM8L,IAAI,SAAS3S,EAAQU,EAAOJ,GAQhC,IAAUsS,EACNC,EACAC,EARAzN,GAAAA,EAAeC,SAASwF,cAAc,gCAMhC8H,EAHDvN,EAILwN,EAAgB,2BAChBC,EAAiB,uBAIrB,WACE,MAAMC,EAAyBrF,EAAEkF,GAAkBjF,KAAKkF,GAO1D,IAAsBG,EAChBC,EACAC,EACAC,EARAJ,EAAuBvS,QAAU,IAKjBwS,EAJLD,EAKXE,EAAgBvF,EAAEoF,GAClBI,EAAiBF,EAAWhQ,MAAM,GAClCmQ,GAAU,EAEdD,EAAeE,UAEfH,EAAchD,GAAG,QAAS,SAASJ,GACjCA,EAAG3G,iBACCiK,GACFD,EAAeE,UACfH,EAAcI,KAAK,iBAEnBH,EAAeI,YACfL,EAAcI,KAAK,gBAErBF,GAAWA,KA1BftM,IALA1B,OAAO4H,WAAY,OAsCfwG,IAAI,SAASvT,EAAQU,EAAOJ,GAE5BgF,SAASwF,cAAc,kBACzBxF,SAASwF,cAAc,gBAAgBlE,iBAAiB,QAAS,WAC5B,SAA/B8G,EAAE,UAAUwC,IAAI,YAClBxC,EAAE,UAAU/B,SAGhBrG,SAASwF,cAAc,oCAAoClE,iBAAiB,QAAS,WAChD,SAA/B8G,EAAE,UAAUwC,IAAI,YAClBxC,EAAE,UAAUhC,eAMd8H,IAAI,SAASxT,EAAQU,EAAOJ,GACjC,IACO+E,GAAAA,EAAeC,SAAS2D,eAAe,uBAK7C,SAAUwK,GACR,IAAIC,EAAkB1T,EAAQ,2BAC9B,GAAuB,MAAnB0T,EAEA,IAAIC,EAAmBD,EAAgBxI,UAG3C,IAAI0I,EAAgBtO,SAAS2D,eAAe,sCACxC4K,EAA2B,4CAC3BC,EAAaF,EAAc9I,cAAc,8BACzCiJ,EAAeH,EAAc9I,cAAc,+BAC3CkJ,EAAkB,+BAEtBJ,EAAchN,iBAAiB,QAE/B,WACI,IAAIqN,EAAyBL,EAAc9I,cAAc,+BAA+BpE,UACpFuN,EAAuBzJ,SAAS,cAChCyJ,EAAuBlJ,OAAO,aAC9BkJ,EAAuBtN,IAAI,gBAG3BsN,EAAuBlJ,OAAO,cAC9BkJ,EAAuBtN,IAAI,cAE/BiN,EAAc9I,cAAc,+BAA+BpE,UAAU6G,OAAO,2BAEpD,MAApBoG,GAEAA,EAAiBF,EAAcG,EAAclN,UAAU8D,SAASqJ,IAEpED,EAAclN,UAAU6G,OAAOsG,GAC3BC,GAAcC,IACdD,EAAWpN,UAAU6G,OAAOyG,GAC5BD,EAAarN,UAAU6G,OAAOyG,MApClCnN,CAAKxB,KAyCV6O,0BAA0B,IAAIC,IAAI,SAASnU,EAAQU,EAAOJ,IAC5D,WACG,aAGAN,EAAQ,uBACRA,EAAQ,qCAGRA,EAAQ,0BACRA,EAAQ,4BACRA,EAAQ,8BACRA,EAAQ,iCACRA,EAAQ,4BACRA,EAAQ,wBACRA,EAAQ,sBACRA,EAAQ,8BACRA,EAAQ,kCACRA,EAAQ,kCAGRA,EAAQ,gCAKRA,EAAQ,4BAzBZ,KA4BGoU,sBAAsB,EAAEC,oCAAoC,EAAEC,yBAAyB,EAAEC,2BAA2B,EAAEC,iCAAiC,EAAEC,gCAAgC,EAAEC,uBAAuB,GAAGC,6BAA6B,GAAGC,qBAAqB,GAAGC,iCAAiC,GAAGC,2BAA2B,GAAGC,6BAA6B,GAAGC,+BAA+B,GAAGC,2BAA2B,KAAKC,IAAI,SAASlV,EAAQU,EAAOJ,GAEzbgF,SAASwF,cAAc,4BAK5C,WACE,IAEIqK,EAFAC,EAAYpV,EAAQ,6BACpB0F,EAAW1F,EAAQ,mBAEnBqV,EAAS/P,SAASC,iBAAiB,uBACnCK,EAAQ5F,EAAQ,uBAChBmJ,EAAWvD,EAAMuD,SACjBmM,EAAmB1P,EAAMoD,sBAa7B,SAASuM,EAAkBnO,GACvB,IAEIoO,EADAC,EAAcrO,EAAIgJ,OAGlBqF,EAAY/O,UAAU8D,SAJR,oCAKdpD,EAAI8B,iBACJsM,EAAQlQ,SAAS2D,eAAewM,EAAYpJ,KAAKrJ,MAAM,IACvDmG,EAASqM,EAAMnP,wBAAwBE,IAAMwI,YAAcuG,IAInE,SAASI,IACL,IA8CyBC,EACrBC,EACAC,EAhDAC,EAAU/G,YACVgH,EAUJ,WACI,IACIlW,EADAkW,EAAoB,EAGxB,IAAKlW,EAAI,EAAGA,EAAIsV,EAAY3U,OAAQX,IAC5BiW,GAAWX,EAAYtV,GAAGmW,OAASb,EAAYtV,GAAG2G,OAAS,IAC3DuP,EAAoBlW,GAI5B,OAAOkW,EApBaE,GA6CCN,EA3CL,IAAMN,EAAOU,GAAmBG,GA4ChDN,EAAUtQ,SAASC,iBAAiB,mCACpCsQ,EAAoB,wCAExBjQ,EAAMI,QAAQ4P,EAEd,SAAgB1J,GACZA,EAAOxF,UAAUqE,OAAO8K,GAEpBF,IAAezJ,EAAOG,MACtBH,EAAOxF,UAAUC,IAAIkP,KAnDzBE,EAAoB,EACpBX,EAAUzJ,OAEVyJ,EAAU1J,OAiBlB,SAAS7F,IACLsQ,IACAT,IAGJ,SAASS,IACL,IAAIL,EAAU/G,YAEdoG,KACAvP,EAAMI,QAAQqP,EAEd,SAAsBG,GAClB,IAAIY,EAAaZ,EAAMnP,wBACnBgQ,KAEJA,EAAOL,OAASI,EAAW7P,IAAMuP,EACjCO,EAAO7P,OAAS4P,EAAW5P,OAC3B2O,EAAYmB,KAAKD,KA5DrB/Q,SAASiR,KAAK3P,iBAAiB,QAAS2O,GACxCpQ,OAAOyB,iBAAiB,SAAUf,GAClCV,OAAOyB,iBAAiB,SAAUlB,EAASgQ,EAJd,KAHjCS,IAZItP,KAiGLyE,sBAAsB,EAAEkL,4BAA4B,EAAEzP,kBAAkB,IAAI0P,IAAI,SAASzW,EAAQU,EAAOJ,GAC1G,IACO+E,GAAAA,EAAeC,SAAS2D,eAAe,qBAK7C,SAAUyN,GACR,IAgBQC,EAhBJC,EAAStR,SAAS2D,eAAe,0BACjC4N,EAAoB,gCACpBC,EAA0B,wCAC1BC,GAAe,EAOfnR,GANmB,IAAIoR,iBAAiBC,GAKpB3R,SAAS2D,eAAe,4BACpCjJ,EAAQ,wBAkBpB,SAASkX,IACLN,EAAOlQ,UAAUqE,OAAO8L,GACxBE,GAAe,EACfH,EAAO7N,MAAMvC,OAAS,EAG1B,SAASyQ,IACLL,EAAO7N,MAAMvC,OAASZ,EAAM+C,qBAAqBiO,GAAQ,GAG7D,SAAS/Q,IACDkR,GACAE,IAIR,SAASE,EAAWC,EAAwBC,GACxCC,sBAIA,YAuDJ,SAAuBF,EAAwBC,GAC3C,IAAIE,EAAUjS,SAAS2D,eAAe,gBAElCuO,EAAalS,SAAS2D,eAAe,mBAErCwO,EAAanS,SAAS2D,eAAe,mBAGzCsO,EAAQ7Q,UAAUqE,OANO,uBAOzByM,EAAW9Q,UAAUqE,OALO,0BAM5B0M,EAAW/Q,UAAUqE,OAJO,0CAMxBqM,EACAI,EAAW9Q,UAAUC,IATG,0BAUjB0Q,EACPI,EAAW/Q,UAAUC,IATG,0CAWxB4Q,EAAQ7Q,UAAUC,IAfG,wBAvDrB+Q,CAAcN,EAAwBC,GACtCJ,IACAvJ,EAAE,8BAA8BiK,UAPpCf,EAAOlQ,UAAUC,IAAIkQ,GACrBE,GAAe,EAcnB,SAASa,IACL,IAe0BhQ,EACtBiQ,EAfAC,GAcsBlQ,EAff9C,KAgBP+S,EAAanB,EAAW5L,cAAc,IAAMgM,GAI3CC,EAzBT,SAA0BnP,GACtB,OAAOA,EAAGlB,UAAU8D,SAASsM,GA+BrBiB,CAAiBnQ,IACjBA,EAAGlB,UAAUqE,OAAO+L,IACb,IAKPe,EAAWnR,UAAUqE,OAAO+L,GAC5BlP,EAAGlB,UAAUC,IAAImQ,IACV,IAfXlP,EAAGlB,UAAUC,IAAImQ,IACV,IAnBPM,EAHOtS,KAGuB4B,UAAU8D,SAAS,kCACjD6M,EAJOvS,KAIqB4B,UAAU8D,SAAS,4BAE/CsN,GACAX,EAAWC,EAAwBC,GACnClS,OAAOyB,iBAAiB,YAAahB,EAAMsD,kBAE3CoO,sBAAsBJ,GACtB/R,OAAO6S,oBAAoB,YAAapS,EAAMsD,iBAzD9CyN,EAAuBD,EAAWnR,iBAAiB,mCACvDK,EAAMI,QAAQ2Q,EAAsB,SAAUlX,GAC1CA,EAAEmH,iBAAiB,QAASgR,KAEhCzS,OAAOyB,iBAAiB,SAAUf,GAClC6H,EAAE,8BAA8BiK,QAxBhC9Q,CAAKxB,KAiIViG,sBAAsB,SAAS","file":"main.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelectorAll('.fly-in');\r\n\r\n if (requiredElem.length) {\r\n init(requiredElem);\r\n }\r\n}(function (flyInElems) {\r\n var debounce = require('lodash.debounce');\r\n var slightlyMoreThanAFrame = 17;\r\n var utils = require('./utils');\r\n var windowHeight;\r\n\r\n init();\r\n\r\n function init() {\r\n handleWindowResize();\r\n handleWindowScroll();\r\n window.addEventListener('resize', handleWindowResize);\r\n window.addEventListener('scroll', debounce(handleWindowScroll, slightlyMoreThanAFrame));\r\n }\r\n\r\n function handleWindowResize() {\r\n windowHeight = window.innerHeight;\r\n }\r\n\r\n function handleWindowScroll() {\r\n utils.forEach(flyInElems, addClass);\r\n }\r\n\r\n function addClass(elem, index) {\r\n var elemRect = elem.getBoundingClientRect();\r\n var hasBeenScrolledPast = elemRect.top < -elemRect.height;\r\n var hasComeIntoView = elemRect.top < windowHeight;\r\n\r\n if (hasComeIntoView || hasBeenScrolledPast) {\r\n flyInElems[index].classList.add('fly-in--is-in-view');\r\n }\r\n }\r\n}));\r\n\n},{\"./utils\":4,\"lodash.debounce\":1}],3:[function(require,module,exports){\n(function () {\r\n var styleElem = document.createElement('style');\r\n\r\n init();\r\n\r\n function init() {\r\n disallowOutline();\r\n document.getElementsByTagName('HEAD')[0].appendChild(styleElem);\r\n window.addEventListener('mousedown', disallowOutline);\r\n window.addEventListener('keydown', allowOutline);\r\n }\r\n\r\n function allowOutline(evt) {\r\n var wasTabKey = evt.which === 9;\r\n\r\n if (wasTabKey) {\r\n styleElem.textContent = '';\r\n }\r\n }\r\n\r\n function disallowOutline() {\r\n styleElem.textContent = ':focus{outline:0 !important}::-moz-focus-inner{border:0 !important;}';\r\n }\r\n}());\r\n\n},{}],4:[function(require,module,exports){\nmodule.exports = (function () {\r\n function closest(element, selector) {\r\n while (element && element.nodeType === 1) {\r\n if (selectorMatches(element, selector)) {\r\n return element;\r\n }\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function selectorMatches(el, selector) {\r\n var p = Element.prototype;\r\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\r\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n };\r\n return f.call(el, selector);\r\n }\r\n\r\n function forEach(object, callback) {\r\n var i;\r\n\r\n for (i = 0; i < object.length; i++) {\r\n callback(object[i], i);\r\n }\r\n }\r\n\r\n function getElemNaturalHeight(elem, doRecalc) {\r\n var currentHeight = elem.getBoundingClientRect().height;\r\n var naturalHeight;\r\n\r\n elem.style.height = 'auto';\r\n naturalHeight = elem.getBoundingClientRect().height;\r\n elem.style.height = currentHeight + 'px';\r\n\r\n if (doRecalc) {\r\n elem.getBoundingClientRect();\r\n }\r\n\r\n return naturalHeight + 'px';\r\n }\r\n\r\n function getSiteHeaderHeight() {\r\n return document.getElementById('site-header--js').getBoundingClientRect().height;\r\n }\r\n\r\n function preventDefault(evt) {\r\n evt.preventDefault();\r\n }\r\n\r\n function scrollTo(position) {\r\n var scrollDuration = 0.65;\r\n\r\n TweenLite.to(window, scrollDuration, {\r\n ease: Power2.easeOut,\r\n scrollTo: {\r\n y: position\r\n }\r\n });\r\n }\r\n\r\n function scrollToElement(elem) {\r\n var scrollDuration = 0.65;\r\n\r\n TweenLite.to(window, scrollDuration, {\r\n ease: Power2.easeOut,\r\n scrollTo: elem\r\n })\r\n }\r\n\r\n return {\r\n closest: closest,\r\n forEach: forEach,\r\n getElemNaturalHeight: getElemNaturalHeight,\r\n getSiteHeaderHeight: getSiteHeaderHeight,\r\n preventDefault: preventDefault,\r\n scrollTo: scrollTo,\r\n scrollToElement: scrollToElement\r\n };\r\n}());\r\n\n},{}],5:[function(require,module,exports){\nmodule.exports = (function (init) {\r\n var requiredElem = document.querySelectorAll('.accordion__summary-button--js');\r\n\r\n if (requiredElem.length) {\r\n return init(requiredElem);\r\n }\r\n}(function (summaryButtons) {\r\n var accordionClass = 'accordion--js';\r\n var accordionOpenClass = 'accordion--is-opened';\r\n var detailsElemClass = 'accordion__detail--js';\r\n var detailsElems = document.querySelectorAll('.accordion__detail--js');\r\n var iconCloseClass = 'icon-plus';\r\n var iconOpenClass = 'icon-minus';\r\n var utils = require('../auxilliary/utils');\r\n\r\n init();\r\n\r\n function init() {\r\n utils.forEach(summaryButtons, addSummaryEventListener);\r\n window.addEventListener('resize', handleWindowResize);\r\n }\r\n\r\n function addSummaryEventListener(summary) {\r\n summary.addEventListener('click', handleSummaryClick);\r\n initOpenedState(summary);\r\n }\r\n\r\n function initOpenedState(summary) {\r\n var parent = utils.closest(summary, '.' + accordionClass);\r\n var isAccordionOpen = parent.classList.contains(accordionOpenClass);\r\n\r\n if (isAccordionOpen) {\r\n openAccordion(parent);\r\n }\r\n }\r\n\r\n function handleWindowResize() {\r\n utils.forEach(detailsElems, updateDetailsHeight);\r\n\r\n function updateDetailsHeight(detailsElem) {\r\n var parent = utils.closest(detailsElem, '.' + accordionClass);\r\n\r\n if (parent.classList.contains(accordionOpenClass)) {\r\n detailsElem.style.height = utils.getElemNaturalHeight(detailsElem, true);\r\n }\r\n }\r\n }\r\n\r\n function toggleAll(accordionContainer, toggleClosed) {\r\n var accordions = accordionContainer.querySelectorAll('.' + accordionClass);\r\n\r\n utils.forEach(accordions, doToggle);\r\n\r\n function doToggle(accordion) {\r\n if (toggleClosed) {\r\n closeAccordion(accordion);\r\n } else {\r\n openAccordion(accordion);\r\n }\r\n }\r\n }\r\n\r\n function openAccordion(accordion) {\r\n var summaryElem = accordion.querySelector('.accordion__summary-icon--js');\r\n var detailsElem = accordion.querySelector('.' + detailsElemClass);\r\n\r\n accordion.classList.add(accordionOpenClass);\r\n detailsElem.style.height = utils.getElemNaturalHeight(detailsElem, true);\r\n summaryElem.classList.add(iconOpenClass);\r\n summaryElem.classList.remove(iconCloseClass);\r\n }\r\n\r\n function closeAccordion(accordion) {\r\n var summaryElem = accordion.querySelector('.accordion__summary-icon--js');\r\n\r\n accordion.classList.remove(accordionOpenClass);\r\n accordion.querySelector('.' + detailsElemClass).style.height = 0;\r\n summaryElem.classList.add(iconCloseClass);\r\n summaryElem.classList.remove(iconOpenClass);\r\n }\r\n\r\n function handleSummaryClick() {\r\n var parent = utils.closest(this, '.' + accordionClass);\r\n var isAccordionOpen = parent.classList.contains(accordionOpenClass);\r\n\r\n if (isAccordionOpen) {\r\n closeAccordion(parent);\r\n } else {\r\n openAccordion(parent);\r\n }\r\n }\r\n\r\n return {\r\n toggleAll: toggleAll\r\n };\r\n}));\r\n\n},{\"../auxilliary/utils\":4}],6:[function(require,module,exports){\nmodule.exports = (function (init) {\r\n var requiredElem = document.getElementById('back-to-top--js');\r\n\r\n if (requiredElem) {\r\n return init(requiredElem);\r\n }\r\n}(function (backToTopElem) {\r\n var utils = require('../auxilliary/utils');\r\n var scrollTo = utils.scrollTo;\r\n var visibleClass = 'back-to-top--is-visible';\r\n\r\n backToTopElem.addEventListener('click', scroll);\r\n\r\n function scroll(evt) {\r\n evt.preventDefault();\r\n scrollTo(0);\r\n }\r\n\r\n function hide() {\r\n backToTopElem.classList.remove(visibleClass);\r\n }\r\n\r\n function show() {\r\n backToTopElem.classList.add(visibleClass);\r\n }\r\n\r\n return {\r\n hide: hide,\r\n show: show\r\n };\r\n}));\r\n\n},{\"../auxilliary/utils\":4}],7:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelectorAll('.detail-tabs-nav__anchor--js');\r\n\r\n if (requiredElem.length) {\r\n init(requiredElem);\r\n }\r\n window.saveState = true;\r\n}(function (navAnchors) {\r\n var utils = require('../auxilliary/utils');\r\n var detailTabsNav = document.getElementById('detail-tabs-nav--js');\r\n var closeButton = document.getElementById('detail-tabs-nav__menu-close-button--js');\r\n var menuButton = document.getElementById('detail-tabs-nav__menu-button--js');\r\n\r\n init();\r\n\r\n function init() {\r\n closeButton.addEventListener('click', toggleMenu);\r\n menuButton.addEventListener('click', toggleMenu);\r\n utils.forEach(navAnchors, addTabNavEventListeners);\r\n checkHash(true);\r\n }\r\n\r\n function addTabNavEventListeners(anchor) {\r\n anchor.addEventListener('click', function (evt) {\r\n handleTabNavClick(evt, anchor)\r\n });\r\n anchor.addEventListener('click', toggleMenu);\r\n }\r\n\r\n function toggleMenu() {\r\n var desktopBreakpoint = 1023; // Keep this equal to $bp-desktop of _breakpoints.scss\r\n var navListContainer = document.getElementById('detail-tabs-nav__list-container--js');\r\n\r\n if (window.innerWidth > desktopBreakpoint) {\r\n return;\r\n }\r\n\r\n if (detailTabsNav.classList.toggle('detail-tabs-nav--is-active')) {\r\n navListContainer.style.height = utils.getElemNaturalHeight(navListContainer, true);\r\n } else {\r\n navListContainer.style.height = 0;\r\n }\r\n }\r\n function checkHash(){\r\n var url = window.location.href;\r\n var $links = $('.detail-tabs-nav').find('.detail-tabs-nav__anchor');\r\n\r\n if(url.indexOf('#') > -1){\r\n var hash = url.slice(url.indexOf('#') + 1);\r\n\r\n if(Number.isInteger(parseInt(hash))) {\r\n $links[0].click()\r\n //on pages that have buttons and also need to scroll to headers and have reader view grab the link by its href and select the second one to scroll to it on load\r\n setTimeout(() => {\r\n $('.detail-tabs').animate({\r\n scrollTop: document.querySelectorAll(\"a[href='#\"+hash+\"']\")[1].offsetTop\r\n }, 500);\r\n }, 500);\r\n \r\n }\r\n\r\n $links.each(function(){\r\n if($(this)[0].getAttribute('href') == '#' + hash){\r\n var mq = window.matchMedia( \"(max-width: 47.9375rem)\")\r\n var scrollToElement = document.getElementById('scroll-to')\r\n if( mq.matches && scrollToElement){\r\n var element = scrollToElement.getBoundingClientRect().top;\r\n window.scrollTo({ top: element, behavior: \"smooth\"})\r\n } else {\r\n if (scrollToElement) scrollToElement.scrollIntoView();\r\n } \r\n $(this)[0].click()\r\n // if (hashVals.length > 1){\r\n // //override browser anchor scroll\r\n // setTimeout(function() { window.scrollTo(0, 0);}, .5);\r\n // }\r\n }\r\n });\r\n }else if($links.length > 0){\r\n $links[0].click();\r\n }\r\n }\r\n\r\n function handleTabNavClick(evt, elem) {\r\n var anchorSelectedClass = 'detail-tabs-nav__anchor--is-selected';\r\n var selectedDetailTab = document.getElementById(elem.hash.slice(1));\r\n var detailTabs = document.querySelectorAll('.detail-tab--js');\r\n var tabSelectedClass = 'detail-tab--is-selected';\r\n // window.location.hash = selectedDetailTab.getAttribute('id')\r\n\r\n var url = window.location.href;\r\n if(url.indexOf('#') > -1){\r\n url = url.substring(0, url.indexOf('?'));\r\n }\r\n url = url + \"#\" + selectedDetailTab.getAttribute('id');\r\n var stateObj = window.state;\r\n if(stateObj == undefined){\r\n stateObj = {url: url};\r\n }\r\n evt.preventDefault();\r\n\r\n if(window.saveState)\r\n window.history.pushState(stateObj, \"tabtitle\", url);\r\n else\r\n window.saveState = true;\r\n\r\n utils.forEach(navAnchors, removeAnchorClasses); // 1\r\n utils.forEach(detailTabs, removeTabClasses); // 1\r\n selectedDetailTab.classList.add(tabSelectedClass); // 2\r\n utils.forEach(navAnchors, function(tab){\r\n if(tab.getAttribute('href') == '#' + selectedDetailTab.getAttribute('id')){\r\n tab.classList.add(anchorSelectedClass);\r\n }\r\n }); // 2\r\n\r\n function removeAnchorClasses(anchor) {\r\n anchor.classList.remove(anchorSelectedClass);\r\n }\r\n\r\n function removeTabClasses(tab) {\r\n tab.classList.remove(tabSelectedClass);\r\n }\r\n }\r\n\r\n window.onpopstate = function(event){\r\n window.saveState = false;\r\n checkHash();\r\n }\r\n}));\r\n\n},{\"../auxilliary/utils\":4}],8:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelectorAll('.giant-v__scroll-indicator');\r\n\r\n if (requiredElem.length) {\r\n init(requiredElem);\r\n }\r\n window.saveState = true;\r\n}(function (navAnchors) {\r\n var utils = require('../auxilliary/utils');\r\n\r\n init();\r\n\r\n function init() {\r\n var scrollIndicator = document.querySelectorAll('.giant-v__scroll-indicator')[0]\r\n scrollIndicator.addEventListener('click', function() {\r\n var scrollToElem = document.getElementById('scroll-to')\r\n if (scrollToElem) {\r\n utils.scrollTo(offset(scrollToElem).top - 100)\r\n }\r\n })\r\n }\r\n\r\n function offset(el) {\r\n var rect = el.getBoundingClientRect(),\r\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft }\r\n }\r\n}));\r\n\n},{\"../auxilliary/utils\":4}],9:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelectorAll('.email-disclaimer--js');\r\n\r\n if (requiredElem) {\r\n init(requiredElem);\r\n }\r\n}(function (emailDisclaimer) {\r\n var emailControlPath = '/EmailDisclaimer/';\r\n var emailParams = '?emailprefix={0}&emaildomain={1}';\r\n var emailFrameParams = 'height=540,width=640,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no,status=no,left=100,top=100';\r\n var utils = require('../auxilliary/utils');\r\n\r\n init();\r\n\r\n function init() {\r\n utils.forEach(emailDisclaimer, processEmailDisclaimer);\r\n }\r\n\r\n function processEmailDisclaimer(disclaimer) {\r\n disclaimer.addEventListener('click', handleEmailLink);\r\n }\r\n\r\n function handleEmailLink() {\r\n var user = this.getAttribute('data-email-user');\r\n var domain = this.getAttribute('data-email-domain');\r\n if (user == null || user == '' || domain == null || domain == '') return;\r\n window.open(emailControlPath + emailParams.replace('{0}', user).replace('{1}', domain), '_blank', emailFrameParams, false);\r\n }\r\n}));\r\n\n},{\"../auxilliary/utils\":4}],10:[function(require,module,exports){\n(function () {\r\n var requiredElem = $('.gallery-modal')\r\n if (requiredElem) {\r\n init(requiredElem)\r\n }\r\n function init (requireElem) {\r\n (function ($) {\r\n $.each(['show', 'hide'], function (i, ev) {\r\n var el = $.fn[ev];\r\n $.fn[ev] = function () {\r\n this.trigger(ev);\r\n return el.apply(this, arguments);\r\n };\r\n });\r\n })(jQuery);\r\n if (document.querySelector('.gallery-modal')) {\r\n $('.gallery-modal').on('show', function () {\r\n $('html').css({\r\n 'overflow': 'hidden',\r\n 'height': '100%',\r\n 'position': 'fixed'\r\n })\r\n });\r\n $('.gallery-modal').on('hide', function () {\r\n $('html').css({\r\n 'overflow': 'visible',\r\n 'height': '',\r\n 'position': ''\r\n })\r\n });\r\n document.querySelector('.gallery-modal').addEventListener('click', function (e) {\r\n if (e.target === this && $('.gallery-modal').css('display') !== 'none') {\r\n $('.gallery-modal').hide()\r\n }\r\n })\r\n }\r\n }\r\n})()\r\n\n},{}],11:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = $('.gallery')\r\n if (requiredElem) {\r\n init(requiredElem)\r\n }\r\n\r\n function init() {\r\n $('.gallery').on('click', function (event) {\r\n if (event.target === this) {\r\n $('.gallery-modal').hide()\r\n }\r\n })\r\n\r\n $('.gallery-button').on('click', function () {\r\n $('.gallery-modal').show()\r\n if (!$('.gallery.slick-initialized').length) {\r\n $('.gallery').slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n centerMode: true,\r\n arrows: false,\r\n asNavFor: '.nav'\r\n })\r\n $('.nav').slick({\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n asNavFor: '.gallery',\r\n focusOnSelect: true,\r\n arrows: true,\r\n dots: false,\r\n centerMode: true,\r\n responsive: [{\r\n breakpoint: 2000,\r\n settings: {\r\n slidesToShow: 3\r\n }\r\n },\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 3\r\n }\r\n },\r\n {\r\n breakpoint: 800,\r\n settings: {\r\n slidesToShow: 2\r\n }\r\n },\r\n {\r\n breakpoint: 500,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n }\r\n ]\r\n })\r\n }\r\n })\r\n }\r\n})()\r\n\n},{}],12:[function(require,module,exports){\n(function () {\r\n var requiredElem = $('.modal')\r\n if (requiredElem) {\r\n init(requiredElem)\r\n }\r\n function init (requireElem) {\r\n (function ($) {\r\n $.each(['show', 'hide'], function (i, ev) {\r\n var el = $.fn[ev];\r\n $.fn[ev] = function () {\r\n this.trigger(ev);\r\n return el.apply(this, arguments);\r\n };\r\n });\r\n })(jQuery);\r\n if (document.querySelector('.modal')) {\r\n $('.modal').on('show', function() {\r\n $('html').css({\r\n 'overflow': 'hidden',\r\n 'height': '100%'\r\n })\r\n });\r\n $('.modal').on('hide', function() {\r\n $('html').css({\r\n 'overflow': 'visible',\r\n 'height': ''\r\n })\r\n });\r\n var isAssociatePage = $('.careers-open-positions-btn')[0]\r\n var isShareholderPage = $('#privacy-policy-link')[0]\r\n\r\n if (!(isAssociatePage || isShareholderPage)) {\r\n\r\n document.querySelector('.modal').addEventListener('click', function (e) {\r\n if (e.target === this && $('.modal').css('display') !== 'none') {\r\n $('.modal').hide()\r\n }\r\n })\r\n\r\n }\r\n else {\r\n const ASSOCIATE_KEY = 'privacy-policy-associate'\r\n const SHAREHOLDER_KEY = 'privacy-policy-shareholder'\r\n\r\n const getCookie = (key) => (document.cookie.split(';')\r\n .find(cookie => cookie.trim().startsWith(key + '=')) || '')\r\n .trim()\r\n\r\n const setCookie = (key, value) => {\r\n const d = new Date()\r\n d.setDate(new Date().getDate() + 1)\r\n d.setHours(0, 0, 0, 0)\r\n const midnight = d.toUTCString()\r\n document.cookie = `${key}=${value}; expires=${midnight}; path=/`\r\n }\r\n\r\n function openModal() {\r\n $('.modal.privacy-policy').css('display', 'flex')\r\n $('.modal__background').show();\r\n $('.standard-panel__decoration-container.standard-panel__decoration-container--careers-detail').css('z-index', '0')\r\n $('html, body').css({\r\n overflow: 'hidden',\r\n height: '100%'\r\n });\r\n $('.modal__privacy-policy-checkbox').prop('checked', false)\r\n $('.modal__submit-btn').prop('disabled', 'disabled')\r\n }\r\n\r\n function closeModal() {\r\n $('.modal.privacy-policy').hide()\r\n $('.modal__background').hide()\r\n $('html, body').css({\r\n overflow: 'auto',\r\n height: 'auto'\r\n });\r\n }\r\n\r\n if (isAssociatePage) {\r\n document.querySelector('.careers-open-positions-btn').addEventListener('click', function (e) {\r\n if (getCookie(ASSOCIATE_KEY)) {\r\n window.open($('.modal__submit-btn').data('vi-desktop-link'), '_blank')\r\n }\r\n else {\r\n openModal()\r\n }\r\n })\r\n }\r\n if (isShareholderPage) {\r\n document.getElementById('privacy-policy-link').addEventListener('click', function (e) {\r\n e.preventDefault()\r\n if (getCookie(SHAREHOLDER_KEY)) {\r\n window.open($('.modal__submit-btn').data('vi-desktop-link'), '_blank')\r\n }\r\n else {\r\n openModal()\r\n }\r\n })\r\n }\r\n\r\n document.querySelector('.modal__close-btn').addEventListener('click', function (e) {\r\n closeModal()\r\n })\r\n\r\n document.querySelector('.modal__background').addEventListener('click', function (e) {\r\n closeModal()\r\n })\r\n\r\n document.querySelector('.modal__privacy-policy-checkbox').addEventListener('change', function (e) {\r\n if (this.checked) {\r\n $('.modal__submit-btn').removeAttr('disabled')\r\n }\r\n else {\r\n $('.modal__submit-btn').prop('disabled', 'disabled')\r\n }\r\n });\r\n\r\n document.querySelector('.modal__submit-btn').addEventListener('click', function (e) {\r\n if (isAssociatePage) {\r\n window.open($(e.target).data('vi-desktop-link'), '_blank')\r\n setCookie(ASSOCIATE_KEY, 1)\r\n }\r\n else if (isShareholderPage) {\r\n window.open($(e.target).data('vi-desktop-link'), '_blank')\r\n setCookie(SHAREHOLDER_KEY, 1)\r\n }\r\n closeModal()\r\n })\r\n }\r\n }\r\n }\r\n})()\r\n\n},{}],13:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelector('.js-professional-readmore');\r\n\r\n if (requiredElem) {\r\n init(requiredElem);\r\n }\r\n window.saveState = true;\r\n}(function (professionalGrid) {\r\n var gridItemClass = '.professional-grid__item'\r\n var showMoreButton = '.js-read-more-button'\r\n \r\n init()\r\n\r\n function init() {\r\n const $professionalGridItems = $(professionalGrid).find(gridItemClass)\r\n\r\n if ($professionalGridItems.length >= 6) {\r\n handleToggle($professionalGridItems)\r\n }\r\n }\r\n\r\n function handleToggle($gridItems) {\r\n var $toggleButton = $(showMoreButton)\r\n var $itemsToToggle = $gridItems.slice(6)\r\n var isShown = false\r\n \r\n $itemsToToggle.slideUp()\r\n\r\n $toggleButton.on('click', function(ev) {\r\n ev.preventDefault()\r\n if (isShown) {\r\n $itemsToToggle.slideUp()\r\n $toggleButton.text('View More +')\r\n } else {\r\n $itemsToToggle.slideDown()\r\n $toggleButton.text('View Less -')\r\n }\r\n isShown = !isShown\r\n \r\n })\r\n\r\n }\r\n}));\r\n\n},{}],14:[function(require,module,exports){\n(function () {\r\n if (document.querySelector('.reader-view')) {\r\n document.querySelector('.reader-view').addEventListener('click', function () {\r\n if ($('.modal').css('display') === 'none') {\r\n $('.modal').show()\r\n }\r\n })\r\n document.querySelector('.reader-modal__close__icon-close').addEventListener('click', function () {\r\n if ($('.modal').css('display') !== 'none') {\r\n $('.modal').hide()\r\n }\r\n })\r\n }\r\n})()\r\n\n},{}],15:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.getElementById('services-grid--js');\r\n\r\n if (requiredElem) {\r\n init(requiredElem);\r\n }\r\n}(function (servicesGrid) {\r\n var accordionModule = require('../components/accordion');\r\n if (accordionModule != null)\r\n {\r\n var toggleAccordions = accordionModule.toggleAll;\r\n }\r\n\r\n var viewAllButton = document.getElementById('services-grid__view-all-button--js');\r\n var viewAllButtonActiveClass = 'services-grid__view-all-button--is-active';\r\n var textActive = viewAllButton.querySelector('.services_button_span-open');\r\n var textInactive = viewAllButton.querySelector('.services_button_span-close');\r\n var textActiveClass = 'services_button_span--active';\r\n\r\n viewAllButton.addEventListener('click', handleViewAllClick);\r\n\r\n function handleViewAllClick() {\r\n var viewAllButtonClassList = viewAllButton.querySelector('.services_arrow_button_span').classList\r\n if (viewAllButtonClassList.contains('icon-plus')){\r\n viewAllButtonClassList.remove('icon-plus')\r\n viewAllButtonClassList.add('icon-minus')\r\n }\r\n else {\r\n viewAllButtonClassList.remove('icon-minus')\r\n viewAllButtonClassList.add('icon-plus')\r\n }\r\n viewAllButton.querySelector('.services_arrow_button_span').classList.toggle('arrow-button--is-active');\r\n\r\n if (toggleAccordions != null)\r\n {\r\n toggleAccordions(servicesGrid, viewAllButton.classList.contains(viewAllButtonActiveClass)); // 1\r\n }\r\n viewAllButton.classList.toggle(viewAllButtonActiveClass); // 2\r\n if (textActive && textInactive) {\r\n textActive.classList.toggle(textActiveClass);\r\n textInactive.classList.toggle(textActiveClass);\r\n }\r\n }\r\n}));\r\n\n},{\"../components/accordion\":5}],16:[function(require,module,exports){\n(function () {\r\n 'use strict';\r\n\r\n // Auxilliary\r\n require('./auxilliary/fly-in');\r\n require('./auxilliary/toggle-focus-outline');\r\n\r\n // Components\r\n require('./components/accordion');\r\n require('./components/detail-tabs');\r\n require('./components/services-grid');\r\n require('./components/email-disclaimer');\r\n require('./components/reader-view');\r\n require('./components/gallery');\r\n require('./components/modal');\r\n require('./components/gallery-modal');\r\n require('./components/down-arrow-scroll')\r\n require('./components/professional-grid')\r\n\r\n // Modules\r\n require('./modules/standard-panel-nav');\r\n //require('./modules/services-landing-content');\r\n //require('./modules/vedder-thinking-nav');\r\n\r\n // Structures\r\n require('./structures/site-header');\r\n}());\r\n\n},{\"./auxilliary/fly-in\":2,\"./auxilliary/toggle-focus-outline\":3,\"./components/accordion\":5,\"./components/detail-tabs\":7,\"./components/down-arrow-scroll\":8,\"./components/email-disclaimer\":9,\"./components/gallery\":11,\"./components/gallery-modal\":10,\"./components/modal\":12,\"./components/professional-grid\":13,\"./components/reader-view\":14,\"./components/services-grid\":15,\"./modules/standard-panel-nav\":17,\"./structures/site-header\":18}],17:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.querySelector('.standard-panel-nav--js');\r\n\r\n if (requiredElem) {\r\n init();\r\n }\r\n}(function () {\r\n var backToTop = require('../components/back-to-top');\r\n var debounce = require('lodash.debounce');\r\n var panelCoords;\r\n var panels = document.querySelectorAll('.standard-panel--js');\r\n var utils = require('../auxilliary/utils');\r\n var scrollTo = utils.scrollTo;\r\n var siteHeaderHeight = utils.getSiteHeaderHeight();\r\n\r\n addEventListeners();\r\n setPanelCoords();\r\n\r\n function addEventListeners() {\r\n var slightlyMoreThanAFrame = 17;\r\n\r\n document.body.addEventListener('click', handleAnchorClick);\r\n window.addEventListener('resize', handleWindowResize);\r\n window.addEventListener('scroll', debounce(handleScroll, slightlyMoreThanAFrame));\r\n }\r\n\r\n function handleAnchorClick(evt) {\r\n var anchorClass = 'standard-panel-nav__anchor--js';\r\n var clickedElem = evt.target;\r\n var panel;\r\n\r\n if (clickedElem.classList.contains(anchorClass)) {\r\n evt.preventDefault();\r\n panel = document.getElementById(clickedElem.hash.slice(1));\r\n scrollTo(panel.getBoundingClientRect().top + pageYOffset - siteHeaderHeight);\r\n }\r\n }\r\n\r\n function handleScroll() {\r\n var scrollY = pageYOffset;\r\n var currentPanelIndex = getCurrentPanelIndex();\r\n\r\n updateActiveAnchors('#' + panels[currentPanelIndex].id);\r\n\r\n if (currentPanelIndex > 0) {\r\n backToTop.show();\r\n } else {\r\n backToTop.hide();\r\n }\r\n\r\n function getCurrentPanelIndex() {\r\n var currentPanelIndex = 0;\r\n var i;\r\n\r\n for (i = 0; i < panelCoords.length; i++) {\r\n if (scrollY >= panelCoords[i].docPos - panelCoords[i].height / 2) {\r\n currentPanelIndex = i;\r\n }\r\n }\r\n\r\n return currentPanelIndex;\r\n }\r\n }\r\n\r\n function handleWindowResize() {\r\n setPanelCoords();\r\n handleScroll();\r\n }\r\n\r\n function setPanelCoords() {\r\n var scrollY = pageYOffset;\r\n\r\n panelCoords = [];\r\n utils.forEach(panels, pushPosition);\r\n\r\n function pushPosition(panel) {\r\n var clientRect = panel.getBoundingClientRect();\r\n var coords = {};\r\n\r\n coords.docPos = clientRect.top + scrollY;\r\n coords.height = clientRect.height;\r\n panelCoords.push(coords);\r\n }\r\n }\r\n\r\n function updateActiveAnchors(activeHash) {\r\n var anchors = document.querySelectorAll('.standard-panel-nav__anchor--js');\r\n var anchorActiveClass = 'standard-panel-nav__anchor--is-active';\r\n\r\n utils.forEach(anchors, update);\r\n\r\n function update(anchor) {\r\n anchor.classList.remove(anchorActiveClass);\r\n\r\n if (activeHash === anchor.hash) {\r\n anchor.classList.add(anchorActiveClass);\r\n }\r\n }\r\n }\r\n}));\r\n\n},{\"../auxilliary/utils\":4,\"../components/back-to-top\":6,\"lodash.debounce\":1}],18:[function(require,module,exports){\n(function (init) {\r\n var requiredElem = document.getElementById('site-header--js');\r\n\r\n if (requiredElem) {\r\n init(requiredElem);\r\n }\r\n}(function (siteHeader) {\r\n var drawer = document.getElementById('site-header-drawer--js');\r\n var drawerActiveClass = 'site-header-drawer--is-active';\r\n var drawerToggleActiveClass = 'site-header__drawer-toggle--is-active';\r\n var isDrawerOpen = false;\r\n var mutationObserver = new MutationObserver(setDrawerHeight);\r\n var mutationConfig = {\r\n childList: true,\r\n subtree: true\r\n };\r\n var siteSearchResults = document.getElementById('site-search__results--js');\r\n var utils = require('../auxilliary/utils');\r\n\r\n init();\r\n\r\n function init() {\r\n //mutationObserver.observe(siteSearchResults, mutationConfig);\r\n var drawerToggleNavLinks = siteHeader.querySelectorAll('.site-header__drawer-toggle--js');\r\n utils.forEach(drawerToggleNavLinks, function (e) {\r\n e.addEventListener('click', handleNavClick);\r\n });\r\n window.addEventListener('resize', handleWindowResize);\r\n $('.site-search__search-input').focus();\r\n }\r\n function toggleDrawerActiveClass() {\r\n \r\n drawer.classList.toggle(drawerActiveClass);\r\n }\r\n\r\n function closeDrawer() {\r\n drawer.classList.remove(drawerActiveClass);\r\n isDrawerOpen = false;\r\n drawer.style.height = 0;\r\n }\r\n\r\n function setDrawerHeight() {\r\n drawer.style.height = utils.getElemNaturalHeight(drawer, true);\r\n }\r\n\r\n function handleWindowResize() {\r\n if (isDrawerOpen) {\r\n setDrawerHeight();\r\n }\r\n }\r\n\r\n function openDrawer(wasSearchButtonClicked, wasShareToolsClicked) {\r\n requestAnimationFrame(doOpen);\r\n drawer.classList.add(drawerActiveClass);\r\n isDrawerOpen = true;\r\n\r\n function doOpen() {\r\n \r\n updateClasses(wasSearchButtonClicked, wasShareToolsClicked);\r\n setDrawerHeight();\r\n $('.site-search__search-input').focus();\r\n }\r\n }\r\n\r\n function isMenuLinkActive(el) {\r\n return el.classList.contains(drawerToggleActiveClass);\r\n }\r\n\r\n function handleNavClick() {\r\n var self = this;\r\n var shouldDrawerOpen = updateNavActiveState(self);\r\n\r\n var wasSearchButtonClicked = self.classList.contains('site-header__search-button--js');\r\n var wasShareToolsClicked = self.classList.contains('site-header__share-tools')\r\n\r\n if (shouldDrawerOpen) {\r\n openDrawer(wasSearchButtonClicked, wasShareToolsClicked);\r\n window.addEventListener('touchmove', utils.preventDefault);\r\n } else {\r\n requestAnimationFrame(closeDrawer);\r\n window.removeEventListener('touchmove', utils.preventDefault);\r\n }\r\n }\r\n\r\n function updateNavActiveState(el) {\r\n var activeLink = siteHeader.querySelector('.' + drawerToggleActiveClass);\r\n\r\n //drawer is closed toggle this element to active\r\n //return true to open drawer\r\n if (!isDrawerOpen) {\r\n el.classList.add(drawerToggleActiveClass);\r\n return true;\r\n }\r\n else { //drawer is open\r\n //if link is already active remove state\r\n //return false to close drawer\r\n if (isMenuLinkActive(el)) {\r\n el.classList.remove(drawerToggleActiveClass);\r\n return false;\r\n }\r\n else {\r\n //keep drawer open\r\n //remove active state from active link and set clicked link to active\r\n activeLink.classList.remove(drawerToggleActiveClass);\r\n el.classList.add(drawerToggleActiveClass);\r\n return true;\r\n }\r\n }\r\n\r\n }\r\n\r\n function updateClasses(wasSearchButtonClicked, wasShareToolsClicked) {\r\n var siteNav = document.getElementById('site-nav--js');\r\n var siteNavActiveClass = 'site-nav--is-active';\r\n var siteSearch = document.getElementById('site-search--js');\r\n var siteSearchActiveClass = 'site-search--is-active';\r\n var shareTools = document.getElementById('share-tools--js')\r\n var shareToolsActiveClass = 'site-header__mini-tool-list--is-active'\r\n\r\n siteNav.classList.remove(siteNavActiveClass);\r\n siteSearch.classList.remove(siteSearchActiveClass);\r\n shareTools.classList.remove(shareToolsActiveClass)\r\n\r\n if (wasSearchButtonClicked) {\r\n siteSearch.classList.add(siteSearchActiveClass);\r\n } else if (wasShareToolsClicked) {\r\n shareTools.classList.add(shareToolsActiveClass)\r\n } else {\r\n siteNav.classList.add(siteNavActiveClass);\r\n }\r\n }\r\n}));\r\n\n},{\"../auxilliary/utils\":4}]},{},[16]);\n"]}