1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,363067,135605,775880,48367,t=>{"use strict";let e,i,s,a="generated",o="pointerleave",n="pointermove",r="touchend",l="tsParticles - Error";function c(t){return"boolean"==typeof t}function h(t){return"string"==typeof t}function d(t){return"number"==typeof t}function u(t){return"object"==typeof t&&null!==t}function p(t){return Array.isArray(t)}(ej=ir||(ir={})).bottom="bottom",ej.bottomLeft="bottom-left",ej.bottomRight="bottom-right",ej.left="left",ej.none="none",ej.right="right",ej.top="top",ej.topLeft="top-left",ej.topRight="top-right",ej.outside="outside",ej.inside="inside";class f{constructor(t,e,i){if(this._updateFromAngle=(t,e)=>{this.x=Math.cos(t)*e,this.y=Math.sin(t)*e},!d(t)&&t)this.x=t.x,this.y=t.y,this.z=t.z?t.z:0;else if(void 0!==t&&void 0!==e)this.x=t,this.y=e,this.z=i??0;else throw Error(`${l} Vector3d not initialized correctly`)}static get origin(){return f.create(0,0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this._updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(t){this._updateFromAngle(this.angle,t)}static clone(t){return f.create(t.x,t.y,t.z)}static create(t,e,i){return new f(t,e,i)}add(t){return f.create(this.x+t.x,this.y+t.y,this.z+t.z)}addTo(t){this.x+=t.x,this.y+=t.y,this.z+=t.z}copy(){return f.clone(this)}distanceTo(t){return this.sub(t).length}distanceToSq(t){return this.sub(t).getLengthSq()}div(t){return f.create(this.x/t,this.y/t,this.z/t)}divTo(t){this.x/=t,this.y/=t,this.z/=t}getLengthSq(){return this.x**2+this.y**2}mult(t){return f.create(this.x*t,this.y*t,this.z*t)}multTo(t){this.x*=t,this.y*=t,this.z*=t}normalize(){let t=this.length;0!=t&&this.multTo(1/t)}rotate(t){return f.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t),0)}setTo(t){this.x=t.x,this.y=t.y,this.z=t.z?t.z:0}sub(t){return f.create(this.x-t.x,this.y-t.y,this.z-t.z)}subFrom(t){this.x-=t.x,this.y-=t.y,this.z-=t.z}}class v extends f{constructor(t,e){super(t,e,0)}static get origin(){return v.create(0,0)}static clone(t){return v.create(t.x,t.y)}static create(t,e){return new v(t,e)}}let m=Math.random,y=new Map,g=2*Math.PI;function b(t,e){y.get(t)||y.set(t,e)}function w(t){return y.get(t)??(t=>t)}function x(){return _(m(),0,1-Number.EPSILON)}function _(t,e,i){return Math.min(Math.max(t,e),i)}function k(t,e,i,s){return Math.floor((t*i+e*s)/(i+s))}function C(t){let e=P(t),i=M(t);return e===i&&(i=0),x()*(e-i)+i}function z(t){return d(t)?t:C(t)}function M(t){return d(t)?t:t.min}function P(t){return d(t)?t:t.max}function O(t,e){if(t===e||void 0===e&&d(t))return t;let i=M(t),s=P(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(s,e)}:O(i,s)}function S(t,e){let i=t.x-e.x,s=t.y-e.y;return{dx:i,dy:s,distance:Math.sqrt(i**2+s**2)}}function T(t,e){return S(t,e).distance}function R(t){return t*Math.PI/180}function D(t,e,i,s){return v.create(t.x*(i-s)/(i+s)+2*e.x*s/(i+s),t.y)}function E(t){return t?t.endsWith("%")?parseFloat(t)/100:parseFloat(t):1}(eG=il||(il={})).auto="auto",eG.increase="increase",eG.decrease="decrease",eG.random="random",(eQ=ic||(ic={})).increasing="increasing",eQ.decreasing="decreasing",(eN=ih||(ih={})).none="none",eN.max="max",eN.min="min",(eX=id||(id={})).bottom="bottom",eX.left="left",eX.right="right",eX.top="top",(eY=iu||(iu={})).precise="precise",eY.percent="percent",(eZ=ip||(ip={})).max="max",eZ.min="min",eZ.random="random";let I={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function L(t){let e={bounced:!1},{pSide:i,pOtherSide:s,rectSide:a,rectOtherSide:o,velocity:n,factor:r}=t;return s.min<o.min||s.min>o.max||s.max<o.min||s.max>o.max||(i.max>=a.min&&i.max<=(a.max+a.min)*.5&&n>0||i.min<=a.max&&i.min>(a.max+a.min)*.5&&n<0)&&(e.velocity=-(n*r),e.bounced=!0),e}function B(){return"u"<typeof window||!window||void 0===window.document||!window.document}function A(t){if(!B()&&"u">typeof matchMedia)return matchMedia(t)}function F(t,e){return t===e||p(e)&&e.indexOf(t)>-1}async function q(t,e){try{await document.fonts.load(`${e??"400"} 36px '${t??"Verdana"}'`)}catch{}}
1function H(t,e,i=!0){return t[void 0!==e&&i?e%t.length:Math.floor(x()*t.length)]}function U(t,e,i,s,a){var o,n,r,l;let c;return o=W(t,s??0),n=e,r=i,c=!0,(l=a)&&l!==id.bottom||(c=o.top<n.height+r.x),c&&(!l||l===id.left)&&(c=o.right>r.x),c&&(!l||l===id.right)&&(c=o.left<n.width+r.y),c&&(!l||l===id.top)&&(c=o.bottom>r.y),c}function W(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function $(t,...e){for(let i of e){if(null==i)continue;if(!u(i)){t=i;continue}let e=Array.isArray(i);for(let s in e&&(u(t)||!t||!Array.isArray(t))?t=[]:!e&&(u(t)||!t||Array.isArray(t))&&(t={}),i){if("__proto__"===s)continue;let e=i[s],a=t;a[s]=u(e)&&Array.isArray(e)?e.map(t=>$(a[s],t)):$(a[s],e)}}return t}function V(t,e){return!!Z(e,e=>e.enable&&F(t,e.mode))}function j(t,e,i){X(e,e=>{var s,a;let o=e.mode;e.enable&&F(t,o)&&(s=e,a=i,X(s.selectors,t=>{a(t,s)}))})}function G(t,e){if(e&&t)return Z(t,t=>{let i;return p(i=X(t.selectors,t=>e.matches(t)))?i.some(t=>t):i})}function Q(t){return{position:t.getPosition(),radius:t.getRadius(),mass:t.getMass(),velocity:t.velocity,factor:v.create(z(t.options.bounce.horizontal.value),z(t.options.bounce.vertical.value))}}function N(t,e){let{x:i,y:s}=t.velocity.sub(e.velocity),[a,o]=[t.position,e.position],{dx:n,dy:r}=S(o,a);if(i*n+s*r<0)return;let l=-Math.atan2(r,n),c=t.mass,h=e.mass,d=t.velocity.rotate(l),u=e.velocity.rotate(l),p=D(d,u,c,h),f=D(u,d,c,h),v=p.rotate(-l),m=f.rotate(-l);t.velocity.x=v.x*t.factor.x,t.velocity.y=v.y*t.factor.y,e.velocity.x=m.x*e.factor.x,e.velocity.y=m.y*e.factor.y}function X(t,e){return p(t)?t.map((t,i)=>e(t,i)):e(t,0)}function Y(t,e,i){return p(t)?H(t,e,i):t}function Z(t,e){return p(t)?t.find((t,i)=>e(t,i)):e(t,0)?t:void 0}function K(t,e){let i=t.value,s=t.animation,a={delayTime:1e3*z(s.delay),enable:s.enable,value:z(t.value)*e,max:P(i)*e,min:M(i)*e,loops:0,maxLoops:z(s.count),time:0};if(s.enable){switch(a.decay=1-z(s.decay),s.mode){case il.increase:a.status=ic.increasing;break;case il.decrease:a.status=ic.decreasing;break;case il.random:a.status=x()>=.5?ic.increasing:ic.decreasing}let t=s.mode===il.auto;switch(s.startValue){case ip.min:a.value=a.min,t&&(a.status=ic.increasing);break;case ip.max:a.value=a.max,t&&(a.status=ic.decreasing);break;case ip.random:default:a.value=C(a),t&&(a.status=x()>=.5?ic.increasing:ic.decreasing)}}return a.initialValue=a.value,a}function J(t,e){return function(t,e){if(t.mode!==iu.percent){let{mode:e,...i}=t;return i}return"x"in t?{x:t.x/100*e.width,y:t.y/100*e.height}:{width:t.width/100*e.width,height:t.height/100*e.height}}(t,e)}function tt(t,e,i,s,a){if(t.destroyed||!e||!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0))return;let o=(e.velocity??0)*a.factor,n=e.min,r=e.max,l=e.decay??1;if(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=a.value),!((e.delayTime??0)>0)||!(e.time<(e.delayTime??0))){switch(e.status){case ic.increasing:e.value>=r?(i?e.status=ic.decreasing:e.value-=r,e.loops||(e.loops=0),e.loops++):e.value+=o;break;case ic.decreasing:e.value<=n?(i?e.status=ic.increasing:e.value+=r,e.loops||(e.loops=0),e.loops++):e.value-=o}e.velocity&&1!==l&&(e.velocity*=l);var c=e.value;switch(s){case ih.max:c>=r&&t.destroy();break;case ih.min:c<=n&&t.destroy()}t.destroyed||(e.value=_(e.value,n,r))}}(eK=iv||(iv={})).darken="darken",eK.enlighten="enlighten",(eJ=im||(im={}))[eJ.r=1]="r",eJ[eJ.g=2]="g",eJ[eJ.b=3]="b",eJ[eJ.a=4]="a";let te="random",ti=new Map;function ts(t){ti.set(t.key,t)}function ta(t,e,i=!0){if(!t)return;let s=h(t)?{value:t}:t;if(h(s.value))return function t(e,i,s=!0){if(!e)return;let a=h(e)?{value:e}:e;if(h(a.value))return a.value===te?tl():function(t){for(let[,e]of ti)if(t.startsWith(e.stringPrefix))return e.parseString(t);let e=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,(t,e,i,s,a)=>e+e+i+i+s+s+(void 0!==a?a+a:"")),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);return i?{a:void 0!==i[im.a]?parseInt(i[im.a],16)/255:1,b:parseInt(i[im.b],16),g:parseInt(i[im.g],16),r:parseInt(i[im.r],
116)}:void 0}(a.value);if(p(a.value))return t({value:H(a.value,i,s)});for(let[,t]of ti){let e=t.handleColor(a);if(e)return e}}(s.value,e,i);if(p(s.value))return ta({value:H(s.value,e,i)});for(let[,t]of ti){let e=t.handleRangeColor(s);if(e)return e}}function to(t,e,i=!0){let s=ta(t,e,i);return s?tn(s):void 0}function tn(t){let e=t.r/255,i=t.g/255,s=t.b/255,a=Math.max(e,i,s),o=Math.min(e,i,s),n={h:0,l:(a+o)*.5,s:0};return a!==o&&(n.s=n.l<.5?(a-o)/(a+o):(a-o)/(2-a-o),n.h=e===a?(i-s)/(a-o):n.h=i===a?2+(s-e)/(a-o):4+(e-i)/(a-o)),n.l*=100,n.s*=100,n.h*=60,n.h<0&&(n.h+=360),n.h>=360&&(n.h-=360),n}function tr(t){let e=(t.h%360+360)%360,i=Math.max(0,Math.min(100,t.s)),s=Math.max(0,Math.min(100,t.l)),a=e/360,o=i/100,n=s/100;if(0===i){let t=Math.round(255*n);return{r:t,g:t,b:t}}let r=(t,e,i)=>(i<0&&i++,i>1&&i--,6*i<1)?t+(e-t)*6*i:2*i<1?e:3*i<2?t+(e-t)*(.6666666666666666-i)*6:t,l=n<.5?n*(1+o):n+o-n*o,c=2*n-l;return{r:Math.round(Math.min(255,255*r(c,l,a+.3333333333333333))),g:Math.round(Math.min(255,255*r(c,l,a))),b:Math.round(Math.min(255,255*r(c,l,a-.3333333333333333)))}}function tl(t){let e=t??0;return{b:Math.floor(C(O(e,256))),g:Math.floor(C(O(e,256))),r:Math.floor(C(O(e,256)))}}function tc(t,e){return`rgba(${t.r}, ${t.g}, ${t.b}, ${e??1})`}function th(t,e){return`hsla(${t.h}, ${t.s}%, ${t.l}%, ${e??1})`}function td(t,e,i,s){let a=t,o=e;return void 0===a.r&&(a=tr(t)),void 0===o.r&&(o=tr(e)),{b:k(a.b,o.b,i,s),g:k(a.g,o.g,i,s),r:k(a.r,o.r,i,s)}}function tu(t,e,i){if(i===te)return tl();if("mid"!==i)return i;{let i=t.getFillColor()??t.getStrokeColor(),s=e?.getFillColor()??e?.getStrokeColor();if(i&&s&&e)return td(i,s,t.getRadius(),e.getRadius());{let t=i??s;if(t)return tr(t)}}}function tp(t,e,i){let s=h(t)?t:t.value;return s===te?i?ta({value:s}):e?te:"mid":"mid"===s?"mid":ta({value:s})}function tf(t){return void 0!==t?{h:t.h.value,s:t.s.value,l:t.l.value}:void 0}function tv(t,e,i){let s={h:{enable:!1,value:t.h},s:{enable:!1,value:t.s},l:{enable:!1,value:t.l}};return e&&(tm(s.h,e.h,i),tm(s.s,e.s,i),tm(s.l,e.l,i)),s}function tm(t,e,i){t.enable=e.enable,t.enable?(t.velocity=z(e.speed)/100*i,t.decay=1-z(e.decay),t.status=ic.increasing,t.loops=0,t.maxLoops=z(e.count),t.time=0,t.delayTime=1e3*z(e.delay),e.sync||(t.velocity
1*=x(),t.value*=x()),t.initialValue=t.value,t.offset=O(e.offset)):t.velocity=0}function ty(t,e,i,s){if(!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0)||(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=s.value),(t.delayTime??0)>0&&t.time<(t.delayTime??0)))return;let a=t.offset?C(t.offset):0,o=(t.velocity??0)*s.factor+3.6*a,n=t.decay??1,r=P(e),l=M(e);i&&t.status!==ic.increasing?(t.value-=o,t.value<0&&(t.loops||(t.loops=0),t.loops++,t.status=ic.increasing)):(t.value+=o,t.value>r&&(t.loops||(t.loops=0),t.loops++,i?t.status=ic.decreasing:t.value-=r)),t.velocity&&1!==n&&(t.velocity*=n),t.value=_(t.value,l,r)}function tg(t,e){if(!t)return;let{h:i,s,l:a}=t;i&&ty(i,{min:0,max:360},!1,e),s&&ty(s,{min:0,max:100},!0,e),a&&ty(a,{min:0,max:100},!0,e)}function tb(t,e,i){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.closePath()}function tw(t,e){t.clearRect(0,0,e.width,e.height)}function tx(t,e,i=!1){if(!e||!t)return;let s=t.style;if(s)for(let t in e){let a=e[t];a&&s.setProperty(t,a,i?"important":"")}}class t_{constructor(t){this.container=t,this._applyPostDrawUpdaters=t=>{for(let e of this._postDrawUpdaters)e.afterDraw?.(t)},this._applyPreDrawUpdaters=(t,e,i,s,a,o)=>{for(let n of this._preDrawUpdaters){if(n.getColorStyles){let{fill:o,stroke:r}=n.getColorStyles(e,t,i,s);o&&(a.fill=o),r&&(a.stroke=r)}if(n.getTransformValues){let t=n.getTransformValues(e);for(let e in t)!function(t,e,i){let s=e[i];void 0!==s&&(t[i]=(t[i]??1)*s)}(o,t,e)}n.beforeDraw?.(e)}},this._applyResizePlugins=()=>{for(let t of this._resizePlugins)t.resize?.()},this._getPluginParticleColors=t=>{let e,i;for(let s of this._colorPlugins)if(!e&&s.particleFillColor&&(e=to(s.particleFillColor(t))),!i&&s.particleStrokeColor&&(i=to(s.particleStrokeColor(t))),e&&i)break;return[e,i]},this._initCover=async()=>{let t=this.container.actualOptions.backgroundMask.cover,e=t.color;if(e){let i=ta(e);if(i){let e={...i,a:t.opacity};this._coverColorStyle=tc(e,e.a)}}else await new Promise((e,i)=>{if(!t.image)return;let s=document.createElement("img");s.addEventListener("load",()=>{this._coverImage={image:s,opacity:t.opacity},e()}),s.addEventListener("error",t=>{i(t.error)}),s.src=t.image})},this._initStyle=()=>{let t=this.element,e=this.container.actualOptions;if(t)for(let i in this._fullScreen?(this._originalStyle=$({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle(),e.style){if(!i||!e.style)continue;let s=e.style[i];s&&t.style.setProperty(i,s,"important")}},this._initTrail=async()=>{let t=this.container.actualOptions.particles.move.trail,e=t.fill;if(!t.enable)return;let i=1/t.length;if(e.color){let t=ta(e.color);if(!t)return;this._trailFill={color:{...t},opacity:i}}else await new Promise((t,s)=>{if(!e.image)return;let a=document.createElement("img");a.addEventListener("load",()=>{this._trailFill={image:a,opacity:i},t()}),a.addEventListener("error",t=>{s(t.error)}),a.src=e.image})},this._paintBase=t=>{this.draw(e=>{var i;return i=this.size,void(e.fillStyle=t??"rgba(0,0,0,0)",e.fillRect(0,0,i.width,i.height))})},this._paintImage=(t,e)=>{this.draw(i=>{var s;return s=this.size,void(t&&(i.globalAlpha=e,i.drawImage(t,0,0,s.width,s.height),i.globalAlpha=1))})},this._repairStyle=()=>{let t=this.element;t&&(this._safeMutationObserver(t=>
1t.disconnect()),this._initStyle(),this.initBackground(),this._safeMutationObserver(e=>{t&&t instanceof Node&&e.observe(t,{attributes:!0})}))},this._resetOriginalStyle=()=>{let t=this.element,e=this._originalStyle;t&&e&&tx(t,e)},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{let t=this.element;t&&tx(t,{position:"fixed",zIndex:this.container.actualOptions.fullScreen.zIndex.toString(10),top:"0",left:"0",width:"100%",height:"100%"},!0)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let t=this.container.actualOptions,e=t.particles.move.trail,i=this._trailFill;t.backgroundMask.enable?this.paint():e.enable&&e.length>0&&i?i.color?this._paintBase(tc(i.color,i.opacity)):i.image&&this._paintImage(i.image,i.opacity):t.clear&&this.draw(t=>{tw(t,this.size)})}destroy(){if(this.stop(),this._generated){let t=this.element;t?.remove()}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(t){let e=this._context;if(e)return t(e)}drawAsync(t){let e=this._context;if(e)return t(e)}drawParticle(t,e){if(t.spawning||t.destroyed)return;let i=t.getRadius();if(i<=0)return;let s=t.getFillColor(),a=t.getStrokeColor()??s,[o,n]=this._getPluginParticleColors(t);o||(o=s),n||(n=a),(o||n)&&this.draw(s=>{let a=this.container,r=a.actualOptions,l=t.options.zIndex,c=1-t.zIndexFactor,h=c**l.opacityRate,d=t.bubble.opacity??t.opacity?.value??1,u=t.strokeOpacity??d,p=d*h,f={},v={fill:o?th(o,p):void 0};v.stroke=n?th(n,u*h):v.fill,this._applyPreDrawUpdaters(s,t,i,p,v,f),function(t){let{container:e,context:i,particle:s,delta:a,colorStyles:o,backgroundMask:n,composite:r,radius:l,opacity:c,shadow:h,transform:d}=t,u=s.getPosition(),p=s.rotation+(s.pathRotation?s.velocity.angle:0),f={sin:Math.sin(p),cos:Math.cos(p)},v=!!p,m={a:f.cos*(d.a??1),b:v?f.sin*(d.b??1):d.b??0,c:v?-f.sin*(d.c??1):d.c??0,d:f.cos*(d.d??1)};i.setTransform(m.a,m.b,m.c,m.d,u.x,u.y),n&&(i.globalCompositeOperation=r);let y=s.shadowColor;h.enable&&y&&(i.shadowBlur=h.blur,i.shadowColor=tc(y),i.shadowOffsetX=h.offset.x,i.shadowOffsetY=h.offset.y),o.fill&&(i.fillStyle=o.fill);let g=s.strokeWidth??0;i.lineWidth=g,o.stroke&&(i.strokeStyle=o.stroke);let b={container:e,context:i,particle:s,radius:l,opacity:c,delta:a,transformData:m,strokeWidth:g};(function(t){let{container:e,context:i,particle:s,radius:a,opacity:o,delta:n,strokeWidth:r,transformData:l}=t;if(!s.shape)return;let c=e.shapeDrawers.get(s.shape);c&&(i.beginPath(),c.draw({context:i,particle:s,radius:a,opacity:o,delta:n,pixelRatio:e.retina.pixelRatio,transformData:{...l}}),s.shapeClose&&i.closePath(),r>0&&i.stroke(),s.shapeFill&&i.fill())})(b),function(t){let{container:e,context:i,particle:s,radius:a,opacity:o,delta:n,transformData:r}=t;if(!s.shape)return;let l=e.shapeDrawers.get(s.shape);l?.afterDraw&&l.afterDraw({context:i,particle:s,radius:a,opacity:o,delta:n,pixelRatio:e.retina.pixelRatio,transformData:{...r}})}(b),function(t){let{container:e,context:i,particle:s,radius:a,opacity:o,delta:n,transformData:r}=t;if(!s.effect)return;let l=e.effectDrawers.get(s.effect);l&&l.draw({context:i,particle:s,radius:a,opacity:o,delta:n,pixelRatio:e.retina.pixelRatio,transformData:{...r}})}(b),i.globalCompositeOperation="source-over",i.resetTransform()}({container:a,context:s,particle:t,delta:e,colorStyles:v,backgroundMask:r.backgroundMask.enable,composite:r.backgroundMask.composite,radius:i*c**l.sizeRate,opacity:p,shadow:t.options.shadow,transform:f}),this._applyPostDrawUpdaters(t)})}drawParticlePlugin(t,e,i){this.draw(s=>{t.drawParticle&&t.drawParticle(s,e,i)})}drawPlugin(t,e){this.draw(i=>{t.draw&&t.draw(i,e)})}
1async init(){this._safeMutationObserver(t=>t.disconnect()),this._mutationObserver=function(t){if(!B()&&"u">typeof MutationObserver)return new MutationObserver(t)}(t=>{for(let e of t)"attributes"===e.type&&"style"===e.attributeName&&this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(t){I.error(t)}this.initBackground(),this._safeMutationObserver(t=>{this.element&&this.element instanceof Node&&t.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let t=this.container.actualOptions.background,e=this.element;if(!e)return;let i=e.style;if(i){if(t.color){let e=ta(t.color);i.backgroundColor=e?tc(e,t.opacity):""}else i.backgroundColor="";i.backgroundImage=t.image||"",i.backgroundPosition=t.position||"",i.backgroundRepeat=t.repeat||"",i.backgroundSize=t.size||""}}initPlugins(){for(let[,t]of(this._resizePlugins=[],this.container.plugins))t.resize&&this._resizePlugins.push(t),(t.particleFillColor??t.particleStrokeColor)&&this._colorPlugins.push(t)}initUpdaters(){for(let t of(this._preDrawUpdaters=[],this._postDrawUpdaters=[],this.container.particles.updaters))t.afterDraw&&this._postDrawUpdaters.push(t),(t.getColorStyles??t.getTransformValues??t.beforeDraw)&&this._preDrawUpdaters.push(t)}loadCanvas(t){this._generated&&this.element&&this.element.remove(),this._generated=t.dataset&&a in t.dataset?"true"===t.dataset[a]:this._generated,this.element=t,this.element.ariaHidden="true",this._originalStyle=$({},this.element.style),this.size.height=t.offsetHeight,this.size.width=t.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver(t=>{this.element&&this.element instanceof Node&&t.observe(this.element,{attributes:!0})}
1),this.container.retina.init(),this.initBackground()}paint(){let t=this.container.actualOptions;this.draw(e=>{t.backgroundMask.enable&&t.backgroundMask.cover?(tw(e,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()})}resize(){if(!this.element)return!1;let t=this.container,e=t.retina.pixelRatio,i=t.canvas.size,s={width:this.element.offsetWidth*e,height:this.element.offsetHeight*e};if(s.height===i.height&&s.width===i.width&&s.height===this.element.height&&s.width===this.element.width)return!1;let a={...i};return this.element.width=i.width=this.element.offsetWidth*e,this.element.height=i.height=this.element.offsetHeight*e,this.container.started&&t.particles.setResizeFactor({width:i.width/a.width,height:i.height/a.height}),!0}stop(){this._safeMutationObserver(t=>t.disconnect()),this._mutationObserver=void 0,this.draw(t=>tw(t,this.size))}async windowResize(){if(!this.element||!this.resize())return;let t=this.container,e=t.updateActualOptions();t.particles.setDensity(),this._applyResizePlugins(),e&&await t.refresh()}}function tk(t,e,i,s,a){if(s){let s={passive:!0};c(a)?s.capture=a:void 0!==a&&(s=a),t.addEventListener(e,i,s)}else t.removeEventListener(e,i,a)}(e0=iy||(iy={})).canvas="canvas",e0.parent="parent",e0.window="window";class tC{constructor(t){this.container=t,this._doMouseTouchClick=t=>{let e=this.container,i=e.actualOptions;if(this._canPush){let t=e.interactivity.mouse,s=t.position;if(!s)return;t.clickPosition={...s},t.clickTime=new Date().getTime(),X(i.interactivity.events.onClick.mode,t=>this.container.handleClickMode(t))}"touchend"===t.type&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=t=>{let e=this.container,i=e.options,s=i.defaultThemes,a=t.matches?s.dark:s.light,o=i.themes.find(t=>t.name===a);o?.default.auto&&e.loadTheme(a)},this._handleVisibilityChange=()=>{let t=this.container,e=t.actualOptions;this._mouseTouchFinish(),e.pauseOnBlur&&(document?.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.animationStatus?t.play(!0):t.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);let t=async()=>{let t=this.container.canvas;await t?.windowResize()};this._resizeTimeout=setTimeout(()=>void t(),1e3*this.container.actualOptions.interactivity.events.resize.delay)},this._manageInteractivityListeners=(t,e)=>{let i=this._handlers,s=this.container,a=s.actualOptions,o=s.interactivity.element;if(!o)return;let l=s.canvas.element;l&&(l.style.pointerEvents=o===l?"initial":"none"),(a.interactivity.events.onHover.enable||a.interactivity.events.onClick.enable)&&(tk(o,n,i.mouseMove,e),tk(o,"touchstart",i.touchStart,e),tk(o,"touchmove",i.touchMove,e),a.interactivity.events.onClick.enable?(tk(o,r,i.touchEndClick,e),tk(o,"pointerup",i.mouseUp,e),tk(o,"pointerdown",i.mouseDown,e)):tk(o,r,i.touchEnd,e),tk(o,t,i.mouseLeave,e),tk(o,"touchcancel",i.touchCancel,e))},this._manageListeners=t=>{let e=this._handlers,i=this.container,s=i.actualOptions.interactivity.detectsOn,a=i.canvas.element,n=o;s===iy.window?(i.interactivity.element=window,n="pointerout"):s===iy.parent&&a?i.interactivity.element=a.parentElement??a.parentNode:i.interactivity.element=a,this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(n,t),document&&tk(document,"visibilitychange",e.visibilityChange,t,!1)},this._manageMediaMatch=t=>{let e=this._handlers,i=A("(prefers-color-scheme: dark)");i&&(void 0!==i.addEventListener?tk(i,"change",e.themeChange,t):void 0!==i.addListener&&(t?i.addListener(e.oldThemeChange):i.removeListener(e.oldThemeChange)))},this._manageResize=t=>{let e=this._handlers,i=this.container;if(!i.actualOptions.interactivity.events.resize)return;if("u"<typeof ResizeObserver)return void tk(window,"resize",e.resize,t);let s=i.canvas.element;this._resizeObserver&&!t?(s&&this._resizeObserver.unobserve(s),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&s&&(this._resizeObserver=new ResizeObserver(t=>{t.find(t=>t.target===s)&&this._handleWindowResize()}),this._resizeObserver.observe(s))},this._mouseDown=()=>{let{interactivity:t}=this.container;if(!t)return;let{mouse:e}=t;e.clicking=!0,e.downPosition=e.position},this._mouseTouchClick=t=>{let e=this.container,i=e.actualOptions,{mouse:s}=e.interactivity;s.inside=!0;let a=!1,o=s.position;if(o&&i.interactivity.events.onClick.enable){for(let[,t]of e.plugins)if(t.clickPositionValid&&
1(a=t.clickPositionValid(o)))break;a||this._doMouseTouchClick(t),s.clicking=!1}},this._mouseTouchFinish=()=>{let t=this.container.interactivity;if(!t)return;let e=t.mouse;delete e.position,delete e.clickPosition,delete e.downPosition,t.status=o,e.inside=!1,e.clicking=!1},this._mouseTouchMove=t=>{let e,i=this.container,s=i.actualOptions,a=i.interactivity,o=i.canvas.element;if(!a?.element)return;if(a.mouse.inside=!0,t.type.startsWith("pointer"))if(this._canPush=!0,a.element===window){if(o){let i=o.getBoundingClientRect();e={x:t.clientX-i.left,y:t.clientY-i.top}}}else if(s.interactivity.detectsOn===iy.parent){let i=t.target,s=t.currentTarget;if(i&&s&&o){let a=i.getBoundingClientRect(),n=s.getBoundingClientRect(),r=o.getBoundingClientRect();e={x:t.offsetX+2*a.left-(n.left+r.left),y:t.offsetY+2*a.top-(n.top+r.top)}}else e={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY}}else t.target===o&&(e={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY});else if(this._canPush="touchmove"!==t.type,o){let i=t.touches[t.touches.length-1],s=o.getBoundingClientRect();e={x:i.clientX-(s.left??0),y:i.clientY-(s.top??0)}}let r=i.retina.pixelRatio;e&&(e.x*=r,e.y*=r),a.mouse.position=e,a.status=n},this._touchEnd=t=>{for(let e of Array.from(t.changedTouches))this._touches.delete(e.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{for(let e of Array.from(t.changedTouches))this._touches.delete(e.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{for(let e of Array.from(t.changedTouches))this._touches.set(e.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}(e1=ig||(ig={})).configAdded="configAdded",e1.containerInit="containerInit",e1.particlesSetup="particlesSetup",e1.containerStarted="containerStarted",e1.containerStopped="containerStopped",e1.containerDestroyed="containerDestroyed",e1.containerPaused="containerPaused",e1.containerPlay="containerPlay",e1.containerBuilt="containerBuilt",e1.particleAdded="particleAdded",e1.particleDestroyed="particleDestroyed",e1.particleRemoved="particleRemoved";class tz{constructor(){this.value=""}static create(t,e){let i=new tz;return i.load(t),void 0!==e&&(h(e)||p(e)?i.load({value:e}):i.load(e)),i}load(t){t?.value!==void 0&&(this.value=t.value)}}class tM{constructor(){this.color=new tz,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(t){t&&(void 0!==t.color&&(this.color=tz.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.position&&(this.position=t.position),void 0!==t.repeat&&(this.repeat=t.repeat),void 0!==t.size&&(this.size=t.size),void 0!==t.opacity&&(this.opacity=t.opacity))}}class tP{constructor(){this.opacity=1}load(t){t&&(void 0!==t.color&&(this.color=tz.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.opacity&&(this.opacity=t.opacity))}}class tO{constructor(){this.composite="destination-out",this.cover=new tP,this.enable=!1}load(t){if(t){if(void 0!==t.composite&&(this.composite=t.composite),void 0!==t.cover){let e=t.cover,i=h(t.cover)?{color:t.cover}:t.cover;this.cover.load(void 0!==e.color||void 0!==e.image?e:{color:i})}void 0!==t.enable&&(this.enable=t.enable)}}}class tS{constructor(){this.enable=!0,this.zIndex=0}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.zIndex&&(this.zIndex=t.zIndex))}}class tT{constructor(){this.enable=!1,this.mode=[]}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode))}}(e2=ib||(ib={})).circle="circle",e2.rectangle="rectangle";class tR{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=ib.circle}load(t){t&&(void 0!==t.selectors&&(this.selectors=t.selectors),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.type&&(this.t
1ype=t.type))}}class tD{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.force&&(this.force=t.force),void 0!==t.smooth&&(this.smooth=t.smooth))}}class tE{constructor(){this.enable=!1,this.mode=[],this.parallax=new tD}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),this.parallax.load(t.parallax))}}class tI{constructor(){this.delay=.5,this.enable=!0}load(t){void 0!==t&&(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.enable&&(this.enable=t.enable))}}class tL{constructor(){this.onClick=new tT,this.onDiv=new tR,this.onHover=new tE,this.resize=new tI}load(t){if(!t)return;this.onClick.load(t.onClick);let e=t.onDiv;void 0!==e&&(this.onDiv=X(e,t=>{let e=new tR;return e.load(t),e})),this.onHover.load(t.onHover),this.resize.load(t.resize)}}class tB{constructor(t,e){this._engine=t,this._container=e}load(t){if(!t||!this._container)return;let e=this._engine.interactors.get(this._container);if(e)for(let i of e)i.loadModeOptions&&i.loadModeOptions(this,t)}}class tA{constructor(t,e){this.detectsOn=iy.window,this.events=new tL,this.modes=new tB(t,e)}load(t){if(!t)return;let e=t.detectsOn;void 0!==e&&(this.detectsOn=e),this.events.load(t.events),this.modes.load(t.modes)}}class tF{load(t){t&&(t.position&&(this.position={x:t.position.x??50,y:t.position.y??50,mode:t.position.mode??iu.percent}),t.options&&(this.options=$({},t.options)))}}(e5=iw||(iw={})).screen="screen",e5.canvas="canvas";class tq{constructor(){this.maxWidth=1/0,this.options={},this.mode=iw.canvas}load(t){t&&(void 0!==t.maxWidth&&(this.maxWidth=t.maxWidth),void 0!==t.mode&&(t.mode===iw.screen?this.mode=iw.screen:this.mode=iw.canvas),void 0!==t.options&&(this.options=$({},t.options)))}}(e3=ix||(ix={})).any="any",e3.dark="dark",e3.light="light";class tH{constructor(){this.auto=!1,this.mode=ix.any,this.value=!1}load(t){t&&(void 0!==t.auto&&(this.auto=t.auto),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}class tU{constructor(){this.name="",this.default=new tH}load(t){t&&(void 0!==t.name&&(this.name=t.name),this.default.load(t.default),void 0!==t.options&&(this.options=$({},t.options)))}}class tW{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(t){t&&(void 0!==t.count&&(this.count=O(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=O(t.speed)),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.delay&&(this.delay=O(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class t$ extends tW{constructor(){super(),this.mode=il.auto,this.startValue=ip.random}load(t){super.load(t),t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.startValue&&(this.startValue=t.startValue))}}class tV extends tW{constructor(){super(),this.offset=0,this.sync=!0}load(t){super.load(t),t&&void 0!==t.offset&&(this.offset=O(t.offset))}}class tj{constructor(){this.h=new tV,this.s=new tV,this.l=new tV}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class tG extends tz{constructor(){super(),this.animation=new tj}static create(t,e){let i=new tG;return i.load(t),void 0!==e&&(h(e)||p(e)?i.load({value:e}):i.load(e)),i}load(t){if(super.load(t),!t)return;let e=t.animation;void 0!==e&&(void 0!==e.enable?this.animation.h.load(e):this.animation.load(t.animation))}}(e6=i_||(i_={})).absorb="absorb",e6.bounce="bounce",e6.destroy="destroy";class tQ{constructor(){this.speed=2}load(t){t&&void 0!==t.speed&&(this.speed=t.speed)}}class tN{constructor(){this.enable=!0,this.retries=0}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.retries&&(this.retries=t.retries))}}class tX{constructor(){this.value=0}load(t){t&&void 0!==t.value&&(this.value=O(t.value))}}class tY extends tX{constructor(){super(),this.animation=new tW}load(t){if(super.load(t),!t)return;let e=t.animation;void 0!==e&&this.animation.load(e)}}class tZ extends tY{constructor(){super(),this.animation=new t$}load(t){super.load(t)}}class tK extends tX{constructor(){super(),this.value=1}}class tJ{constructor(){this.horizontal=new tK,this.vertical=new tK}load(t){t&&(this.horizontal.load(t.horizontal),this.vertical.load(t.vertical))}}class t0{constructor(){this.absorb=new tQ,this.bounce=new tJ,this.enable=!1,this.maxSpeed=50,this.mode=i_.bounce,this.overlap=new tN}load(t){t&&(this.absorb.load(t.absorb),this.bounce.load(t.bounce),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.maxSpeed&&(this.maxSpeed=O(t.maxSpeed)),void 0!==t.mode&&(this.mode=t.mode),this.overlap.load(t.overlap))}}class t1{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(t){if(!t)return;let e=t.options;if(void 0!==e)for(let t in e){let i=e[t];i&&(this.options[t]=$(this.options[t]??{},i))}void 0!==t.close&&(this.close=t.close),void 0!==t.fill&&(this.fill=t.fill),void 0!==t.type&&(this.t
1ype=t.type)}}class t2{constructor(){this.offset=0,this.value=90}load(t){t&&(void 0!==t.offset&&(this.offset=O(t.offset)),void 0!==t.value&&(this.value=O(t.value)))}}class t5{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(t){if(t&&(void 0!==t.distance&&(this.distance=O(t.distance)),void 0!==t.enable&&(this.enable=t.enable),t.rotate)){let e=t.rotate.x;void 0!==e&&(this.rotate.x=e);let i=t.rotate.y;void 0!==i&&(this.rotate.y=i)}}}class t3{constructor(){this.x=50,this.y=50,this.mode=iu.percent,this.radius=0}load(t){t&&(void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.radius&&(this.radius=t.radius))}}class t6{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(t){t&&(void 0!==t.acceleration&&(this.acceleration=O(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.inverse&&(this.inverse=t.inverse),void 0!==t.maxSpeed&&(this.maxSpeed=O(t.maxSpeed)))}}class t4{constructor(){this.clamp=!0,this.delay=new tX,this.enable=!1,this.options={}}load(t){t&&(void 0!==t.clamp&&(this.clamp=t.clamp),this.delay.load(t.delay),void 0!==t.enable&&(this.enable=t.enable),this.generator=t.generator,t.options&&(this.options=$(this.options,t.options)))}}class t8{load(t){t&&(void 0!==t.color&&(this.color=tz.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image))}}class t7{constructor(){this.enable=!1,this.length=10,this.fill=new t8}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.fill&&this.fill.load(t.fill),void 0!==t.length&&(this.length=t.length))}}(e4=ik||(ik={})).bounce="bounce",e4.none="none",e4.out="out",e4.destroy="destroy",e4.split="split";class t9{constructor(){this.default=ik.out}load(t){t&&(void 0!==t.default&&(this.default=t.default),this.bottom=t.bottom??t.default,this.left=t.left??t.default,this.right=t.right??t.default,this.top=t.top??t.default)}}class et{constructor(){this.acceleration=0,this.enable=!1}load(t){t&&(void 0!==t.acceleration&&(this.acceleration=O(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),t.position&&(this.position=$({},t.position)))}}class ee{constructor(){this.angle=new t2,this.attract=new t5,this.center=new t3,this.decay=0,this.distance={},this.direction=ir.none,this.drift=0,this.enable=!1,this.gravity=new t6,this.path=new t4,this.outModes=new t9,this.random=!1,this.size=!1,this.speed=2,this.spin=new et,this.straight=!1,this.trail=new t7,this.vibrate=!1,this.warp=!1}load(t){if(!t)return;this.angle.load(d(t.angle)?{value:t.angle}:t.angle),this.attract.load(t.attract),this.center.load(t.center),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.distance&&(this.distance=d(t.distance)?{horizontal:t.distance,vertical:t.distance}:{...t.distance}),void 0!==t.drift&&(this.drift=O(t.drift)),void 0!==t.enable&&(this.enable=t.enable),this.gravity.load(t.gravity);let e=t.outModes;void 0!==e&&(u(e)?this.outModes.load(e):this.outModes.load({default:e})),this.path.load(t.path),void 0!==t.random&&(this.random=t.random),void 0!==t.size&&(this.size=t.size),void 0!==t.speed&&(this.speed=O(t.speed)),this.spin.load(t.spin),void 0!==t.straight&&(this.straight=t.straight),this.trail.load(t.trail),void 0!==t.vibrate&&(this.vibrate=t.vibrate),void 0!==t.warp&&(this.warp=t.warp)}}class ei extends t${constructor(){super(),this.destroy=ih.none,this.speed=2}load(t){super.load(t),t&&void 0!==t.destroy&&(this.destroy=t.destroy)}}class es extends tZ{constructor(){super(),this.animation=new ei,this.value=1}load(t){if(!t)return;super.load(t);let e=t.animation;void 0!==e&&this.animation.load(e)}}class ea{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(t){if(!t)return;void 0!==t.enable&&(this.enable=t.enable);let e=t.width;void 0!==e&&(this.width=e);let i=t.height;void 0!==i&&(this.height=i)}}(e8=iC||(iC={})).delete="delete",e8.wait="wait";class eo{constructor(){this.mode=iC.delete,this.value=0}load(t){t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}class en{constructor(){this.density=new ea,this.limit=new eo,this.value=0}load(t){t&&(this.density.load(t.density),this.limit.load(t.limit),void 0!==t.value&&(this.value=t.value))}}class er{constructor(){this.blur=0,this.color=new tz,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=tz.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(void 0!==t.offset.x&&(this.offset.x=t.offset.x),void 0!==t.offset.y&&(this.offset.y=t.offset.y)))}}
1class el{constructor(){this.close=!0,this.fill=!0,this.options={},this.type="circle"}load(t){if(!t)return;let e=t.options;if(void 0!==e)for(let t in e){let i=e[t];i&&(this.options[t]=$(this.options[t]??{},i))}void 0!==t.close&&(this.close=t.close),void 0!==t.fill&&(this.fill=t.fill),void 0!==t.type&&(this.type=t.type)}}class ec extends t${constructor(){super(),this.destroy=ih.none,this.speed=5}load(t){super.load(t),t&&void 0!==t.destroy&&(this.destroy=t.destroy)}}class eh extends tZ{constructor(){super(),this.animation=new ec,this.value=3}load(t){if(super.load(t),!t)return;let e=t.animation;void 0!==e&&this.animation.load(e)}}class ed{constructor(){this.width=0}load(t){t&&(void 0!==t.color&&(this.color=tG.create(this.color,t.color)),void 0!==t.width&&(this.width=O(t.width)),void 0!==t.opacity&&(this.opacity=O(t.opacity)))}}class eu extends tX{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(t){super.load(t),t&&(void 0!==t.opacityRate&&(this.opacityRate=t.opacityRate),void 0!==t.sizeRate&&(this.sizeRate=t.sizeRate),void 0!==t.velocityRate&&(this.velocityRate=t.velocityRate))}}class ep{constructor(t,e){this._engine=t,this._container=e,this.bounce=new tJ,this.collisions=new t0,this.color=new tG,this.color.value="#fff",this.effect=new t1,this.groups={},this.move=new ee,this.number=new en,this.opacity=new es,this.reduceDuplicates=!1,this.shadow=new er,this.shape=new el,this.size=new eh,this.stroke=new ed,this.zIndex=new eu}load(t){if(!t)return;if(void 0!==t.groups)for(let e of Object.keys(t.groups)){if(!Object.hasOwn(t.groups,e))continue;let i=t.groups[e];void 0!==i&&(this.groups[e]=$(this.groups[e]??{},i))}void 0!==t.reduceDuplicates&&(this.reduceDuplicates=t.reduceDuplicates),this.bounce.load(t.bounce),this.color.load(tG.create(this.color,t.color)),this.effect.load(t.effect),this.move.load(t.move),this.number.load(t.number),this.opacity.load(t.opacity),this.shape.load(t.shape),this.size.load(t.size),this.shadow.load(t.shadow),this.zIndex.load(t.zIndex),this.collisions.load(t.collisions),void 0!==t.interactivity&&(this.interactivity=$({},t.interactivity));let e=t.stroke;if(e&&(this.stroke=X(e,t=>{let e=new ed;return e.load(t),e})),this._container){let e=this._engine.updaters.get(this._container);if(e)for(let i of e)i.loadOptions&&i.loadOptions(this,t);let i=this._engine.interactors.get(this._container);if(i)for(let e of i)e.loadParticlesOptions&&e.loadParticlesOptions(this,t)}}}function ef(t,...e){for(let i of e)t.load(i)}function ev(t,e,...i){let s=new ep(t,e);return ef(s,...i),s}class em{constructor(t,e){this._findDefaultTheme=t=>this.themes.find(e=>e.default.value&&e.default.mode===t)??this.themes.find(t=>t.default.value&&t.default.mode===ix.any),this._importPreset=t=>{this.load(this._engine.getPreset(t))},this._engine=t,this._container=e,this.autoPlay=!0,this.background=new tM,this.backgroundMask=new tO,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new tS,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new tA(t,e),this.manualParticles=[],this.particles=ev(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(t){if(!t)return;void 0!==t.preset&&X(t.preset,t=>this._importPreset(t)),void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.clear&&(this.clear=t.clear),void 0!==t.key&&(this.key=t.key),void 0!==t.name&&(this.name=t.name),void 0!==t.delay&&(this.delay=O(t.delay));let e=t.detectRetina;void 0!==e&&(this.detectRetina=e),void 0!==t.duration&&(this.duration=O(t.duration));let i=t.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==t.pauseOnBlur&&(this.pauseOnBlur=t.pauseOnBlur),void 0!==t.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=t.pauseOnOutsideViewport),void 0!==t.zLayers&&(this.zLayers=t.zLayers),this.background.load(t.background);let s=t.fullScreen;c(s)?this.fullScreen.enable=s:this.fullScreen.load(s),this.backgroundMask.load(t.backgroundMask),this.interactivity.load(t.interactivity),t.manualParticles&&(this.manualParticles=t.manualParticles.map(t=>{let e=new tF;return e.load(t),e})),this.particles.load(t.particles),this.style=$(this.style,t.style),this._engine.loadOptions(this,t),void 0!==t.smooth&&(this.smooth=t.smooth);let a=this._engine.interactors.get(this._container);if(a)for(let e of a)e.loadOptions&&e.loadOptions(this,t);if(void 0!==t.responsive)for(let e of t.responsive){let t=new tq;t.load(e),this.responsive.push(t)}if(this.responsive.sort((t,e)=>t.maxWidth-e.maxWidth),void 0!==t.themes)for(let e of t.themes){let t=this.themes.find(t=>t.name===e.name);if(t)t.load(e);else{let t=new tU;t.load(e),this.themes.push(t)}}this.defaultThemes.dark=this._findDefaultTheme(ix.dark)?.name,this.defaultThemes.light=this._findDefaultTheme(ix.light)?.name}setResponsive(t,e,i){this.load(i);let s=this.responsive.find(i=>i.mode===iw.screen&&screen?i.maxWidth>
1screen.availWidth:i.maxWidth*e>t);return this.load(s?.options),s?.maxWidth}setTheme(t){if(t){let e=this.themes.find(e=>e.name===t);e&&this.load(e.options)}else{let t=A("(prefers-color-scheme: dark)"),e=t?.matches,i=this._findDefaultTheme(e?ix.dark:ix.light);i&&this.load(i.options)}}}(e7=iz||(iz={})).external="external",e7.particles="particles";class ey{constructor(t,e){this.container=e,this._engine=t,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(t){for(let e of this._externalInteractors)e.isEnabled()&&e.interact(t)}handleClickMode(t){for(let e of this._externalInteractors)e.handleClickMode?.(t)}async init(){for(let t of(this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[],this._interactors)){switch(t.type){case iz.external:this._externalInteractors.push(t);break;case iz.particles:this._particleInteractors.push(t)}t.init()}}particlesInteract(t,e){for(let i of this._externalInteractors)i.clear(t,e);for(let i of this._particleInteractors)i.isEnabled(t)&&i.interact(t,e)}reset(t){for(let e of this._externalInteractors)e.isEnabled()&&e.reset(t);for(let e of this._particleInteractors)e.isEnabled(t)&&e.reset(t)}}(e9=iM||(iM={})).normal="normal",e9.inside="inside",e9.outside="outside";let eg=0,eb="random";function ew(t){if(!F(t.outMode,t.checkModes))return;let e=2*t.radius;t.coord>t.maxCoord-e?t.setCb(-t.radius):t.coord<e&&t.setCb(t.radius)}class ex{constructor(t,e){this.container=e,this._calcPosition=(t,e,i,s=eg)=>{var a;for(let[,s]of t.plugins){let t=void 0!==s.particlePosition?s.particlePosition(e,this):void 0;if(t)return f.create(t.x,t.y,i)}let o=(a={size:t.canvas.size,position:e},{x:a.position?.x??x()*a.size.width,y:a.position?.y??x()*a.size.height}),n=f.create(o.x,o.y,i),r=this.getRadius(),l=this.options.move.outModes,c=e=>{ew({outMode:e,checkModes:[ik.bounce],coord:n.x,maxCoord:t.canvas.size.width,setCb:t=>n.x+=t,radius:r})},h=e=>{ew({outMode:e,checkModes:[ik.bounce],coord:n.y,maxCoord:t.canvas.size.height,setCb:t=>n.y+=t,radius:r})};return(c(l.left??l.default),c(l.right??l.default),h(l.top??l.default),h(l.bottom??l.default),this._checkOverlap(n,s))?this._calcPosition(t,void 0,i,s+1):n},this._calculateVelocity=()=>{var t;let e,i=(t=this.direction,(e=v.origin).length=1,e.angle=t,e).copy(),s=this.options.move;if(s.direction===ir.inside||s.direction===ir.outside)return i;let a=R(z(s.angle.value)),o=R(z(s.angle.offset)),n={left:o-.5*a,right:o+.5*a};return s.straight||(i.angle+=C(O(n.left,n.right))),s.random&&"number"==typeof s.speed&&(i.length*=x()),i},this._checkOverlap=(t,e=eg)=>{let i=this.options.collisions,s=this.getRadius();if(!i.enable)return!1;let a=i.overlap;if(a.enable)return!1;let o=a.retries;if(o>=0&&e>o)throw Error(`${l} particle is overlapping and can't be placed`);return!!this.container.particles.find(e=>T(t,e.position)<s+e.getRadius())},this._getRollColor=t=>{if(!t||!this.roll||!this.backColor&&!this.roll.alter)return t;let e=this.roll.horizontal&&this.roll.vertical?2:1,i=this.roll.horizontal?.5*Math.PI:0;if(!(Math.floor(((this.roll.angle??0)+i)/(Math.PI/e))%2))return t;if(this.backColor)return this.backColor;if(this.roll.alter){var s,a;return s=this.roll.alter.type,a=this.roll.alter.value,{h:t.h,s:t.s,l:t.l+(s===iv.darken?-1:1)*a}}return t},this._initPosition=t=>{let e=this.container,i=z(this.options.zIndex.value);this.position=this._calcPosition(e,t,_(i,0,e.zLayers)),this.initialPosition=this.position.copy();let s=e.canvas.size;switch(this.moveCenter={...J(this.options.move.center,s),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??iu.percent},this.direction=function(t,e,i){if(d(t))return R(t);switch(t){case ir.top:return-(.5*Math.PI);case ir.topRight:return-(.25*Math.PI);case ir.right:return 0;case ir.bottomRight:return .25*Math.PI;case ir.bottom:return .5*Math.PI;case ir.bottomLeft:return .75*Math.PI;case ir.left:return Math.PI;case ir.topLeft:return-(.75*Math.PI);case ir.inside:return Math.atan2(i.y-e.y,i.x-e.x);case ir.outside:return Math.atan2(e.y-i.y,e.x-i.x);default:return x()*g}}(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case ir.inside:this.outType=iM.inside;break;case ir.outside:this.outType=iM.outside}this.offset=v.origin},this._engine=t}destroy(t){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let e=this.container,i=this.pathGenerator,s=e.shapeDrawers.get(this.shape);for(let[,i]of(s?.particleDestroy?.(this),e.plugins))i.particleDestroyed?.(this,t);for(let i of e.particles.updaters)i.particleDestroyed?.(this,t);i?.reset(this),this._engine.dispatchEvent(ig.particleDestroyed,{container:this.container,data:{particle:this}})}draw(t){let e=this.container,i=e.canvas;for(let[,s]of e.plugins)i.drawParticlePlugin(s,this,t);
1i.drawParticle(this,t)}getFillColor(){return this._getRollColor(this.bubble.color??tf(this.color))}getMass(){return this.getRadius()**2*Math.PI*.5}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??tf(this.strokeColor))}init(t,e,i,s){let a=this.container,o=this._engine;this.id=t,this.group=s,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType=iM.normal,this.ignoresResizeRatio=!0;let n=a.retina.pixelRatio,r=a.actualOptions,l=ev(this._engine,a,r.particles),{reduceDuplicates:c}=l,h=l.effect.type,d=l.shape.type;this.effect=Y(h,this.id,c),this.shape=Y(d,this.id,c);let u=l.effect,p=l.shape;if(i){if(i.effect?.type){let t=Y(i.effect.type,this.id,c);t&&(this.effect=t,u.load(i.effect))}if(i.shape?.type){let t=Y(i.shape.type,this.id,c);t&&(this.shape=t,p.load(i.shape))}}if(this.effect===eb){let t=[...this.container.effectDrawers.keys()];this.effect=t[Math.floor(Math.random()*t.length)]}if(this.shape===eb){let t=[...this.container.shapeDrawers.keys()];this.shape=t[Math.floor(Math.random()*t.length)]}this.effectData=function(t,e,i,s){let a=e.options[t];if(a)return $({close:e.close,fill:e.fill},Y(a,i,s))}(this.effect,u,this.id,c),this.shapeData=function(t,e,i,s){let a=e.options[t];if(a)return $({close:e.close,fill:e.fill},Y(a,i,s))}(this.shape,p,this.id,c),l.load(i);let f=this.effectData;f&&l.load(f.particles);let v=this.shapeData;v&&l.load(v.particles);let m=new tA(o,a);m.load(a.actualOptions.interactivity),m.load(l.interactivity),this.interactivity=m,this.effectFill=f?.fill??l.effect.fill,this.effectClose=f?.close??l.effect.close,this.shapeFill=v?.fill??l.shape.fill,this.shapeClose=v?.close??l.shape.close,this.options=l;let y=this.options.move.path;this.pathDelay=1e3*z(y.delay.value),y.generator&&(this.pathGenerator=this._engine.getPathGenerator(y.generator),this.pathGenerator&&a.addPath(y.generator,this.pathGenerator)&&this.pathGenerator.init(a)),a.retina.initParticle(this),this.size=K(this.options.size,n),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(e),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-z(this.options.move.decay);let g=a.particles;g.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/a.zLayers,this.sides=24;let b=a.effectDrawers.get(this.effect);!b&&(b=this._engine.getEffectDrawer(this.effect))&&a.effectDrawers.set(this.effect,b),b?.loadEffect&&b.loadEffect(this);let w=a.shapeDrawers.get(this.shape);!w&&(w=this._engine.getShapeDrawer(this.shape))&&a.shapeDrawers.set(this.shape,w),w?.loadShape&&w.loadShape(this);let x=w?.getSidesCount;for(let t of(x&&(this.sides=x(this)),this.spawning=!1,this.shadowColor=ta(this.options.shadow.color),g.updaters))t.init(this);for(let t of g.movers)t.init?.(this);for(let[,t]of(b?.particleInit?.(a,this),w?.particleInit?.(a,this),a.plugins))t.particleCreated?.(this)}isInsideCanvas(){let t=this.getRadius(),e=this.container.canvas.size,i=this.position;return i.x>=-t&&i.y>=-t&&i.y<=e.height+t&&i.x<=e.width+t}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let t of this.container.particles.updaters)t.reset?.(this)}}class e_{constructor(t,e){this.position=t,this.particle=e}}(it=iP||(iP={})).circle="circle",it.rectangle="rectangle";class ek{constructor(t,e,i){this.position={x:t,y:e},this.type=i}}class eC extends ek{constructor(t,e,i){super(t,e,iP.circle),this.radius=i}contains(t){return T(t,this.position)<=this.radius}intersects(t){let e=this.position,i=t.position,s={x:Math.abs(i.x-e.x),y:Math.abs(i.y-e.y)},a=this.radius;if(t instanceof eC||t.type===iP.circle)return a+t.radius>Math.sqrt(s.x**2+s.y**2);if(t instanceof ez||t.type===iP.rectangle){let{width:e,height:i}=t.size;return Math.pow(s.x-e,2)+Math.pow(s.y-i,2)<=a**2||s.x<=a+e&&s.y<=a+i||s.x<=e||s.y<=i}return!1}}
1class ez extends ek{constructor(t,e,i,s){super(t,e,iP.rectangle),this.size={height:s,width:i}}contains(t){let e=this.size.width,i=this.size.height,s=this.position;return t.x>=s.x&&t.x<=s.x+e&&t.y>=s.y&&t.y<=s.y+i}intersects(t){if(t instanceof eC)return t.intersects(this);let e=this.size.width,i=this.size.height,s=this.position,a=t.position,o=t instanceof ez?t.size:{width:0,height:0},n=o.width,r=o.height;return a.x<s.x+e&&a.x+n>s.x&&a.y<s.y+i&&a.y+r>s.y}}class eM{constructor(t,e){this.rectangle=t,this.capacity=e,this._subdivide=()=>{let{x:t,y:e}=this.rectangle.position,{width:i,height:s}=this.rectangle.size,{capacity:a}=this;for(let o=0;o<4;o++){let n=o%2;this._subs.push(new eM(new ez(t+.5*i*n,e+.5*s*(Math.round(.5*o)-n),.5*i,.5*s),a))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(t){return!!this.rectangle.contains(t.position)&&(this._points.length<this.capacity?(this._points.push(t),!0):(this._divided||this._subdivide(),this._subs.some(e=>e.insert(t))))}query(t,e){let i=[];if(!t.intersects(this.rectangle))return[];for(let s of this._points)!t.contains(s.position)&&T(t.position,s.position)>s.particle.getRadius()&&(!e||e(s.particle))||i.push(s.particle);if(this._divided)for(let s of this._subs)i.push(...s.query(t,e));return i}queryCircle(t,e,i){return this.query(new eC(t.x,t.y,e),i)}queryRectangle(t,e,i){return this.query(new ez(t.x,t.y,e.width,e.height),i)}}let eP=t=>{let{height:e,width:i}=t;return new ez(-.25*i,-.25*e,1.5*i,1.5*e)};class eO{constructor(t,e){this._addToPool=(...t)=>{this._pool.push(...t)},this._applyDensity=(t,e,i)=>{let s=t.number;if(!t.number.density?.enable)return void(void 0===i?this._limit=s.limit.value:s.limit&&this._groupLimits.set(i,s.limit.value));let a=this._initDensityFactor(s.density),o=s.value,n=s.limit.value>0?s.limit.value:o,r=Math.min(o,n)*a+e,l=Math.min(this.count,this.filter(t=>t.group===i).length);void 0===i?this._limit=s.limit.value*a:this._groupLimits.set(i,s.limit.value*a),l<r?this.push(Math.abs(r-l),void 0,t,i):l>r&&this.removeQuantity(l-r,i)},this._initDensityFactor=t=>{let e=this._container;if(!e.canvas.element||!t.enable)return 1;let i=e.canvas.element,s=e.retina.pixelRatio;return i.width*i.height/(t.height*t.width*s**2)},this._pushParticle=(t,e,i,s)=>{try{let a=this._pool.pop();a||(a=new ex(this._engine,this._container)),a.init(this._nextId,t,e,i);let o=!0;if(s&&(o=s(a)),!o)return;return this._array.push(a),this._zArray.push(a),this._nextId++,this._engine.dispatchEvent(ig.particleAdded,{container:this._container,data:{particle:a}}),a}catch(t){I.warning(`${l} adding particle: ${t}`)}},this._removeParticle=(t,e,i)=>{let s=this._array[t];if(!s||s.group!==e)return!1;let a=this._zArray.indexOf(s);return this._array.splice(t,1),this._zArray.splice(a,1),s.destroy(i),this._engine.dispatchEvent(ig.particleRemoved,{container:this._container,data:{particle:s}}),this._addToPool(s),!0},this._engine=t,this._container=e,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new ey(t,e),this._pluginsInitialized=!1;const i=e.canvas.size;this.quadTree=new eM(eP(i),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){let t=this._container;t.actualOptions.manualParticles.forEach(e=>this.addParticle(e.position?J(e.position,t.canvas.size):void 0,e.options))}addParticle(t,e,i,s){let a=this._container.actualOptions.particles.number.limit.mode,o=void 0===i?this._limit:this._groupLimits.get(i)??this._limit,n=this.count;if(o>0)switch(a){case iC.delete:{let t=n+1-o;t>0&&this.removeQuantity(t);break}case iC.wait:if(n>=o)return}return this._pushParticle(t,e,i,s)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(t){let e=this._container,i=e.canvas;for(let[,s]of(i.clear(),this.update(t),e.plugins))i.drawPlugin(s,t);for(let e of this._zArray)e.draw(t)}filter(t){return this._array.filter(t)}find(t){return this._array.find(t)}get(t){return this._array[t]}handleClickMode(t){this._interactionManager.handleClickMode(t)}
1async init(){let t=this._container,e=t.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let i=!1;for(let[,e]of t.plugins)if(i=e.particlesInitialization?.()??i)break;if(this.addManualParticles(),!i){let t=e.particles,i=t.groups;for(let e in i){let s=i[e];for(let i=this.count,a=0;a<s.number?.value&&i<t.number.value;i++,a++)this.addParticle(void 0,s,e)}for(let e=this.count;e<t.number.value;e++)this.addParticle()}}async initPlugins(){if(this._pluginsInitialized)return;let t=this._container;for(let[,e]of(this.movers=await this._engine.getMovers(t,!0),this.updaters=await this._engine.getUpdaters(t,!0),await this._interactionManager.init(),t.pathGenerators))e.init(t)}push(t,e,i,s){for(let a=0;a<t;a++)this.addParticle(e?.position,i,s)}async redraw(){this.clear(),await this.init(),this.draw({value:0,factor:0})}remove(t,e,i){this.removeAt(this._array.indexOf(t),void 0,e,i)}removeAt(t,e=1,i,s){if(t<0||t>this.count)return;let a=0;for(let o=t;a<e&&o<this.count;o++)this._removeParticle(o--,i,s)&&a++}removeQuantity(t,e){this.removeAt(0,t,e)}setDensity(){let t=this._container.actualOptions,e=t.particles.groups;for(let t in e)this._applyDensity(e[t],0,t);this._applyDensity(t.particles,t.manualParticles.length)}setLastZIndex(t){this._lastZIndex=t,this._needsSort=this._needsSort||this._lastZIndex<t}setResizeFactor(t){this._resizeFactor=t}update(t){let e=this._container,i=new Set;for(let[,t]of(this.quadTree=new eM(eP(e.canvas.size),4),e.pathGenerators))t.update();for(let[,i]of e.plugins)i.update?.(t);let s=this._resizeFactor;for(let e of this._array){for(let[,i]of(s&&!e.ignoresResizeRatio&&(e.position.x*=s.width,e.position.y*=s.height,e.initialPosition.x*=s.width,e.initialPosition.y*=s.height),e.ignoresResizeRatio=!1,this._interactionManager.reset(e),this._container.plugins)){if(e.destroyed)break;i.particleUpdate?.(e,t)}for(let i of this.movers)i.isEnabled(e)&&i.move(e,t);if(e.destroyed){i.add(e);continue}this.quadTree.insert(new e_(e.getPosition(),e))}if(i.size){let t=t=>!i.has(t);for(let e of(this._array=this.filter(t),this._zArray=this._zArray.filter(t),i))this._engine.dispatchEvent(ig.particleRemoved,{container:this._container,data:{particle:e}});this._addToPool(...i)}for(let e of(this._interactionManager.externalInteract(t),this._array)){for(let i of this.updaters)i.update(e,t);e.destroyed||e.spawning||this._interactionManager.particlesInteract(e,t)}if(delete this._resizeFactor,this._needsSort){let t=this._zArray;t.sort((t,e)=>e.position.z-t.position.z||t.id-e.id),this._lastZIndex=t[t.length-1].position.z,this._needsSort=!1}}}class eS{constructor(t){this.container=t,this.pixelRatio=1,this.reduceFactor=1}init(){let t=this.container,e=t.actualOptions;this.pixelRatio=!e.detectRetina||B()?1:window.devicePixelRatio,this.reduceFactor=1;let i=this.pixelRatio,s=t.canvas;if(s.element){let t=s.element;s.size.width=t.offsetWidth*i,s.size.height=t.offsetHeight*i}let a=e.particles,o=a.move;this.maxSpeed=z(o.gravity.maxSpeed)*i,this.sizeAnimationSpeed=z(a.size.animation.speed)*i}initParticle(t){let e=t.options,i=this.pixelRatio,s=e.move,a=s.distance,o=t.retina;o.moveDrift=z(s.drift)*i,o.moveSpeed=z(s.speed)*i,o.sizeAnimationSpeed=z(e.size.animation.speed)*i;let n=o.maxDistance;n.horizontal=void 0!==a.horizontal?a.horizontal*i:void 0,n.vertical=void 0!==a.vertical?a.vertical*i:void 0,o.maxSpeed=z(s.gravity.maxSpeed)*i}}function eT(t){return t&&!t.destroyed}function eR(t,e,...i){let s=new em(t,e);return ef(s,...i),s}class eD{constructor(t,e,i){this._intersectionManager=t=>{if(eT(this)&&this.actualOptions.pauseOnOutsideViewport)for(let e of t)e.target===this.interactivity.element&&(e.isIntersecting?this.play():this.pause())},this._nextFrame=t=>{try{if(!this._smooth&&void 0!==this._lastFrameTime&&t<this._lastFrameTime+1e3/this.fpsLimit)return void this.draw(!1);this._lastFrameTime??=t;let e=function(t,e=60,i=!1){return{value:t,factor:i?60/e:60*t/1e3}}(t-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(e.value),this._lastFrameTime=t,e.value>1e3)return void this.draw(!1);if(this.particles.draw(e),!this.alive())return void this.destroy();this.animationStatus&&this.draw(!1)}catch(t){I.error(`${l} in animation loop`,t)}},this._engine=t,this.id=Symbol(e),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._clickHandlers=new Map,this._sourceOptions=i,this._initialSourceOptions=i,this.retina=new eS(this),this.canvas=new t_(this),this.particles=new eO(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=eR(this._engine,this),this.actualOptions=eR(this._engine,this),this._eventListeners=new tC(this),this._intersectionObserver=function(t){if(!B()&&"u">typeof IntersectionObserver)return new IntersectionObserver(t)}(t=>this._intersectionManager(t)),this._engine.dispatchEvent(ig.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&eT(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(t){if(!eT(this))return;let e=this.interactivity.element;if(!e)return;let i=(e,i,s)=>{if(!eT(this))return;let a=this.retina.pixelRatio,o={x:i.x*a,y:i.y*a};t(e,this.particles.quadTree.queryCircle(o,s*a))},s=t=>{if(!eT(this))return;let e={x:t.offsetX||t.clientX,y:t.offsetY||t.clientY};i(t,e,1)},a=()=>{eT(this)&&(l=!0,c=!1)},o=()=>{eT(this)&&(c=!0)},n=t=>{if(eT(this)){if(l&&!c){let e=t.touches[t.touches.length-1];if(!e&&!(e=t.changedTouches[t.changedTouches.length-1]))return;let s=this.canvas.element,a=s?s.getBoundingClientRect():void 0;i(t,{x:e.clientX-(a?a.left:0),y:e.clientY-(a?a.top:0)},Math.max(e.radiusX,e.radiusY))}l=!1,c=!1}},r=()=>{eT(this)&&(l=!1,c=!1)}
1,l=!1,c=!1;for(let[t,i]of(this._clickHandlers.set("click",s),this._clickHandlers.set("touchstart",a),this._clickHandlers.set("touchmove",o),this._clickHandlers.set("touchend",n),this._clickHandlers.set("touchcancel",r),this._clickHandlers))e.addEventListener(t,i)}addLifeTime(t){this._lifeTime+=t}addPath(t,e,i=!1){return!(!eT(this)||!i&&this.pathGenerators.has(t))&&(this.pathGenerators.set(t,e),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){if(eT(this)){for(let[t,e]of this._clickHandlers)this.interactivity.element?.removeEventListener(t,e);this._clickHandlers.clear()}}destroy(t=!0){if(eT(this)){for(let[,t]of(this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy(),this.effectDrawers))t.destroy?.(this);for(let[,t]of this.shapeDrawers)t.destroy?.(this);for(let t of this.effectDrawers.keys())this.effectDrawers.delete(t);for(let t of this.shapeDrawers.keys())this.shapeDrawers.delete(t);if(this._engine.clearPlugins(this),this.destroyed=!0,t){let t=this._engine.items,e=t.findIndex(t=>t===this);e>=0&&t.splice(e,1)}this._engine.dispatchEvent(ig.containerDestroyed,{container:this})}}draw(t){if(!eT(this))return;let e=t,i=t=>{e&&(this._lastFrameTime=void 0,e=!1),this._nextFrame(t)};this._drawAnimationFrame=requestAnimationFrame(t=>i(t))}async export(t,e={}){for(let[,i]of this.plugins){if(!i.export)continue;let s=await i.export(t,e);if(s.supported)return s.blob}I.error(`${l} - Export plugin with type ${t} not found`)}handleClickMode(t){if(eT(this))for(let[,e]of(this.particles.handleClickMode(t),this.plugins))e.handleClickMode?.(t)}
1async init(){if(!eT(this))return;for(let t of this._engine.getSupportedEffects()){let e=this._engine.getEffectDrawer(t);e&&this.effectDrawers.set(t,e)}for(let t of this._engine.getSupportedShapes()){let e=this._engine.getShapeDrawer(t);e&&this.shapeDrawers.set(t,e)}for(let[t,e]of(await this.particles.initPlugins(),this._options=eR(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=eR(this._engine,this,this._options),await this._engine.getAvailablePlugins(this)))this.plugins.set(t,e);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();let{zLayers:t,duration:e,delay:i,fpsLimit:s,smooth:a}=this.actualOptions;for(let[,o]of(this.zLayers=t,this._duration=1e3*z(e),this._delay=1e3*z(i),this._lifeTime=0,this.fpsLimit=s>0?s:120,this._smooth=a,this.effectDrawers))await o.init?.(this);for(let[,t]of this.shapeDrawers)await t.init?.(this);for(let[,t]of this.plugins)await t.init?.();for(let[,t]of(this._engine.dispatchEvent(ig.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity(),this.plugins))t.particlesSetup?.();this._engine.dispatchEvent(ig.particlesSetup,{container:this})}async loadTheme(t){eT(this)&&(this._currentTheme=t,await this.refresh())}pause(){if(eT(this)){if(void 0!==this._drawAnimationFrame){var t;t=this._drawAnimationFrame,cancelAnimationFrame(t),delete this._drawAnimationFrame}if(!this._paused){for(let[,t]of this.plugins)t.pause?.();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent(ig.containerPaused,{container:this})}}}play(t){if(!eT(this))return;let e=this._paused||t;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&(this._paused=!1),e)for(let[,t]of this.plugins)t.play&&t.play();this._engine.dispatchEvent(ig.containerPlay,{container:this}),this.draw(e??!1)}async refresh(){if(eT(this))return this.stop(),this.start()}async reset(t){if(eT(this))return this._initialSourceOptions=t,this._sourceOptions=t,this._options=eR(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=eR(this._engine,this,this._options),this.refresh()}async start(){eT(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise(t=>{let e=async()=>{for(let[,t]of(this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element),this.plugins))await t.start?.();this._engine.dispatchEvent(ig.containerStarted,{container:this}),this.play(),t()};this._delayTimeout=setTimeout(()=>void e(),this._delay)}))}stop(){if(eT(this)&&this.started){for(let[,t]of(this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element),this.plugins))t.stop?.();for(let t of this.plugins.keys())this.plugins.delete(t);this._sourceOptions=this._options,this._engine.dispatchEvent(ig.containerStopped,{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let t=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth!==t&&(this._responsiveMaxWidth=t,!0)}}class eE{constructor(){this._listeners=new Map}addEventListener(t,e){this.removeEventListener(t,e);let i=this._listeners.get(t);i||(i=[],this._listeners.set(t,i)),i.push(e)}dispatchEvent(t,e){let i=this._listeners.get(t);i?.forEach(t=>t(e))}hasEventListener(t){return!!this._listeners.get(t)}removeAllEventListeners(t){t?this._listeners.delete(t):this._listeners=new Map}removeEventListener(t,e){let i=this._listeners.get(t);if(!i)return;let s=i.length,a=i.indexOf(e);a<0||(1===s?this._listeners.delete(t):i.splice(a,1))}}async function eI(t,e,i,s=!1){let a=e.get(t);return(!a||s)&&(a=await Promise.all([...i.values()].map(e=>e(t))),e.set(t,a)),a}async function eL(t){let e=Y(t.url,t.index);if(!e)return t.fallback;let i=await fetch(e);return i.ok?await i.json():(I.error(`${l} ${i.status} while retrieving config file`),t.fallback)}let eB="true",eA="false",eF="canvas";(ie=iO||(iO={}))[ie.h=1]="h",ie[ie.s=2]="s",ie[ie.l=3]="l",ie[ie.a=5]="a";(ii=iS||(iS={}))[ii.r=1]="r",ii[ii.g=2]="g",ii[ii.b=3]="b",ii[ii.a=5]="a";class eq{constructor(t){this.type=iz.external,this.container=t}}class eH{constructor(t){this.type=iz.particles,this.container=t}}(is=iT||(iT={})).clockwise="clockwise",is.counterClockwise="counter-clockwise",is.random="random",(ia=iR||(iR={})).linear="linear",ia.radial="radial",ia.random="random",(io=iD||(iD={})).easeInBack="ease-in-back",io.easeInCirc="ease-in-circ",io.easeInCubic="ease-in-cubic",io.easeInLinear="ease-in-linear",io.easeInQuad="ease-in-quad",io.easeInQuart="ease-in-quart",io.easeInQuint="ease-in-quint",io.easeInExpo="ease-in-expo",io.easeInSine="ease-in-sine",io.easeOutBack="ease-
1out-back",io.easeOutCirc="ease-out-circ",io.easeOutCubic="ease-out-cubic",io.easeOutLinear="ease-out-linear",io.easeOutQuad="ease-out-quad",io.easeOutQuart="ease-out-quart",io.easeOutQuint="ease-out-quint",io.easeOutExpo="ease-out-expo",io.easeOutSine="ease-out-sine",io.easeInOutBack="ease-in-out-back",io.easeInOutCirc="ease-in-out-circ",io.easeInOutCubic="ease-in-out-cubic",io.easeInOutLinear="ease-in-out-linear",io.easeInOutQuad="ease-in-out-quad",io.easeInOutQuart="ease-in-out-quart",io.easeInOutQuint="ease-in-out-quint",io.easeInOutExpo="ease-in-out-expo",io.easeInOutSine="ease-in-out-sine";let eU=(e=new class t{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(t){let e=t.value.rgb??t.value;if(void 0!==e.r)return e}handleRangeColor(t){let e=t.value.rgb??t.value;if(void 0!==e.r)return{r:z(e.r),g:z(e.g),b:z(e.b)}}parseString(t){if(!t.startsWith(this.stringPrefix))return;let e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?E(e[iS.a]):1,b:parseInt(e[iS.b],10),g:parseInt(e[iS.g],10),r:parseInt(e[iS.r],10)}:void 0}},i=new class t{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(t){let e=t.value.hsl??t.value;if(void 0!==e.h&&void 0!==e.s&&void 0!==e.l)return tr(e)}handleRangeColor(t){let e=t.value.hsl??t.value;if(void 0!==e.h&&void 0!==e.l)return tr({h:z(e.h),l:z(e.l),s:z(e.s)})}parseString(t){var e;let i;if(!t.startsWith("hsl"))return;let s=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return s?(i=tr(e={a:s.length>4?E(s[iO.a]):1,h:parseInt(s[iO.h],10),l:parseInt(s[iO.l],10),s:parseInt(s[iO.s],10)}),{a:e.a,b:i.b,g:i.g,r:i.r}):void 0}},ts(e),ts(i),(s=new class t{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new eE,this._initialized=!1,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.pathGenerators=new Map}get configs(){let t={};for(let[e,i]of this._configs)t[e]=i;return t}get items(){return this._domArray}get version(){return"3.5.0"}addConfig(t){let e=t.key??t.name??"default";this._configs.set(e,t),this._eventDispatcher.dispatchEvent(ig.configAdded,{data:{name:e,config:t}})}async addEffect(t,e,i=!0){X(t,t=>{this.getEffectDrawer(t)||this.effectDrawers.set(t,e)}),await this.refresh(i)}addEventListener(t,e){this._eventDispatcher.addEventListener(t,e)}async addInteractor(t,e,i=!0){this._initializers.interactors.set(t,e),await this.refresh(i)}async addMover(t,e,i=!0){this._initializers.movers.set(t,e),await this.refresh(i)}async addParticleUpdater(t,e,i=!0){this._initializers.updaters.set(t,e),await this.refresh(i)}async addPathGenerator(t,e,i=!0){this.getPathGenerator(t)||this.pathGenerators.set(t,e),await this.refresh(i)}async addPlugin(t,e=!0){this.getPlugin(t.id)||this.plugins.push(t),await this.refresh(e)}async addPreset(t,e,i=!1,s=!0){(i||!this.getPreset(t))&&this.presets.set(t,e),await this.refresh(s)}async addShape(t,e=!0){for(let e of t.validTypes)this.getShapeDrawer(e)||this.shapeDrawers.set(e,t);await this.refresh(e)}clearPlugins(t){this.updaters.delete(t),this.movers.delete(t),this.interactors.delete(t)}dispatchEvent(t,e){this._eventDispatcher.dispatchEvent(t,e)}dom(){return this.items}domItem(t){return this.item(t)}async getAvailablePlugins(t){let e=new Map;for(let i of this.plugins)i.needsPlugin(t.actualOptions)&&e.set(i.id,await i.getPlugin(t));return e}getEffectDrawer(t){return this.effectDrawers.get(t)}async getInteractors(t,e=!1){return eI(t,this.interactors,this._initializers.interactors,e)}async getMovers(t,e=!1){return eI(t,this.movers,this._initializers.movers,e)}getPathGenerator(t){return this.pathGenerators.get(t)}getPlugin(t){return this.plugins.find(e=>e.id===t)}getPreset(t){return this.presets.get(t)}getShapeDrawer(t){return this.shapeDrawers.get(t)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(t,e=!1){return eI(t,this.updaters,this._initializer
1s.updaters,e)}init(){this._initialized||(this._initialized=!0)}item(t){let{items:e}=this,i=e[t];return!i||i.destroyed?void e.splice(t,1):i}async load(t){let e,i=t.id??t.element?.id??`tsparticles${Math.floor(1e4*x())}`,{index:s,url:o}=t,n=Y(o?await eL({fallback:t.options,url:o,index:s}):t.options,s),{items:r}=this,l=r.findIndex(t=>t.id.description===i),c=new eD(this,i,n);if(l>=0){let t=this.item(l),e=+!!t;t&&!t.destroyed&&t.destroy(!1),r.splice(l,e,c)}else r.push(c);let h=(t=>{let e;if(t instanceof HTMLCanvasElement||t.tagName.toLowerCase()===eF)(e=t).dataset[a]||(e.dataset[a]=eA);else{let i=t.getElementsByTagName(eF);i.length?(e=i[0]).dataset[a]=eA:((e=document.createElement(eF)).dataset[a]=eB,t.appendChild(e))}let i="100%";return e.style.width||(e.style.width=i),e.style.height||(e.style.height=i),e})(((e=t.element??document.getElementById(i))||((e=document.createElement("div")).id=i,e.dataset[a]=eB,document.body.append(e)),e));return c.canvas.loadCanvas(h),await c.start(),c}loadOptions(t,e){this.plugins.forEach(i=>i.loadOptions?.(t,e))}loadParticlesOptions(t,e,...i){let s=this.updaters.get(t);s&&s.forEach(t=>t.loadOptions?.(e,...i))}async refresh(t=!0){t&&await Promise.all(this.items.map(t=>t.refresh()))}removeEventListener(t,e){this._eventDispatcher.removeEventListener(t,e)}setOnClickHandler(t){let{items:e}=this;if(!e.length)throw Error(`${l} can only set click handlers after calling tsParticles.load()`);e.forEach(e=>e.addClickHandler(t))}}).init(),s);B()||(window.tsParticles=eU);var eW,e$,eV,ej,eG,eQ,eN,eX,eY,eZ,eK,eJ,e0,e1,e2,e5,e3,e6,e4,e8,e7,e9,it,ie,ii,is,ia,io,ir,il,ic,ih,id,iu,ip,iv,im,iy,ig,ib,iw,ix,i_,ik,iC,iz,iM,iP,iO,iS,iT,iR,iD,iE,iI,iL,iB=t.i(843476),iA=t.i(271645);async function iF(t){await t(eU)}t.s(["default",0,t=>{let e=t.id??"tsparticles";return(0,iA.useEffect)(()=>{let i;return eU.load({id:e,url:t.url,options:t.options}).then(e=>{var s;i=e,null==(s=t.particlesLoaded)||s.call(t,e)}),()=>{null==i||i.destroy()}},[e,t,t.url,t.options]),(0,iB.jsx)("div",{id:e,className:t.className})}],135605),t.s(["initParticlesEngine",0,iF],363067);class iq{init(t){let e=t.options.move.gravity;t.gravity={enable:e.enable,acceleration:z(e.acceleration),inverse:e.inverse},function(t){let e=t.container,i=t.options.move.spin;if(!i.enable)return;let s=i.position??{x:50,y:50},a={x:.01*s.x*e.canvas.size.width,y:.01*s.y*e.canvas.size.height},o=T(t.getPosition(),a),n=z(i.acceleration);t.retina.spinAcceleration=n*e.retina.pixelRatio,t.spin={center:a,direction:t.velocity.x>=0?iT.clockwise:iT.counterClockwise,angle:t.velocity.angle,radius:o,acceleration:t.retina.spinAcceleration}}(t)}isEnabled(t){return!t.destroyed&&t.options.move.enable}move(t,e){let i=t.options,s=i.move;if(!s.enable)return;let a=t.container,o=a.retina.pixelRatio;t.retina.moveSpeed??=z(s.speed)*o,t.retina.moveDrift??=z(t.options.move.drift)*o;let n=t.slow.inRange?t.slow.factor:1,r=t.retina.moveSpeed*a.retina.reduceFactor,l=t.retina.moveDrift,c=P(i.size.value)*o,h=r*(s.size?t.getRadius()/c:1)*n*(e.factor||1)/2,d=t.retina.maxSpeed??a.retina.maxSpeed;s.spin.enable?function(t,e){let i=t.container;if(!t.spin)return;let s={x:t.spin.direction===iT.clockwise?Math.cos:Math.sin,y:t.spin.direction===iT.clockwise?Math.sin:Math.cos};t.position.x=t.spin.center.x+t.spin.radius*s.x(t.spin.angle),t.position.y=t.spin.center.y+t.spin.radius*s.y(t.spin.angle),t.spin.radius+=t.spin.acceleration;let a=Math.max(i.canvas.size.width,i.canvas.size.height),o=.5*a;t.spin.radius>o?(t.spin.radius=o,t.spin.acceleration*=-1):t.spin.radius<0&&(t.spin.radius=0,t.spin.acceleration*=-1),t.spin.angle+=.01*e*(1-t.spin.radius/a)}(t,h):function(t,e,i,s,a,o){!function(t,e){let i=t.options.move.path;if(!i.enable)return;if(t.lastPathTime<=t.pathDelay){t.lastPathTime+=e.value;return}let s=t.pathGenerator?.generate(t,e);s&&t.velocity.addTo(s),i.clamp&&(t.velocity.x=_(t.velocity.x,-1,1),t.velocity.y=_(t.velocity.y,-1,1)),t.lastPathTime-=t.pathDelay}(t,o);let n=t.gravity,r=n?.enable&&n.inverse?-1:1;a&&i&&(t.velocity.x+=a*o.factor/(60*i)),n?.enable&&i&&(t.velocity.y+=r*(n.acceleration*o.factor)/(60*i));let l=t.moveDecay;t.velocity.multTo(l);let c=t.velocity.mult(i);n?.enable&&s>0&&(!n.inverse&&c.y>=0&&c.y>=s||n.inverse&&c.y<=0&&c.y<=-s)&&(c.y=r*s,i&&(t.velocity.y=c.y/i));let h=t.options.zIndex,d=(1-t.zIndexFactor)**h.velocityRate;c.multTo(d);let{position:u}=t;u.addTo(c),e.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}(t,s,h,d,l,e),function(t){let e=t.initialPosition,{dx:i,dy:s}=S(e,t.position),a=Math.abs(i),o=Math.abs(s),{maxDistance:n}=t.retina,r=n.horizontal,l=n.vertical;if(r||l){if((r&&a>=r||l&&o>=l)&&!t.misplaced)t.misplaced=!!r&&a>r||!!l&&o>l,r&&(t.velocity.x=.5*t.velocity.y-t.velocity.x),l&&(t.velocity.y=.5*t.velocity.x-t.velocity.y);else if((!r||a<r)&&(!l||o<l)&&t.misplaced)t.misplaced=!1;else if(t.misplaced){let i=t.position,s=t.velocity;r&&(i.x<e.x&&s.x<0||i.x>e.x&&s.x>0)&&(s.x*=-x()),l&&(i.y<e.y&&s.y<0||i.y>e.y&&s.y>0)&&(s.y*=-x())}}}(t)}}async function iH(t,e=!0){await t.addMover("base",()=>Promise.resolve(new iq),e)}let iU=2*Math.PI;class iW{constructor(){this.validTypes=["circle"]}draw(t){!function(t){let{context:e,particle:i,radius:s}=t;i.circleRange||(i.circleRange={min:0,max:iU});let a=i.circleRange;e.arc(0,0,s,a.min,a.max,!1)}(t)}getSidesCount(){return 12}particleInit(t,e){let i=e.shapeData,s=i?.angle??{max:360,min:0};e.circleRange=u(s)?{min:R(s.min),max:R(s.max)}:{min:0,max:R(s)}}}async function i$(t,e=!0){await t.addShape(new iW,e)}class iV{constructor(t){this.container=t}init(t){let e=to(t.options.color,t.id,t.options.reduceDuplicates);e&&(t.color=tv(e,t.options.color.animation,this.container.retina.reduceFactor))}isEnabled(t){let{h:e,s:i,l:s}=t.options.color.animation,{color:a}=t;return!t.destroyed&&!t.spawning&&(a?.h.value!==void 0&&e.enable||a?.s.value!==void 0&&i.enable||a?.l.value!==void 0&&s.enable)}update(t,e){tg(t.color,e)}}async function ij(t,e=!0){await t.addParticleUpdater("color",t=>Promise.resolve(new iV(t)),e)}class iG{constructor(t){this.container=t}init(t){let e=t.options.opacity;t.opacity=K(e,1);let i=e.animation;i.enable&&(t.opacity.velocity=z(i.speed)/100*this.container.retina.reduceFactor,i.sync||(t.opacity.velocity
1*=x()))}isEnabled(t){return!t.destroyed&&!t.spawning&&!!t.opacity&&t.opacity.enable&&((t.opacity.maxLoops??0)<=0||(t.opacity.maxLoops??0)>0&&(t.opacity.loops??0)<(t.opacity.maxLoops??0))}reset(t){t.opacity&&(t.opacity.time=0,t.opacity.loops=0)}update(t,e){this.isEnabled(t)&&t.opacity&&tt(t,t.opacity,!0,t.options.opacity.animation.destroy,e)}}async function iQ(t,e=!0){await t.addParticleUpdater("opacity",t=>Promise.resolve(new iG(t)),e)}class iN{constructor(t){this.container=t,this.modes=[ik.bounce,ik.split]}update(t,e,i,s){if(!this.modes.includes(s))return;let a=this.container,o=!1;for(let[,s]of a.plugins)if(void 0!==s.particleBounce&&(o=s.particleBounce(t,i,e)),o)break;if(o)return;let n=t.getPosition(),r=t.offset,l=t.getRadius(),c=W(n,l),h=a.canvas.size;!function(t){if(t.outMode!==ik.bounce&&t.outMode!==ik.split||t.direction!==id.left&&t.direction!==id.right)return;t.bounds.right<0&&t.direction===id.left?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&t.direction===id.right&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);let e=t.particle.velocity.x,i=!1;if(t.direction===id.right&&t.bounds.right>=t.canvasSize.width&&e>0||t.direction===id.left&&t.bounds.left<=0&&e<0){let e=z(t.particle.options.bounce.horizontal.value);t.particle.velocity.x*=-e,i=!0}if(!i)return;let s=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width&&t.direction===id.right?t.particle.position.x=t.canvasSize.width-s:t.bounds.left<=0&&t.direction===id.left&&(t.particle.position.x=s),t.outMode===ik.split&&t.particle.destroy()}({particle:t,outMode:s,direction:e,bounds:c,canvasSize:h,offset:r,size:l}),function(t){if(t.outMode!==ik.bounce&&t.outMode!==ik.split||t.direction!==id.bottom&&t.direction!==id.top)return;t.bounds.bottom<0&&t.direction===id.top?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&t.direction===id.bottom&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);let e=t.particle.velocity.y,i=!1;if(t.direction===id.bottom&&t.bounds.bottom>=t.canvasSize.height&&e>0||t.direction===id.top&&t.bounds.top<=0&&e<0){let e=z(t.particle.options.bounce.vertical.value);t.particle.velocity.y*=-e,i=!0}if(!i)return;let s=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height&&t.direction===id.bottom?t.particle.position.y=t.canvasSize.height-s:t.bounds.top<=0&&t.direction===id.top&&(t.particle.position.y=s),t.outMode===ik.split&&t.particle.destroy()}({particle:t,outMode:s,direction:e,bounds:c,canvasSize:h,offset:r,size:l})}}class iX{constructor(t){this.container=t,this.modes=[ik.destroy]}update(t,e,i,s){if(!this.modes.includes(s))return;let a=this.container;switch(t.outType){case iM.normal:case iM.outside:if(U(t.position,a.canvas.size,v.origin,t.getRadius(),e))return;break;case iM.inside:{let{dx:e,dy:i}=S(t.position,t.moveCenter),{x:s,y:a}=t.velocity;if(s<0&&e>t.moveCenter.radius||a<0&&i>t.moveCenter.radius||s>=0&&e<-t.moveCenter.radius||a>=0&&i<-t.moveCenter.radius)return}}a.particles.remove(t,void 0,!0)}}class iY{constructor(t){this.container=t,this.modes=[ik.none]}update(t,e,i,s){if(!this.modes.includes(s)||((t.options.move.distance.horizontal&&(e===id.left||e===id.right))??(t.options.move.distance.vertical&&(e===id.top||e===id.bottom))))return;let a=t.options.move.gravity,o=this.container,n=o.canvas.size,r=t.getRadius();if(a.enable){let i=t.position;(!a.inverse&&i.y>n.height+r&&e===id.bottom||a.inverse&&i.y<-r&&e===id.top)&&o.particles.remove(t)}else{if(t.velocity.y>0&&t.position.y<=n.height+r||t.velocity.y<0&&t.position.y>=-r||t.velocity.x>0&&t.position.x<=n.width+r||t.velocity.x<0&&t.position.x>=-r)return;U(t.position,o.canvas.size,v.origin,r,e)||o.particles.remove(t)}}}class iZ{constructor(t){this.container=t,this.modes=[ik.out]}update(t,e,i,s){if(!this.modes.includes(s))return;let a=this.container;if(t.outType===iM.inside){let{x:e,y:i}=t.velocity,s=v.origin;s.length=t.moveCenter.radius,s.angle=t.velocity.angle+Math.PI,s.addTo(v.create(t.moveCenter));let{dx:o,dy:n}=S(t.position,s);if(e<=0&&o>=0||i<=0&&n>=0||e>=0&&o<=0||i>=0&&n<=0)return;t.position.x=Math.floor(C({min:0,max:a.canvas.size.width})),t.position.y=Math.floor(C({min:0,max:a.canvas.size.height}));let{dx:r,dy:l}=S(t.position,t.moveCenter);t.direction=Math.atan2(-l,-r),t.velocity.angle=t.direction}else{if(U(t.position,a.canvas.size,v.origin,t.getRadius(),e))return;switch(t.outType){case iM.outside:{t.position.x=Math.floor(C({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.x,t.position.y=Math.floor(C({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.y;let{dx:e,dy:i}=S(t.position,t.moveCenter);t.moveCenter.radius&&(t.direction=Math.atan2(i,e),t.velocity.angle=t.direction);break}case iM.normal:{let i=t.options.move.warp,s=a.canvas.size,o={bottom:s.height+t.getRadius()+t.offset.y,left
1:-t.getRadius()-t.offset.x,right:s.width+t.getRadius()+t.offset.x,top:-t.getRadius()-t.offset.y},n=t.getRadius(),r=W(t.position,n);e===id.right&&r.left>s.width+t.offset.x?(t.position.x=o.left,t.initialPosition.x=t.position.x,i||(t.position.y=x()*s.height,t.initialPosition.y=t.position.y)):e===id.left&&r.right<-t.offset.x&&(t.position.x=o.right,t.initialPosition.x=t.position.x,i||(t.position.y=x()*s.height,t.initialPosition.y=t.position.y)),e===id.bottom&&r.top>s.height+t.offset.y?(i||(t.position.x=x()*s.width,t.initialPosition.x=t.position.x),t.position.y=o.top,t.initialPosition.y=t.position.y):e===id.top&&r.bottom<-t.offset.y&&(i||(t.position.x=x()*s.width,t.initialPosition.x=t.position.x),t.position.y=o.bottom,t.initialPosition.y=t.position.y)}}}}}let iK=(t,e)=>t.default===e||t.bottom===e||t.left===e||t.right===e||t.top===e;class iJ{constructor(t){this._updateOutMode=(t,e,i,s)=>{for(let a of this.updaters)a.update(t,s,e,i)},this.container=t,this.updaters=[]}init(t){this.updaters=[];let e=t.options.move.outModes;iK(e,ik.bounce)?this.updaters.push(new iN(this.container)):iK(e,ik.out)?this.updaters.push(new iZ(this.container)):iK(e,ik.destroy)?this.updaters.push(new iX(this.container)):iK(e,ik.none)&&this.updaters.push(new iY(this.container))}isEnabled(t){return!t.destroyed&&!t.spawning}update(t,e){let i=t.options.move.outModes;this._updateOutMode(t,e,i.bottom??i.default,id.bottom),this._updateOutMode(t,e,i.left??i.default,id.left),this._updateOutMode(t,e,i.right??i.default,id.right),this._updateOutMode(t,e,i.top??i.default,id.top)}}async function i0(t,e=!0){await t.addParticleUpdater("outModes",t=>Promise.resolve(new iJ(t)),e)}class i1{init(t){let e=t.container,i=t.options.size.animation;i.enable&&(t.size.velocity=(t.retina.sizeAnimationSpeed??e.retina.sizeAnimationSpeed)/100*e.retina.reduceFactor,i.sync||(t.size.velocity*=x()))}isEnabled(t){return!t.destroyed&&!t.spawning&&t.size.enable&&((t.size.maxLoops??0)<=0||(t.size.maxLoops??0)>0&&(t.size.loops??0)<(t.size.maxLoops??0))}reset(t){t.size.loops=0}update(t,e){this.isEnabled(t)&&tt(t,t.size,!0,t.options.size.animation.destroy,e)}}async function i2(t,e=!0){await t.addParticleUpdater("size",()=>Promise.resolve(new i1),e)}async function i5(t,e=!0){await iH(t,!1),await i$(t,!1),await ij(t,!1),await iQ(t,!1),await i0(t,!1),await i2(t,!1),await t.refresh(e)}async function i3(){b(iD.easeInQuad,t=>t**2),b(iD.easeOutQuad,t=>1-(1-t)**2),b(iD.easeInOutQuad,t=>t<.5?2*t**2:1-(-2*t+2)**2/2),await Promise.resolve()}let i6='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"';class i4{constructor(){this.validTypes=["emoji"],this._emojiShapeDict=new Map}destroy(){for(let[t,e]of this._emojiShapeDict)e instanceof ImageBitmap&&(e?.close(),this._emojiShapeDict.delete(t))}draw(t){!function(t){let{context:e,particle:i,radius:s,opacity:a}=t,o=i.emojiData,n=2*s,r=e.globalAlpha;o&&(e.globalAlpha=a,e.drawImage(o,-s,-s,n,n),e.globalAlpha=r)}(t)}async init(t){let e=t.actualOptions,{validTypes:i}=this;if(!i.find(t=>F(t,e.particles.shape.type)))return;let s=[q(i6)],a=i.map(t=>e.particles.shape.options[t]).find(t=>!!t);a&&X(a,t=>{t.font&&s.push(q(t.font))}),await Promise.all(s)}particleDestroy(t){delete t.emojiData}particleInit(t,e){let i,s=e.shapeData;if(!s?.value)return;let a=Y(s.value,e.randomIndexData),o=s.font??i6;if(!a)return;let n=`${a}_${o}`,r=this._emojiShapeDict.get(n);if(r){e.emojiData=r;return}let l=2*P(e.size.value),c=P(e.size.value);if("u">typeof OffscreenCanvas){let t=new OffscreenCanvas(l,l),e=t.getContext("2d");if(!e)return;e.font=`400 ${2*c}px ${o}`,e.textBaseline="middle",e.textAlign="center",e.fillText(a,c,c),i=t.transferToImageBitmap()}else{let t=document.createElement("canvas");t.width=l,t.height=l;let e=t.getContext("2d");if(!e)return;e.font=`400 ${2*c}px ${o}`,e.textBaseline="middle",e.textAlign="center",e.fillText(a,c,c),i=t}this._emojiShapeDict.set(n,i),e.emojiData=i}}async function i8(t,e=!0){await t.addShape(new i4,e)}function i7(t,e,i,s,a){let o=t.actualOptions.interactivity.modes.attract;if(o)for(let n of t.particles.quadTree.query(s,a)){let{dx:t,dy:s,distance:a}=S(n.position,e),r=o.speed*o.factor,l=_(w(o.easing)(1-a/i)*r,1,o.maxSpeed),c=v.create(a?t/a*l:r,a?s/a*l:r);n.position.subFrom(c)}}class i9{constructor(){this.distance=200,this.duration=.4,this.easing=iD.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}let st="attract";class se extends eq{constructor(t,e){super(e),this._engine=t,e.attract||(e.attract={particles:[]}),this.handleClickMode=t=>{let i=this.container.actualOptions.interactivity.modes.attract;if(i&&t===st){for(let t of(e.attract||(e.attract={particles:[]}),e.attract.clicking=!0,e.attract.count=0,e.attract.particles))this.isEnabled(t)&&t.velocity.setTo(t.
1initialVelocity);e.attract.particles=[],e.attract.finish=!1,setTimeout(()=>{e.destroyed||(e.attract||(e.attract={particles:[]}),e.attract.clicking=!1)},1e3*i.duration)}}}clear(){}init(){let t=this.container,e=t.actualOptions.interactivity.modes.attract;e&&(t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}interact(){let t=this.container,e=t.actualOptions,i=t.interactivity.status===n,s=e.interactivity.events,{enable:a,mode:o}=s.onHover,{enable:r,mode:l}=s.onClick;if(i&&a&&F(st,o)){var c,h;let t,e;c=this.container,h=t=>this.isEnabled(t),t=c.interactivity.mouse.position,(e=c.retina.attractModeDistance)&&!(e<0)&&t&&i7(c,t,e,new eC(t.x,t.y,e),t=>h(t))}else r&&F(st,l)&&function(t,e){t.attract||(t.attract={particles:[]});let{attract:i}=t;if(i.finish||(i.count||(i.count=0),i.count++,i.count===t.particles.count&&(i.finish=!0)),i.clicking){let i=t.interactivity.mouse.clickPosition,s=t.retina.attractModeDistance;if(!s||s<0||!i)return;i7(t,i,s,new eC(i.x,i.y,s),t=>e(t))}else!1===i.clicking&&(i.particles=[])}(this.container,t=>this.isEnabled(t))}isEnabled(t){let e=this.container,i=e.actualOptions,s=e.interactivity.mouse,a=(t?.interactivity??i.interactivity).events;if((!s.position||!a.onHover.enable)&&(!s.clickPosition||!a.onClick.enable))return!1;let o=a.onHover.mode,n=a.onClick.mode;return F(st,o)||F(st,n)}loadModeOptions(t,...e){for(let i of(t.attract||(t.attract=new i9),e))t.attract.load(i?.attract)}reset(){}}async function si(t,e=!0){await t.addInteractor("externalAttract",e=>Promise.resolve(new se(t,e)),e)}let ss=.5*Math.PI;function sa(t,e,i,s,a){for(let o of t.particles.quadTree.query(s,a))s instanceof eC?N(Q(o),{position:e,radius:i,mass:i**2*ss,velocity:v.origin,factor:v.origin}):s instanceof ez&&function(t,e){let i=W(t.getPosition(),t.getRadius()),s=t.options.bounce,a=L({pSide:{min:i.left,max:i.right},pOtherSide:{min:i.top,max:i.bottom},rectSide:{min:e.left,max:e.right},rectOtherSide:{min:e.top,max:e.bottom},velocity:t.velocity.x,factor:z(s.horizontal.value)});a.bounced&&(void 0!==a.velocity&&(t.velocity.x=a.velocity),void 0!==a.position&&(t.position.x=a.position));let o=L({pSide:{min:i.top,max:i.bottom},pOtherSide:{min:i.left,max:i.right},rectSide:{min:e.top,max:e.bottom},rectOtherSide:{min:e.left,max:e.right},velocity:t.velocity.y,factor:z(s.vertical.value)});o.bounced&&(void 0!==o.velocity&&(t.velocity.y=o.velocity),void 0!==o.position&&(t.position.y=o.position))}(o,W(e,i))}class so{constructor(){this.distance=200}load(t){t&&void 0!==t.distance&&(this.distance=t.distance)}}let sn="bounce";class sr extends eq{constructor(t){super(t)}clear(){}init(){let t=this.container,e=t.actualOptions.interactivity.modes.bounce;e&&(t.retina.bounceModeDistance=e.distance*t.retina.pixelRatio)}interact(){var t,e,i,s;let a=this.container,o=a.actualOptions.interactivity.events,r=a.interactivity.status===n,l=o.onHover.enable,c=o.onHover.mode,h=o.onDiv;if(r&&l&&F(sn,c)){let i,s,a;t=this.container,e=t=>this.isEnabled(t),i=t.retina.pixelRatio,s=t.interactivity.mouse.position,(a=t.retina.bounceModeDistance)&&!(a<0)&&s&&sa(t,s,a,new eC(s.x,s.y,a+10*i),e)}else i=this.container,s=t=>this.isEnabled(t),j(sn,h,(t,e)=>{var a;let o;return a=(t,e,a)=>sa(i,t,e,a,s),void((o=document.querySelectorAll(t)).length&&o.forEach(t=>{let s=i.retina.pixelRatio,o={x:(t.offsetLeft+.5*t.offsetWidth)*s,y:(t.offsetTop+.5*t.offsetHeight)*s},n=.5*t.offsetWidth*s,r=10*s,l=e.type===ib.circle?new eC(o.x,o.y,n+r):new ez(t.offsetLeft*s-r,t.offsetTop*s-r,t.offsetWidth*s+2*r,t.offsetHeight*s+2*r);a(o,n,l)}))})}isEnabled(t){let e=this.container,i=e.actualOptions,s=e.interactivity.mouse,a=(t?.interactivity??i.interactivity).events,o=a.onDiv;return!!s.position&&a.onHover.enable&&F(sn,a.onHover.mode)||V(sn,o)}loadModeOptions(t,...e){for(let i of(t.bounce||(t.bounce=new so),e))t.bounce.load(i?.bounce)}reset(){}}async function sl(t,e=!0){await t.addInteractor("externalBounce",t=>Promise.resolve(new sr(t)),e)}class sc{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(t){if(t){if(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.mix&&(this.mix=t.mix),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.color){let e=p(this.color)?void 0:this.color;this.color=X(t.color,t=>tz.create(e,t))}void 0!==t.size&&(this.size=t.size)}}}class sh extends sc{constructor(){super(),this.selectors=[]}load(t){super.load(t),t&&void 0!==t.selectors&&(this.selectors=t.selectors)}}class sd extends sc{load(t){super.load(t),t&&(this.divs=X(t.divs,t=>{let e=new sh;return e.load(t),e}))}}function su(t,e,i,s){return e>=i?_(t+(e-i)*s,t,e):e<i?_(t-(i-e)*s,e,t):void 0}(eW=iE||(iE={})).color="color",eW.opacity="opacity",eW.size="size";let sp="bubble";class sf extends eq{constructor(t){super(t),this._clickBubble=()=>{let t=this.container,e=t.actualOptions,i=t.interactivity.mouse.clickPosition,s=e.interactivity.modes.bubble;if(!s||!i)return;t.bubble||(t.bubble={});let a=t.retina.bubbleModeDistance;if(!a||a<0)return;let o=t.particles.quadTree.queryCircle(i,a,t=>this.isEnabled(t)),{bubble:n}=t;
1for(let e of o){if(!n.clicking)continue;e.bubble.inRange=!n.durationEnd;let o=T(e.getPosition(),i),r=(new Date().getTime()-(t.interactivity.mouse.clickTime??0))/1e3;r>s.duration&&(n.durationEnd=!0),r>2*s.duration&&(n.clicking=!1,n.durationEnd=!1);let l={bubbleObj:{optValue:t.retina.bubbleModeSize,value:e.bubble.radius},particlesObj:{optValue:P(e.options.size.value)*t.retina.pixelRatio,value:e.size.value},type:iE.size};this._process(e,o,r,l);let c={bubbleObj:{optValue:s.opacity,value:e.bubble.opacity},particlesObj:{optValue:P(e.options.opacity.value),value:e.opacity?.value??1},type:iE.opacity};this._process(e,o,r,c),!n.durationEnd&&o<=a?this._hoverBubbleColor(e,o):delete e.bubble.color}},this._hoverBubble=()=>{let t=this.container,e=t.interactivity.mouse.position,i=t.retina.bubbleModeDistance;if(i&&!(i<0)&&e)for(let s of t.particles.quadTree.queryCircle(e,i,t=>this.isEnabled(t))){s.bubble.inRange=!0;let a=T(s.getPosition(),e),r=1-a/i;a<=i?r>=0&&t.interactivity.status===n&&(this._hoverBubbleSize(s,r),this._hoverBubbleOpacity(s,r),this._hoverBubbleColor(s,r)):this.reset(s),t.interactivity.status===o&&this.reset(s)}},this._hoverBubbleColor=(t,e,i)=>{let s=this.container.actualOptions,a=i??s.interactivity.modes.bubble;if(a){if(!t.bubble.finalColor){let e=a.color;if(!e)return;let i=Y(e);t.bubble.finalColor=to(i)}if(t.bubble.finalColor)if(a.mix){t.bubble.color=void 0;let i=t.getFillColor();t.bubble.color=i?tn(td(i,t.bubble.finalColor,1-e,e)):t.bubble.finalColor}else t.bubble.color=t.bubble.finalColor}},this._hoverBubbleOpacity=(t,e,i)=>{let s=this.container.actualOptions,a=i?.opacity??s.interactivity.modes.bubble?.opacity;if(!a)return;let o=t.options.opacity.value,n=su(t.opacity?.value??1,a,P(o),e);void 0!==n&&(t.bubble.opacity=n)},this._hoverBubbleSize=(t,e,i)=>{let s=this.container,a=i?.size?i.size*s.retina.pixelRatio:s.retina.bubbleModeSize;if(void 0===a)return;let o=P(t.options.size.value)*s.retina.pixelRatio,n=su(t.size.value,a,o,e);void 0!==n&&(t.bubble.radius=n)},this._process=(t,e,i,s)=>{let a=this.container,o=s.bubbleObj.optValue,n=a.actualOptions.interactivity.modes.bubble;if(!n||void 0===o)return;let r=n.duration,l=a.retina.bubbleModeDistance,c=s.particlesObj.optValue,h=s.bubbleObj.value,d=s.particlesObj.value??0,u=s.type;if(l&&!(l<0)&&o!==c)if(a.bubble||(a.bubble={}),a.bubble.durationEnd)h&&(u===iE.size&&delete t.bubble.radius,u===iE.opacity&&delete t.bubble.opacity);else if(e<=l){if((h??d)!==o){let e=d-i*(d-o)/r;u===iE.size&&(t.bubble.radius=e),u===iE.opacity&&(t.bubble.opacity=e)}}else u===iE.size&&delete t.bubble.radius,u===iE.opacity&&delete t.bubble.opacity},this._singleSelectorHover=(t,e,i)=>{let s=this.container,a=document.querySelectorAll(e),o=s.actualOptions.interactivity.modes.bubble;o&&a.length&&a.forEach(e=>{let a=s.retina.pixelRatio,n={x:(e.offsetLeft+.5*e.offsetWidth)*a,y:(e.offsetTop+.5*e.offsetHeight)*a},r=.5*e.offsetWidth*a,l=i.type===ib.circle?new eC(n.x,n.y,r):new ez(e.offsetLeft*a,e.offsetTop*a,e.offsetWidth*a,e.offsetHeight*a);for(let i of s.particles.quadTree.query(l,t=>this.isEnabled(t))){if(!l.contains(i.getPosition()))continue;i.bubble.inRange=!0;let s=G(o.divs,e);i.bubble.div&&i.bubble.div===e||(this.clear(i,t,!0),i.bubble.div=e),this._hoverBubbleSize(i,1,s),this._hoverBubbleOpacity(i,1,s),this._hoverBubbleColor(i,1,s)}})},t.bubble||(t.bubble={}),this.handleClickMode=e=>{e===sp&&(t.bubble||(t.bubble={}),t.bubble.clicking=!0)}}clear(t,e,i){(!t.bubble.inRange||i)&&(delete t.bubble.div,delete t.bubble.opacity,delete t.bubble.radius,delete t.bubble.color)}init(){let t=this.container,e=t.actualOptions.interactivity.modes.bubble;e&&(t.retina.bubbleModeDistance=e.distance*t.retina.pixelRatio,void 0!==e.size&&(t.retina.bubbleModeSize=e.size*t.retina.pixelRatio))}interact(t){let e=this.container.actualOptions.interactivity.events,i=e.onHover,s=e.onClick,a=i.enable,o=i.mode,n=s.enable,r=s.mode,l=e.onDiv;a&&F(sp,o)?this._hoverBubble():n&&F(sp,r)?this._clickBubble():j(sp,l,(e,i)=>this._singleSelectorHover(t,e,i))}isEnabled(t){let e=this.container,i=e.actualOptions,s=e.interactivity.mouse,{onClick:a,onDiv:o,onHover:n}=(t?.interactivity??i.interactivity).events,r=V(sp,o);return!!(r||n.enable&&s.position||a.enable&&s.clickPosition)&&(F(sp,n.mode)||F(sp,a.mode)||r)}loadModeOptions(t,...e){for(let i of(t.bubble||(t.bubble=new sd),e))t.bubble.load(i?.bubble)}reset(t){t.bubble.inRange=!1}}async function sv(t,e=!0){await t.addInteractor("externalBubble",t=>Promise.resolve(new sf(t)),e)}class sm{constructor(){this.opacity=.5}load(t){t&&void 0!==t.opacity&&(this.opacity=t.opacity)}}class sy{constructor(){this.distance=80,this.links=new sm,this.radius=60}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links),void 0!==t.radius&&(this.radius=t.radius))}}class sg extends eq{constructor(t){super(t)}clear(){}init(){let t=this.container,e=t.actualOptions.interactivity.modes.connect;
1e&&(t.retina.connectModeDistance=e.distance*t.retina.pixelRatio,t.retina.connectModeRadius=e.radius*t.retina.pixelRatio)}interact(){let t=this.container;if(t.actualOptions.interactivity.events.onHover.enable&&"pointermove"===t.interactivity.status){let e=t.interactivity.mouse.position,{connectModeDistance:i,connectModeRadius:s}=t.retina;if(!i||i<0||!s||s<0||!e)return;let a=Math.abs(s),o=t.particles.quadTree.queryCircle(e,a,t=>this.isEnabled(t));o.forEach((e,s)=>{let a=e.getPosition();for(let n of o.slice(s+1)){let s=n.getPosition(),o=Math.abs(i),r=Math.abs(a.x-s.x),l=Math.abs(a.y-s.y);r<o&&l<o&&function(t,e,i){t.canvas.draw(s=>{var a;let o=function(t,e,i,s){let a=t.actualOptions.interactivity.modes.connect;if(a)return function(t,e,i,s){let a=Math.floor(i.getRadius()/e.getRadius()),o=e.getFillColor(),n=i.getFillColor();if(!o||!n)return;let r=e.getPosition(),l=i.getPosition(),c=td(o,n,e.getRadius(),i.getRadius()),h=t.createLinearGradient(r.x,r.y,l.x,l.y);return h.addColorStop(0,th(o,s)),h.addColorStop(_(a,0,1),tc(c,s)),h.addColorStop(1,th(n,s)),h}(e,i,s,a.links.opacity)}(t,s,e,i);if(!o)return;let n=e.getPosition(),r=i.getPosition();a=e.retina.linksWidth??0,tb(s,n,r),s.lineWidth=a,s.strokeStyle=o,s.stroke()})}(t,e,n)}})}}isEnabled(t){let e=this.container,i=e.interactivity.mouse,s=(t?.interactivity??e.actualOptions.interactivity).events;return!!(s.onHover.enable&&i.position)&&F("connect",s.onHover.mode)}loadModeOptions(t,...e){for(let i of(t.connect||(t.connect=new sy),e))t.connect.load(i?.connect)}reset(){}}async function sb(t,e=!0){await t.addInteractor("externalConnect",t=>Promise.resolve(new sg(t)),e)}class sw{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){t&&(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=tz.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}class sx{constructor(){this.distance=100,this.links=new sw}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}class s_ extends eq{constructor(t){super(t)}clear(){}init(){let t=this.container,e=t.actualOptions.interactivity.modes.grab;e&&(t.retina.grabModeDistance=e.distance*t.retina.pixelRatio)}interact(){let t=this.container,e=t.actualOptions.interactivity;if(!e.modes.grab||!e.events.onHover.enable||t.interactivity.status!==n)return;let i=t.interactivity.mouse.position;if(!i)return;let s=t.retina.grabModeDistance;if(s&&!(s<0))for(let a of t.particles.quadTree.queryCircle(i,s,t=>this.isEnabled(t))){let o=T(a.getPosition(),i);if(o>s)continue;let n=e.modes.grab.links,r=n.opacity,l=r-o*r/s;if(l<=0)continue;let c=n.color??a.options.links?.color;if(!t.particles.grabLineColor&&c){let i=e.modes.grab.links;t.particles.grabLineColor=tp(c,i.blink,i.consent)}let h=tu(a,void 0,t.particles.grabLineColor);h&&function(t,e,i,s,a){t.canvas.draw(t=>{var o;let n=e.getPosition();o=e.retina.linksWidth??0,tb(t,n,a),t.strokeStyle=tc(i,s),t.lineWidth=o,t.stroke()})}(t,a,h,l,i)}}isEnabled(t){let e=this.container,i=e.interactivity.mouse,s=(t?.interactivity??e.actualOptions.interactivity).events;return s.onHover.enable&&!!i.position&&F("grab",s.onHover.mode)}loadModeOptions(t,...e){for(let i of(t.grab||(t.grab=new sx),e))t.grab.load(i?.grab)}reset(){}}async function sk(t,e=!0){await t.addInteractor("externalGrab",t=>Promise.resolve(new s_(t)),e)}class sC extends eq{constructor(t){super(t),this.handleClickMode=t=>{if("pause"!==t)return;let e=this.container;e.animationStatus?e.pause():e.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}async function sz(t,e=!0){await t.addInteractor("externalPause",t=>Promise.resolve(new sC(t)),e)}class sM{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(t){if(!t)return;void 0!==t.default&&(this.default=t.default),void 0!==t.groups&&(this.groups=t.groups.map(t=>t)),this.groups.length||(this.default=!0);let e=t.quantity;void 0!==e&&(this.quantity=O(e))}}class sP extends eq{constructor(t){super(t),this.handleClickMode=t=>{if("push"!==t)return;let e=this.container,i=e.actualOptions.interactivity.modes.push;if(!i)return;let s=z(i.quantity);if(s<=0)return;let a=H([void 0,...i.groups]),o=void 0!==a?e.actualOptions.particles.groups[a]:void 0;e.particles.push(s,e.interactivity.mouse,o,a)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(t,...e){for(let i of(t.push||(t.push=new sM),e))t.push.load(i?.push)}reset(){}}async function sO(t,e=!0){await t.addInteractor("externalPush",t=>Promise.resolve(new sP(t)),e)}class sS{constructor(){this.quantity=2}load(t){if(!t)return;let e=t.quantity;void 0!==e&&(this.quantity=O(e))}}class sT extends eq{constructor(t){super(t),this.handleClickMode=t=>{let e=this.container,i=e.actualOptions;if(!i.interactivity.modes.remove||"remove"!==t)return;let s=z(i.interactivity.modes.remove.quantity);e.particles.removeQuantity(s)}}clear(){}init(){}interact(){}isEnabled(){return!0}
1loadModeOptions(t,...e){for(let i of(t.remove||(t.remove=new sS),e))t.remove.load(i?.remove)}reset(){}}async function sR(t,e=!0){await t.addInteractor("externalRemove",t=>Promise.resolve(new sT(t)),e)}class sD{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=iD.easeOutQuad}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed))}}class sE extends sD{constructor(){super(),this.selectors=[]}load(t){super.load(t),t&&void 0!==t.selectors&&(this.selectors=t.selectors)}}class sI extends sD{load(t){super.load(t),t&&(this.divs=X(t.divs,t=>{let e=new sE;return e.load(t),e}))}}let sL="repulse";class sB extends eq{constructor(t,e){super(e),this._clickRepulse=()=>{let t=this.container,e=t.actualOptions.interactivity.modes.repulse;if(!e)return;let i=t.repulse??{particles:[]};if(i.finish||(i.count||(i.count=0),i.count++,i.count===t.particles.count&&(i.finish=!0)),i.clicking){let s=t.retina.repulseModeDistance;if(!s||s<0)return;let a=Math.pow(s/6,3),o=t.interactivity.mouse.clickPosition;if(void 0===o)return;let n=new eC(o.x,o.y,a);for(let s of t.particles.quadTree.query(n,t=>this.isEnabled(t))){let{dx:t,dy:n,distance:r}=S(o,s.position),l=r**2,c=-a*e.speed/l;if(l<=a){i.particles.push(s);let e=v.create(t,n);e.length=c,s.velocity.setTo(e)}}}else if(!1===i.clicking){for(let t of i.particles)t.velocity.setTo(t.initialVelocity);i.particles=[]}},this._hoverRepulse=()=>{let t=this.container,e=t.interactivity.mouse.position,i=t.retina.repulseModeDistance;i&&!(i<0)&&e&&this._processRepulse(e,i,new eC(e.x,e.y,i))},this._processRepulse=(t,e,i,s)=>{let a=this.container,o=a.particles.quadTree.query(i,t=>this.isEnabled(t)),n=a.actualOptions.interactivity.modes.repulse;if(!n)return;let{easing:r,speed:l,factor:c,maxSpeed:h}=n,d=w(r),u=(s?.speed??l)*c;for(let i of o){let{dx:s,dy:a,distance:o}=S(i.position,t),n=_(d(1-o/e)*u,0,h),r=v.create(o?s/o*n:u,o?a/o*n:u);i.position.addTo(r)}},this._singleSelectorRepulse=(t,e)=>{let i=this.container,s=i.actualOptions.interactivity.modes.repulse;if(!s)return;let a=document.querySelectorAll(t);a.length&&a.forEach(t=>{let a=i.retina.pixelRatio,o={x:(t.offsetLeft+.5*t.offsetWidth)*a,y:(t.offsetTop+.5*t.offsetHeight)*a},n=.5*t.offsetWidth*a,r=e.type===ib.circle?new eC(o.x,o.y,n):new ez(t.offsetLeft*a,t.offsetTop*a,t.offsetWidth*a,t.offsetHeight*a),l=G(s.divs,t);this._processRepulse(o,n,r,l)})},this._engine=t,e.repulse||(e.repulse={particles:[]}),this.handleClickMode=t=>{let i=this.container.actualOptions.interactivity.modes.repulse;if(!i||t!==sL)return;e.repulse||(e.repulse={particles:[]});let s=e.repulse;for(let t of(s.clicking=!0,s.count=0,e.repulse.particles))this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);s.particles=[],s.finish=!1,setTimeout(()=>{e.destroyed||(s.clicking=!1)},1e3*i.duration)}}clear(){}init(){let t=this.container,e=t.actualOptions.interactivity.modes.repulse;e&&(t.retina.repulseModeDistance=e.distance*t.retina.pixelRatio)}interact(){let t=this.container,e=t.actualOptions,i=t.interactivity.status===n,s=e.interactivity.events,a=s.onHover,o=a.enable,r=a.mode,l=s.onClick,c=l.enable,h=l.mode,d=s.onDiv;i&&o&&F(sL,r)?this._hoverRepulse():c&&F(sL,h)?this._clickRepulse():j(sL,d,(t,e)=>this._singleSelectorRepulse(t,e))}isEnabled(t){let e=this.container,i=e.actualOptions,s=e.interactivity.mouse,a=(t?.interactivity??i.interactivity).events,o=a.onDiv,n=a.onHover,r=a.onClick,l=V(sL,o);if(!(l||n.enable&&s.position||r.enable&&s.clickPosition))return!1;let c=n.mode,h=r.mode;return F(sL,c)||F(sL,h)||l}loadModeOptions(t,...e){for(let i of(t.repulse||(t.repulse=new sI),e))t.repulse.load(i?.repulse)}reset(){}}async function sA(t,e=!0){await t.addInteractor("externalRepulse",e=>Promise.resolve(new sB(t,e)),e)}class sF{constructor(){this.factor=3,this.radius=200}load(t){t&&(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.radius&&(this.radius=t.radius))}}class sq extends eq{constructor(t){super(t)}clear(t,e,i){(!t.slow.inRange||i)&&(t.slow.factor=1)}init(){let t=this.container,e=t.actualOptions.interactivity.modes.slow;e&&(t.retina.slowModeRadius=e.radius*t.retina.pixelRatio)}interact(){}isEnabled(t){let e=this.container,i=e.interactivity.mouse,s=(t?.interactivity??e.actualOptions.interactivity).events;return s.onHover.enable&&!!i.position&&F("slow",s.onHover.mode)}loadModeOptions(t,...e){for(let i of(t.slow||(t.slow=new sF),e))t.slow.load(i?.slow)}reset(t){t.slow.inRange=!1;let e=this.container,i=e.actualOptions,s=e.interactivity.mouse.position,a=e.retina.slowModeRadius,o=i.interactivity.modes.slow;if(!o||!a||a<0||!s)return;let n=T(s,t.getPosition()),r=o.factor,{slow:l}=t;n>a||(l.inRange=!0,l.factor=n/a/r)}}async function sH(t,e=!0){await t.addInteractor("externalSlow",t=>Promise.resolve(new sq(t)),e)}let sU=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function sW(t){return new Promise(e=>{t.loading=!0;let i=new Image;t.element=i,i.addEventListener("load",()=>{t.loading=!1,e()}),i.addEventListener("error",()=>{t.element=void 0,t.error=!0,t.loading=!1,I.error(`${l} loading image: ${t.source}`),e()}),i.src=t.source})}async function s$(t){if("svg"!==t.type)return void await sW(t);t.loading=!0;let e=await fetch(t.source);e.ok?t.svgData=await e.text():(I.error(`${l} Image not found`),t.error=!0),t.loading=!1}let sV=[0,4,2,1],sj=[8,8,4,2];class sG{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){let e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce((t,e)=>t+String.fromCharCode(e),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let i=e;--i>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e)return t}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let i=0;0!==t;i+=t+1,t=this.data[this.pos+i])e+=t;let i=new Uint8Array(e);t=this.data[this.pos++];for(let e=0;0!==t;t=this.data[this.pos++])for(let s=t;--s>=0;i[e++]=this.data[this.pos++]);return i}skipSubBlocks(){for(;0!==this.data[this.pos];this.pos+=this.data[this.pos]+1);this.pos++}}(e$=iI||(iI={}))[e$.Replace=0]="Replace",e$[e$.Combine=1]="Combine",e$[e$.RestoreBackgroun
1d=2]="RestoreBackground",e$[e$.RestorePrevious=3]="RestorePrevious",e$[e$.UndefinedA=4]="UndefinedA",e$[e$.UndefinedB=5]="UndefinedB",e$[e$.UndefinedC=6]="UndefinedC",e$[e$.UndefinedD=7]="UndefinedD",(eV=iL||(iL={}))[eV.Extension=33]="Extension",eV[eV.ApplicationExtension=255]="ApplicationExtension",eV[eV.GraphicsControlExtension=249]="GraphicsControlExtension",eV[eV.PlainTextExtension=1]="PlainTextExtension",eV[eV.CommentExtension=254]="CommentExtension",eV[eV.Image=44]="Image",eV[eV.EndOfFile=59]="EndOfFile";function sQ(t,e){let i=[];for(let s=0;s<e;s++)i.push({r:t.data[t.pos],g:t.data[t.pos+1],b:t.data[t.pos+2]}),t.pos+=3;return i}async function sN(t,e,i,s,a,o){let n=e.frames[s(!0)];n.left=t.nextTwoBytes(),n.top=t.nextTwoBytes(),n.width=t.nextTwoBytes(),n.height=t.nextTwoBytes();let r=t.nextByte(),l=(128&r)==128;n.sortFlag=(32&r)==32,n.reserved=(24&r)>>>3,l&&(n.localColorTable=sQ(t,1<<(7&r)+1));let c=t=>{let{r:s,g:o,b:r}=(l?n.localColorTable:e.globalColorTable)[t];return t!==a(null)?{r:s,g:o,b:r,a:255}:{r:s,g:o,b:r,a:i?~~((s+o+r)/3):0}},h=(()=>{try{return new ImageData(n.width,n.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==h)throw EvalError("GIF frame size is to large");let d=t.nextByte(),u=t.readSubBlocksBin(),p=1<<d,f=(t,e)=>{let i=t>>>3,s=7&t;return(u[i]+(u[i+1]<<8)+(u[i+2]<<16)&(1<<e)-1<<s)>>>s};if((64&r)==64){for(let i=0,a=d+1,r=0,l=[[0]],u=0;u<4;u++){if(sV[u]<n.height){let t=0,e=0,s=!1;for(;!s;){let o=i;if(i=f(r,a),r+=a+1,i===p){a=d+1,l.length=p+2;for(let t=0;t<l.length;t++)l[t]=t<p?[t]:[]}else{for(let s of(i>=l.length?l.push(l[o].concat(l[o][0])):o!==p&&l.push(l[o].concat(l[i][0])),l[i])){let{r:i,g:a,b:o,a:r}=c(s);h.data.set([i,a,o,r],sV[u]*n.width+sj[u]*e+t%(4*n.width)),t+=4}l.length===1<<a&&a<12&&a++}t===4*n.width*(e+1)&&(e++,sV[u]+sj[u]*e>=n.height&&(s=!0))}}o?.(t.pos/(t.data.length-1),s(!1)+1,h,{x:n.left,y:n.top},{width:e.width,height:e.height})}n.image=h,n.bitmap=await createImageBitmap(h)}else{let i=0,a=d+1,r=0,l=-4,u=!1,v=[[0]];for(;!u;){let t=i;if(i=f(r,a),r+=a,i===p){a=d+1,v.length=p+2;for(let t=0;t<v.length;t++)v[t]=t<p?[t]:[]}else{if(i===p+1){u=!0;break}for(let e of(i>=v.length?v.push(v[t].concat(v[t][0])):t!==p&&v.push(v[t].concat(v[i][0])),v[i])){let{r:t,g:i,b:s,a}=c(e);h.data.set([t,i,s,a],l+=4)}v.length>=1<<a&&a<12&&a++}}n.image=h,n.bitmap=await createImageBitmap(h),o?.((t.pos+1)/t.data.length,s(!1)+1,n.image,{x:n.left,y:n.top},{width:e.width,height:e.height})}}async function sX(t,e,i,s,a,o){switch(t.nextByte()){case iL.EndOfFile:return!0;case iL.Image:await sN(t,e,i,s,a,o);break;case iL.Extension:switch(t.nextByte()){case iL.GraphicsControlExtension:{let i=e.frames[s(!1)];t.pos++;let o=t.nextByte();i.GCreserved=(224&o)>>>5,i.disposalMethod=(28&o)>>>2,i.userInputDelayFlag=(2&o)==2,i.delayTime=10*t.nextTwoBytes();let n=t.nextByte();(1&o)==1&&a(n),t.pos++;break}case iL.ApplicationExtension:{t.pos++;let i={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(i);break}case iL.CommentExtension:e.comments.push([s(!1),t.readSubBlocks()]);break;case iL.PlainTextExtension:if(0===e.globalColorTable.length)throw EvalError("plain text extension without global color table");t.pos++,e.frames[s(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}break;default:throw EvalError("undefined block found")}return!1}async function sY(t,e,i){i||(i=!1);let s=await fetch(t);if(!s.ok&&404===s.status)throw EvalError("file not found");let a=await s.arrayBuffer(),o={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},n=new sG(new Uint8ClampedArray(a));if("GIF89a"!==n.getString(6))throw Error("not a supported GIF file");o.width=n.nextTwoBytes(),o.height=n.nextTwoBytes();let r=n.nextByte(),l=(128&r)==128;o.colorRes=(112&r)>>>4,o.sortFlag=(8&r)==8;let c=n.nextByte();o.pixelAspectRatio=n.nextByte(),0!==o.pixelAspectRatio&&(o.pixelAspectRatio=(o.pixelAspectRatio+15)/64),l&&(o.globalColorTable=sQ(n,1<<(7&r)+1));let h=(()=>{try{return new ImageData(o.width,o.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==h)throw Error("GIF frame size is to large");let{r:d,g:u,b:p}=o.globalColorTable[c];h.data.set(l?[d,u,p,255]:[0,0,0,0]);for(let t=4;t<h.data.length;t*=2)h.data.copyWithin(t,0,t);o.backgroundImage=h;let f=-1,v=!0,m=-1,y=t=>(t&&(v=!0),f),g=t=>(null!=t&&(m=t),m);try{do v&&(o.frames.push({left:0,top:0,width:0,height:0,disposalMethod:iI.Replace,image:new ImageData(1,1,{colorSpace:"srgb"}
1),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),f++,m=-1,v=!1);while(!await sX(n,o,i,y,g,e))for(let t of(o.frames.length--,o.frames)){if(t.userInputDelayFlag&&0===t.delayTime){o.totalTime=1/0;break}o.totalTime+=t.delayTime}return o}catch(t){if(t instanceof EvalError)throw Error(`error while parsing frame ${f} "${t.message}"`);throw t}}async function sZ(t){if("gif"!==t.type)return void await sW(t);t.loading=!0;try{t.gifData=await sY(t.source),t.gifLoopCount=function(t){for(let e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData)??0,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}class sK{constructor(t){this.validTypes=["image","images"],this.loadImageShape=async t=>{if(!this._engine.loadImage)throw Error(`${l} image shape not initialized`);await this._engine.loadImage({gif:t.gif,name:t.name,replaceColor:t.replaceColor??!1,src:t.src})},this._engine=t}addImage(t){this._engine.images||(this._engine.images=[]),this._engine.images.push(t)}draw(t){let{context:e,radius:i,particle:s,opacity:a}=t,o=s.image,n=o?.element;if(o){if(e.globalAlpha=a,o.gif&&o.gifData)!function(t){let{context:e,radius:i,particle:s,delta:a}=t,o=s.image;if(!o?.gifData||!o.gif)return;let n=new OffscreenCanvas(o.gifData.width,o.gifData.height),r=n.getContext("2d");if(!r)throw Error("could not create offscreen canvas context");r.imageSmoothingQuality="low",r.imageSmoothingEnabled=!1,r.clearRect(0,0,n.width,n.height),void 0===s.gifLoopCount&&(s.gifLoopCount=o.gifLoopCount??0);let l=s.gifFrame??0,c={x:-(.5*o.gifData.width),y:-(.5*o.gifData.height)},h=o.gifData.frames[l];if(void 0===s.gifTime&&(s.gifTime=0),h.bitmap){switch(e.scale(i/o.gifData.width,i/o.gifData.height),h.disposalMethod){case iI.UndefinedA:case iI.UndefinedB:case iI.UndefinedC:case iI.UndefinedD:case iI.Replace:r.drawImage(h.bitmap,h.left,h.top),e.drawImage(n,c.x,c.y),r.clearRect(0,0,n.width,n.height);break;case iI.Combine:r.drawImage(h.bitmap,h.left,h.top),e.drawImage(n,c.x,c.y);break;
1case iI.RestoreBackground:r.drawImage(h.bitmap,h.left,h.top),e.drawImage(n,c.x,c.y),r.clearRect(0,0,n.width,n.height),o.gifData.globalColorTable.length?r.putImageData(o.gifData.backgroundImage,c.x,c.y):r.putImageData(o.gifData.frames[0].image,c.x+h.left,c.y+h.top);break;case iI.RestorePrevious:{let t=r.getImageData(0,0,n.width,n.height);r.drawImage(h.bitmap,h.left,h.top),e.drawImage(n,c.x,c.y),r.clearRect(0,0,n.width,n.height),r.putImageData(t,0,0)}}if(s.gifTime+=a.value,s.gifTime>h.delayTime){if(s.gifTime-=h.delayTime,++l>=o.gifData.frames.length){if(--s.gifLoopCount<=0)return;l=0,r.clearRect(0,0,n.width,n.height)}s.gifFrame=l}e.scale(o.gifData.width/i,o.gifData.height/i)}}(t);else if(n){let t=o.ratio,s={x:-i,y:-i},a=2*i;e.drawImage(n,s.x,s.y,a,a/t)}e.globalAlpha=1}}getSidesCount(){return 12}async init(t){let e=t.actualOptions;if(e.preload&&this._engine.loadImage)for(let t of e.preload)await this._engine.loadImage(t)}loadShape(t){if("image"!==t.shape&&"images"!==t.shape)return;this._engine.images||(this._engine.images=[]);let e=t.shapeData;!e||this._engine.images.find(t=>t.name===e.name||t.source===e.src)||this.loadImageShape(e).then(()=>{this.loadShape(t)})}particleInit(t,e){if("image"!==e.shape&&"images"!==e.shape)return;this._engine.images||(this._engine.images=[]);let i=this._engine.images,s=e.shapeData;if(!s)return;let a=e.getFillColor(),o=i.find(t=>t.name===s.name||t.source===s.src);if(!o)return;let n=s.replaceColor??o.replaceColor;o.loading?setTimeout(()=>{this.particleInit(t,e)}):(async()=>{let t;if(o.svgData&&a){let i,n;t=await (i=function(t,e,i){let{svgData:s}=t;if(!s)return"";let a=th(e,i);if(s.includes("fill"))return s.replace(sU,()=>a);let o=s.indexOf(">");return`${s.substring(0,o)} fill="${a}"${s.substring(o)}`}(o,a,e.opacity?.value??1),n={color:a,gif:s.gif,data:{...o,svgData:i},loaded:!1,ratio:s.width/s.height,replaceColor:s.replaceColor,source:s.src},new Promise(t=>{let e=new Blob([i],{type:"image/svg+xml"}),s=URL||window.URL||window.webkitURL||window,a=s.createObjectURL(e),r=new Image;r.addEventListener("load",()=>{n.loaded=!0,n.element=r,t(n),s.revokeObjectURL(a)});let l=async()=>{s.revokeObjectURL(a);let e={...o,error:!1,loading:!0};await sW(e),n.loaded=!0,n.element=e.element,t(n)};r.addEventListener("error",()=>void l()),r.src=a}))}else t={color:a,data:o,element:o.element,gif:o.gif,gifData:o.gifData,gifLoopCount:o.gifLoopCount,loaded:!0,ratio:s.width&&s.height?s.width/s.height:o.ratio??1,replaceColor:n,source:s.src};t.ratio||(t.ratio=1);let i=s.fill??e.shapeFill,r=s.close??e.shapeClose;e.image=t,e.shapeFill=i,e.shapeClose=r})()}}class sJ{constructor(){this.src="",this.gif=!1}load(t){t&&(void 0!==t.gif&&(this.gif=t.gif),void 0!==t.height&&(this.height=t.height),void 0!==t.name&&(this.name=t.name),void 0!==t.replaceColor&&(this.replaceColor=t.replaceColor),void 0!==t.src&&(this.src=t.src),void 0!==t.width&&(this.width=t.width))}}class s0{constructor(t){this.id="imagePreloader",this._engine=t}async getPlugin(){return await Promise.resolve(),{}}loadOptions(t,e){if(!e?.preload)return;t.preload||(t.preload=[]);let i=t.preload;for(let t of e.preload){let e=i.find(e=>e.name===t.name||e.src===t.src);if(e)e.load(t);else{let e=new sJ;e.load(t),i.push(e)}}}needsPlugin(){return!0}}async function s1(t,e=!0){t.loadImage||(t.loadImage=async e=>{if(!e.name&&!e.src)throw Error(`${l} no image source provided`);if(t.images||(t.images=[]),!t.images.find(t=>t.name===e.name||t.source===e.src))try{let i,s={gif:e.gif??!1,name:e.name??e.src,source:e.src,type:e.src.substring(e.src.length-3),error:!1,loading:!0,replaceColor:e.replaceColor,ratio:e.width&&e.height?e.width/e.height:void 0};t.images.push(s),i=e.gif?sZ:e.replaceColor?s$:sW,await i(s)}catch{throw Error(`${l} ${e.name??e.src} not found`)}});let i=new s0(t);await t.addPlugin(i,e),await t.addShape(new sK(t),e)}class s2 extends tX{constructor(){super(),this.sync=!1}load(t){t&&(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class s5 extends tX{constructor(){super(),this.sync=!1}load(t){t&&(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class s3{constructor(){this.count=0,this.delay=new s2,this.duration=new s5}load(t){t&&(void 0!==t.count&&(this.count=t.count),this.delay.load(t.delay),this.duration.load(t.duration))}}class s6{constructor(t){this.container=t}init(t){let e=this.container,i=t.options.life;i&&(t.life={delay:e.retina.reduceFactor?z(i.delay.value)*(i.delay.sync?1:x())/e.retina.reduceFactor*1e3:0,delayTime:0,duration:e.retina.reduceFactor?z(i.duration.value)*(i.duration.sync?1:x())/e.retina.reduceFactor*1e3:0,time:0,count:i.count},t.life.duration<=0&&(t.life.duration=-1),t.life.count<=0&&(t.life.count=-1),t.life&&(t.spawning=t.life.delay>0))}isEnabled(t){return!t.destroyed}loadOptions(t,...e){for(let i of(t.life||(t.life=new s3),e))t.life.load(i?.life)}
1update(t,e){this.isEnabled(t)&&t.life&&function(t,e,i){if(!t.life)return;let s=t.life,a=!1;if(t.spawning){if(s.delayTime+=e.value,!(s.delayTime>=t.life.delay))return;a=!0,t.spawning=!1,s.delayTime=0,s.time=0}if(-1===s.duration||t.spawning||(a?s.time=0:s.time+=e.value,s.time<s.duration))return;if(s.time=0,t.life.count>0&&t.life.count--,0===t.life.count)return t.destroy();let o=O(0,i.width),n=O(0,i.width);t.position.x=C(o),t.position.y=C(n),t.spawning=!0,s.delayTime=0,s.time=0,t.reset();let r=t.options.life;r&&(s.delay=1e3*z(r.delay.value),s.duration=1e3*z(r.duration.value))}(t,e,this.container.canvas.size)}}async function s4(t,e=!0){await t.addParticleUpdater("life",async t=>Promise.resolve(new s6(t)),e)}class s8{constructor(){this.validTypes=["line"]}draw(t){!function(t){let{context:e,particle:i,radius:s}=t,a=i.shapeData;e.moveTo(-s,0),e.lineTo(s,0),e.lineCap=a?.cap??"butt"}(t)}getSidesCount(){return 1}}async function s7(t,e=!0){await t.addShape(new s8,e)}class s9{init(){}isEnabled(t){return!B()&&!t.destroyed&&t.container.actualOptions.interactivity.events.onHover.parallax.enable}move(t){let e=t.container,i=e.actualOptions.interactivity.events.onHover.parallax;if(B()||!i.enable)return;let s=i.force,a=e.interactivity.mouse.position;if(!a)return;let o=e.canvas.size,n={x:.5*o.width,y:.5*o.height},r=i.smooth,l=t.getRadius()/s,c={x:(a.x-n.x)*l,y:(a.y-n.y)*l},{offset:h}=t;h.x+=(c.x-h.x)/r,h.y+=(c.y-h.y)/r}}async function at(t,e=!0){await t.addMover("parallax",()=>Promise.resolve(new s9),e)}class ae extends eH{constructor(t){super(t)}clear(){}init(){}interact(t){let e=this.container;void 0===t.attractDistance&&(t.attractDistance=z(t.options.move.attract.distance)*e.retina.pixelRatio);let i=t.attractDistance,s=t.getPosition();for(let a of e.particles.quadTree.queryCircle(s,i)){if(t===a||!a.options.move.attract.enable||a.destroyed||a.spawning)continue;let{dx:e,dy:i}=S(s,a.getPosition()),o=t.options.move.attract.rotate,n=e/(1e3*o.x),r=i/(1e3*o.y),l=a.size.value/t.size.value,c=1/l;t.velocity.x-=n*l,t.velocity.y-=r*l,a.velocity.x+=n*c,a.velocity.y+=r*c}}isEnabled(t){return t.options.move.attract.enable}reset(){}}async function ai(t,e=!0){await t.addInteractor("particlesAttract",t=>Promise.resolve(new ae(t)),e)}function as(t,e,i,s,a,o){let n=_(t.options.collisions.absorb.speed*a.factor/10,0,s);t.size.value+=.5*n,i.size.value-=n,s<=o&&(i.size.value=0,i.destroy())}let aa=t=>{void 0===t.collisionMaxSpeed&&(t.collisionMaxSpeed=z(t.options.collisions.maxSpeed)),t.velocity.length>t.collisionMaxSpeed&&(t.velocity.length=t.collisionMaxSpeed)};function ao(t,e){N(Q(t),Q(e)),aa(t),aa(e)}class an extends eH{constructor(t){super(t)}clear(){}init(){}interact(t,e){if(t.destroyed||t.spawning)return;let i=this.container,s=t.getPosition(),a=t.getRadius();for(let o of i.particles.quadTree.queryCircle(s,2*a)){if(t===o||!o.options.collisions.enable||t.options.collisions.mode!==o.options.collisions.mode||o.destroyed||o.spawning)continue;let n=o.getPosition(),r=o.getRadius();if(!(Math.abs(Math.round(s.z)-Math.round(n.z))>a+r))T(s,n)>a+r||function(t,e,i,s){switch(t.options.collisions.mode){case i_.absorb:let a,o;a=t.getRadius(),o=e.getRadius(),void 0===a&&void 0!==o?t.destroy():void 0!==a&&void 0===o?e.destroy():void 0!==a&&void 0!==o&&(a>=o?as(t,a,e,o,i,s):as(e,o,t,a,i,s));break;case i_.bounce:ao(t,e);break;case i_.destroy:t.unbreakable||e.unbreakable||ao(t,e),void 0===t.getRadius()&&void 0!==e.getRadius()?t.destroy():void 0!==t.getRadius()&&void 0===e.getRadius()?e.destroy():void 0!==t.getRadius()&&void 0!==e.getRadius()&&(t.getRadius()>=e.getRadius()?e:t).destroy()}}(t,o,e,i.retina.pixelRatio)}}isEnabled(t){return t.options.collisions.enable}reset(){}}async function ar(t,e=!0){await t.addInteractor("particlesCollisions",t=>Promise.resolve(new an(t)),e)}class al extends eC{constructor(t,e,i,s){super(t,e,i),this.canvasSize=s,this.canvasSize={...s}}contains(t){let{width:e,height:i}=this.canvasSize,{x:s,y:a}=t;return super.contains(t)||super.contains({x:s-e,y:a})||super.contains({x:s-e,y:a-i})||super.contains({x:s,y:a-i})}intersects(t){if(super.intersects(t))return!0;let e={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==t.radius){let i=new eC(e.x,e.y,2*t.radius);return super.intersects(i)}if(void 0!==t.size){let i=new ez(e.x,e.y,2*t.size.width,2*t.size.height);return super.intersects(i)}return!1}}class ac{constructor(){this.blur=5,this.color=new tz,this.color.value="#000",this.enable=!1}load(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=tz.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable))}}class ah{constructor(){this.enable=!1,this.frequency=1}load(t){t&&(void 0!==t.color&&(this.color=tz.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity))}}class ad{constructor(){this.blink=!1,this.color=new tz,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new ac,this.triangles=new ah,this.width=1,this.warp=!1}load(t){t&&(void 0!==t.id&&(this.id=t.id),void 0!==t.blink&&(this.blink=t.blink),this.color=tz.create(this.color,t.color),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.distance&&(this.distance=t.distance),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity),this.shadow.load(t.shadow),this.triangles.load(t.triangles),void 0!==t.width&&(this.width=t.width),void 0!==t.warp&&(this.warp=t.warp))}}class au extends eH{constructor(t){super(t),this._setColor=t=>{if(!t.options.links)return;let e=this.linkContainer,i=t.options.links,s=void 0===i.id?e.particles.linksColor:e.particles.linksColors.get(i.id);s||(s=tp(i.color,i.blink,i.consent),void 0===i.id?e.particles.linksColor=s:e.particles.linksColors.set(i.id,s))},this.linkContainer=t}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}interact(t){let e;if(!t.options.links)return;t.links=[];let i=t.getPosition(),s=this.container,a=s.canvas.size;if(i.x<0||i.y<0||i.x>a.width||i.y>a.height)return;let o=t.options.links,n=o.opacity,r=t.retina.linksDistance??0,l=o.warp;for(let c of(e=l?new al(i.x,i.y,r,a):new eC(i.x,i.y,r),s.particles.quadTree.query(e))){let e=c.options.links;
1if(t===c||!e?.enable||o.id!==e.id||c.spawning||c.destroyed||!c.links||t.links.some(t=>t.destination===c)||c.links.some(e=>e.destination===t))continue;let s=c.getPosition();if(s.x<0||s.y<0||s.x>a.width||s.y>a.height)continue;let h=function(t,e,i,s,a){let{dx:o,dy:n,distance:r}=S(t,e);if(!a||r<=i)return r;let l={x:Math.abs(o),y:Math.abs(n)},c={x:Math.min(l.x,s.width-l.x),y:Math.min(l.y,s.height-l.y)};return Math.sqrt(c.x**2+c.y**2)}(i,s,r,a,l&&e.warp);if(h>r)continue;let d=(1-h/r)*n;this._setColor(t),t.links.push({destination:c,opacity:d})}}isEnabled(t){return!!t.options.links?.enable}loadParticlesOptions(t,...e){for(let i of(t.links||(t.links=new ad),e))t.links.load(i?.links)}reset(){}}async function ap(t,e=!0){await t.addInteractor("particlesLinks",async t=>Promise.resolve(new au(t)),e)}function af(t,e){var i;let s=((i=t.map(t=>t.id)).sort((t,e)=>t-e),i.join("_")),a=e.get(s);return void 0===a&&(a=x(),e.set(s,a)),a}class av{constructor(t){this.container=t,this._drawLinkLine=(t,e)=>{let i=t.options.links;if(!i?.enable)return;let s=this.container,a=s.actualOptions,o=e.destination,n=t.getPosition(),r=o.getPosition(),l=e.opacity;s.canvas.draw(e=>{let c,h=t.options.twinkle?.lines;if(h?.enable){let t=h.frequency,e=ta(h.color);x()<t&&e&&(c=e,l=z(h.opacity))}if(c||(c=tu(t,o,void 0!==i.id?s.particles.linksColors.get(i.id):s.particles.linksColor)),!c)return;let d=t.retina.linksWidth??0,u=t.retina.linksDistance??0,{backgroundMask:p}=a;!function(t){let e=!1,{begin:i,end:s,maxDistance:a,context:o,canvasSize:n,width:r,backgroundMask:l,colorLine:c,opacity:h,links:d}=t;if(T(i,s)<=a)tb(o,i,s),e=!0;else if(d.warp){let t,r,l=S(i,{x:s.x-n.width,y:s.y});if(l.distance<=a){let e=i.y-l.dy/l.dx*i.x;t={x:0,y:e},r={x:n.width,y:e}}else{let e=S(i,{x:s.x,y:s.y-n.height});if(e.distance<=a){let s=-(i.y-e.dy/e.dx*i.x)/(e.dy/e.dx);t={x:s,y:0},r={x:s,y:n.height}}else{let e=S(i,{x:s.x-n.width,y:s.y-n.height});if(e.distance<=a){let s=i.y-e.dy/e.dx*i.x;r={x:(t={x:-s/(e.dy/e.dx),y:s}).x+n.width,y:t.y+n.height}}}}t&&r&&(tb(o,i,t),tb(o,s,r),e=!0)}if(!e)return;o.lineWidth=r,l.enable&&(o.globalCompositeOperation=l.composite),o.strokeStyle=tc(c,h);let{shadow:u}=d;if(u.enable){let t=ta(u.color);t&&(o.shadowBlur=u.blur,o.shadowColor=tc(t))}o.stroke()}({context:e,width:d,begin:n,end:r,maxDistance:u,canvasSize:s.canvas.size,links:i,backgroundMask:p,colorLine:c,opacity:l})})},this._drawLinkTriangle=(t,e,i)=>{let s=t.options.links;if(!s?.enable)return;let a=s.triangles;if(!a.enable)return;let o=this.container,n=o.actualOptions,r=e.destination,l=i.destination,c=a.opacity??(e.opacity+i.opacity)*.5;c<=0||o.canvas.draw(e=>{let i=t.getPosition(),h=r.getPosition(),d=l.getPosition(),u=t.retina.linksDistance??0;if(T(i,h)>u||T(d,h)>u||T(d,i)>u)return;let p=ta(a.color);p||(p=tu(t,r,void 0!==s.id?o.particles.linksColors.get(s.id):o.particles.linksColor)),p&&function(t){let{context:e,pos1:i,pos2:s,pos3:a,backgroundMask:o,colorTriangle:n,opacityTriangle:r}=t;e.beginPath(),e.moveTo(i.x,i.y),e.lineTo(s.x,s.y),e.lineTo(a.x,a.y),e.closePath(),o.enable&&(e.globalCompositeOperation=o.composite),e.fillStyle=tc(n,r),e.fill()}({context:e,pos1:i,pos2:h,pos3:d,backgroundMask:n.backgroundMask,colorTriangle:p,opacityTriangle:c})})},this._drawTriangles=(t,e,i,s)=>{let a=i.destination;if(!(t.links?.triangles.enable&&a.options.links?.triangles.enable))return;let o=a.links?.filter(t=>{let e=this._getLinkFrequency(a,t.destination);return a.options.links&&e<=a.options.links.frequency&&s.findIndex(e=>e.destination===t.destination)>=0});if(o?.length)for(let s of o){let o=s.destination;this._getTriangleFrequency(e,a,o)>t.links.triangles.frequency||this._drawLinkTriangle(e,i,s)}},this._getLinkFrequency=(t,e)=>af([t,e],this._freqs.links),this._getTriangleFrequency=(t,e,i)=>af([t,e,i],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(t,e){let{links:i,options:s}=e;if(!i?.length)return;let a=i.filter(t=>s.links&&(s.links.frequency>=1||this._getLinkFrequency(e,t.destination)<=s.links.frequency));for(let t of a)this._drawTriangles(s,e,t,a),t.opacity>0&&(e.retina.linksWidth??0)>0&&this._drawLinkLine(e,t)}
1async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(t){if(t.links=[],!t.options.links)return;let e=this.container.retina.pixelRatio,{retina:i}=t,{distance:s,width:a}=t.options.links;i.linksDistance=s*e,i.linksWidth=a*e}particleDestroyed(t){t.links=[]}}class am{constructor(){this.id="links"}getPlugin(t){return Promise.resolve(new av(t))}loadOptions(){}needsPlugin(){return!0}}async function ay(t,e=!0){let i=new am;await t.addPlugin(i,e)}async function ag(t,e=!0){await ap(t,e),await ay(t,e)}class ab{draw(t){let{particle:e,radius:i}=t;!function(t,e,i){let{context:s}=t,a=i.count.numerator*i.count.denominator,o=i.count.numerator/i.count.denominator,n=Math.PI-R(180*(o-2)/o);if(s){s.beginPath(),s.translate(e.x,e.y),s.moveTo(0,0);for(let t=0;t<a;t++)s.lineTo(i.length,0),s.translate(i.length,0),s.rotate(n)}}(t,this.getCenter(e,i),this.getSidesData(e,i))}getSidesCount(t){let e=t.shapeData;return Math.round(z(e?.sides??5))}}class aw extends ab{constructor(){super(...arguments),this.validTypes=["polygon"]}getCenter(t,e){return{x:-e/(t.sides/3.5),y:-e/.76}}getSidesData(t,e){let i=t.sides;return{count:{denominator:1,numerator:i},length:2.66*e/(i/3)}}}class ax extends ab{constructor(){super(...arguments),this.validTypes=["triangle"]}getCenter(t,e){return{x:-e,y:e/1.66}}getSidesCount(){return 3}getSidesData(t,e){return{count:{denominator:2,numerator:3},length:2*e}}}async function a_(t,e=!0){await t.addShape(new aw,e)}async function ak(t,e=!0){await t.addShape(new ax,e)}async function aC(t,e=!0){await a_(t,e),await ak(t,e)}class az{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=O(t.speed)),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class aM extends tX{constructor(){super(),this.animation=new az,this.direction=iT.clockwise,this.path=!1,this.value=0}load(t){t&&(super.load(t),void 0!==t.direction&&(this.direction=t.direction),this.animation.load(t.animation),void 0!==t.path&&(this.path=t.path))}}let aP=2*Math.PI;class aO{constructor(t){this.container=t}init(t){let e=t.options.rotate;if(!e)return;t.rotate={enable:e.animation.enable,value:R(z(e.value)),min:0,max:aP},t.pathRotation=e.path;let i=e.direction;switch(i===iT.random&&(i=Math.floor(2*x())>0?iT.counterClockwise:iT.clockwise),i){case iT.counterClockwise:case"counterClockwise":t.rotate.status=ic.decreasing;break;case iT.clockwise:t.rotate.status=ic.increasing}let s=e.animation;s.enable&&(t.rotate.decay=1-z(s.decay),t.rotate.velocity=z(s.speed)/360*this.container.retina.reduceFactor,s.sync||(t.rotate.velocity*=x())),t.rotation=t.rotate.value}isEnabled(t){let e=t.options.rotate;return!!e&&!t.destroyed&&!t.spawning&&(!!e.value||e.animation.enable||e.path)}loadOptions(t,...e){for(let i of(t.rotate||(t.rotate=new aM),e))t.rotate.load(i?.rotate)}update(t,e){!this.isEnabled(t)||(t.isRotating=!!t.rotate,t.rotate&&(tt(t,t.rotate,!1,ih.none,e),t.rotation=t.rotate.value))}}async function aS(t,e=!0){await t.addParticleUpdater("rotate",t=>Promise.resolve(new aO(t)),e)}let aT=Math.sqrt(2);class aR{constructor(){this.validTypes=["edge","square"]}draw(t){!function(t){let{context:e,radius:i}=t,s=i/aT,a=2*s;e.rect(-s,-s,a,a)}(t)}getSidesCount(){return 4}}async function aD(t,e=!0){await t.addShape(new aR,e)}class aE{constructor(){this.validTypes=["star"]}draw(t){!function(t){let{context:e,particle:i,radius:s}=t,a=i.sides,o=i.starInset??2;e.moveTo(0,0-s);for(let t=0;t<a;t++)e.rotate(Math.PI/a),e.lineTo(0,0-s*o),e.rotate(Math.PI/a),e.lineTo(0,0-s)}(t)}getSidesCount(t){let e=t.shapeData;return Math.round(z(e?.sides??5))}particleInit(t,e){let i=e.shapeData;e.starInset=z(i?.inset??2)}}async function aI(t,e=!0){await t.addShape(new aE,e)}class aL{constructor(t){this.container=t}init(t){let e=this.container,i=t.options,s=Y(i.stroke,t.id,i.reduceDuplicates);t.strokeWidth=z(s.width)*e.retina.pixelRatio,t.strokeOpacity=z(s.opacity??1),t.strokeAnimation=s.color?.animation;let a=to(s.color)??t.getFillColor();a&&(t.strokeColor=tv(a,t.strokeAnimation,e.retina.reduceFactor))}isEnabled(t){let e=t.strokeAnimation,{strokeColor:i}=t;return!t.destroyed&&!t.spawning&&!!e&&(i?.h.value!==void 0&&i.h.enable||i?.s.value!==void 0&&i.s.enable||i?.l.value!==void 0&&i.l.enable)}update(t,e){this.isEnabled(t)&&tg(t.strokeColor,e)}}async function aB(t,e=!0){await t.addParticleUpdater("strokeColor",t=>Promise.resolve(new aL(t)),e)}async function aA(t,e=!0){await at(t,!1),await si(t,!1),await sl(t,!1),await sv(t,!1),await sb(t,!1),await sk(t,!1),await sz(t,!1),await sO(t,!1),await sR(t,!1),await sA(t,!1),await sH(t,!1),await ai(t,!1),await ar(t,!1),await ag(t,!1),await i3(),await i8(t,!1),await s1(t,!1),await s7(t,!1),await aC(t,!1),await aD(t,!1),await aI(t,!1),await s4(t,!1),await aS(t,!1),await aB(t,!1),await i5(t,e)}t.s(["loadSlim",0,aA],775880);var aF=t.i(135326),aq=t.i(442015),aH=t.i(714828);
1function aU(t,e){[...e].reverse().forEach(i=>{let s=t.getVariant(i);s&&(0,aF.setTarget)(t,s),t.variantChildren&&t.variantChildren.forEach(t=>{aU(t,e)})})}function aW(){let t=!1,e=new Set,i={subscribe:t=>(e.add(t),()=>void e.delete(t)),start(i,s){(0,aH.invariant)(t,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");let a=[];return e.forEach(t=>{a.push((0,aq.animateVisualElement)(t,i,{transitionOverride:s}))}),Promise.all(a)},set:i=>((0,aH.invariant)(t,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),e.forEach(t=>{var e,s;e=t,Array.isArray(s=i)?aU(e,s):"string"==typeof s?aU(e,[s]):(0,aF.setTarget)(e,s)})),stop(){e.forEach(t=>{t.values.forEach(t=>t.stop())})},mount:()=>(t=!0,()=>{t=!1,i.stop()})};return i}var a$=t.i(747734),aV=t.i(190160);t.s(["useAnimation",0,function(){let t=(0,a$.useConstant)(aW);return(0,aV.useIsomorphicLayoutEffect)(t.mount,[]),t}],48367)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.