{"version":3,"sources":["webpack:///2.2.js","webpack:///./components/input-validator.js?672a","webpack:///./components/input-validator-v2.js?e9be","webpack:///./components ^\\.\\/.*$","webpack:///./components/_share-base.js","webpack:///./components/article-filter.js","webpack:///./components/back-button.js","webpack:///./components/back-to-top.js","webpack:///./components/background-image-rotator.js","webpack:///./components/banner-image-rotator.js","webpack:///./components/click-behaviour.js","webpack:///./components/culture-pop-up.js","webpack:///./components/full-screen-html5-video.js","webpack:///./components/header-desktop.js","webpack:///./components/header-mobile.js","webpack:///./components/hover-behaviour.js","webpack:///./components/move-on-scroll.js","webpack:///./components/rotate-on-scroll.js","webpack:///./lib/utils-math.js","webpack:///./components/share-facebook.js","webpack:///./components/share-linkedin.js","webpack:///./components/share-pinterest.js","webpack:///./components/share-twitter.js","webpack:///./components/social-networks-popup.js","webpack:///./components/toggle-child-classes.js","webpack:///./components/vertical-slide.js","webpack:///./components/video-player.js"],"names":["webpackJsonp","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_get","_x","_x2","_x3","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","getter","get","call","parent","getPrototypeOf","_systemAbstract","_systemAbstract2","Component_InputValidator","_Abstract2","el","options","this","$","extend","console","log","EMAIL_REGULAR_EXPRESSION","bindEvents","_this","$el","find","blur","e","onInputBlurred","keyup","onInputKeyUp","submit_button_selector","click","onSubmitButtonClicked","$input","currentTarget","validateElement","forceCharacterLimits","$element","characterLimit","data","elementValue","val","closest","hasClass","inputType","attr","bValidInput","toLowerCase","test","matchSelector","$elementToMatch","removeClass","addClass","context","bAllValidated","each","preventDefault","stopImmediatePropagation","Component_InputValidatorv2","selectric","disableOnMobile","nativeOnMobile","onChange","on","onTextareBlurred","onTextareKeyUp","html","animate","scrollTop","offset","top","$signMeUp","prop","htmlLoader","after","css","window","location","hostname","setCookie","unbind","removeAttr","submit","grecaptcha","reset","onErrorScrollTop","ajax","type","url","getResponse","error","response","formValidation","success","dropdownValidated","textareaValidated","validateTextarea","recaptchaValidation","webpackContext","req","webpackContextResolve","map","Error","./_share-base","./_share-base.js","./article-filter","./article-filter.js","./back-button","./back-button.js","./back-to-top","./back-to-top.js","./background-image-rotator","./background-image-rotator.js","./banner-image-rotator","./banner-image-rotator.js","./click-behaviour","./click-behaviour.js","./culture-pop-up","./culture-pop-up.js","./full-screen-html5-video","./full-screen-html5-video.js","./header-desktop","./header-desktop.js","./header-mobile","./header-mobile.js","./hover-behaviour","./hover-behaviour.js","./input-validator","./input-validator-v2","./input-validator-v2.js","./input-validator.js","./move-on-scroll","./move-on-scroll.js","./rotate-on-scroll","./rotate-on-scroll.js","./share-facebook","./share-facebook.js","./share-linkedin","./share-linkedin.js","./share-pinterest","./share-pinterest.js","./share-twitter","./share-twitter.js","./site-wide-banner","./site-wide-banner.js","./social-networks-popup","./social-networks-popup.js","./toggle-child-classes","./toggle-child-classes.js","./vertical-slide","./vertical-slide.js","./video-player","./video-player.js","keys","resolve","id","Component_share_base","windowTarget","windowName","windowParams","triggerShare","latestOptions","event","readLatestElementOptions","openSharePopup","shareURL","open","encodeURIComponent","href","Component_ArticleFilter","filterAttrItem","filterAttrFilter","searchBoxDebounceTimer","dataFilterSearchTerm","INDEPENDENT_SEARCH_AND_FILTER","$filterItems","$filters","filterByArray","$clearFiltersBtn","initialiseFilterFromURLParamater","onFilterClicked","onClearFilterButtonClicked","onSearchInputKeyUp","onSearchInputKeyDown","onSearchBtnClicked","name","replace","regex","RegExp","results","exec","decodeURIComponent","filterValue","getParameterByName","text","_keyboardEvent","keyCode","onEnterPressed","stopPropagation","_mouseEvent","forceSearch","clearFilters","resetFilter","clearSearchBoxDebounceTimer","onKeyboardSearchDebounceExpired","_this2","setTimeout","updateItems","clearTimeout","index","$clickedTarget","bCurrentlySelected","filterStr","$buttonsIndexOfClickedItem","splice","getIndexOfItem","push","getAllFilters","arrayOfFilteredItems","bSearchTermTriggered","hideFilteredItem","array","str","indexOf","arrayOfFilterBy","$itemsThatMatch","filter","_this3","match","filterId","is","searchTermMatches","not","fadeOut","$noResultsFoundFromSearchElement","show","trigger","hide","fadeIn","Component_BackButton","initialise","initialiseListeners","onElementClick","history","backURL","back","BackToTop","target_selector","clickBehaviourElementClicked","Component_BackgroundImageRotator","duration","fadeTime","baseImagePath","sameTimeFadeInOut","images","$imageCtn1","document","createElement","$imageCtn2","append","imageSwapperTimer","imageIndex","loadAndSwapNextImage","clearTimer","incrementImageIndex","imageURL","getFullImageURLFromIndex","loadAndSwapImageFromURL","_index","image","imageSRC","_url","$elementWithCurrentShowingImage","$elementToFadeIn","next","$responsiveImageTargets","fromRotator","onComplete","removeData","resetTimer","Component_BannerImageRotator","imageItems","checkBackgroundImageInterval","setInterval","checkBackgroundImageLoaded","clearInterval","initialCount","Component_ClickBehaviour","desktop_only","$desktopBreakpointElement","desktopBreakpointSize","width","outerWidth","setMobileSubPageContent","closeMobileSubPageContent","onFocusOnElement","hideElementAndEmptyChildInput","hideElementShowElement","toggleClass","showElement","scroll_to_new_clicked_element_position","$target","focus","element_target","class_name","$elementTarget","closest_element","className","hide_target","show_target","$hidetarget","$showTarget","currentWindowScroll","empty","deepCopyClone","clone","oldWidowScrollPosition","Component_CulturePopUp","initModule","initListeners","onCancelPopup","getCookie","popupDelayTime","Component_FullScreenHtml5Video","Component_HeaderDesktop","mouseenter","onProductsHovered","onLearnHovered","onContactHovered","mouseleave","onProductMouseLeave","onLearnMouseLeave","onContactMouseLeave","onSearchIconClicked","onSearchFormSubmitted","onCountryDropdownClicked","onCountryDropdownListClicked","onProductsDesktopLeftNavigationClicked","userAgent","navigator","isTablet","matchMedia","matches","onProductsClicked","onLearnClicked","onContactClicked","loadWindowOnResize","searchInputPushDownOnSearchResultsPage","bodyClicked","_event","$productsNavElement","hideProductsItems","showProductsItems","$learnNavElement","hideLearnItems","showLearnItems","hideContactItems","showContactItems","_keyEvent","origin","protocol","port","searchTerm","navigationLocation","onSubNavSearchItemClosed","$topNavListSearch","onSubNavItemClosed","closeAllTopNavItems","showSubNavItem","_selector","$subNavItem","onSubNavItemOpened","_formSubmitEvent","$leftNavigationElement","resize","reload","Component_HeaderMobile","onMobileCloseSubNav","onMobileMenuToggled","onListItemAClicked","onSearchInputFocused","_bRemoveClassEnabled","$currentTarget","$currentTargetParent","$currentTargetUL","currentTargetIsExpanded","Component_HoverBehaviour","hover","onElementHovered","onAddClassToOtherElement","Component_MoveOnScroll","offset_animation_start_pixels","reverse_movement","offset_animation_by_element_top_offset","BEGIN_ON_SCREEN_PERCENTAGE","begin_scroll_percentage","END_ON_SCREEN_PERCENTAGE","end_scroll_percentage","$window","$parent","setPositionBasedOnScroll","percentageOfMovement","getPercentageOfMovement","oneScalePercentageOfMovement","left","requestAnimationFrame","topOfParent","windowHeight","height","scrollTopPosition","scrollTopPlusWindowHeight","pixelsOfElementOnScreen","percentageOnScreen","_libUtilsMath","_libUtilsMath2","Component_RotateOnScroll","defaultOptions","radius","rotation_times_per_screen_height","begin_rotation_around_point_degrees","initial_image_rotation_degrees","radius_percentage_of_parent_width","vw","numberOfWindowHeightScrolled","getNumberOfWindowHeightScrolled","rotation","numberOf360s","Math","floor","x","polarToCartesianX","y","polarToCartesianY","UtilsMath","_pointX","_pointY","_boundsX","_boundsY","_width","_height","_fX0","_fY0","_fX1","_fY1","fResultX","pow","fResultY","fResult","_point1","_point2","sqrt","_fPolarRadius","_fPolarAngle","_bInDegrees","arguments","degreesToRadians","fCartesianX","cos","fCartesianY","sin","_fCartesianX","_fCartesianY","polarAngle","atan","returnRadianValueToAdd","radianToDegrees","PI","iQuadrant","getQuadrant","_fRadian","fInDegrees","_fDegrees","fInRadians","randomNum","getRandomNumber","randomBool","min","max","random","_fXFrom","_fXTo","fDifference","_shareBase","_shareBase2","Component_share_facebook","_Component_share_base","Component_share_linkedin","Component_share_pinterest","pageDescription","textToShare","shareText","Component_share_twitter","Component_SocialNetworksPopup","onTriggerElementClicked","Component_ToggleChildClasses","toggle_class","immediateChildClicked","Component_VerticalSlide","scroll_per_pixel_multiplier","PERENTAGE_OF_ASSET_TO_BE_ON_SCREEN_TO_START","bIsElementOnScreen","isElementOnScreen","pixelsOfElementRequiredOnScreen","originalPositionPlusRequiredOnScreen","pixelsFromBottomOfScreen","Component_VideoPlayer"],"mappings":"AAAAA,cAAc,EAAE,IACT,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAED,SAASC,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EC9BD,GDgCjBmD,EAAmBlD,EAAuBiD,GC/B1BE,EAAwB,SAAAC,GAEhC,QAFQD,GAEPE,EAAIC,GDmCblD,EAAgBmD,KCrCAJ,GAGjBnB,EAAApB,OAAAoC,eAHiBG,EAAwBxC,WAAA,cAAA4C,MAAAT,KAAAS,KAGnCF,EAAIG,EAAEC,QAAO,KAChBH,GAAU,aACfI,QAAQC,IAAI,mBACVJ,KAAKK,yBAA2B,yJAEhCL,KAAKM,aDqJN,MA3HArD,GClCkB2C,EAAwBC,GD8C1C9B,EC9CkB6B,ID+ChBtB,IAAK,aACLd,MCrCM,WDsCJ,GAAI+C,GAAQP,ICpCjBA,MAAKQ,IAAIC,KAAK,SAASC,KAAK,SAACC,GDuCtB,MCvC4BJ,GAAKK,eAAeD,KACrDX,KAAKQ,IAAIC,KAAK,SAASI,MAAM,SAACF,GDyCzB,MCzC+BJ,GAAKO,aAAaH,KAGN,mBAAxCX,MAAKD,QAAQgB,wBAEtBf,KAAKQ,IAAIC,KAAKT,KAAKD,QAAQgB,wBAAwBC,MAAM,SAACL,GD0ClD,MC1CwDJ,GAAKU,sBAAsBN,QD+CzFrC,IAAK,iBACLd,MC1CU,SAACmD,GAEd,GAAIO,GAASjB,EAAEU,EAAEQ,cACjBnB,MAAKoB,gBAAgBF,MD4ClB5C,IAAK,iBACLd,MC1CW,SAACmD,GAEb,GAAIO,GAASjB,EAAEU,EAAEQ,cACjB,OAAOnB,MAAKqB,qBAAqBH,MD4ChC5C,IAAK,eACLd,MC1CQ,SAACmD,GAEZ,GAAIO,GAASjB,EAAEU,EAAEQ,cACfnB,MAAKoB,gBAAgBF,MD4CpB5C,IAAK,uBACLd,MC1CiB,SAAC8D,GAEnB,GAAIC,GAAiBD,EAASE,KAAK,kBACnC,KAAID,EAEF,OAAO,CAGT,IAAIE,GAAeH,EAASI,KAC5B,SAAGD,EAAarD,OAASmD,MD8CxBjD,IAAK,kBACLd,MCvCa,SAAC8D,GAGb,GAAIA,EAASK,QAAQ,sBAAsBC,SAAS,YAApD,CAKA,GAAIC,GAAYP,EAASQ,KAAK,QAC1BC,EAAcT,EAASI,KAM9B,IALkC,UAA5BG,EAAUG,gBAEXD,EAAc/B,KAAKK,yBAAyB4B,KAAKX,EAASI,QAG5DJ,EAASE,KAAK,SACjB,CACC,GAAIU,GAAgBZ,EAASE,KAAK,SAC9BW,EAAkBlC,EAAEiC,EACrBC,GAAgB/D,OAEfkD,EAASI,QAAUS,EAAgBT,QAErCK,GAAc,GAKf5B,QAAQC,IAAI,qEAOb,MAAG2B,IAEFT,EAASc,YAAY,iBACtBd,EAASK,QAAQ,sBAAsBS,YAAY,kBAC3C,IAIPd,EAASe,SAAS,iBACnBf,EAASK,QAAQ,sBAAsBU,SAAS,kBACxC,OD6BP/D,IAAK,wBACLd,MC1BmB,SAACmD,GAErB,GAAI2B,GAAUtC,KACVuC,GAAgB,CACpBvC,MAAKQ,IAAIC,KAAK,mBAAmB+B,KAAK,WAErC,GAAItB,GAASjB,EAAED,KACXsC,GAAQlB,gBAAgBF,KAE3BqB,GAAgB,KAIfA,GAEFvC,KAAKQ,IAAIC,KAAK,kBAAkB2B,YAAY,SAC5CpC,KAAKQ,IAAIC,KAAK,oBAAoB4B,SAAS,WAI3CrC,KAAKQ,IAAIC,KAAK,kBAAkB4B,SAAS,SACzCrC,KAAKQ,IAAIC,KAAK,oBAAoB2B,YAAY,SAC9CzB,EAAE8B,iBACF9B,EAAE+B,gCApIc9C,GD8JjBD,EAAiB,WAEpBpD,GAAQ,WChKYqD,EDiKpBtD,EAAOC,QAAUA,EAAQ,YAGlB,CACA,CACA,CAEF,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EE3LD,GF6LjBmD,EAAmBlD,EAAuBiD,GE3L1BiD,EAA0B,SAAA9C,GAClC,QADQ8C,GACP7C,EAAIC,GFgMblD,EAAgBmD,KEjMA2C,GAEjBlE,EAAApB,OAAAoC,eAFiBkD,EAA0BvF,WAAA,cAAA4C,MAAAT,KAAAS,KAErCF,EAAIG,EAAEC,QAAO,KAAUH,GAAU,aACvCC,KAAKK,yBAA2B,yJAChCL,KAAKM,aACLL,EAAE,iCACC2C,WACCC,iBAAiB,EACjBC,gBAAgB,EAChBC,SAAU,WACR9C,EAAE,qCAAqCmC,YAAY,iBAGtDY,GAAG,wBAAyB,WACvB/C,EAAE,qCAAqC2B,SAAS,eAClD3B,EAAE,qCAAqCmC,YAAY,gBFib1D,MAlQAnF,GE9LkB0F,EAA0B9C,GFmN5C9B,EEnNkB4E,IFoNhBrE,IAAK,aACLd,MEjMO,WFkML,GAAI+C,GAAQP,IEjMfA,MAAKQ,IAAIC,KAAK,SAASC,KAAK,SAACC,GFoMxB,MEpM8BJ,GAAKK,eAAeD,KACvDX,KAAKQ,IAAIC,KAAK,SAASI,MAAM,SAACF,GFsMzB,MEtM+BJ,GAAKO,aAAaH,KACtDX,KAAKQ,IAAIC,KAAK,YAAYC,KAAK,SAACC,GFwM3B,MExMiCJ,GAAK0C,iBAAiBtC,KAC5DX,KAAKQ,IAAIC,KAAK,YAAYI,MAAM,SAACF,GF0M5B,ME1MkCJ,GAAK2C,eAAevC,KACR,mBAAxCX,MAAKD,QAAQgB,wBACtBf,KAAKQ,IACFC,KAAKT,KAAKD,QAAQgB,wBAClBC,MAAM,SAACL,GF0ML,ME1MWJ,GAAKU,sBAAsBN,QF+M5CrC,IAAK,iBACLd,ME5MW,SAACmD,GACb,GAAIO,GAASjB,EAAEU,EAAEQ,cACjBnB,MAAKoB,gBAAgBF,MF+MpB5C,IAAK,iBACLd,ME7MW,SAACmD,GACb,GAAIO,GAASjB,EAAEU,EAAEQ,cACjB,OAAOnB,MAAKqB,qBAAqBH,MFgNhC5C,IAAK,eACLd,ME9MS,SAACmD,GACX,GAAIO,GAASjB,EAAEU,EAAEQ,cACjBnB,MAAKoB,gBAAgBF,MFiNpB5C,IAAK,iBACLd,ME/MW,SAACmD,GACb,GAAIO,GAASjB,EAAEU,EAAEQ,cACjBnB,MAAKoB,gBAAgBF,MFkNpB5C,IAAK,mBACLd,MEhNa,SAACmD,GACf,GAAIO,GAASjB,EAAEU,EAAEQ,cACjBnB,MAAKoB,gBAAgBF,MFmNpB5C,IAAK,uBACLd,MEjNiB,SAAC8D,GACnB,GAAIC,GAAiBD,EAASE,KAAK,kBACnC,KAAKD,EACH,OAAO,CAGT,IAAIE,GAAeH,EAASI,KAC5B,SAAID,EAAarD,OAASmD,MFuNzBjD,IAAK,mBACLd,MElNa,SAAC8D,GACf,MAAIA,GAASI,OACXJ,EAASc,YAAY,iBACrBd,EAASK,QAAQ,sBAAsBS,YAAY,kBAC5C,IAEPd,EAASe,SAAS,iBAClBf,EAASK,QAAQ,sBAAsBU,SAAS,kBACzC,MFsNR/D,IAAK,kBACLd,MEnNY,SAAC8D,GACd,GAAKA,EAASK,QAAQ,sBAAsBC,SAAS,YAArD,CAIA,GAAIC,GAAYP,EAASQ,KAAK,QAC1BC,EAAcT,EAASI,KAK3B,IAJgC,UAA5BG,EAAUG,gBACZD,EAAc/B,KAAKK,yBAAyB4B,KAAKX,EAASI,QAGxDJ,EAASE,KAAK,SAAU,CAC1B,GAAIU,GAAgBZ,EAASE,KAAK,SAC9BW,EAAkBlC,EAAEiC,EACpBC,GAAgB/D,OACdkD,EAASI,QAAUS,EAAgBT,QACrCK,GAAc,GAGhB5B,QAAQC,IACN,qEAKN,MAAI2B,IACF9B,EAAE,WAAWkD,KAAK,gCAClB7B,EAASc,YAAY,iBACrBd,EAASK,QAAQ,sBAAsBS,YAAY,kBAC5C,IAEPnC,EAAE,WAAWkD,KAAK,0BAClB7B,EAASe,SAAS,iBAClBf,EAASK,QAAQ,sBAAsBU,SAAS,kBACzC,OFqNR/D,IAAK,mBACLd,MElNa,WACdyC,EAAE,aAAamD,SAEXC,UAAWpD,EAAE,eAAeqD,SAASC,IAAM,IAE7C,WFmNDjF,IAAK,iBACLd,MEhNW,SAAC+E,EAAe5B,GAC5B,GAAI2B,GAAUtC,IACd,IAAIuC,EAAe,CACjBD,EAAQ9B,IAAIC,KAAK,kBAAkB2B,YAAY,SAC/CE,EAAQ9B,IAAIC,KAAK,oBAAoB4B,SAAS,QAE9C,IAAImB,GAAYvD,EAAE,0BACduD,GAAUC,KAAK,WACjBxD,EAAE,uBAAuB6B,KAAK,QAAS,GAEvC7B,EAAE,uBAAuB6B,KAAK,QAAS,EAEzC,IAAI4B,GACF,8PAIF,IAHAzD,EAAE,kCAAkC0D,MAAMD,GAC1CzD,EAAE,kCAAkC2D,IAAI,aAAc,UAGvB,uCAA7BC,OAAOC,SAASC,UACa,cAA7BF,OAAOC,SAASC,SAEhB,MAEC9D,GAAEU,EAAEQ,eAAeS,SAAU,oBAC9BU,EAAQ0B,UAAU,oBAAqB,UAAW,KAEpD/D,EAAE,eAAe6B,KACf,SACA7B,EAAE,mBAAmBuB,KAAK,0BAE5BvB,EAAE,eAAegE,OAAO,UAAUC,WAAW,YAC7CjE,EAAE,eAAekE,aAEjB7B,GAAQ9B,IAAIC,KAAK,kBAAkB4B,SAAS,SAC5CC,EAAQ9B,IAAIC,KAAK,oBAAoB2B,YAAY,SACjDgC,WAAWC,QACX/B,EAAQgC,mBACR3D,EAAE8B,iBACF9B,EAAE+B,8BF6MHpE,IAAK,sBACLd,ME1MgB,SAAC8E,EAAQC,EAAc5B,GACxCV,EAAEsE,MACAC,KAAM,MACNC,IAAG,0DAA4DL,WAAWM,cAC1EC,MAAO,SAAUC,GACfrC,GAAgB,EAChBtC,EAAE,0BAA0BoC,SAAS,SACrCC,EAAQuC,eAAetC,EAAe5B,IAExCmE,QAAS,SAAUF,GACD,GAAZA,GACF3E,EAAE,0BAA0BoC,SAAS,SACrCC,EAAQuC,eAAetC,EAAe5B,KAEtC4B,GAAgB,EAChBtC,EAAE,0BAA0BmC,YAAY,SACxCE,EAAQuC,eAAetC,EAAe5B,UFgN3CrC,IAAK,wBACLd,ME3MkB,SAACmD,GACpB,GAAI2B,GAAUtC,KACVuC,GAAgB,EAChBwC,GAAoB,EACpBC,GAAoB,CAC+B,YAAlD/E,EAAE,mBAAmBuB,KAAK,sBACa,MAAtCvB,EAAE,2BAA2ByB,QAC/BzB,EAAE,qCAAqCoC,SAAS,cAChD0C,GAAoB,GAElB/E,KAAKQ,IAAIC,KAAK,sBAAsBrC,OAAS,IAC/C4G,EAAoBhF,KAAKiF,iBACvBjF,KAAKQ,IAAIC,KAAK,wBAGlBT,KAAKQ,IAAIC,KAAK,mBAAmB+B,KAAK,WACpC,GAAItB,GAASjB,EAAED,KACVsC,GAAQlB,gBAAgBF,KAC3BqB,GAAgB,KAGhBA,GAAiByC,GAAqBD,GACxC/E,KAAKQ,IAAIC,KAAK,kBAAkB2B,YAAY,SAC5CpC,KAAKQ,IAAIC,KAAK,oBAAoB4B,SAAS,WAE3CrC,KAAKQ,IAAIC,KAAK,kBAAkB4B,SAAS,SACzCrC,KAAKQ,IAAIC,KAAK,oBAAoB2B,YAAY,SAC9CpC,KAAKsE,mBACL3D,EAAE8B,iBACF9B,EAAE+B,4BAEJ/B,EAAE8B,iBACF9B,EAAE+B,2BACFJ,EAAQ4C,oBAAoB5C,EAAQC,EAAc5B,KAE/CV,EAAE,2BAA2B7B,QACY,MAAtC6B,EAAE,2BAA2ByB,QAC/BzB,EAAE,qCAAqCoC,SAAS,cAChDE,GAAgB,GAGpBvC,KAAKQ,IAAIC,KAAK,mBAAmB+B,KAAK,WACpC,GAAItB,GAASjB,EAAED,KACVsC,GAAQlB,gBAAgBF,KAC3BqB,GAAgB,KAGpB5B,EAAE8B,iBACF9B,EAAE+B,2BACFJ,EAAQ4C,oBAAoB5C,EAAQC,EAAc5B,QAlPnCgC,GFicjBhD,EAAiB,WAEpBpD,GAAQ,WEncYoG,EFocpBrG,EAAOC,QAAUA,EAAQ,YAGlB,CACA,CACA,CACA,CACA,CAEF,SAASD,EAAQC,EAASC,GG3ZhC,QAAA2I,GAAAC,GACA,MAAA5I,GAAA6I,EAAAD,IAEA,QAAAC,GAAAD,GACA,MAAAE,GAAAF,IAAA,WAAiC,SAAAG,OAAA,uBAAAH,EAAA,SAxDjC,GAAAE,IACAE,gBAAA,GACAC,mBAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,gBAAA,GACAC,mBAAA,GACAC,gBAAA,GACAC,mBAAA,GACAC,6BAAA,GACAC,gCAAA,GACAC,yBAAA,GACAC,4BAAA,GACAC,oBAAA,GACAC,uBAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,4BAAA,GACAC,+BAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,kBAAA,GACAC,qBAAA,GACAC,oBAAA,GACAC,uBAAA,GACAC,oBAAA,GACAC,uBAAA,GACAC,0BAAA,GACAC,uBAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,qBAAA,GACAC,wBAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,oBAAA,GACAC,uBAAA,GACAC,kBAAA,GACAC,qBAAA,GACAC,qBAAA,GACAC,wBAAA,GACAC,0BAAA,GACAC,6BAAA,GACAC,yBAAA,GACAC,4BAAA,GACAC,mBAAA,GACAC,sBAAA,GACAC,iBAAA,GACAC,oBAAA,GAQAtD,GAAAuD,KAAA,WACA,MAAArL,QAAAqL,KAAApD,IAEAH,EAAAwD,QAAAtD,EACA/I,EAAAC,QAAA4I,EACAA,EAAAyD,GAAA,IHsdM,SAAStM,EAAQC,EAASC,GAmB/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EIriBD,GJuiBjBmD,EAAmBlD,EAAuBiD,GIriB1BmJ,EAAoB,SAAAhJ,GAE5B,QAFQgJ,GAEP/I,EAAIC,GJyiBblD,EAAgBmD,KI3iBA6I,GAIjBpK,EAAApB,OAAAoC,eAJiBoJ,EAAoBzL,WAAA,cAAA4C,MAAAT,KAAAS,KAI/BF,EAAIG,EAAEC,QAAO,GAEjB4I,aAAe,GACfC,WAAa,GACbC,aAAe,IAEdjJ,GAAU,aAGbC,KAAKM,aJimBN,MAtEArD,GIxiBkB4L,EAAoBhJ,GJyjBtC9B,EIzjBkB8K,IJ0jBhBvK,IAAK,aACLd,MI1iBO,WJ2iBL,GAAI+C,GAAQP,IIxiBfA,MAAKQ,IAAIwC,GAAG,QAAS,SAACrC,GJ4iBjB,MI5iBuBJ,GAAK0I,aAAatI,QJkjB7CrC,IAAK,2BACLd,MI9iBqB,WAEtB,GAAI0L,GAAgBlJ,KAAKQ,IAAIgB,KAAK,oBAGlC,KAAI,GAAIlD,KAAO4K,GACf,CACE,GAAI1L,GAAQ0L,EAAc5K,EAE1B0B,MAAKD,QAAQzB,GAAOd,MJijBrBc,IAAK,eACLd,MI5iBS,SAAC2L,GAEXnJ,KAAKoJ,2BAELD,EAAM1G,iBAENzC,KAAKqJ,eAAerJ,KAAKD,QAAQuJ,SAAStJ,KAAKD,QAAQ+I,aAAa9I,KAAKD,QAAQgJ,WAAW/I,KAAKD,QAAQiJ,iBJijBxG1K,IAAK,iBACLd,MI7iBW,SAAC8L,EAASR,EAAaC,EAAWC,GAE9CnF,OAAO0F,KAAKT,EAAaU,mBAAmBF,GAAWP,EAAYC,MJkjBlE1K,IAAK,gBACLd,MI9iBU,SAAC8L,EAASR,GAErBjF,OAAOC,SAAS2F,KAAOX,EAAaU,mBAAmBF,OA5DtCT,GJ+mBjBlJ,EAAiB,WAEpBpD,GAAQ,WIjnBYsM,EJknBpBvM,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAM/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EK7pBD,GL+pBjBmD,EAAmBlD,EAAuBiD,GK9pB1BgK,EAAuB,SAAA7J,GAC/B,QADQ6J,GACP5J,EAAIC,GLmqBblD,EAAgBmD,KKpqBA0J,GAGjBjL,EAAApB,OAAAoC,eAHiBiK,EAAuBtM,WAAA,cAAA4C,MAAAT,KAAAS,KAGlCF,EAAIG,EAAEC,QAAO,GAEjByJ,eAAe,oBACfC,iBAAiB,kBAEjB7J,GAAU,aAGZC,KAAKQ,IAAI6B,SAAS,qBAElBrC,KAAK6J,uBAAyB,KAC9B7J,KAAK8J,qBAAuB,GAE5B9J,KAAK+J,+BAAgC,EAErC/J,KAAKgK,aAAehK,KAAKQ,IAAIC,KAAK,IAAMT,KAAKD,QAAQ4J,eAAiB,KACtE3J,KAAKiK,SAAWjK,KAAKQ,IAAIC,KAAK,IAAMT,KAAKD,QAAQ6J,iBAAmB,KACpE5J,KAAKkK,iBACLlK,KAAKmK,iBAAmBnK,KAAKQ,IAAIC,KAAK,qBACtCT,KAAKM,aAGLN,KAAKoK,mCLo+BN,MA5VAnN,GKjqBkByM,EAAuB7J,GL4rBzC9B,EK5rBkB2L,IL6rBhBpL,IAAK,aACLd,MKlqBO,WLmqBL,GAAI+C,GAAQP,IKhqBfA,MAAKiK,SAASjH,GAAG,QAAQ,SAACrC,GLoqBrB,MKpqB2BJ,GAAK8J,gBAAgB1J,KACrDX,KAAKmK,iBAAiBnH,GAAG,QAAQ,SAACrC,GLsqB7B,MKtqBkCJ,GAAK+J,2BAA2B3J,KACvEX,KAAKQ,IAAIC,KAAK,0BAA0BuC,GAAG,QAAQ,SAACrC,GLwqB/C,MKxqBqDJ,GAAKgK,mBAAmB5J,KAClFX,KAAKQ,IAAIC,KAAK,0BAA0BuC,GAAG,UAAU,SAACrC,GL0qBjD,MK1qBuDJ,GAAKiK,qBAAqB7J,KAEtFX,KAAKQ,IAAIC,KAAK,+BAA+BO,MAAM,SAACL,GL4qB/C,MK5qBqDJ,GAAKkK,mBAAmB9J,QLkrBjFrC,IAAK,qBACLd,MK7qBe,SAACkN,EAAMjG,GAElBA,IAEHA,EAAMZ,OAAOC,SAAS2F,MAGxBiB,EAAOA,EAAKC,QAAQ,UAAW,OAC/B,IAAIC,GAAQ,GAAIC,QAAO,OAASH,EAAO,qBACnCI,EAAUF,EAAMG,KAAKtG,EACzB,OAAKqG,GAKAA,EAAQ,GAKNE,mBAAmBF,EAAQ,GAAGH,QAAQ,MAAO,MAH3C,GALA,QLorBRrM,IAAK,mCACLd,MK1qB6B,WAE9B,GAAIyN,GAAcjL,KAAKkL,mBAAmB,SACtCD,IAKJhL,EAAE,+BAA+BuC,KAAK,WAEpC,GAAGvC,EAAED,MAAMmL,OAAOnJ,gBAAkBiJ,EAAYjJ,cAG9C,MADA/B,GAAED,MAAMgB,SACD,OL2qBV1C,IAAK,uBACLd,MKtqBiB,SAAC4N,GAEjB,OAAOA,EAAeC,SAEpB,IAAK,IAGH,MADAD,GAAe3I,kBACR,ML2qBZnE,IAAK,qBACLd,MKtqBe,SAAC4N,GAUf,OARAjL,QAAQC,IAAI,aAERJ,KAAK8J,qBAAuBsB,EAAenN,OAAOT,MACnDyC,EAAEmL,EAAenN,QAAQ0D,QAAQ,sBAAsBvD,QAEtD6B,EAAE,sDAAsDyB,IAAI1B,KAAK8J,sBAG9DsB,EAAeC,SAEpB,IAAK,IAEHrL,KAAKsL,eAAeF,GACpBA,EAAe3I,iBACf2I,EAAeG,sBL0qBpBjN,IAAK,uBACLd,MKrqBiB,SAAC4N,GAEjBjL,QAAQC,IAAI,kBLwqBb9B,IAAK,qBACLd,MKpqBe,SAACgO,GAEjBxL,KAAKyL,iBLsqBJnN,IAAK,iBACLd,MKpqBW,SAAC4N,GAEbpL,KAAKyL,cACFxL,EAAEmL,EAAenN,QAAQ0D,QAAQ,sBAAsBvD,QAExD6B,EAAE,0DAA0De,WLsqB7D1C,IAAK,cACLd,MKlqBQ,WAENwC,KAAK+J,gCAEJ/J,KAAK0L,eACL1L,KAAK2L,eAET3L,KAAK4L,8BACL5L,KAAK6L,qCLmqBJvN,IAAK,8BACLd,MK9pBwB,WL+pBtB,GAAIsO,GAAS9L,IK7pBhBA,MAAK4L,8BAEL5L,KAAK6J,uBAAyBhG,OAAOkI,WAAW,WLgqB3C,MKhqBiDD,GAAKD,mCAAkC,QLoqB5FvN,IAAK,kCACLd,MKlqB4B,WAE7BwC,KAAK6J,uBAAyB,KAG9B7J,KAAKgM,YAAYhM,KAAKkK,eAAc,MLoqBnC5L,IAAK,8BACLd,MKlqBwB,WAEnBwC,KAAK6J,yBAKThG,OAAOoI,aAAajM,KAAK6J,wBACzB7J,KAAK6J,uBAAyB,SLmqB/BvL,IAAK,oBACLd,MKhqBc,WAEf,MAAOwC,MAAKQ,IAAIC,KAAK,IAAMT,KAAKD,QAAQ4J,eAAiB,QLkqBxDrL,IAAK,gBACLd,MKhqBU,WAEX,MAAOyC,GAAE,sBAAsBQ,KAAK,IAAMT,KAAKD,QAAQ6J,iBAAmB,QLkqBzEtL,IAAK,8BACLd,MKhqBwB,SAACmD,GAExB,MAAOV,GAAEU,EAAE1C,QAAQ0D,QAAQ,sBAAsBvD,ULkqBlDE,IAAK,kBACLd,MKhqBY,SAACmD,GAEdA,EAAE8B,iBAGCzC,KAAK+J,gCAEN/J,KAAK4L,8BACL5L,KAAKQ,IAAIC,KAAK,0BAA0BiB,IAAI,IAC5C1B,KAAK8J,qBAAuB,GAG9B,IAAIoC,GAAQjM,EAAEU,EAAE1C,QAAQiO,QAIpBC,EAAiBlM,EAAEU,EAAE1C,QACrBmO,EAAqBD,EAAevK,SAAS,cAAgBuK,EAAevK,SAAS,WACrFyK,EAAYF,EAAerK,KAAK9B,KAAKD,QAAQ6J,iBAEjD3J,GAAE,sBAAsBuC,KAAK,WAEzB,GAAI8J,GAA6BrM,EAAED,MAAMS,KAAK,kBAAkByL,EAAM,GAAG,IAItEE,GAEDE,EAA2BlK,YAAY,aAAaA,YAAY,WAIhEkK,EAA2BjK,SAAS,aAAaA,SAAS,aAK7D+J,EAEDpM,KAAKkK,cAAcqC,OAAOvM,KAAKwM,eAAexM,KAAKkK,cAAcmC,GAAW,GAI5ErM,KAAKkK,cAAcuC,KAAKJ,GAI1BrM,KAAKgM,YAAYhM,KAAKkK,kBLwpBrB5L,IAAK,6BACLd,MKtpBuB,SAACmD,GAEzBA,EAAE8B,iBACFzC,KAAK0L,eACL1L,KAAK2L,cACL3L,KAAKgM,YAAYhM,KAAKkK,kBLwpBrB5L,IAAK,cACLd,MKtpBQ,WAGTwC,KAAKkK,iBACLjK,EAAE,qBAAqBoC,SAAS,aAAaA,SAAS,cLwpBrD/D,IAAK,eACLd,MKrpBS,WAEVwC,KAAK0M,gBAAgBtK,YAAY,aAAaA,YAAY,cLupBzD9D,IAAK,cACLd,MKrpBQ,SAACmP,EAAqBC,GAGI,mBAAzBA,KAERA,GAAuB,GAIzB5M,KAAK6M,iBAAiBF,EAAqBC,MLspB1CtO,IAAK,iBACLd,MKnpBW,SAACsP,EAAMC,GAInB,GAAIb,GAAQY,EAAME,QAAQD,EAC1B,OAAOb,MLqpBN5N,IAAK,mBACLd,MKjpBa,SAACyP,EAAiBL,GAEG,mBAAzBA,KAERA,GAAuB,EAGzB,IAAI9C,GAAuB9J,KAAK8J,oBAGhC,IAAGmD,EAAgB7O,QAAU0L,EAE3B,GAAIoD,GAAkBlN,KAAKgK,aAAamD,OAAO,SAASjB,GL+oBnD,GAAIkB,GAASpN,KK5oBZqN,GAAQ,CAeZ,IAZApN,EAAEuC,KAAKyK,EAAgB,SAACf,EAAMoB,GAGzBrN,EAACmN,GAAOG,GAAG,wBAA0BD,EAAW,QAEjDD,GAAQ,KAOTvD,EACH,CACE,GAAI0D,GAAoBvN,EAAE,kCAAkC6J,EAAqB,2CAA2CA,EAAqB,KAAK9J,MAAM5B,MAC5J,KAAIoP,EAEF,OAAO,CAIT,KAAIP,EAAgB7O,OAEhB,OAAO,EAOb,MAAOiP,SAMT,IAAIH,GAAkBlN,KAAKgK,YAIbhK,MAAKgK,aAAayD,IAAIP,EAEnCD,GAAgB7O,QAAU,IAAM0L,GAEjC9J,KAAK2L,cAIJsB,EAAgB7O,OAAS,GAExB6B,EAAE,qBAAqBmC,YAAY,aAAaA,YAAY,UAGhE,IAAIE,GAAUtC,IACdC,GAAE,wCAAwCyN,QAAQ,WAE9C,GAAIC,GAAmC1N,EAAE,gDACzCqC,GAAQ0H,aAAa3H,SAAS,SAC3B6K,EAAgB9O,QAEjBuP,EAAiCtL,SAAS,SAC1C6K,EAAgB9K,YAAY,SAC5BnC,EAAE,wCAAwC2N,OAC1C3N,EAAE,QAAQ4N,QAAQ,iBAClB5N,EAAE,wCAAwC6N,QAI1CH,EAAiCvL,YAAY,SAG/CnC,EAAE,wCAAwC8N,eA5X7BrE,GL8/BjB/J,EAAiB,WAEpBpD,GAAQ,WKhgCYmN,ELigCpBpN,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAM/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EM5hCD,GN8hCjBmD,EAAmBlD,EAAuBiD,GM7hC1BsO,EAAoB,SAAAnO,GAC5B,QADQmO,GACPlO,EAAIC,GNkiCblD,EAAgBmD,KMniCAgO,GAGjBvP,EAAApB,OAAAoC,eAHiBuO,EAAoB5Q,WAAA,cAAA4C,MAAAT,KAAAS,KAG/BF,EAAIG,EAAEC,QAAO,KAAQH,GAAU,aAErCC,KAAKiO,aNgkCN,MArCAhR,GMhiCkB+Q,EAAoBnO,GN0iCtC9B,EM1iCkBiQ,IN2iChB1P,IAAK,aACLd,MMpiCO,WAENwC,KAAKkO,yBNsiCN5P,IAAK,sBACLd,MMpiCgB,WNqiCd,GAAI+C,GAAQP,IMniCbA,MAAKQ,IAAIQ,MAAM,WNsiCZ,MMtiCkBT,GAAK4N,sBN0iC3B7P,IAAK,iBACLd,MMxiCW,WAEY,IAAnB4Q,QAAQhQ,QAAgD,mBAAzB4B,MAAKD,QAAQsO,QAG3CxK,OAAOC,SAAW9D,KAAKD,QAAQsO,QAKjCD,QAAQE,WA5BKN,GNskCjBrO,EAAiB,WAEpBpD,GAAQ,WMxkCYyR,ENykCpB1R,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EOpmCD,GPsmCjBmD,EAAmBlD,EAAuBiD,GOpmC1B6O,EAAS,SAAA1O,GAEjB,QAFQ0O,GAEPzO,EAAIC,GPwmCblD,EAAgBmD,KO1mCAuO,GAIjB9P,EAAApB,OAAAoC,eAJiB8O,EAASnR,WAAA,cAAA4C,MAAAT,KAAAS,KAIpBF,EAAIG,EAAEC,QAAO,GACjBsE,MAAK,EACLgK,iBAAgB,GACfzO,GAAU,aACbC,KAAKM,aP4nCN,MA7BArD,GOvmCkBsR,EAAS1O,GPmnC3B9B,EOnnCkBwQ,IPonChBjQ,IAAK,aACLd,MO1mCS,WP2mCP,GAAI+C,GAAQP,IOzmCbA,MAAKQ,IAAIQ,MAAM,SAACL,GP4mCb,MO5mCmBJ,GAAKkO,6BAA6B9N,QPgnCzDrC,IAAK,+BACLd,MO9mC2B,SAACmD,GAGzB,MADAV,GAAE,cAAcmD,SAAUC,UAAW,GAAK,SACnC,MAnBMkL,GPqoCjB5O,EAAiB,WAEpBpD,GAAQ,WOvoCYgS,EPwoCpBjS,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAM/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EQhqCD,GRkqCjBmD,EAAmBlD,EAAuBiD,GQjqC1BgP,EAAgC,SAAA7O,GACxC,QADQ6O,GACP5O,EAAIC,GAUd,MR4pCKlD,GAAgBmD,KQvqCJ0O,GAGjBjQ,EAAApB,OAAAoC,eAHiBiP,EAAgCtR,WAAA,cAAA4C,MAAAT,KAAAS,KAG3CF,EAAIG,EAAEC,QAAO,GAEfyO,SAAS,KACTC,SAAS,KACTC,cAAe,GACfC,mBAAkB,GACpB/O,GAAU,aAEsB,mBAAxBC,MAAKD,QAAQgP,QAA2B/O,KAAKD,QAAQgP,QAAW/O,KAAKD,QAAQgP,OAAO3Q,QAM9F4B,KAAKgP,WAAa/O,EAAEgP,SAASC,cAAc,QAC3ClP,KAAKmP,WAAalP,EAAEgP,SAASC,cAAc,QAE3ClP,KAAKQ,IAAI4O,OAAOpP,KAAKgP,YACrBhP,KAAKQ,IAAI4O,OAAOpP,KAAKmP,YAErBnP,KAAKqP,kBAAoB,KAEzBrP,KAAKsP,kBACLtP,MAAKiO,kBAbD9N,SAAQC,IAAI,8DR+wCf,MAxHAnD,GQpqCgByR,EAAgC7O,GRisChD9B,EQjsCgB2Q,IRksCZpQ,IAAK,aACLd,MQtqCG,WAGNwC,KAAKuP,0BRwqCFjR,IAAK,aACLd,MQrqCG,WAEFwC,KAAKqP,oBAKTxL,OAAOoI,aAAajM,KAAKqP,mBACzBrP,KAAKqP,kBAAoB,SRsqCtB/Q,IAAK,aACLd,MQpqCG,WRqqCC,GAAI+C,GAAQP,IQnqCrBA,MAAKwP,aACLxP,KAAKqP,kBAAoBxL,OAAOkI,WAAW,WRsqC9B,MQtqCoCxL,GAAKgP,wBAAuBvP,KAAKD,QAAQ4O,aR0qCrFrQ,IAAK,uBACLd,MQxqCa,WAEhB2C,QAAQC,IAAI,wBACZJ,KAAKyP,qBACL,IAAIC,GAAW1P,KAAK2P,yBAAyB3P,KAAKsP,WAClDtP,MAAK4P,wBAAwBF,MR0qC1BpR,IAAK,sBACLd,MQxqCY,aAEbwC,KAAKsP,WACJtP,KAAKsP,YAActP,KAAKD,QAAQgP,OAAO3Q,SAEtC4B,KAAKsP,WAAa,MR0qCnBhR,IAAK,2BACLd,MQvqCiB,SAACqS,GAErB,GAAIC,GAAQ9P,KAAKD,QAAQgP,OAAOc,GAC5BE,EAAW/P,KAAKD,QAAQ8O,cAAgBiB,CAC5C,OAAOC,MRyqCJzR,IAAK,0BACLd,MQrqCgB,SAACwS,GAEpB,GAAIC,GAAkC,KAClCC,EAAmB,IAEpBlQ,MAAKgP,WAAWzB,GAAG,aAElB0C,EAAkCjQ,KAAKgP,WACvCkB,EAAmBlQ,KAAKmP,aAIxBc,EAAkCjQ,KAAKmP,WACvCe,EAAmBlQ,KAAKgP,YAS5BkB,EAAiBC,OAAOxM,MAAMuM,EAG9B,IAAI5N,GAAUtC,IACdkQ,GAAiB1O,KAAK,mBAAmBwO,GACzC/P,EAAE,QAAQ4N,QAAQ,oBAAqBuC,wBAA0BF,EAAiBG,aAAc,EAAKC,WAAc,WAG5GhO,EAAQvC,QAAQ+O,mBAEfmB,EAAgCvC,UAGpCwC,EAAiBnC,OAAOzL,EAAQvC,QAAQ6O,SAAS,WAE7CqB,EAAgCM,WAAW,oBAC3CN,EAAgCrM,IAAI,mBAAmB,IACvDqM,EAAgCnC,OAChCxL,EAAQkO,sBAvHD9B,GR6xCjB/O,EAAiB,WAEpBpD,GAAQ,WQ/xCYmS,ERgyCpBpS,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAM/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,ES3zCD,GT6zCjBmD,EAAmBlD,EAAuBiD,GS5zC1B+Q,EAA4B,SAAA5Q,GACpC,QADQ4Q,GACP3Q,EAAIC,GAOd,MT0zCKlD,GAAgBmD,KSl0CJyQ,GAEjBhS,EAAApB,OAAAoC,eAFiBgR,EAA4BrT,WAAA,cAAA4C,MAAAT,KAAAS,KAEvCF,EAAIG,EAAEC,QAAO,GACfyO,SAAU,IACZ5O,GAAU,aAEZC,KAAK0Q,WAAa1Q,KAAKQ,IAAIC,KAAK,oBAChCT,KAAK2Q,6BAA+B,GACN,IAA3B3Q,KAAK0Q,WAAWtS,QAA2C,IAA3B4B,KAAK0Q,WAAWtS,WAC/C+B,SAAQC,IAAI,8DAGhBJ,MAAKiO,aTs2CJ,MAnDAhR,GS/zCgBwT,EAA4B5Q,GTi1C5C9B,ESj1CgB0S,ITk1CZnS,IAAK,aACLd,MSp0CK,WACN,GAAI+C,GAAQP,IACZA,MAAK2Q,6BAA+BC,YAAY,WAE5C,IAAI,GADAC,IAA6B,EACzB1S,EAAE,EAAGA,EAAEoC,EAAMmQ,WAAWtS,OAAOD,IAC/B8B,EAAEM,EAAMmQ,WAAWvS,IAAIyD,SAAS,aAChCiP,GAA6B,EAGlCA,IACCtQ,EAAMgP,wBAEX,QTu0CFjR,IAAK,uBACLd,MSr0Ce,WAChBsT,cAAc9Q,KAAK2Q,6BACnB,IAAIpQ,GAAQP,KACR+Q,EAAe,CACnBH,aAAY,WACR3Q,EAAEM,EAAMmQ,WAAWK,IAAe1O,SAAS,WAAWD,YAAY,eAChE2O,EACCA,GAAgBxQ,EAAMmQ,WAAWtS,SAChC2S,EAAe,GAEnB9Q,EAAEM,EAAMmQ,WAAWK,IAAe3O,YAAY,WAAWC,SAAS,cAClErC,KAAKD,QAAQ4O,cAzCJ8B,GTm3CjB9Q,EAAiB,WAEpBpD,GAAQ,WSr3CYkU,ETs3CpBnU,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EUj5CD,GVm5CjBmD,EAAmBlD,EAAuBiD,GUj5C1BsR,EAAwB,SAAAnR,GAEhC,QAFQmR,GAEPlR,EAAIC,GVq5CblD,EAAgBmD,KUv5CAgR,GAIjBvS,EAAApB,OAAAoC,eAJiBuR,EAAwB5T,WAAA,cAAA4C,MAAAT,KAAAS,KAInCF,EAAIG,EAAEC,QAAO,GACjBsE,MAAK,EACLgK,iBAAgB,GACfzO,GAAU,aACbC,KAAKM,aVooDN,MAxPArD,GUp5CkB+T,EAAwBnR,GVg6C1C9B,EUh6CkBiT,IVi6ChB1S,IAAK,aACLd,MUt5CS,WVu5CP,GAAI+C,GAAQP,IUn5CbA,MAAKQ,IAAIQ,MAAM,SAACL,GVs5Cb,MUt5CmBJ,GAAKkO,6BAA6B9N,QV05CzDrC,IAAK,+BACLd,MUv5C2B,SAACmD,GAI1B,GAAwC,mBAA9BX,MAAKD,QAAQkR,cAAgCjR,KAAKD,QAAQkR,aACrE,CACE,GAAIC,GAA4BjR,EAAE,cAClC,IAAGiR,EAA0B9S,OAC7B,CACE,GAAI+S,GAAwBD,EAA0BE,OACtD,IAAGnR,EAAE4D,QAAQwN,aAAeF,EAI1B,QAON,OAAOnR,KAAKD,QAAQyE,MAElB,IAAK,sBAEHxE,KAAKsR,wBAAwB3Q,EAC7B,MAEF,KAAK,wBAEHX,KAAKuR,0BAA0B5Q,EAC/B,MAEF,KAAK,QAEHX,KAAKwR,kBACL,MAGF,KAAK,qCAEHxR,KAAKyR,+BACL,MAGF,KAAK,4BAEHzR,KAAK0R,uBAAuB/Q,EAC5B,MAGF,KAAK,eAEHX,KAAK2R,YAAYhR,EACjB,MAGF,KAAK,eAEHX,KAAK4R,aACL,MAGF,SAGE,MADAzR,SAAQC,IAAI,iCAAmCJ,KAAKD,QAAQyE,OACrD,EAKuD,mBAAxDxE,MAAKD,QAAQ8R,wCAA0D7R,KAAKD,QAAQ8R,uCAM9F5R,EAAE,QAAQ4N,QAAQ,gCV+4CnBvP,IAAK,mBACLd,MU34Ce,WAEd,GAAIsU,GAAU7R,EAAED,KAAKD,QAAQyO,gBAC7B,OAAIsD,GAAQ1T,WAKZyF,QAAOkI,WAAW,WAChB+F,EAAQC,SACR,KALA5R,QAAQC,IAAI,2CAA2CJ,KAAKD,QAAQyO,gBAAgB,eAC7E,MVg5CVlQ,IAAK,cACLd,MU14CU,WAET,GAAIsU,GAAU7R,EAAED,KAAKD,QAAQyO,gBAC7B,OAAIsD,GAAQ1T,WAMZ0T,GAAQlE,QAJNzN,QAAQC,IAAI,2CAA2CJ,KAAKD,QAAQyO,gBAAgB,eAC7E,MV84CVlQ,IAAK,gCACLd,MUz4C4B,WAE3B,GAAIsU,GAAU7R,EAAED,KAAKD,QAAQyO,gBAC7B,OAAIsD,GAAQ1T,QAMZ6B,EAAE6R,GAAShE,WACX7N,GAAE,QAAQ6R,GAASpQ,IAAI,MALrBvB,QAAQC,IAAI,2CAA2CJ,KAAKD,QAAQyO,gBAAgB,eAC7E,MV84CVlQ,IAAK;AACLd,MUx4CU,SAACgO,GAIV,GAFAA,EAAY/I,iBAE8B,mBAAhCzC,MAAKD,QAAQiS,eAGrB,WADA7R,SAAQC,IAAI,gEAId,IAAsC,mBAA5BJ,MAAKD,QAAQkS,WAGrB,WADA9R,SAAQC,IAAI,4DAId,IAAI8R,GAAiB,IAUrB,IAPEA,EAFyC,mBAAjClS,MAAKD,QAAQoS,iBAAmCnS,KAAKD,QAAQoS,gBAEpDlS,EAAEuL,EAAYrK,eAAeQ,QAAQ3B,KAAKD,QAAQiS,gBAIlD/R,EAAED,KAAKD,QAAQiS,iBAG9BE,EAAe9T,OAGf,WADA+B,SAAQC,IAAI,sCAAuCJ,KAAKD,QAAQiS,eAAiB,aAIrF,IAAII,GAAYpS,KAAKD,QAAQkS,UAE1BC,GAAetQ,SAASwQ,GAEzBF,EAAe9P,YAAYgQ,GAI3BF,EAAe7P,SAAS+P,MVk4C3B9T,IAAK,yBACLd,MU/3CqB,SAACgO,GAIrB,GAFAA,EAAY/I,iBAE2B,mBAA7BzC,MAAKD,QAAQsS,aAAmE,mBAA7BrS,MAAKD,QAAQuS,YAGxE,WADAnS,SAAQC,IAAI,0FAId,IAAImS,GAActS,EAAED,KAAKD,QAAQsS,aAC7BG,EAAcvS,EAAED,KAAKD,QAAQuS,YAEjC,OAAIC,GAAYnU,OAMZoU,EAAYpU,QAMhBmU,EAAYlQ,SAAS,aACrBmQ,GAAYpQ,YAAY,cALpBjC,SAAQC,IAAI,sCAAuCJ,KAAKD,QAAQuS,YAAc,kBAN9EnS,SAAQC,IAAI,sCAAuCJ,KAAKD,QAAQsS,YAAc,iBVy4CnF/T,IAAK,0BACLd,MU33CsB,SAACgO,GAEpB,GAAI0F,GAA4BjR,EAAE,cAClC,IAAGiR,EAA0B9S,OAC7B,CACE,GAAI+S,GAAwBD,EAA0BE,OACtD,IAAGnR,EAAE4D,QAAQwN,cAAgBF,EAG3B,OASN,GAFA3F,EAAY/I,iBAE8B,mBAAhCzC,MAAKD,QAAQiS,eAGrB,WADA7R,SAAQC,IAAI,gEAId,IAAI8R,GAAiB,IAUrB,IAPEA,EAFyC,mBAAjClS,MAAKD,QAAQoS,iBAAmCnS,KAAKD,QAAQoS,gBAEpDlS,EAAEuL,EAAYrK,eAAeQ,QAAQ3B,KAAKD,QAAQiS,gBAIlD/R,EAAE,mBAAmBQ,KAAKT,KAAKD,QAAQiS,iBAGtDE,EAAe9T,OAGf,WADA+B,SAAQC,IAAI,sCAAuCJ,KAAKD,QAAQiS,eAAiB,aAMrF,IAAIS,GAAsBxS,EAAE4D,QAAQR,WACpCpD,GAAE4D,QAAQR,UAAU,GAEpBpD,EAAE,+BAA+ByS,QAEjCzS,EAAE,uCAAuC6B,KAAK,2BAA2B2Q,GACzExS,EAAE,QAAQoC,SAAS,0BAGnB,IAAIsQ,IAAgB,CAEpB1S,GAAE,+BAA+BkD,KAAK+O,EAAeU,MAAMD,EAAeA,OVg3C3ErU,IAAK,4BACLd,MU92CwB,SAACgO,GAExB,GAAI0F,GAA4BjR,EAAE,cAClC,IAAGiR,EAA0B9S,OAC7B,CACE,GAAI+S,GAAwBD,EAA0BE,OACtD,IAAGnR,EAAE4D,QAAQwN,cAAgBF,EAI3B,WAFA3F,GAAY/I,iBAKhB,GAAIoQ,GAAyB5S,EAAE,uCAAuC6B,KAAK,2BAC3E7B,GAAE,QAAQmC,YAAY,2BACtBnC,EAAE4D,QAAQR,UAAUwP,OA7RL7B,GV6oDjBrR,EAAiB,WAEpBpD,GAAQ,WU/oDYyU,EVgpDpB1U,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EWxqDD,GX0qDjBmD,EAAmBlD,EAAuBiD,GWxqD1BoT,EAAsB,SAAAjT,GAE9B,QAFQiT,GAEPhT,EAAIC,GX4qDblD,EAAgBmD,KW9qDA8S,GAGjBrU,EAAApB,OAAAoC,eAHiBqT,EAAsB1V,WAAA,cAAA4C,MAAAT,KAAAS,KAGjCF,EAAIG,EAAEC,QAAO,KAAUH,GAAU,UACvCC,KAAK+S,aXysDN,MAlCA9V,GW3qDkB6V,EAAsBjT,GXorDxC9B,EWprDkB+U,IXqrDhBxU,IAAK,aACLd,MW/qDO,WACRwC,KAAKgT,mBXkrDJ1U,IAAK,gBACLd,MWhrDU,WASX,QAASyV,KACPhT,EAAEM,EAAMT,IAAI4N,QAAQ,QACpBnN,EAAMyD,UAAU,UAAW,OAAQ,KAVrC,GAAIzD,GAAQP,IACsB,MAA/BO,EAAM2S,UAAU,YACjBnH,WAAW,WACT9L,EAAEM,EAAMT,IAAIsC,YAAY,oBACvB7B,EAAMR,QAAQoT,gBASnBlT,EAAE,+GAA+G+C,GAAG,QAASiQ,OAzB5GH,GX8sDjBnT,EAAiB,WAEpBpD,GAAQ,WWhtDYuW,EXitDpBxW,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EYzuDD,GZ2uDjBmD,EAAmBlD,EAAuBiD,GYzuD1B0T,EAA8B,SAAAvT,GAEtC,QAFQuT,GAEPtT,EAAIC,GZ6uDblD,EAAgBmD,KY/uDAoT,GAKjB3U,EAAApB,OAAAoC,eALiB2T,EAA8BhW,WAAA,cAAA4C,MAAAT,KAAAS,KAKzCF,EAAIG,EAAEC,QAAO,KAEhBH,GAAU,aAGbC,KAAKiO,aZivDN,MAfAhR,GY5uDkBmW,EAA8BvT,GZsvDhD9B,EYtvDkBqV,IZuvDhB9U,IAAK,aACLd,MY1uDO,gBAdS4V,GZ4vDjBzT,EAAiB,WAEpBpD,GAAQ,WY9vDY6W,EZ+vDpB9W,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EavxDD,GbyxDjBmD,EAAmBlD,EAAuBiD,GavxD1B2T,EAAuB,SAAAxT,GAE/B,QAFQwT,GAEPvT,EAAIC,Gb2xDblD,EAAgBmD,Ka7xDAqT,GAGjB5U,EAAApB,OAAAoC,eAHiB4T,EAAuBjW,WAAA,cAAA4C,MAAAT,KAAAS,KAGlCF,EAAIG,EAAEC,QAAO,KAChBH,GAAU,aACjBC,KAAKM,ab2rEF,MAtaArD,Ga1xDkBoW,EAAuBxT,GbmyDzC9B,EanyDkBsV,IboyDhB/U,IAAK,aACLd,Ma7xDO,Wb8xDL,GAAI+C,GAAQP,Ia1xDfA,MAAKQ,IAAIC,KAAK,yCAAyC6S,WAAW,SAAC3S,GbgyD9D,MahyDoEJ,GAAKgT,kBAAkB5S,KAChGX,KAAKQ,IAAIC,KAAK,sCAAsC6S,WAAW,SAAC3S,GbkyD3D,MalyDiEJ,GAAKiT,eAAe7S,KAC1FX,KAAKQ,IAAIC,KAAK,wCAAwC6S,WAAW,SAAC3S,GboyD7D,MapyDmEJ,GAAKkT,iBAAiB9S,KAQ9FX,KAAKQ,IAAIC,KAAK,qCAAqCiT,WAAW,SAAC/S,GbsyD1D,MatyDgEJ,GAAKoT,oBAAoBhT,KAC9FX,KAAKQ,IAAIC,KAAK,kCAAkCiT,WAAW,SAAC/S,GbwyDvD,MaxyD6DJ,GAAKqT,kBAAkBjT,KACzFX,KAAKQ,IAAIC,KAAK,oCAAoCiT,WAAW,SAAC/S,Gb0yDzD,Ma1yD+DJ,GAAKsT,oBAAoBlT,KAE7FX,KAAKQ,IAAIC,KAAK,mCAAmCO,MAAM,SAACL,Gb4yDnD,Ma5yDyDJ,GAAKuT,oBAAoBnT,KACvFX,KAAKQ,IAAIC,KAAK,wBAAwB0D,OAAO,SAACxD,Gb8yDzC,Ma9yD+CJ,GAAKwT,sBAAsBpT,KAE/EX,KAAKQ,IAAIC,KAAK,+BAA+BO,MAAM,SAACL,GbgzD/C,MahzDqDJ,GAAKyT,yBAAyBrT,KACxFX,KAAKQ,IAAIC,KAAK,8CAA8CO,MAAM,SAACL,GbkzD9D,MalzDoEJ,GAAK0T,6BAA6BtT,KAG3GX,KAAKQ,IAAIC,KAAK,uDAAuDO,MAAM,SAACL,GbmzDvE,ManzD6EJ,GAAK2T,uCAAuCvT,KAC9HX,KAAKQ,IAAIC,KAAK,+BAA+BO,MAAM,SAACL,GbqzD/C,MarzDqDJ,GAAK2T,uCAAuCvT,KAEtGV,EAAE,oCAAoCY,MAAM,SAACF,GbuzDxC,MavzD8CJ,GAAKgK,mBAAmB5J,IAE3E,IAAIwT,GAAYC,UAAUD,UAAUnS,cAC9BqS,EAAW,kHAAkHpS,KAAKkS,EACpIE,KACExQ,OAAOyQ,WAAW,6DAA6DC,SACjFvU,KAAKQ,IAAIC,KAAK,yCAAyCO,MAAM,SAACL,GbyzDzD,MazzD+DJ,GAAKiU,kBAAkB7T,KAC3FX,KAAKQ,IAAIC,KAAK,sCAAsCO,MAAM,SAACL,Gb2zDtD,Ma3zD4DJ,GAAKkU,eAAe9T,KACrFX,KAAKQ,IAAIC,KAAK,wCAAwCO,MAAM,SAACL,Gb6zDxD,Ma7zD8DJ,GAAKmU,iBAAiB/T,MAEzFX,KAAK2U,sBAIT3U,KAAK4U,yCACL3U,EAAE,QAAQe,MAAM,SAACL,Gb+zDZ,Ma/zDkBJ,GAAKsU,YAAYlU,Qbm0DvCrC,IAAK,cACLd,Maj0DQ,SAACsX,GACN7U,EAAE,4CAA4C2B,SAAS,aAE3D3B,EAAE,4CAA4CoC,SAAS,WACvDpC,EAAE,uCAAuCmC,YAAY,qBbo0DpD9D,IAAK,2BACLd,Maj0DqB,SAACsX,GACvBA,EAAOvJ,kBACJtL,EAAE,4CAA4C2B,SAAS,YAEtD3B,EAAE,uCAAuCoC,SAAS,iBACpDpC,EAAE,4CAA4CmC,YAAY,aAExDnC,EAAE,uCAAuCmC,YAAY,iBACrDnC,EAAE,4CAA4CoC,SAAS,ebo0D1D/D,IAAK,+BACLd,Mah0DyB,SAACsX,GAC3BA,EAAOvJ,kBACPtL,EAAE,4CAA4CoC,SAAS,WACvDpC,EAAE,uCAAuCmC,YAAY,oBbm0DpD9D,IAAK,oBACLd,Mah0Dc,SAACgO,GAChBA,EAAY/I,gBACZ,IAAIsS,GAAsB/U,KAAKQ,IAAIC,KAAK,oCACpCsU,GAAoBnT,SAAS,aAC/B5B,KAAKgV,oBAQLhV,KAAKiV,uBby0DN3W,IAAK,iBACLd,Mah0DW,SAACgO,GACbA,EAAY/I,gBACZ,IAAIyS,GAAmBlV,KAAKQ,IAAIC,KAAK,iCACjCyU,GAAiBtT,SAAS,aAC5B5B,KAAKmV,iBAQLnV,KAAKoV,oBby0DN9W,IAAK,mBACLd,Mah0Da,SAACgO,GACfA,EAAY/I,gBACZ,IAAIsS,GAAsB/U,KAAKQ,IAAIC,KAAK,mCACpCsU,GAAoBnT,SAAS,aAC/B5B,KAAKqV,mBAQLrV,KAAKsV,sBbm0DNhX,IAAK,qBACLd,Mah0De,SAAC+X,GACjB,OAAQA,EAAUlK,SAChB,IAAK,IAEIxH,OAAOC,SAAS0R,SACnB3R,OAAOC,SAAS0R,OAAS3R,OAAOC,SAAS2R,SAAW,KAAO5R,OAAOC,SAASC,UAAYF,OAAOC,SAAS4R,KAAO,IAAM7R,OAAOC,SAAS4R,KAAO,IAI7I,IAAIC,GAAanM,mBAAmB+L,EAAUtX,OAAOT,OACjDoY,EAAqB/R,OAAOC,SAAS0R,OAAS,sBAAwBG,EAAa,qBACvF9R,QAAOC,SAAS2F,KAAOmM,Mbu0D5BtX,IAAK,oBACLd,Mal0Dc,SAACgO,GAChBxL,KAAKiV,oBACLjV,KAAK6V,8Bbq0DJvX,IAAK,iBACLd,Man0DW,SAACgO,GACbxL,KAAKoV,iBACLpV,KAAK6V,8Bbs0DJvX,IAAK,mBACLd,Map0Da,SAACgO,GACfxL,KAAKsV,mBACLtV,KAAK6V,8Bbu0DJvX,IAAK,wBACLd,Mar0DkB,SAACgO,GACpBxL,KAAKgV,uBbw0DJ1W,IAAK,qBACLd,Mat0De,SAACgO,GACjBxL,KAAKmV,oBby0DJ7W,IAAK,uBACLd,Mav0DiB,SAACgO,GACnBxL,KAAKqV,sBb00DJ/W,IAAK,sBACLd,Max0DgB,SAACgO,GAClB,GAAIsK,GAAoB9V,KAAKQ,IAAIC,KAAK,kCAElCqV,GAAkBlU,SAAS,cAE7BkU,EAAkB1T,YAAY,aAC9BpC,KAAKQ,IAAIC,KAAK,mBAAmB4B,SAAS,SAC1CrC,KAAK+V,uBAKL/V,KAAKgW,sBACLF,EAAkBzT,SAAS,aAC3BrC,KAAKiW,eAAe,mBAGpBjW,KAAKQ,IAAIC,KAAK,0BAA0BsR,Yb00DzCzT,IAAK,sBACLd,Mar0DgB,SAACgO,IAGbxL,KAAKQ,IAAIC,KAAK,kCAAkCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,qCAAqCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,oCAAoCmB,SAAS,eAIvN5B,KAAKgV,uBbu0DJ1W,IAAK,oBACLd,Mar0Dc,SAACgO,IAGXxL,KAAKQ,IAAIC,KAAK,kCAAkCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,qCAAqCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,oCAAoCmB,SAAS,eAIvN5B,KAAKmV,oBbu0DJ7W,IAAK,sBACLd,Mar0DgB,SAACgO,IAGbxL,KAAKQ,IAAIC,KAAK,kCAAkCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,qCAAqCmB,SAAS,cAAiB5B,KAAKQ,IAAIC,KAAK,oCAAoCmB,SAAS,eAIvN5B,KAAKqV,sBbu0DJ/W,IAAK,iBACLd,Mar0DW,WACZwC,KAAKgW,sBACLhW,KAAKQ,IAAIC,KAAK,kCAAkC4B,SAAS,aACzDrC,KAAKiW,eAAe,2Cbw0DnB3X,IAAK,iBACLd,Mat0DW,WACZwC,KAAKQ,IAAIC,KAAK,kCAAkC2B,YAAY,aAC5DpC,KAAKQ,IAAIC,KAAK,wCAAwC4B,SAAS,SAC/DrC,KAAK+V,wBby0DJzX,IAAK,oBACLd,Mav0Dc,WACfwC,KAAKgW,sBACLhW,KAAKQ,IAAIC,KAAK,qCAAqC4B,SAAS,aAC5DrC,KAAKiW,eAAe,8Cb00DnB3X,IAAK,oBACLd,Max0Dc,WACfwC,KAAKQ,IAAIC,KAAK,qCAAqC2B,YAAY,aAC/DpC,KAAKQ,IAAIC,KAAK,2CAA2C4B,SAAS,SAClErC,KAAK+V,wBb20DJzX,IAAK,mBACLd,Maz0Da,WACdwC,KAAKgW,sBACLhW,KAAKQ,IAAIC,KAAK,oCAAoC4B,SAAS,aAC3DrC,KAAKiW,eAAe,6Cb40DnB3X,IAAK,mBACLd,Ma10Da,WACdwC,KAAKQ,IAAIC,KAAK,oCAAoC2B,YAAY,aAC9DpC,KAAKQ,IAAIC,KAAK,0CAA0C4B,SAAS,SACjErC,KAAK+V,wBb60DJzX,IAAK,sBACLd,Ma30DgB,WACjBwC,KAAKQ,IAAIC,KAAK,gCAAgC2B,YAAY,gBb80DzD9D,IAAK,iBACLd,Ma30DW,SAAC0Y,GACb,GAAIC,GAAclW,EAAEiW,EACpB,OAAKC,GAAY/X,QAKjB4B,KAAKoW,qBACLpW,KAAKQ,IAAIC,KAAK,sBAAsB4B,SAAS,aAC7C8T,GAAY/T,YAAY,cANtBjC,SAAQC,IAAI,+BAAiC8V,EAAY,gBbo1D1D5X,IAAK,qBACLd,Ma50De,WAChBwC,KAAKQ,IAAIC,KAAK,kBAAkB2B,YAAY,Yb+0D3C9D,IAAK,qBACLd,Ma70De,WAChBwC,KAAKQ,IAAIC,KAAK,kBAAkB4B,SAAS,SACzCrC,KAAKQ,IAAIC,KAAK,4BAA4B4B,SAAS,Ybi1DlD/D,IAAK,2BACLd,Ma90DqB,WACtBwC,KAAKQ,IAAIC,KAAK,mBAAmB4B,SAAS,Ybk1DzC/D,IAAK,uBACLd,Ma/0DiB,SAACgO,GACnBvL,EAAE4D,QAAQR,UAAU,GACpBrD,KAAKQ,IAAI6B,SAAS,4Bbk1DjB/D,IAAK,wBACLd,Mah1DkB,SAACgO,GACpBvL,EAAE4D,QAAQR,UAAU,GACpBrD,KAAKQ,IAAI4B,YAAY,4Bbm1DpB9D,IAAK,wBACLd,Mah1DkB,SAAC6Y,GACpBA,EAAiB5T,iBACjB4T,EAAiB9K,kBAEjBvL,KAAKQ,IAAIC,KAAK,4BAA4B2B,YAAY,Ybm1DrD9D,IAAK,yCACLd,Maj1DmC,SAACgO,GACrC,GAAI8K,GAAyBtW,KAAKQ,IAAIC,KAAK,kDAC3C,OAAK6V,GAAuBlY,YAKxBkY,EAAuB1U,SAAS,aAClC0U,EAAuBlU,YAAY,aAInCkU,EAAuBjU,SAAS,kBAThClC,SAAQC,IAAI,qCb81Db9B,IAAK,6BACLd,Mah1DuB,SAACgO,GACzBrL,QAAQC,IAAI,8BACRJ,KAAKQ,IAAIoB,SAAS,2BACpB5B,KAAKQ,IAAIC,KAAK,iCAAiC2B,YAAY,Ybo1D5D9D,IAAK,qBACLd,Maj1De,WAChByC,EAAE4D,QAAQ0S,OAAO,SAAUpN,GACzBhJ,QAAQC,IAAIH,EAAE,WACdD,KAAK8D,SAAS0S,cbq1DflY,IAAK,yCACLd,Mal1DmC,WACjCyC,EAAE,mBAAmB2B,SAAS,2BAC/B3B,EAAE,kDAAkDoC,SAAS,wBAE7DpC,EAAE,kDAAkDmC,YAAY,4BAzWjDiR,GbisEjB1T,EAAiB,WAEpBpD,GAAQ,WansEY8W,EbosEpB/W,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,Ec5tED,Gd8tEjBmD,EAAmBlD,EAAuBiD,Gc5tE1B+W,EAAsB,SAAA5W,GAE9B,QAFQ4W,GAEP3W,EAAIC,GdguEblD,EAAgBmD,KcluEAyW,GAGjBhY,EAAApB,OAAAoC,eAHiBgX,EAAsBrZ,WAAA,cAAA4C,MAAAT,KAAAS,KAGjCF,EAAIG,EAAEC,QAAO,KAChBH,GAAU,aACZC,KAAKM,adi1EP,MAvHArD,Gc/tEkBwZ,EAAsB5W,GdwuExC9B,EcxuEkB0Y,IdyuEhBnY,IAAK,aACLd,McluEM,WdmuEJ,GAAI+C,GAAQP,IcjuEfA,MAAKQ,IAAIC,KAAK,mCAAmCO,MAAM,SAACL,GdouEnD,McpuEyDJ,GAAKmW,oBAAoB/V,KACvFX,KAAKQ,IAAIC,KAAK,iCAAiCO,MAAM,SAACL,GdsuEjD,MctuEuDJ,GAAKoW,oBAAoBhW,KACrFX,KAAKQ,IAAIC,KAAK,oCAAoCO,MAAM,SAACL,GdwuEpD,McxuE0DJ,GAAKqW,mBAAmBjW,KACvFX,KAAKQ,IAAIC,KAAK,0CAA0CsR,MAAM,SAACpR,Gd0uE1D,Mc1uEgEJ,GAAKsW,qBAAqBlW,KAC/FX,KAAKQ,IAAIC,KAAK,wBAAwB0D,OAAO,SAACxD,Gd4uEzC,Mc5uE+CJ,GAAKwT,sBAAsBpT,KAG/EV,EAAE4D,QAAQ0S,OAAO,SAAUpN,GACtBlJ,EAAED,MAAMoR,QAAU,IACnBnR,EAAE,6CAA6CoC,SAAS,SAErDpC,EAAE,6CAA6C2B,SAAS,UAEzD3B,EAAE,6CAA6CmC,YAAY,cdivEhE9D,IAAK,sBACLd,Mc1uEgB,SAACgO,GAElBxL,KAAKQ,IAAIC,KAAK,0BAA0BiB,IAAI,IAC5C1B,KAAKQ,IAAI4B,YAAY,yBACrBpC,KAAKQ,IAAI4B,YAAY,uBACrBpC,KAAKQ,IAAI4B,YAAY,0BACrBpC,KAAKQ,IAAIC,KAAK,gCAAgC2B,YAAY,aAC1DoJ,EAAY/I,oBd4uEXnE,IAAK,sBACLd,MczuEgB,SAACgO,GAEGvL,EAAEuL,EAAYrK,cAEhCnB,MAAKQ,IAAIoB,SAAS,cAEnB5B,KAAKQ,IAAI4B,YAAY,aACrBpC,KAAKQ,IAAI4B,YAAY,0BAIrBpC,KAAKQ,IAAI6B,SAAS,aAGpBmJ,EAAY/I,oBdwuEXnE,IAAK,qBACLd,MctuEe,SAACgO,EAAYsL,GAEM,mBAAzBA,KAERA,GAAuB,EAGzB,IAAIC,GAAiB9W,EAAEuL,EAAYrK,eAC/B6V,EAAuBD,EAAevX,SACtCyX,EAAmBD,EAAqBvW,KAAK,OACjD,IAAIwW,EAAiB7Y,OAArB,CAIAoN,EAAY/I,gBACZ,IAAIyU,KAA0BJ,GAAuBE,EAAqBpV,SAAS,YACnF5B,MAAKQ,IAAIC,KAAK,gCAAgC2B,YAAY,aAEvD8U,EAEEJ,GAEDE,EAAqB5U,YAAY,aAKnC4U,EAAqB3U,SAAS,aAG7BrC,KAAKQ,IAAIC,KAAK,0CAA0CrC,OAEzD4B,KAAKQ,IAAI6B,SAAS,0BAIfyU,GAED9W,KAAKQ,IAAI4B,YAAY,8BdguExB9D,IAAK,qBACLd,McztEe,SAACgO,GAEfxL,KAAKQ,IAAIC,KAAK,gCAAgC2B,YAAY,aAC1DpC,KAAKQ,IAAI4B,YAAY,6Bd2tEtB9D,IAAK,uBACLd,McztEiB,SAACgO,GAEnBvL,EAAE4D,QAAQR,UAAU,GACpBrD,KAAKQ,IAAI6B,SAAS,4Bd2tEjB/D,IAAK,wBACLd,McxtEkB,SAAC6Y,GAEpBA,EAAiB5T,iBACjB4T,EAAiB9K,kBAEjBvL,KAAKQ,IAAI6B,SAAS,2BA3HDoU,Gdu1EjB9W,EAAiB,WAEpBpD,GAAQ,Wcz1EYka,Ed01EpBna,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,Eel3ED,Gfo3EjBmD,EAAmBlD,EAAuBiD,Gel3E1ByX,EAAwB,SAAAtX,GAEhC,QAFQsX,GAEPrX,EAAIC,Gfs3EblD,EAAgBmD,Kex3EAmX,GAIjB1Y,EAAApB,OAAAoC,eAJiB0X,EAAwB/Z,WAAA,cAAA4C,MAAAT,KAAAS,KAInCF,EAAIG,EAAEC,QAAO,GACjBsE,MAAK,EACLgK,iBAAgB,GACfzO,GAAU,aACbC,KAAKM,af65EN,MAhDArD,Ger3EkBka,EAAwBtX,Gfi4E1C9B,Eej4EkBoZ,Ifk4EhB7Y,IAAK,aACLd,Mev3ES,Wfw3EP,GAAI+C,GAAQP,Iet3EbA,MAAKQ,IAAI4W,MAAM,SAACzW,Gfy3Eb,Mez3EmBJ,GAAK8W,iBAAiB1W,Qf63E7CrC,IAAK,mBACLd,Me13Ee,SAACmD,GAEf,OAAOX,KAAKD,QAAQyE,MAElB,IAAK,QAEHxE,KAAKwR,kBACL,MAGF,KAAK,6BAEHxR,KAAKsX,0BACL,MAGF,SAEE,OAAO,Mf63EZhZ,IAAK,2BACLd,Mez3EuB,gBAzCP2Z,Gfs6EjBxX,EAAiB,WAEpBpD,GAAQ,Wex6EY4a,Efy6EpB7a,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EgBj8ED,GhBm8EjBmD,EAAmBlD,EAAuBiD,GgBj8E1B6X,EAAsB,SAAA1X,GAE9B,QAFQ0X,GAEPzX,EAAIC,GhBq8ETlD,EAAgBmD,KgBv8EJuX,GAGjB9Y,EAAApB,OAAAoC,eAHiB8X,EAAsBna,WAAA,cAAA4C,MAAAT,KAAAS,KAGjCF,EAAIG,EAAEC,QAAO,GAAOsX,8BAAgC,EAAEC,kBAAmB,EAAOC,wCAA0C,GAAQ3X,GAAU,aAElJC,KAAK2X,2BAA6E,mBAAzC3X,MAAKD,QAAQ6X,wBAA0C,EAAI5X,KAAKD,QAAQ6X,wBACjH5X,KAAK6X,yBAA0E,mBAAvC7X,MAAKD,QAAQ+X,sBAAwC,GAAK9X,KAAKD,QAAQ+X,sBAC/G9X,KAAK+X,QAAU9X,EAAE4D,QACjB7D,KAAKgY,QAAUhY,KAAKQ,IAAIhB,SACxBQ,KAAKiO,ahB+/EJ,MApEAhR,GgBp8EgBsa,EAAsB1X,GhBk9EtC9B,EgBl9EgBwZ,IhBm9EZjZ,IAAK,aACLd,MgBx8EG,WAENwC,KAAKiY,8BhB08EF3Z,IAAK,2BACLd,MgBv8EiB,WhBw8Eb,GAAI+C,GAAQP,KgBt8EfkY,EAAuBlY,KAAKmY,0BAC5BC,EAAgCF,EAAuB,GAExDlY,MAAKD,QAAQ0X,mBAEZW,EAA+B,EAAIA,EAGvC,IAAIC,GAAOrY,KAAKD,QAAQsY,KAAOD,EAC3B7U,EAAMvD,KAAKD,QAAQwD,IAAM6U,CAC7BpY,MAAKQ,IAAIoD,IAAI,YAAY,eAAeyU,EAAK,OAAO9U,EAAI,UAGxDM,OAAOyU,sBAAsB,WhBu8ElB,MgBv8EwB/X,GAAK0X,gChB28ErC3Z,IAAK,0BACLd,MgBz8EgB,WAEnB,GAAI+a,GAAcvY,KAAKgY,QAAQ1U,SAASC,IACpCiV,EAAexY,KAAK+X,QAAQU,SAC5BC,EAAoB1Y,KAAK+X,QAAQ1U,WAElCrD,MAAKD,QAAQyX,gCAEZkB,GAAqB1Y,KAAKD,QAAQyX,+BAGnCxX,KAAKD,QAAQ2X,yCAEZgB,GAAsB1Y,KAAK+X,QAAQU,SAAWF,EAGlD,IAAII,GAA4BD,EAAoBF,EAKhDI,EAA0BD,EAA4BJ,EACtDM,EAAqBD,EAA0BJ,CAUnD,OATGK,GAAqB,EAEpBA,EAAqB,EAEjBA,EAAqB,IAEzBA,EAAqB,GAGG,IAArBA,MApEQtB,GhBygFjB5X,EAAiB,WAEpBpD,GAAQ,WgB3gFYgb,EhB4gFpBjb,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EiBpiFD,GjBsiFjBmD,EAAmBlD,EAAuBiD,GAE1CoZ,EAAgBtc,EiBviFC,IjByiFjBuc,EAAiBtc,EAAuBqc,GiBviFxBE,EAAwB,SAAAnZ,GAEhC,QAFQmZ,GAEPlZ,EAAIC,GjB2iFTlD,EAAgBmD,KiB7iFJgZ,EAIf,IAAIC,IAKsBC,OAAS,KACTC,iCAAmC,EACnCC,oCAAsC,EACtCC,+BAAiC,EACjCC,mCAAoC,EAMhE,OAHA7a,GAAApB,OAAAoC,eAhBiBuZ,EAAwB5b,WAAA,cAAA4C,MAAAT,KAAAS,KAgBnCF,EAAIG,EAAEC,QAAO,EAAM+Y,EAAgBlZ,GAAU,aAGxB,OAAxBC,KAAKD,QAAQmZ,QAAoBlZ,KAAKD,QAAQuZ,mCAMjDtZ,KAAKgY,QAAUhY,KAAKQ,IAAIhB,SACxBQ,KAAK+X,QAAU9X,EAAE4D,YAEjB7D,MAAKiO,kBAPD9N,SAAQC,IAAI,wGjBylFf,MApEAnD,GiB1iFgB+b,EAAwBnZ,GjBwkFxC9B,EiBxkFgBib,IjBykFZ1a,IAAK,aACLd,MiB3iFG,WAENwC,KAAKiY,8BjB6iFF3Z,IAAK,2BACLd,MiB1iFiB,WjB2iFb,GAAI+C,GAAQP,IiBxiFjB,IAAGA,KAAKD,QAAQuZ,kCAEZ,GAAIJ,GAAiC,GAAvBlZ,KAAKgY,QAAQ5G,SAAmE,IAAjDpR,KAAKD,QAAQuZ,uCAI1D,IAAIC,GAAKtZ,EAAE4D,QAAQuN,QAAQ,KACvB8H,EAASlZ,KAAKD,QAAQmZ,OAASK,CAGvC,IAAIC,GAA+BxZ,KAAKyZ,kCACpCC,EAAY,IAAMF,EAA+BxZ,KAAKD,QAAQoZ,iCAAoCnZ,KAAKD,QAAQqZ,oCAC/GO,EAAeC,KAAKC,MAAMH,EAAW,IACzCA,IAAa,IAAMC,CACnB,IAAIG,GAAIf,EAAA,WAAUgB,kBAAkBb,EAAQQ,GAAU,GAClDM,EAAIjB,EAAA,WAAUkB,kBAAkBf,EAAQQ,GAAU,EACtD1Z,MAAKQ,IAAIoD,IAAI,YAAY,eAAekW,EAAE,MAAME,EAAE,iBAAiBN,EAAW1Z,KAAKD,QAAQsZ,gCAAgC,QAE3HxV,OAAOyU,sBAAsB,WjBwiFpB,MiBxiF0B/X,GAAK0X,gCjB4iFvC3Z,IAAK,kCACLd,MiB1iFwB,WAE3B,GAAIgb,GAAexY,KAAK+X,QAAQU,SAC5BC,EAAoB1Y,KAAK+X,QAAQ1U,WACrC,OAAOqV,GAAoBF,MAjEZQ,GjB+mFjBrZ,EAAiB,WAEpBpD,GAAQ,WiBjnFYyc,EjBknFpB1c,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,GAGtB,YAQA,SAASM,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHK,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MkBjoF5hBmd,EAAS,WlBsoFV,QkBtoFCA,KlBuoFGrd,EAAgBmD,KkBvoFnBka,GlB+yFD,MArKAnc,GkB1oFCmc,IlB2oFG5b,IAAK,sBACLd,MkB1oFc,SAAC2c,EAAQC,EAAQC,EAASC,EAASC,EAAOC,GAEzD,MAAOL,IAAUE,GAAYF,GAAWE,EAASE,GAAUH,GAAUE,GAAYF,GAAWE,EAASE,KlB4oFpGlc,IAAK,oCACLd,MkB1oF4B,SAACid,EAAMC,EAAKC,EAAMC,GAE/C,GAAIC,GAAWjB,KAAKkB,IAAKH,EAAOF,EAAO,GACnCM,EAAWnB,KAAKkB,IAAKF,EAAOF,EAAO,GACnCM,EAAUH,EAAWE,CACzB,OAAOC,MlB4oFN1c,IAAK,6BACLd,MkBzoFqB,SAACyd,EAAQC,GAE/B,GAAIL,GAAWjB,KAAKkB,IAAKI,EAAQpB,EAAImB,EAAQnB,EAAI,GAC7CiB,EAAWnB,KAAKkB,IAAKI,EAAQlB,EAAIiB,EAAQjB,EAAI,GAC7CgB,EAAUpB,KAAKuB,KAAKN,EAAWE,EACnC,OAAOC,MlB2oFN1c,IAAK,oBACLd,MkBxoFY,SAAC4d,EAAeC,GlByoFxB,GkBzoFsCC,GAAWC,UAAAnd,QAAA,GAAAgB,SAAAmc,UAAA,IAAOA,UAAA,EAE1DD,KAECD,EAAerb,KAAKwb,iBAAiBH,GAGzC,IAAII,GAAcL,EAAgBxB,KAAK8B,IAAIL,EAC3C,OAAOI,MlB2oFNnd,IAAK,oBACLd,MkBzoFY,SAAC4d,EAAeC,GlB0oFxB,GkB1oFsCC,GAAWC,UAAAnd,QAAA,GAAAgB,SAAAmc,UAAA,IAAOA,UAAA,EAE1DD,KAECD,EAAerb,KAAKwb,iBAAiBH,GAGzC,IAAIM,GAAcP,EAAgBxB,KAAKgC,IAAIP,EAC3C,OAAOM,MlB4oFNrd,IAAK,wBACLd,MkB1oFgB,SAACqe,EAAcC,GlB2oF3B,GkB3oFyCR,GAAWC,UAAAnd,QAAA,GAAAgB,SAAAmc,UAAA,IAAOA,UAAA,GAE5DQ,EAAanC,KAAKoC,KAAKF,EAAaD,EAQxC,OANAE,IAAc/b,KAAKic,uBAAuBJ,EAAaC,GAEpDR,IAECS,EAAa/b,KAAKkc,gBAAgBH,IAE/BA,KlB6oFNzd,IAAK,6BACLd,MkB3oFqB,SAAC4d,EAAeC,EAAcC,GAuBpD,MApBGA,IAECD,GAAgB,GAEbA,EAAe,IAEdA,GAAgB,OAMpBA,GAAgBzB,KAAKuC,GAAG,EAErBd,EAAe,IAEdA,GAAwB,EAARzB,KAAKuC,KAItBnc,KAAK+Z,kBAAkBqB,EAAcC,EAAaC,MlByoFxDhd,IAAK,6BACLd,MkBroFqB,SAAC4d,EAAeC,EAAcC,GAsBpD,MAnBGA,IAECD,GAAgB,GAEbA,EAAe,IAEdA,GAAgB,OAMpBA,GAAgBzB,KAAKuC,GAAG,EAErBd,EAAe,IAEdA,GAAwB,EAARzB,KAAKuC,KAGtBnc,KAAKia,kBAAkBmB,EAAcC,EAAaC,MlBmoFxDhd,IAAK,yBACLd,MkBhoFiB,SAACqe,EAAcC,GAEjC,GAAIM,GAAYpc,KAAKqc,YAAYR,EAAcC,EAC/C,OAAgB,IAAbM,EAEQ,EAEU,GAAbA,GAA+B,GAAbA,EAEfxC,KAAKuC,GAIG,EAARvC,KAAKuC,MlB8nFf7d,IAAK,cACLd,MkB1nFM,SAACqe,EAAcC,GAGtB,MAAID,IAAgB,GAAKC,GAAgB,EAE9B,EAEHD,EAAe,GAAKC,GAAgB,EAEjC,EAEHD,EAAe,GAAKC,EAAe,EAEhC,EAIA,KlBsnFVxd,IAAK,kBACLd,MkBlnFU,SAAC8e,GAEZ,GAAIC,GAAcD,EAAS1C,KAAKuC,GAAI,GACpC,OAAOI,MlBonFNje,IAAK,mBACLd,MkBjnFW,SAACgf,GAEb,GAAIC,GAAcD,EAAU,IAAK5C,KAAKuC,EACtC,OAAOM,MlBmnFNne,IAAK,gBACLd,MkBhnFQ,WAET,GAAIkf,GAAY1c,KAAK2c,gBAAgB,EAAE,IACnCC,EAAcF,EAAY,GAAK,CACnC,OAAOE,MlBunFNte,IAAK,kBACLd,MkBjnFU,SAACqf,EAAKC,GAEjB,MAAOlD,MAAKC,MAAMD,KAAKmD,UAAYD,EAAMD,EAAM,IAAMA,KlBmnFpDve,IAAK,gBACLd,MkBjnFQ,SAACwf,EAASC,GAEnB,GAAIC,GAAcD,EAAQD,CAC1B,OAAOE,OA3LThD,IlBkzFL3d,GAAQ,WkBnnFO,GAAI2d,GlBonFnB5d,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAkB/B,YAQA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAVjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIiB,GAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxc+d,EAAa3gB,EmBv0Fe,InBy0F5B4gB,EAAc3gB,EAAuB0gB,GmBv0FrBE,EAAwB,SAAAC,GAEhC,QAFQD,GAEPvd,EAAIC,GnB20FblD,EAAgBmD,KmB70FAqd,GAIjB5e,EAAApB,OAAAoC,eAJiB4d,EAAwBjgB,WAAA,cAAA4C,MAAAT,KAAAS,KAInCF,EAAIG,EAAEC,QAAO,GAEjB4I,aAAe,wCACfC,WAAa,iBACbC,aAAe,sFAEdjJ,GAAU,anB80Fd,MAdA9C,GmB10FkBogB,EAAwBC,GAAxBD,GnBy1FjBD,EAAY,WAEf7gB,GAAQ,WmB31FY8gB,EnB41FpB/gB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAkB/B,YAQA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAVjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIiB,GAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxc+d,EAAa3gB,EoBl4Fe,IpBo4F5B4gB,EAAc3gB,EAAuB0gB,GoBl4FrBI,EAAwB,SAAAD,GAEhC,QAFQC,GAEPzd,EAAIC,GpBs4FblD,EAAgBmD,KoBx4FAud,GAIjB9e,EAAApB,OAAAoC,eAJiB8d,EAAwBngB,WAAA,cAAA4C,MAAAT,KAAAS,KAInCF,EAAIG,EAAEC,QAAO,GAEjB4I,aAAe,sDACfC,WAAa,WACbC,aAAe,sFAEdjJ,GAAU,apBy4Fd,MAdA9C,GoBr4FkBsgB,EAAwBD,GAAxBC,GpBo5FjBH,EAAY,WAEf7gB,GAAQ,WoBt5FYghB,EpBu5FpBjhB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAkB/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc;AAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxc+d,EAAa3gB,EqB/7Fe,IrBi8F5B4gB,EAAc3gB,EAAuB0gB,GqB/7FrBK,EAAyB,SAAAF,GAEjC,QAFQE,GAEP1d,EAAIC,GrBm8FTlD,EAAgBmD,KqBr8FJwd,EAIjB,IAAI9N,GAAWzP,EAAE,QAAQQ,KAAK,6BAA6BqB,KAAK,WAC5D2b,EAAkBxd,EAAE,QAAQQ,KAAK,mCAAmCqB,KAAK,UAG7E,OAAI4N,GAMA+N,MAMJhf,GAAApB,OAAAoC,eApBiB+d,EAAyBpgB,WAAA,cAAA4C,MAAAT,KAAAS,KAoBpCF,EAAIG,EAAEC,QAAO,GAKjB4I,aAAe,qDAAqD4G,EAAS,oBAAoB+N,EAAgB,QACjH1U,WAAa,YACbC,aAAe,sFAEdjJ,GAAU,iBAbTI,SAAQC,IAAI,2EANZD,SAAQC,IAAI,sDrBk/Ff,MA1DAnD,GqBl8FgBugB,EAAyBF,GrBm+FzCvf,EqBn+FgByf,IrBo+FZlf,IAAK,eACLd,MqBh8FK,SAAC2L,GAEXnJ,KAAKoJ,2BAELD,EAAM1G,gBAEN,IAAIib,GAAc,EAEmB,oBAA3B1d,MAAKD,QAAQ4d,YAErBD,EAAc1d,KAAKD,QAAQ4d,WAG1B3d,KAAKD,QAAQuJ,WAEXoU,IAEDA,GAAe,KAEjBA,GAAgB1d,KAAKD,QAAQuJ,UAG/BtJ,KAAKqJ,eAAeqU,EAAY1d,KAAKD,QAAQ+I,aAAa9I,KAAKD,QAAQgJ,WAAW/I,KAAKD,QAAQiJ,kBA3D9EwU,GrB6/FjBJ,EAAY,WAEf7gB,GAAQ,WqB//FYihB,ErBggGpBlhB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAmB/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC3BiB,OAAO,GAGX,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxc+d,EAAa3gB,EsBxiGe,ItB0iG5B4gB,EAAc3gB,EAAuB0gB,GsBxiGrBS,EAAuB,SAAAN,GAE/B,QAFQM,GAEP9d,EAAIC,GtB4iGTlD,EAAgBmD,KsB9iGJ4d,GAIjBnf,EAAApB,OAAAoC,eAJiBme,EAAuBxgB,WAAA,cAAA4C,MAAAT,KAAAS,KAIlCF,EAAIG,EAAEC,QAAO,GAEjB4I,aAAe,yCACfC,WAAa,UACbC,aAAe,sFAEdjJ,GAAU,atBokGZ,MAnCA9C,GsB3iGgB2gB,EAAuBN,GtB4jGvCvf,EsB5jGgB6f,ItB6jGZtf,IAAK,eACLd,MsB5iGK,SAAC2L,GAEXnJ,KAAKoJ,2BAELD,EAAM1G,gBAEN,IAAIib,GAAc1d,KAAKD,QAAQ4d,SAE5B3d,MAAKD,QAAQuJ,WAEdoU,EAAcA,EAAc,IAAI1d,KAAKD,QAAQuJ,UAG/CtJ,KAAKqJ,eAAeqU,EAAY1d,KAAKD,QAAQ+I,aAAa9I,KAAKD,QAAQgJ,WAAW/I,KAAKD,QAAQiJ,kBA/B9E4U,GtB+kGjBR,EAAY,WAEf7gB,GAAQ,WsBjlGYqhB,EtBklGpBthB,EAAOC,QAAUA,EAAQ,YAGlB,CAEF,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EuB7nGD,GvB+nGjBmD,EAAmBlD,EAAuBiD,GuB7nG1Bme,EAA6B,SAAAhe,GAErC,QAFQge,GAEP/d,EAAIC,GvBioGblD,EAAgBmD,KuBnoGA6d,GAIjBpf,EAAApB,OAAAoC,eAJiBoe,EAA6BzgB,WAAA,cAAA4C,MAAAT,KAAAS,KAIxCF,EAAIG,EAAEC,QAAO,KAChBH,GAAU,aACbC,KAAKM,avBmpGN,MAzBArD,GuBhoGkB4gB,EAA6Bhe,GvByoG/C9B,EuBzoGkB8f,IvB0oGhBvf,IAAK,aACLd,MuBjoGS,WvBkoGP,GAAI+C,GAAQP,IuBhoGbA,MAAKQ,IAAIQ,MAAM,SAACL,GvBmoGb,MuBnoGmBJ,GAAKud,wBAAwBnd,QvBuoGpDrC,IAAK,0BACLd,MuBpoGsB,SAACmD,GAEtBR,QAAQC,IAAI,+BAlBGyd,GvB0pGjBle,EAAiB,WAEpBpD,GAAQ,WuB5pGYshB,EvB6pGpBvhB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EwBrrGD,GxBurGjBmD,EAAmBlD,EAAuBiD,GwBnrG1Bqe,EAA4B,SAAAle,GAErC,QAFSke,GAERje,EAAIC,GAMf,MxBmrGGlD,GAAgBmD,KwB3rGA+d,GAInBtf,EAAApB,OAAAoC,eAJmBse,EAA4B3gB,WAAA,cAAA4C,MAAAT,KAAAS,KAIzCF,EAAIG,EAAEC,QAAO,GAClB8d,cAAa,GACXje,GAAU,aAETC,KAAKD,QAAQie,iBAMjBhe,MAAKM,iBAJJH,SAAQC,IAAI,gExBqtGZ,MAvCAnD,GwBxrGkB8gB,EAA4Ble,GxBysG9C9B,EwBzsGkBggB,IxB0sGhBzf,IAAK,aACLd,MwBzrGS,WxB0rGP,GAAI+C,GAAQP,IwBxrGbA,MAAKQ,IAAIwC,GAAG,QAAQ,MAAM,SAACrC,GxB2rGxB,MwB3rG8BJ,GAAK0d,sBAAsBtd,QxB+rG7DrC,IAAK,wBACLd,MwB7rGoB,SAACmD,GAErBR,QAAQC,IAAI,YACZ,IAAI0R,GAAU7R,EAAEU,EAAEQ,cACf2Q,GAAQlQ,SAAS5B,KAAKD,QAAQie,cAEhClM,EAAQ1P,YAAYpC,KAAKD,QAAQie,cAIjClM,EAAQzP,SAASrC,KAAKD,QAAQie,kBAjCfD,GxBguGjBpe,EAAiB,WAEpBpD,GAAQ,WwBluGYwhB,ExBmuGpBzhB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,EyB7vGD,GzB+vGjBmD,EAAmBlD,EAAuBiD,GyB7vG1Bwe,EAAuB,SAAAre,GAE/B,QAFQqe,GAEPpe,EAAIC,GzBiwGblD,EAAgBmD,KyBnwGAke,GAGjBzf,EAAApB,OAAAoC,eAHiBye,EAAuB9gB,WAAA,cAAA4C,MAAAT,KAAAS,KAGlCF,EAAIG,EAAEC,QAAO,GAIjBie,4BAA6B,KAC5Bpe,GAAU,aAEbC,KAAKoe,4CAA8C,EAEnDpe,KAAK+X,QAAU9X,EAAE4D,QACjB7D,KAAKiO,azBsyGN,MAnDAhR,GyBhwGkBihB,EAAuBre,GzBixGzC9B,EyBjxGkBmgB,IzBkxGhB5f,IAAK,aACLd,MyBnwGO,WAENwC,KAAKiY,8BzBqwGN3Z,IAAK,oBACLd,MyBnwGc,WAEb,MAAOwC,MAAKQ,IAAI8C,SAASC,IAAOvD,KAAK+X,QAAQ1U,YAAcrD,KAAK+X,QAAQU,YzBqwGzEna,IAAK,2BACLd,MyBnwGqB,WzBowGnB,GAAI+C,GAAQP,KyBlwGTqe,EAAqBre,KAAKse,mBAC9B,KAAID,EAGA,WADAxa,QAAOyU,sBAAsB,WzBowG5B,MyBpwGkC/X,GAAK0X,4BAI5CjY,MAAKQ,IAAIoD,IAAI,YAAY,OACzB,IAAI2a,GAAmCve,KAAKQ,IAAIiY,UAA+D,KAAnDzY,KAAKoe,6CAC7DI,EAAuCxe,KAAKQ,IAAI8C,SAASC,IAAMgb,EAC/DE,EAA4Bze,KAAK+X,QAAQ1U,YAAcrD,KAAK+X,QAAQU,SAAY+F,CACpFxe,MAAKQ,IAAIoD,IAAI,YAAY,iBAAmB6a,EAAyBze,KAAKD,QAAQoe,4BAA8B,UAChHta,OAAOyU,sBAAsB,WzBswG1B,MyBtwGgC/X,GAAK0X,iCAxCzBiG,GzBozGjBve,EAAiB,WAEpBpD,GAAQ,WyBtzGY2hB,EzBuzGpB5hB,EAAOC,QAAUA,EAAQ,YAIpB,SAASD,EAAQC,EAASC,GAE/B,YAUA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAEzF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIH,WAAU,iEAAoEG,GAAeD,GAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,WAAaG,aAAeC,MAAON,EAAUO,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAZjeE,OAAOS,eAAevB,EAAS,cAC7BiB,OAAO,GAGT,IAAIO,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWZ,WAAaY,EAAWZ,aAAc,EAAOY,EAAWV,cAAe,EAAU,SAAWU,KAAYA,EAAWX,UAAW,GAAML,OAAOS,eAAeG,EAAQI,EAAWC,IAAKD,IAAiB,MAAO,UAAUtB,EAAawB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBjB,EAAYK,UAAWmB,GAAiBC,GAAaR,EAAiBjB,EAAayB,GAAqBzB,MAE7hB0B,EAAO,SAAaC,EAAIC,EAAKC,GAAqC,IAA9B,GAAIC,IAAS,EAAwBA,GAAQ,CAAE,GAAIC,GAASJ,EAAIK,EAAWJ,EAAKK,EAAWJ,CAAKC,IAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAAS7B,UAAW,IAAI8B,GAAO7B,OAAO8B,yBAAyBL,EAAQC,EAAW,IAAaK,SAATF,EAAJ,CAA4O,GAAI,SAAWA,GAAQ,MAAOA,GAAK1B,KAAgB,IAAI6B,GAASH,EAAKI,GAAK,IAAeF,SAAXC,EAAwB,MAAoB,OAAOA,GAAOE,KAAKP,GAA/V,GAAIQ,GAASnC,OAAOoC,eAAeX,EAAS,IAAe,OAAXU,EAAmB,MAA2Bd,GAAKc,EAAQb,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOM,EAASJ,SAQxcM,EAAkBlD,E0B/0GD,G1Bi1GjBmD,EAAmBlD,EAAuBiD,G0B/0G1Bgf,EAAqB,SAAA7e,GAE7B,QAFQ6e,GAEP5e,EAAIC,G1Bm1GblD,EAAgBmD,K0Br1GA0e,GAGjBjgB,EAAApB,OAAAoC,eAHiBif,EAAqBthB,WAAA,cAAA4C,MAAAT,KAAAS,KAGhCF,EAAIG,EAAEC,QAAO,GACjBsE,MAAK,EACLgK,iBAAgB,GACfzO,GAAU,aAGbC,KAAKM,a1B21GN,MAlBArD,G0Bl1GkByhB,EAAqB7e,G1B+1GvC9B,E0B/1GkB2gB,I1Bg2GhBpgB,IAAK,aACLd,M0Br1GO,gBAZSkhB,G1Bq2GjB/e,EAAiB,WAEpBpD,GAAQ,W0Bv2GYmiB,E1Bw2GpBpiB,EAAOC,QAAUA,EAAQ","file":"2.2.js","sourcesContent":["webpackJsonp([2,4],[\n/* 0 */,\n/* 1 */,\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_InputValidator = (function (_Abstract2) {\n\t _inherits(Component_InputValidator, _Abstract2);\n\t\n\t function Component_InputValidator(el, options) {\n\t _classCallCheck(this, Component_InputValidator);\n\t\n\t _get(Object.getPrototypeOf(Component_InputValidator.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t console.log(\"INPUT VALIDATOR\");\n\t this.EMAIL_REGULAR_EXPRESSION = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_InputValidator, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.find(\"input\").blur(function (e) {\n\t return _this.onInputBlurred(e);\n\t });\n\t this.$el.find(\"input\").keyup(function (e) {\n\t return _this.onInputKeyUp(e);\n\t });\n\t // this.$el.find(\" input\").keydown((e) => this.onInputKeyDown(e));\n\t\n\t if (typeof this.options.submit_button_selector !== \"undefined\") {\n\t this.$el.find(this.options.submit_button_selector).click(function (e) {\n\t return _this.onSubmitButtonClicked(e);\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"onInputBlurred\",\n\t value: function onInputBlurred(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"onInputKeyDown\",\n\t value: function onInputKeyDown(e) {\n\t var $input = $(e.currentTarget);\n\t return this.forceCharacterLimits($input);\n\t }\n\t }, {\n\t key: \"onInputKeyUp\",\n\t value: function onInputKeyUp(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"forceCharacterLimits\",\n\t value: function forceCharacterLimits($element) {\n\t var characterLimit = $element.data(\"character-limit\");\n\t if (!characterLimit) {\n\t return true;\n\t }\n\t\n\t var elementValue = $element.val();\n\t if (elementValue.length > characterLimit) {\n\t return false;\n\t }\n\t return true;\n\t }\n\t }, {\n\t key: \"validateElement\",\n\t value: function validateElement($element) {\n\t\n\t if (!$element.closest(\".c-label-input-ctn\").hasClass(\"required\")) {\n\t return;\n\t }\n\t\n\t var inputType = $element.attr(\"type\");\n\t var bValidInput = $element.val();\n\t if (inputType.toLowerCase() === \"email\") {\n\t bValidInput = this.EMAIL_REGULAR_EXPRESSION.test($element.val());\n\t }\n\t\n\t if ($element.data(\"match\")) {\n\t var matchSelector = $element.data(\"match\");\n\t var $elementToMatch = $(matchSelector);\n\t if ($elementToMatch.length) {\n\t if ($element.val() !== $elementToMatch.val()) {\n\t bValidInput = false;\n\t }\n\t } else {\n\t console.log(\"input-validator: Failed to find matching element to compare data!\");\n\t }\n\t }\n\t\n\t if (bValidInput) {\n\t $element.removeClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\n\t return true;\n\t } else {\n\t $element.addClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"onSubmitButtonClicked\",\n\t value: function onSubmitButtonClicked(e) {\n\t var context = this;\n\t var bAllValidated = true;\n\t this.$el.find(\".required input\").each(function () {\n\t var $input = $(this);\n\t if (!context.validateElement($input)) {\n\t bAllValidated = false;\n\t }\n\t });\n\t\n\t if (bAllValidated) {\n\t this.$el.find(\".form-is-valid\").removeClass('-hide');\n\t this.$el.find(\".form-is-invalid\").addClass('-hide');\n\t } else {\n\t this.$el.find(\".form-is-valid\").addClass('-hide');\n\t this.$el.find(\".form-is-invalid\").removeClass('-hide');\n\t e.preventDefault();\n\t e.stopImmediatePropagation();\n\t }\n\t }\n\t }]);\n\t\n\t return Component_InputValidator;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_InputValidator;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_InputValidatorv2 = (function (_Abstract2) {\n\t _inherits(Component_InputValidatorv2, _Abstract2);\n\t\n\t function Component_InputValidatorv2(el, options) {\n\t _classCallCheck(this, Component_InputValidatorv2);\n\t\n\t _get(Object.getPrototypeOf(Component_InputValidatorv2.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), \"component\");\n\t this.EMAIL_REGULAR_EXPRESSION = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\t this.bindEvents();\n\t $(\"select.c-label-select__fields\").selectric({\n\t disableOnMobile: false,\n\t nativeOnMobile: false,\n\t onChange: function onChange() {\n\t $(\".selectric-c-label-select__fields\").removeClass(\"is-invalid\");\n\t }\n\t }).on(\"selectric-before-open\", function () {\n\t if ($(\".selectric-c-label-select__fields\").hasClass(\"is-invalid\")) {\n\t $(\".selectric-c-label-select__fields\").removeClass(\"is-invalid\");\n\t }\n\t });\n\t }\n\t\n\t _createClass(Component_InputValidatorv2, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.find(\"input\").blur(function (e) {\n\t return _this.onInputBlurred(e);\n\t });\n\t this.$el.find(\"input\").keyup(function (e) {\n\t return _this.onInputKeyUp(e);\n\t });\n\t this.$el.find(\"textarea\").blur(function (e) {\n\t return _this.onTextareBlurred(e);\n\t });\n\t this.$el.find(\"textarea\").keyup(function (e) {\n\t return _this.onTextareKeyUp(e);\n\t });\n\t if (typeof this.options.submit_button_selector !== \"undefined\") {\n\t this.$el.find(this.options.submit_button_selector).click(function (e) {\n\t return _this.onSubmitButtonClicked(e);\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"onInputBlurred\",\n\t value: function onInputBlurred(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"onInputKeyDown\",\n\t value: function onInputKeyDown(e) {\n\t var $input = $(e.currentTarget);\n\t return this.forceCharacterLimits($input);\n\t }\n\t }, {\n\t key: \"onInputKeyUp\",\n\t value: function onInputKeyUp(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"onTextareKeyUp\",\n\t value: function onTextareKeyUp(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"onTextareBlurred\",\n\t value: function onTextareBlurred(e) {\n\t var $input = $(e.currentTarget);\n\t this.validateElement($input);\n\t }\n\t }, {\n\t key: \"forceCharacterLimits\",\n\t value: function forceCharacterLimits($element) {\n\t var characterLimit = $element.data(\"character-limit\");\n\t if (!characterLimit) {\n\t return true;\n\t }\n\t\n\t var elementValue = $element.val();\n\t if (elementValue.length > characterLimit) {\n\t return false;\n\t }\n\t return true;\n\t }\n\t }, {\n\t key: \"validateTextarea\",\n\t value: function validateTextarea($element) {\n\t if ($element.val()) {\n\t $element.removeClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\n\t return true;\n\t } else {\n\t $element.addClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"validateElement\",\n\t value: function validateElement($element) {\n\t if (!$element.closest(\".c-label-input-ctn\").hasClass(\"required\")) {\n\t return;\n\t }\n\t\n\t var inputType = $element.attr(\"type\");\n\t var bValidInput = $element.val();\n\t if (inputType.toLowerCase() === \"email\") {\n\t bValidInput = this.EMAIL_REGULAR_EXPRESSION.test($element.val());\n\t }\n\t\n\t if ($element.data(\"match\")) {\n\t var matchSelector = $element.data(\"match\");\n\t var $elementToMatch = $(matchSelector);\n\t if ($elementToMatch.length) {\n\t if ($element.val() !== $elementToMatch.val()) {\n\t bValidInput = false;\n\t }\n\t } else {\n\t console.log(\"input-validator: Failed to find matching element to compare data!\");\n\t }\n\t }\n\t\n\t if (bValidInput) {\n\t $(\".-error\").html(\"Comments Field*\");\n\t $element.removeClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\n\t return true;\n\t } else {\n\t $(\".-error\").html(\"Comments*\");\n\t $element.addClass(\"invalid-input\");\n\t $element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\n\t return false;\n\t }\n\t }\n\t }, {\n\t key: \"onErrorScrollTop\",\n\t value: function onErrorScrollTop() {\n\t $(\"html,body\").animate({\n\t scrollTop: $(\".-scrolltop\").offset().top - 30\n\t }, \"fast\");\n\t }\n\t }, {\n\t key: \"formValidation\",\n\t value: function formValidation(bAllValidated, e) {\n\t var context = this;\n\t if (bAllValidated) {\n\t context.$el.find(\".form-is-valid\").removeClass(\"-hide\");\n\t context.$el.find(\".form-is-invalid\").addClass(\"-hide\");\n\t // Change checkbox value when checked\n\t var $signMeUp = $('input[name=\"subscribe\"]');\n\t if ($signMeUp.prop(\"checked\")) {\n\t $(\".js-form-stream-val\").attr(\"value\", 1);\n\t } else {\n\t $(\".js-form-stream-val\").attr(\"value\", 0);\n\t }\n\t var htmlLoader = \"
\";\n\t $(\".cta-input-sugarform--send-btn\").after(htmlLoader);\n\t $(\".cta-input-sugarform--send-btn\").css(\"visibility\", \"hidden\");\n\t\n\t if (window.location.hostname === \"furnware-static.uniondigital.co.nz\" || window.location.hostname === \"localhost\") {\n\t return;\n\t }\n\t if ($(e.currentTarget).hasClass(\"stem-submit-btn\")) {\n\t context.setCookie(\"stemlearningpopup\", \"clicked\", 100000);\n\t }\n\t $(\"#aspnetForm\").attr(\"action\", $(\".cta-input-form\").data(\"sugar-market-post-url\"));\n\t $(\"#aspnetForm\").unbind(\"submit\").removeAttr(\"onsubmit\");\n\t $(\"#aspnetForm\").submit();\n\t } else {\n\t context.$el.find(\".form-is-valid\").addClass(\"-hide\");\n\t context.$el.find(\".form-is-invalid\").removeClass(\"-hide\");\n\t grecaptcha.reset();\n\t context.onErrorScrollTop();\n\t e.preventDefault();\n\t e.stopImmediatePropagation();\n\t }\n\t }\n\t }, {\n\t key: \"recaptchaValidation\",\n\t value: function recaptchaValidation(context, bAllValidated, e) {\n\t $.ajax({\n\t type: \"GET\",\n\t url: \"/WebApi/ReCaptchaApi/VerifyReCaptcha?reCaptchaResponse=\" + grecaptcha.getResponse(),\n\t error: function error(response) {\n\t bAllValidated = false;\n\t $(\".g-recaptcha__errormsg\").addClass(\"-hide\");\n\t context.formValidation(bAllValidated, e);\n\t },\n\t success: function success(response) {\n\t if (response == true) {\n\t $(\".g-recaptcha__errormsg\").addClass(\"-hide\");\n\t context.formValidation(bAllValidated, e);\n\t } else {\n\t bAllValidated = false;\n\t $(\".g-recaptcha__errormsg\").removeClass(\"-hide\");\n\t context.formValidation(bAllValidated, e);\n\t }\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"onSubmitButtonClicked\",\n\t value: function onSubmitButtonClicked(e) {\n\t var context = this;\n\t var bAllValidated = true;\n\t var dropdownValidated = true;\n\t var textareaValidated = true;\n\t if ($(\".cta-input-form\").data(\"sugar-market-form\") == \"contact\") {\n\t if ($(\".c-label-select__fields\").val() == \"-1\") {\n\t $(\".selectric-c-label-select__fields\").addClass(\"is-invalid\");\n\t dropdownValidated = false;\n\t }\n\t if (this.$el.find(\".required textarea\").length > 0) {\n\t textareaValidated = this.validateTextarea(this.$el.find(\".required textarea\"));\n\t }\n\t this.$el.find(\".required input\").each(function () {\n\t var $input = $(this);\n\t if (!context.validateElement($input)) {\n\t bAllValidated = false;\n\t }\n\t });\n\t if (bAllValidated && textareaValidated && dropdownValidated) {\n\t this.$el.find(\".form-is-valid\").removeClass(\"-hide\");\n\t this.$el.find(\".form-is-invalid\").addClass(\"-hide\");\n\t } else {\n\t this.$el.find(\".form-is-valid\").addClass(\"-hide\");\n\t this.$el.find(\".form-is-invalid\").removeClass(\"-hide\");\n\t this.onErrorScrollTop();\n\t e.preventDefault();\n\t e.stopImmediatePropagation();\n\t }\n\t e.preventDefault();\n\t e.stopImmediatePropagation();\n\t context.recaptchaValidation(context, bAllValidated, e);\n\t } else {\n\t if ($(\".c-label-select__fields\").length) {\n\t if ($(\".c-label-select__fields\").val() == \"-1\") {\n\t $(\".selectric-c-label-select__fields\").addClass(\"is-invalid\");\n\t bAllValidated = false;\n\t }\n\t }\n\t this.$el.find(\".required input\").each(function () {\n\t var $input = $(this);\n\t if (!context.validateElement($input)) {\n\t bAllValidated = false;\n\t }\n\t });\n\t e.preventDefault();\n\t e.stopImmediatePropagation();\n\t context.recaptchaValidation(context, bAllValidated, e);\n\t }\n\t }\n\t }]);\n\t\n\t return Component_InputValidatorv2;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_InputValidatorv2;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./_share-base\": 21,\n\t\t\"./_share-base.js\": 21,\n\t\t\"./article-filter\": 22,\n\t\t\"./article-filter.js\": 22,\n\t\t\"./back-button\": 23,\n\t\t\"./back-button.js\": 23,\n\t\t\"./back-to-top\": 24,\n\t\t\"./back-to-top.js\": 24,\n\t\t\"./background-image-rotator\": 25,\n\t\t\"./background-image-rotator.js\": 25,\n\t\t\"./banner-image-rotator\": 26,\n\t\t\"./banner-image-rotator.js\": 26,\n\t\t\"./click-behaviour\": 27,\n\t\t\"./click-behaviour.js\": 27,\n\t\t\"./culture-pop-up\": 28,\n\t\t\"./culture-pop-up.js\": 28,\n\t\t\"./full-screen-html5-video\": 29,\n\t\t\"./full-screen-html5-video.js\": 29,\n\t\t\"./header-desktop\": 30,\n\t\t\"./header-desktop.js\": 30,\n\t\t\"./header-mobile\": 31,\n\t\t\"./header-mobile.js\": 31,\n\t\t\"./hover-behaviour\": 32,\n\t\t\"./hover-behaviour.js\": 32,\n\t\t\"./input-validator\": 10,\n\t\t\"./input-validator-v2\": 14,\n\t\t\"./input-validator-v2.js\": 14,\n\t\t\"./input-validator.js\": 10,\n\t\t\"./move-on-scroll\": 33,\n\t\t\"./move-on-scroll.js\": 33,\n\t\t\"./rotate-on-scroll\": 34,\n\t\t\"./rotate-on-scroll.js\": 34,\n\t\t\"./share-facebook\": 36,\n\t\t\"./share-facebook.js\": 36,\n\t\t\"./share-linkedin\": 37,\n\t\t\"./share-linkedin.js\": 37,\n\t\t\"./share-pinterest\": 38,\n\t\t\"./share-pinterest.js\": 38,\n\t\t\"./share-twitter\": 39,\n\t\t\"./share-twitter.js\": 39,\n\t\t\"./site-wide-banner\": 40,\n\t\t\"./site-wide-banner.js\": 40,\n\t\t\"./social-networks-popup\": 41,\n\t\t\"./social-networks-popup.js\": 41,\n\t\t\"./toggle-child-classes\": 42,\n\t\t\"./toggle-child-classes.js\": 42,\n\t\t\"./vertical-slide\": 43,\n\t\t\"./vertical-slide.js\": 43,\n\t\t\"./video-player\": 44,\n\t\t\"./video-player.js\": 44\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 20;\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t// --\n\t// SHARE DIALOG\n\t// --\n\t//\n\t// this is base class which the indiviual share classes (facebook,twitter,linkedin,email) extend off\n\t//\n\t\n\t// --\n\t// USAGE\n\t// --\n\t//\n\t// data-component=\"share-linkedin\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\n\t//\n\t// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\n\t//\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_share_base = (function (_Abstract2) {\n\t _inherits(Component_share_base, _Abstract2);\n\t\n\t function Component_share_base(el, options) {\n\t _classCallCheck(this, Component_share_base);\n\t\n\t _get(Object.getPrototypeOf(Component_share_base.prototype), 'constructor', this).call(this, el, $.extend(true, {\n\t\n\t 'windowTarget': '',\n\t 'windowName': '',\n\t 'windowParams': ''\n\t\n\t }, options), 'component');\n\t\n\t // bind events function\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_share_base, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t // bind click event on this element\n\t this.$el.on('click', function (e) {\n\t return _this.triggerShare(e);\n\t });\n\t }\n\t\n\t //Makes sure the options stored are the latest based on the elements data options (as may be dynamically replaced)\n\t }, {\n\t key: 'readLatestElementOptions',\n\t value: function readLatestElementOptions() {\n\t var latestOptions = this.$el.data(\"component-options\");\n\t\n\t for (var key in latestOptions) {\n\t var value = latestOptions[key];\n\t\n\t this.options[key] = value;\n\t }\n\t }\n\t\n\t // function to pass share dteials to the share dialog\n\t }, {\n\t key: 'triggerShare',\n\t value: function triggerShare(event) {\n\t\n\t this.readLatestElementOptions();\n\t\n\t event.preventDefault();\n\t\n\t this.openSharePopup(this.options.shareURL, this.options.windowTarget, this.options.windowName, this.options.windowParams);\n\t }\n\t\n\t // open share dialog\n\t }, {\n\t key: 'openSharePopup',\n\t value: function openSharePopup(shareURL, windowTarget, windowName, windowParams) {\n\t\n\t window.open(windowTarget + encodeURIComponent(shareURL), windowName, windowParams);\n\t }\n\t\n\t // open share link\n\t }, {\n\t key: 'openShareLink',\n\t value: function openShareLink(shareURL, windowTarget) {\n\t\n\t window.location.href = windowTarget + encodeURIComponent(shareURL);\n\t }\n\t }]);\n\t\n\t return Component_share_base;\n\t})(_systemAbstract2['default']);\n\t\n\texports['default'] = Component_share_base;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* \r\n\t * listings filter js component\r\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_ArticleFilter = (function (_Abstract2) {\n\t _inherits(Component_ArticleFilter, _Abstract2);\n\t\n\t function Component_ArticleFilter(el, options) {\n\t _classCallCheck(this, Component_ArticleFilter);\n\t\n\t _get(Object.getPrototypeOf(Component_ArticleFilter.prototype), 'constructor', this).call(this, el, $.extend(true, {\n\t filterAttrItem: 'data-item-filters',\n\t filterAttrFilter: 'data-filter-by'\n\t\n\t }, options), 'component');\n\t\n\t this.$el.addClass(\"c-listings-filter\");\n\t\n\t this.searchBoxDebounceTimer = null;\n\t this.dataFilterSearchTerm = \"\";\n\t\n\t this.INDEPENDENT_SEARCH_AND_FILTER = true;\n\t\n\t this.$filterItems = this.$el.find('[' + this.options.filterAttrItem + ']');\n\t this.$filters = this.$el.find('[' + this.options.filterAttrFilter + ']');\n\t this.filterByArray = [];\n\t this.$clearFiltersBtn = this.$el.find('.js-clear-filters');\n\t this.bindEvents();\n\t\n\t this.initialiseFilterFromURLParamater();\n\t }\n\t\n\t _createClass(Component_ArticleFilter, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t // on filter click\n\t this.$filters.on('click', function (e) {\n\t return _this.onFilterClicked(e);\n\t });\n\t this.$clearFiltersBtn.on('click', function (e) {\n\t return _this.onClearFilterButtonClicked(e);\n\t });\n\t this.$el.find(\".c-search-input--input\").on(\"keyup\", function (e) {\n\t return _this.onSearchInputKeyUp(e);\n\t });\n\t this.$el.find(\".c-search-input--input\").on(\"keydown\", function (e) {\n\t return _this.onSearchInputKeyDown(e);\n\t });\n\t // this.$el.find(\".c-search-input--input\").on(\"keydown\",(e) => this.onSearchInputKeyDown(e));\n\t this.$el.find(\".c-search-input__search-btn\").click(function (e) {\n\t return _this.onSearchBtnClicked(e);\n\t });\n\t }\n\t\n\t //http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\n\t }, {\n\t key: 'getParameterByName',\n\t value: function getParameterByName(name, url) {\n\t if (!url) {\n\t url = window.location.href;\n\t }\n\t\n\t name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n\t var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n\t results = regex.exec(url);\n\t if (!results) {\n\t return null;\n\t }\n\t\n\t if (!results[2]) {\n\t return '';\n\t }\n\t\n\t return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n\t }\n\t }, {\n\t key: 'initialiseFilterFromURLParamater',\n\t value: function initialiseFilterFromURLParamater() {\n\t var filterValue = this.getParameterByName(\"filter\");\n\t if (!filterValue) {\n\t return;\n\t }\n\t\n\t $(\".c-article-filters > button\").each(function () {\n\t if ($(this).text().toLowerCase() === filterValue.toLowerCase()) {\n\t $(this).click();\n\t return false;\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'onSearchInputKeyDown',\n\t value: function onSearchInputKeyDown(_keyboardEvent) {\n\t switch (_keyboardEvent.keyCode) {\n\t case 13:\n\t //enter\n\t {\n\t _keyboardEvent.preventDefault();\n\t return false;\n\t break;\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'onSearchInputKeyUp',\n\t value: function onSearchInputKeyUp(_keyboardEvent) {\n\t console.log('on key up');\n\t // this.resetSearchBoxDebounceTimer();\n\t this.dataFilterSearchTerm = _keyboardEvent.target.value;\n\t if ($(_keyboardEvent.target).closest(\".c-mobile-sub-page\").length) {\n\t $(\".m-articles .c-search-input .c-search-input--input\").val(this.dataFilterSearchTerm);\n\t }\n\t\n\t switch (_keyboardEvent.keyCode) {\n\t case 13:\n\t //enter\n\t {\n\t this.onEnterPressed(_keyboardEvent);\n\t _keyboardEvent.preventDefault();\n\t _keyboardEvent.stopPropagation();\n\t break;\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'onSearchInputKeyDown',\n\t value: function onSearchInputKeyDown(_keyboardEvent) {\n\t console.log('on key down');\n\t // this.clearSearchBoxDebounceTimer();\n\t }\n\t }, {\n\t key: 'onSearchBtnClicked',\n\t value: function onSearchBtnClicked(_mouseEvent) {\n\t this.forceSearch();\n\t }\n\t }, {\n\t key: 'onEnterPressed',\n\t value: function onEnterPressed(_keyboardEvent) {\n\t this.forceSearch();\n\t if ($(_keyboardEvent.target).closest(\".c-mobile-sub-page\").length) {\n\t $(\".c-mobile-sub-page .c-mobile-sub-page__header-back-btn\").click();\n\t }\n\t }\n\t }, {\n\t key: 'forceSearch',\n\t value: function forceSearch() {\n\t if (this.INDEPENDENT_SEARCH_AND_FILTER) {\n\t this.clearFilters();\n\t this.resetFilter();\n\t }\n\t this.clearSearchBoxDebounceTimer();\n\t this.onKeyboardSearchDebounceExpired();\n\t }\n\t }, {\n\t key: 'resetSearchBoxDebounceTimer',\n\t value: function resetSearchBoxDebounceTimer() {\n\t var _this2 = this;\n\t\n\t this.clearSearchBoxDebounceTimer();\n\t\n\t this.searchBoxDebounceTimer = window.setTimeout(function () {\n\t return _this2.onKeyboardSearchDebounceExpired();\n\t }, 1000);\n\t }\n\t }, {\n\t key: 'onKeyboardSearchDebounceExpired',\n\t value: function onKeyboardSearchDebounceExpired() {\n\t this.searchBoxDebounceTimer = null;\n\t // this.dataFilterSearchTerm = this.$el.find(\".c-search-input--input\").val();\n\t\n\t this.updateItems(this.filterByArray, true);\n\t }\n\t }, {\n\t key: 'clearSearchBoxDebounceTimer',\n\t value: function clearSearchBoxDebounceTimer() {\n\t if (!this.searchBoxDebounceTimer) {\n\t return;\n\t }\n\t\n\t window.clearTimeout(this.searchBoxDebounceTimer);\n\t this.searchBoxDebounceTimer = null;\n\t }\n\t }, {\n\t key: 'getAllFilterItems',\n\t value: function getAllFilterItems() {\n\t return this.$el.find('[' + this.options.filterAttrItem + ']');\n\t }\n\t }, {\n\t key: 'getAllFilters',\n\t value: function getAllFilters() {\n\t return $(\".c-article-filters\").find('[' + this.options.filterAttrFilter + ']');\n\t }\n\t }, {\n\t key: 'isClickEventInMobileSubPage',\n\t value: function isClickEventInMobileSubPage(e) {\n\t return $(e.target).closest(\".c-mobile-sub-page\").length;\n\t }\n\t }, {\n\t key: 'onFilterClicked',\n\t value: function onFilterClicked(e) {\n\t e.preventDefault();\n\t\n\t if (this.INDEPENDENT_SEARCH_AND_FILTER) {\n\t this.clearSearchBoxDebounceTimer();\n\t this.$el.find(\".c-search-input--input\").val(\"\");\n\t this.dataFilterSearchTerm = \"\";\n\t }\n\t\n\t var index = $(e.target).index();\n\t\n\t //More then one may exist (mobile sub page for example)\n\t var $clickedTarget = $(e.target);\n\t var bCurrentlySelected = $clickedTarget.hasClass(\"-selected\") || $clickedTarget.hasClass(\"-active\");\n\t var filterStr = $clickedTarget.attr(this.options.filterAttrFilter);\n\t\n\t $(\".c-article-filters\").each(function () {\n\t var $buttonsIndexOfClickedItem = $(this).find(\" > :nth-child(\" + (index + 1) + \")\");\n\t // get target id to filter by\n\t\n\t //if filter is selected remove target id from filter array\n\t if (bCurrentlySelected) {\n\t $buttonsIndexOfClickedItem.removeClass('-selected').removeClass('-active');\n\t } else //if filter is not selected add target id to filter array\n\t {\n\t $buttonsIndexOfClickedItem.addClass('-selected').addClass(\"-active\");\n\t }\n\t });\n\t\n\t if (bCurrentlySelected) {\n\t this.filterByArray.splice(this.getIndexOfItem(this.filterByArray, filterStr), 1);\n\t } else {\n\t this.filterByArray.push(filterStr);\n\t }\n\t\n\t //update filtered items\n\t this.updateItems(this.filterByArray);\n\t }\n\t }, {\n\t key: 'onClearFilterButtonClicked',\n\t value: function onClearFilterButtonClicked(e) {\n\t e.preventDefault();\n\t this.clearFilters();\n\t this.resetFilter();\n\t this.updateItems(this.filterByArray);\n\t }\n\t }, {\n\t key: 'resetFilter',\n\t value: function resetFilter() {\n\t //show all items\n\t this.filterByArray = [];\n\t $('.js-clear-filters').addClass('-selected').addClass('-active');\n\t }\n\t }, {\n\t key: 'clearFilters',\n\t value: function clearFilters() {\n\t this.getAllFilters().removeClass('-selected').removeClass('-active');\n\t }\n\t }, {\n\t key: 'updateItems',\n\t value: function updateItems(arrayOfFilteredItems, bSearchTermTriggered) {\n\t\n\t if (typeof bSearchTermTriggered === \"undefined\") {\n\t bSearchTermTriggered = false;\n\t }\n\t\n\t //pass array to function that shows/hides items based on match\n\t this.hideFilteredItem(arrayOfFilteredItems, bSearchTermTriggered);\n\t }\n\t }, {\n\t key: 'getIndexOfItem',\n\t value: function getIndexOfItem(array, str) {\n\t\n\t // get index of item in array\n\t var index = array.indexOf(str);\n\t return index;\n\t }\n\t }, {\n\t key: 'hideFilteredItem',\n\t value: function hideFilteredItem(arrayOfFilterBy, bSearchTermTriggered) {\n\t if (typeof bSearchTermTriggered === \"undefined\") {\n\t bSearchTermTriggered = false;\n\t }\n\t\n\t var dataFilterSearchTerm = this.dataFilterSearchTerm;\n\t //items that match current array, use filter to determine match\n\t\n\t if (arrayOfFilterBy.length || dataFilterSearchTerm) {\n\t var $itemsThatMatch = this.$filterItems.filter(function (index) {\n\t var _this3 = this;\n\t\n\t //set match to false\n\t var match = false;\n\t\n\t //loop array of target ids to filter by\n\t $.each(arrayOfFilterBy, function (index, filterId) {\n\t\n\t // if target id str is found in items filter attribute set to true\n\t if ($(_this3).is(\"[data-item-filters*='\" + filterId + \"']\")) {\n\t match = true;\n\t }\n\t });\n\t\n\t if (dataFilterSearchTerm) {\n\t var searchTermMatches = $(\".c-tile--title:containsNoCase('\" + dataFilterSearchTerm + \"'), .c-tile-description:containsNoCase('\" + dataFilterSearchTerm + \"')\", this).length;\n\t if (!searchTermMatches) {\n\t return false;\n\t }\n\t\n\t //If there's no filter selected, then we're filtering by all, so return a match\n\t if (!arrayOfFilterBy.length) {\n\t return true;\n\t }\n\t }\n\t\n\t // return match true|false\n\t return match;\n\t });\n\t } else {\n\t var $itemsThatMatch = this.$filterItems;\n\t }\n\t\n\t //items that do not match\n\t var hideItems = this.$filterItems.not($itemsThatMatch);\n\t //if no flters are selected and tehre are no items in arary, show all items by default\n\t if (arrayOfFilterBy.length <= 0 && !dataFilterSearchTerm) {\n\t this.resetFilter();\n\t }\n\t\n\t if (arrayOfFilterBy.length > 0) {\n\t $('.js-clear-filters').removeClass('-selected').removeClass('-active');\n\t }\n\t\n\t var context = this;\n\t $(\".m-two-col-vertically-stacked-tiles \").fadeOut(function () {\n\t var $noResultsFoundFromSearchElement = $(\".-no-results-found-from-search-filter-element\");\n\t context.$filterItems.addClass(\"-hide\");\n\t if ($itemsThatMatch.length) {\n\t $noResultsFoundFromSearchElement.addClass(\"-hide\");\n\t $itemsThatMatch.removeClass(\"-hide\");\n\t $(\".m-two-col-vertically-stacked-tiles \").show();\n\t $(\"body\").trigger(\"reorder-items\");\n\t $(\".m-two-col-vertically-stacked-tiles \").hide();\n\t } else {\n\t $noResultsFoundFromSearchElement.removeClass(\"-hide\");\n\t }\n\t\n\t $(\".m-two-col-vertically-stacked-tiles \").fadeIn();\n\t });\n\t }\n\t }]);\n\t\n\t return Component_ArticleFilter;\n\t})(_systemAbstract2['default']);\n\t\n\texports['default'] = Component_ArticleFilter;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* \r\n\t * listings filter js component\r\n\t */\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_BackButton = (function (_Abstract2) {\n\t _inherits(Component_BackButton, _Abstract2);\n\t\n\t function Component_BackButton(el, options) {\n\t _classCallCheck(this, Component_BackButton);\n\t\n\t _get(Object.getPrototypeOf(Component_BackButton.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_BackButton, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t this.initialiseListeners();\n\t }\n\t }, {\n\t key: \"initialiseListeners\",\n\t value: function initialiseListeners() {\n\t var _this = this;\n\t\n\t this.$el.click(function () {\n\t return _this.onElementClick();\n\t });\n\t }\n\t }, {\n\t key: \"onElementClick\",\n\t value: function onElementClick() {\n\t if (history.length === 1 && typeof this.options.backURL !== \"undefined\") {\n\t //Go to the passed in url for the componenet\n\t window.location = this.options.backURL;\n\t } else {\n\t //go back from the history\n\t history.back();\n\t }\n\t }\n\t }]);\n\t\n\t return Component_BackButton;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_BackButton;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar BackToTop = (function (_Abstract2) {\n\t _inherits(BackToTop, _Abstract2);\n\t\n\t function BackToTop(el, options) {\n\t _classCallCheck(this, BackToTop);\n\t\n\t _get(Object.getPrototypeOf(BackToTop.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t type: false,\n\t target_selector: false\n\t }, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(BackToTop, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.click(function (e) {\n\t return _this.clickBehaviourElementClicked(e);\n\t });\n\t }\n\t }, {\n\t key: \"clickBehaviourElementClicked\",\n\t value: function clickBehaviourElementClicked(e) {\n\t $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n\t return false;\n\t }\n\t }]);\n\t\n\t return BackToTop;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = BackToTop;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* \r\n\t * listings filter js component\r\n\t */\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_BackgroundImageRotator = (function (_Abstract2) {\n\t _inherits(Component_BackgroundImageRotator, _Abstract2);\n\t\n\t function Component_BackgroundImageRotator(el, options) {\n\t _classCallCheck(this, Component_BackgroundImageRotator);\n\t\n\t _get(Object.getPrototypeOf(Component_BackgroundImageRotator.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t duration: 3500, //Milliseconds\n\t fadeTime: 1500, //Milliseconds\n\t baseImagePath: \"\", //The folder the images live (useful if all of the images are in the same folder, saves on html markup),\n\t sameTimeFadeInOut: false // whether or not the previous image should fade out, if set to false, the next image to rotate in simply goes infront and fades in. otherwise both fade at the same time (if true)\n\t }, options), 'component');\n\t\n\t if (typeof this.options.images === \"undefined\" || !this.options.images || !this.options.images.length) {\n\t console.log(\"No images available to be used in background image rotator\");\n\t return;\n\t }\n\t\n\t this.$imageCtn1 = $(document.createElement(\"div\"));\n\t this.$imageCtn2 = $(document.createElement(\"div\"));\n\t\n\t this.$el.append(this.$imageCtn1);\n\t this.$el.append(this.$imageCtn2);\n\t\n\t this.imageSwapperTimer = null;\n\t\n\t this.imageIndex = -1;\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_BackgroundImageRotator, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t\n\t this.loadAndSwapNextImage();\n\t }\n\t }, {\n\t key: \"clearTimer\",\n\t value: function clearTimer() {\n\t if (!this.imageSwapperTimer) {\n\t return;\n\t }\n\t\n\t window.clearTimeout(this.imageSwapperTimer);\n\t this.imageSwapperTimer = null;\n\t }\n\t }, {\n\t key: \"resetTimer\",\n\t value: function resetTimer() {\n\t var _this = this;\n\t\n\t this.clearTimer();\n\t this.imageSwapperTimer = window.setTimeout(function () {\n\t return _this.loadAndSwapNextImage();\n\t }, this.options.duration);\n\t }\n\t }, {\n\t key: \"loadAndSwapNextImage\",\n\t value: function loadAndSwapNextImage() {\n\t console.log(\"loadAndSwapNextImage\");\n\t this.incrementImageIndex();\n\t var imageURL = this.getFullImageURLFromIndex(this.imageIndex);\n\t this.loadAndSwapImageFromURL(imageURL);\n\t }\n\t }, {\n\t key: \"incrementImageIndex\",\n\t value: function incrementImageIndex() {\n\t ++this.imageIndex;\n\t if (this.imageIndex >= this.options.images.length) {\n\t this.imageIndex = 0;\n\t }\n\t }\n\t }, {\n\t key: \"getFullImageURLFromIndex\",\n\t value: function getFullImageURLFromIndex(_index) {\n\t var image = this.options.images[_index];\n\t var imageSRC = this.options.baseImagePath + image;\n\t return imageSRC;\n\t }\n\t }, {\n\t key: \"loadAndSwapImageFromURL\",\n\t value: function loadAndSwapImageFromURL(_url) {\n\t var $elementWithCurrentShowingImage = null;\n\t var $elementToFadeIn = null;\n\t\n\t if (this.$imageCtn1.is(\":visible\")) {\n\t $elementWithCurrentShowingImage = this.$imageCtn1;\n\t $elementToFadeIn = this.$imageCtn2;\n\t } else {\n\t $elementWithCurrentShowingImage = this.$imageCtn2;\n\t $elementToFadeIn = this.$imageCtn1;\n\t }\n\t\n\t // $elementToFadeIn.css(\"z-index\",\"1\");\n\t // $elementWithCurrentShowingImage.css(\"z-index\",\"0\");\n\t\n\t $elementToFadeIn.next().after($elementToFadeIn);\n\t\n\t var context = this;\n\t $elementToFadeIn.data(\"responsive-image\", _url);\n\t $(\"body\").trigger(\"responsive-image\", { \"$responsiveImageTargets\": $elementToFadeIn, \"fromRotator\": true, \"onComplete\": function onComplete() {\n\t\n\t if (context.options.sameTimeFadeInOut) {\n\t $elementWithCurrentShowingImage.fadeOut();\n\t }\n\t\n\t $elementToFadeIn.fadeIn(context.options.fadeTime, function () {\n\t $elementWithCurrentShowingImage.removeData(\"responsive-image\");\n\t $elementWithCurrentShowingImage.css(\"background-image\", \"\");\n\t $elementWithCurrentShowingImage.hide();\n\t context.resetTimer();\n\t });\n\t } });\n\t\n\t // console.log(\"loadAndSwapImageFromURL\");\n\t // console.log(\"load image url: \" + _url);\n\t // this.$el.data(\"responsive-image\",_url);\n\t // $(\"body\").trigger(\"responsive-image\", {\"$responsiveImageTargets\":this.$el,\"fromRotator\":true});\n\t }\n\t }]);\n\t\n\t return Component_BackgroundImageRotator;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_BackgroundImageRotator;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* \r\n\t * listings filter js component\r\n\t */\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_BannerImageRotator = (function (_Abstract2) {\n\t _inherits(Component_BannerImageRotator, _Abstract2);\n\t\n\t function Component_BannerImageRotator(el, options) {\n\t _classCallCheck(this, Component_BannerImageRotator);\n\t\n\t _get(Object.getPrototypeOf(Component_BannerImageRotator.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t duration: \"\"\n\t }, options), 'component');\n\t\n\t this.imageItems = this.$el.find(\".m-hero__imgitem\");\n\t this.checkBackgroundImageInterval = \"\";\n\t if (this.imageItems.length === 0 || this.imageItems.length === 1) {\n\t console.log(\"No images available to be used in banner image rotator\");\n\t return;\n\t }\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_BannerImageRotator, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t var _this = this;\n\t this.checkBackgroundImageInterval = setInterval(function () {\n\t var checkBackgroundImageLoaded = true;\n\t for (var i = 0; i < _this.imageItems.length; i++) {\n\t if (!$(_this.imageItems[i]).hasClass(\"-loaded\")) {\n\t checkBackgroundImageLoaded = false;\n\t }\n\t }\n\t if (checkBackgroundImageLoaded) {\n\t _this.loadAndSwapNextImage();\n\t }\n\t }, 2000);\n\t }\n\t }, {\n\t key: \"loadAndSwapNextImage\",\n\t value: function loadAndSwapNextImage() {\n\t clearInterval(this.checkBackgroundImageInterval);\n\t var _this = this;\n\t var initialCount = 0;\n\t setInterval(function () {\n\t $(_this.imageItems[initialCount]).addClass(\"-hidden\").removeClass(\"-stacking\");\n\t ++initialCount;\n\t if (initialCount >= _this.imageItems.length) {\n\t initialCount = 0;\n\t }\n\t $(_this.imageItems[initialCount]).removeClass(\"-hidden\").addClass(\"-stacking\");\n\t }, this.options.duration);\n\t }\n\t }]);\n\t\n\t return Component_BannerImageRotator;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_BannerImageRotator;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_ClickBehaviour = (function (_Abstract2) {\n\t _inherits(Component_ClickBehaviour, _Abstract2);\n\t\n\t function Component_ClickBehaviour(el, options) {\n\t _classCallCheck(this, Component_ClickBehaviour);\n\t\n\t _get(Object.getPrototypeOf(Component_ClickBehaviour.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t type: false,\n\t target_selector: false\n\t }, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_ClickBehaviour, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.click(function (e) {\n\t return _this.clickBehaviourElementClicked(e);\n\t });\n\t }\n\t }, {\n\t key: \"clickBehaviourElementClicked\",\n\t value: function clickBehaviourElementClicked(e) {\n\t\n\t if (typeof this.options.desktop_only !== \"undefined\" && this.options.desktop_only) {\n\t var $desktopBreakpointElement = $(\"#bp-desktop\");\n\t if ($desktopBreakpointElement.length) {\n\t var desktopBreakpointSize = $desktopBreakpointElement.width();\n\t if ($(window).outerWidth() < desktopBreakpointSize) {\n\t //If its desktop only, and we're below desktop size, then dont do it\n\t\n\t return;\n\t }\n\t }\n\t }\n\t\n\t switch (this.options.type) {\n\t case \"set-mobile-sub-page\":\n\t {\n\t this.setMobileSubPageContent(e);\n\t break;\n\t }\n\t case \"close-mobile-sub-page\":\n\t {\n\t this.closeMobileSubPageContent(e);\n\t break;\n\t }\n\t case \"focus\":\n\t {\n\t this.onFocusOnElement();\n\t break;\n\t }\n\t\n\t case \"hide-element-and-empty-child-input\":\n\t {\n\t this.hideElementAndEmptyChildInput();\n\t break;\n\t }\n\t\n\t case \"hide-element-show-element\":\n\t {\n\t this.hideElementShowElement(e);\n\t break;\n\t }\n\t\n\t case \"toggle-class\":\n\t {\n\t this.toggleClass(e);\n\t break;\n\t }\n\t\n\t case \"show-element\":\n\t {\n\t this.showElement();\n\t break;\n\t }\n\t\n\t default:\n\t {\n\t console.log(\"No click behaviour case for : \" + this.options.type);\n\t return false;\n\t }\n\t }\n\t\n\t if (typeof this.options.scroll_to_new_clicked_element_position !== \"undefined\" && this.options.scroll_to_new_clicked_element_position) {\n\t // $(window).scrollTop($(e.currentTarget).offset().top);\n\t }\n\t\n\t $(\"body\").trigger(\"responsive-image-check\", {});\n\t }\n\t }, {\n\t key: \"onFocusOnElement\",\n\t value: function onFocusOnElement() {\n\t var $target = $(this.options.target_selector);\n\t if (!$target.length) {\n\t console.log(\"Target Selector element not found with '\" + this.options.target_selector + \"' selector\");\n\t return false;\n\t }\n\t window.setTimeout(function () {\n\t $target.focus();\n\t }, 20);\n\t }\n\t }, {\n\t key: \"showElement\",\n\t value: function showElement() {\n\t var $target = $(this.options.target_selector);\n\t if (!$target.length) {\n\t console.log(\"Target Selector element not found with '\" + this.options.target_selector + \"' selector\");\n\t return false;\n\t }\n\t\n\t $target.show();\n\t }\n\t }, {\n\t key: \"hideElementAndEmptyChildInput\",\n\t value: function hideElementAndEmptyChildInput() {\n\t var $target = $(this.options.target_selector);\n\t if (!$target.length) {\n\t console.log(\"Target Selector element not found with '\" + this.options.target_selector + \"' selector\");\n\t return false;\n\t }\n\t\n\t $($target).hide();\n\t $(\"input\", $target).val(\"\");\n\t }\n\t }, {\n\t key: \"toggleClass\",\n\t value: function toggleClass(_mouseEvent) {\n\t _mouseEvent.preventDefault();\n\t\n\t if (typeof this.options.element_target === \"undefined\") {\n\t console.log('toggle-class requires element_target to be set in the options');\n\t return;\n\t }\n\t\n\t if (typeof this.options.class_name === \"undefined\") {\n\t console.log('toggle-class requires class_name to be set in the options');\n\t return;\n\t }\n\t\n\t var $elementTarget = null;\n\t if (typeof this.options.closest_element !== \"undefined\" && this.options.closest_element) {\n\t $elementTarget = $(_mouseEvent.currentTarget).closest(this.options.element_target);\n\t } else {\n\t $elementTarget = $(this.options.element_target);\n\t }\n\t\n\t if (!$elementTarget.length) {\n\t console.log(\"No show target element found with '\" + this.options.element_target + \"' selector\");\n\t return;\n\t }\n\t\n\t var className = this.options.class_name;\n\t\n\t if ($elementTarget.hasClass(className)) {\n\t $elementTarget.removeClass(className);\n\t } else {\n\t $elementTarget.addClass(className);\n\t }\n\t }\n\t }, {\n\t key: \"hideElementShowElement\",\n\t value: function hideElementShowElement(_mouseEvent) {\n\t _mouseEvent.preventDefault();\n\t\n\t if (typeof this.options.hide_target === \"undefined\" || typeof this.options.show_target === \"undefined\") {\n\t console.log('hide-element-show-element requires hide_target and show_target to be set in the options');\n\t return;\n\t }\n\t\n\t var $hidetarget = $(this.options.hide_target);\n\t var $showTarget = $(this.options.show_target);\n\t\n\t if (!$hidetarget.length) {\n\t console.log(\"No hide target element found with '\" + this.options.hide_target + \"' selector\");\n\t return;\n\t }\n\t\n\t if (!$showTarget.length) {\n\t console.log(\"No show target element found with '\" + this.options.show_target + \"' selector\");\n\t return;\n\t }\n\t\n\t $hidetarget.addClass(\"-hide\");\n\t $showTarget.removeClass(\"-hide\");\n\t }\n\t }, {\n\t key: \"setMobileSubPageContent\",\n\t value: function setMobileSubPageContent(_mouseEvent) {\n\t var $desktopBreakpointElement = $(\"#bp-desktop\");\n\t if ($desktopBreakpointElement.length) {\n\t var desktopBreakpointSize = $desktopBreakpointElement.width();\n\t if ($(window).outerWidth() >= desktopBreakpointSize) {\n\t //If its desktop only, and we're below desktop size, then dont do it\n\t return;\n\t }\n\t }\n\t\n\t _mouseEvent.preventDefault();\n\t\n\t if (typeof this.options.element_target === \"undefined\") {\n\t console.log('toggle-class requires element_target to be set in the options');\n\t return;\n\t }\n\t\n\t var $elementTarget = null;\n\t if (typeof this.options.closest_element !== \"undefined\" && this.options.closest_element) {\n\t $elementTarget = $(_mouseEvent.currentTarget).closest(this.options.element_target);\n\t } else {\n\t $elementTarget = $(\".c-main-content\").find(this.options.element_target);\n\t }\n\t\n\t if (!$elementTarget.length) {\n\t console.log(\"No show target element found with '\" + this.options.element_target + \"' selector\");\n\t return;\n\t }\n\t\n\t var currentWindowScroll = $(window).scrollTop();\n\t $(window).scrollTop(0);\n\t\n\t $(\".c-mobile-sub-page .content\").empty();\n\t //Save the scroll position, so when we close the 'popup' it goes back to the original position\n\t $(\".c-mobile-sub-page__header-back-btn\").attr('data-original-scroll-top', currentWindowScroll);\n\t $(\"body\").addClass(\"-mobile-sub-page-active\");\n\t\n\t var deepCopyClone = true;\n\t\n\t $(\".c-mobile-sub-page .content\").html($elementTarget.clone(deepCopyClone, deepCopyClone));\n\t }\n\t }, {\n\t key: \"closeMobileSubPageContent\",\n\t value: function closeMobileSubPageContent(_mouseEvent) {\n\t var $desktopBreakpointElement = $(\"#bp-desktop\");\n\t if ($desktopBreakpointElement.length) {\n\t var desktopBreakpointSize = $desktopBreakpointElement.width();\n\t if ($(window).outerWidth() >= desktopBreakpointSize) {\n\t _mouseEvent.preventDefault();\n\t //If its desktop only, and we're below desktop size, then dont do it\n\t return;\n\t }\n\t }\n\t var oldWidowScrollPosition = $(\".c-mobile-sub-page__header-back-btn\").attr('data-original-scroll-top');\n\t $(\"body\").removeClass(\"-mobile-sub-page-active\");\n\t $(window).scrollTop(oldWidowScrollPosition);\n\t }\n\t }]);\n\t\n\t return Component_ClickBehaviour;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_ClickBehaviour;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_CulturePopUp = (function (_Abstract2) {\n\t _inherits(Component_CulturePopUp, _Abstract2);\n\t\n\t function Component_CulturePopUp(el, options) {\n\t _classCallCheck(this, Component_CulturePopUp);\n\t\n\t _get(Object.getPrototypeOf(Component_CulturePopUp.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'module');\n\t this.initModule();\n\t }\n\t\n\t _createClass(Component_CulturePopUp, [{\n\t key: \"initModule\",\n\t value: function initModule() {\n\t this.initListeners();\n\t }\n\t }, {\n\t key: \"initListeners\",\n\t value: function initListeners() {\n\t var _this = this;\n\t if (_this.getCookie(\"culture\") === \"\") {\n\t setTimeout(function () {\n\t $(_this.el).removeClass(\"c-modal__hidden\");\n\t }, _this.options.popupDelayTime);\n\t }\n\t\n\t //--Cancel Button Clicked\n\t function onCancelPopup() {\n\t $(_this.el).fadeOut(\"fast\");\n\t _this.setCookie(\"culture\", \"true\", 100000);\n\t }\n\t\n\t $(\".c-modal--culture .-icon_close, .c-modal--culture .c-btn:not('.-active'),.c-modal--culture .c-modal__desc a\").on(\"click\", onCancelPopup);\n\t }\n\t }]);\n\t\n\t return Component_CulturePopUp;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_CulturePopUp;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_FullScreenHtml5Video = (function (_Abstract2) {\n\t _inherits(Component_FullScreenHtml5Video, _Abstract2);\n\t\n\t function Component_FullScreenHtml5Video(el, options) {\n\t _classCallCheck(this, Component_FullScreenHtml5Video);\n\t\n\t _get(Object.getPrototypeOf(Component_FullScreenHtml5Video.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_FullScreenHtml5Video, [{\n\t key: \"initialise\",\n\t value: function initialise() {}\n\t }]);\n\t\n\t return Component_FullScreenHtml5Video;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_FullScreenHtml5Video;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_HeaderDesktop = (function (_Abstract2) {\n\t _inherits(Component_HeaderDesktop, _Abstract2);\n\t\n\t function Component_HeaderDesktop(el, options) {\n\t _classCallCheck(this, Component_HeaderDesktop);\n\t\n\t _get(Object.getPrototypeOf(Component_HeaderDesktop.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_HeaderDesktop, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t // this.$el.find(\".b-header__top-nav-list--products > a\").click((e) => this.onProductsClicked(e));\n\t // this.$el.find(\".b-header__top-nav-list--learn > a\").click((e) => this.onLearnClicked(e));\n\t // this.$el.find(\".b-header__top-nav-list--contact > a\").click((e) => this.onContactClicked(e));\n\t this.$el.find(\".b-header__top-nav-list--products > a\").mouseenter(function (e) {\n\t return _this.onProductsHovered(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--learn > a\").mouseenter(function (e) {\n\t return _this.onLearnHovered(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--contact > a\").mouseenter(function (e) {\n\t return _this.onContactHovered(e);\n\t });\n\t\n\t // this.$el.find(\".b-header__top-nav-list--products\").mouseleave((e) => this.onHideProductsHovered(e));\n\t // this.$el.find(\".b-header__top-nav-list--learn\").mouseleave((e) => this.onHideLearnHovered(e));\n\t // this.$el.find(\".b-header__top-nav-list--contact\").mouseleave((e) => this.onHideContactHovered(e));\n\t\n\t // this.$el.find(\".b-header__our-products-desktop-top-navigation\").mouseleave((e) => this.onTopNavigationMouseLeave(e));\n\t\n\t this.$el.find(\".b-header__top-nav-list--products\").mouseleave(function (e) {\n\t return _this.onProductMouseLeave(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--learn\").mouseleave(function (e) {\n\t return _this.onLearnMouseLeave(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--contact\").mouseleave(function (e) {\n\t return _this.onContactMouseLeave(e);\n\t });\n\t\n\t this.$el.find(\".b-header__top-nav-list--search\").click(function (e) {\n\t return _this.onSearchIconClicked(e);\n\t });\n\t this.$el.find(\".c-search-input form\").submit(function (e) {\n\t return _this.onSearchFormSubmitted(e);\n\t });\n\t\n\t this.$el.find(\".b-header-content__dropdown\").click(function (e) {\n\t return _this.onCountryDropdownClicked(e);\n\t });\n\t this.$el.find(\".b-header-content__dropdown-menu-list-item\").click(function (e) {\n\t return _this.onCountryDropdownListClicked(e);\n\t });\n\t\n\t this.$el.find(\".b-header__our-products-desktop-left-navigation > a\").click(function (e) {\n\t return _this.onProductsDesktopLeftNavigationClicked(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--bg\").click(function (e) {\n\t return _this.onProductsDesktopLeftNavigationClicked(e);\n\t });\n\t\n\t $(\".b-header .c-search-input--input\").keyup(function (e) {\n\t return _this.onSearchInputKeyUp(e);\n\t });\n\t\n\t var userAgent = navigator.userAgent.toLowerCase();\n\t var isTablet = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(userAgent);\n\t if (isTablet) {\n\t if (window.matchMedia('(max-device-width : 1366px) and (orientation : landscape)').matches) {\n\t this.$el.find(\".b-header__top-nav-list--products > a\").click(function (e) {\n\t return _this.onProductsClicked(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--learn > a\").click(function (e) {\n\t return _this.onLearnClicked(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list--contact > a\").click(function (e) {\n\t return _this.onContactClicked(e);\n\t });\n\t } else {\n\t this.loadWindowOnResize();\n\t }\n\t }\n\t\n\t this.searchInputPushDownOnSearchResultsPage();\n\t $('body').click(function (e) {\n\t return _this.bodyClicked(e);\n\t });\n\t }\n\t }, {\n\t key: \"bodyClicked\",\n\t value: function bodyClicked(_event) {\n\t if (!$('.b-header-content__dropdown-menu-wrapper').hasClass('-hidden')) {\n\t $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden');\n\t $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen');\n\t }\n\t }\n\t }, {\n\t key: \"onCountryDropdownClicked\",\n\t value: function onCountryDropdownClicked(_event) {\n\t _event.stopPropagation();\n\t if ($('.b-header-content__dropdown-menu-wrapper').hasClass('-hidden')) {\n\t $('.b-header-content__dropdown-wrapper').addClass('-dropdownopen');\n\t $('.b-header-content__dropdown-menu-wrapper').removeClass('-hidden');\n\t } else {\n\t $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen');\n\t $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden');\n\t }\n\t }\n\t }, {\n\t key: \"onCountryDropdownListClicked\",\n\t value: function onCountryDropdownListClicked(_event) {\n\t _event.stopPropagation();\n\t $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden');\n\t $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen');\n\t }\n\t }, {\n\t key: \"onProductsClicked\",\n\t value: function onProductsClicked(_mouseEvent) {\n\t _mouseEvent.preventDefault();\n\t var $productsNavElement = this.$el.find(\".b-header__top-nav-list--products\");\n\t if ($productsNavElement.hasClass(\"-expanded\")) {\n\t this.hideProductsItems();\n\t } else {\n\t // if($(\"html\").hasClass(\"no-touch\"))\n\t // {\n\t // //Will roll over instead\n\t // return;\n\t // }\n\t this.showProductsItems();\n\t }\n\t // var $productsSideNavElem = $(\".sub-nav-items.-products\");\n\t // if($productsSideNavElem.hasClass(\"-hide\")) {\n\t // $productsSideNavElem.removeClass(\"-hide\");\n\t // } else {\n\t // $productsSideNavElem.addClass(\"-hide\");\n\t // }\n\t }\n\t }, {\n\t key: \"onLearnClicked\",\n\t value: function onLearnClicked(_mouseEvent) {\n\t _mouseEvent.preventDefault();\n\t var $learnNavElement = this.$el.find(\".b-header__top-nav-list--learn\");\n\t if ($learnNavElement.hasClass(\"-expanded\")) {\n\t this.hideLearnItems();\n\t } else {\n\t // if($(\"html\").hasClass(\"no-touch\"))\n\t // {\n\t // //Will roll over instead\n\t // return;\n\t // }\n\t this.showLearnItems();\n\t }\n\t // var $learnSideNavElem = $(\".sub-nav-items.-learn\");\n\t // if($learnSideNavElem.hasClass(\"-hide\")) {\n\t // $learnSideNavElem.removeClass(\"-hide\");\n\t // } else {\n\t // $learnSideNavElem.addClass(\"-hide\");\n\t // }\n\t }\n\t }, {\n\t key: \"onContactClicked\",\n\t value: function onContactClicked(_mouseEvent) {\n\t _mouseEvent.preventDefault();\n\t var $productsNavElement = this.$el.find(\".b-header__top-nav-list--contact\");\n\t if ($productsNavElement.hasClass(\"-expanded\")) {\n\t this.hideContactItems();\n\t } else {\n\t // if($(\"html\").hasClass(\"no-touch\"))\n\t // {\n\t // //Will roll over instead\n\t // return;\n\t // }\n\t this.showContactItems();\n\t }\n\t }\n\t }, {\n\t key: \"onSearchInputKeyUp\",\n\t value: function onSearchInputKeyUp(_keyEvent) {\n\t switch (_keyEvent.keyCode) {\n\t case 13:\n\t //enter\n\t {\n\t if (!window.location.origin) {\n\t window.location.origin = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n\t }\n\t\n\t // this.onEnterPressed(_keyEvent);\n\t var searchTerm = encodeURIComponent(_keyEvent.target.value);\n\t var navigationLocation = window.location.origin + \"/search?searchtext=\" + searchTerm + \"&searchmode=anyword\";\n\t window.location.href = navigationLocation;\n\t break;\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"onProductsHovered\",\n\t value: function onProductsHovered(_mouseEvent) {\n\t this.showProductsItems();\n\t this.onSubNavSearchItemClosed();\n\t }\n\t }, {\n\t key: \"onLearnHovered\",\n\t value: function onLearnHovered(_mouseEvent) {\n\t this.showLearnItems();\n\t this.onSubNavSearchItemClosed();\n\t }\n\t }, {\n\t key: \"onContactHovered\",\n\t value: function onContactHovered(_mouseEvent) {\n\t this.showContactItems();\n\t this.onSubNavSearchItemClosed();\n\t }\n\t }, {\n\t key: \"onHideProductsHovered\",\n\t value: function onHideProductsHovered(_mouseEvent) {\n\t this.hideProductsItems();\n\t }\n\t }, {\n\t key: \"onHideLearnHovered\",\n\t value: function onHideLearnHovered(_mouseEvent) {\n\t this.hideLearnItems();\n\t }\n\t }, {\n\t key: \"onHideContactHovered\",\n\t value: function onHideContactHovered(_mouseEvent) {\n\t this.hideContactItems();\n\t }\n\t }, {\n\t key: \"onSearchIconClicked\",\n\t value: function onSearchIconClicked(_mouseEvent) {\n\t var $topNavListSearch = this.$el.find(\".b-header__top-nav-list--search\");\n\t\n\t if ($topNavListSearch.hasClass(\"-expanded\")) {\n\t //Close it\n\t $topNavListSearch.removeClass(\"-expanded\");\n\t this.$el.find(\".c-search-input\").addClass(\"-hide\");\n\t this.onSubNavItemClosed();\n\t } else {\n\t\n\t //Open it\n\t this.closeAllTopNavItems();\n\t $topNavListSearch.addClass(\"-expanded\");\n\t this.showSubNavItem(\".c-search-input\");\n\t\n\t this.$el.find(\".c-search-input--input\").focus();\n\t }\n\t }\n\t }, {\n\t key: \"onProductMouseLeave\",\n\t value: function onProductMouseLeave(_mouseEvent) {\n\t\n\t if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\n\t return;\n\t }\n\t\n\t this.hideProductsItems();\n\t }\n\t }, {\n\t key: \"onLearnMouseLeave\",\n\t value: function onLearnMouseLeave(_mouseEvent) {\n\t\n\t if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\n\t return;\n\t }\n\t\n\t this.hideLearnItems();\n\t }\n\t }, {\n\t key: \"onContactMouseLeave\",\n\t value: function onContactMouseLeave(_mouseEvent) {\n\t\n\t if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\n\t return;\n\t }\n\t\n\t this.hideContactItems();\n\t }\n\t }, {\n\t key: \"showLearnItems\",\n\t value: function showLearnItems() {\n\t this.closeAllTopNavItems();\n\t this.$el.find(\".b-header__top-nav-list--learn\").addClass(\"-expanded\");\n\t this.showSubNavItem(\".b-header__top-nav-list--learn-items\");\n\t }\n\t }, {\n\t key: \"hideLearnItems\",\n\t value: function hideLearnItems() {\n\t this.$el.find(\".b-header__top-nav-list--learn\").removeClass(\"-expanded\");\n\t this.$el.find(\".b-header__top-nav-list--learn-items\").addClass(\"-hide\");\n\t this.onSubNavItemClosed();\n\t }\n\t }, {\n\t key: \"showProductsItems\",\n\t value: function showProductsItems() {\n\t this.closeAllTopNavItems();\n\t this.$el.find(\".b-header__top-nav-list--products\").addClass(\"-expanded\");\n\t this.showSubNavItem(\".b-header__top-nav-list--products-items\");\n\t }\n\t }, {\n\t key: \"hideProductsItems\",\n\t value: function hideProductsItems() {\n\t this.$el.find(\".b-header__top-nav-list--products\").removeClass(\"-expanded\");\n\t this.$el.find(\".b-header__top-nav-list--products-items\").addClass(\"-hide\");\n\t this.onSubNavItemClosed();\n\t }\n\t }, {\n\t key: \"showContactItems\",\n\t value: function showContactItems() {\n\t this.closeAllTopNavItems();\n\t this.$el.find(\".b-header__top-nav-list--contact\").addClass(\"-expanded\");\n\t this.showSubNavItem(\".b-header__top-nav-list--contact-items\");\n\t }\n\t }, {\n\t key: \"hideContactItems\",\n\t value: function hideContactItems() {\n\t this.$el.find(\".b-header__top-nav-list--contact\").removeClass(\"-expanded\");\n\t this.$el.find(\".b-header__top-nav-list--contact-items\").addClass(\"-hide\");\n\t this.onSubNavItemClosed();\n\t }\n\t }, {\n\t key: \"closeAllTopNavItems\",\n\t value: function closeAllTopNavItems() {\n\t this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\n\t }\n\t }, {\n\t key: \"showSubNavItem\",\n\t value: function showSubNavItem(_selector) {\n\t var $subNavItem = $(_selector);\n\t if (!$subNavItem.length) {\n\t console.log(\"sub nav item not found with \" + _selector + \" selector\");\n\t return;\n\t }\n\t\n\t this.onSubNavItemOpened();\n\t this.$el.find(\".sub-nav-items > *\").addClass(\"-hide\");\n\t $subNavItem.removeClass(\"-hide\");\n\t }\n\t }, {\n\t key: \"onSubNavItemOpened\",\n\t value: function onSubNavItemOpened() {\n\t this.$el.find(\".sub-nav-items\").removeClass(\"-hide\");\n\t }\n\t }, {\n\t key: \"onSubNavItemClosed\",\n\t value: function onSubNavItemClosed() {\n\t this.$el.find(\".sub-nav-items\").addClass(\"-hide\");\n\t this.$el.find(\".c-search-input__results\").addClass(\"-hide\");\n\t //this.$el.find(\".c-search-input--input\").val(\"\");\n\t }\n\t }, {\n\t key: \"onSubNavSearchItemClosed\",\n\t value: function onSubNavSearchItemClosed() {\n\t this.$el.find(\".c-search-input\").addClass(\"-hide\");\n\t //this.$el.find(\".c-search-input--input\").val(\"\");\n\t }\n\t }, {\n\t key: \"onSearchInputFocused\",\n\t value: function onSearchInputFocused(_mouseEvent) {\n\t $(window).scrollTop(0);\n\t this.$el.addClass(\"-search-input-focused\");\n\t }\n\t }, {\n\t key: \"onSearchInputFocusOut\",\n\t value: function onSearchInputFocusOut(_mouseEvent) {\n\t $(window).scrollTop(0);\n\t this.$el.removeClass(\"-search-input-focused\");\n\t }\n\t }, {\n\t key: \"onSearchFormSubmitted\",\n\t value: function onSearchFormSubmitted(_formSubmitEvent) {\n\t _formSubmitEvent.preventDefault();\n\t _formSubmitEvent.stopPropagation();\n\t\n\t this.$el.find(\".c-search-input__results\").removeClass(\"-hide\");\n\t }\n\t }, {\n\t key: \"onProductsDesktopLeftNavigationClicked\",\n\t value: function onProductsDesktopLeftNavigationClicked(_mouseEvent) {\n\t var $leftNavigationElement = this.$el.find(\".b-header__our-products-desktop-left-navigation\");\n\t if (!$leftNavigationElement.length) {\n\t console.log(\"Could not find Left Navigation\");\n\t return;\n\t }\n\t\n\t if ($leftNavigationElement.hasClass(\"-expanded\")) {\n\t $leftNavigationElement.removeClass(\"-expanded\");\n\t // $(\"body\").removeAttr(\"style\");\n\t } else {\n\t $leftNavigationElement.addClass(\"-expanded\");\n\t // $(\"body\").css(\"overflow\",\"hidden\");\n\t }\n\t }\n\t }, {\n\t key: \"onDesktopOnlySearchClicked\",\n\t value: function onDesktopOnlySearchClicked(_mouseEvent) {\n\t console.log(\"onDesktopOnlySearchClicked\");\n\t if (this.$el.hasClass(\"-child-nav-li-expanded\")) {\n\t this.$el.find(\".c-search-input.-desktop-only\").removeClass(\"-hide\");\n\t }\n\t }\n\t }, {\n\t key: \"loadWindowOnResize\",\n\t value: function loadWindowOnResize() {\n\t $(window).resize(function (event) {\n\t console.log($('Resizd'));\n\t this.location.reload();\n\t });\n\t }\n\t }, {\n\t key: \"searchInputPushDownOnSearchResultsPage\",\n\t value: function searchInputPushDownOnSearchResultsPage() {\n\t if ($('.content-margin').hasClass('furnware-search-results')) {\n\t $('.b-header__our-products-desktop-top-navigation').addClass('-push-search-results');\n\t } else {\n\t $('.b-header__our-products-desktop-top-navigation').removeClass('-push-search-results');\n\t }\n\t }\n\t }]);\n\t\n\t return Component_HeaderDesktop;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_HeaderDesktop;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_HeaderMobile = (function (_Abstract2) {\n\t _inherits(Component_HeaderMobile, _Abstract2);\n\t\n\t function Component_HeaderMobile(el, options) {\n\t _classCallCheck(this, Component_HeaderMobile);\n\t\n\t _get(Object.getPrototypeOf(Component_HeaderMobile.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_HeaderMobile, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.find(\".c-header__mobile-close-sub-nav\").click(function (e) {\n\t return _this.onMobileCloseSubNav(e);\n\t });\n\t this.$el.find(\".c-header__mobile-menu-toggle\").click(function (e) {\n\t return _this.onMobileMenuToggled(e);\n\t });\n\t this.$el.find(\".b-header__top-nav-list > li > a\").click(function (e) {\n\t return _this.onListItemAClicked(e);\n\t });\n\t this.$el.find(\".c-search-input .c-search-input--input\").focus(function (e) {\n\t return _this.onSearchInputFocused(e);\n\t });\n\t this.$el.find(\".c-search-input form\").submit(function (e) {\n\t return _this.onSearchFormSubmitted(e);\n\t });\n\t\n\t $(window).resize(function (event) {\n\t if ($(this).width() < 350) {\n\t $('.b-header__top-nav-list.-countryselection').addClass('-pt17');\n\t } else {\n\t if ($('.b-header__top-nav-list.-countryselection').hasClass('-pt17')) {\n\t $('.b-header__top-nav-list.-countryselection').removeClass('-pt17');\n\t }\n\t }\n\t });\n\t }\n\t }, {\n\t key: \"onMobileCloseSubNav\",\n\t value: function onMobileCloseSubNav(_mouseEvent) {\n\t this.$el.find(\".c-search-input--input\").val(\"\");\n\t this.$el.removeClass(\"-search-input-focused\");\n\t this.$el.removeClass(\"-has-search-results\");\n\t this.$el.removeClass(\"-child-nav-li-expanded\");\n\t this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\n\t _mouseEvent.preventDefault();\n\t }\n\t }, {\n\t key: \"onMobileMenuToggled\",\n\t value: function onMobileMenuToggled(_mouseEvent) {\n\t var $clickedTarget = $(_mouseEvent.currentTarget);\n\t\n\t if (this.$el.hasClass(\"-expanded\")) {\n\t this.$el.removeClass(\"-expanded\");\n\t this.$el.removeClass(\"-search-input-focused\");\n\t } else {\n\t this.$el.addClass(\"-expanded\");\n\t }\n\t\n\t _mouseEvent.preventDefault();\n\t }\n\t }, {\n\t key: \"onListItemAClicked\",\n\t value: function onListItemAClicked(_mouseEvent, _bRemoveClassEnabled) {\n\t if (typeof _bRemoveClassEnabled === \"undefined\") {\n\t _bRemoveClassEnabled = true;\n\t }\n\t\n\t var $currentTarget = $(_mouseEvent.currentTarget);\n\t var $currentTargetParent = $currentTarget.parent();\n\t var $currentTargetUL = $currentTargetParent.find(\"> ul\");\n\t if (!$currentTargetUL.length) {\n\t return;\n\t }\n\t _mouseEvent.preventDefault();\n\t var currentTargetIsExpanded = _bRemoveClassEnabled ? $currentTargetParent.hasClass(\"-expanded\") : false;\n\t this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\n\t\n\t if (currentTargetIsExpanded) {\n\t if (_bRemoveClassEnabled) {\n\t $currentTargetParent.removeClass(\"-expanded\");\n\t }\n\t } else {\n\t $currentTargetParent.addClass(\"-expanded\");\n\t }\n\t\n\t if (this.$el.find(\".b-header__top-nav-list > li.-expanded\").length) {\n\t this.$el.addClass(\"-child-nav-li-expanded\");\n\t } else {\n\t if (_bRemoveClassEnabled) {\n\t this.$el.removeClass(\"-child-nav-li-expanded\");\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"onMouseLeaveHeader\",\n\t value: function onMouseLeaveHeader(_mouseEvent) {\n\t this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\n\t this.$el.removeClass(\"-child-nav-li-expanded\");\n\t }\n\t }, {\n\t key: \"onSearchInputFocused\",\n\t value: function onSearchInputFocused(_mouseEvent) {\n\t $(window).scrollTop(0);\n\t this.$el.addClass(\"-search-input-focused\");\n\t }\n\t }, {\n\t key: \"onSearchFormSubmitted\",\n\t value: function onSearchFormSubmitted(_formSubmitEvent) {\n\t _formSubmitEvent.preventDefault();\n\t _formSubmitEvent.stopPropagation();\n\t\n\t this.$el.addClass('-has-search-results');\n\t }\n\t }]);\n\t\n\t return Component_HeaderMobile;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_HeaderMobile;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_HoverBehaviour = (function (_Abstract2) {\n\t _inherits(Component_HoverBehaviour, _Abstract2);\n\t\n\t function Component_HoverBehaviour(el, options) {\n\t _classCallCheck(this, Component_HoverBehaviour);\n\t\n\t _get(Object.getPrototypeOf(Component_HoverBehaviour.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t type: false,\n\t target_selector: false\n\t }, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_HoverBehaviour, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.hover(function (e) {\n\t return _this.onElementHovered(e);\n\t });\n\t }\n\t }, {\n\t key: \"onElementHovered\",\n\t value: function onElementHovered(e) {\n\t switch (this.options.type) {\n\t case \"focus\":\n\t {\n\t this.onFocusOnElement();\n\t break;\n\t }\n\t\n\t case \"add-class-to-other-element\":\n\t {\n\t this.onAddClassToOtherElement();\n\t break;\n\t }\n\t\n\t default:\n\t {\n\t return false;\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"onAddClassToOtherElement\",\n\t value: function onAddClassToOtherElement() {}\n\t }]);\n\t\n\t return Component_HoverBehaviour;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_HoverBehaviour;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_MoveOnScroll = (function (_Abstract2) {\n\t _inherits(Component_MoveOnScroll, _Abstract2);\n\t\n\t function Component_MoveOnScroll(el, options) {\n\t _classCallCheck(this, Component_MoveOnScroll);\n\t\n\t _get(Object.getPrototypeOf(Component_MoveOnScroll.prototype), \"constructor\", this).call(this, el, $.extend(true, { \"offset_animation_start_pixels\": 0, \"reverse_movement\": false, \"offset_animation_by_element_top_offset\": false }, options), 'component');\n\t\n\t this.BEGIN_ON_SCREEN_PERCENTAGE = typeof this.options.begin_scroll_percentage === \"undefined\" ? 5 : this.options.begin_scroll_percentage;\n\t this.END_ON_SCREEN_PERCENTAGE = typeof this.options.end_scroll_percentage === \"undefined\" ? 80 : this.options.end_scroll_percentage;;\n\t this.$window = $(window);\n\t this.$parent = this.$el.parent();\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_MoveOnScroll, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t this.setPositionBasedOnScroll();\n\t }\n\t }, {\n\t key: \"setPositionBasedOnScroll\",\n\t value: function setPositionBasedOnScroll() {\n\t var _this = this;\n\t\n\t var percentageOfMovement = this.getPercentageOfMovement();\n\t var oneScalePercentageOfMovement = percentageOfMovement / 100;\n\t\n\t if (this.options.reverse_movement) {\n\t oneScalePercentageOfMovement = 1 - oneScalePercentageOfMovement;\n\t }\n\t\n\t var left = this.options.left * oneScalePercentageOfMovement;\n\t var top = this.options.top * oneScalePercentageOfMovement;\n\t this.$el.css(\"transform\", \"translate3d(\" + left + \"rem,\" + top + \"rem,0)\");\n\t\n\t window.requestAnimationFrame(function () {\n\t return _this.setPositionBasedOnScroll();\n\t });\n\t }\n\t }, {\n\t key: \"getPercentageOfMovement\",\n\t value: function getPercentageOfMovement() {\n\t var topOfParent = this.$parent.offset().top;\n\t var windowHeight = this.$window.height();\n\t var scrollTopPosition = this.$window.scrollTop();\n\t\n\t if (this.options.offset_animation_start_pixels) {\n\t scrollTopPosition -= this.options.offset_animation_start_pixels;\n\t }\n\t\n\t if (this.options.offset_animation_by_element_top_offset) {\n\t scrollTopPosition -= this.$window.height() - topOfParent;\n\t }\n\t\n\t var scrollTopPlusWindowHeight = scrollTopPosition + windowHeight;\n\t\n\t var pixelsOfElementOnScreen = scrollTopPlusWindowHeight - topOfParent;\n\t var percentageOnScreen = pixelsOfElementOnScreen / windowHeight;\n\t if (percentageOnScreen < 0) {\n\t percentageOnScreen = 0;\n\t } else if (percentageOnScreen > 1) {\n\t percentageOnScreen = 1;\n\t }\n\t\n\t return percentageOnScreen * 100;\n\t }\n\t }]);\n\t\n\t return Component_MoveOnScroll;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_MoveOnScroll;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar _libUtilsMath = __webpack_require__(35);\n\t\n\tvar _libUtilsMath2 = _interopRequireDefault(_libUtilsMath);\n\t\n\tvar Component_RotateOnScroll = (function (_Abstract2) {\n\t _inherits(Component_RotateOnScroll, _Abstract2);\n\t\n\t function Component_RotateOnScroll(el, options) {\n\t _classCallCheck(this, Component_RotateOnScroll);\n\t\n\t var defaultOptions = {\n\t //Note the radius is based on the screen width\n\t //so 1920 = 1 scale\n\t //so if a radius of 400 is passed in, then at 1920 browser width it'll be 400 radius\n\t //If at browser width of 960 then it'll be 200 radius\n\t \"radius\": null,\n\t \"rotation_times_per_screen_height\": 1, //rotation_times_per_screen_height means that it'll rotate the element once fully based on a scroll of a whole page if set to 1\n\t \"begin_rotation_around_point_degrees\": 0,\n\t \"initial_image_rotation_degrees\": 0,\n\t \"radius_percentage_of_parent_width\": false //set a percentage value to determine the radius based on the parent (width /2)\n\t };\n\t\n\t _get(Object.getPrototypeOf(Component_RotateOnScroll.prototype), \"constructor\", this).call(this, el, $.extend(true, defaultOptions, options), 'component');\n\t\n\t if (this.options.radius === null && !this.options.radius_percentage_of_parent_width) {\n\t console.log(\"A radius must be passed in as an option for RotateOnScroll, or radius_percentage_of_parent_width set\");\n\t return;\n\t }\n\t\n\t this.$parent = this.$el.parent();\n\t this.$window = $(window);\n\t\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_RotateOnScroll, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t this.setPositionBasedOnScroll();\n\t }\n\t }, {\n\t key: \"setPositionBasedOnScroll\",\n\t value: function setPositionBasedOnScroll() {\n\t var _this = this;\n\t\n\t if (this.options.radius_percentage_of_parent_width) {\n\t var radius = this.$parent.width() * 0.5 * (this.options.radius_percentage_of_parent_width * 0.01);\n\t } else {\n\t var vw = $(window).width() / 1920;\n\t var radius = this.options.radius * vw;\n\t }\n\t\n\t var numberOfWindowHeightScrolled = this.getNumberOfWindowHeightScrolled();\n\t var rotation = 360 * numberOfWindowHeightScrolled * this.options.rotation_times_per_screen_height + this.options.begin_rotation_around_point_degrees;\n\t var numberOf360s = Math.floor(rotation / 360);\n\t rotation -= 360 * numberOf360s;\n\t var x = _libUtilsMath2[\"default\"].polarToCartesianX(radius, rotation, true);\n\t var y = _libUtilsMath2[\"default\"].polarToCartesianY(radius, rotation, true);\n\t this.$el.css(\"transform\", \"translate3d(\" + x + \"px,\" + y + \"px,0) rotate(\" + (rotation + this.options.initial_image_rotation_degrees) + \"deg)\");\n\t\n\t window.requestAnimationFrame(function () {\n\t return _this.setPositionBasedOnScroll();\n\t });\n\t }\n\t }, {\n\t key: \"getNumberOfWindowHeightScrolled\",\n\t value: function getNumberOfWindowHeightScrolled() {\n\t var windowHeight = this.$window.height();\n\t var scrollTopPosition = this.$window.scrollTop();\n\t return scrollTopPosition / windowHeight;\n\t }\n\t }]);\n\t\n\t return Component_RotateOnScroll;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_RotateOnScroll;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\t//Created by Matthew van der Haas (matt@vdhdesign.co.nz)\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar UtilsMath = (function () {\n\t function UtilsMath() {\n\t _classCallCheck(this, UtilsMath);\n\t }\n\t\n\t _createClass(UtilsMath, [{\n\t key: \"isPointWithinBounds\",\n\t value: function isPointWithinBounds(_pointX, _pointY, _boundsX, _boundsY, _width, _height) {\n\t return _pointX >= _boundsX && _pointX <= _boundsX + _width && _pointY >= _boundsY && _pointY <= _boundsY + _height;\n\t }\n\t }, {\n\t key: \"getDistanceSquaredBetween2dPoints\",\n\t value: function getDistanceSquaredBetween2dPoints(_fX0, _fY0, _fX1, _fY1) {\n\t var fResultX = Math.pow(_fX1 - _fX0, 2.0);\n\t var fResultY = Math.pow(_fY1 - _fY0, 2.0);\n\t var fResult = fResultX + fResultY;\n\t return fResult;\n\t }\n\t }, {\n\t key: \"getDistanceBetween2dPoints\",\n\t value: function getDistanceBetween2dPoints(_point1, _point2) {\n\t var fResultX = Math.pow(_point2.x - _point1.x, 2.0);\n\t var fResultY = Math.pow(_point2.y - _point1.y, 2.0);\n\t var fResult = Math.sqrt(fResultX + fResultY);\n\t return fResult;\n\t }\n\t }, {\n\t key: \"polarToCartesianX\",\n\t value: function polarToCartesianX(_fPolarRadius, _fPolarAngle) {\n\t var _bInDegrees = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t if (_bInDegrees) {\n\t _fPolarAngle = this.degreesToRadians(_fPolarAngle);\n\t }\n\t\n\t var fCartesianX = _fPolarRadius * Math.cos(_fPolarAngle);\n\t return fCartesianX;\n\t }\n\t }, {\n\t key: \"polarToCartesianY\",\n\t value: function polarToCartesianY(_fPolarRadius, _fPolarAngle) {\n\t var _bInDegrees = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t if (_bInDegrees) {\n\t _fPolarAngle = this.degreesToRadians(_fPolarAngle);\n\t }\n\t\n\t var fCartesianY = _fPolarRadius * Math.sin(_fPolarAngle);\n\t return fCartesianY;\n\t }\n\t }, {\n\t key: \"cartesianToPolarAngle\",\n\t value: function cartesianToPolarAngle(_fCartesianX, _fCartesianY) {\n\t var _bInDegrees = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t var polarAngle = Math.atan(_fCartesianY / _fCartesianX);\n\t\n\t polarAngle += this.returnRadianValueToAdd(_fCartesianX, _fCartesianY);\n\t\n\t if (_bInDegrees) {\n\t polarAngle = this.radianToDegrees(polarAngle);\n\t }\n\t return polarAngle;\n\t }\n\t }, {\n\t key: \"getPerpendicularCartesianX\",\n\t value: function getPerpendicularCartesianX(_fPolarRadius, _fPolarAngle, _bInDegrees) {\n\t //todo fix for radians\n\t if (_bInDegrees) {\n\t _fPolarAngle -= 90;\n\t\n\t if (_fPolarAngle < 0) {\n\t _fPolarAngle += 360;\n\t }\n\t }\n\t //in radians\n\t else {\n\t _fPolarAngle -= Math.PI / 2;\n\t\n\t if (_fPolarAngle < 0) {\n\t _fPolarAngle += Math.PI * 2;\n\t }\n\t }\n\t\n\t return this.polarToCartesianX(_fPolarRadius, _fPolarAngle, _bInDegrees);\n\t }\n\t }, {\n\t key: \"getPerpendicularCartesianY\",\n\t value: function getPerpendicularCartesianY(_fPolarRadius, _fPolarAngle, _bInDegrees) {\n\t //todo fix for radians\n\t if (_bInDegrees) {\n\t _fPolarAngle -= 90;\n\t\n\t if (_fPolarAngle < 0) {\n\t _fPolarAngle += 360;\n\t }\n\t }\n\t //in radians\n\t else {\n\t _fPolarAngle -= Math.PI / 2;\n\t\n\t if (_fPolarAngle < 0) {\n\t _fPolarAngle += Math.PI * 2;\n\t }\n\t }\n\t return this.polarToCartesianY(_fPolarRadius, _fPolarAngle, _bInDegrees);\n\t }\n\t }, {\n\t key: \"returnRadianValueToAdd\",\n\t value: function returnRadianValueToAdd(_fCartesianX, _fCartesianY) {\n\t var iQuadrant = this.getQuadrant(_fCartesianX, _fCartesianY);\n\t if (iQuadrant == 1) {\n\t return 0;\n\t } else if (iQuadrant == 2 || iQuadrant == 3) {\n\t return Math.PI;\n\t } else {\n\t return Math.PI * 2;\n\t }\n\t }\n\t }, {\n\t key: \"getQuadrant\",\n\t value: function getQuadrant(_fCartesianX, _fCartesianY) {\n\t\n\t if (_fCartesianX >= 0 && _fCartesianY >= 0) {\n\t return 1;\n\t } else if (_fCartesianX < 0 && _fCartesianY >= 0) {\n\t return 2;\n\t } else if (_fCartesianX < 0 && _fCartesianY < 0) {\n\t return 3;\n\t } else {\n\t return 4;\n\t }\n\t }\n\t }, {\n\t key: \"radianToDegrees\",\n\t value: function radianToDegrees(_fRadian) {\n\t var fInDegrees = _fRadian / Math.PI * 180;\n\t return fInDegrees;\n\t }\n\t }, {\n\t key: \"degreesToRadians\",\n\t value: function degreesToRadians(_fDegrees) {\n\t var fInRadians = _fDegrees / 180 * Math.PI;\n\t return fInRadians;\n\t }\n\t }, {\n\t key: \"getRandomBool\",\n\t value: function getRandomBool() {\n\t var randomNum = this.getRandomNumber(1, 50);\n\t var randomBool = randomNum % 2 == 0;\n\t return randomBool;\n\t }\n\t\n\t /**\r\n\t * Returns a random number between min and max\r\n\t */\n\t //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FMath%2Frandom\n\t }, {\n\t key: \"getRandomNumber\",\n\t value: function getRandomNumber(min, max) {\n\t return Math.floor(Math.random() * (max - min + 1)) + min;\n\t }\n\t }, {\n\t key: \"getDifference\",\n\t value: function getDifference(_fXFrom, _fXTo) {\n\t var fDifference = _fXTo - _fXFrom;\n\t return fDifference;\n\t }\n\t }]);\n\t\n\t return UtilsMath;\n\t})();\n\t\n\texports[\"default\"] = new UtilsMath();\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t// --\n\t// FACEBOOK SHARE\n\t// --\n\t// class that shares shareurl via facebook dialog\n\t//\n\t\n\t// --\n\t// USAGE\n\t// --\n\t//\n\t// data-component=\"share-facebook\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\n\t//\n\t// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\n\t//\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _shareBase = __webpack_require__(21);\n\t\n\tvar _shareBase2 = _interopRequireDefault(_shareBase);\n\t\n\tvar Component_share_facebook = (function (_Component_share_base) {\n\t _inherits(Component_share_facebook, _Component_share_base);\n\t\n\t function Component_share_facebook(el, options) {\n\t _classCallCheck(this, Component_share_facebook);\n\t\n\t _get(Object.getPrototypeOf(Component_share_facebook.prototype), 'constructor', this).call(this, el, $.extend(true, {\n\t\n\t 'windowTarget': 'http://www.facebook.com/sharer.php?u=',\n\t 'windowName': 'facebook share',\n\t 'windowParams': 'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\n\t\n\t }, options), 'component');\n\t }\n\t\n\t return Component_share_facebook;\n\t})(_shareBase2['default']);\n\t\n\texports['default'] = Component_share_facebook;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t// --\n\t// LINKEDIN SHARE\n\t// --\n\t// class that shares shareurl via linkedin dialog\n\t//\n\t\n\t// --\n\t// USAGE\n\t// --\n\t//\n\t// data-component=\"share-linkedin\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\n\t//\n\t// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\n\t//\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _shareBase = __webpack_require__(21);\n\t\n\tvar _shareBase2 = _interopRequireDefault(_shareBase);\n\t\n\tvar Component_share_linkedin = (function (_Component_share_base) {\n\t _inherits(Component_share_linkedin, _Component_share_base);\n\t\n\t function Component_share_linkedin(el, options) {\n\t _classCallCheck(this, Component_share_linkedin);\n\t\n\t _get(Object.getPrototypeOf(Component_share_linkedin.prototype), 'constructor', this).call(this, el, $.extend(true, {\n\t\n\t 'windowTarget': 'http://www.linkedin.com/shareArticle?mini=true&url=',\n\t 'windowName': 'LinkedIn',\n\t 'windowParams': 'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\n\t\n\t }, options), 'component');\n\t }\n\t\n\t return Component_share_linkedin;\n\t})(_shareBase2['default']);\n\t\n\texports['default'] = Component_share_linkedin;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t// --\n\t// Pinterest SHARE\n\t// --\n\t// class that shares shareurl via Pinterest dialog\n\t//\n\t\n\t// --\n\t// USAGE\n\t// --\n\t//\n\t// data-component=\"share-pinterest\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\n\t//\n\t// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\n\t//\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _shareBase = __webpack_require__(21);\n\t\n\tvar _shareBase2 = _interopRequireDefault(_shareBase);\n\t\n\tvar Component_share_pinterest = (function (_Component_share_base) {\n\t _inherits(Component_share_pinterest, _Component_share_base);\n\t\n\t function Component_share_pinterest(el, options) {\n\t _classCallCheck(this, Component_share_pinterest);\n\t\n\t var imageURL = $(\"head\").find(\"meta[property='og:image']\").attr(\"content\");\n\t var pageDescription = $(\"head\").find(\"meta[property='og:description']\").attr(\"content\");\n\t // var imageURL = typeof options.image !== \"undefined\" ? options.image : $(\"head\").find(\"meta[property='og:image']\").attr(\"content\");\n\t // var pageDescription = typeof options.description !== \"undefined\" ? options.description : $(\"head\").find(\"meta[property='og:description']\").attr(\"content\");\n\t if (!imageURL) {\n\t console.log(\"No image passed in and could not find og image tag\");\n\t return;\n\t }\n\t\n\t if (!pageDescription) {\n\t console.log(\"No description passed in and could not find og page description tag\");\n\t return;\n\t }\n\t\n\t _get(Object.getPrototypeOf(Component_share_pinterest.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t\n\t // Pin It\n\t\n\t 'windowTarget': 'http://www.pinterest.com/pin/create/button/?media=' + imageURL + '&description=' + pageDescription + '&url=',\n\t 'windowName': 'Pinterest',\n\t 'windowParams': 'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\n\t\n\t }, options), 'component');\n\t }\n\t\n\t // overload base trigerShare function\n\t //combine share text with share url if share url isn't false\n\t\n\t _createClass(Component_share_pinterest, [{\n\t key: \"triggerShare\",\n\t value: function triggerShare(event) {\n\t\n\t this.readLatestElementOptions();\n\t\n\t event.preventDefault();\n\t\n\t var textToShare = \"\";\n\t\n\t if (typeof this.options.shareText !== \"undefined\") {\n\t textToShare = this.options.shareText;\n\t }\n\t\n\t if (this.options.shareURL) {\n\t if (textToShare) {\n\t textToShare += \" \";\n\t }\n\t textToShare += this.options.shareURL;\n\t }\n\t\n\t this.openSharePopup(textToShare, this.options.windowTarget, this.options.windowName, this.options.windowParams);\n\t }\n\t }]);\n\t\n\t return Component_share_pinterest;\n\t})(_shareBase2[\"default\"]);\n\t\n\texports[\"default\"] = Component_share_pinterest;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t// --\n\t// TWITTER SHARE\n\t// --\n\t// class that shares shareTxt via twiter dialog/web intent\n\t//\n\t\n\t// --\n\t// USAGE\n\t// --\n\t//\n\t// data-component=\"share-twitter\" data-component-options='{\"shareURL\":false,\"shareText\":\"[share text here]\"}'\n\t//\n\t// \"shareURL\" if set to false won't be apeneded to end of share text\n\t// \"shareText\" is the text that gets shared as a tweet\n\t//\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _shareBase = __webpack_require__(21);\n\t\n\tvar _shareBase2 = _interopRequireDefault(_shareBase);\n\t\n\tvar Component_share_twitter = (function (_Component_share_base) {\n\t _inherits(Component_share_twitter, _Component_share_base);\n\t\n\t function Component_share_twitter(el, options) {\n\t _classCallCheck(this, Component_share_twitter);\n\t\n\t _get(Object.getPrototypeOf(Component_share_twitter.prototype), 'constructor', this).call(this, el, $.extend(true, {\n\t\n\t 'windowTarget': 'https://twitter.com/intent/tweet?text=',\n\t 'windowName': 'twitter',\n\t 'windowParams': 'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\n\t\n\t }, options), 'component');\n\t }\n\t\n\t // overload base trigerShare function\n\t //combine share text with share url if share url isn't false\n\t\n\t _createClass(Component_share_twitter, [{\n\t key: 'triggerShare',\n\t value: function triggerShare(event) {\n\t\n\t this.readLatestElementOptions();\n\t\n\t event.preventDefault();\n\t\n\t var textToShare = this.options.shareText;\n\t\n\t if (this.options.shareURL) {\n\t textToShare = textToShare + \" \" + this.options.shareURL;\n\t }\n\t\n\t this.openSharePopup(textToShare, this.options.windowTarget, this.options.windowName, this.options.windowParams);\n\t }\n\t }]);\n\t\n\t return Component_share_twitter;\n\t})(_shareBase2['default']);\n\t\n\texports['default'] = Component_share_twitter;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 40 */,\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_SocialNetworksPopup = (function (_Abstract2) {\n\t _inherits(Component_SocialNetworksPopup, _Abstract2);\n\t\n\t function Component_SocialNetworksPopup(el, options) {\n\t _classCallCheck(this, Component_SocialNetworksPopup);\n\t\n\t _get(Object.getPrototypeOf(Component_SocialNetworksPopup.prototype), \"constructor\", this).call(this, el, $.extend(true, {}, options), 'component');\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_SocialNetworksPopup, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.click(function (e) {\n\t return _this.onTriggerElementClicked(e);\n\t });\n\t }\n\t }, {\n\t key: \"onTriggerElementClicked\",\n\t value: function onTriggerElementClicked(e) {\n\t console.log(\"onTriggerElementClicked\");\n\t }\n\t }]);\n\t\n\t return Component_SocialNetworksPopup;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_SocialNetworksPopup;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\t//A simple component which just toggles a class in all immediate children of the element this component is attached to\n\t\n\tvar Component_ToggleChildClasses = (function (_Abstract2) {\n\t _inherits(Component_ToggleChildClasses, _Abstract2);\n\t\n\t function Component_ToggleChildClasses(el, options) {\n\t _classCallCheck(this, Component_ToggleChildClasses);\n\t\n\t _get(Object.getPrototypeOf(Component_ToggleChildClasses.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t toggle_class: false\n\t }, options), 'component');\n\t\n\t if (!this.options.toggle_class) {\n\t console.log(\"Toggle Child Classes component has no toggle_class specified\");\n\t return;\n\t }\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_ToggleChildClasses, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {\n\t var _this = this;\n\t\n\t this.$el.on(\"click\", \"> *\", function (e) {\n\t return _this.immediateChildClicked(e);\n\t });\n\t }\n\t }, {\n\t key: \"immediateChildClicked\",\n\t value: function immediateChildClicked(e) {\n\t console.log(\"immediate\");\n\t var $target = $(e.currentTarget);\n\t if ($target.hasClass(this.options.toggle_class)) {\n\t $target.removeClass(this.options.toggle_class);\n\t } else {\n\t $target.addClass(this.options.toggle_class);\n\t }\n\t }\n\t }]);\n\t\n\t return Component_ToggleChildClasses;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_ToggleChildClasses;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_VerticalSlide = (function (_Abstract2) {\n\t _inherits(Component_VerticalSlide, _Abstract2);\n\t\n\t function Component_VerticalSlide(el, options) {\n\t _classCallCheck(this, Component_VerticalSlide);\n\t\n\t _get(Object.getPrototypeOf(Component_VerticalSlide.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t //scroll_per_pixel_multiplier takes the number of pixels it has scrolled onthe page, and then multiplies it by this\n\t //So the lower the number the 'slower' it appears, as it is actually closer to matching the speed of the scrolling itself\n\t scroll_per_pixel_multiplier: 0.08\n\t }, options), 'component');\n\t\n\t this.PERENTAGE_OF_ASSET_TO_BE_ON_SCREEN_TO_START = 0;\n\t\n\t this.$window = $(window);\n\t this.initialise();\n\t }\n\t\n\t _createClass(Component_VerticalSlide, [{\n\t key: \"initialise\",\n\t value: function initialise() {\n\t this.setPositionBasedOnScroll();\n\t }\n\t }, {\n\t key: \"isElementOnScreen\",\n\t value: function isElementOnScreen() {\n\t return this.$el.offset().top < this.$window.scrollTop() + this.$window.height();\n\t }\n\t }, {\n\t key: \"setPositionBasedOnScroll\",\n\t value: function setPositionBasedOnScroll() {\n\t var _this = this;\n\t\n\t var bIsElementOnScreen = this.isElementOnScreen();\n\t if (!bIsElementOnScreen) {\n\t window.requestAnimationFrame(function () {\n\t return _this.setPositionBasedOnScroll();\n\t });\n\t return;\n\t }\n\t\n\t this.$el.css(\"transform\", \"none\");\n\t var pixelsOfElementRequiredOnScreen = this.$el.height() * (this.PERENTAGE_OF_ASSET_TO_BE_ON_SCREEN_TO_START * 0.001);\n\t var originalPositionPlusRequiredOnScreen = this.$el.offset().top + pixelsOfElementRequiredOnScreen;\n\t var pixelsFromBottomOfScreen = this.$window.scrollTop() + this.$window.height() - originalPositionPlusRequiredOnScreen;\n\t this.$el.css(\"transform\", \"translate3d(0,\" + pixelsFromBottomOfScreen * this.options.scroll_per_pixel_multiplier + \"rem,0)\");\n\t window.requestAnimationFrame(function () {\n\t return _this.setPositionBasedOnScroll();\n\t });\n\t }\n\t }]);\n\t\n\t return Component_VerticalSlide;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_VerticalSlide;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _systemAbstract = __webpack_require__(5);\n\t\n\tvar _systemAbstract2 = _interopRequireDefault(_systemAbstract);\n\t\n\tvar Component_VideoPlayer = (function (_Abstract2) {\n\t _inherits(Component_VideoPlayer, _Abstract2);\n\t\n\t function Component_VideoPlayer(el, options) {\n\t _classCallCheck(this, Component_VideoPlayer);\n\t\n\t _get(Object.getPrototypeOf(Component_VideoPlayer.prototype), \"constructor\", this).call(this, el, $.extend(true, {\n\t type: false,\n\t target_selector: false\n\t }, options), 'component');\n\t\n\t this.bindEvents();\n\t }\n\t\n\t _createClass(Component_VideoPlayer, [{\n\t key: \"bindEvents\",\n\t value: function bindEvents() {}\n\t }]);\n\t\n\t return Component_VideoPlayer;\n\t})(_systemAbstract2[\"default\"]);\n\t\n\texports[\"default\"] = Component_VideoPlayer;\n\tmodule.exports = exports[\"default\"];\n\n/***/ }\n]);\n\n\n/** WEBPACK FOOTER **\n ** 2.2.js\n **/","import _Abstract from \"system/abstract\"\r\nexport default class Component_InputValidator extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {\r\n }, options), 'component')\r\n\t\tconsole.log(\"INPUT VALIDATOR\");\r\n this.EMAIL_REGULAR_EXPRESSION = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n \r\n this.bindEvents()\r\n }\r\n\r\n\tbindEvents()\r\n\t{\r\n\t\tthis.$el.find(\"input\").blur((e) => this.onInputBlurred(e));\r\n this.$el.find(\"input\").keyup((e) => this.onInputKeyUp(e));\r\n // this.$el.find(\" input\").keydown((e) => this.onInputKeyDown(e));\r\n\r\n\t\tif(typeof this.options.submit_button_selector !== \"undefined\")\r\n\t\t{\r\n\t\t\tthis.$el.find(this.options.submit_button_selector).click((e) => this.onSubmitButtonClicked(e));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\tonInputBlurred(e)\r\n\t{\r\n\t\tvar $input = $(e.currentTarget);\r\n\t\tthis.validateElement($input);\r\n\t}\r\n\r\n onInputKeyDown(e)\r\n {\r\n var $input = $(e.currentTarget);\r\n return this.forceCharacterLimits($input);\r\n }\r\n\r\n\tonInputKeyUp(e)\r\n\t{\r\n\t\tvar $input = $(e.currentTarget);\r\n this.validateElement($input);\r\n\t}\r\n\r\n forceCharacterLimits($element)\r\n {\r\n var characterLimit = $element.data(\"character-limit\");\r\n if(!characterLimit)\r\n {\r\n return true;\r\n }\r\n\r\n var elementValue = $element.val();\r\n if(elementValue.length > characterLimit)\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n \tvalidateElement($element)\r\n \t{\r\n\r\n if(!$element.closest(\".c-label-input-ctn\").hasClass(\"required\"))\r\n {\r\n return;\r\n }\r\n\r\n var inputType = $element.attr(\"type\");\r\n var bValidInput = $element.val();\r\n if(inputType.toLowerCase() === \"email\")\r\n {\r\n bValidInput = this.EMAIL_REGULAR_EXPRESSION.test($element.val());\r\n }\r\n\r\n\t\t\tif($element.data(\"match\"))\r\n\t\t\t{\r\n\t\t\t\tvar matchSelector = $element.data(\"match\");\r\n\t\t\t\tvar $elementToMatch = $(matchSelector);\r\n\t\t\t\tif($elementToMatch.length)\r\n\t\t\t\t{\r\n\t\t\t\t\tif($element.val() !== $elementToMatch.val())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbValidInput = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tconsole.log(\"input-validator: Failed to find matching element to compare data!\");\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}\r\n\r\n\r\n\t \tif(bValidInput)\r\n\t \t{\r\n\t \t\t$element.removeClass(\"invalid-input\");\r\n\t\t\t\t$element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\r\n\t \t\treturn true;\r\n\t \t}\r\n\t \telse\r\n\t \t{\r\n\t \t\t$element.addClass(\"invalid-input\");\r\n\t\t\t\t$element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\r\n\t \t\treturn false;\r\n\t \t}\r\n \t}\r\n\r\n \tonSubmitButtonClicked(e)\r\n \t{\r\n \t\tvar context = this;\r\n \t\tvar bAllValidated = true;\r\n \t\tthis.$el.find(\".required input\").each(function()\r\n \t\t{\r\n \t\t\tvar $input = $(this);\r\n \t\t\tif(!context.validateElement($input))\r\n \t\t\t{\r\n \t\t\t\tbAllValidated = false;\r\n \t\t\t}\r\n \t\t});\r\n\r\n \t\tif(bAllValidated)\r\n \t\t{\r\n \t\t\tthis.$el.find(\".form-is-valid\").removeClass('-hide');\r\n \t\t\tthis.$el.find(\".form-is-invalid\").addClass('-hide');\r\n \t\t}\r\n \t\telse\r\n \t\t{\r\n \t\t\tthis.$el.find(\".form-is-valid\").addClass('-hide');\r\n \t\t\tthis.$el.find(\".form-is-invalid\").removeClass('-hide');\r\n \t\t\te.preventDefault();\r\n \t\t\te.stopImmediatePropagation();\r\n\r\n \t\t}\r\n\r\n \t}\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/input-validator.js\n **/","import _Abstract from \"system/abstract\";\r\n\r\nexport default class Component_InputValidatorv2 extends _Abstract {\r\n constructor(el, options) {\r\n super(el, $.extend(true, {}, options), \"component\");\r\n this.EMAIL_REGULAR_EXPRESSION = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n this.bindEvents();\r\n $(\"select.c-label-select__fields\")\r\n .selectric({\r\n disableOnMobile: false,\r\n nativeOnMobile: false,\r\n onChange: function () {\r\n $(\".selectric-c-label-select__fields\").removeClass(\"is-invalid\");\r\n },\r\n })\r\n .on(\"selectric-before-open\", function () {\r\n if ($(\".selectric-c-label-select__fields\").hasClass(\"is-invalid\")) {\r\n $(\".selectric-c-label-select__fields\").removeClass(\"is-invalid\");\r\n }\r\n });\r\n }\r\n\r\n bindEvents() {\r\n this.$el.find(\"input\").blur((e) => this.onInputBlurred(e));\r\n this.$el.find(\"input\").keyup((e) => this.onInputKeyUp(e));\r\n this.$el.find(\"textarea\").blur((e) => this.onTextareBlurred(e));\r\n this.$el.find(\"textarea\").keyup((e) => this.onTextareKeyUp(e));\r\n if (typeof this.options.submit_button_selector !== \"undefined\") {\r\n this.$el\r\n .find(this.options.submit_button_selector)\r\n .click((e) => this.onSubmitButtonClicked(e));\r\n }\r\n }\r\n\r\n onInputBlurred(e) {\r\n var $input = $(e.currentTarget);\r\n this.validateElement($input);\r\n }\r\n\r\n onInputKeyDown(e) {\r\n var $input = $(e.currentTarget);\r\n return this.forceCharacterLimits($input);\r\n }\r\n\r\n onInputKeyUp(e) {\r\n var $input = $(e.currentTarget);\r\n this.validateElement($input);\r\n }\r\n\r\n onTextareKeyUp(e) {\r\n var $input = $(e.currentTarget);\r\n this.validateElement($input);\r\n }\r\n\r\n onTextareBlurred(e) {\r\n var $input = $(e.currentTarget);\r\n this.validateElement($input);\r\n }\r\n\r\n forceCharacterLimits($element) {\r\n var characterLimit = $element.data(\"character-limit\");\r\n if (!characterLimit) {\r\n return true;\r\n }\r\n\r\n var elementValue = $element.val();\r\n if (elementValue.length > characterLimit) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateTextarea($element) {\r\n if ($element.val()) {\r\n $element.removeClass(\"invalid-input\");\r\n $element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\r\n return true;\r\n } else {\r\n $element.addClass(\"invalid-input\");\r\n $element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\r\n return false;\r\n }\r\n }\r\n\r\n validateElement($element) {\r\n if (!$element.closest(\".c-label-input-ctn\").hasClass(\"required\")) {\r\n return;\r\n }\r\n\r\n var inputType = $element.attr(\"type\");\r\n var bValidInput = $element.val();\r\n if (inputType.toLowerCase() === \"email\") {\r\n bValidInput = this.EMAIL_REGULAR_EXPRESSION.test($element.val());\r\n }\r\n\r\n if ($element.data(\"match\")) {\r\n var matchSelector = $element.data(\"match\");\r\n var $elementToMatch = $(matchSelector);\r\n if ($elementToMatch.length) {\r\n if ($element.val() !== $elementToMatch.val()) {\r\n bValidInput = false;\r\n }\r\n } else {\r\n console.log(\r\n \"input-validator: Failed to find matching element to compare data!\"\r\n );\r\n }\r\n }\r\n\r\n if (bValidInput) {\r\n $(\".-error\").html(\"Comments Field*\");\r\n $element.removeClass(\"invalid-input\");\r\n $element.closest(\".c-label-input-ctn\").removeClass(\"invalid-input\");\r\n return true;\r\n } else {\r\n $(\".-error\").html(\"Comments*\");\r\n $element.addClass(\"invalid-input\");\r\n $element.closest(\".c-label-input-ctn\").addClass(\"invalid-input\");\r\n return false;\r\n }\r\n }\r\n\r\n onErrorScrollTop() {\r\n $(\"html,body\").animate(\r\n {\r\n scrollTop: $(\".-scrolltop\").offset().top - 30,\r\n },\r\n \"fast\"\r\n );\r\n }\r\n\r\n formValidation(bAllValidated, e) {\r\n var context = this;\r\n if (bAllValidated) {\r\n context.$el.find(\".form-is-valid\").removeClass(\"-hide\");\r\n context.$el.find(\".form-is-invalid\").addClass(\"-hide\");\r\n // Change checkbox value when checked\r\n var $signMeUp = $('input[name=\"subscribe\"]');\r\n if ($signMeUp.prop(\"checked\")) {\r\n $(\".js-form-stream-val\").attr(\"value\", 1);\r\n } else {\r\n $(\".js-form-stream-val\").attr(\"value\", 0);\r\n }\r\n var htmlLoader =\r\n \"
\";\r\n $(\".cta-input-sugarform--send-btn\").after(htmlLoader);\r\n $(\".cta-input-sugarform--send-btn\").css(\"visibility\", \"hidden\");\r\n\r\n if (\r\n window.location.hostname === \"furnware-static.uniondigital.co.nz\" ||\r\n window.location.hostname === \"localhost\"\r\n ) {\r\n return;\r\n }\r\n if($(e.currentTarget).hasClass( \"stem-submit-btn\" )) {\r\n context.setCookie(\"stemlearningpopup\", \"clicked\", 100000)\r\n }\r\n $(\"#aspnetForm\").attr(\r\n \"action\",\r\n $(\".cta-input-form\").data(\"sugar-market-post-url\")\r\n );\r\n $(\"#aspnetForm\").unbind(\"submit\").removeAttr(\"onsubmit\");\r\n $(\"#aspnetForm\").submit();\r\n } else {\r\n context.$el.find(\".form-is-valid\").addClass(\"-hide\");\r\n context.$el.find(\".form-is-invalid\").removeClass(\"-hide\");\r\n grecaptcha.reset();\r\n context.onErrorScrollTop();\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n recaptchaValidation(context,bAllValidated,e) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: `/WebApi/ReCaptchaApi/VerifyReCaptcha?reCaptchaResponse=${grecaptcha.getResponse()}`,\r\n error: function (response) {\r\n bAllValidated = false;\r\n $(\".g-recaptcha__errormsg\").addClass(\"-hide\");\r\n context.formValidation(bAllValidated, e);\r\n },\r\n success: function (response) {\r\n if (response == true) {\r\n $(\".g-recaptcha__errormsg\").addClass(\"-hide\");\r\n context.formValidation(bAllValidated, e);\r\n } else {\r\n bAllValidated = false;\r\n $(\".g-recaptcha__errormsg\").removeClass(\"-hide\");\r\n context.formValidation(bAllValidated, e);\r\n }\r\n },\r\n });\r\n }\r\n\r\n onSubmitButtonClicked(e) {\r\n var context = this;\r\n var bAllValidated = true;\r\n var dropdownValidated = true;\r\n var textareaValidated = true;\r\n if ( $(\".cta-input-form\").data(\"sugar-market-form\") == \"contact\") {\r\n if ($(\".c-label-select__fields\").val() == \"-1\") {\r\n $(\".selectric-c-label-select__fields\").addClass(\"is-invalid\");\r\n dropdownValidated = false;\r\n }\r\n if (this.$el.find(\".required textarea\").length > 0) {\r\n textareaValidated = this.validateTextarea(\r\n this.$el.find(\".required textarea\")\r\n );\r\n }\r\n this.$el.find(\".required input\").each(function () {\r\n var $input = $(this);\r\n if (!context.validateElement($input)) {\r\n bAllValidated = false;\r\n }\r\n });\r\n if (bAllValidated && textareaValidated && dropdownValidated) {\r\n this.$el.find(\".form-is-valid\").removeClass(\"-hide\");\r\n this.$el.find(\".form-is-invalid\").addClass(\"-hide\");\r\n } else {\r\n this.$el.find(\".form-is-valid\").addClass(\"-hide\");\r\n this.$el.find(\".form-is-invalid\").removeClass(\"-hide\");\r\n this.onErrorScrollTop();\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n context.recaptchaValidation(context,bAllValidated,e);\r\n } else {\r\n if($(\".c-label-select__fields\").length) {\r\n if ($(\".c-label-select__fields\").val() == \"-1\") {\r\n $(\".selectric-c-label-select__fields\").addClass(\"is-invalid\");\r\n bAllValidated = false;\r\n }\r\n }\r\n this.$el.find(\".required input\").each(function () {\r\n var $input = $(this);\r\n if (!context.validateElement($input)) {\r\n bAllValidated = false;\r\n }\r\n });\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n context.recaptchaValidation(context,bAllValidated,e);\r\n }\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/input-validator-v2.js\n **/","var map = {\n\t\"./_share-base\": 21,\n\t\"./_share-base.js\": 21,\n\t\"./article-filter\": 22,\n\t\"./article-filter.js\": 22,\n\t\"./back-button\": 23,\n\t\"./back-button.js\": 23,\n\t\"./back-to-top\": 24,\n\t\"./back-to-top.js\": 24,\n\t\"./background-image-rotator\": 25,\n\t\"./background-image-rotator.js\": 25,\n\t\"./banner-image-rotator\": 26,\n\t\"./banner-image-rotator.js\": 26,\n\t\"./click-behaviour\": 27,\n\t\"./click-behaviour.js\": 27,\n\t\"./culture-pop-up\": 28,\n\t\"./culture-pop-up.js\": 28,\n\t\"./full-screen-html5-video\": 29,\n\t\"./full-screen-html5-video.js\": 29,\n\t\"./header-desktop\": 30,\n\t\"./header-desktop.js\": 30,\n\t\"./header-mobile\": 31,\n\t\"./header-mobile.js\": 31,\n\t\"./hover-behaviour\": 32,\n\t\"./hover-behaviour.js\": 32,\n\t\"./input-validator\": 10,\n\t\"./input-validator-v2\": 14,\n\t\"./input-validator-v2.js\": 14,\n\t\"./input-validator.js\": 10,\n\t\"./move-on-scroll\": 33,\n\t\"./move-on-scroll.js\": 33,\n\t\"./rotate-on-scroll\": 34,\n\t\"./rotate-on-scroll.js\": 34,\n\t\"./share-facebook\": 36,\n\t\"./share-facebook.js\": 36,\n\t\"./share-linkedin\": 37,\n\t\"./share-linkedin.js\": 37,\n\t\"./share-pinterest\": 38,\n\t\"./share-pinterest.js\": 38,\n\t\"./share-twitter\": 39,\n\t\"./share-twitter.js\": 39,\n\t\"./site-wide-banner\": 40,\n\t\"./site-wide-banner.js\": 40,\n\t\"./social-networks-popup\": 41,\n\t\"./social-networks-popup.js\": 41,\n\t\"./toggle-child-classes\": 42,\n\t\"./toggle-child-classes.js\": 42,\n\t\"./vertical-slide\": 43,\n\t\"./vertical-slide.js\": 43,\n\t\"./video-player\": 44,\n\t\"./video-player.js\": 44\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 20;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./components ^\\.\\/.*$\n ** module id = 20\n ** module chunks = 2\n **/","\r\n// --\r\n// SHARE DIALOG\r\n// --\r\n//\r\n// this is base class which the indiviual share classes (facebook,twitter,linkedin,email) extend off\r\n//\r\n\r\n\r\n// --\r\n// USAGE\r\n// --\r\n//\r\n// data-component=\"share-linkedin\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\r\n//\r\n// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\r\n//\r\n\r\n\r\nimport _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_share_base extends _Abstract {\r\n\r\n constructor(el, options) {\r\n\r\n super(el, $.extend(true, {\r\n\r\n 'windowTarget':'',\r\n 'windowName':'',\r\n 'windowParams':''\r\n\r\n }, options), 'component');\r\n\r\n // bind events function\r\n this.bindEvents();\r\n\r\n }\r\n\r\n bindEvents() {\r\n\r\n // bind click event on this element\r\n this.$el.on('click', (e) => this.triggerShare(e));\r\n\r\n }\r\n\r\n //Makes sure the options stored are the latest based on the elements data options (as may be dynamically replaced)\r\n readLatestElementOptions()\r\n {\r\n var latestOptions = this.$el.data(\"component-options\");\r\n\r\n\r\n for(var key in latestOptions)\r\n {\r\n var value = latestOptions[key];\r\n\r\n this.options[key] = value;\r\n }\r\n\r\n }\r\n\r\n // function to pass share dteials to the share dialog\r\n triggerShare(event){\r\n\r\n this.readLatestElementOptions();\r\n\r\n event.preventDefault();\r\n\r\n this.openSharePopup(this.options.shareURL,this.options.windowTarget,this.options.windowName,this.options.windowParams);\r\n\r\n }\r\n\r\n // open share dialog\r\n openSharePopup(shareURL,windowTarget,windowName,windowParams){\r\n\r\n window.open(windowTarget+encodeURIComponent(shareURL), windowName, windowParams);\r\n\r\n }\r\n\r\n // open share link\r\n openShareLink(shareURL,windowTarget){\r\n\r\n window.location.href = windowTarget+encodeURIComponent(shareURL);\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/_share-base.js\n **/","/* \r\n * listings filter js component\r\n */\r\n\r\nimport _Abstract from \"system/abstract\"\r\nexport default class Component_ArticleFilter extends _Abstract {\r\n constructor(el, options) \r\n {\r\n super(el, $.extend(true, \r\n {\r\n filterAttrItem:'data-item-filters',\r\n filterAttrFilter:'data-filter-by'\r\n\r\n },options), 'component')\r\n\r\n\r\n this.$el.addClass(\"c-listings-filter\");\r\n\r\n this.searchBoxDebounceTimer = null;\r\n this.dataFilterSearchTerm = \"\";\r\n \r\n this.INDEPENDENT_SEARCH_AND_FILTER = true;\r\n\r\n this.$filterItems = this.$el.find('[' + this.options.filterAttrItem + ']');\r\n this.$filters = this.$el.find('[' + this.options.filterAttrFilter + ']');\r\n this.filterByArray = [];\r\n this.$clearFiltersBtn = this.$el.find('.js-clear-filters');\r\n this.bindEvents();\r\n\r\n\r\n this.initialiseFilterFromURLParamater();\r\n }\r\n\r\n bindEvents() \r\n {\r\n // on filter click\r\n this.$filters.on('click',(e) => this.onFilterClicked(e));\r\n this.$clearFiltersBtn.on('click',(e)=> this.onClearFilterButtonClicked(e));\r\n this.$el.find(\".c-search-input--input\").on(\"keyup\",(e) => this.onSearchInputKeyUp(e));\r\n this.$el.find(\".c-search-input--input\").on(\"keydown\",(e) => this.onSearchInputKeyDown(e));\r\n // this.$el.find(\".c-search-input--input\").on(\"keydown\",(e) => this.onSearchInputKeyDown(e));\r\n this.$el.find(\".c-search-input__search-btn\").click((e) => this.onSearchBtnClicked(e));\r\n\r\n\r\n }\r\n\r\n //http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript\r\n getParameterByName(name, url)\r\n {\r\n if (!url)\r\n {\r\n url = window.location.href;\r\n }\r\n\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results)\r\n {\r\n return null;\r\n }\r\n\r\n if (!results[2])\r\n {\r\n return '';\r\n }\r\n \r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n initialiseFilterFromURLParamater()\r\n {\r\n var filterValue = this.getParameterByName(\"filter\");\r\n if(!filterValue)\r\n {\r\n return;\r\n }\r\n \r\n $(\".c-article-filters > button\").each(function()\r\n {\r\n if($(this).text().toLowerCase() === filterValue.toLowerCase())\r\n {\r\n $(this).click();\r\n return false;\r\n }\r\n });\r\n\r\n }\r\n\r\n onSearchInputKeyDown(_keyboardEvent)\r\n {\r\n switch(_keyboardEvent.keyCode)\r\n {\r\n case 13: //enter\r\n {\r\n _keyboardEvent.preventDefault();\r\n return false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onSearchInputKeyUp(_keyboardEvent)\r\n {\r\n console.log('on key up');\r\n // this.resetSearchBoxDebounceTimer();\r\n this.dataFilterSearchTerm = _keyboardEvent.target.value;\r\n if($(_keyboardEvent.target).closest(\".c-mobile-sub-page\").length)\r\n {\r\n $(\".m-articles .c-search-input .c-search-input--input\").val(this.dataFilterSearchTerm);\r\n }\r\n\r\n switch(_keyboardEvent.keyCode)\r\n {\r\n case 13: //enter\r\n {\r\n this.onEnterPressed(_keyboardEvent);\r\n _keyboardEvent.preventDefault();\r\n _keyboardEvent.stopPropagation();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onSearchInputKeyDown(_keyboardEvent)\r\n {\r\n console.log('on key down');\r\n // this.clearSearchBoxDebounceTimer();\r\n }\r\n\r\n\r\n onSearchBtnClicked(_mouseEvent)\r\n {\r\n this.forceSearch();\r\n }\r\n\r\n onEnterPressed(_keyboardEvent)\r\n {\r\n this.forceSearch();\r\n if($(_keyboardEvent.target).closest(\".c-mobile-sub-page\").length)\r\n {\r\n $(\".c-mobile-sub-page .c-mobile-sub-page__header-back-btn\").click();\r\n }\r\n\r\n }\r\n\r\n forceSearch()\r\n {\r\n if(this.INDEPENDENT_SEARCH_AND_FILTER)\r\n {\r\n this.clearFilters();\r\n this.resetFilter();\r\n }\r\n this.clearSearchBoxDebounceTimer();\r\n this.onKeyboardSearchDebounceExpired();\r\n \r\n }\r\n\r\n\r\n\r\n resetSearchBoxDebounceTimer()\r\n {\r\n this.clearSearchBoxDebounceTimer();\r\n\r\n this.searchBoxDebounceTimer = window.setTimeout(() => this.onKeyboardSearchDebounceExpired(),1000);\r\n }\r\n\r\n onKeyboardSearchDebounceExpired()\r\n {\r\n this.searchBoxDebounceTimer = null;\r\n // this.dataFilterSearchTerm = this.$el.find(\".c-search-input--input\").val();\r\n\r\n this.updateItems(this.filterByArray,true);\r\n }\r\n\r\n clearSearchBoxDebounceTimer()\r\n {\r\n if(!this.searchBoxDebounceTimer)\r\n {\r\n return;\r\n }\r\n \r\n window.clearTimeout(this.searchBoxDebounceTimer);\r\n this.searchBoxDebounceTimer = null;\r\n }\r\n\r\n\r\n getAllFilterItems()\r\n {\r\n return this.$el.find('[' + this.options.filterAttrItem + ']');\r\n }\r\n\r\n getAllFilters()\r\n {\r\n return $(\".c-article-filters\").find('[' + this.options.filterAttrFilter + ']');\r\n }\r\n\r\n isClickEventInMobileSubPage(e)\r\n {\r\n return $(e.target).closest(\".c-mobile-sub-page\").length;\r\n }\r\n\r\n onFilterClicked(e)\r\n {\r\n e.preventDefault();\r\n\r\n\r\n if(this.INDEPENDENT_SEARCH_AND_FILTER)\r\n {\r\n this.clearSearchBoxDebounceTimer();\r\n this.$el.find(\".c-search-input--input\").val(\"\");\r\n this.dataFilterSearchTerm = \"\";\r\n }\r\n\r\n var index = $(e.target).index();\r\n \r\n\r\n //More then one may exist (mobile sub page for example)\r\n var $clickedTarget = $(e.target);\r\n var bCurrentlySelected = $clickedTarget.hasClass(\"-selected\") || $clickedTarget.hasClass(\"-active\");\r\n var filterStr = $clickedTarget.attr(this.options.filterAttrFilter);\r\n\r\n $(\".c-article-filters\").each(function()\r\n {\r\n var $buttonsIndexOfClickedItem = $(this).find(\" > :nth-child(\"+(index+1)+\")\");\r\n // get target id to filter by\r\n\r\n //if filter is selected remove target id from filter array\r\n if(bCurrentlySelected)\r\n {\r\n $buttonsIndexOfClickedItem.removeClass('-selected').removeClass('-active');\r\n }\r\n else //if filter is not selected add target id to filter array\r\n {\r\n $buttonsIndexOfClickedItem.addClass('-selected').addClass(\"-active\");\r\n }\r\n\r\n });\r\n\r\n if(bCurrentlySelected)\r\n {\r\n this.filterByArray.splice(this.getIndexOfItem(this.filterByArray,filterStr),1);\r\n }\r\n else\r\n {\r\n this.filterByArray.push(filterStr);\r\n }\r\n\r\n //update filtered items\r\n this.updateItems(this.filterByArray);\r\n }\r\n\r\n onClearFilterButtonClicked(e)\r\n {\r\n e.preventDefault();\r\n this.clearFilters();\r\n this.resetFilter();\r\n this.updateItems(this.filterByArray);\r\n }\r\n\r\n resetFilter()\r\n {\r\n //show all items\r\n this.filterByArray = [];\r\n $('.js-clear-filters').addClass('-selected').addClass('-active');\r\n\r\n }\r\n\r\n clearFilters()\r\n {\r\n this.getAllFilters().removeClass('-selected').removeClass('-active');\r\n }\r\n\r\n updateItems(arrayOfFilteredItems,bSearchTermTriggered)\r\n {\r\n\r\n if(typeof bSearchTermTriggered === \"undefined\")\r\n {\r\n bSearchTermTriggered = false;\r\n }\r\n\r\n //pass array to function that shows/hides items based on match\r\n this.hideFilteredItem(arrayOfFilteredItems,bSearchTermTriggered);\r\n\r\n }\r\n\r\n getIndexOfItem(array,str)\r\n {\r\n\r\n // get index of item in array\r\n var index = array.indexOf(str);\r\n return index;\r\n\r\n }\r\n\r\n\r\n hideFilteredItem(arrayOfFilterBy, bSearchTermTriggered)\r\n {\r\n if(typeof bSearchTermTriggered === \"undefined\")\r\n {\r\n bSearchTermTriggered = false;\r\n }\r\n\r\n var dataFilterSearchTerm = this.dataFilterSearchTerm;\r\n //items that match current array, use filter to determine match\r\n\r\n if(arrayOfFilterBy.length || dataFilterSearchTerm)\r\n {\r\n var $itemsThatMatch = this.$filterItems.filter(function(index)\r\n {\r\n //set match to false\r\n var match = false;\r\n\r\n //loop array of target ids to filter by\r\n $.each(arrayOfFilterBy,(index,filterId)=>{\r\n\r\n // if target id str is found in items filter attribute set to true\r\n if($(this).is(\"[data-item-filters*='\" + filterId + \"']\"))\r\n {\r\n match = true;\r\n }\r\n \r\n });\r\n\r\n\r\n\r\n if(dataFilterSearchTerm)\r\n {\r\n var searchTermMatches = $(\".c-tile--title:containsNoCase('\"+dataFilterSearchTerm+\"'), .c-tile-description:containsNoCase('\"+dataFilterSearchTerm+\"')\",this).length;\r\n if(!searchTermMatches)\r\n {\r\n return false;\r\n }\r\n\r\n //If there's no filter selected, then we're filtering by all, so return a match\r\n if(!arrayOfFilterBy.length)\r\n {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n\r\n // return match true|false\r\n return match;\r\n });\r\n \r\n }\r\n else\r\n {\r\n var $itemsThatMatch = this.$filterItems;\r\n }\r\n\r\n //items that do not match\r\n var hideItems = this.$filterItems.not($itemsThatMatch);\r\n //if no flters are selected and tehre are no items in arary, show all items by default\r\n if(arrayOfFilterBy.length <= 0 && !dataFilterSearchTerm)\r\n {\r\n this.resetFilter();\r\n }\r\n\r\n\r\n if(arrayOfFilterBy.length > 0)\r\n {\r\n $('.js-clear-filters').removeClass('-selected').removeClass('-active');\r\n }\r\n\r\n var context = this;\r\n $(\".m-two-col-vertically-stacked-tiles \").fadeOut(function()\r\n {\r\n var $noResultsFoundFromSearchElement = $(\".-no-results-found-from-search-filter-element\");\r\n context.$filterItems.addClass(\"-hide\");\r\n if($itemsThatMatch.length)\r\n {\r\n $noResultsFoundFromSearchElement.addClass(\"-hide\"); \r\n $itemsThatMatch.removeClass(\"-hide\");\r\n $(\".m-two-col-vertically-stacked-tiles \").show();\r\n $(\"body\").trigger(\"reorder-items\");\r\n $(\".m-two-col-vertically-stacked-tiles \").hide();\r\n }\r\n else\r\n {\r\n $noResultsFoundFromSearchElement.removeClass(\"-hide\"); \r\n }\r\n\r\n $(\".m-two-col-vertically-stacked-tiles \").fadeIn();\r\n\r\n });\r\n\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/article-filter.js\n **/","/* \r\n * listings filter js component\r\n */\r\n\r\nimport _Abstract from \"system/abstract\"\r\nexport default class Component_BackButton extends _Abstract {\r\n constructor(el, options) \r\n {\r\n super(el, $.extend(true,{},options), 'component')\r\n\r\n this.initialise();\r\n }\r\n\r\n initialise()\r\n {\r\n this.initialiseListeners();\r\n }\r\n\r\n initialiseListeners()\r\n {\r\n this.$el.click(() => this.onElementClick());\r\n }\r\n\r\n onElementClick()\r\n {\r\n if(history.length === 1 && typeof this.options.backURL !== \"undefined\")\r\n {\r\n //Go to the passed in url for the componenet\r\n window.location = this.options.backURL;\r\n }\r\n else\r\n {\r\n //go back from the history\r\n history.back();\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/back-button.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class BackToTop extends _Abstract {\r\n\r\n constructor(el, options)\r\n {\r\n super(el, $.extend(true, {\r\n type:false,\r\n target_selector:false,\r\n }, options), 'component')\r\n this.bindEvents()\r\n }\r\n \r\n bindEvents()\r\n {\r\n this.$el.click((e) => this.clickBehaviourElementClicked(e));\r\n }\r\n\r\n clickBehaviourElementClicked(e)\r\n {\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n return false;\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/back-to-top.js\n **/","/* \r\n * listings filter js component\r\n */\r\n\r\nimport _Abstract from \"system/abstract\"\r\nexport default class Component_BackgroundImageRotator extends _Abstract {\r\n constructor(el, options) \r\n {\r\n super(el, $.extend(true, \r\n {\r\n duration:3500, //Milliseconds\r\n fadeTime:1500,//Milliseconds\r\n baseImagePath: \"\", //The folder the images live (useful if all of the images are in the same folder, saves on html markup),\r\n sameTimeFadeInOut:false // whether or not the previous image should fade out, if set to false, the next image to rotate in simply goes infront and fades in. otherwise both fade at the same time (if true)\r\n },options), 'component')\r\n\r\n if(typeof this.options.images === \"undefined\" || !this.options.images || !this.options.images.length)\r\n {\r\n console.log(\"No images available to be used in background image rotator\");\r\n return;\r\n }\r\n\r\n this.$imageCtn1 = $(document.createElement(\"div\"));\r\n this.$imageCtn2 = $(document.createElement(\"div\"));\r\n\r\n this.$el.append(this.$imageCtn1);\r\n this.$el.append(this.$imageCtn2);\r\n\r\n this.imageSwapperTimer = null;\r\n\r\n this.imageIndex = -1;\r\n this.initialise();\r\n }\r\n\r\n initialise()\r\n {\r\n\r\n this.loadAndSwapNextImage();\r\n\r\n }\r\n\r\n clearTimer()\r\n {\r\n if(!this.imageSwapperTimer)\r\n {\r\n return;\r\n }\r\n\r\n window.clearTimeout(this.imageSwapperTimer);\r\n this.imageSwapperTimer = null;\r\n }\r\n\r\n resetTimer()\r\n {\r\n this.clearTimer();\r\n this.imageSwapperTimer = window.setTimeout(() => this.loadAndSwapNextImage(),this.options.duration);\r\n }\r\n\r\n loadAndSwapNextImage()\r\n {\r\n console.log(\"loadAndSwapNextImage\");\r\n this.incrementImageIndex();\r\n var imageURL = this.getFullImageURLFromIndex(this.imageIndex);\r\n this.loadAndSwapImageFromURL(imageURL);\r\n }\r\n\r\n incrementImageIndex()\r\n {\r\n ++this.imageIndex;\r\n if(this.imageIndex >= this.options.images.length)\r\n {\r\n this.imageIndex = 0;\r\n }\r\n }\r\n\r\n getFullImageURLFromIndex(_index)\r\n {\r\n var image = this.options.images[_index];\r\n var imageSRC = this.options.baseImagePath + image;\r\n return imageSRC; \r\n }\r\n\r\n\r\n\r\n loadAndSwapImageFromURL(_url)\r\n {\r\n var $elementWithCurrentShowingImage = null;\r\n var $elementToFadeIn = null;\r\n\r\n if(this.$imageCtn1.is(\":visible\"))\r\n {\r\n $elementWithCurrentShowingImage = this.$imageCtn1;\r\n $elementToFadeIn = this.$imageCtn2;\r\n }\r\n else\r\n {\r\n $elementWithCurrentShowingImage = this.$imageCtn2;\r\n $elementToFadeIn = this.$imageCtn1;\r\n }\r\n\r\n\r\n // $elementToFadeIn.css(\"z-index\",\"1\");\r\n // $elementWithCurrentShowingImage.css(\"z-index\",\"0\");\r\n\r\n \r\n\r\n $elementToFadeIn.next().after($elementToFadeIn);\r\n\r\n\r\n var context = this;\r\n $elementToFadeIn.data(\"responsive-image\",_url);\r\n $(\"body\").trigger(\"responsive-image\", {\"$responsiveImageTargets\":$elementToFadeIn,\"fromRotator\":true,\"onComplete\": function()\r\n {\r\n\r\n if(context.options.sameTimeFadeInOut)\r\n {\r\n $elementWithCurrentShowingImage.fadeOut();\r\n }\r\n\r\n $elementToFadeIn.fadeIn(context.options.fadeTime,function()\r\n {\r\n $elementWithCurrentShowingImage.removeData(\"responsive-image\");\r\n $elementWithCurrentShowingImage.css(\"background-image\",\"\");\r\n $elementWithCurrentShowingImage.hide();\r\n context.resetTimer();\r\n })\r\n }});\r\n\r\n\r\n // console.log(\"loadAndSwapImageFromURL\");\r\n // console.log(\"load image url: \" + _url);\r\n // this.$el.data(\"responsive-image\",_url);\r\n // $(\"body\").trigger(\"responsive-image\", {\"$responsiveImageTargets\":this.$el,\"fromRotator\":true});\r\n }\r\n \r\n\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/background-image-rotator.js\n **/","/* \r\n * listings filter js component\r\n */\r\n\r\nimport _Abstract from \"system/abstract\"\r\nexport default class Component_BannerImageRotator extends _Abstract {\r\n constructor(el, options) {\r\n super(el, $.extend(true,{\r\n duration: \"\"\r\n },options), 'component')\r\n\r\n this.imageItems = this.$el.find(\".m-hero__imgitem\");\r\n this.checkBackgroundImageInterval = \"\";\r\n if(this.imageItems.length === 0 || this.imageItems.length === 1) {\r\n console.log(\"No images available to be used in banner image rotator\");\r\n return;\r\n }\r\n this.initialise();\r\n }\r\n\r\n initialise() {\r\n let _this = this;\r\n this.checkBackgroundImageInterval = setInterval(function(){\r\n let checkBackgroundImageLoaded = true;\r\n for(let i=0; i<_this.imageItems.length;i++) {\r\n if(!$(_this.imageItems[i]).hasClass(\"-loaded\")) {\r\n checkBackgroundImageLoaded = false;\r\n }\r\n }\r\n if(checkBackgroundImageLoaded) {\r\n _this.loadAndSwapNextImage();\r\n }\r\n }, 2000)\r\n }\r\n\r\n loadAndSwapNextImage() {\r\n clearInterval(this.checkBackgroundImageInterval)\r\n let _this = this\r\n let initialCount = 0;\r\n setInterval(function(){\r\n $(_this.imageItems[initialCount]).addClass(\"-hidden\").removeClass(\"-stacking\");\r\n ++initialCount\r\n if(initialCount >= _this.imageItems.length ) {\r\n initialCount = 0\r\n }\r\n $(_this.imageItems[initialCount]).removeClass(\"-hidden\").addClass(\"-stacking\");\r\n }, this.options.duration);\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/banner-image-rotator.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_ClickBehaviour extends _Abstract {\r\n\r\n constructor(el, options)\r\n {\r\n super(el, $.extend(true, {\r\n type:false,\r\n target_selector:false,\r\n }, options), 'component')\r\n this.bindEvents()\r\n }\r\n \r\n\r\n bindEvents()\r\n {\r\n\r\n \r\n this.$el.click((e) => this.clickBehaviourElementClicked(e));\r\n }\r\n\r\n\r\n clickBehaviourElementClicked(e)\r\n {\r\n \r\n\r\n if(typeof this.options.desktop_only !== \"undefined\" && this.options.desktop_only)\r\n {\r\n var $desktopBreakpointElement = $(\"#bp-desktop\");\r\n if($desktopBreakpointElement.length)\r\n {\r\n var desktopBreakpointSize = $desktopBreakpointElement.width();\r\n if($(window).outerWidth() < desktopBreakpointSize)\r\n {\r\n //If its desktop only, and we're below desktop size, then dont do it\r\n \r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n switch(this.options.type)\r\n {\r\n case \"set-mobile-sub-page\":\r\n {\r\n this.setMobileSubPageContent(e);\r\n break;\r\n }\r\n case \"close-mobile-sub-page\":\r\n {\r\n this.closeMobileSubPageContent(e);\r\n break;\r\n }\r\n case \"focus\":\r\n {\r\n this.onFocusOnElement();\r\n break;\r\n }\r\n\r\n case \"hide-element-and-empty-child-input\":\r\n {\r\n this.hideElementAndEmptyChildInput();\r\n break;\r\n }\r\n\r\n case \"hide-element-show-element\":\r\n {\r\n this.hideElementShowElement(e);\r\n break;\r\n }\r\n\r\n case \"toggle-class\":\r\n {\r\n this.toggleClass(e);\r\n break;\r\n }\r\n\r\n case \"show-element\":\r\n {\r\n this.showElement();\r\n break;\r\n }\r\n\r\n default:\r\n {\r\n console.log(\"No click behaviour case for : \" + this.options.type);\r\n return false;\r\n }\r\n }\r\n\r\n\r\n if(typeof this.options.scroll_to_new_clicked_element_position !== \"undefined\" && this.options.scroll_to_new_clicked_element_position)\r\n {\r\n // $(window).scrollTop($(e.currentTarget).offset().top);\r\n }\r\n\r\n\r\n $(\"body\").trigger(\"responsive-image-check\",{});\r\n\r\n\r\n }\r\n\r\n onFocusOnElement()\r\n {\r\n var $target = $(this.options.target_selector);\r\n if(!$target.length)\r\n {\r\n console.log(\"Target Selector element not found with '\"+this.options.target_selector+\"' selector\");\r\n return false;\r\n }\r\n window.setTimeout(function(){\r\n $target.focus();\r\n },20);\r\n }\r\n\r\n showElement()\r\n {\r\n var $target = $(this.options.target_selector);\r\n if(!$target.length)\r\n {\r\n console.log(\"Target Selector element not found with '\"+this.options.target_selector+\"' selector\");\r\n return false;\r\n }\r\n\r\n $target.show();\r\n }\r\n\r\n hideElementAndEmptyChildInput()\r\n {\r\n var $target = $(this.options.target_selector);\r\n if(!$target.length)\r\n {\r\n console.log(\"Target Selector element not found with '\"+this.options.target_selector+\"' selector\");\r\n return false;\r\n }\r\n\r\n $($target).hide();\r\n $(\"input\",$target).val(\"\");\r\n }\r\n\r\n toggleClass(_mouseEvent)\r\n {\r\n _mouseEvent.preventDefault();\r\n\r\n if(typeof this.options.element_target === \"undefined\")\r\n {\r\n console.log('toggle-class requires element_target to be set in the options');\r\n return;\r\n }\r\n\r\n if(typeof this.options.class_name === \"undefined\")\r\n {\r\n console.log('toggle-class requires class_name to be set in the options');\r\n return;\r\n }\r\n\r\n var $elementTarget = null;\r\n if(typeof this.options.closest_element !== \"undefined\" && this.options.closest_element)\r\n {\r\n $elementTarget = $(_mouseEvent.currentTarget).closest(this.options.element_target);\r\n }\r\n else\r\n {\r\n $elementTarget = $(this.options.element_target);\r\n }\r\n\r\n if(!$elementTarget.length)\r\n {\r\n console.log(\"No show target element found with '\" +this.options.element_target + \"' selector\" );\r\n return;\r\n }\r\n\r\n var className = this.options.class_name;\r\n\r\n if($elementTarget.hasClass(className))\r\n {\r\n $elementTarget.removeClass(className)\r\n }\r\n else\r\n {\r\n $elementTarget.addClass(className)\r\n }\r\n }\r\n\r\n hideElementShowElement(_mouseEvent)\r\n {\r\n _mouseEvent.preventDefault();\r\n\r\n if(typeof this.options.hide_target === \"undefined\" || typeof this.options.show_target === \"undefined\")\r\n {\r\n console.log('hide-element-show-element requires hide_target and show_target to be set in the options');\r\n return;\r\n }\r\n\r\n var $hidetarget = $(this.options.hide_target);\r\n var $showTarget = $(this.options.show_target);\r\n\r\n if(!$hidetarget.length)\r\n {\r\n console.log(\"No hide target element found with '\" +this.options.hide_target + \"' selector\" );\r\n return;\r\n }\r\n \r\n if(!$showTarget.length)\r\n {\r\n console.log(\"No show target element found with '\" +this.options.show_target + \"' selector\" );\r\n return;\r\n }\r\n\r\n $hidetarget.addClass(\"-hide\");\r\n $showTarget.removeClass(\"-hide\");\r\n }\r\n\r\n\r\n setMobileSubPageContent(_mouseEvent)\r\n {\r\n var $desktopBreakpointElement = $(\"#bp-desktop\");\r\n if($desktopBreakpointElement.length)\r\n {\r\n var desktopBreakpointSize = $desktopBreakpointElement.width();\r\n if($(window).outerWidth() >= desktopBreakpointSize)\r\n {\r\n //If its desktop only, and we're below desktop size, then dont do it\r\n return;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n _mouseEvent.preventDefault();\r\n\r\n if(typeof this.options.element_target === \"undefined\")\r\n {\r\n console.log('toggle-class requires element_target to be set in the options');\r\n return;\r\n }\r\n\r\n var $elementTarget = null;\r\n if(typeof this.options.closest_element !== \"undefined\" && this.options.closest_element)\r\n {\r\n $elementTarget = $(_mouseEvent.currentTarget).closest(this.options.element_target);\r\n }\r\n else\r\n {\r\n $elementTarget = $(\".c-main-content\").find(this.options.element_target);\r\n }\r\n\r\n if(!$elementTarget.length)\r\n {\r\n console.log(\"No show target element found with '\" +this.options.element_target + \"' selector\" );\r\n return;\r\n }\r\n\r\n\r\n\r\n var currentWindowScroll = $(window).scrollTop();\r\n $(window).scrollTop(0);\r\n\r\n $(\".c-mobile-sub-page .content\").empty();\r\n //Save the scroll position, so when we close the 'popup' it goes back to the original position\r\n $(\".c-mobile-sub-page__header-back-btn\").attr('data-original-scroll-top',currentWindowScroll);\r\n $(\"body\").addClass(\"-mobile-sub-page-active\");\r\n\r\n\r\n var deepCopyClone = true;\r\n\r\n $(\".c-mobile-sub-page .content\").html($elementTarget.clone(deepCopyClone, deepCopyClone));\r\n }\r\n\r\n closeMobileSubPageContent(_mouseEvent)\r\n {\r\n var $desktopBreakpointElement = $(\"#bp-desktop\");\r\n if($desktopBreakpointElement.length)\r\n {\r\n var desktopBreakpointSize = $desktopBreakpointElement.width();\r\n if($(window).outerWidth() >= desktopBreakpointSize)\r\n {\r\n _mouseEvent.preventDefault();\r\n //If its desktop only, and we're below desktop size, then dont do it\r\n return;\r\n }\r\n }\r\n var oldWidowScrollPosition = $(\".c-mobile-sub-page__header-back-btn\").attr('data-original-scroll-top');\r\n $(\"body\").removeClass(\"-mobile-sub-page-active\");\r\n $(window).scrollTop(oldWidowScrollPosition);\r\n }\r\n\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/click-behaviour.js\n **/","import _Abstract from \"system/abstract\";\r\n\r\nexport default class Component_CulturePopUp extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {}, options), 'module');\r\n this.initModule();\r\n }\r\n\r\n initModule() {\r\n this.initListeners();\r\n }\r\n\r\n initListeners() {\r\n let _this = this;\r\n if(_this.getCookie(\"culture\") === \"\"){\r\n setTimeout(function(){\r\n $(_this.el).removeClass(\"c-modal__hidden\");\r\n }, _this.options.popupDelayTime)\r\n }\r\n\r\n //--Cancel Button Clicked\r\n function onCancelPopup() {\r\n $(_this.el).fadeOut(\"fast\");\r\n _this.setCookie(\"culture\", \"true\", 100000);\r\n }\r\n \r\n $(\".c-modal--culture .-icon_close, .c-modal--culture .c-btn:not('.-active'),.c-modal--culture .c-modal__desc a\").on(\"click\", onCancelPopup)\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/culture-pop-up.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_FullScreenHtml5Video extends _Abstract {\r\n\r\n constructor(el, options)\r\n {\r\n\r\n super(el, $.extend(true, \r\n {\r\n }, options), 'component')\r\n\r\n\r\n this.initialise()\r\n }\r\n\r\n\r\n initialise()\r\n {\r\n \r\n }\r\n\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/full-screen-html5-video.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_HeaderDesktop extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {\r\n }, options), 'component')\r\nthis.bindEvents()\r\n }\r\n\r\n bindEvents() {\r\n // this.$el.find(\".b-header__top-nav-list--products > a\").click((e) => this.onProductsClicked(e));\r\n // this.$el.find(\".b-header__top-nav-list--learn > a\").click((e) => this.onLearnClicked(e));\r\n // this.$el.find(\".b-header__top-nav-list--contact > a\").click((e) => this.onContactClicked(e));\r\n this.$el.find(\".b-header__top-nav-list--products > a\").mouseenter((e) => this.onProductsHovered(e));\r\n this.$el.find(\".b-header__top-nav-list--learn > a\").mouseenter((e) => this.onLearnHovered(e));\r\n this.$el.find(\".b-header__top-nav-list--contact > a\").mouseenter((e) => this.onContactHovered(e));\r\n \r\n // this.$el.find(\".b-header__top-nav-list--products\").mouseleave((e) => this.onHideProductsHovered(e));\r\n // this.$el.find(\".b-header__top-nav-list--learn\").mouseleave((e) => this.onHideLearnHovered(e));\r\n // this.$el.find(\".b-header__top-nav-list--contact\").mouseleave((e) => this.onHideContactHovered(e));\r\n\r\n // this.$el.find(\".b-header__our-products-desktop-top-navigation\").mouseleave((e) => this.onTopNavigationMouseLeave(e));\r\n\r\n this.$el.find(\".b-header__top-nav-list--products\").mouseleave((e) => this.onProductMouseLeave(e));\r\n this.$el.find(\".b-header__top-nav-list--learn\").mouseleave((e) => this.onLearnMouseLeave(e));\r\n this.$el.find(\".b-header__top-nav-list--contact\").mouseleave((e) => this.onContactMouseLeave(e));\r\n\r\n this.$el.find(\".b-header__top-nav-list--search\").click((e) => this.onSearchIconClicked(e));\r\n this.$el.find(\".c-search-input form\").submit((e) => this.onSearchFormSubmitted(e));\r\n\r\n this.$el.find(\".b-header-content__dropdown\").click((e) => this.onCountryDropdownClicked(e));\r\n this.$el.find(\".b-header-content__dropdown-menu-list-item\").click((e) => this.onCountryDropdownListClicked(e));\r\n\r\n\r\n this.$el.find(\".b-header__our-products-desktop-left-navigation > a\").click((e) => this.onProductsDesktopLeftNavigationClicked(e));\r\n this.$el.find(\".b-header__top-nav-list--bg\").click((e) => this.onProductsDesktopLeftNavigationClicked(e));\r\n\r\n $(\".b-header .c-search-input--input\").keyup((e) => this.onSearchInputKeyUp(e));\r\n\r\n var userAgent = navigator.userAgent.toLowerCase();\r\n const isTablet = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(userAgent);\r\n if (isTablet) {\r\n if (window.matchMedia('(max-device-width : 1366px) and (orientation : landscape)').matches) {\r\n this.$el.find(\".b-header__top-nav-list--products > a\").click((e) => this.onProductsClicked(e));\r\n this.$el.find(\".b-header__top-nav-list--learn > a\").click((e) => this.onLearnClicked(e));\r\n this.$el.find(\".b-header__top-nav-list--contact > a\").click((e) => this.onContactClicked(e));\r\n } else {\r\n this.loadWindowOnResize();\r\n }\r\n }\r\n\r\n this.searchInputPushDownOnSearchResultsPage();\r\n $('body').click((e) => this.bodyClicked(e));\r\n }\r\n\r\n bodyClicked(_event){\r\n if(!$('.b-header-content__dropdown-menu-wrapper').hasClass('-hidden'))\r\n {\r\n $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden')\r\n $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen')\r\n }\r\n }\r\n\r\n onCountryDropdownClicked(_event){\r\n _event.stopPropagation()\r\n if($('.b-header-content__dropdown-menu-wrapper').hasClass('-hidden'))\r\n {\r\n $('.b-header-content__dropdown-wrapper').addClass('-dropdownopen')\r\n $('.b-header-content__dropdown-menu-wrapper').removeClass('-hidden')\r\n } else {\r\n $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen')\r\n $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden')\r\n }\r\n \r\n }\r\n\r\n onCountryDropdownListClicked(_event) {\r\n _event.stopPropagation()\r\n $('.b-header-content__dropdown-menu-wrapper').addClass('-hidden')\r\n $('.b-header-content__dropdown-wrapper').removeClass('-dropdownopen')\r\n }\r\n\r\n\r\n onProductsClicked(_mouseEvent) {\r\n _mouseEvent.preventDefault();\r\n var $productsNavElement = this.$el.find(\".b-header__top-nav-list--products\");\r\n if ($productsNavElement.hasClass(\"-expanded\")) {\r\n this.hideProductsItems();\r\n }\r\n else {\r\n // if($(\"html\").hasClass(\"no-touch\"))\r\n // {\r\n // //Will roll over instead\r\n // return;\r\n // }\r\n this.showProductsItems();\r\n }\r\n // var $productsSideNavElem = $(\".sub-nav-items.-products\");\r\n // if($productsSideNavElem.hasClass(\"-hide\")) {\r\n // $productsSideNavElem.removeClass(\"-hide\");\r\n // } else {\r\n // $productsSideNavElem.addClass(\"-hide\");\r\n // }\r\n }\r\n\r\n onLearnClicked(_mouseEvent) {\r\n _mouseEvent.preventDefault();\r\n var $learnNavElement = this.$el.find(\".b-header__top-nav-list--learn\");\r\n if ($learnNavElement.hasClass(\"-expanded\")) {\r\n this.hideLearnItems();\r\n }\r\n else {\r\n // if($(\"html\").hasClass(\"no-touch\"))\r\n // {\r\n // //Will roll over instead\r\n // return;\r\n // }\r\n this.showLearnItems();\r\n }\r\n // var $learnSideNavElem = $(\".sub-nav-items.-learn\");\r\n // if($learnSideNavElem.hasClass(\"-hide\")) {\r\n // $learnSideNavElem.removeClass(\"-hide\");\r\n // } else {\r\n // $learnSideNavElem.addClass(\"-hide\");\r\n // }\r\n }\r\n\r\n onContactClicked(_mouseEvent) {\r\n _mouseEvent.preventDefault();\r\n var $productsNavElement = this.$el.find(\".b-header__top-nav-list--contact\");\r\n if ($productsNavElement.hasClass(\"-expanded\")) {\r\n this.hideContactItems();\r\n }\r\n else {\r\n // if($(\"html\").hasClass(\"no-touch\"))\r\n // {\r\n // //Will roll over instead\r\n // return;\r\n // }\r\n this.showContactItems();\r\n }\r\n }\r\n\r\n onSearchInputKeyUp(_keyEvent) {\r\n switch (_keyEvent.keyCode) {\r\n case 13: //enter\r\n {\r\n if (!window.location.origin) {\r\n window.location.origin = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n // this.onEnterPressed(_keyEvent);\r\n var searchTerm = encodeURIComponent(_keyEvent.target.value);\r\n var navigationLocation = window.location.origin + \"/search?searchtext=\" + searchTerm + \"&searchmode=anyword\";\r\n window.location.href = navigationLocation;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onProductsHovered(_mouseEvent) {\r\n this.showProductsItems();\r\n this.onSubNavSearchItemClosed();\r\n }\r\n\r\n onLearnHovered(_mouseEvent) {\r\n this.showLearnItems();\r\n this.onSubNavSearchItemClosed();\r\n }\r\n\r\n onContactHovered(_mouseEvent) {\r\n this.showContactItems();\r\n this.onSubNavSearchItemClosed();\r\n }\r\n\r\n onHideProductsHovered(_mouseEvent) {\r\n this.hideProductsItems();\r\n }\r\n\r\n onHideLearnHovered(_mouseEvent) {\r\n this.hideLearnItems();\r\n }\r\n\r\n onHideContactHovered(_mouseEvent) {\r\n this.hideContactItems();\r\n }\r\n\r\n onSearchIconClicked(_mouseEvent) {\r\n var $topNavListSearch = this.$el.find(\".b-header__top-nav-list--search\");\r\n\r\n if ($topNavListSearch.hasClass(\"-expanded\")) {\r\n //Close it\r\n $topNavListSearch.removeClass(\"-expanded\");\r\n this.$el.find(\".c-search-input\").addClass(\"-hide\");\r\n this.onSubNavItemClosed();\r\n }\r\n else {\r\n\r\n //Open it\r\n this.closeAllTopNavItems();\r\n $topNavListSearch.addClass(\"-expanded\");\r\n this.showSubNavItem(\".c-search-input\");\r\n\r\n\r\n this.$el.find(\".c-search-input--input\").focus();\r\n }\r\n }\r\n\r\n\r\n\r\n onProductMouseLeave(_mouseEvent) {\r\n\r\n\r\n if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\r\n return;\r\n }\r\n\r\n this.hideProductsItems();\r\n }\r\n\r\n onLearnMouseLeave(_mouseEvent) {\r\n\r\n\r\n if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\r\n return;\r\n }\r\n\r\n this.hideLearnItems();\r\n }\r\n\r\n onContactMouseLeave(_mouseEvent) {\r\n\r\n\r\n if (!this.$el.find(\".b-header__top-nav-list--learn\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--products\").hasClass(\"-expanded\") && !this.$el.find(\".b-header__top-nav-list--contact\").hasClass(\"-expanded\")) {\r\n return;\r\n }\r\n\r\n this.hideContactItems();\r\n }\r\n\r\n showLearnItems() {\r\n this.closeAllTopNavItems();\r\n this.$el.find(\".b-header__top-nav-list--learn\").addClass(\"-expanded\");\r\n this.showSubNavItem(\".b-header__top-nav-list--learn-items\");\r\n }\r\n\r\n hideLearnItems() {\r\n this.$el.find(\".b-header__top-nav-list--learn\").removeClass(\"-expanded\");\r\n this.$el.find(\".b-header__top-nav-list--learn-items\").addClass(\"-hide\");\r\n this.onSubNavItemClosed();\r\n }\r\n\r\n showProductsItems() {\r\n this.closeAllTopNavItems();\r\n this.$el.find(\".b-header__top-nav-list--products\").addClass(\"-expanded\");\r\n this.showSubNavItem(\".b-header__top-nav-list--products-items\");\r\n }\r\n\r\n hideProductsItems() {\r\n this.$el.find(\".b-header__top-nav-list--products\").removeClass(\"-expanded\");\r\n this.$el.find(\".b-header__top-nav-list--products-items\").addClass(\"-hide\");\r\n this.onSubNavItemClosed();\r\n }\r\n\r\n showContactItems() {\r\n this.closeAllTopNavItems();\r\n this.$el.find(\".b-header__top-nav-list--contact\").addClass(\"-expanded\");\r\n this.showSubNavItem(\".b-header__top-nav-list--contact-items\");\r\n }\r\n\r\n hideContactItems() {\r\n this.$el.find(\".b-header__top-nav-list--contact\").removeClass(\"-expanded\");\r\n this.$el.find(\".b-header__top-nav-list--contact-items\").addClass(\"-hide\");\r\n this.onSubNavItemClosed();\r\n }\r\n\r\n closeAllTopNavItems() {\r\n this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\r\n }\r\n\r\n\r\n showSubNavItem(_selector) {\r\n var $subNavItem = $(_selector);\r\n if (!$subNavItem.length) {\r\n console.log(\"sub nav item not found with \" + _selector + \" selector\");\r\n return;\r\n }\r\n\r\n this.onSubNavItemOpened();\r\n this.$el.find(\".sub-nav-items > *\").addClass(\"-hide\");\r\n $subNavItem.removeClass(\"-hide\");\r\n }\r\n\r\n onSubNavItemOpened() {\r\n this.$el.find(\".sub-nav-items\").removeClass(\"-hide\");\r\n }\r\n\r\n onSubNavItemClosed() {\r\n this.$el.find(\".sub-nav-items\").addClass(\"-hide\");\r\n this.$el.find(\".c-search-input__results\").addClass(\"-hide\");\r\n //this.$el.find(\".c-search-input--input\").val(\"\");\r\n }\r\n\r\n onSubNavSearchItemClosed() {\r\n this.$el.find(\".c-search-input\").addClass(\"-hide\");\r\n //this.$el.find(\".c-search-input--input\").val(\"\");\r\n }\r\n\r\n onSearchInputFocused(_mouseEvent) {\r\n $(window).scrollTop(0);\r\n this.$el.addClass(\"-search-input-focused\");\r\n\r\n }\r\n onSearchInputFocusOut(_mouseEvent) {\r\n $(window).scrollTop(0);\r\n this.$el.removeClass(\"-search-input-focused\");\r\n\r\n }\r\n\r\n onSearchFormSubmitted(_formSubmitEvent) {\r\n _formSubmitEvent.preventDefault();\r\n _formSubmitEvent.stopPropagation();\r\n\r\n this.$el.find(\".c-search-input__results\").removeClass(\"-hide\");\r\n }\r\n\r\n onProductsDesktopLeftNavigationClicked(_mouseEvent) {\r\n var $leftNavigationElement = this.$el.find(\".b-header__our-products-desktop-left-navigation\");\r\n if (!$leftNavigationElement.length) {\r\n console.log(\"Could not find Left Navigation\");\r\n return;\r\n }\r\n\r\n if ($leftNavigationElement.hasClass(\"-expanded\")) {\r\n $leftNavigationElement.removeClass(\"-expanded\");\r\n // $(\"body\").removeAttr(\"style\");\r\n }\r\n else {\r\n $leftNavigationElement.addClass(\"-expanded\");\r\n // $(\"body\").css(\"overflow\",\"hidden\");\r\n }\r\n }\r\n\r\n\r\n onDesktopOnlySearchClicked(_mouseEvent) {\r\n console.log(\"onDesktopOnlySearchClicked\")\r\n if (this.$el.hasClass(\"-child-nav-li-expanded\")) {\r\n this.$el.find(\".c-search-input.-desktop-only\").removeClass(\"-hide\");\r\n }\r\n }\r\n\r\n loadWindowOnResize() {\r\n $(window).resize(function (event) {\r\n console.log($('Resizd'))\r\n this.location.reload();\r\n });\r\n }\r\n\r\n searchInputPushDownOnSearchResultsPage() {\r\n if($('.content-margin').hasClass('furnware-search-results')) {\r\n $('.b-header__our-products-desktop-top-navigation').addClass('-push-search-results');\r\n } else {\r\n $('.b-header__our-products-desktop-top-navigation').removeClass('-push-search-results');\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/header-desktop.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_HeaderMobile extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {\r\n }, options), 'component')\r\n this.bindEvents()\r\n }\r\n\r\n\tbindEvents()\r\n\t{\r\n this.$el.find(\".c-header__mobile-close-sub-nav\").click((e) => this.onMobileCloseSubNav(e));\r\n this.$el.find(\".c-header__mobile-menu-toggle\").click((e) => this.onMobileMenuToggled(e));\r\n this.$el.find(\".b-header__top-nav-list > li > a\").click((e) => this.onListItemAClicked(e));\r\n this.$el.find(\".c-search-input .c-search-input--input\").focus((e) => this.onSearchInputFocused(e));\r\n this.$el.find(\".c-search-input form\").submit((e) => this.onSearchFormSubmitted(e));\r\n\r\n\r\n $(window).resize(function (event) {\r\n if($(this).width() < 350) {\r\n $('.b-header__top-nav-list.-countryselection').addClass('-pt17')\r\n } else {\r\n if($('.b-header__top-nav-list.-countryselection').hasClass('-pt17'))\r\n {\r\n $('.b-header__top-nav-list.-countryselection').removeClass('-pt17')\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n \r\n onMobileCloseSubNav(_mouseEvent)\r\n {\r\n this.$el.find(\".c-search-input--input\").val(\"\");\r\n this.$el.removeClass(\"-search-input-focused\");\r\n this.$el.removeClass(\"-has-search-results\");\r\n this.$el.removeClass(\"-child-nav-li-expanded\");\r\n this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\r\n _mouseEvent.preventDefault();\r\n }\r\n\r\n\r\n onMobileMenuToggled(_mouseEvent)\r\n {\r\n var $clickedTarget = $(_mouseEvent.currentTarget);\r\n\r\n if(this.$el.hasClass(\"-expanded\"))\r\n {\r\n this.$el.removeClass(\"-expanded\");\r\n this.$el.removeClass(\"-search-input-focused\");\r\n }\r\n else\r\n {\r\n this.$el.addClass(\"-expanded\"); \r\n }\r\n\r\n _mouseEvent.preventDefault();\r\n }\r\n\r\n onListItemAClicked(_mouseEvent,_bRemoveClassEnabled)\r\n {\r\n if(typeof _bRemoveClassEnabled === \"undefined\")\r\n {\r\n _bRemoveClassEnabled = true;\r\n }\r\n\r\n var $currentTarget = $(_mouseEvent.currentTarget);\r\n var $currentTargetParent = $currentTarget.parent();\r\n var $currentTargetUL = $currentTargetParent.find(\"> ul\");\r\n if(!$currentTargetUL.length)\r\n {\r\n return;\r\n }\r\n _mouseEvent.preventDefault();\r\n var currentTargetIsExpanded = _bRemoveClassEnabled ? $currentTargetParent.hasClass(\"-expanded\") : false;\r\n this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\r\n\r\n if(currentTargetIsExpanded)\r\n {\r\n if(_bRemoveClassEnabled)\r\n {\r\n $currentTargetParent.removeClass(\"-expanded\");\r\n }\r\n }\r\n else\r\n {\r\n $currentTargetParent.addClass(\"-expanded\");\r\n }\r\n\r\n if(this.$el.find(\".b-header__top-nav-list > li.-expanded\").length)\r\n {\r\n this.$el.addClass(\"-child-nav-li-expanded\");\r\n }\r\n else\r\n {\r\n if(_bRemoveClassEnabled)\r\n {\r\n this.$el.removeClass(\"-child-nav-li-expanded\");\r\n \r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n onMouseLeaveHeader(_mouseEvent)\r\n {\r\n this.$el.find(\".b-header__top-nav-list > li\").removeClass(\"-expanded\");\r\n this.$el.removeClass(\"-child-nav-li-expanded\");\r\n }\r\n\r\n onSearchInputFocused(_mouseEvent)\r\n {\r\n $(window).scrollTop(0);\r\n this.$el.addClass(\"-search-input-focused\");\r\n\r\n }\r\n\r\n onSearchFormSubmitted(_formSubmitEvent)\r\n {\r\n _formSubmitEvent.preventDefault();\r\n _formSubmitEvent.stopPropagation();\r\n\r\n this.$el.addClass('-has-search-results');\r\n\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/header-mobile.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_HoverBehaviour extends _Abstract {\r\n\r\n constructor(el, options)\r\n {\r\n super(el, $.extend(true, {\r\n type:false,\r\n target_selector:false,\r\n }, options), 'component')\r\n this.bindEvents()\r\n }\r\n \r\n\r\n bindEvents()\r\n {\r\n this.$el.hover((e) => this.onElementHovered(e));\r\n }\r\n\r\n\r\n onElementHovered(e)\r\n {\r\n switch(this.options.type)\r\n {\r\n case \"focus\":\r\n {\r\n this.onFocusOnElement();\r\n break;\r\n }\r\n\r\n case \"add-class-to-other-element\":\r\n {\r\n this.onAddClassToOtherElement();\r\n break;\r\n }\r\n\r\n default:\r\n {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n onAddClassToOtherElement()\r\n {\r\n \r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/hover-behaviour.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_MoveOnScroll extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {\"offset_animation_start_pixels\":0,\"reverse_movement\":false, \"offset_animation_by_element_top_offset\": false}, options), 'component')\r\n \r\n this.BEGIN_ON_SCREEN_PERCENTAGE = typeof this.options.begin_scroll_percentage === \"undefined\" ? 5 : this.options.begin_scroll_percentage;\r\n this.END_ON_SCREEN_PERCENTAGE = typeof this.options.end_scroll_percentage === \"undefined\" ? 80 : this.options.end_scroll_percentage;;\r\n this.$window = $(window);\r\n this.$parent = this.$el.parent();\r\n this.initialise();\r\n }\r\n\r\n initialise()\r\n {\r\n this.setPositionBasedOnScroll();\r\n }\r\n\r\n\r\n setPositionBasedOnScroll()\r\n {\r\n var percentageOfMovement = this.getPercentageOfMovement();\r\n var oneScalePercentageOfMovement = (percentageOfMovement / 100);\r\n\r\n if(this.options.reverse_movement)\r\n {\r\n oneScalePercentageOfMovement = 1 - oneScalePercentageOfMovement;\r\n }\r\n\r\n var left = this.options.left * oneScalePercentageOfMovement;\r\n var top = this.options.top * oneScalePercentageOfMovement;\r\n this.$el.css(\"transform\",\"translate3d(\"+left+\"rem,\"+top+\"rem,0)\");\r\n\r\n\r\n window.requestAnimationFrame(() => this.setPositionBasedOnScroll());\r\n }\r\n\r\n getPercentageOfMovement()\r\n { \r\n var topOfParent = this.$parent.offset().top ;\r\n var windowHeight = this.$window.height();\r\n var scrollTopPosition = this.$window.scrollTop();\r\n\r\n if(this.options.offset_animation_start_pixels)\r\n {\r\n scrollTopPosition -= this.options.offset_animation_start_pixels;\r\n }\r\n\r\n if(this.options.offset_animation_by_element_top_offset)\r\n {\r\n scrollTopPosition -= (this.$window.height() - topOfParent);\r\n }\r\n\r\n var scrollTopPlusWindowHeight = scrollTopPosition + windowHeight;\r\n\r\n\r\n\r\n\r\n var pixelsOfElementOnScreen = scrollTopPlusWindowHeight - topOfParent;\r\n var percentageOnScreen = pixelsOfElementOnScreen / windowHeight;\r\n if(percentageOnScreen < 0)\r\n {\r\n percentageOnScreen = 0;\r\n }\r\n else if(percentageOnScreen > 1)\r\n {\r\n percentageOnScreen = 1;\r\n }\r\n\r\n return percentageOnScreen * 100;\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/move-on-scroll.js\n **/","import _Abstract from \"system/abstract\"\r\nimport UtilsMath from \"lib/utils-math\";\r\n\r\nexport default class Component_RotateOnScroll extends _Abstract {\r\n\r\n constructor(el, options) {\r\n\r\n var defaultOptions = {\r\n //Note the radius is based on the screen width\r\n //so 1920 = 1 scale\r\n //so if a radius of 400 is passed in, then at 1920 browser width it'll be 400 radius\r\n //If at browser width of 960 then it'll be 200 radius\r\n \"radius\":null,\r\n \"rotation_times_per_screen_height\":1, //rotation_times_per_screen_height means that it'll rotate the element once fully based on a scroll of a whole page if set to 1\r\n \"begin_rotation_around_point_degrees\":0, \r\n \"initial_image_rotation_degrees\":0,\r\n \"radius_percentage_of_parent_width\":false //set a percentage value to determine the radius based on the parent (width /2)\r\n }\r\n\r\n super(el, $.extend(true, defaultOptions, options), 'component')\r\n \r\n \r\n if(this.options.radius === null && !this.options.radius_percentage_of_parent_width)\r\n {\r\n console.log(\"A radius must be passed in as an option for RotateOnScroll, or radius_percentage_of_parent_width set\");\r\n return;\r\n }\r\n\r\n this.$parent = this.$el.parent();\r\n this.$window = $(window);\r\n\r\n this.initialise();\r\n }\r\n\r\n initialise()\r\n {\r\n this.setPositionBasedOnScroll();\r\n }\r\n\r\n\r\n setPositionBasedOnScroll()\r\n {\r\n\r\n if(this.options.radius_percentage_of_parent_width)\r\n {\r\n var radius = (this.$parent.width() * 0.5) * (this.options.radius_percentage_of_parent_width * 0.01);\r\n }\r\n else\r\n {\r\n var vw = $(window).width()/1920;\r\n var radius = this.options.radius * vw;\r\n }\r\n\r\n var numberOfWindowHeightScrolled = this.getNumberOfWindowHeightScrolled();\r\n var rotation = (360 * numberOfWindowHeightScrolled * this.options.rotation_times_per_screen_height) + this.options.begin_rotation_around_point_degrees;\r\n var numberOf360s = Math.floor(rotation / 360);\r\n rotation -= (360 * numberOf360s);\r\n var x = UtilsMath.polarToCartesianX(radius, rotation, true);\r\n var y = UtilsMath.polarToCartesianY(radius, rotation, true)\r\n this.$el.css(\"transform\",\"translate3d(\"+x+\"px,\"+y+\"px,0) rotate(\"+(rotation + this.options.initial_image_rotation_degrees)+\"deg)\");\r\n\r\n window.requestAnimationFrame(() => this.setPositionBasedOnScroll());\r\n }\r\n\r\n getNumberOfWindowHeightScrolled()\r\n { \r\n var windowHeight = this.$window.height();\r\n var scrollTopPosition = this.$window.scrollTop();\r\n return scrollTopPosition / windowHeight;\r\n }\r\n}\n\n\n/** WEBPACK FOOTER **\n ** ./components/rotate-on-scroll.js\n **/","//Created by Matthew van der Haas (matt@vdhdesign.co.nz)\r\nclass UtilsMath\r\n{\r\n isPointWithinBounds(_pointX,_pointY,_boundsX,_boundsY,_width,_height)\r\n {\r\n return _pointX >=_boundsX && _pointX <= _boundsX+_width && _pointY >=_boundsY && _pointY <= _boundsY+_height;\r\n }\r\n \r\n getDistanceSquaredBetween2dPoints(_fX0, _fY0,_fX1, _fY1)\r\n {\r\n var fResultX = Math.pow((_fX1 - _fX0), 2.0);\r\n var fResultY = Math.pow((_fY1 - _fY0), 2.0);\r\n var fResult = fResultX + fResultY;\r\n return fResult;\t\r\n }\r\n\r\n\r\n getDistanceBetween2dPoints(_point1,_point2)\r\n {\r\n var fResultX = Math.pow((_point2.x - _point1.x), 2.0);\r\n var fResultY = Math.pow((_point2.y - _point1.y), 2.0);\r\n var fResult = Math.sqrt(fResultX + fResultY);\r\n return fResult;\r\n\r\n }\r\n\r\n polarToCartesianX(_fPolarRadius, _fPolarAngle, _bInDegrees = true)\r\n {\r\n if(_bInDegrees)\r\n {\r\n _fPolarAngle = this.degreesToRadians(_fPolarAngle);\r\n }\r\n\r\n var fCartesianX = _fPolarRadius * Math.cos(_fPolarAngle);\r\n return fCartesianX;\r\n }\r\n\r\n polarToCartesianY(_fPolarRadius, _fPolarAngle, _bInDegrees = true)\r\n {\r\n if(_bInDegrees)\r\n {\r\n _fPolarAngle = this.degreesToRadians(_fPolarAngle);\r\n }\r\n\r\n var fCartesianY = _fPolarRadius * Math.sin(_fPolarAngle);\r\n return fCartesianY;\r\n }\r\n\r\n cartesianToPolarAngle(_fCartesianX, _fCartesianY, _bInDegrees = true)\r\n {\r\n var polarAngle = Math.atan(_fCartesianY/_fCartesianX);\r\n\r\n polarAngle += this.returnRadianValueToAdd(_fCartesianX,_fCartesianY);\r\n\r\n if(_bInDegrees)\r\n {\r\n polarAngle = this.radianToDegrees(polarAngle);\r\n }\r\n return polarAngle;\r\n }\r\n\r\n getPerpendicularCartesianX(_fPolarRadius, _fPolarAngle, _bInDegrees)\r\n {\r\n //todo fix for radians\r\n if(_bInDegrees)\r\n {\r\n _fPolarAngle -= 90;\r\n \r\n if(_fPolarAngle < 0)\r\n {\r\n _fPolarAngle += 360;\r\n }\r\n }\r\n //in radians\r\n else\r\n {\r\n _fPolarAngle -= Math.PI/2;\r\n \r\n if(_fPolarAngle < 0)\r\n {\r\n _fPolarAngle += Math.PI*2;\r\n }\r\n }\r\n\r\n return this.polarToCartesianX(_fPolarRadius,_fPolarAngle,_bInDegrees);\r\n\r\n }\r\n\r\n\r\n getPerpendicularCartesianY(_fPolarRadius, _fPolarAngle, _bInDegrees)\r\n {\r\n //todo fix for radians\r\n if(_bInDegrees)\r\n {\r\n _fPolarAngle -= 90;\r\n \r\n if(_fPolarAngle < 0)\r\n {\r\n _fPolarAngle += 360;\r\n }\r\n }\r\n //in radians\r\n else\r\n {\r\n _fPolarAngle -= Math.PI/2;\r\n \r\n if(_fPolarAngle < 0)\r\n {\r\n _fPolarAngle += Math.PI*2;\r\n }\r\n }\r\n return this.polarToCartesianY(_fPolarRadius,_fPolarAngle,_bInDegrees);\r\n }\r\n\r\n\r\n returnRadianValueToAdd(_fCartesianX, _fCartesianY)\r\n {\r\n var iQuadrant = this.getQuadrant(_fCartesianX, _fCartesianY);\r\n if(iQuadrant == 1)\r\n {\r\n return 0;\r\n }\r\n else if(iQuadrant == 2 || iQuadrant == 3)\r\n {\r\n return Math.PI;\r\n }\r\n else\r\n {\r\n return Math.PI*2;\r\n }\r\n }\r\n\r\n\r\n getQuadrant(_fCartesianX, _fCartesianY)\r\n {\r\n\r\n if( _fCartesianX >= 0 && _fCartesianY >= 0)\r\n {\r\n return 1;\r\n }\r\n else if(_fCartesianX < 0 && _fCartesianY >= 0)\r\n {\r\n return 2;\r\n }\r\n else if(_fCartesianX < 0 && _fCartesianY < 0)\r\n {\r\n return 3;\r\n }\r\n else\r\n {\r\n return 4;\r\n }\r\n }\r\n\r\n\r\n radianToDegrees(_fRadian)\r\n {\r\n var fInDegrees = (_fRadian/Math.PI)*180;\r\n return fInDegrees;\r\n }\r\n\r\n\r\n degreesToRadians(_fDegrees)\r\n {\r\n var fInRadians = (_fDegrees/180)*Math.PI;\r\n return fInRadians;\r\n }\r\n\r\n\r\n getRandomBool()\r\n {\r\n var randomNum = this.getRandomNumber(1,50);\r\n var randomBool = (randomNum % 2 == 0);\r\n return randomBool;\r\n }\r\n\r\n /**\r\n * Returns a random number between min and max\r\n */\r\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FMath%2Frandom\r\n getRandomNumber(min, max)\r\n {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n getDifference(_fXFrom, _fXTo)\r\n {\r\n var fDifference = _fXTo - _fXFrom;\r\n return fDifference;\r\n }\r\n}\r\n\r\nexport default (new UtilsMath());\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./lib/utils-math.js\n **/","\r\n// --\r\n// FACEBOOK SHARE\r\n// --\r\n// class that shares shareurl via facebook dialog\r\n//\r\n\r\n// --\r\n// USAGE\r\n// --\r\n//\r\n// data-component=\"share-facebook\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\r\n//\r\n// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\r\n//\r\n\r\n\r\nimport Component_share_base from './_share-base'\r\n\r\nexport default class Component_share_facebook extends Component_share_base {\r\n\r\n constructor(el, options) {\r\n\r\n super(el, $.extend(true, {\r\n\r\n 'windowTarget':'http://www.facebook.com/sharer.php?u=',\r\n 'windowName':'facebook share',\r\n 'windowParams':'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\r\n\r\n }, options), 'component');\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/share-facebook.js\n **/","\r\n// --\r\n// LINKEDIN SHARE\r\n// --\r\n// class that shares shareurl via linkedin dialog\r\n//\r\n\r\n// --\r\n// USAGE\r\n// --\r\n//\r\n// data-component=\"share-linkedin\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\r\n//\r\n// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\r\n//\r\n\r\n\r\nimport Component_share_base from './_share-base'\r\n\r\nexport default class Component_share_linkedin extends Component_share_base {\r\n\r\n constructor(el, options) {\r\n\r\n super(el, $.extend(true, {\r\n\r\n 'windowTarget':'http://www.linkedin.com/shareArticle?mini=true&url=',\r\n 'windowName':'LinkedIn',\r\n 'windowParams':'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\r\n\r\n }, options), 'component');\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/share-linkedin.js\n **/","\r\n// --\r\n// Pinterest SHARE\r\n// --\r\n// class that shares shareurl via Pinterest dialog\r\n//\r\n\r\n// --\r\n// USAGE\r\n// --\r\n//\r\n// data-component=\"share-pinterest\" data-component-options='{\"shareURL\":\"[url-to-share]\"}'\r\n//\r\n// \"shareURL\" is the site url to share ie http://uniondigital.co.nz\r\n//\r\n\r\n\r\nimport Component_share_base from './_share-base'\r\n\r\nexport default class Component_share_pinterest extends Component_share_base {\r\n\r\n constructor(el, options) {\r\n\r\n var imageURL = $(\"head\").find(\"meta[property='og:image']\").attr(\"content\");\r\n var pageDescription = $(\"head\").find(\"meta[property='og:description']\").attr(\"content\");\r\n // var imageURL = typeof options.image !== \"undefined\" ? options.image : $(\"head\").find(\"meta[property='og:image']\").attr(\"content\");\r\n // var pageDescription = typeof options.description !== \"undefined\" ? options.description : $(\"head\").find(\"meta[property='og:description']\").attr(\"content\");\r\n if(!imageURL)\r\n {\r\n console.log(\"No image passed in and could not find og image tag\");\r\n return;\r\n }\r\n\r\n if(!pageDescription)\r\n {\r\n console.log(\"No description passed in and could not find og page description tag\");\r\n return;\r\n }\r\n\r\n super(el, $.extend(true, {\r\n\r\n// Pin It\r\n\r\n\r\n 'windowTarget':'http://www.pinterest.com/pin/create/button/?media='+imageURL+'&description='+pageDescription+'&url=',\r\n 'windowName':'Pinterest',\r\n 'windowParams':'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\r\n\r\n }, options), 'component');\r\n\r\n }\r\n\r\n\r\n // overload base trigerShare function\r\n //combine share text with share url if share url isn't false\r\n \r\n triggerShare(event){\r\n\r\n this.readLatestElementOptions();\r\n\r\n event.preventDefault();\r\n\r\n var textToShare = \"\";\r\n\r\n if(typeof this.options.shareText !== \"undefined\")\r\n {\r\n textToShare = this.options.shareText;\r\n }\r\n\r\n if(this.options.shareURL)\r\n {\r\n if(textToShare)\r\n {\r\n textToShare += \" \";\r\n }\r\n textToShare += this.options.shareURL;\r\n }\r\n\r\n this.openSharePopup(textToShare,this.options.windowTarget,this.options.windowName,this.options.windowParams);\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/share-pinterest.js\n **/","\r\n// --\r\n// TWITTER SHARE\r\n// --\r\n// class that shares shareTxt via twiter dialog/web intent\r\n//\r\n\r\n// --\r\n// USAGE\r\n// --\r\n//\r\n// data-component=\"share-twitter\" data-component-options='{\"shareURL\":false,\"shareText\":\"[share text here]\"}'\r\n//\r\n// \"shareURL\" if set to false won't be apeneded to end of share text\r\n// \"shareText\" is the text that gets shared as a tweet\r\n//\r\n\r\n\r\nimport Component_share_base from './_share-base'\r\n\r\nexport default class Component_share_twitter extends Component_share_base {\r\n\r\n constructor(el, options) {\r\n\r\n super(el, $.extend(true, {\r\n\r\n 'windowTarget':'https://twitter.com/intent/tweet?text=',\r\n 'windowName':'twitter',\r\n 'windowParams':'left=0,top=0,width=650,height=420,personalbar=0,toolbar=0,scrollbars=0,resizable=0'\r\n\r\n }, options), 'component');\r\n\r\n }\r\n\r\n \r\n // overload base trigerShare function\r\n //combine share text with share url if share url isn't false\r\n \r\n triggerShare(event){\r\n\r\n this.readLatestElementOptions();\r\n\r\n event.preventDefault();\r\n\r\n var textToShare = this.options.shareText;\r\n\r\n if(this.options.shareURL)\r\n {\r\n textToShare = textToShare + \" \"+this.options.shareURL;\r\n }\r\n\r\n this.openSharePopup(textToShare,this.options.windowTarget,this.options.windowName,this.options.windowParams);\r\n\r\n }\r\n\r\n}\r\n\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/share-twitter.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_SocialNetworksPopup extends _Abstract {\r\n\r\n constructor(el, options)\r\n {\r\n super(el, $.extend(true, {\r\n }, options), 'component')\r\n this.bindEvents()\r\n }\r\n \r\n\r\n bindEvents()\r\n {\r\n this.$el.click((e) => this.onTriggerElementClicked(e));\r\n }\r\n\r\n\r\n onTriggerElementClicked(e)\r\n {\r\n console.log(\"onTriggerElementClicked\");\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/social-networks-popup.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\n//A simple component which just toggles a class in all immediate children of the element this component is attached to \r\n\r\nexport default class Component_ToggleChildClasses extends _Abstract {\r\n\r\n\tconstructor(el, options)\r\n\t{\r\n\t\tsuper(el, $.extend(true, {\r\n\t\t\ttoggle_class:false\r\n\t\t}, options), 'component')\r\n\r\n\t\tif(!this.options.toggle_class)\r\n\t\t{\r\n\t\t\tconsole.log(\"Toggle Child Classes component has no toggle_class specified\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.bindEvents()\r\n\t}\r\n\r\n\r\n bindEvents()\r\n {\r\n this.$el.on(\"click\",\"> *\",(e) => this.immediateChildClicked(e));\r\n }\r\n\r\n immediateChildClicked(e)\r\n {\r\n \tconsole.log(\"immediate\");\r\n \tvar $target = $(e.currentTarget);\r\n \tif($target.hasClass(this.options.toggle_class))\r\n \t{\r\n \t\t$target.removeClass(this.options.toggle_class);\r\n \t}\r\n \telse\r\n \t{\r\n \t\t$target.addClass(this.options.toggle_class);\r\n \t}\r\n }\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/toggle-child-classes.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_VerticalSlide extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, \r\n {\r\n //scroll_per_pixel_multiplier takes the number of pixels it has scrolled onthe page, and then multiplies it by this\r\n //So the lower the number the 'slower' it appears, as it is actually closer to matching the speed of the scrolling itself\r\n scroll_per_pixel_multiplier: 0.08 \r\n }, options), 'component')\r\n\r\n this.PERENTAGE_OF_ASSET_TO_BE_ON_SCREEN_TO_START = 0; \r\n \r\n this.$window = $(window);\r\n this.initialise();\r\n }\r\n\r\n initialise()\r\n {\r\n this.setPositionBasedOnScroll();\r\n }\r\n\r\n isElementOnScreen()\r\n {\r\n return this.$el.offset().top < (this.$window.scrollTop() + this.$window.height());\r\n }\r\n\r\n setPositionBasedOnScroll()\r\n {\r\n var bIsElementOnScreen = this.isElementOnScreen();\r\n if(!bIsElementOnScreen)\r\n {\r\n window.requestAnimationFrame(() => this.setPositionBasedOnScroll());\r\n return;\r\n }\r\n\r\n this.$el.css(\"transform\",\"none\");\r\n var pixelsOfElementRequiredOnScreen = (this.$el.height() * (this.PERENTAGE_OF_ASSET_TO_BE_ON_SCREEN_TO_START * 0.001));\r\n var originalPositionPlusRequiredOnScreen = this.$el.offset().top + pixelsOfElementRequiredOnScreen ;\r\n var pixelsFromBottomOfScreen = (this.$window.scrollTop() + this.$window.height()) - originalPositionPlusRequiredOnScreen;\r\n this.$el.css(\"transform\",\"translate3d(0,\" + pixelsFromBottomOfScreen*this.options.scroll_per_pixel_multiplier + \"rem,0)\");\r\n window.requestAnimationFrame(() => this.setPositionBasedOnScroll());\r\n }\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/vertical-slide.js\n **/","import _Abstract from \"system/abstract\"\r\n\r\nexport default class Component_VideoPlayer extends _Abstract {\r\n\r\n constructor(el, options) {\r\n super(el, $.extend(true, {\r\n type:false,\r\n target_selector:false,\r\n }, options), 'component')\r\n\r\n\r\n this.bindEvents()\r\n }\r\n\r\n bindEvents() {\r\n \t\r\n }\r\n\r\n\r\n}\r\n\n\n\n/** WEBPACK FOOTER **\n ** ./components/video-player.js\n **/"],"sourceRoot":""}