var EGallery=function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e){function i(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}t.exports=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}},function(t,e,i){var n=i(5),s=i(6);t.exports=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?s(t):e}},function(t,e){function i(e){return t.exports=i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(e)}t.exports=i},function(t,e,i){var n=i(7);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&n(t,e)}},function(t,e){function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(t){return(n="function"==typeof Symbol&&"symbol"===i(Symbol.iterator)?function(t){return i(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":i(t)})(t)}function s(e){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?t.exports=s=function(t){return n(t)}:t.exports=s=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":n(t)},s(e)}t.exports=s},function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}},function(t,e){function i(e,n){return t.exports=i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},i(e,n)}t.exports=i},function(t,e,i){},function(t,e,i){"use strict";i.r(e);var n=i(0),s=i.n(n),r=i(1),a=i.n(r),o=i(2),l=i.n(o),u=i(3),c=i.n(u),h=i(4),y=i.n(h);var g=function(){function t(e){var i=this;s()(this,t),this.settings=jQuery.extend(!0,this.getDefaultSettings(),e),this.$container=jQuery(this.settings.container),this.timeouts=[],this.initElements(),this.prepareGallery();var n=this.runGallery.bind(this);this.runGallery=this.debounce(function(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];i.settings.lazyLoad?n.apply(void 0,e):i.allImagesPromise.then(function(){return n.apply(void 0,e)})},300),this.settings.lazyLoad&&(this.handleScroll=this.debounce(function(){return i.lazyLoadImages()},16)),this.bindEvents(),this.runGallery()}return a()(t,[{key:"getDefaultSettings",value:function(){return{}}},{key:"getItemClass",value:function(t){return this.settings.classesPrefix+t}},{key:"initElements",value:function(){this.elements={$window:jQuery(window)};var t="-"+(this.settings.rtl?"rtl":"ltr"),e=this.getItemClass(this.settings.classes.container)+" "+this.getItemClass(this.settings.type)+" "+this.getItemClass(t);this.settings.lazyLoad&&(e+=" "+this.getItemClass(this.settings.classes.lazyLoad)),this.$container.addClass(e)}},{key:"bindEvents",value:function(){this.elements.$window.on("resize",this.runGallery),this.settings.lazyLoad&&this.elements.$window.on("scroll",this.handleScroll)}},{key:"getNestedObjectData",value:function(t,e){var i=e.split("."),n=i.splice(0,1);return i.length?this.getNestedObjectData(t[n],i.join(".")):{object:t,key:e}}},{key:"getTemplateArgs",value:function(t,e){var i=this.getNestedObjectData(t,e);return i.object[i.key]||""}},{key:"getCurrentBreakpoint",value:function(){var t=Object.keys(this.settings.breakpoints).map(Number).sort(function(t,e){return t-e}),e=0;return t.some(function(t){return innerWidth<t&&(e=t,!0)}),e}},{key:"getCurrentDeviceSetting",value:function(t){var e=this.getCurrentBreakpoint();return e?this.settings.breakpoints[e][t]:this.settings[t]}},{key:"getActiveItems",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.settings.tags,i=[];if(!e.length)return t?(this.$items.each(function(t){i.push(t)}),i):this.$items;var n=this.$items.filter(function(n,s){var r=s.dataset.eGalleryTags;return!!r&&(r=r.split(/[ ,]+/),!!e.some(function(t){return r.includes(t)})&&(t&&i.push(n),!0))});return t?i:n}},{key:"getImageData",value:function(t){return this.settings.tags.length&&(t=this.getActiveItems(!0)[t]),this.imagesData[t]}},{key:"compileTemplate",value:function(t,e){var i=this;return t.replace(/{{([^}]+)}}/g,function(t,n){return i.getTemplateArgs(e,n.trim())})}},{key:"createOverlay",value:function(t){var e=this.settings,i=e.classes,n=e.overlayTemplate,s=jQuery("<div>",{class:this.getItemClass(i.overlay)}),r=this.compileTemplate(n,jQuery.extend(!0,this.settings,t));return s.html(r),s}},{key:"createItem",value:function(t){var e,i=this.settings.classes,n=jQuery("<div>",{class:this.getItemClass(i.item),"data-e-gallery-tags":t.tags}),s=jQuery("<div>",{class:this.getItemClass(i.image)});this.settings.lazyLoad||s.css("background-image","url("+t.thumbnail+")"),this.settings.overlay&&(e=this.createOverlay(t));var r=n;return t.url&&(r=jQuery("<a>",{class:this.getItemClass(i.link),href:t.url}),n.html(r)),r.html(s),e&&r.append(e),n}},{key:"debounce",value:function(t,e){var i,n=this;return function(){for(var s=arguments.length,r=new Array(s),a=0;a<s;a++)r[a]=arguments[a];clearTimeout(i),i=setTimeout(function(){return t.apply(void 0,r)},e),n.timeouts.push(i)}}},{key:"buildGallery",value:function(){var t=this,e=this.settings.items;this.$items=jQuery(),e.forEach(function(e){var i=t.createItem(e);t.$items=t.$items.add(i),t.$container.append(i)})}},{key:"loadImages",value:function(){var t=this,e=[];this.settings.items.forEach(function(i,n){var s=new Image,r=new Promise(function(t){s.onload=t});e.push(r),r.then(function(){return t.calculateImageSize(s,n)}),s.src=i.thumbnail}),this.allImagesPromise=Promise.all(e)}},{key:"lazyLoadImages",value:function(){var t=this;if(!this.lazyLoadComplete){var e=this.getActiveItems(),i=this.getActiveItems(!0);e.each(function(e,n){var s=t.settings.items[i[e]];if(s.loading||!function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",i=t.getBoundingClientRect().top,n=t.offsetHeight,s=i+n;return("middle"===e?i+n/2:"bottom"===e?s:i)<=innerHeight&&s>=0}(n))return!0;s.loading=!0;var r=jQuery(n),a=new Image;return new Promise(function(t){a.onload=t}).then(function(){r.find(t.settings.selectors.image).css("background-image",'url("'+s.thumbnail+'")').addClass(t.getItemClass(t.settings.classes.imageLoaded)),t.loadedItemsCount++,t.loadedItemsCount===t.settings.items.length&&(t.lazyLoadComplete=!0)}),a.src=s.thumbnail,!0})}}},{key:"calculateImageSize",value:function(t,e){this.imagesData[e]={width:t.width,height:t.height,ratio:t.width/t.height}}},{key:"createImagesData",value:function(){var t=this;this.settings.items.forEach(function(e,i){return t.calculateImageSize(e,i)})}},{key:"makeGalleryFromContent",value:function(){var t=this.settings.selectors,e=this.settings.lazyLoad,i=[];this.$items=this.$container.find(t.items),this.$items.each(function(n,s){var r=jQuery(s).find(t.image);i[n]={thumbnail:r.data("thumbnail")},e?(i[n].width=r.data("width"),i[n].height=r.data("height")):r.css("background-image",'url("'.concat(r.data("thumbnail"),'")'))}),this.settings.items=i}},{key:"prepareGallery",value:function(){this.settings.items?this.buildGallery():this.makeGalleryFromContent(),this.imagesData=[],this.settings.lazyLoad?(this.loadedItemsCount=0,this.lazyLoadComplete=!1,this.createImagesData()):this.loadImages()}},{key:"runGallery",value:function(t){var e=this,i=this.$container[0].style;i.setProperty("--hgap",this.getCurrentDeviceSetting("horizontalGap")+"px"),i.setProperty("--vgap",this.getCurrentDeviceSetting("verticalGap")+"px"),i.setProperty("--animation-duration",this.settings.animationDuration+"ms"),this.$items.addClass(this.getItemClass(this.settings.classes.hidden)),this.getActiveItems().removeClass(this.getItemClass(this.settings.classes.hidden)),this.settings.lazyLoad&&setTimeout(function(){return e.lazyLoadImages()},300),this.run(t)}},{key:"setSettings",value:function(t,e){var i=this.getNestedObjectData(this.settings,t);i.object&&(i.object[i.key]=e,this.runGallery(!0))}},{key:"unbindEvents",value:function(){this.elements.$window.off("resize",this.runGallery)}},{key:"destroy",value:function(){this.unbindEvents(),this.$container.empty(),this.timeouts.forEach(function(t){return clearTimeout(t)})}}]),t}(),f=function(t){function e(){return s()(this,e),l()(this,c()(e).apply(this,arguments))}return y()(e,t),a()(e,[{key:"getDefaultSettings",value:function(){return{aspectRatio:"16:9"}}},{key:"setItemsPosition",value:function(){var t=this.getCurrentDeviceSetting("columns");this.getActiveItems().each(function(e,i){i.style.setProperty("--column",e%t),i.style.setProperty("--row",Math.floor(e/t))})}},{key:"setContainerSize",value:function(){var t=this.getCurrentDeviceSetting("columns"),e=Math.ceil(this.getActiveItems().length/t),i=this.$container[0].style;i.setProperty("--columns",t),i.setProperty("--rows",e);var n=this.getActiveItems().width(),s=this.settings.aspectRatio.split(":"),r=s[1]/s[0],a=(r*n*e+this.getCurrentDeviceSetting("horizontalGap")*(e-1))/this.$container.width()*100;i.setProperty("--aspect-ratio",100*r+"%"),i.setProperty("--container-aspect-ratio",a+"%")}},{key:"run",value:function(){var t=this,e=this.getItemClass(this.settings.classes.animated);this.$container.addClass(e),setTimeout(function(){t.setItemsPosition(),t.setContainerSize(),setTimeout(function(){return t.$container.removeClass(e)},t.settings.animationDuration)},50)}}]),e}(g),m=function(t){function e(){return s()(this,e),l()(this,c()(e).apply(this,arguments))}return y()(e,t),a()(e,[{key:"getDefaultSettings",value:function(){return{idealRowHeight:200,lastRow:"auto",breakpoints:{1024:{idealRowHeight:150},768:{idealRowHeight:100}}}}},{key:"run",value:function(){this.rowsHeights=[],this.rowsCount=0,this.containerWidth=this.$container.width(),this.makeJustifiedRow(0)}},{key:"makeJustifiedRow",value:function(t){for(var e=0,i=t;;i++){var n=this.getImageData(i),s=Math.round(this.getCurrentDeviceSetting("idealRowHeight")*n.ratio);s>this.containerWidth&&(s=this.containerWidth);var r=e+s;if(r>this.containerWidth)if(this.containerWidth-e<r-this.containerWidth){this.fitImagesInContainer(t,i,e),this.rowsCount++,this.makeJustifiedRow(i);break}var a=i===this.getActiveItems().length-1;if(n.computedWidth=s,a){var o=this.getCurrentDeviceSetting("lastRow");if("hide"!==o){var l="fit"===o||.7<=r/this.containerWidth?r:this.containerWidth;this.fitImagesInContainer(t,i+1,l)}this.inflateGalleryHeight();break}e=r}}},{key:"fitImagesInContainer",value:function(t,e,i){for(var n=e-t-1,s=this.getActiveItems(),r=0,a=t;a<e;a++){var o=this.getImageData(a),l=o.computedWidth/i,u=s.get(a),c=this.getItemClass(this.settings.classes.firstRowItem);if(u.style.setProperty("--item-width",l),u.style.setProperty("--gap-count",n),u.style.setProperty("--item-height",o.height/o.width*100+"%"),u.style.setProperty("--item-start",r),u.style.setProperty("--item-row-index",a-t),r+=l,a===t){u.classList.add(c);var h=l*(this.containerWidth-n*this.getCurrentDeviceSetting("horizontalGap"));this.rowsHeights.push(h/o.ratio)}else u.classList.remove(c)}}},{key:"inflateGalleryHeight",value:function(){var t=this.rowsHeights.reduce(function(t,e){return t+e})+this.rowsCount*this.getCurrentDeviceSetting("verticalGap"),e=t/this.containerWidth,i=this.rowsHeights.map(function(e){return e/t*100}),n=-1,s=0;this.getActiveItems().each(function(t,e){"0"===e.style.getPropertyValue("--item-row-index")&&++n&&(s+=i[n-1]),e.style.setProperty("--item-top",s+"%"),e.style.setProperty("--item-height",i[n]+"%"),e.style.setProperty("--row",n)}),this.$container[0].style.setProperty("--container-aspect-ratio",e)}}]),e}(g),d=function(t){function e(){return s()(this,e),l()(this,c()(e).apply(this,arguments))}return y()(e,t),a()(e,[{key:"run",value:function(t){var e=this,i=this.getCurrentBreakpoint();if(t||i!==this.currentBreakpoint){this.currentBreakpoint=i;for(var n=[],s=[],r=[],a=this.getCurrentDeviceSetting("columns"),o=this.$container.width(),l=(o-this.getCurrentDeviceSetting("horizontalGap")*(a-1))/a,u=this.getActiveItems(),c=0,h=0;h<a;h++)s[h]=0,n[h]=0;u.each(function(t,i){var o=e.getImageData(t),u=l/o.ratio,h=t%a;c=n[h],jQuery.each(n,function(t,e){e&&c>e+5&&(c=e,h=t)}),r[t]=n[h],n[h]+=u,i.style.setProperty("--item-height",o.height/o.width*100+"%"),i.style.setProperty("--column",h),i.style.setProperty("--items-in-column",s[h]),s[h]++});var y=Math.max.apply(Math,n),g=n.indexOf(y),f=s[g]-1,m=y/o;this.$container[0].style.setProperty("--columns",a),this.$container[0].style.setProperty("--highest-column-gap-count",f),this.$container.css("padding-bottom",100*m+"%"),u.each(function(t,e){var i=r[t]?r[t]/y*100:0;e.style.setProperty("--percent-height",i+"%")})}}}]),e}(g);i(8);i.d(e,"default",function(){return p});var p=function(){function t(e){s()(this,t),this.userSettings=e,this.initGalleriesTypes(),this.createGallery()}return a()(t,[{key:"getDefaultSettings",value:function(){return{container:null,items:null,type:"grid",tags:[],overlay:!1,overlayTemplate:'<div class="{{ classesPrefix }}{{ classes.overlayTitle }}">{{ title }}</div><div class="{{ classesPrefix }}{{ classes.overlayDescription }}">{{ description }}</div>',columns:5,horizontalGap:10,verticalGap:10,rtl:!1,animationDuration:350,lazyLoad:!1,classesPrefix:"e-gallery-",classes:{container:"container",item:"item",image:"image",overlay:"overlay",overlayTitle:"overlay__title",overlayDescription:"overlay__description",link:"link",firstRowItem:"first-row-item",animated:"-animated",hidden:"item--hidden",lazyLoad:"-lazyload",imageLoaded:"image-loaded"},selectors:{items:".e-gallery-item",image:".e-gallery-image"},breakpoints:{1024:{horizontalGap:5,verticalGap:5,columns:4},768:{horizontalGap:1,verticalGap:1,columns:2}}}}},{key:"initGalleriesTypes",value:function(){this.galleriesTypes={grid:f,justified:m,masonry:d}}},{key:"createGallery",value:function(){var t=jQuery.extend(this.getDefaultSettings(),this.userSettings),e=this.galleriesTypes[t.type];this.galleryHandler=new e(t)}},{key:"setSettings",value:function(t,e){this.galleryHandler.setSettings(t,e)}},{key:"destroy",value:function(){this.galleryHandler.destroy()}}]),t}()}]).default;
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var n,a=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,n)),a}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(n),!0).forEach(function(e){_defineProperty(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}function haObserveTarget(e,n){new IntersectionObserver(function(e,t){e.forEach(function(e){e.isIntersecting&&n(e)})},2<arguments.length&&void 0!==arguments[2]?arguments[2]:{}).observe(e)}(h=>{var c=h(window);function u(a,i,o){var r;return function(){var e=this,t=arguments,n=o&&!r;clearTimeout(r),r=setTimeout(function(){r=null,o||a.apply(e,t)},i),n&&a.apply(e,t)}}function g(e,t){var e=e.find(".hajs-filter"),n=e.data("default-filter");e.length&&(e.on("click.onFilterNav","button",function(e){e.stopPropagation();e=h(this);e.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),t(e.data("filter"))}),e.find('[data-filter="'+n+'"]').click())}function p(e){var t,n,a;e.$element.on("click",e.selector,function(e){e.preventDefault()}),h.fn.magnificPopup&&(e.isEnabled?(t=h(window).width(),n=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg,e.$element.find(e.selector).magnificPopup({key:e.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(e.disableOnMobile&&t<n||e.disableOnTablet&&n<=t&&t<a)}})):h.magnificPopup.close())}function f(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){c.trigger("resize.twentytwenty"),clearTimeout(e)},400)})}h.fn.getHappySettings=function(){return this.data("happy-settings")},c.on("elementor/frontend/init",function(){function e(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("ha-has-bg-overlay")}var t=elementorModules.frontend.handlers.Base,n=t.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:h("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:h("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:u(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var e=1==h('html[dir="rtl"]').length||h("body").hasClass("rtl");"yes"==this.getElementSettings("vertical")&&(e=!1);var t={fade:this.$element.hasClass("ha-slider")?"fade"===this.getElementSettings("slides_transition"):"fade"===this.getElementSettings("slides_transition")&&1===parseInt(this.getElementSettings("slides_to_show")),infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),rtl:e};switch(this.getElementSettings("navigation")){case"arrow":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}e=!!this.getElementSettings("slides_to_scroll");return t.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1,t.slidesToScroll=e&&parseInt(this.getElementSettings("slides_to_show"))||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow,slidesToScroll:e?parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow:1}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow,slidesToScroll:e?parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow:1}}],h.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),a=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),c.on("resize",u(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,n=this.getLightBoxSettings();g(this.$element,function(e){t.elements.$container.isotope({filter:e}),"*"!==e&&(n.selector=e),p(n)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),p(e.getLightBoxSettings())}}),i=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),c.on("resize",u(this.run.bind(this),100))},getDefaultSettings:function(){var e={rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")},t={};return"yes"==this.getElementSettings("max_row_height")&&(t={maxRowHeight:+this.getElementSettings("row_height.size")||150}),h.extend(e,t)},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var t=this,n=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};g(t.$element,function(e){"*"!==e&&(a.lastRow="nojustify",n.selector=e),a.filter=e,t.elements.$container.justifiedGallery(a),p(n)})},onElementChange:function(e){-1!==["row_height","max_row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),p(this.getLightBoxSettings())}}),o=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var e,t,n,a,i,o,r,s;0!=this.wrapper.length&&(a=this.wrapper.innerHeight(),s=this.wrapper.innerWidth(),t=(e=this.wrapper.find(".ha-news-ticker-container")).find(".ha-news-ticker-item"),a="scroll"+(n=this.wrapper.data("scroll-direction"))+parseInt(a)+parseInt(s),i=this.wrapper.data("duration"),o="normal",r=10,s={transform:"translateX(0"+s+"px)"},"right"===n&&(o="reverse"),t.each(function(){r+=h(this).outerWidth(!0)}),e.css({width:r,display:"flex"}),h.keyframe.define([{name:a,"0%":s,"100%":{transform:"translateX(-101%)"}}]),e.playKeyframe({name:a,duration:i.toString()+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:o,fillMode:"none",complete:function(){}}))}}),r=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var r=this.wrapper.find(".ha-post-tab-filter").find("li"),e=this.wrapper.data("event"),s=this.wrapper.data("query-args");r.on(e,u(function(e){e.preventDefault();var e=h(this),n=e.data("term"),t=e.closest(".ha-post-tab").find(".ha-post-tab-content"),a=t.find(".ha-post-tab-loading"),i=t.find(".ha-post-tab-item-wrapper"),o=!1;0===a.length&&(r.removeClass("active"),i.removeClass("active"),e.addClass("active"),i.each(function(){var e=h(this),t=e.data("term");n===t&&(e.addClass("active"),o=!0)}),!1===o)&&h.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:s,term_id:n},beforeSend:function(){t.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){t.find(".ha-post-tab-loading").remove(),t.append(e)},error:function(e){}})},200))}}),a=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0});e=e.find(".ha-horizontal-timeline-image");void 0!==e.data("mfp-src")&&e.magnificPopup({type:"image",gallery:{enabled:!0}})}),h("body").on("click.onWrapperLink","[data-ha-element-link]",function(){var e,t,n=h(this),a=n.data("ha-element-link"),n=n.data("id"),i=document.createElement("a");i.id="happy-addons-wrapper-link-"+n,i.href=a.url,i.target=a.is_external?"_blank":"_self",i.rel=a.nofollow?"nofollow noreferer":"",i.style.display="none",document.body.appendChild(i),(e=document.getElementById(i.id)).click(),t=setTimeout(function(){document.body.removeChild(e),clearTimeout(t)})}),h.each({"ha-image-compare.default":f,"ha-number.default":function(t){haObserveTarget(t[0],function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},"ha-skills.default":function(e){haObserveTarget(e[0],function(){e.find(".ha-skill-level").each(function(){var e=h(this),t=e.find(".ha-skill-level-text"),n=e.data("level");e.animate({width:n+"%"},500),t.numerator({toValue:n+"%",duration:1300,onStep:function(){t.append("%")}})})})},"ha-fun-factor.default":function(t){haObserveTarget(t[0],function(){var e=t.find(".ha-fun-factor__content-number");e.numerator(e.data("animation"))})},"ha-bar-chart.default":function(a){haObserveTarget(a[0],function(){var e=a.find(".ha-bar-chart-container"),t=a.find("#ha-bar-chart"),n=e.data("settings");e.length&&new Chart(t,n)})},"ha-twitter-feed.default":function(o){var e=o.find(".ha-twitter-load-more"),r=o.find(".ha-tweet-items");e.on("click",function(e){e.preventDefault();var t=h(this),e=t.data("settings"),n=o.data("id"),a=t.data("total"),i=o.find(".ha-tweet-item").length;h.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:e,widget_id:n,loaded_item:i},success:function(e){i<a?h(e).appendTo(r):(t.text("All Loaded").addClass("loaded"),setTimeout(function(){t.css({display:"none"})},800))},error:function(e){}})})},"ha-threesixty-rotation.default":function(a){var e,i=a.find(".ha-threesixty-rotation-inner"),t=i.data("selector"),n=i.data("autoplay"),o=a.find(".ha-threesixty-rotation-magnify"),r=a.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=a.find(".ha-threesixty-rotation-play"),d=circlr(t,{play:!0});"on"===n?((e=a.find(".ha-threesixty-rotation-autoplay")).on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){e.trigger("click"),e.remove()},1e3)):l.on("click",function(e){e.preventDefault();e=h(this).find("i");e.hasClass("hm-play-button")?(e.removeClass("hm-play-button"),e.addClass("hm-stop"),d.play()):(e.removeClass("hm-stop"),e.addClass("hm-play-button"),d.stop()),r.remove()}),o.on("click",function(e){a.find("img").each(function(){-1!==h(this).attr("style").indexOf("block")&&(HappySimplaMagnify(h(this)[0],s),o.css("display","none"),r.remove())})}),h(document).on("click",function(e){var e=h(e.target),t=a.find(".ha-img-magnifier-glass"),n=o.find("i");t.length&&e[0]!==n[0]&&(t.remove(),o.removeAttr("style")),e[0]===i[0]&&r.remove()}),i.on("mouseup mousedown touchstart touchend",function(e){r.remove()})},"ha-data-table.default":function(e){var n=e.find(".ha-table__head-column-cell"),r=e.find(".ha-table__body-row");r.each(function(o,e){h(e).find(".ha-table__body-row-cell").each(function(e,t){var t=h(t),n=parseInt(t.attr("rowspan"),10);if(1<n)for(var a=o+1;a<o+n&&a<r.length;a++){var i=h(r).eq(a).children().eq(e);h('<td class="ha-table__body-row-cell test">nullval</td>').insertBefore(i)}})}),r.each(function(e,t){h(t).find(".ha-table__body-row-cell").each(function(e,t){t=h(t);-1===t.html().indexOf("nullval")?(e=n.eq(e).html(),t.prepend('<div class="ha-table__head-column-cell">'+e+"</div>")):t.remove()})})},section:e,column:e,"ha-event-calendar.default":function(b){var e=b.find(".ha-ec"),S=b.find(".ha-ec-popup-wrapper"),t=b.find(".ha-ec-popup-close"),n=e.data("initialview"),a=e.data("firstday"),i=e.data("locale"),x=e.data("show-popup"),k=e.data("allday-text"),C=e.data("time-format"),o=window["HaECjson"+b.data("id")];void 0!==o&&(new FullCalendar.Calendar(e[0],{stickyHeaderDates:!1,locale:i,headerToolbar:{left:"prev,next today",center:"title",right:"dayGridMonth,timeGridWeek,timeGridDay,listMonth"},initialView:n,firstDay:a,eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:"short"},events:o,height:"auto",eventClick:function(e){if("yes"==x){var t=function(e){return new Date(e)},n=function(e){var t,n,a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"g:i a";return t=(e=e).getHours(),n=e.getMinutes(),(e=new Date).setHours(t),e.setMinutes(n),t={},a.includes("H")?(t.hour="2-digit",t.hour12=!1):(t.hour="numeric",t.hour12=!0,(a.includes("a")||a.includes("A"))&&(t.hour="numeric")),t.minute="2-digit",n=new Intl.DateTimeFormat("en-US",t).format(e),n=a.includes("a")?n.toLowerCase():n},a=(e.jsEvent.preventDefault(),e.view.calendar.currentData.currentDate.toString(),e.event.allDay),i=e.event.title,o=e.event.startStr,r=e.event.endStr,s=e.event.extendedProps.guest,l=e.event.extendedProps.location,d=e.event.extendedProps.description,c=e.event.url,h=e.event.extendedProps.image,u=S.find(".ha-ec-event-title"),g=S.find(".ha-ec-event-time-wrap"),p=S.find(".ha-ec-event-guest-wrap"),f=S.find(".ha-ec-event-location-wrap"),m=S.find(".ha-ec-popup-desc"),y=S.find(".ha-ec-popup-readmore-link"),v=S.find(".ha-ec-popup-image");v.css("display","none"),u.css("display","none"),g.css("display","none"),p.css("display","none"),f.css("display","none"),m.css("display","none"),y.css("display","none"),S.addClass("ha-ec-popup-ready"),h&&(v.removeAttr("style"),v.find("img").attr("src",h),v.find("img").attr("alt",i)),i&&(u.removeAttr("style"),u.text(i)),s&&(p.removeAttr("style"),p.find("span.ha-ec-event-guest").text(s)),l&&(f.removeAttr("style"),f.find("span.ha-ec-event-location").text(l)),d&&(m.removeAttr("style"),m.html(d)),!0!==a?(g.removeAttr("style"),o=Date.parse(t(o)),r=Date.parse(t(r)),h=n(t(o),C),v="Invalid Data",o<r&&(v=n(t(r),C)),g.find("span.ha-ec-event-time").text(h+" - "+v)):(g.removeAttr("style"),g.find("span.ha-ec-event-time").text(k)),c&&(y.removeAttr("style"),y.attr("href",c),"on"===e.event.extendedProps.external&&y.attr("target","_blank"),"on"===e.event.extendedProps.nofollow)&&y.attr("rel","nofollow")}else{var _,w;if(e.event.url&&e.event.extendedProps.external)return e.jsEvent.preventDefault(),u=b.data("id"),(i=document.createElement("a")).id="happy-even-calender-link-"+u,i.href=e.event.url,i.target=e.event.extendedProps.external?"_blank":"_self",i.rel=e.event.extendedProps.nofollow?"nofollow noreferer":"",i.style.display="none",document.body.appendChild(i),(_=document.getElementById(i.id)).click(),w=setTimeout(function(){document.body.removeChild(_),clearTimeout(w)}),!1}},dateClick:function(e){itemDate=e.date.toUTCString()}}).render(),b.find(".ha-ec-popup-wrapper").on("click",function(e){e.stopPropagation(),e.target!==e.currentTarget&&e.target!=t[0]&&e.target!=t.find(".eicon-editor-close")[0]||S.addClass("ha-ec-popup-removing").removeClass("ha-ec-popup-ready")}))},"ha-mailchimp.default":function(e){var n=e.find(".ha-mailchimp-form"),a=e.find(".ha-mc-response-message"),i=n.data("success-message");n.on("submit",function(e){e.preventDefault();e={action:"ha_mailchimp_ajax",security:HappyLocalize.nonce,subscriber_info:n.serialize(),list_id:n.data("list-id"),post_id:n.parent().data("post-id"),widget_id:n.parent().data("widget-id")};h.ajax({type:"post",url:HappyLocalize.ajax_url,data:e,success:function(e){n.trigger("reset"),e.status?(a.removeClass("error"),a.addClass("success"),a.text(i)):(a.addClass("error"),a.removeClass("success"),a.text(e.msg));var t=setTimeout(function(){a.removeClass("error"),a.removeClass("success"),clearTimeout(t)},5e3)},error:function(e){}})})},"ha-image-accordion.default":function(e){var n;e.hasClass("ha-image-accordion-click")&&(n=e.find(".ha-ia-item")).each(function(e,t){h(this).on("click",function(e){h(this).hasClass("active")||(n.removeClass("active"),h(this).addClass("active"))})})},"ha-content-switcher.default":function(e){var n,a,t,i,o,r,s,l=e.find(".ha-content-switcher-wrapper");"button"==l.data("design-type")?(n=l.find(".ha-cs-button"),a=l.find(".ha-cs-content-section"),n.each(function(e,t){h(this).on("click",function(e){e.preventDefault(),h(this).hasClass("active")||(n.removeClass("active"),h(this).addClass("active"),a.removeClass("active"),e=h(this).data("content-id"),l.find("#"+e).addClass("active"))})})):(e=l.find(".ha-cs-switch.ha-input-label"),t=l.find("input.ha-cs-toggle-switch"),i=l.find(".ha-cs-switch.primary"),o=l.find(".ha-cs-switch.secondary"),r=l.find(".ha-cs-content-section.primary"),s=l.find(".ha-cs-content-section.secondary"),e.on("click",function(e){(t.is(":checked")?(i.removeClass("active"),r.removeClass("active"),o.addClass("active"),s):(o.removeClass("active"),s.removeClass("active"),i.addClass("active"),r)).addClass("active")}))},"ha-member.default":function(e){var t,n=e.find(".ha-btn"),a=e.find(".ha-member-lightbox");0<a.length&&(t=a.find(".ha-member-lightbox-close"),n.on("click",function(){a.addClass("ha-member-lightbox-show")}),a.on("click",function(e){!a.hasClass("ha-member-lightbox-show")||e.target!=a[0]&&e.target!=t[0]&&e.target!=t.find("i.eicon-editor-close")[0]||a.removeClass("ha-member-lightbox-show")}))},"ha-creative-button.default":function(e){var n=e.find(".ha-creative-btn-wrap"),t=n.data("magnetic"),a=n.find("a.ha-creative-btn"),t=("yes"==t&&(n.on("mousemove",function(e){var t=e.pageX-(n.offset().left+n.outerWidth()/2),e=e.pageY-(n.offset().top+n.outerHeight()/2);a.css("transform","translate("+.3*t+"px, "+.5*e+"px)")}),n.on("mouseout",function(e){a.css("transform","translate(0px, 0px)")})),e.find(".ha-eft--expandable")),i=t.find(".text");0<t.length&&0<i.length&&(i[0].addEventListener("transitionend",function(){i[0].style.width&&(i[0].style.width="auto")}),t[0].addEventListener("mouseenter",function(e){e.currentTarget.classList.add("hover"),i[0].style.width="auto";e=i[0].offsetWidth;i[0].style.width="0",window.getComputedStyle(i[0]).transform,i[0].style.width="".concat(e,"px")}),t[0].addEventListener("mouseleave",function(e){e.currentTarget.classList.remove("hover"),i[0].style.width="".concat(i[0].offsetWidth,"px"),window.getComputedStyle(i[0]).transform,i[0].style.width=""}))},"ha-pdf-view.default":function(e){var t=e.data("id"),e=e.find(".viewer-"+t).data("pdf-settings"),t={width:e.width,height:e.height,page:e.page_number};PDFObject.embed(e.pdf_url,"#"+e.unique_id,t)},"ha-comparison-table.default":function(e){var t=e.find(".ha-comparison-table-wrapper"),n=e.find(".ha-comparison-table__head"),a=n.data("sticky-header"),i=(e.height(),t.innerHeight()),o=t.offset().top;"yes"===a&&c.scroll(function(){var e=h(this).scrollTop();o<=e?n.addClass("table-sticky"):i<e&&n.removeClass("table-sticky")})}},function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)}),{"ha-image-grid.default":a,"ha-justified-gallery.default":i,"ha-news-ticker.default":o,"ha-post-tab.default":r}),s=(h.each(a,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-navigation-menu.default",function(e){var a=e.find(".ha-nav-menu");function t(){jQuery(window).width()<768?(a.removeClass("ha-navigation-menu-wrapper"),a.addClass("ha-navigation-burger-menu"),a.find(".ha-submenu-indicator-wrap").on("click",function(e){e.preventDefault();e=h(this).parent("li.menu-item-has-children");e&&e.children("ul.sub-menu").slideToggle()})):(a.addClass("ha-navigation-menu-wrapper"),a.removeClass("ha-navigation-burger-menu"),a.find("ul.menu").removeAttr("style"),a.find("ul.sub-menu").removeAttr("style"))}jQuery(window).width()<1025&&767<jQuery(window).width()&&a.find(".ha-submenu-indicator-wrap").on("click",function(e){e.preventDefault();e=h(this).parent("li.menu-item-has-children");e&&e.children("ul.sub-menu").slideToggle()}),a.find(".ha-menu-toggler").on("click",function(e){var t=h(this).data("humberger"),n=a.find("ul.menu");"open"==t?(h(".ha-menu-open-icon").addClass("hide-icon"),h(".ha-menu-close-icon").removeClass("hide-icon"),h(".ha-menu-close-icon").addClass("show-icon"),n.slideDown()):(h(".ha-menu-close-icon").addClass("hide-icon"),h(".ha-menu-open-icon").removeClass("hide-icon"),h(".ha-menu-open-icon").addClass("show-icon"),n.slideUp())}),t(),c.on("resize",u(t,100))}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-age-gate.default",function(e,t){var n,a,i,o,r,s;elementorFrontend.isEditMode()?(localStorage.removeItem("ha-age-gate-expire-time"),e.find(".ha-age-gate-wrapper").length&&"no"==e.find(".ha-age-gate-wrapper").data("editor_mood")&&e.find(".ha-age-gate-wrapper").hide()):elementorFrontend.isEditMode()||(a=(n=e.find(".ha-age-gate-wrapper")).data("age_gate_cookies_time"),i=localStorage.getItem("ha-age-gate-expire-time"),n.closest("body").css("overflow","hidden"),o=new Date,(r=new Date).setDate(o.getDate()+a),t("body,html,document").scrollTop(e.offset().top),s=setTimeout(function(){t("body,html,document").scrollTop(t("body").offset().top),clearTimeout(s)},1e3),""!=i&&null!=i&&new Date(o)<=new Date(i)?(t(".ha-age-gate-wrapper").hide(),n.closest("body").css("overflow","")):(""!=i&&null!=i&&new Date(o)>new Date(i)&&localStorage.removeItem("ha-age-gate-expire-time"),t(".ha-age-gate-wrapper").show()),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-age").length&&t(".ha-age-gate-confirm-age-btn").on("click",function(){localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow","")}),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-dob").length&&t(".ha-age-gate-confirm-dob-btn").on("click",function(){var e=new Date(Date.parse(t(this).closest(".ha-age-gate-form-body").find(".ha-age-gate-date-input").val())).getFullYear();o.getFullYear()-e<t(this).closest(".ha-age-gate-wrapper").data("userbirth")?t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show():(localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow",""))}),e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-by-boolean").length&&(t(".ha-age-gate-wrapper .ha-age-gate-confirm-yes-btn").on("click",function(){localStorage.setItem("ha-age-gate-expire-time",r),t(this).closest(".ha-age-gate-wrapper").hide(),t(this).closest("body").css("overflow","")}),t(".ha-age-gate-wrapper .ha-age-gate-confirm-no-btn").on("click",function(){t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show()})))}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},onElementChange:u(function(e){-1!==["width","title_typography_typography","title_typography_font_size","title_typography_line_height","title_typography_font_weight","sub_title_typography_typography","sub_title_typography_font_size","sub_title_typography_line_height","sub_title_typography_font_weight"].indexOf(e)&&this.run()},300),run:function(){var a,e,t,n,i,o,r=this,s=JSON.parse(r.$element.find(".ha-lhi-image-area").attr("data-settings")),l=r.$element.find(".ha-lhi-image"),d=r.$element.find(".ha-lhi-title h2"),c=r.$element.find(".ha-lhi-title p"),h=r.$element.find("canvas"),u=s.hover_style,g=s.plugin_url+"liquid-hover-image/"+s.hover_effect;"custom"==s.hover_effect&&(g=s.custom_effect||""),h&&h.remove(),new hoverEffect({parent:l[0],intensity:s.intensity,image1:s.first_image,image2:s.second_image,displacementImage:g,imagesRatio:l.height()/l.width(),angle1:(s.angle-45)*(Math.PI/180)*-1,angle2:(s.angle-45)*(Math.PI/180)*-1,speedIn:s.speed,speedOut:s.speed});"style-1"==u&&(d.length||c.length)&&(a=s.style_1_direction,d.length&&(d[0].innerHTML=d[0].textContent.replace(/\S/g,"<span class='letter'>$&</span>")),c.length&&c.addClass("letter"),e=[0,0],t=[0,0],n=[0,0],i=[0,0],"left"==a?(e=[80,0],t=[0,-80]):"right"==a?(e=[0,80],t=[80,200]):"up"==a?(n=[80,0],i=[0,-80]):"down"==a&&(n=[-80,0],i=[0,80]),r.$element.hover(function(){anime.timeline({loop:!1}).add({targets:".elementor-element-"+r.getID()+" .ha-lhi-title .letter",translateX:e,translateY:n,translateZ:0,opacity:[0,1],easing:"easeOutExpo",duration:800,delay:function(e,t){return 40*t}})},function(){anime.timeline({loop:!1}).add({targets:".elementor-element-"+r.getID()+" .ha-lhi-title .letter",translateX:t,translateY:i,opacity:[1,0],duration:850,delay:function(e,t,n){return t=t,n=n,"right"==a?40*(n-t):40*t}})})),"style-2"==u&&(d.length||c.length)&&(d.length&&(o=d.find(".normal").outerHeight(),d.height(o)),c.length&&(o=c.find(".normal").outerHeight(),c.height(o)),r.$element.hover(function(){d.addClass("play"),c.addClass("play")},function(){d.removeClass("play"),c.removeClass("play")})),"style-5"==u&&(d.length||c.length)&&d.length&&(o=d.find(".normal").outerHeight(),d.attr("style","--ha-lhi-style-5-height:"+o+"px"))}})),l=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-liquid-hover-image.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},onElementChange:u(function(e){-1!==["text_scroll_type"].indexOf(e)&&this.run()},300),getReadySettings:function(){var e={},t=this.getElementSettings("text_scroll_type");return t&&(e.scroll_type=t),h.extend({},this.getSettings(),e)},run:function(){var e=this.getReadySettings(),t=this.$element,n=t.find(".ha-split-lines")[0],a=[],i=e.scroll_type;"undefined"==typeof gsap||"undefined"==typeof ScrollTrigger||(gsap.registerPlugin(ScrollTrigger),n.length<=0)||("horizontal_line_mask"===i||"vertical_line_mask"===i?(h(n).each(function(e){var t=h(this);a[e]=new SplitType(t,{types:"lines, words"})}),h(n).find(".line").each(function(e){h(this).append("<div class='ha-line-mask'></div>")})):"horizontal_line_highlight"===i?h(n).each(function(e){var t=h(this);a[e]=new SplitType(t,{types:"words, chars"})}):new SplitType(n,{types:"lines, words"}),"horizontal_line_mask"===i||"vertical_line_mask"===i?t.find(".line").each(function(e,t){var n,a=h(t).find(".ha-line-mask");a.length<=0||(h(t).addClass("mask-active"),n="horizontal_line_mask"===i?{width:"0%"}:{height:"0%"},gsap.timeline({scrollTrigger:_objectSpread({trigger:t},{start:"horizontal_line_mask"===i?"bottom 50%":"bottom center",end:"bottom center",scrub:3})}).to(a,_objectSpread(_objectSpread({},n),{},{duration:1})))}):"horizontal_line_highlight"===i?(e=t.find(".word .char"),n=t.find(".ha-split-lines"),0<=e.length&&0<=n.length&&gsap.to(e,{scrollTrigger:{trigger:n,start:"top 40%",end:"bottom center",scrub:1},opacity:1,duration:2,stagger:1})):t.find(".line").each(function(){var e=this;gsap.to(this,{scrollTrigger:{trigger:this,start:"top 50%",end:"bottom 50%",onEnter:function(){h(e).addClass("highlight")},onLeaveBack:function(){h(e).removeClass("highlight")}}})}))}})),d=(elementorFrontend.hooks.addAction("frontend/element_ready/ha-text-scroll.default",function(e){elementorFrontend.elementsHandler.addHandler(l,{$element:e})}),t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.run()},bindEvents:function(){ScrollTrigger.config({limitCallbacks:!0,ignoreMobileResize:!0})},run:function(){gsap.registerPlugin(ScrollTrigger);var e,t,n,a,i,o,r,s,l,d,c=this.$element;c.find("title").remove(),c.hasClass("ha-svg-animated-yes")&&(e=c.data("id"),n=(t=this.getElementSettings()).scroll_action,o=null,a=parseFloat(t.repeat_delay)||.5,i=new TimelineMax({repeat:0,yoyo:!1,repeatDelay:.5}),"automatic"===n?(o="custom"!==t.animate_trigger?t.animate_trigger:t.animate_offset.size+"%",d=t.anim_rev?"pause play reverse":"none",i.repeat(t.loop?-1:0).yoyo(t.yoyo).repeatDelay(t.loop?a:0),ScrollTrigger.create({trigger:".elementor-element-"+e,toggleActions:"play "+d,start:"top "+o,animation:i})):(i.repeat("hover"===n&&t.loop?-1:0).yoyo("hover"===n&&t.yoyo).repeatDelay("hover"===n&&t.loop?a:0),"viewport"===n&&(o=t.animate_offset.size/100)),r=c.hasClass("ha-svg-animation-rev-yes")?"to":"from",d=c.find("path, circle, rect, square, ellipse, polyline, polygon, line"),s=0,l=("from"==r?t.animate_start_point:t.animate_end_point).size,d.each(function(e,t){t=h(t);t.attr("fill","transparent"),c.hasClass("ha-svg-sync-together-yes")&&(e=0),s=e,"from"==r?i.from(t,1,{PaSvgDrawer:(l||0)+"% 0"},e):i.to(t,1,{PaSvgDrawer:(l||0)+"% 0"},e)}),"yes"===t.svg_fill&&(0==s&&(s=1),i.to(d,1,{fill:t.svg_color,stroke:t.svg_stroke},s)),"viewport"===n?(d=new ScrollMagic.Controller,new ScrollMagic.Scene({triggerElement:".elementor-element-"+e,triggerHook:o,duration:t.draw_speed?1e3*t.draw_speed.size:"150%"}).setTween(i).addTo(d)):(t.frames&&(i.duration(t.frames),i.repeatDelay(a)),"hover"===n&&(i.pause(),c.find("svg").hover(function(){i.play()},function(){i.pause()}))))}}));elementorFrontend.hooks.addAction("frontend/element_ready/ha-svg-draw.default",function(e){elementorFrontend.elementsHandler.addHandler(d,{$element:e})})})})(jQuery);
(s=>{var o,e=window,r=s(".ha-reading-progress-bar");r.length<=0||(o={},"yes"===(o=JSON.parse(r.attr("data-ha_rpbsettings"))).ha_rpb_enable&&(o.hasOwnProperty("progress_bar_type")&&"vertical"===o.progress_bar_type&&o.hasOwnProperty("rpb_vertical_position")&&"right"==o.rpb_vertical_position?s("body").addClass("no-scroll"):s("body").removeClass("no-scroll"),s(e).scroll(function(){var r=0,t=(r=(s(e).scrollTop()||0)/((s(document).height()||1)-(s(e).height()||1))*100).toFixed(0);100<r&&(r=100),o.hasOwnProperty("progress_bar_type")&&"horizontal"===o.progress_bar_type?(s(".hm-hrp-bar").css({display:"flex"}),s(".hm-hrp-bar").width(t+"%"),1<t&&0<r?(s(".hm-tool-tip").css({opacity:1,transition:"opacity 0.3s"}),s(".hm-tool-tip").text(t+"%"),98<=t?s(".hm-tool-tip").css({right:"5px"}):s(".hm-tool-tip").css({right:"-28px"})):(s(".hm-tool-tip").css({opacity:0,transition:"opacity 0.3s"}),s(".hm-tool-tip").text("0%"))):o.hasOwnProperty("progress_bar_type")&&"vertical"===o.progress_bar_type?(s(".hm-vrp-bar").css({display:"flex"}),0<r&&1<t?s(".hm-vrp-bar").height(t+"%"):s(".hm-vrp-bar").height("0%")):o.hasOwnProperty("progress_bar_type")&&"circle"===o.progress_bar_type&&(t=2*Math.PI*45,t=Math.round(t-r/100*t),0<=r)&&(s(".hm-progress-circle").css("stroke-dashoffset",t.toFixed(2)),s(".hm-progress-percent-text").text("".concat(r.toFixed(0),"%")))})))})(jQuery);
!function(){"use strict";if(window.SR7??={},window._tpt??={},SR7.A??={},SR7.F??={},SR7.D??={},void 0!==SR7.A.fluiddynamics?.init)return;SR7.A.fluiddynamics={...SR7.A.fluiddynamics,init:e=>{void 0===SR7.A.fluiddynamicscss&&(_tpt.injectCssJs(SR7.A.fluiddynamics.style,void 0,void 0,"fluiddynamics_global_styles"),SR7.A.fluiddynamicscss=!0),SR7.M[e].c.moduleListeners??={},SR7.M[e].c.moduleListeners.fluiddynamics??={},_tpt.scrollObserver.observe(SR7.M[e].c.module),SR7.F.module.listeners.init(e),SR7.A.fluiddynamics.listeners.init(e);const i=["THREE","WEBGL"];return null==SR7.A.fluiddynamics.fluid&&i.push("fd_Fluid"),null==SR7.A.fluiddynamics.shaders&&i.push("fd_Shaders"),null==SR7.A.fluiddynamics.tools&&i.push("fd_Tools"),i},getLayerBasics:(e={},i)=>({densityDissipation:e.densityDissipation??69,velocityDissipation:e.velocityDissipation??96,pressureDissipation:e.pressureDissipation??75,followMouse:e.followMouse??"mGenerator",followAMGen:e.followAMGen??"off",automateSel:e.automateSel??"off",curlVal:e.curlVal??15,allColorCount:e.allColorCount??2,fd_color1:e.fd_color1??"#ff0000",fd_color2:e.fd_color2??"#0000ff",fd_color3:e.fd_color3??"#2dfd67",maxOpacityValue:e.maxOpacityValue??80,mousePower:e.mousePower??20,splatRadius:e.splatRadius??20,colorFade:e.colorFade??!1,directionChooser:e.directionChooser??"lr",simuDelay:e.simuDelay??0,simuLength:e.simuLength??36,simuWait:e.simuWait??40,simuPower:e.simuPower??50,simuRadius:e.simuRadius??50,colDirectionChooser:e.colDirectionChooser??"lr",colorChangeType:e.colorChangeType??"timed",colorChangeLenth:e.colorChangeLenth??1.5,colorFull:e.colorFull??!1,vecLength:e.vecLength??50,glow:e.glow??!1,qualityFluid:e.qualityFluid??100,dprFluid:e.dprFluid??"auto",dprOnMobile:e.dprOnMobile??!1,qualityFluidMobile:e.qualityFluidMobile??100,dprFluidMobile:e.dprFluidMobile??1}),prepareLayer:async(e,t,s)=>{if("fluiddynamics"===t.subtype){var{c:o}=SR7.F.getLayer(s);return new Promise((n=>{o.addOns??={},o.addOns.fluiddynamics??={},o.addOns.fluiddynamics=SR7.A.fluiddynamics.getWebGLCanvas(),i(SR7.A.fluiddynamics.getLayerBasics(t.addOns.fluiddynamics)).then((i=>{o.addOns.fluiddynamics.settings=i,o.addOns.fluiddynamics.prepared=!0,o.el.appendChild(o.addOns.fluiddynamics.canvas),o.addOns.fluiddynamics.canvas.addEventListener("webglcontextlost",(i=>{i.preventDefault(),o.addOns.fluiddynamics.canvas.remove(),o.addOns.fluiddynamics.built=!1,SR7.A.fluiddynamics.prepareLayer(e,t,s)})),n()})).catch((e=>{console.log(e),n()}))}))}},toggle:(e,i)=>{let t=SR7.A.fluiddynamics;const s=SR7.M[e];if(t.onFire)for(let i in t.onFire[e])_tpt.hop(t.onFire[e],i)&&(s.states.inViewPort?t.play(e,s.c.layers[i]):t.pause(e,s.c.layers[i],!1))},play:(e,i)=>{let t=SR7.A.fluiddynamics;i.addOns.fluiddynamics.paused=!1,t.onFire[e][i.el.id]=!0,t.update(i),i.addOns.fluiddynamics.everPlayed||requestAnimationFrame((()=>{i.addOns.fluiddynamics.everPlayed=!0}))},pause:(e,i,t)=>{let s=SR7.A.fluiddynamics;i.addOns.fluiddynamics.paused=!0,i.addOns.fluiddynamics.frame=cancelAnimationFrame(i.addOns.fluiddynamics.frame),t&&s?.onFire?.[e]?.[i.el.id]&&delete s.onFire[e][i.el.id]},listeners:{init:e=>{if(SR7.A.fluiddynamics.listenersAdded?.[e])return;let i=SR7.A.fluiddynamics;i.onFire??={},i.onFire[e]??={},document.addEventListener("sr.layer.action",(function(e){""+(e.layersettings?.addOns?.fluiddynamics??!1)!="false"&&("enterstage"==e.eventtype?(e.c?.addOns?.fluiddynamics?.built||SR7.A.fluiddynamics.build(e.c),SR7.A.fluiddynamics.play(e.id,e.c)):"leavestage"==e.eventtype&&i.pause(e.id,e.c,!0))})),i.listenersAdded??={},i.listenersAdded[e]=!0},mouse:{enter:(e,i)=>{let t=i.addOns.fluiddynamics;t.pointers[t.pointersNum].moved=!0,t.pointers[t.pointersNum].prevTexcoordX=t.pointers[t.pointersNum].texcoordX,t.pointers[t.pointersNum].prevTexcoordY=t.pointers[t.pointersNum].texcoordY,t.pointers[t.pointersNum].texcoordX=e.offsetX/t.canvasRect.width,t.pointers[t.pointersNum].texcoordY=1-e.offsetY/t.canvasRect.height,t.pointers[t.pointersNum].deltaX=0,t.pointers[t.pointersNum].deltaY=0},move:(e,i)=>{let t=i.addOns.fluiddynamics,s=(new Date).getTime();s-t.settings.lastfluidMouseMoveUpdateTime>30&&(t.pointers[t.pointersNum].moved=!0,t.pointers[t.pointersNum].prevTexcoordX=t.pointers[t.pointersNum].texcoordX,t.pointers[t.pointersNum].prevTexcoordY=t.pointers[t.pointersNum].texcoordY,t.pointers[t.pointersNum].texcoordX=e.offsetX/t.canvasRect.width,t.pointers[t.pointersNum].texcoordY=1-e.offsetY/t.canvasRect.height,t.pointers[t.pointersNum].deltaX=(t.pointers[t.pointersNum].texcoordX-t.pointers[t.pointersNum].prevTexcoordX)*t.settings.mousePower,t.pointers[t.pointersNum].deltaY=(t.pointers[t.pointersNum].texcoordY-t.pointers[t.pointersNum].prevTexcoordY)*t.settings.mousePower,t.pointers[t.pointersNum].scrolled&&(t.pointers[t.pointersNum].deltaX=0,t.pointers[t.pointersNum].deltaY=0,t.pointers[t.pointersNum].scrolled=!1),t.settings.lastfluidMouseMoveUpdateTime=s)},touchmove:(e,i)=>{let t=i.addOns.fluiddynamics,s=(new Date).getTime();if(s-t.settings.lastfluidMouseMoveUpdateTime>30){t.canvasRect=t.canvas.getBoundingClientRect();let i=e.touches[0];t.pointers[t.pointersNum].moved=!0,t.pointers[t.pointersNum].prevTexcoordX=t.pointers[t.pointersNum].texcoordX,t.pointers[t.pointersNum].prevTexcoordY=t.pointers[t.pointersNum].texcoordY,t.pointers[t.pointersNum].texcoordX=(i.clientX-t.canvasRect.left)/t.canvasRect.width,t.pointers[t.pointersNum].texcoordY=1-(i.clientY-t.canvasRect.top)/t.canvasRect.height,t.pointers[t.pointersNum].deltaX=(t.pointers[t.pointersNum].texcoordX-t.pointers[t.pointersNum].prevTexcoordX)*t.settings.mousePower,t.pointers[t.pointersNum].deltaY=(t.pointers[t.pointersNum].texcoordY-t.pointers[t.pointersNum].prevTexcoordY)*t.settings.mousePower,t.settings.lastfluidMouseMoveUpdateTime=s}},scroll:(e,i)=>{let t=i.addOns.fluiddynamics;t.pointers[t.pointersNum].scrolled=!0}}},fitCameraToObject:e=>{let i=e.addOns?.fluiddynamics??!1;if(i){let t=Math.round(e.cw??0),s=Math.round(e.ch??0);i.lastDim={width:t,height:s},SR7.A.fluiddynamics.resize(e,t,s),i.paused=!1,cancelAnimationFrame(i.frame),i.frame=requestAnimationFrame(i.bindedRender)}},getWebGLCanvas:function(){let e=document.createElement("canvas");return e.style.width="100%",e.style.height="100%",e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.zIndex=2,e.width=1600,e.height=1200,{canvas:e}}};let e=e=>parseFloat(e),i=async i=>(i.curlVal=e(i.curlVal),i.maxOpacityValue=e(i.maxOpacityValue)/100,i.mousePower=e(i.mousePower)/30,i.simuDelay=e(i.simuDelay)+1,i.simuLength=e(i.simuLength)+1,i.simuWait=e(i.simuWait)+1,i.simuPower=e(i.simuPower)/100,i.simuRadius=e(i.simuRadius),i.densityDissipation=.89+e(i.densityDissipation)/1e3,i.velocityDissipation=.89+e(i.velocityDissipation)/1e3,i.pressureDissipation=e(i.pressureDissipation)/100,i.PRESSURE_ITERATIONS=10,i.splatRadiusCache=i.splatRadius,i.splatRadius="mist"==i.automateSel?e(i.splatRadius)/100:e(i.splatRadius)/1250,i.colorChangeLenth=e(i.colorChangeLenth),i.vecLength=e(i.vecLength),i.qualityFluid=e(i.qualityFluid),i.qualityFluidMobile=e(i.qualityFluidMobile),i.allColorCount=e(i.allColorCount)-1,i.fd_color1=_tpt.gradient.convert(i.fd_color1??"#FFFFFF",!0),i.fd_color2=_tpt.gradient.convert(i.fd_color2??"#FFFFFF",!0),i.fd_color3=_tpt.gradient.convert(i.fd_color3??"#FFFFFF",!0),i.fd_color1=SR7.A.fluiddynamics.tools.getRGBA(i.fd_color1.string),i.fd_color2=SR7.A.fluiddynamics.tools.getRGBA(i.fd_color2.string),i.fd_color3=SR7.A.fluiddynamics.tools.getRGBA(i.fd_color3.string),SR7.A.fluiddynamics.tools.resetMaxOpacity(i.fd_color1,i.maxOpacityValue),SR7.A.fluiddynamics.tools.resetMaxOpacity(i.fd_color2,i.maxOpacityValue),SR7.A.fluiddynamics.tools.resetMaxOpacity(i.fd_color3,i.maxOpacityValue),i.vec2=new THREE.Vector2,i.startPos2=new THREE.Vector2,i.startPosNegate=new THREE.Vector2,i.COUNTER=0,i.COUNTER_2=0,i.dt=.016,i);_tpt.R??={},_tpt.R.fluiddynamics=_tpt.extend?_tpt.extend(_tpt.R.fluiddynamics,{status:2,version:"1.0"}):{status:2,version:"1.0"},window.dispatchEvent(new CustomEvent("SR7**AddonName**"))}();
!function(){"use strict";if(window.SR7??={},window._tpt??={},SR7.A??={},SR7.F??={},SR7.D??={},void 0!==(SR7.A.fluiddynamics?.fluid??void 0))return;SR7.A.fluiddynamics={...SR7.A.fluiddynamics,fluiddynamics:!0,build:t=>{let r=t.addOns.fluiddynamics,i=r.settings;r.built=!0,r.pointers=[];const s=()=>r.pointers.push(new SR7.A.fluiddynamics.pointerPrototype);if(s(),"mGeneratorSimu"!==i.followMouse&&"mGeneratorSimu"!==i.followAMGen||s(),"collision"===i.automateSel&&s(),"mist"===i.automateSel){for(let e=0;e<4;e++)s();i.PRESSURE_ITERATIONS=5}else i.PRESSURE_ITERATIONS=10;r.utime=0,r.startTime=Date.now(),Object.assign(r,SR7.A.fluiddynamics.getWebGLContext(r.canvas)),SR7.A.fluiddynamics.createShaders(r),r.updateColorFunction=i.colorFull?e=>{e.colorUpdateTimer+=e.dt*i.colorChangeLenth,e.colorUpdateTimer>=1&&(e.colorUpdateTimer=SR7.A.fluiddynamics.wrap(e.colorUpdateTimer,0,1),e.pointers.forEach((e=>{e.color=SR7.A.fluiddynamics.HSVtoRGB(Math.random()),e.color[3]=i.maxOpacityValue})))}:e=>{},r.dye,r.velocity,r.divergence,r.curl,r.pressure,r.copyProgram=new SR7.A.fluiddynamics.Program(r.baseVertexShader,r.copyShader,r.gl),r.clearProgram=new SR7.A.fluiddynamics.Program(r.baseVertexShader,r.clearShader,r.gl),r.splatProgram=new SR7.A.fluiddynamics.Program(r.baseVertexShader,r.splatShader,r.gl),r.splatProgram2=new SR7.A.fluiddynamics.Program(r.baseVertexShader,r.splatShader2,r.gl),r.advectionProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.advectionVertexShader:r.baseVertexShader,r.advectionShader,r.gl),r.divergenceProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.divergenceVertexShader:r.baseVertexShader,r.divergenceShader,r.gl),r.curlProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.curlVertexShader:r.baseVertexShader,r.curlShader,r.gl),r.vorticityProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.vorticityVertexShader:r.baseVertexShader,r.vorticityShader,r.gl),r.pressureProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.pressureVertexShader:r.baseVertexShader,r.pressureShader,r.gl),r.gradienSubtractProgram=new SR7.A.fluiddynamics.Program(i.isFirefox?r.gradienSubtractVertexShader:r.baseVertexShader,r.gradientSubtractShader,r.gl),r.finalProgram=new SR7.A.fluiddynamics.Program(r.baseVertexShader,r.finalShader,r.gl),r.displayMaterial=new SR7.A.fluiddynamics.Material(r.baseVertexShader,r.displayShaderSource,r.gl),r.splat;const o=e(r.gl);i.colorFull?r.splat=(e,t,s,a,n,d)=>{r.splatProgram.bind(),r.gl.uniform1i(r.splatProgram.uniforms.uTarget,r.velocity.read.attach(0)),r.gl.uniform1f(r.splatProgram.uniforms.aspectRatio,r.canvas.width/r.canvas.height),r.gl.uniform1f(r.splatProgram.uniforms.pass,1),r.gl.uniform2f(r.splatProgram.uniforms.point,e,t),r.gl.uniform4f(r.splatProgram.uniforms.dxdy,s,a,0,0);let l=i.splatRadius;"off"==i.automateSel&&(l=Math.min(Math.max(Math.abs(s),Math.abs(a))/4e4*i.splatRadiusCache,i.splatRadiusCache)),r.gl.uniform1f(r.splatProgram.uniforms.radius,SR7.A.fluiddynamics.correctRadius(l/100,r.canvas)),o(r.velocity.write),r.velocity.swap(),r.gl.uniform1i(r.splatProgram.uniforms.uTarget,r.dye.read.attach(0)),r.gl.uniform1f(r.splatProgram.uniforms.pass,0),r.gl.uniform4f(r.splatProgram.uniforms.color,n[0]*n[3],n[1]*n[3],n[2]*n[3],n[3]),o(r.dye.write),r.dye.swap()}:r.splat=(e,t,s,a,n,d)=>{r.splatProgram.bind(),r.gl.uniform1i(r.splatProgram.uniforms.uTarget,r.velocity.read.attach(0)),r.gl.uniform1f(r.splatProgram.uniforms.aspectRatio,r.canvas.width/r.canvas.height),r.gl.uniform2f(r.splatProgram.uniforms.point,e,t),r.gl.uniform4f(r.splatProgram.uniforms.color,s,a,0,0),"mist"==i.automateSel&&(r.gl.uniform1f(r.splatProgram.uniforms.add,d?0:1),r.gl.uniform1f(r.splatProgram.uniforms.mousePower,30*i.mousePower));let l=i.splatRadius;"off"==i.automateSel&&(l=Math.min(Math.max(Math.abs(s),Math.abs(a))/4e4*i.splatRadiusCache,i.splatRadiusCache)),r.gl.uniform1f(r.splatProgram.uniforms.radius,SR7.A.fluiddynamics.correctRadius(l/100,r.canvas)),o(r.velocity.write),r.velocity.swap(),r.splatProgram2.bind(),r.gl.uniform1i(r.splatProgram2.uniforms.uTarget,r.dye.read.attach(0)),r.gl.uniform1f(r.splatProgram2.uniforms.aspectRatio,r.canvas.width/r.canvas.height),r.gl.uniform2f(r.splatProgram2.uniforms.point,e,t),r.gl.uniform1f(r.splatProgram2.uniforms.add,d?1:0),r.gl.uniform1f(r.splatProgram2.uniforms.uColorcount,i.allColorCount),r.gl.uniform1f(r.splatProgram2.uniforms.uColorChangeLenth,i.colorChangeLenth),r.gl.uniform1f(r.splatProgram2.uniforms.utime,r.utime),r.gl.uniform1f(r.splatProgram2.uniforms.uMistTime,r.utime/1e3),r.gl.uniform1f(r.splatProgram2.uniforms.radius,SR7.A.fluiddynamics.correctRadius(l/100,r.canvas)),o(r.dye.write),r.dye.swap()};let a=t.cw||1e3,n=t.ch||1200;switch(SR7.A.fluiddynamics.updateKeywords(r),SR7.A.fluiddynamics.resizeCanvas(r.canvas,r.settings.dprFluid,a,n,r.settings.dprOnMobile,r.settings.dprFluidMobile),SR7.A.fluiddynamics.initFramebuffers(r),"off"==i.followMouse&&"off"==i.followAMGen||SR7.A.fluiddynamics.initEventlisteners(t),i.automateSel){case"shoot":SR7.A.fluiddynamics.simShootingSetup(r);break;case"swipe":SR7.A.fluiddynamics.simSwipeSetup(r);break;case"collision":SR7.A.fluiddynamics.simCollisionSetup(r)}r.lastUpdateTime=Date.now(),r.colorUpdateTimer=0,r.bindedRender=()=>{SR7.A.fluiddynamics.update(t)}},initEventlisteners:e=>{let t=e.addOns.fluiddynamics;t.settings.lastfluidMouseMoveUpdateTime=0,t.pointersNum=0,"mGeneratorSimu"!=t.settings.followMouse&&"mGeneratorSimu"!=t.settings.followAMGen||(t.pointersNum=t.pointers.length-1),t.canvasRect=t.canvas.getBoundingClientRect(),t.canvas.addEventListener("mousemove",(function(t){SR7.A.fluiddynamics.listeners.mouse.move(t,e)})),t.canvas.addEventListener("mouseenter",(function(t){SR7.A.fluiddynamics.listeners.mouse.enter(t,e)})),t.canvas.addEventListener("wheel",(function(t){SR7.A.fluiddynamics.listeners.mouse.scroll(t,e)})),_tpt.is_mobile&&t.canvas.addEventListener("touchmove",(function(t){SR7.A.fluiddynamics.listeners.mouse.touchmove(t,e)}))},initFramebuffers:e=>{let t;t=_tpt.is_mobile?e.settings.qualityFluidMobile:e.settings.qualityFluid;let r=SR7.A.fluiddynamics.getResolution(128,e.gl),i=SR7.A.fluiddynamics.getResolution(t/100*1024,e.gl);const s=e.ext.halfFloatTexType,o=e.ext.formatRGBA,a=e.ext.formatRG,n=e.ext.formatR,d=e.ext.supportLinearFiltering?e.gl.LINEAR:e.gl.NEAREST;e.gl.disable(e.gl.BLEND),null==e.dye?e.dye=SR7.A.fluiddynamics.createDoubleFBO(i.width,i.height,o.internalFormat,o.format,s,d,e.gl):e.dye=SR7.A.fluiddynamics.resizeDoubleFBO(e,e.dye,i.width,i.height,o.internalFormat,o.format,s,d),null==e.velocity?e.velocity=SR7.A.fluiddynamics.createDoubleFBO(r.width,r.height,a.internalFormat,a.format,s,d,e.gl):e.velocity=SR7.A.fluiddynamics.resizeDoubleFBO(e,e.velocity,r.width,r.height,a.internalFormat,a.format,s,d),e.divergence=SR7.A.fluiddynamics.createFBO(r.width,r.height,n.internalFormat,n.format,s,e.gl.NEAREST,e.gl),e.curl=SR7.A.fluiddynamics.createFBO(r.width,r.height,n.internalFormat,n.format,s,e.gl.NEAREST,e.gl),e.pressure=SR7.A.fluiddynamics.createDoubleFBO(r.width,r.height,n.internalFormat,n.format,s,e.gl.NEAREST,e.gl)},resizeFBO:(t,r,i,s,o,a,n,d)=>{let l=SR7.A.fluiddynamics.createFBO(i,s,o,a,n,d,t.gl);t.copyProgram.bind(),t.gl.uniform1i(t.copyProgram.uniforms.uTexture,r.attach(0)),t.gl.disable(t.gl.BLEND);return e(t.gl)(l),l},resizeDoubleFBO:(e,t,r,i,s,o,a,n)=>(t.width==r&&t.height==i||(t.read=SR7.A.fluiddynamics.resizeFBO(e,t.read,r,i,s,o,a,n),t.write=SR7.A.fluiddynamics.createFBO(r,i,s,o,a,n,e.gl),t.width=r,t.height=i,t.texelSizeX=1/r,t.texelSizeY=1/i),t),updateKeywords:e=>{e.displayMaterial.setKeywords([])},refreshScene:e=>{e.addOns.fluiddynamics.settings},pointerPrototype:class{constructor(){this.id=-1,this.texcoordX=Math.random(),this.texcoordY=Math.random(),this.prevTexcoordX=0,this.prevTexcoordY=0,this.deltaX=0,this.deltaY=0,this.moved=!1,this.color=[0,0,0,1],this.add=!1,this.scrolled=!1,this.pathDestination=new THREE.Vector2,this.angle=Math.floor(360*Math.random()),SR7.A.fluiddynamics.setPathDestination(this.pathDestination,this.angle),this.pathDestinationVZ_X=1,this.pathDestinationVZ_Y=1}},step:t=>{let r=t.dt,i=t.gl,s=t.ext,o=t.settings;const a=e(i);i.disable(i.BLEND),t.curlProgram.bind(),i.uniform2f(t.curlProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),i.uniform1i(t.curlProgram.uniforms.uVelocity,t.velocity.read.attach(0)),a(t.curl),t.vorticityProgram.bind(),i.uniform2f(t.vorticityProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),i.uniform1i(t.vorticityProgram.uniforms.uVelocity,t.velocity.read.attach(0)),i.uniform1i(t.vorticityProgram.uniforms.uCurl,t.curl.attach(1)),i.uniform1f(t.vorticityProgram.uniforms.curl,o.curlVal),i.uniform1f(t.vorticityProgram.uniforms.dt,r),a(t.velocity.write),t.velocity.swap(),t.divergenceProgram.bind(),i.uniform2f(t.divergenceProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),i.uniform1i(t.divergenceProgram.uniforms.uVelocity,t.velocity.read.attach(0)),a(t.divergence),t.clearProgram.bind(),i.uniform1i(t.clearProgram.uniforms.uTexture,t.pressure.read.attach(0)),i.uniform1f(t.clearProgram.uniforms.value,o.pressureDissipation),a(t.pressure.write),t.pressure.swap(),t.pressureProgram.bind(),i.uniform2f(t.pressureProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),i.uniform1i(t.pressureProgram.uniforms.uDivergence,t.divergence.attach(0));for(let e=0;e<o.PRESSURE_ITERATIONS;e++)i.uniform1i(t.pressureProgram.uniforms.uPressure,t.pressure.read.attach(1)),a(t.pressure.write),t.pressure.swap();t.gradienSubtractProgram.bind(),i.uniform2f(t.gradienSubtractProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),i.uniform1i(t.gradienSubtractProgram.uniforms.uPressure,t.pressure.read.attach(0)),i.uniform1i(t.gradienSubtractProgram.uniforms.uVelocity,t.velocity.read.attach(1)),a(t.velocity.write),t.velocity.swap(),t.advectionProgram.bind(),i.uniform2f(t.advectionProgram.uniforms.texelSize,t.velocity.texelSizeX,t.velocity.texelSizeY),s.supportLinearFiltering||i.uniform2f(t.advectionProgram.uniforms.dyeTexelSize,t.velocity.texelSizeX,t.velocity.texelSizeY);let n=t.velocity.read.attach(0);i.uniform1i(t.advectionProgram.uniforms.uVelocity,n),i.uniform1i(t.advectionProgram.uniforms.uSource,n),i.uniform1f(t.advectionProgram.uniforms.dt,r),i.uniform1f(t.advectionProgram.uniforms.dissipation,o.velocityDissipation),a(t.velocity.write),t.velocity.swap(),s.supportLinearFiltering||i.uniform2f(t.advectionProgram.uniforms.dyeTexelSize,t.dye.texelSizeX,t.dye.texelSizeY),i.uniform1i(t.advectionProgram.uniforms.uVelocity,t.velocity.read.attach(0)),i.uniform1i(t.advectionProgram.uniforms.uSource,t.dye.read.attach(1)),i.uniform1f(t.advectionProgram.uniforms.dissipation,o.densityDissipation),a(t.dye.write),t.dye.swap()},render:(e,t)=>{SR7.A.fluiddynamics.drawDisplay(e,t)},drawDisplay:(t,r)=>{let i=t.gl,s=t.settings,o=null==r?i.drawingBufferWidth:r.width,a=null==r?i.drawingBufferHeight:r.height;t.finalProgram.bind(),_tpt.is_mozilla&&i.uniform2f(t.finalProgram.uniforms.texelSize,1/o,1/a),i.uniform1i(t.finalProgram.uniforms.uTexture,t.dye.read.attach(0));const n=e(i);n(t.dye.write),t.dye.swap(),t.displayMaterial.bind(),_tpt.is_mozilla&&i.uniform2f(t.displayMaterial.uniforms.displayTexelSize,1/o,1/a),i.uniform1i(t.displayMaterial.uniforms.uTexture,t.dye.read.attach(0)),i.uniform4fv(t.displayMaterial.uniforms.color1,s.fd_color1),i.uniform4fv(t.displayMaterial.uniforms.color2,s.fd_color2),i.uniform4fv(t.displayMaterial.uniforms.color3,s.fd_color3),i.uniform1f(t.displayMaterial.uniforms.utime,t.utime),i.uniform1f(t.displayMaterial.uniforms.uColorChangeLenth,s.colorChangeLenth),n(r)},splatPointer:(e,t)=>{let r=6e3*t.deltaX,i=6e3*t.deltaY;e.gl.disable(e.gl.BLEND),e.splat(t.texcoordX,t.texcoordY,r,i,t.color,t.add)},update:e=>{let t=e.addOns.fluiddynamics,r=t.settings;if(!t.destroyed&&!t.paused){switch(t.frame=cancelAnimationFrame(t.frame),t.frame=requestAnimationFrame(t.bindedRender),t.utime>=1e3*Math.PI&&(t.utime=0,t.startTime=Date.now()),t.utime=(Date.now()-t.startTime)/1e3,"mist"!=r.automateSel?t.dt=SR7.A.fluiddynamics.calcDeltaTime(t):t.dt=.003*r.vecLength/100,SR7.A.fluiddynamics.resizeCanvas(t.canvas,t.settings.dprFluid,e.cw,e.ch,t.settings.dprOnMobile,t.settings.dprFluidMobile)&&(t.canvasRect=t.canvas.getBoundingClientRect(),SR7.A.fluiddynamics.initFramebuffers(t)),t.updateColorFunction(t),r.automateSel){case"shoot":SR7.A.fluiddynamics.simShooting(t,r.simuWait,r.simuLength,r.simuRadius);break;case"circle":SR7.A.fluiddynamics.simCircle(t,r.simuWait,r.simuLength,r.simuRadius);break;case"swipe":SR7.A.fluiddynamics.simSwipe(t,r.simuWait,r.simuLength,r.simuRadius);break;case"collision":SR7.A.fluiddynamics.simCollision(t,r.simuWait,r.simuLength,r.simuRadius);break;case"mist":SR7.A.fluiddynamics.simMist(t,r.simuWait,r.simuLength,r.simuRadius);break;case"bounce":SR7.A.fluiddynamics.simBounce(t,r.simuWait,r.simuLength,r.simuRadius)}SR7.A.fluiddynamics.applyInputs(t),SR7.A.fluiddynamics.step(t),SR7.A.fluiddynamics.render(t,null)}},applyInputs:e=>{e.pointers.forEach((t=>{t.moved&&(t.moved=!1,SR7.A.fluiddynamics.splatPointer(e,t))}))},destroy:e=>{let t=e.addOns.fluiddynamics;t.destroyed=!0,gl.clearColor(0,0,0,0),gl.clear(gl.COLOR_BUFFER_BIT),t.frame=cancelAnimationFrame(t.frame)},getUniforms:(e,t)=>{let r=[],i=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let i=t.getActiveUniform(e,s).name;r[i]=t.getUniformLocation(e,i)}return r},simShootingSetup:e=>{const t=Math.random()-.5,r=Math.random()-.5,i=t/Math.sqrt(t*t+r*r),s=r/Math.sqrt(t*t+r*r);e.settings.vec2.x=2*i,e.settings.vec2.y=2*s,e.pointers[0].moved=!1,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX=.5,e.pointers[0].texcoordY=.5,e.pointers[0].deltaX=0,e.pointers[0].deltaY=0},simShooting:(e,t,r,i)=>{e.settings.COUNTER<r&&(e.pointers[0].moved=!0,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX+=e.settings.vec2.x*e.settings.simuPower*10/e.canvas.width,e.pointers[0].texcoordY+=e.settings.vec2.y*e.settings.simuPower*10/e.canvas.height,e.pointers[0].deltaX=(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*10,e.pointers[0].deltaY=(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*10,e.settings.COUNTER++),e.settings.COUNTER>=r&&e.settings.COUNTER<r+t&&(SR7.A.fluiddynamics.simShootingSetup(e),e.settings.COUNTER++),e.settings.COUNTER>=r+t&&(e.settings.COUNTER=0)},simCircle:(e,t,r,i)=>{i/=100;var s=e.settings.COUNTER/100*Math.PI*2*r/50,o=Math.min(e.canvas.width,e.canvas.height)*i,a=e.canvas.width/2+Math.sin(s)*o/2,n=e.canvas.height/2+Math.cos(s)*o/2;e.pointers[0].moved=!0,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX=a/e.canvas.width,e.pointers[0].texcoordY=n/e.canvas.height,e.pointers[0].deltaX=(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*1.5,e.pointers[0].deltaY=(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*1.5,e.settings.COUNTER++},simSwipeSetup:e=>{var t=.1;switch(e.settings.directionChooser){case"lr":e.settings.vec2.set(1,0),e.settings.startPos2.set(t,.5);break;case"rl":e.settings.vec2.set(-1,0),e.settings.startPos2.set(.9,.5);break;case"bt":e.settings.vec2.set(0,1),e.settings.startPos2.set(.5,t);break;case"tb":e.settings.vec2.set(0,-1),e.settings.startPos2.set(.5,.9);break;case"bltr":e.settings.vec2.set(e.canvas.width,e.canvas.height),e.settings.startPos2.set(t,t);break;case"trbl":e.settings.vec2.set(-e.canvas.width,-e.canvas.height),e.settings.startPos2.set(.9,.9);break;case"brtl":e.settings.vec2.set(-e.canvas.width,e.canvas.height),e.settings.startPos2.set(.9,t);break;case"tlbr":e.settings.vec2.set(e.canvas.width,-e.canvas.height),e.settings.startPos2.set(t,.9)}e.settings.vec2.setLength(1),e.pointers[0].moved=!1,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX=e.settings.startPos2.x,e.pointers[0].texcoordY=e.settings.startPos2.y,e.pointers[0].deltaX=0,e.pointers[0].deltaY=0},simSwipe:(e,t,r,i)=>{e.settings.COUNTER<r&&(e.pointers[0].moved=!0,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX+=10*e.settings.vec2.x/e.canvas.width,e.pointers[0].texcoordY+=10*e.settings.vec2.y/e.canvas.height,e.pointers[0].deltaX=(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*10,e.pointers[0].deltaY=(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*10,e.settings.COUNTER++),e.settings.COUNTER>=r&&e.settings.COUNTER<r+t&&(SR7.A.fluiddynamics.simSwipeSetup(e),e.settings.COUNTER++),e.settings.COUNTER>=r+t&&(e.settings.COUNTER=0)},simCollisionSetup:e=>{var t=.1;switch(e.settings.colDirectionChooser){case"lr":e.settings.vec2.set(1,0),e.settings.startPos2.set(t,.5),e.settings.startPosNegate.set(.9,.5);break;case"tb":e.settings.vec2.set(0,1),e.settings.startPos2.set(.5,t),e.settings.startPosNegate.set(.5,.9);break;case"trbl":e.settings.vec2.set(e.canvas.width,e.canvas.height),e.settings.startPos2.set(t,t),e.settings.startPosNegate.set(.9,.9);break;case"tlbr":e.settings.vec2.set(-e.canvas.width,e.canvas.height),e.settings.startPos2.set(.9,t),e.settings.startPosNegate.set(t,.9)}e.settings.vec2.setLength(1),e.pointers[0].moved=!1,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX=e.settings.startPos2.x,e.pointers[0].texcoordY=e.settings.startPos2.y,e.pointers[0].deltaX=0,e.pointers[0].deltaY=0,e.settings.vec2.setLength(1),e.pointers[1].moved=!1,e.pointers[1].prevTexcoordX=e.pointers[1].texcoordX,e.pointers[1].prevTexcoordY=e.pointers[1].texcoordY,e.pointers[1].texcoordX=e.settings.startPosNegate.x,e.pointers[1].texcoordY=e.settings.startPosNegate.y,e.pointers[1].deltaX=0,e.pointers[1].deltaY=0},simCollision:(e,t,r,i)=>{e.settings.COUNTER<r&&(e.pointers[0].moved=!0,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX+=10*e.settings.vec2.x/e.canvas.width,e.pointers[0].texcoordY+=10*e.settings.vec2.y/e.canvas.height,e.pointers[0].deltaX=(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*10,e.pointers[0].deltaY=(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*10,e.pointers[1].moved=!0,e.pointers[1].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[1].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[1].texcoordX+=-10*e.settings.vec2.x/e.canvas.width,e.pointers[1].texcoordY+=-10*e.settings.vec2.y/e.canvas.height,e.pointers[1].deltaX=-(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*10,e.pointers[1].deltaY=-(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*10,e.settings.COUNTER++),e.settings.COUNTER>=r&&e.settings.COUNTER<r+t&&(SR7.A.fluiddynamics.simCollisionSetup(e),e.settings.COUNTER++),e.settings.COUNTER>=r+t&&(e.settings.COUNTER=0)},simBounce:(e,t,r,i)=>{e.settings.vec2.set(1,1),e.settings.COUNTER<r?(e.settings.COUNTER++,(e.pointers[0].texcoordX<0||e.pointers[0].texcoordX>1)&&(e.pointers[0].pathDestinationVZ_X*=-1),(e.pointers[0].texcoordY<0||e.pointers[0].texcoordY>1)&&(e.pointers[0].pathDestinationVZ_Y*=-1),e.pointers[0].moved=!0,e.pointers[0].prevTexcoordX=e.pointers[0].texcoordX,e.pointers[0].prevTexcoordY=e.pointers[0].texcoordY,e.pointers[0].texcoordX+=e.settings.vec2.x*r/5*e.pointers[0].pathDestinationVZ_X/e.canvas.width,e.pointers[0].texcoordY+=e.settings.vec2.y*r/5*e.pointers[0].pathDestinationVZ_Y/e.canvas.height,e.pointers[0].deltaX=(e.pointers[0].texcoordX-e.pointers[0].prevTexcoordX)*e.settings.simuPower*10,e.pointers[0].deltaY=(e.pointers[0].texcoordY-e.pointers[0].prevTexcoordY)*e.settings.simuPower*10):e.settings.COUNTER=0},simMist:(e,t,r,i)=>{for(let t=0;t<e.pointers.length-1;t++)if(e.settings.COUNTER<r){e.settings.COUNTER++;var s=Math.ceil(e.pointers.length/2)+2;t<=s&&((e.pointers[t].texcoordX<0||e.pointers[t].texcoordX>1)&&(e.pointers[t].pathDestinationVZ_X*=-1),(e.pointers[t].texcoordY<0||e.pointers[t].texcoordY>1)&&(e.pointers[t].pathDestinationVZ_Y*=-1),e.pointers[t].moved=!0,e.pointers[t].add=!0,e.pointers[t].prevTexcoordX=e.pointers[t].texcoordX,e.pointers[t].prevTexcoordY=e.pointers[t].texcoordY,e.pointers[t].texcoordX+=e.pointers[t].pathDestination.x*r/8*e.pointers[t].pathDestinationVZ_X/e.canvas.width,e.pointers[t].texcoordY=0,e.pointers[t].deltaX=(e.pointers[t].texcoordX-e.pointers[t].prevTexcoordX)*e.settings.simuPower/50,e.pointers[t].deltaY=e.settings.simuPower/50),t>s&&(e.pointers[t].moved=!0,e.pointers[t].add=!0,e.pointers[t].prevTexcoordX=e.pointers[t].texcoordX,e.pointers[t].prevTexcoordY=e.pointers[t].texcoordY,e.pointers[t].texcoordX=e.pointers[t-s].texcoordX,e.pointers[t].texcoordY=e.pointers[t-s].texcoordY,e.pointers[t].deltaX=e.pointers[t-s].deltaX,e.pointers[t].deltaY=e.pointers[t-s].deltaY)}else e.settings.COUNTER=0,SR7.A.fluiddynamics.setPathDestination(e.pointers[t].pathDestination,e.pointers[t].angle)},setPathDestination:(e,t)=>{var r=60*Math.random()-30+t;e.set(Math.cos(r*Math.PI/180),Math.sin(r*Math.PI/180))},createProgram:(e,t,r)=>{let i=r.createProgram();return r.attachShader(i,e),r.attachShader(i,t),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS)||console.trace(r.getProgramInfoLog(i)),i},resizeCanvas:(e,t,r,i,s,o)=>{let a="auto"==t||"0"==t?window.devicePixelRatio:Math.min(window.devicePixelRatio,parseInt(t));if(_tpt.is_mobile&&s&&"auto"!==o&&(a=Math.min(a,parseInt(o))),e.width!==Math.floor(r*a)||e.height!==Math.floor(i*a)){return e.width=Math.floor(r*a),e.height=Math.floor(i*a),e.style.width=r+"px",e.style.height=i+"px",e.getContext("webgl2",{alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1}).viewport(0,0,e.width,e.height),!0}return!1},hashCode:e=>{if(0==e.length)return 0;let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return t},correctRadius:(e,t)=>{let r=t.width/t.height;return r>1&&(e*=r),e},getResolution:(e,t)=>{let r=t.drawingBufferWidth/t.drawingBufferHeight;r<1&&(r=1/r);let i=Math.round(e),s=Math.round(e*r);return t.drawingBufferWidth>t.drawingBufferHeight?{width:s,height:i}:{width:i,height:s}},HSVtoRGB:e=>{let t=6*e,r=Math.floor(t),i=t-r,s=1-i,o=i;switch(r%6){case 0:return[1,o,0,1];case 1:return[s,1,0,1];case 2:return[0,1,o,1];case 3:return[0,s,1,1];case 4:return[o,0,1,1];case 5:return[1,0,1,1]}},wrap:(e,t,r)=>{let i=r-t;return 0==i?t:(e-t)%i+t},calcDeltaTime:e=>{let t=Date.now(),r=(t-e.lastUpdateTime)/1e3;return r=Math.min(r,.016666),e.lastUpdateTime=t,r},createDoubleFBO:(e,t,r,i,s,o,a)=>{let n=SR7.A.fluiddynamics.createFBO(e,t,r,i,s,o,a),d=SR7.A.fluiddynamics.createFBO(e,t,r,i,s,o,a);return{width:e,height:t,texelSizeX:n.texelSizeX,texelSizeY:n.texelSizeY,get read(){return n},set read(e){n=e},get write(){return d},set write(e){d=e},swap(){let e=n;n=d,d=e}}},createFBO:(e,t,r,i,s,o,a)=>{a.activeTexture(a.TEXTURE0);let n=a.createTexture();a.bindTexture(a.TEXTURE_2D,n),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,o),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,o),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texImage2D(a.TEXTURE_2D,0,r,e,t,0,i,s,null);let d=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,d),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,n,0),a.viewport(0,0,e,t),a.clear(a.COLOR_BUFFER_BIT),{texture:n,fbo:d,width:e,height:t,texelSizeX:1/e,texelSizeY:1/t,attach:e=>(a.activeTexture(a.TEXTURE0+e),a.bindTexture(a.TEXTURE_2D,n),e)}},getWebGLContext:e=>{const t={alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1};let r=e.getContext("webgl2",t);const i=!!r;let s,o;i||(r=e.getContext("webgl",t)||e.getContext("experimental-webgl",t)),i?(r.getExtension("EXT_color_buffer_float"),o=r.getExtension("OES_texture_float_linear")):(s=r.getExtension("OES_texture_half_float"),o=r.getExtension("OES_texture_half_float_linear")),r.clearColor(0,0,0,1);const a=i?r.HALF_FLOAT:s.HALF_FLOAT_OES;let n,d,l;return i?(n=SR7.A.fluiddynamics.getSupportedFormat(r,r.RGBA16F,r.RGBA,a),d=SR7.A.fluiddynamics.getSupportedFormat(r,r.RG16F,r.RG,a),l=SR7.A.fluiddynamics.getSupportedFormat(r,r.R16F,r.RED,a)):(n=SR7.A.fluiddynamics.getSupportedFormat(r,r.RGBA,r.RGBA,a),d=SR7.A.fluiddynamics.getSupportedFormat(r,r.RGBA,r.RGBA,a),l=SR7.A.fluiddynamics.getSupportedFormat(r,r.RGBA,r.RGBA,a)),{gl:r,ext:{formatRGBA:n,formatRG:d,formatR:l,halfFloatTexType:a,supportLinearFiltering:o}}},getSupportedFormat:(e,t,r,i)=>{if(!SR7.A.fluiddynamics.supportRenderTextureFormat(e,t,r,i))switch(t){case e.R16F:return SR7.A.fluiddynamics.getSupportedFormat(e,e.RG16F,e.RG,i);case e.RG16F:return SR7.A.fluiddynamics.getSupportedFormat(e,e.RGBA16F,e.RGBA,i);default:return null}return{internalFormat:t,format:r}},supportRenderTextureFormat:(e,t,r,i)=>{let s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,t,4,4,0,r,i,null);let o=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0),e.checkFramebufferStatus(e.FRAMEBUFFER)==e.FRAMEBUFFER_COMPLETE},resetMaxOpacity:(e,t)=>{e[0]*=t,e[1]*=t,e[2]*=t,e[3]>t&&(e[3]=t)},Material:class{constructor(e,t,r){this.vertexShader=e,this.fragmentShaderSource=t,this.programs=[],this.activeProgram=null,this.uniforms=[],this.gl=r}setKeywords(e){let t=0;for(let r=0;r<e.length;r++)t+=hashCode(e[r]);let r=this.programs[t];null==r&&(r=SR7.A.fluiddynamics.createProgram(this.vertexShader,this.fragmentShaderSource,this.gl),this.programs[t]=r),r!=this.activeProgram&&(this.uniforms=SR7.A.fluiddynamics.getUniforms(r,this.gl),this.activeProgram=r)}bind(){this.gl.useProgram(this.activeProgram)}},Program:class{constructor(e,t,r){this.gl=r,this.uniforms={},this.program=SR7.A.fluiddynamics.createProgram(e,t,r),this.uniforms=SR7.A.fluiddynamics.getUniforms(this.program,r)}bind(){this.gl.useProgram(this.program)}}};const e=e=>(e.bindBuffer(e.ARRAY_BUFFER,e.createBuffer()),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,e.createBuffer()),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(0),(t,r=!1)=>{null==t?(e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),e.bindFramebuffer(e.FRAMEBUFFER,null)):(e.viewport(0,0,t.width,t.height),e.bindFramebuffer(e.FRAMEBUFFER,t.fbo)),r&&(e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)});_tpt.R??={},_tpt.R.fd_Fluid=_tpt.extend?_tpt.extend(_tpt.R.fd_Fluid,{status:2,version:"1.0"}):{status:2,version:"1.0"},window.dispatchEvent(new CustomEvent("SR7FluiddynamicsFluidLoaded"))}();
!function(){"use strict";window.SR7??={},window._tpt??={},SR7.A??={},SR7.F??={},SR7.D??={},void 0===(SR7.A.fluiddynamics?.shaders??void 0)&&(SR7.A.fluiddynamics={...SR7.A.fluiddynamics,shaders:{baseVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",copyShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                uniform sampler2D uTexture;\n\n                void main (){\n                    gl_FragColor=texture2D(uTexture, vUv);\n                }\n            ",clearShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                uniform sampler2D uTexture;\n                uniform float value;\n\n                void main (){\n                    gl_FragColor=value * texture2D(uTexture, vUv);\n                }\n            ",finalShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                uniform sampler2D uTexture;\n\n                void main (){\n                    vec4 c=texture2D(uTexture, vUv);\n\n                    float a=max(c.r, max(c.g, c.b));\n                    gl_FragColor=vec4(c.xyz, a);\n                }\n            ",displayShaderSource:e=>{let n="\n                    precision highp float;\n                    precision highp sampler2D;\n\n                    varying vec2 vUv;\n                    varying vec2 vL;\n                    varying vec2 vR;\n                    varying vec2 vT;\n                    varying vec2 vB;\n                    uniform sampler2D uTexture;\n                    uniform sampler2D uDithering;\n                    uniform vec2 ditherScale;\n\n                    uniform float utime;\n                    uniform float uColorChangeLenth;\n\n                    uniform vec4 color1;\n                    uniform vec4 color2;\n                    uniform vec4 color3;\n                    \n                    void main (){\n                        vec4 c=texture2D(uTexture, vUv);\n                        vec4 black=vec4(0.0, 0.0, 0.0, c.a);\n\n                        //see how light color1 is: (range 0.0 - 1.0)\n                        float light=max(color1.r, max(color1.g, color1.b));\n\n                        vec4 interpolatedColor=vec4(1.0);\n                        //INTERPOLATEDCOLOR HERE\n\n                        //COLORFULL HERE\n                        \n                        gl_FragColor=c;\n                    }\n                ";if(!e.colorFull)if("timed"==e.colorChangeType)switch(e.allColorCount){case 0:n=n.replace("//INTERPOLATEDCOLOR HERE","\n                                    interpolatedColor=color1;\n                                    c -=1.0 - interpolatedColor;\n                \n                                    if(light==0.0){\n                                        c=black;\n                                    }\n                                ");break;case 1:n=n.replace("//INTERPOLATEDCOLOR HERE","\n                                    float t=sin(utime * 1.0 / uColorChangeLenth);\n                                    t=(t+1.0) * 0.5;\n                                    interpolatedColor=mix(color1, color2, smoothstep(0.0, 1.0, t));\n                \n                                    c -=1.0 - interpolatedColor;\n                                ");break;case 2:n=n.replace("//INTERPOLATEDCOLOR HERE","\n                                    //float t=sin(utime * uColorChangeLenth * 2.0/3.0);\n                                    //t=(t + 1.0) * 0.5;\n                                    float t=utime * 1.0 / uColorChangeLenth;\n                                    t=t * 2.0/3.0 - 1.0 * floor((t * 2.0/3.0) / 1.0);\n                \n                                    float step1=1.0 / 3.0;\n                                    float step2=2.0 / 3.0;\n                \n                                    if(t < step1){\n                                        interpolatedColor=mix(color1, color2, smoothstep(0.0, step1, t));\n                                    }else if(t < step2){\n                                        interpolatedColor=mix(color2, color3, smoothstep(step1, step2, t));\n                                    }else{\n                                        interpolatedColor=mix(color3, color1, smoothstep(step2, 1.0, t));\n                                    }\n                \n                                    c -=1.0 - interpolatedColor;\n                                ")}else n=n.replace("//INTERPOLATEDCOLOR HERE","\n                            //float t=sin(utime * 1.0 / uColorChangeLenth);\n                            //t=(t+1.0) * 0.5;\n                            interpolatedColor=mix(color2, color1, smoothstep(0.3, 1.0, c.a));\n            \n                            c -=1.0 - interpolatedColor;\n                        ");return n},splatShader:e=>{let n="\n                    precision highp float;\n                    precision highp sampler2D;\n\n                    varying vec2 vUv;\n                    uniform sampler2D uTarget;\n                    uniform float aspectRatio;\n                    uniform vec4 color;\n                    uniform vec4 dxdy;\n                    uniform vec2 point;\n                    uniform float radius;\n                    uniform float utime;\n                    uniform float pass;\n                    uniform float add;\n                    uniform float mousePower;\n\n                    void main (){\n                        vec2 p=vUv - point.xy;\n                        p.x *=aspectRatio;\n                        vec4 switchVal=color;\n\n                        if(pass==1.0){\n                            switchVal=dxdy;\n                        }\n\n                        if(add==1.0){\n                            switchVal=switchVal * mousePower;\n                        }\n\n                        vec4 splat=vec4(0.0);\n\n                        //GLOW HERE\n                        \n                        if(pass==0.0){\n                            splat.a=1.0;\n                        }\n\n                        vec4 base=texture2D(uTarget, vUv);\n\n                        gl_FragColor=splat + base;\n                    }\n                ";return n=e.glow?n.replace("//GLOW HERE","\n                        splat=1.0 / (1.0 + dot(p, p) / (radius * radius * 1000.0)) * switchVal;\n                    "):n.replace("//GLOW HERE","\n                        splat=exp(-dot(p, p) / radius) * switchVal;\n                    "),n},splatShader2:e=>{let n="\n                    precision highp float;\n                    precision highp sampler2D;\n            \n                    varying vec2 vUv;\n                    uniform sampler2D uTarget;\n                    uniform float aspectRatio;\n                    uniform float utime;\n                    uniform vec2 point;\n                    uniform float radius;\n                    uniform float uColorChangeLenth;\n                    uniform float uMistTime;\n                    uniform float add;\n            \n                    //PRE MAIN\n                    \n                    void main (){\n                        vec2 uv=vUv - point.xy;\n                        uv.x *=aspectRatio;\n                        \n                        vec2 p=vUv - point.xy;\n                        p.x *=aspectRatio;\n            \n                        //NOISE HERE\n            \n                        //INTERPOLATEDCOLOR HERE\n                        vec4 interpolatedColor=vec4(1.0);\n            \n                        //OUTPUT HERE\n                    }\n                ";return"mist"==e.automateSel?(n=n.replace("//PRE MAIN","\n                        float hash(float n){\n                            return fract(sin(n) * 43758.5453);\n                        }\n                        \n                        float smoothsteper(float edge0, float edge1, float x){\n                            float t=clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n                            return t * t * (3.0 - 2.0 * t);\n                        }\n        \n                        float perlinNoise(vec2 p){\n                            vec2 i=floor(p);\n                            vec2 f=fract(p);\n        \n                            // Calculate the four corners of the cell\n                            float a=hash(dot(i, vec2(37.0, 17.0)));\n                            float b=hash(dot(i + vec2(1.0, 0.0), vec2(37.0, 17.0)));\n                            float c=hash(dot(i + vec2(0.0, 1.0), vec2(37.0, 17.0)));\n                            float d=hash(dot(i + vec2(1.0, 1.0), vec2(37.0, 17.0)));\n        \n                            // Smoothly interpolate gradients\n                            vec2 u=f * f * (3.0 - 2.0 * f);\n                            return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;\n                        }\n                    "),n=n.replace("//NOISE HERE","\n                        float timeFactor=utime * 0.1;\n                        float timeV=perlinNoise(vec2(timeFactor * 0.1));\n                        float timeF=perlinNoise(vec2(timeFactor * 3.5));\n        \n                        float noiseValue=(perlinNoise((uv - vec2(timeV, timeF)) * 10.0 + timeFactor) + 1.0) * 0.5;\n        \n                        vec4 noise=vec4(noiseValue);\n                        noise.x -=0.5;\n                        noise.y -=0.5;\n                        noise.z -=0.5;\n                        noise.a=0.0;\n                        noise *=0.001;\n                    "),n=n.replace("//OUTPUT HERE","\n                        vec4 limitedOutput=vec4(0.0);\n                        vec4 splat=vec4(0.0);\n                        vec4 base=vec4(0.0);\n        \n                        if(add==1.0){\n                            p.x=0.0;\n                            splat=exp(-dot(p, p) / radius * noiseValue) * interpolatedColor;\n                            base=texture2D(uTarget, vUv);\n                            limitedOutput=min(splat + base + noise, interpolatedColor);\n                        }\n                        else{\n                            splat=exp(-dot(p, p) / radius) * interpolatedColor;\n                            base=texture2D(uTarget, vUv);\n                            limitedOutput=min(splat + base, interpolatedColor);\n                        }\n                        \n                        gl_FragColor=limitedOutput;\n                        //gl_FragColor=vec4(noise, 1.0);\n                    ")):n=e.glow?n.replace("//OUTPUT HERE","\n                            vec4 splat=1.0 / (1.0 + dot(p, p) / (radius * radius * 1000.0)) * interpolatedColor;\n                            vec4 base=texture2D(uTarget, vUv);\n                            vec4 limitedOutput=min(splat + base, interpolatedColor * 1.25);\n                            gl_FragColor=limitedOutput;\n                        "):n.replace("//OUTPUT HERE","\n                            vec4 splat=exp(-dot(p, p) / radius) * interpolatedColor;\n                            vec4 base=texture2D(uTarget, vUv);\n                            vec4 limitedOutput=min(splat + base, interpolatedColor * 1.25);\n                            gl_FragColor=limitedOutput;\n                        "),n},advectionShader:()=>"\n                precision highp float;\n                precision highp sampler2D;\n\n                varying vec2 vUv;\n                uniform sampler2D uVelocity;\n                uniform sampler2D uSource;\n                uniform vec2 dyeTexelSize;\n                uniform vec2 texelSize;\n                uniform float dt;\n                uniform float dissipation;\n\n                vec4 bilerp (sampler2D sam, vec2 uv, vec2 tsize){\n                    vec2 st=uv / tsize - 0.5;\n\n                    vec2 iuv=floor(st);\n                    vec2 fuv=fract(st);\n\n                    vec4 a=texture2D(sam, (iuv + vec2(0.5, 0.5)) * tsize);\n                    vec4 b=texture2D(sam, (iuv + vec2(1.5, 0.5)) * tsize);\n                    vec4 c=texture2D(sam, (iuv + vec2(0.5, 1.5)) * tsize);\n                    vec4 d=texture2D(sam, (iuv + vec2(1.5, 1.5)) * tsize);\n\n                    return mix(mix(a, b, fuv.x), mix(c, d, fuv.x), fuv.y);\n                }\n\n                void main (){\n                #ifdef MANUAL_FILTERING\n                    vec2 coord=vUv - dt * bilerp(uVelocity, vUv, texelSize).xy * texelSize;\n                    vec4 result=bilerp(uSource, coord, dyeTexelSize);\n                #else\n                    vec2 coord=vUv - dt * texture2D(uVelocity, vUv).xy * texelSize;\n                    vec4 result=texture2D(uSource, coord);\n                #endif\n                    float decay=1.0 + dissipation * dt;\n                    gl_FragColor=result / decay;\n                }\n            ",divergenceShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                varying highp vec2 vL;\n                varying highp vec2 vR;\n                varying highp vec2 vT;\n                varying highp vec2 vB;\n                uniform sampler2D uVelocity;\n\n                void main (){\n                    float L=texture2D(uVelocity, vL).x;\n                    float R=texture2D(uVelocity, vR).x;\n                    float T=texture2D(uVelocity, vT).y;\n                    float B=texture2D(uVelocity, vB).y;\n\n                    vec2 C=texture2D(uVelocity, vUv).xy;\n                    if(vL.x < 0.0){ L=-C.x; }\n                    if(vR.x > 1.0){ R=-C.x; }\n                    if(vT.y > 1.0){ T=-C.y; }\n                    if(vB.y < 0.0){ B=-C.y; }\n\n                    float div=0.5 * (R - L + T - B);\n                    gl_FragColor=vec4(div, 0.0, 0.0, 1.0);\n                }\n            ",curlShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                varying highp vec2 vL;\n                varying highp vec2 vR;\n                varying highp vec2 vT;\n                varying highp vec2 vB;\n                uniform sampler2D uVelocity;\n\n                void main (){\n                    float L=texture2D(uVelocity, vL).y;\n                    float R=texture2D(uVelocity, vR).y;\n                    float T=texture2D(uVelocity, vT).x;\n                    float B=texture2D(uVelocity, vB).x;\n                    float vorticity=R - L - T + B;\n                    gl_FragColor=vec4(0.5 * vorticity, 0.0, 0.0, 1.0);\n                }\n            ",vorticityShader:()=>"\n                precision highp float;\n                precision highp sampler2D;\n\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform sampler2D uVelocity;\n                uniform sampler2D uCurl;\n                uniform float curl;\n                uniform float dt;\n\n                void main (){\n                    float L=texture2D(uCurl, vL).x;\n                    float R=texture2D(uCurl, vR).x;\n                    float T=texture2D(uCurl, vT).x;\n                    float B=texture2D(uCurl, vB).x;\n                    float C=texture2D(uCurl, vUv).x;\n\n                    vec2 force=0.5 * vec2(abs(T) - abs(B), abs(R) - abs(L));\n                    force /=length(force) + 0.0001;\n                    force *=curl * C;\n                    force.y *=-1.0;\n\n                    vec2 velocity=texture2D(uVelocity, vUv).xy;\n                    velocity +=force * dt;\n                    velocity=min(max(velocity, -1000.0), 1000.0);\n                    gl_FragColor=vec4(velocity, 0.0, 1.0);\n                }\n            ",pressureShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                varying highp vec2 vL;\n                varying highp vec2 vR;\n                varying highp vec2 vT;\n                varying highp vec2 vB;\n                uniform sampler2D uPressure;\n                uniform sampler2D uDivergence;\n\n                void main (){\n                    float L=texture2D(uPressure, vL).x;\n                    float R=texture2D(uPressure, vR).x;\n                    float T=texture2D(uPressure, vT).x;\n                    float B=texture2D(uPressure, vB).x;\n                    float C=texture2D(uPressure, vUv).x;\n                    float divergence=texture2D(uDivergence, vUv).x;\n                    float pressure=(L + R + B + T - divergence) * 0.25;\n                    gl_FragColor=vec4(pressure, 0.0, 0.0, 1.0);\n                }\n            ",gradientSubtractShader:()=>"\n                precision mediump float;\n                precision mediump sampler2D;\n\n                varying highp vec2 vUv;\n                varying highp vec2 vL;\n                varying highp vec2 vR;\n                varying highp vec2 vT;\n                varying highp vec2 vB;\n                uniform sampler2D uPressure;\n                uniform sampler2D uVelocity;\n\n                void main (){\n                    float L=texture2D(uPressure, vL).x;\n                    float R=texture2D(uPressure, vR).x;\n                    float T=texture2D(uPressure, vT).x;\n                    float B=texture2D(uPressure, vB).x;\n                    vec2 velocity=texture2D(uVelocity, vUv).xy;\n                    velocity.xy -=vec2(R - L, T - B);\n                    gl_FragColor=vec4(velocity, 0.0, 1.0);\n                }\n            ",advectionVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",divergenceVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",curlVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",vorticityVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",pressureVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            ",gradienSubtractVertexShader:()=>"\n                precision highp float;\n\n                attribute vec2 aPosition;\n                varying vec2 vUv;\n                varying vec2 vL;\n                varying vec2 vR;\n                varying vec2 vT;\n                varying vec2 vB;\n                uniform vec2 texelSize;\n\n                void main (){\n                    vUv=aPosition * 0.5 + 0.5;\n                    vL=vUv - vec2(texelSize.x, 0.0);\n                    vR=vUv + vec2(texelSize.x, 0.0);\n                    vT=vUv + vec2(0.0, texelSize.y);\n                    vB=vUv - vec2(0.0, texelSize.y);\n                    gl_Position=vec4(aPosition, 0.0, 1.0);\n                }\n            "},createShaders:e=>{let n=e.gl,i=e.ext,r=e.settings;e.baseVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.baseVertexShader(),n),e.copyShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.copyShader(),n),e.clearShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.clearShader(),n),e.finalShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.finalShader(),n),e.displayShaderSource=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.displayShaderSource(r),n),e.splatShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.splatShader(r),n),e.splatShader2=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.splatShader2(r),n),e.advectionShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.advectionShader(),n,i.supportLinearFiltering?null:["MANUAL_FILTERING"]),e.divergenceShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.divergenceShader(),n),e.curlShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.curlShader(),n),e.vorticityShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.vorticityShader(),n),e.pressureShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.pressureShader(),n),e.gradientSubtractShader=SR7.A.fluiddynamics.compileShader(n.FRAGMENT_SHADER,SR7.A.fluiddynamics.shaders.gradientSubtractShader(),n),r.isFirefox&&(e.advectionVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.advectionVertexShader(),n),e.divergenceVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.divergenceVertexShader(),n),e.curlVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.curlVertexShader(),n),e.vorticityVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.vorticityVertexShader(),n),e.pressureVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.pressureVertexShader(),n),e.gradienSubtractVertexShader=SR7.A.fluiddynamics.compileShader(n.VERTEX_SHADER,SR7.A.fluiddynamics.shaders.gradienSubtractVertexShader(),n))},compileShader:(e,n,i,r)=>{n=SR7.A.fluiddynamics.addKeywords(n,r);const t=i.createShader(e);return i.shaderSource(t,n),i.compileShader(t),i.getShaderParameter(t,i.COMPILE_STATUS)||console.trace(i.getShaderInfoLog(t)),t},addKeywords:(e,n)=>{if(null==n)return e;let i="";return n.forEach((e=>{i+="#define "+e+"\n"})),i+e}},_tpt.R??={},_tpt.R.fd_Shaders=_tpt.extend?_tpt.extend(_tpt.R.fd_Shaders,{status:2,version:"1.0"}):{status:2,version:"1.0"},window.dispatchEvent(new CustomEvent("SR7FluiddynamicsShadersLoaded")))}();
!function(){"use strict";window.SR7??={},window._tpt??={},SR7.A??={},SR7.F??={},SR7.D??={},void 0===(SR7.A.fluiddynamics?.tools??void 0)&&(SR7.A.fluiddynamics={...SR7.A.fluiddynamics,tools:{resetMaxOpacity:(t,s)=>{t[0]*=s,t[1]*=s,t[2]*=s,t[3]>s&&(t[3]=s)},getRGBA:t=>{if("string"!=typeof t)throw"Passed color was not a String";if(t.includes("#")){t=tpGS.gsap.utils.splitColor(t);for(let s=0;s<t.length;s++)t[s]/=255;t.push(1)}if(t.includes("rgba")){t=tpGS.gsap.utils.splitColor(t);for(let s=0;s<t.length-1;s++)t[s]/=255;t.length<=3&&(t[3]=1)}return t}}},_tpt.R??={},_tpt.R.fd_Tools=_tpt.extend?_tpt.extend(_tpt.R.fd_Tools,{status:2,version:"1.0"}):{status:2,version:"1.0"},window.dispatchEvent(new CustomEvent("SR7FluidDynamicsToolsLoaded")))}();
!function(){"use strict";if(window.SR7??={},window._tpt??={},SR7.A??={},SR7.F??={},SR7.D??={},void 0!==SR7.A.typewriter)return;let e=document.createElement("textarea"),t={pI:e=>parseInt(e),pF:e=>parseFloat(e),s:e=>String(e),b:e=>"on"===e||!0===e||1===e||"off"!==e&&!1!==e&&0!==e&&e,k:e=>e};SR7.A.typewriter={anime:'content: "[char]"; animation: tp-typewriter [speed]s steps(2, start) infinite',style:"@keyframes tp-typewriter {from {visibility: visible}to {visibility: hidden}}sr7-layer.typewriter:before,sr7-layer.typewriter:after,.sr7-layer.typewriter:before,.sr7-layer.typewriter:after {\tposition: absolute;}sr7tw-blinking:before,sr7tw-blinking:after,.sr7tw-blinking:before,.sr7tw-blinking:after {\tposition: static;}@keyframes sr7-typewriter {from {visibility: visible}to {visibility: hidden}}",getLayerBasics:(e={},r)=>{let i="normalize"===r;return{u:"compare"==r?void 0:e.u??e.enable??!1,d:e.d??e.delays??"",s:t[i?"pI":"k"](e.s??e.speed??"30"),ctype:e.ctype??e.cursor_type??"one",c:e.c??e.color??"transparent",dStart:t[i?"pI":"k"](e.dStart??e.start_delay??"1000"),dNew:t[i?"pI":"k"](e.dNew??e.newline_delay??"1000"),dLB:t[i?"pI":"k"](e.dLB??e.linebreak_delay??"60"),dDel:t[i?"pI":"k"](e.dDel??e.deletion_delay??"1000"),sDel:t[i?"pI":"k"](e.sDel??e.deletion_speed??"20"),sBlink:t[i?"pI":"k"](e.sBlink??e.blinking_speed??"500"),loop:t[i?"b":"k"](e.loop??e.looped??!1),blink:t[i?"b":"k"](e.blink??e.blinking??!1),seq:t[i?"b":"k"](e.seq??e.sequenced??!1),dWord:t[i?"b":"k"](e.dWord??e.word_delay??!1),hCur:t[i?"b":"k"](e.hCur??e.hide_cursor??!1),lines:e.lines??""}},getModuleBasics:(e={},t)=>({u:"compare"==t?void 0:e.u??e.enable??!0}),prepareLayer:(e,t,r)=>{const i=t?.addOns?.typewriter;if("text"!==t?.type||!i?.u)return;let n=SR7.M[e].c.layers[r];n.subtype=t.subtype="typewriter",n.addOns??={},n.addOns.typewriter??=SR7.A.typewriter.getLayerBasics(t.addOns.typewriter,"normalize"),SR7.A.typewriter.writeCSS(n,t),SR7.A.typewriter.build(n,t)},prepareSlide:(e,t)=>{SR7.M[e].c.addOns??={},SR7.M[e].c.addOns.typewriter??={};const{M:r,AS:i,AM:n,AC:s}=SR7.A.typewriter.getSettings(e,t)},init:e=>{void 0===SR7.A.typewritercss&&(_tpt.injectCssJs(SR7.A.typewriter.style,void 0,void 0,"typewriter_global_styles"),SR7.A.typewritercss=!0),SR7.M[e].c.moduleListeners??={},SR7.M[e].c.moduleListeners.typewriter??={},_tpt.scrollObserver.observe(SR7.M[e].c.module),SR7.F.module.listeners.init(e),SR7.A.typewriter.listeners.init(e)},toggle:e=>{let t=SR7.A.typewriter;const r=SR7.M[e];if(t.onFire)for(let i in t.onFire[e])_tpt.hop(t.onFire[e],i)&&(r.states.inViewPort?t.resume(r.c.layers[i]):t.pause(r.c.layers[i]))},listeners:{init:e=>{SR7.A.typewriter.listenersAdded?.[e]||(SR7.A.typewriter.onFire??={},SR7.A.typewriter.onFire[e]??={},document.addEventListener("sr.layer.action",(function(e){"typewriter"===e.c.subtype&&"false"!=(e.layersettings?.addOns?.typewriter?.u??!1)&&("enterstage"==e.eventtype?(e.c.addOns.typewriter.paused=!1,e.c.addOns.typewriter.active=!0,SR7.A.typewriter.play(e.c)):"leavestage"==e.eventtype&&(SR7.A.typewriter.pause(e.c,!0),e.c.addOns.typewriter.active=!1))})),SR7.A.typewriter.listenersAdded??={},SR7.A.typewriter.listenersAdded[e]=!0)}},writeCSS:(e,t)=>{let r=e.addOns.typewriter;if(r.blink){let i="#"+e.el.id,n="";if(n+=i+":before,",n+=i+":after {",n+=SR7.A.typewriter.anime.replace("[char]","one"===r.ctype?"_":"|").replace("[speed]",.001*r.sBlink)+"}",n+=i+".hide-typewriter-cursor:before,",n+=i+'.hide-typewriter-cursor:after {content: ""}',n+=i+":before {display: none}",n+=i+".typewriter-align-right:after {display: none}",n+=i+".typewriter-align-right:before {display: inline}",r.c&&"transparent"!==r.c&&(n+=i+":before,",n+=i+":after {color:"+r.c+"}"),t.bg&&"transparent"!==(t.bg?.color??"transparent")||void 0!==(t.bg?.image??void 0)){let r;for(let s in t.size.w)r=t.size.w[s],r="auto"===r||"none"===r||"#a"==r,s>0?(r=r?"static":"absolute",n+="@media screen and (max-width: "+SR7.G.breakPoints[s-1]+"px){sr7-layer"+i+".tw-blinking:before,"+i+".sr7-layer.tw-blinking:before,sr7-layer"+i+".tw-blinking:after,"+i+".sr7-layer.tw-blinking:after {position: "+r+"}}"):r&&e.el.classList.add("tw-blinking")}""!==n&&_tpt.injectCssJs(n,void 0,void 0,e.el.id+"_typewriter_styles")}},build:(e,t)=>{const{typewriter:r}=e.addOns;e.el.classList.add("hide-typewriter-cursor"),r.txt=-1==t.content.text.indexOf("{{")?t.content.text:e.el.innerHTML,r.clean=r.txt.replace(/(_|\|)$/,""),r.spans=[],r.textSpans=[],r.incompleteSpan=!1;const n=i(unescape(r.txt));if(r.seq&&(r.lines||r.seq&&r.loop)){r.textSpans.push(...n.spans);const e=(r.lines||r.txt).split(",");r.txt=[n.value],e.forEach((e=>{const t=i(unescape(_tpt.trim(e)));r.spans.push(...t.spans),e&&r.txt.push(t.value)}))}else r.loop=r.seq=!1,r.dNew=r.dLB,r.spans.push(...n.spans),r.txt=n.value.split(/\r?\n|\r/g).map((e=>_tpt.trim(e))).filter(Boolean);if(r.dWord=r.dWord&&r.d,r.dWord){const e=r.d.split(","),t=[];e.forEach((e=>{const[r,i]=unescape(e).split("|").map(Number);isNaN(r)||isNaN(i)||(t[r+t.length-1]=i)})),r.spaces=t}r.len=r.txt.length},play:function(e,t,r){var i=e.addOns.typewriter;SR7.A.typewriter.onFire[e.mid][e.el.id]=!0,clearTimeout(i.timer),i.paused||(i.line=0,i.step=0,i.words=0,i.skip=!1,i.rewind=!1,i.rstart=!1,i.breaker=!1,i.paused=!1,i.rpaused=!1,i.str=i.txt[i.line],i.len=i.str.length,r?(i.timer=setTimeout((()=>{SR7.A.typewriter.onStart(e)}),t),_tpt.event.trigger("dom","sr.layer.typewriterlooped",{layer:e.el,id:e.mid})):(e.el.innerHTML="&nbsp;",e.el.classList.remove("hide-typewriter-cursor"),i.timer=setTimeout((()=>{SR7.A.typewriter.onStart(e)}),i.dStart)),i.running=!0,_tpt.event.trigger("dom","sr.layer.typewriterstarted",{layer:e.el,id:e.mid}),_tpt.event.trigger("dom","sr.layer.typewriternewline",{layer:e.el,id:e.mid,line:i.line+1,content:i.txt[i.line]}),requestAnimationFrame((function(){SR7.F.positionLayer(e.el.id)})))},pause:function(e,t){e.addOns?.typewriter?.active&&(clearTimeout(e.addOns.typewriter.timer),e.addOns.typewriter.paused=!0,t&&delete SR7.A.typewriter.onFire[e.mid][e.el.id])},resume:function(e){if(null==e.addOns||null==e.addOns.typewriter)return;let t=e.addOns.typewriter;t.active&&(t.running?t.paused&&(t.rpaused?SR7.A.typewriter.play(e,t.lastSpeed,!0):(t.paused=!1,t.lastSpeed?t.timer=setTimeout(t.animate,t.lastSpeed):SR7.A.typewriter.animate(e))):SR7.A.typewriter.restart(e))},onStart:function(e){e.el.innerHTML="",r(e),SR7.A.typewriter.animate(e)},animate:function(e){let t,r,i,s,a=e.addOns.typewriter,l=a.str,p=a.txt,d=a.step,o=a.rewind,y=o?a.sDel:a.s;if(d<a.len){if(o){l=l.slice(0,-1),a.str=l;for(var c,w=/╠/g,u=[];c=w.exec(l);)u.push(c);if(u){for(var g=u.length-1;g>=0;g--){var m=u[g];l=n(l,m.index,"╣",a.spans[g])}l=l.replace(/╣/g,"</span>")||"&nbsp"}e.el.innerHTML=l.replace(/µ/g,"<br>")||"&nbsp"}else if(a.breaker?(r="<br>",y=a.skip?a.dLB:a.dNew,a.breaker=!1,a.skip=!1,a.words=0,a.step--):(r=l[d],"µ"===r&&(a.skip=!0,a.breaker=!0,y=a.dLB)),!a.breaker){if(s=e.el.innerHTML,"&nbsp;"===s&&(s=""),"╠"===r||"╣"===r||a.incompleteSpan){var S=s.match(/<span[^>]*>/g);S=S?S.length:0,"╠"===r?(a.incompleteSpan=!0,r=a.spans[S]+"</span>",s+=r):"╣"===r?a.incompleteSpan=!1:s=n(s,s.lastIndexOf("</span>"),"</span>",r+"</span>")}else s+=r;e.el.innerHTML=s,a.dWord&&" "===r&&(i=a.words,s=a.spaces[i],s?(y=s,a.words=i<a.spaces.length-1?i+1:0):a.words+=1)}a.step++,t=!0}else{if(a.rstart)return void(a.paused?(a.rpaused=!0,a.lastSpeed=a.dNew):SR7.A.typewriter.play(e,a.dNew,!0));a.line<p.length&&(a.line++,a.step=0,a.skip=!1,l=p[a.line],a.str=l,""===l&&(a.line++,a.breaker=!0,y=a.dNew),a.line<p.length?(a.seq?(o=!o,o?(a.line--,a.str=p[a.line],y=a.dDel):(a.str=p[a.line],a.len=a.str.length,y=a.dNew),a.rewind=o):(a.str=p[a.line],a.len=a.str.length),t=!0,a.words=0,a.rewind||_tpt.event.trigger("dom","sr.layer.typewriternewline",{layer:e.el,id:e.mid,line:a.line+1,content:a.txt[a.line]})):a.loop&&(a.rewind=!0,a.rstart=!0,a.words=0,a.line--,a.str=p[a.line],t=!0,y=a.dDel))}if(requestAnimationFrame((function(){SR7.F.positionLayer(e.el.id)})),t){if(a.paused)return void(a.lastSpeed=y);y?a.timer=setTimeout((()=>{SR7.A.typewriter.animate(e)}),y):SR7.A.typewriter.animate(e)}else a.running=!1,a.hCur&&e.el.classList.add("hide-typewriter-cursor"),_tpt.event.trigger("dom","sr.layer.typewriterended",{layer:e.el,id:e.mid})},onRedraw:function(e,t){if(null==e.addOns||null==e.addOns.typewriter)return;let r=e.addOns.typewriter;if(t)e.el.innerHTML=r.state;else{var i=window.getComputedStyle(e.el,":after").getPropertyValue("position");r.state=e.el.innerHTML,e.el.innerHTML="absolute"===i?r.orig:r.clean}},restart:function(e){if(null==e.addOns||null==e.addOns.typewriter)return;let t=e.addOns.typewriter;t.active&&(clearTimeout(t.timer),t.rpaused=!1,t.paused=!1,SR7.A.typewriter.play(e))},restore:function(e,t){if(null==e.addOns||null==e.addOns.typewriter)return;let r=e.addOns.typewriter;r.active&&(clearTimeout(r.timer),e.el.innerHTML=r.clean,t&&_R.aC(this.el,"hide-typewriter-cursor"))}};let r=e=>{let{layer:t}=SR7.F.getLayer(e.el.id);e.el.classList["right"===SR7.gVal(t.pos.h,e.mid)?"add":"remove"]("typewriter-align-right")},i=(t,r)=>{t=t.replace(/<(?!br|span|\/span\s*\/?)[^>]+>/g,"").replace(/[_|]$/,"");let i=[...(t=r?t.replace(/\r?\n|\r|<br[^>]*>/g," ").replace(/<\/span>/gi,"╣"):t.replace(/\r?\n|\r/g,"±").replace(/<br[^>]*>/gi,"µ").replace(/<\/span>/gi,"╣").replace(/±µ|µ±/g,"µ").replace(/^±+|±+$/g,"").replace(/^µ+|µ+$/g,"")).matchAll(/<span[^>]*>/g)].map((e=>e[0]));return e.innerHTML=t.replace(/<span[^>]*>/g,"╠"),{value:e.value,spans:i}},n=(e,t,r,i)=>e.substr(0,t)+i+e.substr(t+r.length,e.length);_tpt.R??={},_tpt.R.typewriter=_tpt.extend?_tpt.extend(_tpt.R.typewriter,{status:2,version:"1.0"}):{status:2,version:"1.0"},window.dispatchEvent(new CustomEvent("SR7TypeWriterReady"))}();
(()=>{"use strict";var e,r,a,n={},c={};function __webpack_require__(e){var r=c[e];if(void 0!==r)return r.exports;var a=c[e]={exports:{}};return n[e](a,a.exports,__webpack_require__),a.exports}__webpack_require__.m=n,e=[],__webpack_require__.O=(r,a,n,c)=>{if(!a){var b=1/0;for(o=0;o<e.length;o++){for(var[a,n,c]=e[o],i=!0,t=0;t<a.length;t++)(!1&c||b>=c)&&Object.keys(__webpack_require__.O).every(e=>__webpack_require__.O[e](a[t]))?a.splice(t--,1):(i=!1,c<b&&(b=c));if(i){e.splice(o--,1);var _=n();void 0!==_&&(r=_)}}return r}c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[a,n,c]},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce((r,a)=>(__webpack_require__.f[a](e,r),r),[])),__webpack_require__.u=e=>635===e?"code-highlight.38ec4828db8d33cccbe9.bundle.min.js":519===e?"video-playlist.d48e1a11007fe8c248f8.bundle.min.js":375===e?"paypal-button.5c63e4c8f36fb06aff31.bundle.min.js":786===e?"bd4b7d0b3467c3b749da.bundle.min.js":857===e?"stripe-button.b7e32b5d713d60752c7e.bundle.min.js":581===e?"progress-tracker.7b160888e308c5f64701.bundle.min.js":961===e?"animated-headline.bc08854fb1e1a80434b2.bundle.min.js":692===e?"media-carousel.87c2cf115553a2c4f709.bundle.min.js":897===e?"carousel.e2af910b095554625156.bundle.min.js":416===e?"countdown.05b148ca20af32fc8e9f.bundle.min.js":292===e?"hotspot.737497535441dc0bc037.bundle.min.js":325===e?"form.cfd61a9174be80f835c6.bundle.min.js":543===e?"gallery.cca2358f59857ce6f62f.bundle.min.js":970===e?"lottie.55ad84218daed1323133.bundle.min.js":334===e?"nav-menu.3afa8f5eb1fef7c22561.bundle.min.js":887===e?"popup.61d4fcab8891b2e07802.bundle.min.js":535===e?"load-more.7c4417f8a727b79f546f.bundle.min.js":396===e?"posts.844727d8428792223d2f.bundle.min.js":726===e?"portfolio.3d0e387cc28c07bae511.bundle.min.js":316===e?"share-buttons.b99b5ff11c944a3a8ea9.bundle.min.js":829===e?"slides.8e9b74f1b31471377df8.bundle.min.js":158===e?"social.de5cec83bf689b2f1f01.bundle.min.js":404===e?"table-of-contents.485ffc086d8923139868.bundle.min.js":345===e?"archive-posts.0b71f7023819e3872142.bundle.min.js":798===e?"search-form.9abeafeecde90cf7e0f4.bundle.min.js":6===e?"woocommerce-menu-cart.33fbf47b819947e7a2a7.bundle.min.js":80===e?"woocommerce-purchase-summary.118e54b95a68f0ad8c09.bundle.min.js":354===e?"woocommerce-checkout-page.8391e03a51a57a42528a.bundle.min.js":4===e?"woocommerce-cart.9131ef5e40333f8066dd.bundle.min.js":662===e?"woocommerce-my-account.ab469f426496c628ac6c.bundle.min.js":621===e?"woocommerce-notices.181b8701c45ec5374829.bundle.min.js":787===e?"product-add-to-cart.a4f88a0c19e95b3912b6.bundle.min.js":993===e?"loop.1594a1df76e87a11eda2.bundle.min.js":932===e?"loop-carousel.881847b13e8fe1f8bfc2.bundle.min.js":550===e?"ajax-pagination.505018eb312c83998279.bundle.min.js":727===e?"mega-menu.857df1cf3198ae47b617.bundle.min.js":87===e?"mega-menu-stretch-content.7ed04741ba7d5a80c556.bundle.min.js":912===e?"menu-title-keyboard-handler.b3891112675eb0b0c4d5.bundle.min.js":33===e?"nested-carousel.659b0373371215e60dab.bundle.min.js":225===e?"taxonomy-filter.6526351a1205655def47.bundle.min.js":579===e?"off-canvas.82d118980fb5aa03c82b.bundle.min.js":1===e?"contact-buttons.e1605c5cfaccbff3c14b.bundle.min.js":61===e?"contact-buttons-var-10.11bf4233106e1245bd61.bundle.min.js":249===e?"floating-bars-var-2.5287acd8570f1ce2dde3.bundle.min.js":440===e?"floating-bars-var-3.e9e9c0ea3c6fb0e51c58.bundle.min.js":187===e?"search.f239247b514b4d0e8743.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},a="elementor-pro:",__webpack_require__.l=(e,n,c,b)=>{if(r[e])r[e].push(n);else{var i,t;if(void 0!==c)for(var _=document.getElementsByTagName("script"),o=0;o<_.length;o++){var u=_[o];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==a+c){i=u;break}}i||(t=!0,(i=document.createElement("script")).charset="utf-8",__webpack_require__.nc&&i.setAttribute("nonce",__webpack_require__.nc),i.setAttribute("data-webpack",a+c),i.src=e),r[e]=[n];var onScriptComplete=(a,n)=>{i.onerror=i.onload=null,clearTimeout(d);var c=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),c&&c.forEach(e=>e(n)),a)return a(n)},d=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=onScriptComplete.bind(null,i.onerror),i.onload=onScriptComplete.bind(null,i.onload),t&&document.head.appendChild(i)}},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var r=__webpack_require__.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var a=r.getElementsByTagName("script");if(a.length)for(var n=a.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=a[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={978:0};__webpack_require__.f.j=(r,a)=>{var n=__webpack_require__.o(e,r)?e[r]:void 0;if(0!==n)if(n)a.push(n[2]);else if(978!=r){var c=new Promise((a,c)=>n=e[r]=[a,c]);a.push(n[2]=c);var b=__webpack_require__.p+__webpack_require__.u(r),i=new Error;__webpack_require__.l(b,a=>{if(__webpack_require__.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;i.message="Loading chunk "+r+" failed.\n("+c+": "+b+")",i.name="ChunkLoadError",i.type=c,i.request=b,n[1](i)}},"chunk-"+r,r)}else e[r]=0},__webpack_require__.O.j=r=>0===e[r];var webpackJsonpCallback=(r,a)=>{var n,c,[b,i,t]=a,_=0;if(b.some(r=>0!==e[r])){for(n in i)__webpack_require__.o(i,n)&&(__webpack_require__.m[n]=i[n]);if(t)var o=t(__webpack_require__)}for(r&&r(a);_<b.length;_++)c=b[_],__webpack_require__.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return __webpack_require__.O(o)},r=self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[];r.forEach(webpackJsonpCallback.bind(null,0)),r.push=webpackJsonpCallback.bind(null,r.push.bind(r))})()})();
(()=>{var t={507:(t,e,r)=>{"use strict";r.d(e,{A:()=>A});var n=function(t){return"string"!=typeof t||""===t?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(t)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var i=function(t){return"string"!=typeof t||""===t?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(t)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(t)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var o=function(t,e){return function(r,o,s,c=10){const l=t[e];if(!i(r))return;if(!n(o))return;if("function"!=typeof s)return void console.error("The hook callback must be a function.");if("number"!=typeof c)return void console.error("If specified, the hook priority must be a number.");const a={callback:s,priority:c,namespace:o};if(l[r]){const t=l[r].handlers;let e;for(e=t.length;e>0&&!(c>=t[e-1].priority);e--);e===t.length?t[e]=a:t.splice(e,0,a),l.__current.forEach((t=>{t.name===r&&t.currentIndex>=e&&t.currentIndex++}))}else l[r]={handlers:[a],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,o,s,c)}};var s=function(t,e,r=!1){return function(o,s){const c=t[e];if(!i(o))return;if(!r&&!n(s))return;if(!c[o])return 0;let l=0;if(r)l=c[o].handlers.length,c[o]={runs:c[o].runs,handlers:[]};else{const t=c[o].handlers;for(let e=t.length-1;e>=0;e--)t[e].namespace===s&&(t.splice(e,1),l++,c.__current.forEach((t=>{t.name===o&&t.currentIndex>=e&&t.currentIndex--})))}return"hookRemoved"!==o&&t.doAction("hookRemoved",o,s),l}};var c=function(t,e){return function(r,n){const i=t[e];return void 0!==n?r in i&&i[r].handlers.some((t=>t.namespace===n)):r in i}};var l=function(t,e,r,n){return function(i,...o){const s=t[e];s[i]||(s[i]={handlers:[],runs:0}),s[i].runs++;const c=s[i].handlers;if(!c||!c.length)return r?o[0]:void 0;const l={name:i,currentIndex:0};return(n?async function(){try{s.__current.add(l);let t=r?o[0]:void 0;for(;l.currentIndex<c.length;){const e=c[l.currentIndex];t=await e.callback.apply(null,o),r&&(o[0]=t),l.currentIndex++}return r?t:void 0}finally{s.__current.delete(l)}}:function(){try{s.__current.add(l);let t=r?o[0]:void 0;for(;l.currentIndex<c.length;){t=c[l.currentIndex].callback.apply(null,o),r&&(o[0]=t),l.currentIndex++}return r?t:void 0}finally{s.__current.delete(l)}})()}};var a=function(t,e){return function(){const r=t[e],n=Array.from(r.__current);return n.at(-1)?.name??null}};var d=function(t,e){return function(r){const n=t[e];return void 0===r?n.__current.size>0:Array.from(n.__current).some((t=>t.name===r))}};var u=function(t,e){return function(r){const n=t[e];if(i(r))return n[r]&&n[r].runs?n[r].runs:0}};class h{actions;filters;addAction;addFilter;removeAction;removeFilter;hasAction;hasFilter;removeAllActions;removeAllFilters;doAction;doActionAsync;applyFilters;applyFiltersAsync;currentAction;currentFilter;doingAction;doingFilter;didAction;didFilter;constructor(){this.actions=Object.create(null),this.actions.__current=new Set,this.filters=Object.create(null),this.filters.__current=new Set,this.addAction=o(this,"actions"),this.addFilter=o(this,"filters"),this.removeAction=s(this,"actions"),this.removeFilter=s(this,"filters"),this.hasAction=c(this,"actions"),this.hasFilter=c(this,"filters"),this.removeAllActions=s(this,"actions",!0),this.removeAllFilters=s(this,"filters",!0),this.doAction=l(this,"actions",!1,!1),this.doActionAsync=l(this,"actions",!1,!0),this.applyFilters=l(this,"filters",!0,!1),this.applyFiltersAsync=l(this,"filters",!0,!0),this.currentAction=a(this,"actions"),this.currentFilter=a(this,"filters"),this.doingAction=d(this,"actions"),this.doingFilter=d(this,"filters"),this.didAction=u(this,"actions"),this.didFilter=u(this,"filters")}}var A=function(){return new h}},8770:()=>{}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{actions:()=>x,addAction:()=>s,addFilter:()=>c,applyFilters:()=>m,applyFiltersAsync:()=>v,createHooks:()=>t.A,currentAction:()=>y,currentFilter:()=>F,defaultHooks:()=>o,didAction:()=>b,didFilter:()=>k,doAction:()=>f,doActionAsync:()=>p,doingAction:()=>_,doingFilter:()=>g,filters:()=>w,hasAction:()=>d,hasFilter:()=>u,removeAction:()=>l,removeAllActions:()=>h,removeAllFilters:()=>A,removeFilter:()=>a});var t=r(507),e=r(8770),i={};for(const t in e)["default","actions","addAction","addFilter","applyFilters","applyFiltersAsync","createHooks","currentAction","currentFilter","defaultHooks","didAction","didFilter","doAction","doActionAsync","doingAction","doingFilter","filters","hasAction","hasFilter","removeAction","removeAllActions","removeAllFilters","removeFilter"].indexOf(t)<0&&(i[t]=()=>e[t]);r.d(n,i);const o=(0,t.A)(),{addAction:s,addFilter:c,removeAction:l,removeFilter:a,hasAction:d,hasFilter:u,removeAllActions:h,removeAllFilters:A,doAction:f,doActionAsync:p,applyFilters:m,applyFiltersAsync:v,currentAction:y,currentFilter:F,doingAction:_,doingFilter:g,didAction:b,didFilter:k,actions:x,filters:w}=o})(),(window.wp=window.wp||{}).hooks=n})();
(()=>{"use strict";var t={d:(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};t.r(n),t.d(n,{__:()=>F,_n:()=>L,_nx:()=>D,_x:()=>w,createI18n:()=>h,defaultI18n:()=>b,getLocaleData:()=>g,hasTranslation:()=>O,isRTL:()=>P,resetLocaleData:()=>x,setLocaleData:()=>v,sprintf:()=>l,subscribe:()=>m});var e,r,a,i,o=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function l(t,...n){return function(t,...n){var e=0;return Array.isArray(n[0])&&(n=n[0]),t.replace(o,(function(){var t,r,a,i,o;return t=arguments[3],r=arguments[5],"%"===(i=arguments[9])?"%":("*"===(a=arguments[7])&&(a=n[e],e++),void 0===r?(void 0===t&&(t=e+1),e++,o=n[t-1]):n[0]&&"object"==typeof n[0]&&n[0].hasOwnProperty(r)&&(o=n[0][r]),"f"===i?o=parseFloat(o)||0:"d"===i&&(o=parseInt(o)||0),void 0!==a&&("f"===i?o=o.toFixed(a):"s"===i&&(o=o.substr(0,a))),null!=o?o:"")}))}(t,...n)}e={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},r=["(","?"],a={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var s={"!":function(t){return!t},"*":function(t,n){return t*n},"/":function(t,n){return t/n},"%":function(t,n){return t%n},"+":function(t,n){return t+n},"-":function(t,n){return t-n},"<":function(t,n){return t<n},"<=":function(t,n){return t<=n},">":function(t,n){return t>n},">=":function(t,n){return t>=n},"==":function(t,n){return t===n},"!=":function(t,n){return t!==n},"&&":function(t,n){return t&&n},"||":function(t,n){return t||n},"?:":function(t,n,e){if(t)throw n;return e}};function u(t){var n=function(t){for(var n,o,l,s,u=[],d=[];n=t.match(i);){for(o=n[0],(l=t.substr(0,n.index).trim())&&u.push(l);s=d.pop();){if(a[o]){if(a[o][0]===s){o=a[o][1]||o;break}}else if(r.indexOf(s)>=0||e[s]<e[o]){d.push(s);break}u.push(s)}a[o]||d.push(o),t=t.substr(n.index+o.length)}return(t=t.trim())&&u.push(t),u.concat(d.reverse())}(t);return function(t){return function(t,n){var e,r,a,i,o,l,u=[];for(e=0;e<t.length;e++){if(o=t[e],i=s[o]){for(r=i.length,a=Array(r);r--;)a[r]=u.pop();try{l=i.apply(null,a)}catch(t){return t}}else l=n.hasOwnProperty(o)?n[o]:+o;u.push(l)}return u[0]}(n,t)}}var d={contextDelimiter:"",onMissingKey:null};function c(t,n){var e;for(e in this.data=t,this.pluralForms={},this.options={},d)this.options[e]=void 0!==n&&e in n?n[e]:d[e]}c.prototype.getPluralForm=function(t,n){var e,r,a,i=this.pluralForms[t];return i||("function"!=typeof(a=(e=this.data[t][""])["Plural-Forms"]||e["plural-forms"]||e.plural_forms)&&(r=function(t){var n,e,r;for(n=t.split(";"),e=0;e<n.length;e++)if(0===(r=n[e].trim()).indexOf("plural="))return r.substr(7)}(e["Plural-Forms"]||e["plural-forms"]||e.plural_forms),a=function(t){var n=u(t);return function(t){return+n({n:t})}}(r)),i=this.pluralForms[t]=a),i(n)},c.prototype.dcnpgettext=function(t,n,e,r,a){var i,o,l;return i=void 0===a?0:this.getPluralForm(t,a),o=e,n&&(o=n+this.options.contextDelimiter+e),(l=this.data[t][o])&&l[i]?l[i]:(this.options.onMissingKey&&this.options.onMissingKey(e,t),0===i?e:r)};const p={plural_forms:t=>1===t?0:1},f=/^i18n\.(n?gettext|has_translation)(_|$)/,h=(t,n,e)=>{const r=new c({}),a=new Set,i=()=>{a.forEach((t=>t()))},o=(t,n="default")=>{r.data[n]={...r.data[n],...t},r.data[n][""]={...p,...r.data[n]?.[""]},delete r.pluralForms[n]},l=(t,n)=>{o(t,n),i()},s=(t="default",n,e,a,i)=>(r.data[t]||o(void 0,t),r.dcnpgettext(t,n,e,a,i)),u=t=>t||"default",d=(t,n,r)=>{let a=s(r,n,t);return e?(a=e.applyFilters("i18n.gettext_with_context",a,t,n,r),e.applyFilters("i18n.gettext_with_context_"+u(r),a,t,n,r)):a};if(t&&l(t,n),e){const t=t=>{f.test(t)&&i()};e.addAction("hookAdded","core/i18n",t),e.addAction("hookRemoved","core/i18n",t)}return{getLocaleData:(t="default")=>r.data[t],setLocaleData:l,addLocaleData:(t,n="default")=>{r.data[n]={...r.data[n],...t,"":{...p,...r.data[n]?.[""],...t?.[""]}},delete r.pluralForms[n],i()},resetLocaleData:(t,n)=>{r.data={},r.pluralForms={},l(t,n)},subscribe:t=>(a.add(t),()=>a.delete(t)),__:(t,n)=>{let r=s(n,void 0,t);return e?(r=e.applyFilters("i18n.gettext",r,t,n),e.applyFilters("i18n.gettext_"+u(n),r,t,n)):r},_x:d,_n:(t,n,r,a)=>{let i=s(a,void 0,t,n,r);return e?(i=e.applyFilters("i18n.ngettext",i,t,n,r,a),e.applyFilters("i18n.ngettext_"+u(a),i,t,n,r,a)):i},_nx:(t,n,r,a,i)=>{let o=s(i,a,t,n,r);return e?(o=e.applyFilters("i18n.ngettext_with_context",o,t,n,r,a,i),e.applyFilters("i18n.ngettext_with_context_"+u(i),o,t,n,r,a,i)):o},isRTL:()=>"rtl"===d("ltr","text direction"),hasTranslation:(t,n,a)=>{const i=n?n+""+t:t;let o=!!r.data?.[a??"default"]?.[i];return e&&(o=e.applyFilters("i18n.has_translation",o,t,n,a),o=e.applyFilters("i18n.has_translation_"+u(a),o,t,n,a)),o}}},_=window.wp.hooks,y=h(void 0,void 0,_.defaultHooks);var b=y;const g=y.getLocaleData.bind(y),v=y.setLocaleData.bind(y),x=y.resetLocaleData.bind(y),m=y.subscribe.bind(y),F=y.__.bind(y),w=y._x.bind(y),L=y._n.bind(y),D=y._nx.bind(y),P=y.isRTL.bind(y),O=y.hasTranslation.bind(y);(window.wp=window.wp||{}).i18n=n})();