1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,73248,(e,t,i)=>{Object.defineProperty(i,"__esModule",{value:!0});var a=e.r(87652),s=a&&"object"==typeof a&&"default"in a?a:{default:a};!function(e){if(!e||"u"<typeof window)return;let t=document.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t)}('.rfm-marquee-container {\n overflow-x: hidden;\n display: flex;\n flex-direction: row;\n position: relative;\n width: var(--width);\n transform: var(--transform);\n}\n.rfm-marquee-container:hover div {\n animation-play-state: var(--pause-on-hover);\n}\n.rfm-marquee-container:active div {\n animation-play-state: var(--pause-on-click);\n}\n\n.rfm-overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.rfm-overlay::before, .rfm-overlay::after {\n background: linear-gradient(to right, var(--gradient-color), rgba(255, 255, 255, 0));\n content: "";\n height: 100%;\n position: absolute;\n width: var(--gradient-width);\n z-index: 2;\n pointer-events: none;\n touch-action: none;\n}\n.rfm-overlay::after {\n right: 0;\n top: 0;\n transform: rotateZ(180deg);\n}\n.rfm-overlay::before {\n left: 0;\n top: 0;\n}\n\n.rfm-marquee {\n flex: 0 0 auto;\n min-width: var(--min-width);\n z-index: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n animation: scroll var(--duration) linear var(--delay) var(--iteration-count);\n animation-play-state: var(--play);\n animation-delay: var(--delay);\n animation-direction: var(--direction);\n}\n@keyframes scroll {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n.rfm-initial-child-container {\n flex: 0 0 auto;\n display: flex;\n min-width: auto;\n flex-direction: row;\n align-items: center;\n}\n\n.rfm-child {\n transform: var(--transform);\n}'),i.default=a.forwardRef(function({style:e={},className:t="",autoFill:i=!1,play:n=!0,pauseOnHover:r=!1,pauseOnClick:o=!1,direction:l="left",speed:c=50,delay:d=0,loop:h=0,gradient:u=!1,gradientColor:f="white",gradientWidth:p=200,onFinish:m,onCycleComplete:g,onMount:v,children:y},b){let[x,w]=a.useState(0),[_,k]=a.useState(0),[C,E]=a.useState(1),[P,R]=a.use
1State(!1),S=a.useRef(null),z=b||S,A=a.useRef(null),M=a.useCallback(()=>{if(A.current&&z.current){let e=z.current.getBoundingClientRect(),t=A.current.getBoundingClientRect(),a=e.width,s=t.width;("up"===l||"down"===l)&&(a=e.height,s=t.height),i&&a&&s?E(s<a?Math.ceil(a/s):1):E(1),w(a),k(s)}},[i,z,l]);a.useEffect(()=>{if(P&&(M(),A.current&&z.current)){let e=new ResizeObserver(()=>M());return e.observe(z.current),e.observe(A.current),()=>{e&&e.disconnect()}}},[M,z,P]),a.useEffect(()=>{M()},[M,y]),a.useEffect(()=>{R(!0)},[]),a.useEffect(()=>{"function"==typeof v&&v()},[]);let T=a.useMemo(()=>i?_*C/c:_<x?x/c:_/c,[i,x,_,C,c]),I=a.useMemo(()=>Object.assign(Object.assign({},e),{"--pause-on-hover":!n||r?"paused":"running","--pause-on-click":!n||r&&!o||o?"paused":"running","--width":"up"===l||"down"===l?"100vh":"100%","--transform":"up"===l?"rotate(-90deg)":"down"===l?"rotate(90deg)":"none"}),[e,n,r,o,l]),O=a.useMemo(()=>({"--gradient-color":f,"--gradient-width":"number"==typeof p?`${p}px`:p}),[f,p]),D=a.useMemo(()=>({"--play":n?"running":"paused","--direction":"left"===l?"normal":"reverse","--duration":`${T}s`,"--delay":`${d}s`,"--iteration-count":h?`${h}`:"infinite","--min-width":i?"auto":"100%"}),[n,l,T,d,h,i]),j=a.useMemo(()=>({"--transform":"up"===l?"rotate(90deg)":"down"===l?"rotate(-90deg)":"none"}),[l]),N=a.useCallback(e=>[...Array(Number.isFinite(e)&&e>=0?e:0)].map((e,t)=>s.default.createElement(a.Fragment,{key:t},a.Children.map(y,e=>s.default.createElement("div",{style:j,className:"rfm-child"},e)))),[j,y]);return P?s.default.createElement("div",{ref:z,style:I,className:"rfm-marquee-container "+t},u&&s.default.createElement("div",{style:O,className:"rfm-overlay"}),s.default.createElement("div",{className:"rfm-marquee",style:D,onAnimationIteration:g,onAnimationEnd:m},s.default.createElement("div",{className:"rfm-initial-child-container",ref:A},a.Children.map(y,e=>s.default.createElement("div",{style:j,className:"rfm-child"},e))),N(C-1)),s.default.createElement("div",{className:"rfm-marquee",style:D},N(C))):null})},87856,e=>{"use strict";let t,i;var a,s,n,r,o,l,c,d,h,u,f,p,m,g,v,y,b,x,w,_,k,C,E,P,R,S,z,A,M,T,I,O,D,j,N,F,L,B,q,V,U,H,W,$,G,Q,X,Y,K,J,Z,ee,et,ei,ea,es,en,er,eo,el,ec,ed=e.i(18008),eh=e.i(30679),eu=e.i(98981),ef=e.i(42537),ep=e.i(87652),em=e.i(53533);let eg=({className:e,children:t})=>(0,ed.jsx)("div",{className:(0,em.cn)("mx-auto grid max-w-7xl grid-cols-1 gap-4 md:auto-rows-[18rem] md:grid-cols-3",e),children:t}),ev=({className:e,title:t,description:i,header:a,icon:s,animated:n=!0})=>{let[r,o]=(0,ep.useState)(!1),[l,c]=(0,ep.useState)(!1),d=()=>{n&&(o(!1),setTimeout(()=>c(!1),200))};return(0,ed.jsxs)("div",{className:(0,em.cn)("group/bento shadow-input row-span-1 flex flex-col justify-between space-y-4 rounded-xl p-4",n?"transition-all duration-600 ease-out":"",n&&r?"shadow-lg":"",n&&l?"shadow-xl":"","dark:bg-black dark:shadow-none",e),onTouchStart:()=>{n&&(o(!0),c(!0))},onTouchEnd:d,onTouchCancel:d,onMouseEnter:()=>{n&&c(!0)},onMouseLeave:()=>{n&&(c(!1),o(!1))},children:[a,(0,ed.jsxs)("div",{className:(0,em.cn)(n?"transition-all duration-300 ease-out":"",n&&(l||r)?"translate-x-1 translate-y-[-2px]":""),children:[s,(0,ed.jsx)("div",{className:"mt-2 mb-2 font-sans font-bold text-neutral-600 dar
1k:text-neutral-200",children:t}),(0,ed.jsx)("div",{className:"font-sans text-xs font-normal text-neutral-600 dark:text-neutral-300",children:i})]})]})},ey=({icon:e,text:t})=>(0,ed.jsxs)("div",{className:"flex items-center gap-3",children:[(0,ed.jsx)("div",{className:"inline-flex h-12 w-12 items-center justify-center rounded-xl bg-white/85 shadow-xs ring-1 ring-black/5 dark:bg-black/50",children:e}),(0,ed.jsx)("span",{className:"text-2xl font-extrabold tracking-tight text-black md:text-2xl dark:text-white",children:t})]}),eb=({tags:e})=>(0,ed.jsx)("ul",{className:"mt-4 flex flex-wrap gap-2",children:e.map(e=>(0,ed.jsx)("li",{className:"rounded border border-pink-300/70 bg-pink-50 px-3 py-1 text-sm text-pink-700 dark:border-pink-400/40 dark:bg-pink-400/10 dark:text-pink-200",children:e},e))});function ex(){let e=[{title:(0,ed.jsx)(ey,{icon:(0,ed.jsx)(eu.Icon,{icon:"tabler:clipboard-check",className:"h-8 w-8 text-neutral-700 dark:text-neutral-300"}),text:"SODA"}),description:(0,ed.jsxs)(ed.Fragment,{children:[(0,ed.jsx)("p",{className:"mt-3 text-lg leading-relaxed text-balance md:text-xl",children:"SODA is a cross-platform desktop software that helps researchers prepare and share FAIR peripheral nervous system (PNS) related data and models using the SPARC Data Structure (SDS) and the SPARC Portal."}),(0,ed.jsx)(eb,{tags:["Desktop","FAIR","SDS"]})]}),href:"/sodaforsparc",colSpan:"md:col-span-4",size:"wide"},{title:(0,ed.jsx)(ey,{icon:(0,ed.jsx)(eu.Icon,{icon:"tabler:brain",className:"h-8 w-8 text-neutral-700 dark:text-neutral-300"}),text:"AI-READI"}),description:(0,ed.jsxs)(ed.Fragment,{children:[(0,ed.jsx)("p",{className:"mt-3 line-clamp-4 text-base leading-relaxed text-balance md:text-lg",children:"Generating a flagship AI-ready and ethically-sourced dataset to support future AI-driven discoveries in diabetes."}),(0,ed.jsx)(eb,{tags:["Platform","Guidelines","Standards","FAIR"]})]}),href:"/aireadi",colSpan:"md:col-span-2",size:"narrow"},{title:(0,ed.jsx)(ey,{icon:(0,ed.jsx)(eu.Icon,{icon:"tabler:vector-triangle",className:"h-8 w-8 text-neutral-700 dark:text-neutral-300"}),text:"Posters.science"}),description:(0,ed.jsxs)(ed.Fragment,{children:[(0,ed.jsx)("p",{className:"mt-3 line-clamp-4 text-base md:text-lg",children:"A free, open-source platform for sharing and discovering scientific posters, promoting collaboration and turning them into enduring research assets."}),(0,ed.jsx)(eb,{tags:["Platform","Guidelines"]})]}),href:"/posters-science",colSpan:"md:col-span-3",size:"narrow"},{title:(0,ed.jsx)(ey,{icon:(0,ed.jsx)(eu.Icon,{icon:"tabler:microscope",className:"h-8 w-8 text-neutral-700 dark:text-neutral-300"}),text:"Eye ACT"}),description:(0,ed.jsxs)(ed.Fragment,{children:[(0,ed.jsx)("p",{className:"d:text-xl mt-3 text-lg",children:"Eye ACT is creating the Envision Portal to study how eye diseases like like glaucoma and diabetic retinopathy may signal early Alzheimer's, advancing AI-driven research under FAIR principles."}),(0,ed.jsx)(eb,{tags:["Platform","Standards","Guidelines"]})]}),href:"/eyeact",colSpan:"md:col-span-3",size:"wide"}];return(0,ed.jsxs)("section",{className:"relative px-6 py-20",children:[(0,ed.jsx)("h2",{className:"mb-6 text-center text-3xl font-extrabold tracking-tight md:text-4xl",children:"What we are building"}),(0,ed.jsx)(eg,{className:"mx-auto max-w-screen-xl grid-cols-1 gap-4 px-4 transition-all md:grid-flow-dense md:auto-rows-[minmax(18rem,auto)] md:grid-cols-6 xl:px-0",children:e.map((e,t)=>{let i="narrow"===e.size?"p-6 md:p-7":"p-7 md:p-8",a=`h-full flex flex-col justify-between rounded-2xl border border-red-300/70 bg-white/90 shadow-xs ring-1 ring-transparent hover:shadow-lg hover:ring-red-300/40 dark:border-red-400/40 dark:bg-neutral-900/70 ${i}`;return(0,ed.jsx)(eh.default,{href:e.href,className:`${e.colSpan} group`,children:(0,ed.jsx)(ef.MagicCard,{className:"flex h-full rounded-2xl p-[1px] md:p-[2px]",gradientColor:"oklch(0.592 0.2157 349.761)",children:(0,ed.jsx)(ev,{className:a,title:e.title,description:e.description})})},t)})}),(0,ed.jsxs)("div",{className:"flex flex-col items-center justify-center space-x-4 pt-10",children:[(0,ed.jsx)("p",{className:"font-asap text-xl",children:"There is a lot more in the pipeline!"}),(0,ed.jsx)(eh.default,{href:"/projects",className:"my-4",passHref:!0,children:(0,ed.jsx)("button",{type:"button",className:"w-max rounded-md border-none bg-black px-5 py-3 text-center text-base font-semibold text-white ring-2 ring-transparent ring-offset-2 transition duration-200 ease-in-out hover:ring-pink-600 focus:ring-pink-600","data-umami-event":"Home page link","data-umami-event-value":"Explore our projects button",children:"Explore our projects"})})]})]})}var ew=e.i(97649);function e_(e,t,i){let a=e.createShader(t);return e.shaderSource(a,i),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS)?a:(e.deleteShader(a),null)}function ek(e,t,i){let a=e_(e,e.VERTEX_SHADER,t),s=e_(e,e.FRAGMENT_SHADER,i);if(!a||!s)return null;let n=e.createProgram();return e.attachShader(n,a),e.attachShader(n,s),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS)?(e.deleteShader(a),e.deleteShader(s),n):(e.deleteProgram(n),null)}function eC(e,t,i){let a={};for(let s of i)a[s]=e.getUniformLocation(t,s);return a}function eE(e,t,i){let a={};for(let s of i)a[s]=e.getAttribLocation(t,s);return a}var{PI:eP,sin:eR,cos:eS}=Math;function ez([e,t]){let i=e*eP/180,a=t*eP/180-eP,s=eS(i);return[-s*eS(a),eR(i),s*eR(a)]}var eA=e$(),eM=e=>eV(e,eA),eT=e$();eM.write=e=>eV(e,eT);var eI=e$();eM.onStart=e=>eV(e,eI);var eO=e$();eM.onFrame=e=>eV(e,eO);var eD=e$();eM.onFinish=e=>eV(e,eD);var ej=[];eM.setTimeout=(e,t)=>{let i=eM.now()+t,a=()=>{let e=ej.findIndex(e=>e.cancel==a);~e&&ej.splice(e,1),eB-=!!~e},s={time:i,handler:e,cancel:a};return ej.splice(eN(i),0,s),eB+=1,eU(),s};var eN=e=>~(~ej.findIndex(t=>t.time>e)||~ej.length);eM.cancel=e=>{eI.delete(e),eO.delete(e),eD.delete(e),eA.delete(e),eT.delete(e)},eM.sync=e=>{eq=!0,eM.batchedUpdates(e),eq=!1},eM.throttle=e=>{let t;function i(){try{e(...t)}finally{t=null}}function a(...e){t=e,eM.onStart(i)}return a.handler=e,a.cancel=()=>{eI.delete(i),t=null},a};var eF="u">typeof window?window.requestAnimationFrame:()=>{};eM.use=e=>eF=e,eM.now="u">typeof performance?()=>performance.now():Date.now,eM.batchedUpdates=e=>e(),eM.catch=console.error,eM.frameLoop="always",eM.advance=()=>{"demand"!==eM.frameLoop?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):eW()};var eL=-1,eB=0,eq=!1;function eV(e,t){eq?(t.delete(e),e(0)):(t.add(e),eU())}function eU(){eL<0&&(eL=0,"demand"!==eM.frameLoop&&eF(eH))}function eH(){~eL&&(eF(eH),eM.batchedUpdates(eW))}function eW(){let e=eL,t=eN(eL=eM.now());(t&&(eG(ej.splice(0,t),e=>e.handler()),eB-=t),eB)?(eI.flush(),eA.flush(e?Math.min(64,eL-e):16.667),eO.flush(),eT.flush(),eD.flush()):eL=-1}function e$(){let e=new Set,t=e;return{add(i){eB+=+!(t!=e||e.has(i)),e.add(i)},delete:i=>(eB-=t==e&&e.has(i)?1:0,e.delete(i)),flush(i){t.size&&(e=new Set,eB-=t.size,eG(t,t=>t(i)&&e.add(t)),eB+=e.size,t=e)}}}
1function eG(e,t){e.forEach(e=>{try{t(e)}catch(e){eM.catch(e)}})}var eQ=Object.defineProperty,eX={},eY={assign:()=>e7,colors:()=>e8,createStringInterpolator:()=>T,skipAnimation:()=>e6,to:()=>I,willAdvance:()=>e9};for(var eK in eY)eQ(eX,eK,{get:eY[eK],enumerable:!0});function eJ(){}var eZ={arr:Array.isArray,obj:e=>!!e&&"Object"===e.constructor.name,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e};function e0(e,t){if(eZ.arr(e)){if(!eZ.arr(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}return e===t}function e1(e,t,i){if(eZ.arr(e)){for(let a=0;a<e.length;a++)t.call(i,e[a],`${a}`);return}for(let a in e)e.hasOwnProperty(a)&&t.call(i,e[a],a)}var e2=e=>eZ.und(e)?[]:eZ.arr(e)?e:[e];function e3(e,t){if(e.size){let i=Array.from(e);e.clear(),i.forEach(t)}}var e5=(e,...t)=>e3(e,e=>e(...t)),e4=()=>"u"<typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),e8=null,e6=!1,e9=eJ,e7=e=>{e.to&&(I=e.to),e.now&&(eM.now=e.now),void 0!==e.colors&&(e8=e.colors),null!=e.skipAnimation&&(e6=e.skipAnimation),e.createStringInterpolator&&(T=e.createStringInterpolator),e.requestAnimationFrame&&eM.use(e.requestAnimationFrame),e.batchedUpdates&&(eM.batchedUpdates=e.batchedUpdates),e.willAdvance&&(e9=e.willAdvance),e.frameLoop&&(eM.frameLoop=e.frameLoop)},te=new Set,tt=[],ti=[],ta=0,ts={get idle(){return!te.size&&!tt.length},start(e){ta>e.priority?(te.add(e),eM.onStart(tn)):(tr(e),eM(tl))},advance:tl,sort(e){if(ta)eM.onFrame(()=>ts.sort(e));else{let t=tt.indexOf(e);~t&&(tt.splice(t,1),to(e))}},clear(){tt=[],te.clear()}};function tn(){te.forEach(tr),te.clear(),eM(tl)}function tr(e){tt.includes(e)||to(e)}function to(e){var t,i;let a;tt.splice((t=tt,i=t=>t.priority>e.priority,(a=t.findIndex(i))<0?t.length:a),0,e)}function tl(e){let t=ti;for(let i=0;i<tt.length;i++){let a=tt[i];ta=a.priority,!a.idle&&(e9(a),a.advance(e),a.idle||t.push(a))}return ta=0,(ti=tt).length=0,(tt=t).length>0}var tc="[-+]?\\d*\\.?\\d+",td=tc+"%";function th(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var tu=RegExp("rgb"+th(tc,tc,tc)),tf=RegExp("rgba"+th(tc,tc,tc,tc)),tp=RegExp("hsl"+th(tc,td,td)),tm=RegExp("hsla"+th(tc,td,td,tc)),tg=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,tv=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ty=/^#([0-9a-fA-F]{6})$/,tb=/^#([0-9a-fA-F]{8})$/;function tx(e,t,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?e+(t-e)*6*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}function tw(e,t,i){let a=i<.5?i*(1+t):i+t-i*t,s=2*i-a;return Math.round(255*tx(s,a,e+1/3))<<24|Math.round(255*tx(s,a,e))<<16|Math.round(255*tx(s,a,e-1/3))<<8}function t_(e){let t=parseInt(e,10);return t<0?0:t>255?255:t}function tk(e){return(parseFloat(e)%360+360)%360/360}function tC(e){let t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function tE(e){let t=parseFloat(e);return t<0?0:t>100?1:t/100}function tP(e){let t,i="number"==typeof e?e>>>0===e&&e>=0&&e<=0xffffffff?e:null:(t=ty.exec(e))?parseInt(t[1]+"ff",16)>>>0:e8&&void 0!==e8[e]?e8[e]:(t=tu.exec(e))?(t_(t[1])<<24|t_(t[2])<<16|t_(t[3])<<8|255)>>>0:(t=tf.exec(e))?(t_(t[1])<<24|t_(t[2])<<16|t_(t[3])<<8|tC(t[4]))>>>0:(t=tg.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=tb.exec(e))?parseInt(t[1],16)>>>0:(t=tv.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=tp.exec(e))?(255|tw(tk(t[1]),tE(t[2]),tE(t[3])))>>>0:(t=tm.exec(e))?(tw(tk(t[1]),tE(t[2]),tE(t[3]))|tC(t[4]))>>>0:null;if(null===i)return e;let a=(0xff000000&(i=i||0))>>>24,s=(0xff0000&i)>>>16,n=(65280&i)>>>8,r=(255&i)/255;return`rgba(${a}, ${s}, ${n}, ${r})`}var tR=(e,t,i)=>{if(eZ.fun(e))return e;if(eZ.arr(e))return tR({range:e,output:t,extrapolate:i});if(eZ.str(e.output[0]))return T(e);let a=e.output,s=e.range||[0,1],n=e.extrapolateLeft||e.extrapolate||"extend",r=e.extrapolateRight||e.extrapolate||"extend",o=e.easing||(e=>e);return t=>{let i=function(e,t){for(var i=1;i<t.length-1&&!(t[i]>=e);++i);return i-1}(t,s);return function(e,t,i,a,s,n,r,o,l){let c=l?l(e):e;if(c<t)if("identity"===r)return c;else"clamp"===r&&(c=t);if(c>i)if("identity"===o)return c;else"clamp"===o&&(c=i);return a===s?a:t===i?e<=t?a:s:(t===-1/0?c=-c:i===1/0?c-=t:c=(c-t)/(i-t),
1c=n(c),a===-1/0?c=-c:s===1/0?c+=a:c=c*(s-a)+a,c)}(t,s[i],s[i+1],a[i],a[i+1],o,n,r,e.map)}},tS=Symbol.for("FluidValue.get"),tz=Symbol.for("FluidValue.observers"),tA=e=>!!(e&&e[tS]),tM=e=>e&&e[tS]?e[tS]():e,tT=e=>e[tz]||null;function tI(e,t){let i=e[tz];i&&i.forEach(e=>{e.eventObserved?e.eventObserved(t):e(t)})}var tO=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");tD(this,e)}},tD=(e,t)=>tF(e,tS,t);function tj(e,t){if(e[tS]){let i=e[tz];i||tF(e,tz,i=new Set),!i.has(t)&&(i.add(t),e.observerAdded&&e.observerAdded(i.size,t))}return t}function tN(e,t){let i=e[tz];if(i&&i.has(t)){let a=i.size-1;a?i.delete(t):e[tz]=null,e.observerRemoved&&e.observerRemoved(a,t)}}var tF=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),tL=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,tB=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,tq=RegExp(`(${tL.source})(%|[a-z]+)`,"i"),tV=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,tU=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,tH=e=>{let[t,i]=tW(e);if(!t||e4())return e;let a=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(a)return a.trim();if(i&&i.startsWith("--")){let e=window.getComputedStyle(document.documentElement).getPropertyValue(i);if(e)return e}else if(i&&tU.test(i))return tH(i);else if(i)return i;return e},tW=e=>{let t=tU.exec(e);if(!t)return[,];let[,i,a]=t;return[i,a]},t$=(e,t,i,a,s)=>`rgba(${Math.round(t)}, ${Math.round(i)}, ${Math.round(a)}, ${s})`,tG=e=>{O||(O=e8?RegExp(`(${Object.keys(e8).join("|")})(?!\\w)`,"g"):/^\b$/);let t=e.output.map(e=>tM(e).replace(tU,tH).replace(tB,tP).replace(O,tP)),i=t.map(e=>e.match(tL).map(Number)),a=i[0].map((e,t)=>i.map(e=>{if(!(t in e))throw Error('The arity of each "output" value must be equal');return e[t]})).map(t=>tR({...e,output:t}));return e=>{let i=!tq.test(t[0])&&t.find(e=>tq.test(e))?.replace(tL,""),s=0;return t[0].replace(tL,()=>`${a[s++](e)}${i||""}`).replace(tV,t$)}},tQ="react-spring: ",tX=e=>{let t=!1;if("function"!=typeof e)throw TypeError(`${tQ}once requires a function parameter`);return(...i)=>{t||(e(...i),t=!0)}},tY=tX(console.warn),tK=tX(console.warn);function tJ(e){return eZ.str(e)&&("#"==e[0]||/\d/.test(e)||!e4()&&tU.test(e)||e in(e8||{}))}var tZ=e4()?ep.useEffect:ep.useLayoutEffect;function t0(){let e,t=(0,ep.useState)()[1],i=(e=(0,ep.useRef)(!1),tZ(()=>(e.current=!0,()=>{e.current=!1}),[]),e);return()=>{i.current&&t(Math.random())}}var t1=e=>(0,ep.useEffect)(e,t2),t2=[];function t3(e){let t=(0,ep.useRef)(void 0);return(0,ep.useEffect)(()=>{t.current=e}),t.current}var t5=Symbol.for("Animated:node"),t4=e=>e&&e[t5],t8=(e,t)=>Object.defineProperty(e,t5,{value:t,writable:!0,configurable:!0}),t6=e=>e&&e[t5]&&e[t5].getPayload(),t9=class{constructor(){t8(this,this)}getPayload(){return this.payload||[]}},t7=class e extends t9{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,eZ.num(this._value)&&(this.lastPosition=this._value)}static create(t){return new e(t)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return eZ.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value!==e&&(this._value=e,!0)}reset(){let{done:e}=this;this.done=!1,eZ.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},ie=class e extends t7{constructor(e){super(0),this._string=null,this._toString=tR({output:[e,e]})}static create(t){return new e(t)}getValue(){let e=this._string;return null==e?this._string=this._toString(this._value):e}setValue(e){if(eZ.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else{if(!super.setValue(e))return!1;this._string=null}return!0}reset(e){e&&(this._toString=tR({output:[this.getValue(),e]})),this._value=0,super.reset()}},it={dependencies:null},ii=class extends t9{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){let t={};return e1(this.source,(i,a)=>{i&&i[t5]===i?t[a]=i.getValue(e):tA(i)?t[a]=tM(i):e||(t[a]=i)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){let e;
1this.payload&&(e=this.payload,e.forEach(e=>e.reset()))}_makePayload(e){if(e){let t=new Set;return e1(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){let t;it.dependencies&&tA(e)&&it.dependencies.add(e);let i=t6(e);i&&(t=e=>this.add(e),i.forEach(t))}},ia=class e extends ii{constructor(e){super(e)}static create(t){return new e(t)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){let t=this.getPayload();return e.length==t.length?t.map((t,i)=>t.setValue(e[i])).some(Boolean):(super.setValue(e.map(is)),!0)}};function is(e){return(tJ(e)?ie:t7).create(e)}function ir(e){let t=t4(e);return t?t.constructor:eZ.arr(e)?ia:tJ(e)?ie:t7}var io=(e,t)=>{let i=!eZ.fun(e)||e.prototype&&e.prototype.isReactComponent;return(0,ep.forwardRef)((a,s)=>{var n,r;let o,l=(0,ep.useRef)(null),c=i&&(0,ep.useCallback)(e=>{var t,i;t=s,i=e,t&&(eZ.fun(t)?t(i):t.current=i),l.current=i},[s]),[d,h]=(n=a,r=t,it.dependencies=o=new Set,n.style&&(n={...n,style:r.createAnimatedStyle(n.style)}),n=new ii(n),it.dependencies=null,[n,o]),u=t0(),f=()=>{let e=l.current;i&&!e||!1===(!!e&&t.applyAnimatedValues(e,d.getValue(!0)))&&u()},p=new il(f,h),m=(0,ep.useRef)(void 0);tZ(()=>{let e;return m.current=p,e=e=>tj(e,p),h.forEach(e),()=>{if(m.current){let e;e=m.current.deps,e.forEach(e=>tN(e,m.current)),eM.cancel(m.current.update)}}}),(0,ep.useEffect)(f,[]),t1(()=>()=>{let e,t=m.current;e=t.deps,e.forEach(e=>tN(e,t))});let g=t.getComponentProps(d.getValue());return ep.createElement(e,{...g,ref:c})})},il=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){"change"==e.type&&eM.write(this.update)}},ic=Symbol.for("AnimatedComponent"),id=e=>eZ.str(e)?e:e&&eZ.str(e.displayName)?e.displayName:eZ.fun(e)&&e.name||null;function ih(e,...t){return eZ.fun(e)?e(...t):e}var iu=(e,t)=>!0===e||!!(t&&e&&(eZ.fun(e)?e(t):e2(e).includes(t))),ip=(e,t)=>eZ.obj(e)?t&&e[t]:e,im=(e,t)=>!0===e.default?e[t]:e.default?e.default[t]:void 0,ig=e=>e,iv=(e,t=ig)=>{let i=iy;e.default&&!0!==e.default&&(i=Object.keys(e=e.default));let a={};for(let s of i){let i=t(e[s],s);eZ.und(i)||(a[s]=i)}return a},iy=["config","onProps","onStart","onChange","onPause","onResume","onRest"],ib={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function ix(e){let t=function(e){let t={},i=0;if(e1(e,(e,a)=>{!ib[a]&&(t[a]=e,i++)}),i)return t}(e);if(t){let i={to:t};return e1(e,(e,a)=>a in t||(i[a]=e)),i}return{...e}}function iw(e){return e=tM(e),eZ.arr(e)?e.map(iw):tJ(e)?eX.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function i_(e){return eZ.fun(e)||eZ.arr(e)&&eZ.obj(e[0])}var ik={tension:170,friction:26,mass:1,damping:1,easing:e=>e,clamp:!1},iC=class{constructor(){this.velocity=0,Object.assign(this,ik)}};function iE(e,t){if(eZ.und(t.decay)){let i=!eZ.und(t.tension)||!eZ.und(t.friction);!i&&eZ.und(t.frequency)&&eZ.und(t.damping)&&eZ.und(t.mass)||(e.duration=void 0,e.decay=void 0),i&&(e.frequency=void 0)}else e.duration=void 0}var iP=[],iR=class{constructor(){this.changed=!1,this.values=iP,this.toValues=null,this.fromValues=iP,this.config=new iC,this.immediate=!1}};function iS(e,{key:t,props:i,defaultProps:a,state:s,actions:n}){return new Promise((r,o)=>{let l,c,d=iu(i.cancel??a?.cancel,t);if(d)f();else{eZ.und(i.pause)||(s.paused=iu(i.pause,t));let e=a?.pause;!0!==e&&(e=s.paused||iu(e,t)),l=ih(i.delay||0,t),e?(s.resumeQueue.add(u),n.pause()):(n.resume(),u())}function h(){s.resumeQueue.add(u),s.timeouts.delete(c),c.cancel(),l=c.time-eM.now()}function u(){l>0&&!eX.skipAnimation?(s.delayed=!0,c=eM.setTimeout(f,l),s.pauseQueue.add(h),s.timeouts.add(c)):f()}function f(){s.delayed&&(s.delayed=!1),s.pauseQueue.delete(h),s.timeouts.delete(c),e<=(s.cancelId||0)&&(d=!0);try{n.start({...i,callId:e,cancel:d},r)}catch(e){o(e)}}})}var iz=(e,t)=>1==t.length?t[0]:t.some(e=>e.cancelled)?iT(e.get()):t.every(e=>e.noop)?iA(e.get()):iM(e.get(),t.every(e=>e.finished)),iA=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),iM=(e,t,i=!1)=>({value:e,finished:t,cancelled:i}),iT=e=>({value:e,cancelled:!0,finished:!1});function iI(e,t,i,a){let{callId:s,parentId:n,onRest:r}=t,{asyncTo:o,promise:l}=i;return n||e!==o||t.reset?i.promise=(async()=>{let c,d,h;i.asyncId=s,i.asyncTo=e;let u=iv(t,(e,t)=>"onRest"===t?void 0:e),f=new Promise((e,t)=>
1(c=e,d=t)),p=e=>{let t=s<=(i.cancelId||0)&&iT(a)||s!==i.asyncId&&iM(a,!1);if(t)throw e.result=t,d(e),e},m=0,g=(e,t)=>{let n=new iD,r=new ij;return(async()=>{p(n);let o=eZ.obj(e)?{...e}:{...t,to:e};if(o.parentId=s,e1(u,(e,t)=>{eZ.und(o[t])&&(o[t]=e)}),eX.skipAnimation){if(++m>1024)throw iO(i),r.result=iM(a,!1),d(r),r;return o.immediate=!0,await a.start(o)}let l=await a.start(o);return p(n),i.paused&&await new Promise(e=>{i.resumeQueue.add(e)}),l})()};try{let t;t=eZ.arr(e)?(async e=>{for(let t of e)await g(t)})(e):Promise.resolve(e(g,a.stop.bind(a))),await Promise.all([t.then(c),f]),h=iM(a.get(),!0,!1)}catch(e){if(e instanceof iD)h=e.result;else if(e instanceof ij)h=e.result;else throw e}finally{s==i.asyncId&&(i.asyncId=n,i.asyncTo=n?o:void 0,i.promise=n?l:void 0)}return eZ.fun(r)&&eM.batchedUpdates(()=>{r(h,a,a.item)}),h})():l}function iO(e,t){e3(e.timeouts,e=>e.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var iD=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},ij=class extends Error{constructor(){super("SkipAnimationSignal")}},iN=1,iF=class extends tO{constructor(){super(...arguments),this.id=iN++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){let e=t4(this);return e&&e.getValue()}to(...e){return eX.to(this,e)}interpolate(...e){return tY(`${tQ}The "interpolate" function is deprecated in v9 (use "to" instead)`),eX.to(this,e)}toJSON(){return this.get()}observerAdded(e){1==e&&this._attach()}observerRemoved(e){0==e&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){tI(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||ts.sort(this),tI(this,{type:"priority",parent:this,priority:e})}},iL=Symbol.for("SpringPhase"),iB=e=>(1&e[iL])>0,iq=e=>(2&e[iL])>0,iV=e=>(4&e[iL])>0,iU=(e,t)=>t?e[iL]|=3:e[iL]&=-3,iH=(e,t)=>t?e[iL]|=4:e[iL]&=-5,iW=class extends iF{constructor(e,t){if(super(),this.animation=new iR,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!eZ.und(e)||!eZ.und(t)){const i=eZ.obj(e)?{...e}:{...t,from:e};eZ.und(i.default)&&(i.default=!0),this.start(i)}}get idle(){return!(iq(this)||this._state.asyncTo)||iV(this)}get goal(){return tM(this.animation.to)}get velocity(){let e=t4(this);return e instanceof t7?e.lastVelocity||0:e.getPayload().map(e=>e.lastVelocity||0)}get hasAnimated(){return iB(this)}get isAnimating(){return iq(this)}get isPaused(){return iV(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,i=!1,a=this.animation,{toValues:s}=a,{config:n}=a,r=t6(a.to);!r&&tA(a.to)&&(s=e2(tM(a.to))),a.values.forEach((o,l)=>{if(o.done)return;let c=o.constructor==ie?1:r?r[l].lastPosition:s[l],d=a.immediate,h=c;if(!d){let t;if(h=o.lastPosition,n.tension<=0){o.done=!0;return}let i=o.elapsedTime+=e,s=a.fromValues[l],r=null!=o.v0?o.v0:o.v0=eZ.arr(n.velocity)?n.velocity[l]:n.velocity,u=n.precision||(s==c?.005:Math.min(1,.001*Math.abs(c-s)));if(eZ.und(n.duration))if(n.decay){let e=!0===n.decay?.998:n.decay,a=Math.exp(-(1-e)*i);h=s+r/(1-e)*(1-a),d=Math.abs(o.lastPosition-h)<=u,t=r*a}else{t=null==o.lastVelocity?r:o.lastVelocity;let i=n.restVelocity||u/10,a=n.clamp?0:n.bounce,l=!eZ.und(a),f=s==c?o.v0>0:s<c,p=Math.ceil(e/1);for(let e=0;e<p&&!(!(Math.abs(t)>i)&&(d=Math.abs(c-h)<=u));++e){l&&(h==c||h>c==f)&&(t=-t*a,h=c);let e=(-(1e-6*n.tension)*(h-c)+-(.001*n.friction)*t)/n.mass;t+=+e,h+=+t}}else{let a=1;n.duration>0&&(this._memoizedDuration!==n.duration&&(this._memoizedDuration=n.duration,o.durationProgress>0&&(o.elapsedTime=n.duration*o.durationProgress,i=o.elapsedTime+=e)),o.durationProgress=a=(a=(n.progress||0)+i/this._memoizedDuration)>1?1:a<0?0:a),t=((h=s+n.easing(a)*(c-s))-o.lastPosition)/e,d=1==a}o.lastVelocity=t,Number.isNaN(h)&&(console.warn("Got NaN while animating:",this),d=!0)}
1r&&!r[l].done&&(d=!1),d?o.done=!0:t=!1,o.setValue(h,n.round)&&(i=!0)});let o=t4(this),l=o.getValue();if(t){let e=tM(a.to);(l!==e||i)&&!n.decay?(o.setValue(e),this._onChange(e)):i&&n.decay&&this._onChange(l),this._stop()}else i&&this._onChange(l)}set(e){return eM.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(iq(this)){let{to:e,config:t}=this.animation;eM.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let i;return eZ.und(e)?(i=this.queue||[],this.queue=[]):i=[eZ.obj(e)?e:{...t,to:e}],Promise.all(i.map(e=>this._update(e))).then(e=>iz(this,e))}stop(e){let{to:t}=this.animation;return eZ.und(t)||this._focus(this.get()),iO(this._state,e&&this._lastCallId),eM.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){"change"==e.type?this._start():"priority"==e.type&&(this.priority=e.priority+1)}_prepareNode(e){let t=this.key||"",{to:i,from:a}=e;(null==(i=eZ.obj(i)?i[t]:i)||i_(i))&&(i=void 0),null==(a=eZ.obj(a)?a[t]:a)&&(a=void 0);let s={to:i,from:a};return!iB(this)&&(e.reverse&&([i,a]=[a,i]),a=tM(a),eZ.und(a)?t4(this)||this._set(i):this._set(a)),s}_update({...e},t){let{key:i,defaultProps:a}=this;e.default&&Object.assign(a,iv(e,(e,t)=>/^on/.test(t)?ip(e,i):e)),iK(this,e,"onProps"),iJ(this,"onProps",e,this);let s=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");let n=this._state;return iS(++this._lastCallId,{key:i,props:e,defaultProps:a,state:n,actions:{pause:()=>{iV(this)||(iH(this,!0),e5(n.pauseQueue),iJ(this,"onPause",iM(this,i$(this,this.animation.to)),this))},resume:()=>{iV(this)&&(iH(this,!1),iq(this)&&this._resume(),e5(n.resumeQueue),iJ(this,"onResume",iM(this,i$(this,this.animation.to)),this))},start:this._merge.bind(this,s)}}).then(i=>{if(e.loop&&i.finished&&!(t&&i.noop)){let t=iG(e);if(t)return this._update(t,!0)}return i})}_merge(e,t,i){if(t.cancel)return this.stop(!0),i(iT(this));let a=!eZ.und(e.to),s=!eZ.und(e.from);if(a||s)if(!(t.callId>this._lastToId))return i(iT(this));else this._lastToId=t.callId;let{key:n,defaultProps:r,animation:o}=this,{to:l,from:c}=o,{to:d=l,from:h=c}=e;s&&!a&&(!t.default||eZ.und(d))&&(d=h),t.reverse&&([d,h]=[h,d]);let u=!e0(h,c);u&&(o.from=h),h=tM(h);let f=!e0(d,l);f&&this._focus(d);let p=i_(t.to),{config:m}=o,{decay:g,velocity:v}=m;(a||s)&&(m.velocity=0),t.config&&!p&&function(e,t,i){for(let a in i&&(iE(i={...i},t),t={...i,...t}),iE(e,t),Object.assign(e,t),ik)null==e[a]&&(e[a]=ik[a]);let{frequency:a,damping:s}=e,{mass:n}=e;eZ.und(a)||(a<.01&&(a=.01),s<0&&(s=0),e.tension=Math.pow(2*Math.PI/a,2)*n,e.friction=4*Math.PI*s*n/a)}(m,ih(t.config,n),t.config!==r.config?ih(r.config,n):void 0);let y=t4(this);if(!y||eZ.und(d))return i(iM(this,!0));let b=eZ.und(t.reset)?s&&!t.default:!eZ.und(h)&&iu(t.reset,n),x=b?h:this.get(),w=iw(d),_=eZ.num(w)||eZ.arr(w)||tJ(w),k=!p&&(!_||iu(r.immediate||t.immediate,n));if(f){let e=ir(d);if(e!==y.constructor)if(k)y=this._set(w);else throw Error(`Cannot animate between ${y.constructor.name} and ${e.name}, as the "to" prop suggests`)}let C=y.constructor,E=tA(d),P=!1;if(!E){let e=b||!iB(this)&&u;(f||e)&&(E=!(P=e0(iw(x),w))),(e0(o.immediate,k)||k)&&e0(m.decay,g)&&e0(m.velocity,v)||(E=!0)}if(P&&iq(this)&&(o.changed&&!b?E=!0:E||this._stop(l)),!p&&((E||tA(l))&&(o.values=y.getPayload(),o.toValues=tA(d)?null:C==ie?[1]:e2(w)),o.immediate!=k&&(o.immediate=k,k||b||this._set(l)),E)){let e,{onRest:a}=o;e=e=>iK(this,t,e),iY.forEach(e);let s=iM(this,i$(this,l));e5(this._pendingCalls,s),this._pendingCalls.add(i),o.changed&&eM.batchedUpdates(()=>{o.changed=!b,a?.(s,this),b?ih(r.onRest,s):o.onStart?.(s,this)})}b&&this._set(x),p?i(iI(t.to,t,this._state,this)):E?this._start():iq(this)&&!f?this._pendingCalls.add(i):i(iA(x))}_focus(e){let t=this.animation;e!==t.to&&(tT(this)&&this._detach(),t.to=e,tT(this)&&this._attach())}_attach(){let e=0,{to:t}=this.animation;tA(t)&&(tj(t,this),t instanceof iF&&(e=t.priority+1)),this.priority=e}_detach(){let{to:e}=this.animation;tA(e)&&tN(e,this)}_set(e,t=!0){let i=tM(e);if(!eZ.und(i)){let e=t4(this);if(!e||!e0(i,e.getValue())){let a=ir(i);e&&e.constructor==a?e.setValue(i):t8(this,a.create(i)),e&&eM.batchedUpdates(()=>{this._onChange(i,t)})}}return t4(this)}_onStart(){let e=this.animation;e.changed||(e.changed=!0,iJ(this,"onStart",iM(this,i$(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),ih(this.animation.onChange,e,this)),ih(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){let e=this.animation;t4(this).reset(tM(e.to)),e.immediate||(e.fromValues=e.values.map(e=>e.lastPosition)),!iq(this)&&(iU(this,!0),iV(this)||this._resume())}_resume(){eX.skipAnimation?this.finish():ts.start(this)}_stop(e,t){if(iq(this)){let i;iU(this,!1);let a=this.animation;
1i=a.values,i.forEach(e=>{e.done=!0}),a.toValues&&(a.onChange=a.onPause=a.onResume=void 0),tI(this,{type:"idle",parent:this});let s=t?iT(this.get()):iM(this.get(),i$(this,e??a.to));e5(this._pendingCalls,s),a.changed&&(a.changed=!1,iJ(this,"onRest",s,this))}}};function i$(e,t){let i=iw(t);return e0(iw(e.get()),i)}function iG(e,t=e.loop,i=e.to){let a=ih(t);if(a){let s=!0!==a&&ix(a),n=(s||e).reverse,r=!s||s.reset;return iQ({...e,loop:t,default:!1,pause:void 0,to:!n||i_(i)?i:void 0,from:r?e.from:void 0,reset:r,...s})}}function iQ(e){let{to:t,from:i}=e=ix(e),a=new Set;return eZ.obj(t)&&iX(t,a),eZ.obj(i)&&iX(i,a),e.keys=a.size?Array.from(a):null,e}function iX(e,t){e1(e,(e,i)=>null!=e&&t.add(i))}var iY=["onStart","onRest","onChange","onPause","onResume"];function iK(e,t,i){e.animation[i]=t[i]!==im(t,i)?ip(t[i],e.key):void 0}function iJ(e,t,...i){e.animation[t]?.(...i),e.defaultProps[t]?.(...i)}var iZ=["onStart","onChange","onRest"],i0=1,i1=class{constructor(e,t){this.id=i0++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){let e={};return this.each((t,i)=>e[i]=t.get()),e}set(e){for(let t in e){let i=e[t];eZ.und(i)||this.springs[t].set(i)}}update(e){return e&&this.queue.push(iQ(e)),this}start(e){let{queue:t}=this;return(e?t=e2(e).map(iQ):this.queue=[],this._flush)?this._flush(this,t):(i9(this,t),i2(this,t))}stop(e,t){if(!!e!==e&&(t=e),t){let i,a=this.springs;i=e2(t),i.forEach(t=>a[t].stop(!!e))}else iO(this._state,this._lastAsyncId),this.each(t=>t.stop(!!e));return this}pause(e){if(eZ.und(e))this.start({pause:!0});else{let t,i=this.springs;t=e2(e),t.forEach(e=>i[e].pause())}return this}resume(e){if(eZ.und(e))this.start({pause:!1});else{let t,i=this.springs;t=e2(e),t.forEach(e=>i[e].resume())}return this}each(e){e1(this.springs,e)}onLoopReset(e){let t=this._onLoopReset??(this._onLoopReset=new Set);return t.add(e),()=>{t.delete(e)}}_onFrame(){let{onStart:e,onChange:t,onRest:i}=this._events,a=this._active.size>0,s=this._changed.size>0;(a&&!this._started||s&&!this._started)&&(this._started=!0,e3(e,([e,t])=>{t.value=this.get(),e(t,this,this._item)}));let n=!a&&this._started,r=s||n&&i.size?this.get():null;s&&t.size&&e3(t,([e,t])=>{t.value=r,e(t,this,this._item)}),n&&(this._started=!1,e3(i,([e,t])=>{t.value=r,e(t,this,this._item)}))}eventObserved(e){if("change"==e.type)this._changed.add(e.parent),e.idle||this._active.add(e.parent);else{if("idle"!=e.type)return;this._active.delete(e.parent)}eM.onFrame(this._onFrame)}};function i2(e,t){return Promise.all(t.map(t=>i3(e,t))).then(t=>iz(e,t))}async function i3(e,t,i){let{keys:a,to:s,from:n,loop:r,onRest:o,onResolve:l}=t,c=eZ.obj(t.default)&&t.default;r&&(t.loop=!1),!1===s&&(t.to=null),!1===n&&(t.from=null);let d=eZ.arr(s)||eZ.fun(s)?s:void 0;if(d)t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0);else iZ.forEach(i=>{let a=t[i];if(eZ.fun(a)){let s=e._events[i];t[i]=({finished:e,cancelled:t})=>{let i=s.get(a);i?(e||(i.finished=!1),t&&(i.cancelled=!0)):s.set(a,{value:null,finished:e||!1,cancelled:t||!1})},c&&(c[i]=t[i])}});let h=e._state;!h.paused===t.pause?(h.paused=t.pause,e5(t.pause?h.pauseQueue:h.resumeQueue)):h.paused&&(t.pause=!0);let u=(a||Object.keys(e.springs)).map(i=>e.springs[i].start(t)),f=!0===t.cancel||!0===im(t,"cancel");(d||f&&h.asyncId)&&u.push(iS(++e._lastAsyncId,{props:t,state:h,actions:{pause:eJ,resume:eJ,start(t,i){f?(iO(h,e._lastAsyncId),i(iT(e))):(t.onRest=o,i(iI(d,t,h,e)))}}})),h.paused&&await new Promise(e=>{h.resumeQueue.add(e)});let p=iz(e,await Promise.all(u));if(r&&p.finished&&!(i&&p.noop)){let i=iG(t,r,s);if(i)return e._onLoopReset?.forEach(e=>e()),i9(e,[i]),i3(e,i,!0)}return l&&eM.batchedUpdates(()=>l(p,e,e.item)),p}function i5(e,t){let i,a,s={...e.springs};return t&&(i=e2(t),a=e=>{eZ.und(e.keys)&&(e=iQ(e)),eZ.obj(e.to)||(e={...e,to:void 0}),i6(s,e,e=>i8(e))}
1,i.forEach(a)),i4(e,s),s}function i4(e,t){e1(t,(t,i)=>{e.springs[i]||(e.springs[i]=t,tj(t,e))})}function i8(e,t){let i=new iW;return i.key=e,t&&tj(i,t),i}function i6(e,t,i){let a;t.keys&&(a=t.keys,a.forEach(a=>{(e[a]||(e[a]=i(a)))._prepareNode(t)}))}function i9(e,t){t.forEach(t=>{i6(e.springs,t,t=>i8(t,e))})}var i7=ep.createContext({pause:!1,immediate:!1}),ae=class extends iF{constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=tR(...t);const i=this._get();t8(this,ir(i).create(i))}advance(e){let t=this._get();e0(t,this.get())||(t4(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&ai(this._active)&&aa(this)}_get(){let e=eZ.arr(this.source)?this.source.map(tM):e2(tM(this.source));return this.calc(...e)}_start(){if(this.idle&&!ai(this._active)){let e;this.idle=!1,e=t6(this),e.forEach(e=>{e.done=!1}),eX.skipAnimation?(eM.batchedUpdates(()=>this.advance()),aa(this)):ts.start(this)}}_attach(){let e,t,i=1;e=e2(this.source),t=e=>{tA(e)&&tj(e,this),e instanceof iF&&(e.idle||this._active.add(e),i=Math.max(i,e.priority+1))},e.forEach(t),this.priority=i,this._start()}_detach(){let e,t;e=e2(this.source),t=e=>{tA(e)&&tN(e,this)},e.forEach(t),this._active.clear(),aa(this)}eventObserved(e){"change"==e.type?e.idle?this.advance():(this._active.add(e.parent),this._start()):"idle"==e.type?this._active.delete(e.parent):"priority"==e.type&&(this.priority=e2(this.source).reduce((e,t)=>Math.max(e,(t instanceof iF?t.priority:0)+1),0))}};function at(e){return!1!==e.idle}function ai(e){return!e.size||Array.from(e).every(at)}function aa(e){if(!e.idle){let t;e.idle=!0,t=t6(e),t.forEach(e=>{e.done=!0}),tI(e,{type:"idle",parent:e})}}eX.assign({createStringInterpolator:tG,to:(e,t)=>new ae(e,t)}),ts.advance;var as=e.i(15882),an=/^--/,ar={},ao={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},al=["Webkit","Ms","Moz","O"];ao=Object.keys(ao).reduce((e,t)=>(al.forEach(i=>e[i+t.charAt(0).toUpperCase()+t.substring(1)]=e[t]),e),ao);var ac=/^(matrix|translate|scale|rotate|skew)/,ad=/^(translate)/,ah=/^(rotate|skew)/,au=(e,t)=>eZ.num(e)&&0!==e?e+t:e,af=(e,t)=>eZ.arr(e)?e.every(e=>af(e,t)):eZ.num(e)?e===t:parseFloat(e)===t,ap=class extends ii{constructor({x:e,y:t,z:i,...a}){const s=[],n=[];(e||t||i)&&(s.push([e||0,t||0,i||0]),n.push(e=>[`translate3d(${e.map(e=>au(e,"px")).join(",")})`,af(e,0)])),e1(a,(e,t)=>{if("transform"===t)s.push([e||""]),n.push(e=>[e,""===e]);else if(ac.test(t)){if(delete a[t],eZ.und(e))return;let i=ad.test(t)?"px":ah.test(t)?"deg":"";s.push(e2(e)),n.push("rotate3d"===t?([e,t,a,s])=>[`rotate3d(${e},${t},${a},${au(s,i)})`,af(s,0)]:e=>[`${t}(${e.map(e=>au(e,i)).join(",")})`,af(e,+!!t.startsWith("scale"))])}}),s.length&&(a.transform=new am(s,n)),super(a)}},am=class extends tO{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e,t,i="",a=!0;return e=this.inputs,t=(e,t)=>{let s=tM(e[0]),[n,r]=this.transforms[t](eZ.arr(s)?s:e.map(tM));i+=" "+n,a=a&&r},e.forEach(t),a?"none":i}observerAdded(e){let t,i;1==e&&(t=this.inputs,i=e=>{let t;return t=e=>tA(e)&&tj(e,this),e.forEach(t)},t.forEach(i))}observerRemoved(e){let t,i;0==e&&(t=this.inputs,i=e=>{let t;return t=e=>tA(e)&&tN(e,this),e.forEach(t)},t.forEach(i))}eventObserved(e){"change"==e.type&&(this._value=null),tI(this,e)}};function ag(e){return[parseInt(e.slice(1,3),16)/255,parseInt(e.slice(3,5),16)/255,parseInt(e.slice(5,7),16)/255]}function av({className:e,scale:t=1,dark:i=!1,baseColor:a="#FFFFFF",glowColor:s="#FFFFFF",markerColor:n="#00FFFF",offsetX:r=0,offsetY:o=0,speed:l=.0025,opacity:c=1,brightness:d=1,markers:h=[{location:[40.7128,-74.006],size:.05},{location:[34.052235,-118.243683],size:.05},{location:[59.9375,30.308611],size:.05},{location:[37.773972,-122.431297],size:.05},{location:[51.509865,-.118092],size:.05}]}){let u=0,f=0,p=(0,ep.useRef)(null),m=(0,ep.useRef)(null),g=(0,ep.useRef)(0),[{r:v},y]=function(e,t){let i=eZ.fun(e),[[a],s]=function(e,t,i){let a=eZ.fun(t)&&t;a&&!i&&(i=[]);let s=(0,ep.useMemo)(()=>{let e,t,i;
1return a||3==arguments.length?(e=[],(t=function(t){let a;tK(`${tQ}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`);let s=[];return a=(e,a)=>{if(eZ.und(t))s.push(e.start());else{let n=i(t,e,a);n&&s.push(e.start(n))}},e.forEach(a),s}).current=e,t.add=function(t){e.includes(t)||e.push(t)},t.delete=function(t){let i=e.indexOf(t);~i&&e.splice(i,1)},t.pause=function(){let t;return t=e=>e.pause(...arguments),e.forEach(t),this},t.resume=function(){let t;return t=e=>e.resume(...arguments),e.forEach(t),this},t.set=function(t){e.forEach((e,i)=>{let a=eZ.fun(t)?t(i,e):t;a&&e.set(a)})},t.start=function(t){let i,a=[];return i=(e,i)=>{if(eZ.und(t))a.push(e.start());else{let s=this._getProps(t,e,i);s&&a.push(e.start(s))}},e.forEach(i),a},t.stop=function(){let t;return t=e=>e.stop(...arguments),e.forEach(t),this},t.update=function(t){let i;return i=(e,i)=>e.update(this._getProps(t,e,i)),e.forEach(i),this},t._getProps=i=function(e,t,i){return eZ.fun(e)?e(i,t):e},t):void 0},[]),n=(0,ep.useRef)(0),r=t0(),o=(0,ep.useMemo)(()=>({ctrls:[],queue:[],flush(e,t){let i=i5(e,t);return!(n.current>0)||o.queue.length||Object.keys(i).some(t=>!e.springs[t])?new Promise(a=>{i4(e,i),o.queue.push(()=>{a(i2(e,t))}),r()}):i2(e,t)}}),[]),l=(0,ep.useRef)([...o.ctrls]),c=(0,ep.useRef)([]),d=(0,ep.useRef)([]);d.current=[];let h=t3(e)||0;function u(e,i){for(let s=e;s<i;s++){let e=l.current[s]||(l.current[s]=new i1(null,o.flush)),i=a?a(s,e):t[s];i&&(c.current[s]=function(e){let t=iQ(e);return eZ.und(t.default)&&(t.default=iv(t)),t}(i))}}(0,ep.useMemo)(()=>{let t;t=l.current.slice(e,h),t.forEach(e=>{e.ref?.delete(e),s?.delete(e),e.stop(!0)}),l.current.length=e,u(h,e)},[e]),(0,ep.useMemo)(()=>{u(0,Math.min(h,e))},i);let f=l.current.map((e,t)=>i5(e,c.current[t])),p=(0,ep.useContext)(i7),m=t3(p),g=p!==m&&function(e){for(let t in e)return!0;return!1}(p);tZ(()=>{let e;n.current++,o.ctrls=l.current;let{queue:t}=o;t.length&&(o.queue=[],t.forEach(e=>e()));let i=c.current.length>0?c.current:d.current;e=l.current,e.forEach((e,t)=>{s?.add(e),g&&e.start({default:p});let a=i[t];if(a){var n;(n=a.ref)&&e.ref!==n&&(e.ref?.delete(e),n.add(e),e.ref=n),e.ref?e.queue.push({...a,default:eZ.obj(a.default)?{...a.default}:a.default}):e.start(a)}}),c.current.length>0&&(d.current=c.current),c.current=[]}),t1(()=>()=>{let e;e=o.ctrls,e.forEach(e=>e.stop(!0))});let v=f.map(e=>({...e}));return s?[v,s]:v}(1,i?e:[e],i?t||[]:t);return i||2==arguments.length?[a,s]:a}(()=>({r:0,config:{mass:1,tension:280,friction:40,precision:.001}})),[b,x]=(0,ep.useState)(!1),w=()=>{p.current&&(f=p.current.offsetWidth)};return(0,ep.useEffect)(()=>{let e=null,g=null,y=()=>{if(!p.current||(w(),f<=0)){g=requestAnimationFrame(y);return}e=((e,t)=>{let i={alpha:!0,stencil:!1,antialias:!0,depth:!1,preserveDrawingBuffer:!1,...t.context},a=e.getContext("webgl2",i),s=!!a;if(a||(a=e.getContext("webgl",i)),!a)return{destroy:()=>{},update:()=>{}};let n=s?null:a.getExtension("ANGLE_instanced_arrays"),r=t.devicePixelRatio||1;e.width=t.width*r,e.height=t.height*r;let o=t.phi||0,l=t.theta||0,c=t.markers||[],d=t.arcs||[],h=t.mapSamples||1e4,u=t.mapBrightness||1,f=t.mapBaseBrightness||0,p=t.baseColor||[1,1,1],m=t.markerColor||[1,.5,0],g=t.glowColor||[1,1,1],v=t.arcColor||[.3,.6,1],y=t.arcWidth??1,b=t.arcHeight??.2,x=t.diffuse||1,w=t.dark||0,_=t.opacity??1,k=t.offset||[0,0],C=t.scale||1,E=t.markerElevation??.05,P=ek(a,"attribute vec2 a;void main(){gl_Position=vec4(a,0,1);}","precision highp float;uniform vec2 t,v,s;uniform vec3 F,w;uniform vec4 n;uniform float k,x,y;uniform sampler2D z;float u;mat3 A(float a,float b){float c=cos(a),d=cos(b),e=sin(a),f=sin(b);return mat3(d,f*e,-f*c,0,c,e,f,d*-e,d*c);}vec3 B(vec3 c,out float G){c=c.xzy;float q=max(2.,floor(log2(2.236068*k*3.141593*(1.-c.z*c.z))*.72021));vec2 g=floor(pow(1.618034,q)/2.236068*vec2(1,1.618034)+.5),d=fract((g+1.)*.618034)*6.283185-3.883222,e=-2.*g,f=vec2(atan(c.y,c.x),c.z-1.),r=floor(vec2(e.y*f.x-d.y*(f.y*k+1.),-e.x*f.x+d.x*(f.y*k+1.))/(d.x*e.y-e.x*d.y));float o=3.141593;vec3 C;for(float h=0.;h<4.;h+=1.){vec2 D=vec2(mod(h,2.),floor(h*.5));float j=dot(g,r+D);if(j>k)continue;float a=j,b=0.;a>=16384.?(a-=16384.,b+=.868872):0.,a>=8192.?(a-=8192.,b+=.934436):0.,a>=4096.?(a-=4096.,b+=.467218):0.,a>=2048.?(a-=2048.,b+=.733609):0.,a>=1024.?(a-=1024.,b+=.866804):0.,a>=512.?(a-=512.,b+=.433402):0.,a>=256.?(a-=256.,b+=.216701):0.,a>=128.?(a-=128.,b+=.108351):0.,a>
1=64.?(a-=64.,b+=.554175):0.,a>=32.?(a-=32.,b+=.777088):0.,a>=16.?(a-=16.,b+=.888544):0.,a>=8.?(a-=8.,b+=.944272):0.,a>=4.?(a-=4.,b+=.472136):0.,a>=2.?(a-=2.,b+=.236068):0.,a>=1.?(a-=1.,b+=.618034):0.;float l=fract(b)*6.283185,i=1.-2.*j*u,m=sqrt(1.-i*i);vec3 p=vec3(cos(l)*m,sin(l)*m,i);float E=length(c-p);if(E<o)o=E,C=p;}G=o;return C.xzy;}void main(){u=1./k;vec2 c=1./t,b=(gl_FragCoord.xy*c*2.-1.)/x-v*vec2(1,-1)*c;b.x*=t.x*c.y;float a=dot(b,b),f=0.;vec4 l=vec4(0);if(a<=.64){float g;vec4 m=vec4(0);vec3 h=normalize(vec3(b,sqrt(.64-a)));mat3 o=A(s.y,s.x);float i=h.z;vec3 d=B(h*o,g);float j=asin(d.y),e=acos(-d.x/cos(j));e=d.z<0.?-e:e;float p=max(texture2D(z,vec2(e*.5/3.141593,-(j/3.141593+.5))).x,y),q=p*smoothstep(8e-3,0.,g)*pow(i,n.y)*n.x;m+=vec4(F*(mix((1.-q)*pow(i,.4),q,n.z)+.1)+pow(1.-i,4.)*w,1),l+=m*(1.+n.w)*.5,f=(1.-a)*(1.-a)*smoothstep(0.,1.,.2/(a-.64));}else{float r=sqrt(.2/(a-.64));f=smoothstep(.5,1.,r/(r+1.));}gl_FragColor=l+vec4(f*w,f);}"),R=ek(a,"varying vec2 m;varying vec3 g;varying float h;attribute vec2 n;attribute vec3 p,w;attribute float q,x;uniform vec2 b,r;uniform float i,j,k,s;void main(){float c=cos(j),d=sin(j),e=cos(i),f=sin(i);vec3 a=p*(.8+s),l=vec3(e*a.x+f*a.z,f*d*a.x+c*a.y-e*d*a.z,-f*c*a.x+d*a.y+e*c*a.z);if(l.z<0.&&length(l.xy)<.8){gl_Position=vec4(2,2,0,1);return;}float t=b.y/b.x;vec2 y=(l.xy+n*q*2.)*vec2(t,1)*k+r*vec2(1,-1)*k/b;gl_Position=vec4(y,0,1),m=n,g=w,h=x;}","precision highp float;varying vec2 m;varying vec3 g;varying float h;uniform vec3 v;void main(){if(length(m)>.25)discard;vec3 a=h>.5?g:v;gl_FragColor=vec4(a,1);}"),S=ek(a,"varying vec3 i;varying float j,s,t;attribute vec2 k;attribute vec3 l,m,N;attribute float v,w,O;uniform vec2 g,x;uniform float y,z,h,A;mat3 B(float a,float b){float c=cos(a),d=cos(b),e=sin(a),f=sin(b);return mat3(d,f*e,-f*c,0,c,e,f,d*-e,d*c);}vec3 C(vec3 c,vec3 d,vec3 e,float a){float b=1.-a;return b*b*c+2.*b*a*d+a*a*e;}vec3 D(vec3 c,vec3 b,vec3 d,float a){float e=1.-a;return 2.*e*(b-c)+2.*a*(d-b);}void main(){mat3 b=B(z,y);float c=.8+A;vec3 d=l*c,e=m*c,f=l+m;float n=length(f);vec3 E=n>1e-3?f/n:vec3(0,1,0),o=E*(.8+v);float p=k.x;vec3 F=C(d,o,e,p),q=b*F,G=D(d,o,e,p),H=b*G;vec2 a=H.xy;float r=length(a);vec2 I=r>1e-3?vec2(-a.y,a.x)/r:vec2(1,0);float J=g.x/g.y;vec2 K=q.xy*vec2(1./J,1)*h+x*vec2(1,-1)*h/g,P=K+I*w*k.y*h;gl_Position=vec4(P,0,1),i=N,j=O,s=q.z,t=length(q.xy);}","precision highp float;varying vec3 i;varying float j,s,t;uniform vec3 M;void main(){if(s<0.&&t<.8)discard;vec3 a=j>.5?i:M;gl_FragColor=vec4(a,1);}");if(!P)return{destroy:()=>{},update:()=>{}};let z=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,z),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),a.STATIC_DRAW);let A=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,A);let M=[];for(let e=0;e<=32;e++){let t=e/32;M.push(t,-1,t,1)}a.bufferData(a.ARRAY_BUFFER,new Float32Array(M),a.STATIC_DRAW);let T=a.createBuffer(),I=a.createBuffer(),O=eC(a,P,["t","s","k","x","v","F","w","n","y","z"]),D=eC(a,R,["i","j","b","k","r","v","s"]),j=eE(a,R,["n","p","q","w","x"]),N=eC(a,S,["y","z","g","h","x","M","A"]),F=eE(a,S,["k","l","m","v","w","N","O"]),L=a.getAttribLocation(P,"a"),B=a.createTexture();a.bindTexture(a.TEXTURE_2D,B),a.texImage2D(a.TEXTURE_2D,0,a.RGB,1,1,0,a.RGB,a.UNSIGNED_BYTE,new Uint8Array([0,0,0])),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST);let q=new Image;q.onload=()=>{a.bindTexture(a.TEXTURE_2D,B),a.texImage2D(a.TEXTURE_2D,0,a.RGB,a.RGB,a.UNSIGNED_BYTE,q),a.generateMipmap(a.TEXTURE_2D),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,B)},q.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAACAAQAAAADMzoqnAAAECklEQVR42u3VsW4jRRzH8d94gzfF4Q0VQaC4vBLTRTp0mze4ggfAPAE5XQEFsGNAVIjwBrmW7h7gJE+giKjyABTZE4g06LKJETdRJvtD65kdz6yduKABiW+TVfzRf2bXYxtcE/59YJCz6YdbgQF6ACSRrwYKYImmh5PbwOewlV3wlQNbAN6SEExjUOO+BU0aCSnxReHABUlK4YFQeJeUT3da8IIkZ6NGoSnFY5KsMoVzMKfECUnqxgPYRArarmUCndHwzIEaQEpg5xVdBXROl8mpAQx5dUgPiHoYAAkg5w3JABR06byGAVgcRGAz5bznj6phBQNRFwyqgdxebH6gshJAesWoFhgYpApAFoG8BIZ/fEhSox5jDjQXmV0Ar5XJfAIrALi3URVs09gHIL4XJCkLC5LH9JWiArABFCSrQjdgkBzRJ0WJeUOSNyQAfJJwUSWUBRlJQ8oGHATACGlBynnzy2kEYLNjrxouigD8BZcgOeVPqh12RtufaCN5wCPVDpvQ9lsIrqndsJtDcWqBCpf4hWN7OdWHBw58FwIaNOU/n1TpMW2DFaD48cmr4185T8NHkpUFX749pQPVdgRKC/DGoQPVeAEKv+WHvY8OOWNTPRp5kHuwSf8wz
1XtVBKR7YwEH9H3lQUaypUfSATOALyVNu5vZJW31Bnx98nkLfDUWJaz6ixvm+RIQRdl3kmRxxiaDoGnZW4CpPfkaQadlcPim1xOSvETQo7Lv75enVAXJ3xGUlony4KQBBWUM1NiDc6qhyS8RgQs18OCMMtPDaAUIyg0PZkRWDqs+wnKJBTDI1Js6BolegOsKmUxNDBAAKqQyMQmidhegBlLZ+wwKYdv5M/8x1khkb1cgKqP2H+MKyV5vS+whrE8DQDgAlUAoRBX056EElJCjJVACeJBZgNfVp+iCCm4RBWCgKsRxASSA9KgDhDtCiTuMyfHsKXzhC6wNAIjjWb8LKAOA2ctk3FmCOlgKFy8f1N0JJtgsxinYnVAHt4t3gPzZXSCTyCWCQmBT91QE3B5yarSN40dNHYPka4TlDhTUI8zLvl0JSL3vZn6DsCFZOeB2yROEpR68sECQQA++xIGCR2X7DwlEoLRgUrZrqlUg50S1uy43YqDcN6UFBVkhAjWiCV2Q0jgQPdplMKxvBXodcOfAwJYvgdL+1etA1YJJfBcZlQV7sO1i2gHoNiyxtQ5sBsCgWyoxCHiFFd2L5nUTCqMAqGUgsQ9f5kCcCiZgRYkMgMTd5WsB1rTzj0Em14BE4r+QxN1lCEsVur2PoF5Wbg8RJXR4djgvBgauhLywoEZQrt1KKRdVS4CdlJ8qafyP+9KIj/nE/d7kKwH9jgS72e9DV+kvfTWgct4ZyP8Byb8BPG7MaaIIkAQAAAAASUVORK5CYII=";let V=0;function U(t){let i=Math.cos(l),a=Math.cos(o),s=Math.sin(l),n=Math.sin(o),c=a*t[0]+n*t[2],d=n*s*t[0]+i*t[1]-a*s*t[2];return[(c/(e.width/e.height)*C+k[0]*C*r/e.width+1)/2,(-d*C+k[1]*C*r/e.height+1)/2,-n*i*t[0]+s*t[1]+a*i*t[2]>=0||c*c+d*d>=.64]}function H(e){let t=ez(e),i=.8+E,a=U([t[0]*i,t[1]*i,t[2]*i]);return{x:a[0],y:a[1],visible:a[2]}}function W(e){let t=ez(e.from),i=ez(e.to),a=[t[0]+i[0],t[1]+i[1],t[2]+i[2]],s=(a[0]**2+a[1]**2+a[2]**2)**.5;if(s<.001)return null;let n=.25*(.8+E)+.5*(.8+b+E)/s,r=U([a[0]*n,a[1]*n,a[2]*n]);return{x:r[0],y:r[1],visible:r[2]}}function $(e,t,i,r,o){e<0||(a.enableVertexAttribArray(e),a.vertexAttribPointer(e,t,a.FLOAT,!1,i,r),s?a.vertexAttribDivisor(e,o):n&&n.vertexAttribDivisorANGLE(e,o))}let G,Q=document.createElement("div");Q.style.cssText="position:relative;width:100%;height:100%",e.parentElement?.insertBefore(Q,e),Q.append(e);let X=function(e){let t={},i={},a={},s=document.createElement("style");function n(t,i,a,s){let n=t[i];n||((n=document.createElement("div")).style.cssText="position:absolute;width:1px;height:1px;pointer-events:none;
1anchor-name:"+a,e.append(n),t[i]=n),n.style.left=100*s.x+"%",n.style.top=100*s.y+"%"}return document.head.append(s),{m:function(e,i){let s={};for(let r of e){let e=r.id;if(!e)continue;let o=i(r.location);s[e]=1,n(t,e,"--cobe-"+e,o),o.visible?a["--cobe-visible-"+e]="N":delete a["--cobe-visible-"+e]}for(let e in t)s[e]||(t[e].remove(),delete t[e],delete a["--cobe-visible-"+e])},a:function(e,t){let s={};for(let r of e){let e=r.id;if(!e)continue;let o=t(r);s[e]=1,n(i,e,"--cobe-arc-"+e,o),o.visible?a["--cobe-visible-arc-"+e]="N":delete a["--cobe-visible-arc-"+e]}for(let e in i)s[e]||(i[e].remove(),delete i[e],delete a["--cobe-visible-arc-"+e])},r:function(){for(let e in t)t[e].remove();for(let e in i)i[e].remove();s.remove()},s:function(){let e="";for(let t in a)e+=t+":"+a[t]+";";s.textContent=":root{"+e+"}"}}}(Q);function Y(t){let i,M;if(t.phi!=G&&(o=t.phi),t.theta!=G&&(l=t.theta),t.markers&&(i=new Float32Array(8*(c=t.markers).length),c.forEach((e,t)=>{i.set([...ez(e.location),e.size,...e.color||[0,0,0],+!!e.color],8*t)}),a.bindBuffer(a.ARRAY_BUFFER,T),a.bufferData(a.ARRAY_BUFFER,i,a.DYNAMIC_DRAW)),t.arcs&&(V=(d=t.arcs).length,M=new Float32Array(12*d.length),d.forEach((e,t)=>{M.set([...ez(e.from),...ez(e.to),b+E,.005*y,...e.color||[0,0,0],+!!e.color],12*t)}),a.bindBuffer(a.ARRAY_BUFFER,I),a.bufferData(a.ARRAY_BUFFER,M,a.DYNAMIC_DRAW)),t.width&&t.height&&(e.width=t.width*r,e.height=t.height*r),t.mapSamples!=G&&(h=t.mapSamples),t.mapBrightness!=G&&(u=t.mapBrightness),t.mapBaseBrightness!=G&&(f=t.mapBaseBrightness),t.baseColor!=G&&(p=t.baseColor),t.markerColor!=G&&(m=t.markerColor),t.glowColor!=G&&(g=t.glowColor),t.arcColor!=G&&(v=t.arcColor),t.arcWidth!=G&&(y=t.arcWidth),t.arcHeight!=G&&(b=t.arcHeight),t.diffuse!=G&&(x=t.diffuse),t.dark!=G&&(w=t.dark),t.opacity!=G&&(_=t.opacity),t.offset!=G&&(k=t.offset),t.scale!=G&&(C=t.scale),t.markerElevation!=G&&(E=t.markerElevation),X.m(c,H),X.a(d,W),X.s(),a.viewport(0,0,e.width,e.height),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.useProgram(P),a.bindBuffer(a.ARRAY_BUFFER,z),a.enableVertexAttribArray(L),a.vertexAttribPointer(L,2,a.FLOAT,!1,0,0),s?a.vertexAttribDivisor(L,0):n&&n.vertexAttribDivisorANGLE(L,0),a.uniform2f(O.t,e.width,e.height),a.uniform2f(O.s,o,l),a.uniform1f(O.k,h),a.uniform1f(O.x,C),a.uniform2f(O.v,k[0]*r,k[1]*r),a.uniform3fv(O.F,p),a.uniform3fv(O.w,g),a.uniform4f(O.n,u,x,w,_),a.uniform1f(O.y,f),a.uniform1i(O.z,0),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,B),a.drawArrays(a.TRIANGLES,0,6),S&&V>0)if(a.useProgram(S),a.bindBuffer(a.ARRAY_BUFFER,A),F.k>=0&&(a.enableVertexAttribArray(F.k),a.vertexAttribPointer(F.k,2,a.FLOAT,!1,0,0),s?a.vertexAttribDivisor(F.k,0):n&&n.vertexAttribDivisorANGLE(F.k,0)),a.bindBuffer(a.ARRAY_BUFFER,I),$(F.l,3,48,0,1),$(F.m,3,48,12,1),$(F.v,1,48,24,1),$(F.w,1,48,28,1),$(F.N,3,48,32,1),$(F.O,1,48,44,1),a.uniform1f(N.y,o),a.uniform1f(N.z,l),a.uniform2f(N.g,e.width,e.height),a.uniform1f(N.h,C),a.uniform2f(N.x,k[0]*r,k[1]*r),a.uniform3fv(N.M,v),a.uniform1f(N.A,E),s)a.drawArraysInstanced(a.TRIANGLE_STRIP,0,66,V);else if(n)n.drawArraysInstancedANGLE(a.TRIANGLE_STRIP,0,66,V);else for(let e=0;e<V;e++)a.drawArrays(a.TRIANGLE_STRIP,0,66);R&&c.length>0&&(a.useProgram(R),a.bindBuffer(a.ARRAY_BUFFER,z),j.n>=0&&(a.enableVertexAttribArray(j.n),a.vertexAttribPointer(j.n,2,a.FLOAT,!1,0,0),s?a.vertexAttribDivisor(j.n,0):n&&n.vertexAttribDivisorANGLE(j.n,0)),a.bindBuffer(a.ARRAY_BUFFER,T),$(j.p,3,32,0,1),$(j.q,1,32,12,1),$(j.w,3,32,16,1),$(j.x,1,32,28,1),a.uniform1f(D.i,o),a.uniform1f(D.j,l),a.uniform2f(D.b,e.width,e.height),a.uniform1f(D.k,C),a.uniform2f(D.r,k[0]*r,k[1]*r),a.uniform3fv(D.v,m),a.uniform1f(D.s,E),function(e){if(s)a.drawArraysInstanced(a.TRIANGLES,0,6,e);else if(n)n.drawArraysInstancedANGLE(a.TRIANGLES,0,6,e);else for(let t=0;t<e;t++)a.drawArrays(a.TRIANGLES,0,6)}(c.length))}return Y({markers:c,arcs:d}),{update:Y,destroy:()=>{a.deleteBuffer(z),a.deleteBuffer(A),a.deleteBuffer(T),a.deleteBuffer(I),a.deleteProgram(P),R&&a.deleteProgram(R),S&&a.deleteProgram(S),X.r()}}})(p.current,{devicePixelRatio:2,width:2*f,height:2*f,scale:t,mapBrightness:d,dark:i,baseColor:ag(a),markerColor:ag(n),glowColor:ag(s),opacity:c,offset:[r,o],markers:h,phi:0,theta:.3,diffuse:.4,mapSamples:16e3,onRender:e=>{m.current||(u+=l),e.phi=u+v.get(),e.width=2*f,e.height=2*f}})};return window.addEventListener("resize",w),g=requestAnimationFrame(y),()=>{window.removeEventListener("resize",w),g&&cancelAnimationFrame(g),e&&e.destroy()}},[]),(0,ed.jsx)("div",{className:(0,ew.default)("absolute inset-0 aspect-square",e),children:(0,ed.jsx)("canvas",{className:(0,ew.default)("h-full w-full",b?"cursor-grabbing":"cursor-grab"),ref:p,onPointerDown:e=>{m.current=e.clientX-g.current,x(!0)},onPointerUp:e=>void(m.current=null,x(!1)),onPointerOut:e=>void(m.current=null,x(!1)),onMouseMove:e=>(function(e){if(null!==m.current){let t=e.clientX-m.current;g.current=t,y.start({r:t/200})}})(e),onTouchMove:e=>(function(e){if(null!==m.current&&e.touches[0]){let t=e.touches[0].clientX-m.current;g.current=t,y.r=t/100}})(e)})})}eX.assign({batchedUpdates:as.unstable_batchedUpdates,createStringInterpolator:tG,colors:{transparent:0,aliceblue:0xf0f8ffff,antiquewhite:0xfaebd7ff,aqua:0xffffff,aquamarine:0x7fffd4ff,azure:0xf0ffffff,beige:0xf5f5dcff,bisque:0xffe4c4ff,black:255,blanchedalmond:0xffebcdff,blue:65535,blueviolet:0x8a2be2ff,brown:0xa52a2aff,burlywood:0xdeb887ff,burntsienna:0xea7e5dff,cadetblue:0x5f9ea0ff,chartreuse:0x7fff00ff,chocolate:0xd2691eff,coral:0xff7f50ff,cornflowerblue:0x6495edff,cornsilk:0xfff8dcff,crimson:0xdc143cff,cyan:0xffffff,darkblue:35839,darkcyan:9145343,dar
1kgoldenrod:0xb8860bff,darkgray:0xa9a9a9ff,darkgreen:6553855,darkgrey:0xa9a9a9ff,darkkhaki:0xbdb76bff,darkmagenta:0x8b008bff,darkolivegreen:0x556b2fff,darkorange:0xff8c00ff,darkorchid:0x9932ccff,darkred:0x8b0000ff,darksalmon:0xe9967aff,darkseagreen:0x8fbc8fff,darkslateblue:0x483d8bff,darkslategray:0x2f4f4fff,darkslategrey:0x2f4f4fff,darkturquoise:0xced1ff,darkviolet:0x9400d3ff,deeppink:0xff1493ff,deepskyblue:0xbfffff,dimgray:0x696969ff,dimgrey:0x696969ff,dodgerblue:0x1e90ffff,firebrick:0xb22222ff,floralwhite:0xfffaf0ff,forestgreen:0x228b22ff,fuchsia:0xff00ffff,gainsboro:0xdcdcdcff,ghostwhite:0xf8f8ffff,gold:0xffd700ff,goldenrod:0xdaa520ff,gray:0x808080ff,green:8388863,greenyellow:0xadff2fff,grey:0x808080ff,honeydew:0xf0fff0ff,hotpink:0xff69b4ff,indianred:0xcd5c5cff,indigo:0x4b0082ff,ivory:0xfffff0ff,khaki:0xf0e68cff,lavender:0xe6e6faff,lavenderblush:0xfff0f5ff,lawngreen:0x7cfc00ff,lemonchiffon:0xfffacdff,lightblue:0xadd8e6ff,lightcoral:0xf08080ff,lightcyan:0xe0ffffff,lightgoldenrodyellow:0xfafad2ff,lightgray:0xd3d3d3ff,lightgreen:0x90ee90ff,lightgrey:0xd3d3d3ff,lightpink:0xffb6c1ff,lightsalmon:0xffa07aff,lightseagreen:0x20b2aaff,lightskyblue:0x87cefaff,lightslategray:0x778899ff,lightslategrey:0x778899ff,lightsteelblue:0xb0c4deff,lightyellow:0xffffe0ff,lime:0xff00ff,limegreen:0x32cd32ff,linen:0xfaf0e6ff,magenta:0xff00ffff,maroon:0x800000ff,mediumaquamarine:0x66cdaaff,mediumblue:52735,mediumorchid:0xba55d3ff,mediumpurple:0x9370dbff,mediumseagreen:0x3cb371ff,mediumslateblue:0x7b68eeff,mediumspringgreen:0xfa9aff,mediumturquoise:0x48d1ccff,mediumvioletred:0xc71585ff,midnightblue:0x191970ff,mintcream:0xf5fffaff,mistyrose:0xffe4e1ff,moccasin:0xffe4b5ff,navajowhite:0xffdeadff,navy:33023,oldlace:0xfdf5e6ff,olive:0x808000ff,olivedrab:0x6b8e23ff,orange:0xffa500ff,orangered:0xff4500ff,orchid:0xda70d6ff,palegoldenrod:0xeee8aaff,palegreen:0x98fb98ff,paleturquoise:0xafeeeeff,palevioletred:0xdb7093ff,papayawhip:0xffefd5ff,peachpuff:0xffdab9ff,peru:0xcd853fff,pink:0xffc0cbff,plum:0xdda0ddff,powderblue:0xb0e0e6ff,purple:0x800080ff,rebeccapurple:0x663399ff,red:0xff0000ff,rosybrown:0xbc8f8fff,royalblue:0x4169e1ff,saddlebrown:0x8b4513ff,salmon:0xfa8072ff,sandybrown:0xf4a460ff,seagreen:0x2e8b57ff,seashell:0xfff5eeff,sienna:0xa0522dff,silver:0xc0c0c0ff,skyblue:0x87ceebff,slateblue:0x6a5acdff,slategray:0x708090ff,slategrey:0x708090ff,snow:0xfffafaff,springgreen:0xff7fff,steelblue:0x4682b4ff,tan:0xd2b48cff,teal:8421631,thistle:0xd8bfd8ff,tomato:0xff6347ff,turquoise:0x40e0d0ff,violet:0xee82eeff,wheat:0xf5deb3ff,white:0xffffffff,whitesmoke:0xf5f5f5ff,yellow:0xffff00ff,yellowgreen:0x9acd32ff}}),((e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:i=e=>new ii(e),getComponentProps:a=e=>e}={})=>{let s={applyAnimatedValues:t,createAnimatedStyle:i,getComponentProps:a},n=e=>{let t=id(e)||"Anonymous";return(e=eZ.str(e)?n[e]||(n[e]=io(e,s)):e[ic]||(e[ic]=io(e,s))).displayName=`Animated(${t})`,e};return e1(e,(t,i)=>{eZ.arr(e)&&(i=id(t)),n[i]=n(t)}),{animated:n}})(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],{applyAnimatedValues:function(e,t){if(!e.nodeType||!e.setAttribute||!e.removeAttribute)return!1;let i="filter"===e.nodeName||e.parentNode&&"filter"===e.parentNode.nodeName,{className:a,style:s,children:n,scrollTop:r,scrollLeft:o,viewBox:l,...c}=t,d=Object.values(c),h=Object.keys(c).map(t=>i||e.hasAttribute(t)?t:ar[t]||(ar[t]=t.replace(/([A-Z])/g,e=>"-"+e.toLowerCase())));for(let i in t.hasOwnProperty("children")&&(e.textContent=n),s)if(s.hasOwnProperty(i)){var u;let t=null==(u=s[i])||"boolean"==typeof u||""===u?"":"number"!=typeof u||0===u||an.test(i)||ao.hasOwnProperty(i)&&ao[i]?(""+u).trim():u+"px";an.test(i)?e.style.setProperty(i,t):e.style[i]=t}
1h.forEach((t,i)=>{let a=d[i];void 0!==a?e.setAttribute(t,a):e.removeAttribute(t)}),t.hasOwnProperty("className")&&(void 0!==a?e.className=a:e.removeAttribute("class")),void 0!==r&&(e.scrollTop=r),void 0!==o&&(e.scrollLeft=o),t.hasOwnProperty("viewBox")&&(void 0!==l?e.setAttribute("viewBox",l):e.removeAttribute("viewBox"))},createAnimatedStyle:e=>new ap(e),getComponentProps:({scrollTop:e,scrollLeft:t,...i})=>i}).animated;var ay=e.i(2485),ab=e.i(73248),ax=e.i(74617),aw=e.i(59305),a_=e.i(16171),ak=e.i(22297),aC=e.i(76044),aE=(e.i(82219),e.i(16455)),aP=e.i(57779),aR=e.i(1982),aS="HoverCard",[az,aA]=(0,aw.createContextScope)(aS,[aC.createPopperScope]),aM=(0,aC.createPopperScope)(),[aT,aI]=az(aS),aO=e=>{let{__scopeHoverCard:t,children:i,open:a,defaultOpen:s,onOpenChange:n,openDelay:r=700,closeDelay:o=300}=e,l=aM(t),c=ep.useRef(0),d=ep.useRef(0),h=ep.useRef(!1),u=ep.useRef(!1),[f,p]=(0,a_.useControllableState)({prop:a,defaultProp:s??!1,onChange:n,caller:aS}),m=ep.useCallback(()=>{clearTimeout(d.current),c.current=window.setTimeout(()=>p(!0),r)},[r,p]),g=ep.useCallback(()=>{clearTimeout(c.current),h.current||u.current||(d.current=window.setTimeout(()=>p(!1),o))},[o,p]),v=ep.useCallback(()=>p(!1),[p]);return ep.useEffect(()=>()=>{clearTimeout(c.current),clearTimeout(d.current)},[]),(0,ed.jsx)(aT,{scope:t,open:f,onOpenChange:p,onOpen:m,onClose:g,onDismiss:v,hasSelectionRef:h,isPointerDownOnContentRef:u,children:(0,ed.jsx)(aC.Root,{...l,children:i})})};aO.displayName=aS;var aD="HoverCardTrigger",aj=ep.forwardRef((e,t)=>{let{__scopeHoverCard:i,...a}=e,s=aI(aD,i),n=aM(i);return(0,ed.jsx)(aC.Anchor,{asChild:!0,...n,children:(0,ed.jsx)(aP.Primitive.a,{"data-state":s.open?"open":"closed",...a,ref:t,onPointerEnter:(0,ax.composeEventHandlers)(e.onPointerEnter,aV(s.onOpen)),onPointerLeave:(0,ax.composeEventHandlers)(e.onPointerLeave,aV(s.onClose)),onFocus:(0,ax.composeEventHandlers)(e.onFocus,s.onOpen),onBlur:(0,ax.composeEventHandlers)(e.onBlur,s.onClose),onTouchStart:(0,ax.composeEventHandlers)(e.onTouchStart,e=>e.preventDefault())})})});aj.displayName=aD;var[aN,aF]=az("HoverCardPortal",{forceMount:void 0}),aL="HoverCardContent",aB=ep.forwardRef((e,t)=>{let i=aF(aL,e.__scopeHoverCard),{forceMount:a=i.forceMount,...s}=e,n=aI(aL,e.__scopeHoverCard);return(0,ed.jsx)(aE.Presence,{present:a||n.open,children:(0,ed.jsx)(aq,{"data-state":n.open?"open":"closed",...s,onPointerEnter:(0,ax.composeEventHandlers)(e.onPointerEnter,aV(n.onOpen)),onPointerLeave:(0,ax.composeEventHandlers)(e.onPointerLeave,aV(n.onClose)),ref:t})})});aB.displayName=aL;var aq=ep.forwardRef((e,t)=>{let{__scopeHoverCard:i,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:n,onInteractOutside:r,...o}=e,l=aI(aL,i),c=aM(i),d=ep.useRef(null),h=(0,ak.useComposedRefs)(t,d),[u,f]=ep.useState(!1);return ep.useEffect(()=>{if(u){let e=document.body;return D=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=D,e.style.webkitUserSelect=D}}},[u]),ep.useEffect(()=>{if(d.current){let e=()=>{f(!1),l.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(l.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!1}}},[l.isPointerDownOnContentRef,l.hasSelectionRef]),ep.useEffect(()=>{d.current&&(function(e){let t=[],i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;i.nextNode();)t.push(i.currentNode);return t})(d.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,ed.jsx)(aR.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:r,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:(0,ax.composeEventHandlers)(n,e=>{e.preventDefault()}),onDismiss:l.onDismiss,children:(0,ed.jsx)(aC.Content,{...c,...o,onPointerDown:(0,ax.composeEventHandlers)(o.onPointerDown,e=>{e.currentTarget.contains(e.target)&&f(!0),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!0}),ref:h,style:{...o.style,userSelect:u?"text":void 0,WebkitUserSelect:u?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function aV(e){return t=>"touch"===t.pointerType?void 0:e()}ep.forwardRef((e,t)=>
1{let{__scopeHoverCard:i,...a}=e,s=aM(i);return(0,ed.jsx)(aC.Arrow,{...s,...a,ref:t})}).displayName="HoverCardArrow";var aU=e.i(43202),aH=e.i(85088),aW=e.i(10466);e.i(72202);var a$=e.i(10611),aG=e.i(37946),aQ=e.i(86583);function aX(e){return"number"==typeof e?e:parseFloat(e)}var aY=e.i(51274),aK=e.i(3364);let aJ=({children:e,url:t,className:i,width:a=200,height:s=125,isStatic:n=!1,imageSrc:r="",side:o="top"})=>{let l;if(n)l=r;else{let e=function(e){var t,i,a,s="";for(t in e)if(void 0!==(a=e[t]))if(Array.isArray(a))for(i=0;i<a.length;i++)s&&(s+="&"),s+=encodeURIComponent(t)+"="+encodeURIComponent(a[i]);else s&&(s+="&"),s+=encodeURIComponent(t)+"="+encodeURIComponent(a);return""+s}({url:t,screenshot:!0,meta:!1,embed:"screenshot.url",colorScheme:"dark","viewport.isMobile":!0,"viewport.deviceScaleFactor":1,"viewport.width":3*a,"viewport.height":3*s});l=`https://api.microlink.io/?${e}`}let[c,d]=ep.default.useState(!1),[h,u]=ep.default.useState(!1);ep.default.useEffect(()=>{u(!0)},[]);let f=(0,aW.useMotionValue)(0),p=function(e,t={}){return function(e,t={}){let{isStatic:i}=(0,ep.useContext)(aY.MotionConfigContext),a=()=>(0,aG.isMotionValue)(e)?e.get():e;if(i)return(0,aK.useTransform)(a);let s=(0,aW.useMotionValue)(a());return(0,ep.useInsertionEffect)(()=>(function(e,t,i={}){let a,s=e.get(),n=null,r=s,o="string"==typeof s?s.replace(/[\d.-]/g,""):void 0,l=()=>{n&&(n.stop(),n=null),e.animation=void 0},c=()=>{(()=>{let t=aX(e.get()),s=aX(r);if(t===s)return l();let o=n?n.getGeneratorVelocity():e.getVelocity();l(),n=new a$.JSAnimation({keyframes:[t,s],velocity:o,type:"spring",restDelta:.001,restSpeed:.01,...i,onUpdate:a})})(),e.animation=n??void 0,e.events.animationStart?.notify(),n?.then(()=>{e.animation=void 0,e.events.animationComplete?.notify()})};if(e.attach((e,t)=>{r=e,a=e=>{var i,a;return t((i=e,(a=o)?i+a:i))},aQ.frame.postRender(c)},l),(0,aG.isMotionValue)(t)){let a=!0===i.skipInitialAnimation,s=t.on("change",t=>{var i,s,n,r;a?(a=!1,e.jump((i=t,(s=o)?i+s:i),!1)):e.set((n=t,(r=o)?n+r:n))}),n=e.on("destroy",s);return()=>{s(),n()}}return l})(s,e,t),[s,JSON.stringify(t)]),s}(e,{type:"spring",...t})}(f,{stiffness:100,damping:15});return(0,ed.jsxs)(ed.Fragment,{children:[h?(0,ed.jsx)("div",{className:"hidden",children:(0,ed.jsx)(ay.default,{src:l,width:a,height:s,alt:"hidden image"})}):null,(0,ed.jsxs)(aO,{openDelay:50,closeDelay:100,onOpenChange:e=>{d(e)},children:[(0,ed.jsx)(aj,{onMouseMove:e=>{let t=e.target.getBoundingClientRect(),i=(e.clientX-t.left-t.width/2)/2;f.set(i)},className:(0,em.cn)("text-black dark:text-white",i),href:t,children:e}),(0,ed.jsx)(aB,{className:"[transform-origin:var(--radix-hover-card-content-transform-origin)]",side:o,align:"center",sideOffset:10,children:(0,ed.jsx)(aU.AnimatePresence,{children:c&&(0,ed.jsx)(aH.motion.div,{initial:{opacity:0,y:20,scale:.6},animate:{opacity:1,y:0,scale:1,transition:{type:"spring",stiffness:260,damping:20}},exit:{opacity:0,y:20,scale:.6},className:"rounded-xl shadow-xl",style:{x:p},children:(0,ed.jsx)("a",{href:t,target:"_blank",rel:"noreferrer",className:"block rounded-xl border-2 border-transparent bg-white p-1 shadow hover:border-neutral-200 dark:hover:border-neutral-800",style:{fontSize:0},children:(0,ed.jsx)(ay.default,{src:n?r:l,width:a,height:s,className:"rounded-lg",alt:"preview image"})})})})})]})]})};function aZ(){let e=[{src:"/images/collaborators/ucsf-logo.png",alt:"UCSF logo",width:200,height:145,href:"https://www.ucsf.edu"},{src:"/images/collaborators/sparc-logo.svg",alt:"NIH SPARC logo",width:200,height:111,href:"https://sparc.science"},{src:"/images/collaborators/fdi-lab-logo.png",alt:"FDI Lab logo",width:200,height:79.45,href:"https://www.fdilab.org/"},{src:"/images/collaborators/calmi-logo.png",alt:"California Medical Innovations Institute logo",width:200,height:88,href:"https://www.calmi2.org/"},{src:"/images/collaborators/UCL-logo.png",alt:"UCL logo",width:200,height:85,href:"https://www.ucl.ac.uk"},{src:"/images/collaborators/bridge2ai.png",alt:"Bridge2AI logo",width:200,height:200,href:"https://bridge2ai.org/"},{src:"/images/collaborators/ucsd-logo.png",alt:"UCSD logo",width:200,height:218,href:"https://www.ucsd.edu"},{src:"/images/collaborators/university-michigan.png",alt:"University of Michigan logo",width:200,height:113,href:"https://umich.edu"},{src:"/images/collaborators/pennsieve-logo.svg",alt:"Pennsieve logo",width:200,height:145,href:"https://discover.pennsieve.io/"},{src:"/images/collaborators/mbf-logo.png",alt:"MBF logo",width:200,height:140,href:"https://www.mbfbioscience.com"},{src:"/images/collaborators/tnf-logo.png",alt:"The Navigation Fund logo",width:250,height:200,href:"https://www.navigation.org/grants/open-science"},{src:"/images/dmp/logo-cdl.svg",alt:"California Digital Library (CDL) logo",width:200,height:60,href:"https://cdlib.org"},{src:"/images/collaborators/nih-text.png",alt:"National Institutes of Health (NIH)",width:200,height:60,href:"https://www.nih.gov"}];return(0,ed.jsxs)("div",{className:"mx-auto w-full px-6 pt-4 pb-0",children:[(0,ed.jsxs)("div",{className:"mb-4 flex w-full flex-col items-center",children:[(0,ed.jsx)("h2",{className:"text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"We won't be able to do this alone!"}),(0,ed.jsx)("p",{className:"my-2 text-left text-xl md:text-center",children:"Our work would not be possible without our incredible collaborators and funders"})]}),(0,ed.jsx)("div",{className:"mb-2",children:(0,ed.jsx)(ab.default,{speed:60,gradient:!0,gradientWidth:"25p",pauseOnHover:!0,className:"marquee-override",children:[...e,...e].map((e,t)=>(0,ed.jsx)("div",{className:"mx-2 flex h-full w-full items-center justify-center",children:(0,ed.jsx)(aJ,{url:e.href,children:(0,ed.jsx)(ay.default,{className:"!px-4 transition-all duration-100 hover:grayscale-0 sm:grayscale",src:e.src,alt:e.alt,width:e.width,height:e.height})})},t))})}),(0,ed.jsx)("p",{className:"w-full text-center text-xs font-medium text-gray-500",children:"Disclaimer: All logos are used with adequate permissions. Opinions, interpretations, conclusions and recommendations are those of the FAIR Data Innovations Hub and are not necessarily endorsed by the other organizations mentioned on this website."})]})}function a0(){return(0,ed.jsx)("section",{className:"relative py-10",children:(0,ed.jsx)("div",{className:"container mx-auto max-w-screen-xl px-6",children:(0,ed.jsxs)("div",{className:"flex flex-col-reverse items-center justify-center md:flex-row",children:[(0,ed.jsxs)("div",{className:"h-full w-full p-2 lg:max-w-2xl",children:[(0,ed.jsx)("h2",{className:"text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"We are making a difference"}),(0,ed.jsxs)("div",{className:"font-asap pt-8",children:[(0,ed.jsx)("p",{className:"mb-4 text-left text-xl",children:"Our work has led to peer-reviewed publications, development of open-source software, establishment of new standards and guidelines, conference presentations, and much more."}),(0,ed.jsx)("div",{className:"flex w-full justify-start py-5",children:(0,ed.jsx)(eh.default,{href:"/impact",passHref:!0,children:(0,ed.jsx)("button",{type:"button",className:"w-max rounded-md border-none bg-black px-5 py-3 text-center text-base font-semibold text-white ring-2 ring-transparent ring-offset-2 transition duration-200 ease-in-out hover:ring-pink-600 focus:ring-pink-600","data-umami-event":"Home page link","data-umami-event-value":"See our impact",children:"See our impact"})})})]})]}),(0,ed.jsx)("div",{className:"flex w-full items-center justify-center p-8 lg:mt-0 lg:w-1/2",children:(0,ed.jsx)(ay.default,{className:"w-[400px] rounded-lg",src:"/images/home/3d-impact.png",alt:"office content 1",width:400,height:300})})]})})})}function a1(){let e=[{title:(0,ed.jsx)("h3",{className:"text-2xl font-extrabold tracking-tight text-black md:text-2xl dark:text-white",children:"Clear step-by-step guidelines"}),description:(0,ed.jsx)("p",{className:"mt-3 text-base leading-relaxed text-balance md:text-lg",children:"Minimal, actionable checklists for preparing and sharing FAIR data and software so anyone can do the right thing, in the right order, without guesswork."}),colSpan:"col-span-3",size:"wide"},{title:(0,ed.jsx)("h3",{className:"text-2xl font-extrabold tracking-tight text-black md:text-2xl dark:text-white",children:"Free, open-source tools"}),description:(0,ed.jsx)("p",{className:"mt-3 text-base leading-relaxed text-balance md:text-lg",children:"Developing open-source and free tools that streamline the implementation of these guidelines and minimize researchers' time and effort through a combination of intuitive user interfaces, AI, and automation."}),colSpan:"col-span-3",size:"wide"}];return(0,ed.jsxs)("section",{className:"relative py-10",children:[(0,ed.jsx)("h2",{className:"mb-6 px-6 text-center text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"Simple guides + open tools, so FAIR is effortless"}),(0,ed.jsxs)("div",{className:"font-asap mx-auto max-w-screen-xl px-6",children:[(0,ed.jsx)("p",{className:"mb-8 text-left text-xl md:text-center",children:"We believe that researchers already have enough work and responsibilities on their hands. Therefore, making data, software, and other research outcomes FAIR should be made very easy for them. We are trying to achieve that through two main approaches:"}),(0,ed.jsx)(eg,{className:"mx-auto max-w-screen-xl grid-cols-1 gap-4 px-4 transition-all md:grid-flow-dense md:auto-rows-[minmax(18rem,auto)] md:grid-cols-6 xl:px-0",children:e.map((e,t)=>{let i="narrow"===e.size?"p-6 md:p-7":"p-7 md:p-8",a=`h-full flex flex-col justify-between rounded-2xl border border-red-300/70 bg-white/90 shadow-xs ring-1 ring-transparent dark:border-red-400/40 dark:bg-neutral-900/70 ${i}`;return(0,ed.jsx)(ef.MagicCard,{className:`${e.colSpan} group flex h-full rounded-2xl p-[2px]`,gradientColor:"oklch(0.592 0.2157 349.761)",children:(0,ed.jsx)(ev,{className:a,title:e.title,animated:!1,description:e.description})},t)})})]})]})}var a2=e.i(16117),a3=e.i(42231);let a5=({words:e,duration:t=3e3,className:i,intensity:a="subtle"})=>{let s=(0,a3.useReducedMotion)(),[n,r]=(0,ep.useState)(0),[o,l]=(0,ep.useState)(!1),c=(0,ep.useRef)(null),d=e[n],h=(0,ep.useCallback)(()=>{r(t=>(t+1)%e.length),l(!0)},[e.length]);(0,ep.useEffect)(()=>(o||(c.current=window.setTimeout(h,t)),()=>{c.current&&(window.clearTimeout(c.current),c.current=null)}),[o,t,h]);let u=(0,ep.useMemo)(()=>
1{if(s||"none"===a)return{container:{initial:{opacity:1},animate:{opacity:1},exit:{opacity:1},transition:{duration:0}},word:{initial:{opacity:1,y:0,filter:"blur(0px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},exit:{opacity:1,y:0,filter:"blur(0px)"},transition:{duration:0}},letter:{initial:{opacity:1,y:0,filter:"blur(0px)"},animate:{opacity:1,y:0,filter:"blur(0px)"}},wordDelay:0,letterDelay:0};let e="minimal"===a;return{container:{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:e?.25:.35}},word:{initial:{opacity:0,y:6,filter:"blur(0px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},exit:{opacity:0,y:-6,filter:"blur(2px)"},transition:{duration:e?.25:.35}},letter:{initial:{opacity:0,y:4,filter:"blur(2px)"},animate:{opacity:1,y:0,filter:"blur(0px)"}},wordDelay:e?.12:.18,letterDelay:e?.02:.035}},[s,a]);return(0,ed.jsx)(aU.AnimatePresence,{mode:"wait",onExitComplete:()=>l(!1),children:(0,ed.jsx)(aH.motion.div,{initial:u.container.initial,animate:u.container.animate,exit:u.container.exit,transition:u.container.transition,className:(0,em.cn)("relative z-10 -mr-2 inline-block pb-2 text-left text-[#D141A6] dark:text-neutral-100",i),"aria-live":"polite",children:d.split(" ").map((e,t)=>(0,ed.jsxs)(aH.motion.span,{initial:u.word.initial,animate:u.word.animate,exit:u.word.exit,transition:{...u.word.transition,delay:t*u.wordDelay},className:"inline-block whitespace-nowrap",children:[e.split("").map((i,a)=>(0,ed.jsx)(aH.motion.span,{initial:u.letter.initial,animate:u.letter.animate,transition:{duration:.18,delay:t*u.wordDelay+a*u.letterDelay},className:"inline-block",children:i},`${e}-${a}`)),(0,ed.jsx)("span",{className:"inline-block",children:" "})]},`${e}-${t}`))},d)})},a4="generated",a8="pointerleave",a6="pointermove",a9="touchend",a7="tsParticles - Error",se="random",st=2*Math.PI,si="true",sa="false",ss="canvas",sn=0;function sr(e){return"boolean"==typeof e}function so(e){return"string"==typeof e}function sl(e){return"number"==typeof e}function sc(e){return"object"==typeof e&&null!==e}function sd(e){return Array.isArray(e)}function sh(e){return null==e}(a=j||(j={})).bottom="bottom",a.bottomLeft="bottom-left",a.bottomRight="bottom-right",a.left="left",a.none="none",a.right="right",a.top="top",a.topLeft="top-left",a.topRight="top-right",a.outside="outside",a.inside="inside";class su{constructor(e,t,i){if(this._updateFromAngle=(e,t)=>{this.x=Math.cos(e)*t,this.y=Math.sin(e)*t},!sl(e)&&e)this.x=e.x,this.y=e.y,this.z=e.z?e.z:0;else if(void 0!==e&&void 0!==t)this.x=e,this.y=t,this.z=i??0;else throw Error(`${a7} Vector3d not initialized correctly`)}static get origin(){return su.create(0,0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return su.create(e.x,e.y,e.z)}static create(e,t,i){return new su(e,t,i)}add(e){return su.create(this.x+e.x,this.y+e.y,this.z+e.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return su.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(e){return su.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**2+this.y**2}mult(e){return su.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;0!=e&&this.multTo(1/e)}rotate(e){return su.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),0)}setTo(e){this.x=e.x,this.y=e.y,this.z=e.z?e.z:0}sub(e){return su.create(this.x-e.x,this.y-e.y,this.z-e.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}}class sf extends su{constructor(e,t){super(e,t,0)}static get origin(){return sf.create(0,0)}static clone(e){return sf.create(e.x,e.y)}static create(e,t){return new sf(e,t)}}let sp=Math.random;function sm(){return sg(sp(),0,1-Number.EPSILON)}function sg(e,t,i){return Math.min(Math.max(e,t),i)}function sv(e,t,i,a){return Math.floor((e*i+t*a)/(i+a))}function sy(e){let t=sw(e),i=sx(e);return t===i&&(i=0),sm()*(t-i)+i}
1function sb(e){return sl(e)?e:sy(e)}function sx(e){return sl(e)?e:e.min}function sw(e){return sl(e)?e:e.max}function s_(e,t){if(e===t||void 0===t&&sl(e))return e;let i=sx(e),a=sw(e);return void 0!==t?{min:Math.min(i,t),max:Math.max(a,t)}:s_(i,a)}function sk(e,t){let i=e.x-t.x,a=e.y-t.y;return{dx:i,dy:a,distance:Math.sqrt(i**2+a**2)}}function sC(e,t){return sk(e,t).distance}function sE(e){return e*Math.PI/180}function sP(e,t,i,a){return sf.create(e.x*(i-a)/(i+a)+2*t.x*a/(i+a),e.y)}function sR(e){return e?e.endsWith("%")?parseFloat(e)/100:parseFloat(e):1}(s=N||(N={})).auto="auto",s.increase="increase",s.decrease="decrease",s.random="random",(n=F||(F={})).increasing="increasing",n.decreasing="decreasing",(r=L||(L={})).none="none",r.max="max",r.min="min",(o=B||(B={})).bottom="bottom",o.left="left",o.right="right",o.top="top",(l=q||(q={})).precise="precise",l.percent="percent",(c=V||(V={})).max="max",c.min="min",c.random="random";let sS={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function sz(e){let t={bounced:!1},{pSide:i,pOtherSide:a,rectSide:s,rectOtherSide:n,velocity:r,factor:o}=e;return a.min<n.min||a.min>n.max||a.max<n.min||a.max>n.max||(i.max>=s.min&&i.max<=(s.max+s.min)*.5&&r>0||i.min<=s.max&&i.min>(s.max+s.min)*.5&&r<0)&&(t.velocity=-(r*o),t.bounced=!0),t}function sA(){return"u"<typeof window||!window||void 0===window.document||!window.document}function sM(e){if(!sA()&&"u">typeof matchMedia)return matchMedia(e)}function sT(e,t){return e===t||sd(t)&&t.indexOf(e)>-1}async function sI(e,t){try{await document.fonts.load(`${t??"400"} 36px '${e??"Verdana"}'`)}catch{}}function sO(e,t,i=!0){return e[void 0!==t&&i?t%e.length:Math.floor(sm()*e.length)]}function sD(e,t,i,a,s){var n,r,o,l;let c;return n=sj(e,a??0),r=t,o=i,c=!0,(l=s)&&l!==B.bottom||(c=n.top<r.height+o.x),c&&(!l||l===B.left)&&(c=n.right>o.x),c&&(!l||l===B.right)&&(c=n.left<r.width+o.y),c&&(!l||l===B.top)&&(c=n.bottom>o.y),c}function sj(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function sN(e,...t){for(let i of t){if(null==i)continue;if(!sc(i)){e=i;continue}let t=Array.isArray(i);for(let a in t&&(sc(e)||!e||!Array.isArray(e))?e=[]:!t&&(sc(e)||!e||Array.isArray(e))&&(e={}),i){if("__proto__"===a)continue;let t=i[a],s=e;s[a]=sc(t)&&Array.isArray(t)?t.map(e=>sN(s[a],e)):sN(s[a],t)}}return e}function sF(e,t){return!!sW(t,t=>t.enable&&sT(e,t.mode))}function sL(e,t,i){sU(t,t=>{var a,s;let n=t.mode;t.enable&&sT(e,n)&&(a=t,s=i,sU(a.selectors,e=>{s(e,a)}))})}function sB(e,t){if(t&&e)return sW(e,e=>{let i;return sd(i=sU(e.selectors,e=>t.matches(e)))?i.some(e=>e):i})}function sq(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:sf.create(sb(e.options.bounce.horizontal.value),sb(e.options.bounce.vertical.value))}}function sV(e,t){let{x:i,y:a}=e.velocity.sub(t.velocity),[s,n]=[e.position,t.position],{dx:r,dy:o}=sk(n,s);if(i*r+a*o<0)return;let l=-Math.atan2(o,r),c=e.mass,d=t.mass,h=e.velocity.rotate(l),u=t.velocity.rotate(l),f=sP(h,u,c,d),p=sP(u,h,c,d),m=f.rotate(-l),g=p.rotate(-l);e.velocity.x=m.x*e.factor.x,e.velocity.y=m.y*e.factor.y,t.velocity.x=g.x*t.factor.x,t.velocity.y=g.y*t.factor.y}function sU(e,t){return sd(e)?e.map((e,i)=>t(e,i)):t(e,0)}function sH(e,t,i){return sd(e)?sO(e,t,i):e}function sW(e,t){return sd(e)?e.find((e,i)=>t(e,i)):t(e,0)?e:void 0}function s$(e,t){let i=e.value,a=e.animation,s={delayTime:1e3*sb(a.delay),enable:a.enable,value:sb(e.value)*t,max:sw(i)*t,min:sx(i)*t,loops:0,maxLoops:sb(a.count),time:0};if(a.enable){switch(s.decay=1-sb(a.decay),a.mode){case N.increase:s.status=F.increasing;break;case N.decrease:s.status=F.decreasing;break;case N.random:s.status=sm()>=.5?F.increasing:F.decreasing}let e=a.mode===N.auto;switch(a.startValue){case V.min:s.value=s.min,e&&(s.status=F.increasing);break;case V.max:s.value=s.max,e&&(s.status=F.decreasing);break;case V.random:default:s.value=sy(s),e&&(s.status=sm()>=.5?F.increasing:F.decreasing)}}return s.initialValue=s.value,s}function sG(e,t){return function(e,t){if(e.mode!==q.percent){let{mode:t,...i}=e;return i}return"x"in e?{x:e.x/100*t.width,y:e.y/100*t.height}:{width:e.width/100*t.width,height:e.height/100*t.height}}(e,t)}
1function sQ(e,t,i,a,s){if(e.destroyed||!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let n=(t.velocity??0)*s.factor,r=t.min,o=t.max,l=t.decay??1;if(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))){switch(t.status){case F.increasing:t.value>=o?(i?t.status=F.decreasing:t.value-=o,t.loops||(t.loops=0),t.loops++):t.value+=n;break;case F.decreasing:t.value<=r?(i?t.status=F.increasing:t.value+=o,t.loops||(t.loops=0),t.loops++):t.value-=n}t.velocity&&1!==l&&(t.velocity*=l);var c=t.value;switch(a){case L.max:c>=o&&e.destroy();break;case L.min:c<=r&&e.destroy()}e.destroyed||(t.value=sg(t.value,r,o))}}let sX=(d=function(e){let t=document.createElement("div").style,i={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:e.toString(10),"z-index":e.toString(10),top:"0",left:"0"};for(let e in i){let a=i[e];t.setProperty(e,a)}return t},t=new Map,(...e)=>{let i=JSON.stringify(e);if(t.has(i))return t.get(i);let a=d(...e);return t.set(i,a),a});function sY(e,t,i,a=!0){if(!t)return;let s=so(t)?{value:t}:t;if(so(s.value))return function e(t,i,a,s=!0){if(!i)return;let n=so(i)?{value:i}:i;if(so(n.value))return n.value===se?s0():function(e,t){if(t){for(let i of e.colorManagers.values())if(t.startsWith(i.stringPrefix))return i.parseString(t)}}(t,n.value);if(sd(n.value))return e(t,{value:sO(n.value,a,s)});for(let e of t.colorManagers.values()){let t=e.handleColor(n);if(t)return t}}(e,s.value,i,a);if(sd(s.value))return sY(e,{value:sO(s.value,i,a)});for(let t of e.colorManagers.values()){let e=t.handleRangeColor(s);if(e)return e}}function sK(e,t,i,a=!0){let s=sY(e,t,i,a);return s?sJ(s):void 0}function sJ(e){let t=e.r/255,i=e.g/255,a=e.b/255,s=Math.max(t,i,a),n=Math.min(t,i,a),r={h:0,l:(s+n)*.5,s:0};return s!==n&&(r.s=r.l<.5?(s-n)/(s+n):(s-n)/(2-s-n),r.h=t===s?(i-a)/(s-n):r.h=i===s?2+(a-t)/(s-n):4+(t-i)/(s-n)),r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360),r.h>=360&&(r.h-=360),r}function sZ(e){let t=(e.h%360+360)%360,i=Math.max(0,Math.min(100,e.s)),a=Math.max(0,Math.min(100,e.l)),s=t/360,n=i/100,r=a/100;if(0===i){let e=Math.round(255*r);return{r:e,g:e,b:e}}let o=(e,t,i)=>(i<0&&i++,i>1&&i--,6*i<1)?e+(t-e)*6*i:2*i<1?t:3*i<2?e+(t-e)*(2/3-i)*6:e,l=r<.5?r*(1+n):r+n-r*n,c=2*r-l;return{r:Math.round(Math.min(255,255*o(c,l,s+.3333333333333333))),g:Math.round(Math.min(255,255*o(c,l,s))),b:Math.round(Math.min(255,255*o(c,l,s-.3333333333333333)))}}function s0(e){let t=e??0;return{b:Math.floor(sy(s_(t,256))),g:Math.floor(sy(s_(t,256))),r:Math.floor(sy(s_(t,256)))}}function s1(e,t){return`rgba(${e.r}, ${e.g}, ${e.b}, ${t??1})`}function s2(e,t){return`hsla(${e.h}, ${e.s}%, ${e.l}%, ${t??1})`}function s3(e,t,i,a){let s=e,n=t;return void 0===s.r&&(s=sZ(e)),void 0===n.r&&(n=sZ(t)),{b:sv(s.b,n.b,i,a),g:sv(s.g,n.g,i,a),r:sv(s.r,n.r,i,a)}}function s5(e,t,i){if(i===se)return s0();if("mid"!==i)return i;{let i=e.getFillColor()??e.getStrokeColor(),a=t?.getFillColor()??t?.getStrokeColor();if(i&&a&&t)return s3(i,a,e.getRadius(),t.getRadius());{let e=i??a;if(e)return sZ(e)}}}function s4(e,t,i,a){let s=so(t)?t:t.value;return s===se?a?sY(e,{value:s}):i?se:"mid":"mid"===s?"mid":sY(e,{value:s})}function s8(e){return void 0!==e?{h:e.h.value,s:e.s.value,l:e.l.value}:void 0}function s6(e,t,i){let a={h:{enable:!1,value:e.h},s:{enable:!1,value:e.s},l:{enable:!1,value:e.l}};return t&&(s9(a.h,t.h,i),s9(a.s,t.s,i),s9(a.l,t.l,i)),a}function s9(e,t,i){e.enable=t.enable,e.enable?(e.velocity=sb(t.speed)/100*i,e.decay=1-sb(t.decay),e.status=F.increasing,e.loops=0,e.maxLoops=sb(t.count),e.time=0,e.delayTime=1e3*sb(t.delay),t.sync||(e.velocity*=sm(),e.value*=sm()),e.initialValue=e.value,e.offset=s_(t.offset)):e.velocity=0}function s7(e,t,i,a){if(!e||!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(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)))return;let s=e.offset?sy(e.offset):0,n=(e.velocity??0)*a.factor+3.6*s,r=e.decay??1,o=sw(t),l=sx(t);i&&e.status!==F.increasing?(e.value-=n,e.value<0&&(e.loops||(e.loops=0),e.loops++,e.status=F.increasing)):(e.value+=n,e.value>o&&(e.loops||(e.loops=0),e.loops++,i?e.status=F.decreasing:e.value-=o)),e.velocity&&1!==r&&(e.velocity
1*=r),e.value=sg(e.value,l,o)}function ne(e,t){if(!e)return;let{h:i,s:a,l:s}=e;i&&s7(i,{min:0,max:360},!1,t),a&&s7(a,{min:0,max:100},!0,t),s&&s7(s,{min:0,max:100},!0,t)}function nt(e,t,i){e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(i.x,i.y),e.closePath()}function ni(e,t){e.clearRect(0,0,t.width,t.height)}function na(e,t,i=!1){if(!t||!e)return;let a=e.style;if(!a)return;let s=new Set;for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&s.add(a[e]);for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&s.add(t[e]);for(let e of s){let s=t.getPropertyValue(e);s?a.setProperty(e,s,i?"important":""):a.removeProperty(e)}}(h=U||(U={})).darken="darken",h.enlighten="enlighten";class ns{constructor(e,t){this.container=e,this._applyPostDrawUpdaters=e=>{for(let t of this._postDrawUpdaters)t.afterDraw?.(e)},this._applyPreDrawUpdaters=(e,t,i,a,s,n)=>{for(let r of this._preDrawUpdaters){if(r.getColorStyles){let{fill:n,stroke:o}=r.getColorStyles(t,e,i,a);n&&(s.fill=n),o&&(s.stroke=o)}if(r.getTransformValues){let e=r.getTransformValues(t);for(let t in e)!function(e,t,i){let a=t[i];void 0!==a&&(e[i]=(e[i]??1)*a)}(n,e,t)}r.beforeDraw?.(t)}},this._applyResizePlugins=()=>{for(let e of this._resizePlugins)e.resize?.()},this._getPluginParticleColors=e=>{let t,i;for(let a of this._colorPlugins)if(!t&&a.particleFillColor&&(t=sK(this._engine,a.particleFillColor(e))),!i&&a.particleStrokeColor&&(i=sK(this._engine,a.particleStrokeColor(e))),t&&i)break;return[t,i]},this._initCover=async()=>{let e=this.container.actualOptions.backgroundMask.cover,t=e.color;if(t){let i=sY(this._engine,t);if(i){let t={...i,a:e.opacity};this._coverColorStyle=s1(t,t.a)}}else await new Promise((t,i)=>{if(!e.image)return;let a=document.createElement("img");a.addEventListener("load",()=>{this._coverImage={image:a,opacity:e.opacity},t()}),a.addEventListener("error",e=>{i(e.error)}),a.src=e.image})},this._initStyle=()=>{let e=this.element,t=this.container.actualOptions;if(e)for(let i in this._fullScreen?this._setFullScreenStyle():this._resetOriginalStyle(),t.style){if(!i||!t.style||!Object.prototype.hasOwnProperty.call(t.style,i))continue;let a=t.style[i];a&&e.style.setProperty(i,a,"important")}},this._initTrail=async()=>{let e=this.container.actualOptions.particles.move.trail,t=e.fill;if(!e.enable)return;let i=1/e.length;if(t.color){let e=sY(this._engine,t.color);if(!e)return;this._trailFill={color:{...e},opacity:i}}else await new Promise((e,a)=>{if(!t.image)return;let s=document.createElement("img");s.addEventListener("load",()=>{this._trailFill={image:s,opacity:i},e()}),s.addEventListener("error",e=>{a(e.error)}),s.src=t.image})},this._paintBase=e=>{this.draw(t=>{var i;return i=this.size,void(t.fillStyle=e??"rgba(0,0,0,0)",t.fillRect(0,0,i.width,i.height))})},this._paintImage=(e,t)=>{this.draw(i=>{var a;return a=this.size,void(e&&(i.globalAlpha=t,i.drawImage(e,0,0,a.width,a.height),i.globalAlpha=1))})},this._repairStyle=()=>{let e=this.element;if(!e)return;this._safeMutationObserver(e=>
1e.disconnect()),this._initStyle(),this.initBackground();let t=this._pointerEvents;e.style.pointerEvents=t,e.setAttribute("pointer-events",t),this._safeMutationObserver(t=>{e&&e instanceof Node&&t.observe(e,{attributes:!0})})},this._resetOriginalStyle=()=>{let e=this.element,t=this._originalStyle;e&&t&&na(e,t,!0)},this._safeMutationObserver=e=>{this._mutationObserver&&e(this._mutationObserver)},this._setFullScreenStyle=()=>{let e=this.element;e&&na(e,sX(this.container.actualOptions.fullScreen.zIndex),!0)},this._engine=t,this._standardSize={height:0,width:0};const i=e.retina.pixelRatio,a=this._standardSize;this.size={height:a.height*i,width:a.width*i},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._pointerEvents="none"}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let e=this.container.actualOptions,t=e.particles.move.trail,i=this._trailFill;e.backgroundMask.enable?this.paint():t.enable&&t.length>0&&i?i.color?this._paintBase(s1(i.color,i.opacity)):i.image&&this._paintImage(i.image,i.opacity):e.clear&&this.draw(e=>{ni(e,this.size)})}destroy(){if(this.stop(),this._generated){let e=this.element;e?.remove(),this.element=void 0}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){let t=this._context;if(t)return e(t)}drawAsync(e){let t=this._context;if(t)return e(t)}drawParticle(e,t){if(e.spawning||e.destroyed)return;let i=e.getRadius();if(i<=0)return;let a=e.getFillColor(),s=e.getStrokeColor()??a,[n,r]=this._getPluginParticleColors(e);n||(n=a),r||(r=s),(n||r)&&this.draw(a=>{let s=this.container,o=s.actualOptions,l=e.options.zIndex,c=1-e.zIndexFactor,d=c**l.opacityRate,h=e.bubble.opacity??e.opacity?.value??1,u=e.strokeOpacity??h,f=h*d,p={},m={fill:n?s2(n,f):void 0};m.stroke=r?s2(r,u*d):m.fill,this._applyPreDrawUpdaters(a,e,i,f,m,p),function(e){let{container:t,context:i,particle:a,delta:s,colorStyles:n,backgroundMask:r,composite:o,radius:l,opacity:c,shadow:d,transform:h}=e,u=a.getPosition(),f=a.rotation+(a.pathRotation?a.velocity.angle:0),p={sin:Math.sin(f),cos:Math.cos(f)},m=!!f,g={a:p.cos*(h.a??1),b:m?p.sin*(h.b??1):h.b??0,c:m?-p.sin*(h.c??1):h.c??0,d:p.cos*(h.d??1)};i.setTransform(g.a,g.b,g.c,g.d,u.x,u.y),r&&(i.globalCompositeOperation=o);let v=a.shadowColor;d.enable&&v&&(i.shadowBlur=d.blur,i.shadowColor=s1(v),i.shadowOffsetX=d.offset.x,i.shadowOffsetY=d.offset.y),n.fill&&(i.fillStyle=n.fill);let y=a.strokeWidth??0;i.lineWidth=y,n.stroke&&(i.strokeStyle=n.stroke);let b={container:t,context:i,particle:a,radius:l,opacity:c,delta:s,transformData:g,strokeWidth:y};(function(e){let{container:t,context:i,particle:a,radius:s,opacity:n,delta:r,strokeWidth:o,transformData:l}=e;if(!a.shape)return;let c=t.shapeDrawers.get(a.shape);c&&(i.beginPath(),c.draw({context:i,particle:a,radius:s,opacity:n,delta:r,pixelRatio:t.retina.pixelRatio,transformData:{...l}}),a.shapeClose&&i.closePath(),o>0&&i.stroke(),a.shapeFill&&i.fill())})(b),function(e){let{container:t,context:i,particle:a,radius:s,opacity:n,delta:r,transformData:o}=e;if(!a.shape)return;let l=t.shapeDrawers.get(a.shape);l?.afterDraw&&l.afterDraw({context:i,particle:a,radius:s,opacity:n,delta:r,pixelRatio:t.retina.pixelRatio,transformData:{...o}})}(b),function(e){let{container:t,context:i,particle:a,radius:s,opacity:n,delta:r,transformData:o}=e;if(!a.effect)return;let l=t.effectDrawers.get(a.effect);l&&l.draw({context:i,particle:a,radius:s,opacity:n,delta:r,pixelRatio:t.retina.pixelRatio,transformData:{...o}})}(b),i.globalCompositeOperation="source-over",i.resetTransform()}({container:s,context:a,particle:e,delta:t,colorStyles:m,backgroundMask:o.backgroundMask.enable,composite:o.backgroundMask.composite,radius:i*c**l.sizeRate,opacity:f,shadow:e.options.shadow,transform:p}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,t,i){this.draw(a=>{e.drawParticle&&e.drawParticle(a,t,i)})}drawPlugin(e,t){this.draw(i=>{e.draw&&e.draw(i,t)})}
1async init(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=function(e){if(!sA()&&"u">typeof MutationObserver)return new MutationObserver(e)}(e=>{for(let t of e)"attributes"===t.type&&"style"===t.attributeName&&this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(e){sS.error(e)}this.initBackground(),this._safeMutationObserver(e=>{this.element&&this.element instanceof Node&&e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let e=this.container.actualOptions.background,t=this.element;if(!t)return;let i=t.style;if(i){if(e.color){let t=sY(this._engine,e.color);i.backgroundColor=t?s1(t,e.opacity):""}else i.backgroundColor="";i.backgroundImage=e.image||"",i.backgroundPosition=e.position||"",i.backgroundRepeat=e.repeat||"",i.backgroundSize=e.size||""}}initPlugins(){for(let e of(this._resizePlugins=[],this.container.plugins.values()))e.resize&&this._resizePlugins.push(e),(e.particleFillColor??e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){for(let e of(this._preDrawUpdaters=[],this._postDrawUpdaters=[],this.container.particles.updaters))e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles??e.getTransformValues??e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&a4 in e.dataset?"true"===e.dataset[a4]:this._generated,this.element=e,this.element.ariaHidden="true",this._originalStyle=function(e){let t=document.createElement("div").style;if(!e)return t;for(let i in e){let a=e[i];if(!Object.prototype.hasOwnProperty.call(e,i)||sh(a))continue;let s=e.getPropertyValue?.(a);if(!s)continue;let n=e.getPropertyPriority?.(a);n?t.setProperty?.(a,s,n):t.setProperty?.(a,s)}return t}(this.element.style);let t=this._standardSize;t.height=e.offsetHeight,t.width=e.offsetWidth;let i=this.container.retina.pixelRatio,a=this.size;e.height=a.height=t.height*i,e.width=a.width=t.width*i,this._context=this.element.getContext("2d"),this._safeMutationObserver(e=>
1e.disconnect()),this.container.retina.init(),this.initBackground(),this._safeMutationObserver(e=>{this.element&&this.element instanceof Node&&e.observe(this.element,{attributes:!0})})}paint(){let e=this.container.actualOptions;this.draw(t=>{e.backgroundMask.enable&&e.backgroundMask.cover?(ni(t,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 e=this.container,t=e.canvas._standardSize,i={width:this.element.offsetWidth,height:this.element.offsetHeight},a=e.retina.pixelRatio,s={width:i.width*a,height:i.height*a};if(i.height===t.height&&i.width===t.width&&s.height===this.element.height&&s.width===this.element.width)return!1;let n={...t};t.height=i.height,t.width=i.width;let r=this.size;return this.element.width=r.width=s.width,this.element.height=r.height=s.height,this.container.started&&e.particles.setResizeFactor({width:t.width/n.width,height:t.height/n.height}),!0}setPointerEvents(e){this.element&&(this._pointerEvents=e,this._repairStyle())}stop(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=void 0,this.draw(e=>ni(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;let e=this.container,t=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),t&&await e.refresh()}}function nn(e,t,i,a,s){if(a){let a={passive:!0};sr(s)?a.capture=s:void 0!==s&&(a=s),e.addEventListener(t,i,a)}else e.removeEventListener(t,i,s)}(u=H||(H={})).canvas="canvas",u.parent="parent",u.window="window";class nr{constructor(e){this.container=e,this._doMouseTouchClick=e=>{let t=this.container,i=t.actualOptions;if(this._canPush){let e=t.interactivity.mouse,a=e.position;if(!a)return;e.clickPosition={...a},e.clickTime=new Date().getTime(),sU(i.interactivity.events.onClick.mode,e=>this.container.handleClickMode(e))}"touchend"===e.type&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=e=>{let t=this.container,i=t.options,a=i.defaultThemes,s=e.matches?a.dark:a.light,n=i.themes.find(e=>e.name===s);n?.default.auto&&t.loadTheme(s)},this._handleVisibilityChange=()=>{let e=this.container,t=e.actualOptions;this._mouseTouchFinish(),t.pauseOnBlur&&(document?.hidden?(e.pageHidden=!0,e.pause()):(e.pageHidden=!1,e.animationStatus?e.play(!0):e.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);let e=async()=>{let e=this.container.canvas;await e?.windowResize()};this._resizeTimeout=setTimeout(()=>void e(),1e3*this.container.actualOptions.interactivity.events.resize.delay)},this._manageInteractivityListeners=(e,t)=>{let i=this._handlers,a=this.container,s=a.actualOptions,n=a.interactivity.element;if(!n)return;let r=a.canvas;r.setPointerEvents(n===r.element?"initial":"none"),(s.interactivity.events.onHover.enable||s.interactivity.events.onClick.enable)&&(nn(n,a6,i.mouseMove,t),nn(n,"touchstart",i.touchStart,t),nn(n,"touchmove",i.touchMove,t),s.interactivity.events.onClick.enable?(nn(n,a9,i.touchEndClick,t),nn(n,"pointerup",i.mouseUp,t),nn(n,"pointerdown",i.mouseDown,t)):nn(n,a9,i.touchEnd,t),nn(n,e,i.mouseLeave,t),nn(n,"touchcancel",i.touchCancel,t))},this._manageListeners=e=>{let t=this._handlers,i=this.container,a=i.actualOptions.interactivity.detectsOn,s=i.canvas.element,n=a8;a===H.window?(i.interactivity.element=window,n="pointerout"):a===H.parent&&s?i.interactivity.element=s.parentElement??s.parentNode:i.interactivity.element=s,this._manageMediaMatch(e),this._manageResize(e),this._manageInteractivityListeners(n,e),document&&nn(document,"visibilitychange",t.visibilityChange,e,!1)},this._manageMediaMatch=e=>{let t=this._handlers,i=sM("(prefers-color-scheme: dark)");i&&(void 0!==i.addEventListener?nn(i,"change",t.themeChange,e):void 0!==i.addListener&&(e?i.addListener(t.oldThemeChange):i.removeListener(t.oldThemeChange)))},this._manageResize=e=>{let t=this._handlers,i=this.container;if(!i.actualOptions.interactivity.events.resize)return;if("u"<typeof ResizeObserver)return void nn(window,"resize",t.resize,e);let a=i.canvas.element;this._resizeObserver&&!e?(a&&this._resizeObserver.unobserve(a),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&e&&a&&(this._resizeObserver=new ResizeObserver(e=>{e.find(e=>e.target===a)&&this._handleWindowResize()}),this._resizeObserver.observe(a))},this._mouseDown=()=>{let{interactivity:e}=this.container;if(!e)return;let{mouse:t}=e;t.clicking=!0,t.downPosition=t.position},this._mouseTouchClick=e=>{let t=this.container,i=t.actualOptions,{mouse:a}=t.interactivity;a.inside=!0;let s=!1,n=a.position;if(n&&i.interactivity.events.onClick.enable){for(let e of t.plugins.values())if(e.clickPositionValid&&
1(s=e.clickPositionValid(n)))break;s||this._doMouseTouchClick(e),a.clicking=!1}},this._mouseTouchFinish=()=>{let e=this.container.interactivity;if(!e)return;let t=e.mouse;delete t.position,delete t.clickPosition,delete t.downPosition,e.status=a8,t.inside=!1,t.clicking=!1},this._mouseTouchMove=e=>{let t,i=this.container,a=i.actualOptions,s=i.interactivity,n=i.canvas.element;if(!s?.element)return;if(s.mouse.inside=!0,e.type.startsWith("pointer"))if(this._canPush=!0,s.element===window){if(n){let i=n.getBoundingClientRect();t={x:e.clientX-i.left,y:e.clientY-i.top}}}else if(a.interactivity.detectsOn===H.parent){let i=e.target,a=e.currentTarget;if(i&&a&&n){let s=i.getBoundingClientRect(),r=a.getBoundingClientRect(),o=n.getBoundingClientRect();t={x:e.offsetX+2*s.left-(r.left+o.left),y:e.offsetY+2*s.top-(r.top+o.top)}}else t={x:e.offsetX??e.clientX,y:e.offsetY??e.clientY}}else e.target===n&&(t={x:e.offsetX??e.clientX,y:e.offsetY??e.clientY});else if(this._canPush="touchmove"!==e.type,n){let i=e.touches[e.touches.length-1],a=n.getBoundingClientRect();t={x:i.clientX-(a.left??0),y:i.clientY-(a.top??0)}}let r=i.retina.pixelRatio;t&&(t.x*=r,t.y*=r),s.mouse.position=t,s.status=a6},this._touchEnd=e=>{for(let t of Array.from(e.changedTouches))this._touches.delete(t.identifier);this._mouseTouchFinish()},this._touchEndClick=e=>{for(let t of Array.from(e.changedTouches))this._touches.delete(t.identifier);this._mouseTouchClick(e)},this._touchStart=e=>{for(let t of Array.from(e.changedTouches))this._touches.set(t.identifier,performance.now());this._mouseTouchMove(e)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:e=>this._mouseTouchMove(e),mouseUp:e=>this._mouseTouchClick(e),touchStart:e=>this._touchStart(e),touchMove:e=>this._mouseTouchMove(e),touchEnd:e=>this._touchEnd(e),touchCancel:e=>this._touchEnd(e),touchEndClick:e=>this._touchEndClick(e),visibilityChange:()=>this._handleVisibilityChange(),themeChange:e=>this._handleThemeChange(e),oldThemeChange:e=>this._handleThemeChange(e),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}(f=W||(W={})).configAdded="configAdded",f.containerInit="containerInit",f.particlesSetup="particlesSetup",f.containerStarted="containerStarted",f.containerStopped="containerStopped",f.containerDestroyed="containerDestroyed",f.containerPaused="containerPaused",f.containerPlay="containerPlay",f.containerBuilt="containerBuilt",f.particleAdded="particleAdded",f.particleDestroyed="particleDestroyed",f.particleRemoved="particleRemoved";class no{constructor(){this.value=""}static create(e,t){let i=new no;return i.load(e),void 0!==t&&(so(t)||sd(t)?i.load({value:t}):i.load(t)),i}load(e){!sh(e)&&(sh(e.value)||(this.value=e.value))}}class nl{constructor(){this.color=new no,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){sh(e)||(void 0!==e.color&&(this.color=no.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image),void 0!==e.position&&(this.position=e.position),void 0!==e.repeat&&(this.repeat=e.repeat),void 0!==e.size&&(this.size=e.size),void 0!==e.opacity&&(this.opacity=e.opacity))}}class nc{constructor(){this.opacity=1}load(e){sh(e)||(void 0!==e.color&&(this.color=no.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image),void 0!==e.opacity&&(this.opacity=e.opacity))}}class nd{constructor(){this.composite="destination-out",this.cover=new nc,this.enable=!1}load(e){if(!sh(e)){if(void 0!==e.composite&&(this.composite=e.composite),void 0!==e.cover){let t=e.cover,i=so(e.cover)?{color:e.cover}:e.cover;this.cover.load(void 0!==t.color||void 0!==t.image?t:{color:i})}void 0!==e.enable&&(this.enable=e.enable)}}}class nh{constructor(){this.enable=!0,this.zIndex=0}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.zIndex&&(this.zIndex=e.zIndex))}}class nu{constructor(){this.enable=!1,this.mode=[]}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.mode&&(this.mode=e.mode))}}(p=$||($={})).circle="circle",p.rectangle="rectangle";class nf{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=$.circle}load(e){sh(e)||(void 0!==e.selectors&&(this.selectors=e.selectors),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.type&&(this.t
1ype=e.type))}}class np{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.force&&(this.force=e.force),void 0!==e.smooth&&(this.smooth=e.smooth))}}class nm{constructor(){this.enable=!1,this.mode=[],this.parallax=new np}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.mode&&(this.mode=e.mode),this.parallax.load(e.parallax))}}class ng{constructor(){this.delay=.5,this.enable=!0}load(e){sh(e)||(void 0!==e.delay&&(this.delay=e.delay),void 0!==e.enable&&(this.enable=e.enable))}}class nv{constructor(){this.onClick=new nu,this.onDiv=new nf,this.onHover=new nm,this.resize=new ng}load(e){if(sh(e))return;this.onClick.load(e.onClick);let t=e.onDiv;void 0!==t&&(this.onDiv=sU(t,e=>{let t=new nf;return t.load(e),t})),this.onHover.load(e.onHover),this.resize.load(e.resize)}}class ny{constructor(e,t){this._engine=e,this._container=t}load(e){if(sh(e)||!this._container)return;let t=this._engine.interactors.get(this._container);if(t)for(let i of t)i.loadModeOptions&&i.loadModeOptions(this,e)}}class nb{constructor(e,t){this.detectsOn=H.window,this.events=new nv,this.modes=new ny(e,t)}load(e){if(sh(e))return;let t=e.detectsOn;void 0!==t&&(this.detectsOn=t),this.events.load(e.events),this.modes.load(e.modes)}}class nx{load(e){!sh(e)&&(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??q.percent}),e.options&&(this.options=sN({},e.options)))}}(m=G||(G={})).screen="screen",m.canvas="canvas";class nw{constructor(){this.maxWidth=1/0,this.options={},this.mode=G.canvas}load(e){!sh(e)&&(sh(e.maxWidth)||(this.maxWidth=e.maxWidth),sh(e.mode)||(e.mode===G.screen?this.mode=G.screen:this.mode=G.canvas),sh(e.options)||(this.options=sN({},e.options)))}}(g=Q||(Q={})).any="any",g.dark="dark",g.light="light";class n_{constructor(){this.auto=!1,this.mode=Q.any,this.value=!1}load(e){sh(e)||(void 0!==e.auto&&(this.auto=e.auto),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.value&&(this.value=e.value))}}class nk{constructor(){this.name="",this.default=new n_}load(e){sh(e)||(void 0!==e.name&&(this.name=e.name),this.default.load(e.default),void 0!==e.options&&(this.options=sN({},e.options)))}}class nC{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){sh(e)||(void 0!==e.count&&(this.count=s_(e.count)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.speed&&(this.speed=s_(e.speed)),void 0!==e.decay&&(this.decay=s_(e.decay)),void 0!==e.delay&&(this.delay=s_(e.delay)),void 0!==e.sync&&(this.sync=e.sync))}}class nE extends nC{constructor(){super(),this.mode=N.auto,this.startValue=V.random}load(e){super.load(e),sh(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.startValue&&(this.startValue=e.startValue))}}class nP extends nC{constructor(){super(),this.offset=0,this.sync=!0}load(e){super.load(e),sh(e)||void 0!==e.offset&&(this.offset=s_(e.offset))}}class nR{constructor(){this.h=new nP,this.s=new nP,this.l=new nP}load(e){sh(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}}class nS extends no{constructor(){super(),this.animation=new nR}static create(e,t){let i=new nS;return i.load(e),void 0!==t&&(so(t)||sd(t)?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),sh(e))return;let t=e.animation;void 0!==t&&(void 0!==t.enable?this.animation.h.load(t):this.animation.load(e.animation))}}(v=X||(X={})).absorb="absorb",v.bounce="bounce",v.destroy="destroy";class nz{constructor(){this.speed=2}load(e){sh(e)||void 0!==e.speed&&(this.speed=e.speed)}}class nA{constructor(){this.enable=!0,this.retries=0}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.retries&&(this.retries=e.retries))}}class nM{constructor(){this.value=0}load(e){!sh(e)&&(sh(e.value)||(this.value=s_(e.value)))}}class nT extends nM{constructor(){super(),this.animation=new nC}load(e){if(super.load(e),sh(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}class nI extends nT{constructor(){super(),this.animation=new nE}load(e){super.load(e)}}class nO extends nM{constructor(){super(),this.value=1}}class nD{constructor(){this.horizontal=new nO,this.vertical=new nO}load(e){sh(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}}class nj{constructor(){this.absorb=new nz,this.bounce=new nD,this.enable=!1,this.maxSpeed=50,this.mode=X.bounce,this.overlap=new nA}load(e){sh(e)||(this.absorb.load(e.absorb),this.bounce.load(e.bounce),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.maxSpeed&&(this.maxSpeed=s_(e.maxSpeed)),void 0!==e.mode&&(this.mode=e.mode),this.overlap.load(e.overlap))}}class nN{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(e){if(sh(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=sN(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.fill&&(this.fill=e.fill),void 0!==e.type&&(this.t
1ype=e.type)}}class nF{constructor(){this.offset=0,this.value=90}load(e){sh(e)||(void 0!==e.offset&&(this.offset=s_(e.offset)),void 0!==e.value&&(this.value=s_(e.value)))}}class nL{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(e){if(!sh(e)&&(void 0!==e.distance&&(this.distance=s_(e.distance)),void 0!==e.enable&&(this.enable=e.enable),e.rotate)){let t=e.rotate.x;void 0!==t&&(this.rotate.x=t);let i=e.rotate.y;void 0!==i&&(this.rotate.y=i)}}}class nB{constructor(){this.x=50,this.y=50,this.mode=q.percent,this.radius=0}load(e){sh(e)||(void 0!==e.x&&(this.x=e.x),void 0!==e.y&&(this.y=e.y),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.radius&&(this.radius=e.radius))}}class nq{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){sh(e)||(void 0!==e.acceleration&&(this.acceleration=s_(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.inverse&&(this.inverse=e.inverse),void 0!==e.maxSpeed&&(this.maxSpeed=s_(e.maxSpeed)))}}class nV{constructor(){this.clamp=!0,this.delay=new nM,this.enable=!1,this.options={}}load(e){!sh(e)&&(void 0!==e.clamp&&(this.clamp=e.clamp),this.delay.load(e.delay),void 0!==e.enable&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=sN(this.options,e.options)))}}class nU{load(e){sh(e)||(void 0!==e.color&&(this.color=no.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image))}}class nH{constructor(){this.enable=!1,this.length=10,this.fill=new nU}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.fill&&this.fill.load(e.fill),void 0!==e.length&&(this.length=e.length))}}(y=Y||(Y={})).bounce="bounce",y.none="none",y.out="out",y.destroy="destroy",y.split="split";class nW{constructor(){this.default=Y.out}load(e){sh(e)||(void 0!==e.default&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}}class n${constructor(){this.acceleration=0,this.enable=!1}load(e){!sh(e)&&(void 0!==e.acceleration&&(this.acceleration=s_(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),e.position&&(this.position=sN({},e.position)))}}class nG{constructor(){this.angle=new nF,this.attract=new nL,this.center=new nB,this.decay=0,this.distance={},this.direction=j.none,this.drift=0,this.enable=!1,this.gravity=new nq,this.path=new nV,this.outModes=new nW,this.random=!1,this.size=!1,this.speed=2,this.spin=new n$,this.straight=!1,this.trail=new nH,this.vibrate=!1,this.warp=!1}load(e){if(sh(e))return;this.angle.load(sl(e.angle)?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),void 0!==e.decay&&(this.decay=s_(e.decay)),void 0!==e.direction&&(this.direction=e.direction),void 0!==e.distance&&(this.distance=sl(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),void 0!==e.drift&&(this.drift=s_(e.drift)),void 0!==e.enable&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;void 0!==t&&(sc(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),void 0!==e.random&&(this.random=e.random),void 0!==e.size&&(this.size=e.size),void 0!==e.speed&&(this.speed=s_(e.speed)),this.spin.load(e.spin),void 0!==e.straight&&(this.straight=e.straight),this.trail.load(e.trail),void 0!==e.vibrate&&(this.vibrate=e.vibrate),void 0!==e.warp&&(this.warp=e.warp)}}class nQ extends nE{constructor(){super(),this.destroy=L.none,this.speed=2}load(e){super.load(e),sh(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}class nX extends nI{constructor(){super(),this.animation=new nQ,this.value=1}load(e){if(sh(e))return;super.load(e);let t=e.animation;void 0!==t&&this.animation.load(t)}}class nY{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if(sh(e))return;void 0!==e.enable&&(this.enable=e.enable);let t=e.width;void 0!==t&&(this.width=t);let i=e.height;void 0!==i&&(this.height=i)}}(b=K||(K={})).delete="delete",b.wait="wait";class nK{constructor(){this.mode=K.delete,this.value=0}load(e){sh(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.value&&(this.value=e.value))}}class nJ{constructor(){this.density=new nY,this.limit=new nK,this.value=0}load(e){sh(e)||(this.density.load(e.density),this.limit.load(e.limit),void 0!==e.value&&(this.value=e.value))}}class nZ{constructor(){this.blur=0,this.color=new no,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(e){sh(e)||(void 0!==e.blur&&(this.blur=e.blur),this.color=no.create(this.color,e.color),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.offset&&(void 0!==e.offset.x&&(this.offset.x=e.offset.x),void 0!==e.offset.y&&(this.offset.y=e.offset.y)))}}class n0{constructor(){this.close=!0,this.fill=!0,this.options={},this.type="circle"}load(e){if(sh(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=sN(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.fill&&(this.fill=e.fill),void 0!==e.type&&(this.t
1ype=e.type)}}class n1 extends nE{constructor(){super(),this.destroy=L.none,this.speed=5}load(e){super.load(e),sh(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}class n2 extends nI{constructor(){super(),this.animation=new n1,this.value=3}load(e){if(super.load(e),sh(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}class n3{constructor(){this.width=0}load(e){sh(e)||(void 0!==e.color&&(this.color=nS.create(this.color,e.color)),void 0!==e.width&&(this.width=s_(e.width)),void 0!==e.opacity&&(this.opacity=s_(e.opacity)))}}class n5 extends nM{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),sh(e)||(void 0!==e.opacityRate&&(this.opacityRate=e.opacityRate),void 0!==e.sizeRate&&(this.sizeRate=e.sizeRate),void 0!==e.velocityRate&&(this.velocityRate=e.velocityRate))}}class n4{constructor(e,t){this._engine=e,this._container=t,this.bounce=new nD,this.collisions=new nj,this.color=new nS,this.color.value="#fff",this.effect=new nN,this.groups={},this.move=new nG,this.number=new nJ,this.opacity=new nX,this.reduceDuplicates=!1,this.shadow=new nZ,this.shape=new n0,this.size=new n2,this.stroke=new n3,this.zIndex=new n5}load(e){if(sh(e))return;if(void 0!==e.groups)for(let t of Object.keys(e.groups)){if(!Object.hasOwn(e.groups,t))continue;let i=e.groups[t];void 0!==i&&(this.groups[t]=sN(this.groups[t]??{},i))}void 0!==e.reduceDuplicates&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.color.load(nS.
1create(this.color,e.color)),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex),this.collisions.load(e.collisions),void 0!==e.interactivity&&(this.interactivity=sN({},e.interactivity));let t=e.stroke;if(t&&(this.stroke=sU(t,e=>{let t=new n3;return t.load(e),t})),this._container){let t=this._engine.updaters.get(this._container);if(t)for(let i of t)i.loadOptions&&i.loadOptions(this,e);let i=this._engine.interactors.get(this._container);if(i)for(let t of i)t.loadParticlesOptions&&t.loadParticlesOptions(this,e)}}}function n8(e,...t){for(let i of t)e.load(i)}function n6(e,t,...i){let a=new n4(e,t);return n8(a,...i),a}class n9{constructor(e,t){this._findDefaultTheme=e=>this.themes.find(t=>t.default.value&&t.default.mode===e)??this.themes.find(e=>e.default.value&&e.default.mode===Q.any),this._importPreset=e=>{this.load(this._engine.getPreset(e))},this._engine=e,this._container=t,this.autoPlay=!0,this.background=new nl,this.backgroundMask=new nd,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new nh,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new nb(e,t),this.manualParticles=[],this.particles=n6(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(e){if(sh(e))return;void 0!==e.preset&&sU(e.preset,e=>this._importPreset(e)),void 0!==e.autoPlay&&(this.autoPlay=e.autoPlay),void 0!==e.clear&&(this.clear=e.clear),void 0!==e.ke
1y&&(this.key=e.key),void 0!==e.name&&(this.name=e.name),void 0!==e.delay&&(this.delay=s_(e.delay));let t=e.detectRetina;void 0!==t&&(this.detectRetina=t),void 0!==e.duration&&(this.duration=s_(e.duration));let i=e.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==e.pauseOnBlur&&(this.pauseOnBlur=e.pauseOnBlur),void 0!==e.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),void 0!==e.zLayers&&(this.zLayers=e.zLayers),this.background.load(e.background);let a=e.fullScreen;sr(a)?this.fullScreen.enable=a:this.fullScreen.load(a),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(e=>{let t=new nx;return t.load(e),t})),this.particles.load(e.particles),this.style=sN(this.style,e.style),this._engine.loadOptions(this,e),void 0!==e.smooth&&(this.smooth=e.smooth);let s=this._engine.interactors.get(this._container);if(s)for(let t of s)t.loadOptions&&t.loadOptions(this,e);if(void 0!==e.responsive)for(let t of e.responsive){let e=new nw;e.load(t),this.responsive.push(e)}if(this.responsive.sort((e,t)=>e.maxWidth-t.maxWidth),void 0!==e.themes)for(let t of e.themes){let e=this.themes.find(e=>e.name===t.name);if(e)e.load(t);else{let e=new nk;e.load(t),this.themes.push(e)}}this.defaultThemes.dark=this._findDefaultTheme(Q.dark)?.name,this.defaultThemes.light=this._findDefaultTheme(Q.light)?.name}setResponsive(e,t,i){this.load(i);let a=this.responsive.find(i=>i.mode===G.screen&&screen?i.maxWidth>screen.availWidth:i.maxWidth*t>e);return this.load(a?.options),a?.maxWidth}setTheme(e){if(e){let t=this.themes.find(t=>t.name===e);t&&this.load(t.options)}else{let e=sM("(prefers-color-scheme: dark)"),t=e?.matches,i=this._findDefaultTheme(t?Q.dark:Q.light);i&&this.load(i.options)}}}(x=J||(J={})).external="external",x.particles="particles";class n7{constructor(e,t){this.container=t,this._engine=e,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(e){for(let t of this._externalInteractors)t.isEnabled()&&t.interact(e)}handleClickMode(e){for(let t of this._externalInteractors)t.handleClickMode?.(e)}
1async init(){for(let e of(this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[],this._interactors)){switch(e.type){case J.external:this._externalInteractors.push(e);break;case J.particles:this._particleInteractors.push(e)}e.init()}}particlesInteract(e,t){for(let i of this._externalInteractors)i.clear(e,t);for(let i of this._particleInteractors)i.isEnabled(e)&&i.interact(e,t)}reset(e){for(let t of this._externalInteractors)t.isEnabled()&&t.reset(e);for(let t of this._particleInteractors)t.isEnabled(e)&&t.reset(e)}}function re(e){if(!sT(e.outMode,e.checkModes))return;let t=2*e.radius;e.coord>e.maxCoord-t?e.setCb(-e.radius):e.coord<t&&e.setCb(e.radius)}(w=Z||(Z={})).normal="normal",w.inside="inside",w.outside="outside";class rt{constructor(e,t){this.container=t,this._calcPosition=(e,t,i,a=sn)=>{var s;for(let a of e.plugins.values()){let e=void 0!==a.particlePosition?a.particlePosition(t,this):void 0;if(e)return su.create(e.x,e.y,i)}let n=(s={size:e.canvas.size,position:t},{x:s.position?.x??sm()*s.size.width,y:s.position?.y??sm()*s.size.height}),r=su.create(n.x,n.y,i),o=this.getRadius(),l=this.options.move.outModes,c=t=>{re({outMode:t,checkModes:[Y.bounce],coord:r.x,maxCoord:e.canvas.size.width,setCb:e=>r.x+=e,radius:o})},d=t=>{re({outMode:t,checkModes:[Y.bounce],coord:r.y,maxCoord:e.canvas.size.height,setCb:e=>r.y+=e,radius:o})};return(c(l.left??l.default),c(l.right??l.default),d(l.top??l.default),d(l.bottom??l.default),this._checkOverlap(r,a))?this._calcPosition(e,void 0,i,a+1):r},this._calculateVelocity=()=>{var e;let t,i=(e=this.direction,(t=sf.origin).length=1,t.angle=e,t).copy(),a=this.options.move;if(a.direction===j.inside||a.direction===j.outside)return i;let s=sE(sb(a.angle.value)),n=sE(sb(a.angle.offset)),r={left:n-.5*s,right:n+.5*s};return a.straight||(i.angle+=sy(s_(r.left,r.right))),a.random&&"number"==typeof a.speed&&(i.length*=sm()),i},this._checkOverlap=(e,t=sn)=>{let i=this.options.collisions,a=this.getRadius();if(!i.enable)return!1;let s=i.overlap;if(s.enable)return!1;let n=s.retries;if(n>=0&&t>n)throw Error(`${a7} particle is overlapping and can't be placed`);return!!this.container.particles.find(t=>sC(e,t.position)<a+t.getRadius())},this._getRollColor=e=>{if(!e||!this.roll||!this.backColor&&!this.roll.alter)return e;let t=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/t))%2))return e;if(this.backColor)return this.backColor;if(this.roll.alter){var a,s;return a=this.roll.alter.type,s=this.roll.alter.value,{h:e.h,s:e.s,l:e.l+(a===U.darken?-1:1)*s}}return e},this._initPosition=e=>{let t=this.container,i=sb(this.options.zIndex.value);this.position=this._calcPosition(t,e,sg(i,0,t.zLayers)),this.initialPosition=this.position.copy();let a=t.canvas.size;switch(this.moveCenter={...sG(this.options.move.center,a),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??q.percent},this.direction=function(e,t,i){if(sl(e))return sE(e);switch(e){case j.top:return-(.5*Math.PI);case j.topRight:return-(.25*Math.PI);case j.right:return 0;case j.bottomRight:return .25*Math.PI;case j.bottom:return .5*Math.PI;case j.bottomLeft:return .75*Math.PI;case j.left:return Math.PI;case j.topLeft:return-(.75*Math.PI);case j.inside:return Math.atan2(i.y-t.y,i.x-t.x);case j.outside:return Math.atan2(t.y-i.y,t.x-i.x);default:return sm()*st}}(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case j.inside:this.outType=Z.inside;break;case j.outside:this.outType=Z.outside}this.offset=sf.origin},this._engine=e}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let t=this.container,i=this.pathGenerator,a=t.shapeDrawers.get(this.shape);for(let i of(a?.particleDestroy?.(this),t.plugins.values()))i.particleDestroyed?.(this,e);for(let i of t.particles.updaters)i.particleDestroyed?.(this,e);i?.reset(this),this._engine.dispatchEvent(W.particleDestroyed,{container:this.container,data:{particle:this}})}draw(e){let t=this.container,i=t.canvas;for(let a of t.plugins.values())i.drawParticlePlugin(a,this,e);
1i.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??s8(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??s8(this.strokeColor))}init(e,t,i,a){let s=this.container,n=this._engine;this.id=e,this.group=a,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=Z.normal,this.ignoresResizeRatio=!0;let r=s.retina.pixelRatio,o=s.actualOptions,l=n6(this._engine,s,o.particles),{reduceDuplicates:c}=l,d=l.effect.type,h=l.shape.type;this.effect=sH(d,this.id,c),this.shape=sH(h,this.id,c);let u=l.effect,f=l.shape;if(i){if(i.effect?.type){let e=sH(i.effect.type,this.id,c);e&&(this.effect=e,u.load(i.effect))}if(i.shape?.type){let e=sH(i.shape.type,this.id,c);e&&(this.shape=e,f.load(i.shape))}}if(this.effect===se){let e=[...this.container.effectDrawers.keys()];this.effect=e[Math.floor(sm()*e.length)]}if(this.shape===se){let e=[...this.container.shapeDrawers.keys()];this.shape=e[Math.floor(sm()*e.length)]}this.effectData=function(e,t,i,a){let s=t.options[e];if(s)return sN({close:t.close,fill:t.fill},sH(s,i,a))}(this.effect,u,this.id,c),this.shapeData=function(e,t,i,a){let s=t.options[e];if(s)return sN({close:t.close,fill:t.fill},sH(s,i,a))}(this.shape,f,this.id,c),l.load(i);let p=this.effectData;p&&l.load(p.particles);let m=this.shapeData;m&&l.load(m.particles);let g=new nb(n,s);g.load(s.actualOptions.interactivity),g.load(l.interactivity),this.interactivity=g,this.effectFill=p?.fill??l.effect.fill,this.effectClose=p?.close??l.effect.close,this.shapeFill=m?.fill??l.shape.fill,this.shapeClose=m?.close??l.shape.close,this.options=l;let v=this.options.move.path;this.pathDelay=1e3*sb(v.delay.value),v.generator&&(this.pathGenerator=this._engine.getPathGenerator(v.generator),this.pathGenerator&&s.addPath(v.generator,this.pathGenerator)&&this.pathGenerator.init(s)),s.retina.initParticle(this),this.size=s$(this.options.size,r),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(t),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-sb(this.options.move.decay);let y=s.particles;y.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/s.zLayers,this.sides=24;let b=s.effectDrawers.get(this.effect);!b&&(b=this._engine.getEffectDrawer(this.effect))&&s.effectDrawers.set(this.effect,b),b?.loadEffect&&b.loadEffect(this);let x=s.shapeDrawers.get(this.shape);!x&&(x=this._engine.getShapeDrawer(this.shape))&&s.shapeDrawers.set(this.shape,x),x?.loadShape&&x.loadShape(this);let w=x?.getSidesCount;for(let e of(w&&(this.sides=w(this)),this.spawning=!1,this.shadowColor=sY(this._engine,this.options.shadow.color),y.updaters))e.init(this);for(let e of y.movers)e.init?.(this);for(let e of(b?.particleInit?.(s,this),x?.particleInit?.(s,this),s.plugins.values()))e.particleCreated?.(this)}isInsideCanvas(){let e=this.getRadius(),t=this.container.canvas.size,i=this.position;return i.x>=-e&&i.y>=-e&&i.y<=t.height+e&&i.x<=t.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let e of this.container.particles.updaters)e.reset?.(this)}}class ri{constructor(e,t){this.position=e,this.particle=t}}(_=ee||(ee={})).circle="circle",_.rectangle="rectangle";class ra{constructor(e,t,i){this.position={x:e,y:t},this.type=i}}class rs extends ra{constructor(e,t,i){super(e,t,ee.circle),this.radius=i}contains(e){return sC(e,this.position)<=this.radius}intersects(e){let t=this.position,i=e.position,a={x:Math.abs(i.x-t.x),y:Math.abs(i.y-t.y)},s=this.radius;if(e instanceof rs||e.type===ee.circle)return s+e.radius>Math.sqrt(a.x**2+a.y**2);if(e instanceof rn||e.type===ee.rectangle){let{width:t,height:i}=e.size;
1return Math.pow(a.x-t,2)+Math.pow(a.y-i,2)<=s**2||a.x<=s+t&&a.y<=s+i||a.x<=t||a.y<=i}return!1}}class rn extends ra{constructor(e,t,i,a){super(e,t,ee.rectangle),this.size={height:a,width:i}}contains(e){let t=this.size.width,i=this.size.height,a=this.position;return e.x>=a.x&&e.x<=a.x+t&&e.y>=a.y&&e.y<=a.y+i}intersects(e){if(e instanceof rs)return e.intersects(this);let t=this.size.width,i=this.size.height,a=this.position,s=e.position,n=e instanceof rn?e.size:{width:0,height:0},r=n.width,o=n.height;return s.x<a.x+t&&s.x+r>a.x&&s.y<a.y+i&&s.y+o>a.y}}class rr{constructor(e,t){this.rectangle=e,this.capacity=t,this._subdivide=()=>{let{x:e,y:t}=this.rectangle.position,{width:i,height:a}=this.rectangle.size,{capacity:s}=this;for(let n=0;n<4;n++){let r=n%2;this._subs.push(new rr(new rn(e+.5*i*r,t+.5*a*(Math.round(.5*n)-r),.5*i,.5*a),s))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return!!this.rectangle.contains(e.position)&&(this._points.length<this.capacity?(this._points.push(e),!0):(this._divided||this._subdivide(),this._subs.some(t=>t.insert(e))))}query(e,t){let i=[];if(!e.intersects(this.rectangle))return[];for(let a of this._points)!e.contains(a.position)&&sC(e.position,a.position)>a.particle.getRadius()&&(!t||t(a.particle))||i.push(a.particle);if(this._divided)for(let a of this._subs)i.push(...a.query(e,t));return i}queryCircle(e,t,i){return this.query(new rs(e.x,e.y,t),i)}queryRectangle(e,t,i){return this.query(new rn(e.x,e.y,t.width,t.height),i)}}let ro=e=>{let{height:t,width:i}=e;return new rn(-.25*i,-.25*t,1.5*i,1.5*t)};class rl{constructor(e,t){this._addToPool=(...e)=>{this._pool.push(...e)},this._applyDensity=(e,t,i,a)=>{let s=e.number;if(!e.number.density?.enable)return void(void 0===i?this._limit=s.limit.value:(a?.number.limit?.value??s.limit.value)&&this._groupLimits.set(i,a?.number.limit?.value??s.limit.value));let n=this._initDensityFactor(s.density),r=s.value,o=s.limit.value>0?s.limit.value:r,l=Math.min(r,o)*n+t,c=Math.min(this.count,this.filter(e=>e.group===i).length);void 0===i?this._limit=s.limit.value*n:this._groupLimits.set(i,s.limit.value*n),c<l?this.push(Math.abs(l-c),void 0,e,i):c>l&&this.removeQuantity(c-l,i)},this._initDensityFactor=e=>{let t=this._container;if(!t.canvas.element||!e.enable)return 1;let i=t.canvas.element,a=t.retina.pixelRatio;return i.width*i.height/(e.height*e.width*a**2)},this._pushParticle=(e,t,i,a)=>{try{let s=this._pool.pop();s||(s=new rt(this._engine,this._container)),s.init(this._nextId,e,t,i);let n=!0;if(a&&(n=a(s)),!n)return;return this._array.push(s),this._zArray.push(s),this._nextId++,this._engine.dispatchEvent(W.particleAdded,{container:this._container,data:{particle:s}}),s}catch(e){sS.warning(`${a7} adding particle: ${e}`)}},this._removeParticle=(e,t,i)=>{let a=this._array[e];if(!a||a.group!==t)return!1;let s=this._zArray.indexOf(a);return this._array.splice(e,1),this._zArray.splice(s,1),a.destroy(i),this._engine.dispatchEvent(W.particleRemoved,{container:this._container,data:{particle:a}}),this._addToPool(a),!0},this._engine=e,this._container=t,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 n7(e,t),this._pluginsInitialized=!1;const i=t.canvas.size;this.quadTree=new rr(ro(i),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){let e=this._container;e.actualOptions.manualParticles.forEach(t=>this.addParticle(t.position?sG(t.position,e.canvas.size):void 0,t.options))}addParticle(e,t,i,a){let s=this._container.actualOptions.particles.number.limit.mode,n=void 0===i?this._limit:this._groupLimits.get(i)??this._limit,r=this.count;if(n>0)switch(s){case K.delete:{let e=r+1-n;e>0&&this.removeQuantity(e);break}case K.wait:if(r>=n)return}return this._pushParticle(e,t,i,a)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(e){let t=this._container,i=t.canvas;
1for(let a of(i.clear(),this.update(e),t.plugins.values()))i.drawPlugin(a,e);for(let t of this._zArray)t.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}get(e){return this._array[e]}handleClickMode(e){this._interactionManager.handleClickMode(e)}async init(){let e=this._container,t=e.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let i=!1;for(let t of e.plugins.values())if(i=t.particlesInitialization?.()??i)break;if(this.addManualParticles(),!i){let e=t.particles,i=e.groups;for(let t in i){let a=i[t];for(let i=this.count,s=0;s<a.number?.value&&i<e.number.value;i++,s++)this.addParticle(void 0,a,t)}for(let t=this.count;t<e.number.value;t++)this.addParticle()}}async initPlugins(){if(this._pluginsInitialized)return;let e=this._container;for(let t of(this.movers=await this._engine.getMovers(e,!0),this.updaters=await this._engine.getUpdaters(e,!0),await this._interactionManager.init(),e.pathGenerators.values()))t.init(e)}push(e,t,i,a){for(let s=0;s<e;s++)this.addParticle(t?.position,i,a)}async redraw(){this.clear(),await this.init(),this.draw({value:0,factor:0})}remove(e,t,i){this.removeAt(this._array.indexOf(e),void 0,t,i)}removeAt(e,t=1,i,a){if(e<0||e>this.count)return;let s=0;for(let n=e;s<t&&n<this.count;n++)this._removeParticle(n,i,a)&&(n--,s++)}removeQuantity(e,t){this.removeAt(0,e,t)}setDensity(){let e=this._container.actualOptions,t=e.particles.groups,i=e.manualParticles.length;for(let e in t)this._applyDensity(t[e],i,e);this._applyDensity(e.particles,i)}setLastZIndex(e){this._lastZIndex=e,this._needsSort=this._needsSort||this._lastZIndex<e}setResizeFactor(e){this._resizeFactor=e}update(e){let t=this._container,i=new Set;for(let e of(this.quadTree=new rr(ro(t.canvas.size),4),t.pathGenerators.values()))e.update();for(let i of t.plugins.values())i.update?.(e);let a=this._resizeFactor;for(let t of this._array){for(let i of(a&&!t.ignoresResizeRatio&&(t.position.x*=a.width,t.position.y*=a.height,t.initialPosition.x*=a.width,t.initialPosition.y*=a.height),t.ignoresResizeRatio=!1,this._interactionManager.reset(t),this._container.plugins.values())){if(t.destroyed)break;i.particleUpdate?.(t,e)}for(let i of this.movers)i.isEnabled(t)&&i.move(t,e);if(t.destroyed){i.add(t);continue}this.quadTree.insert(new ri(t.getPosition(),t))}if(i.size){let e=e=>!i.has(e);for(let t of(this._array=this.filter(e),this._zArray=this._zArray.filter(e),i))this._engine.dispatchEvent(W.particleRemoved,{container:this._container,data:{particle:t}});this._addToPool(...i)}for(let t of(this._interactionManager.externalInteract(e),this._array)){for(let i of this.updaters)i.update(t,e);t.destroyed||t.spawning||this._interactionManager.particlesInteract(t,e)}if(delete this._resizeFactor,this._needsSort){let e=this._zArray;e.sort((e,t)=>t.position.z-e.position.z||e.id-t.id),this._lastZIndex=e[e.length-1].position.z,this._needsSort=!1}}}class rc{constructor(e){this.container=e,this.pixelRatio=1,this.reduceFactor=1}init(){let e=this.container,t=e.actualOptions;this.pixelRatio=!t.detectRetina||sA()?1:devicePixelRatio,this.reduceFactor=1;let i=this.pixelRatio,a=e.canvas;if(a.element){let e=a.element;a.size.width=e.offsetWidth*i,a.size.height=e.offsetHeight*i}let s=t.particles,n=s.move;this.maxSpeed=sb(n.gravity.maxSpeed)*i,this.sizeAnimationSpeed=sb(s.size.animation.speed)*i}initParticle(e){let t=e.options,i=this.pixelRatio,a=t.move,s=a.distance,n=e.retina;n.moveDrift=sb(a.drift)*i,n.moveSpeed=sb(a.speed)*i,n.sizeAnimationSpeed=sb(t.size.animation.speed)*i;let r=n.maxDistance;r.horizontal=void 0!==s.horizontal?s.horizontal*i:void 0,r.vertical=void 0!==s.vertical?s.vertical*i:void 0,n.maxSpeed=sb(a.gravity.maxSpeed)*i}}function rd(e){return e&&!e.destroyed}function rh(e,t,...i){let a=new n9(e,t);return n8(a,...i),a}class ru{constructor(e,t,i){this._intersectionManager=e=>{if(rd(this)&&this.actualOptions.pauseOnOutsideViewport)for(let t of e)t.target===this.interactivity.element&&(t.isIntersecting?this.play():this.pause())},this._nextFrame=e=>{try{if(!this._smooth&&void 0!==this._lastFrameTime&&e<this._lastFrameTime+1e3/this.fpsLimit)return void this.draw(!1);this._lastFrameTime??=e;let t=function(e,t=60,i=!1){return{value:e,factor:i?60/t:60*e/1e3}}(e-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(t.value),this._lastFrameTime=e,t.value>1e3)return void this.draw(!1);if(this.particles.draw(t),!this.alive())return void this.destroy();this.animationStatus&&this.draw(!1)}catch(e){sS.error(`${a7} in animation loop`,e)}},this._engine=e,this.id=Symbol(t),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 rc(this),this.canvas=new ns(this,this._engine),this.particles=new rl(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=rh(this._engine,this),this.actualOptions=rh(this._engine,this),this._eventListeners=new nr(this),this._intersectionObserver=function(e){if(!sA()&&"u">typeof IntersectionObserver)return new IntersectionObserver(e)}(e=>this._intersectionManager(e)),this._engine.dispatchEvent(W.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&rd(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!rd(this))return;let t=this.interactivity.element;if(!t)return;let i=(t,i,a)=>
1{if(!rd(this))return;let s=this.retina.pixelRatio,n={x:i.x*s,y:i.y*s};e(t,this.particles.quadTree.queryCircle(n,a*s))},a=e=>{if(!rd(this))return;let t={x:e.offsetX||e.clientX,y:e.offsetY||e.clientY};i(e,t,1)},s=()=>{rd(this)&&(l=!0,c=!1)},n=()=>{rd(this)&&(c=!0)},r=e=>{if(rd(this)){if(l&&!c){let t=e.touches[e.touches.length-1];if(!t&&!(t=e.changedTouches[e.changedTouches.length-1]))return;let a=this.canvas.element,s=a?a.getBoundingClientRect():void 0;i(e,{x:t.clientX-(s?s.left:0),y:t.clientY-(s?s.top:0)},Math.max(t.radiusX,t.radiusY))}l=!1,c=!1}},o=()=>{rd(this)&&(l=!1,c=!1)},l=!1,c=!1;for(let[e,i]of(this._clickHandlers.set("click",a),this._clickHandlers.set("touchstart",s),this._clickHandlers.set("touchmove",n),this._clickHandlers.set("touchend",r),this._clickHandlers.set("touchcancel",o),this._clickHandlers))t.addEventListener(e,i)}addLifeTime(e){this._lifeTime+=e}addPath(e,t,i=!1){return!(!rd(this)||!i&&this.pathGenerators.has(e))&&(this.pathGenerators.set(e,t),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){if(rd(this)){for(let[e,t]of this._clickHandlers)this.interactivity.element?.removeEventListener(e,t);this._clickHandlers.clear()}}destroy(e=!0){if(rd(this)){for(let e of(this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy(),this.effectDrawers.values()))e.destroy?.(this);for(let e of this.shapeDrawers.values())e.destroy?.(this);for(let e of this.effectDrawers.keys())this.effectDrawers.delete(e);for(let e of this.shapeDrawers.keys())this.shapeDrawers.delete(e);if(this._engine.clearPlugins(this),this.destroyed=!0,e){let e=this._engine.items,t=e.findIndex(e=>e===this);t>=0&&e.splice(t,1)}this._engine.dispatchEvent(W.containerDestroyed,{container:this})}}draw(e){if(!rd(this))return;let t=e,i=e=>{t&&(this._lastFrameTime=void 0,t=!1),this._nextFrame(e)};this._drawAnimationFrame=requestAnimationFrame(e=>i(e))}async export(e,t={}){for(let i of this.plugins.values()){if(!i.export)continue;let a=await i.export(e,t);if(a.supported)return a.blob}sS.error(`${a7} - Export plugin with type ${e} not found`)}handleClickMode(e){if(rd(this))for(let t of(this.particles.handleClickMode(e),this.plugins.values()))t.handleClickMode?.(e)}
1async init(){if(!rd(this))return;for(let e of this._engine.getSupportedEffects()){let t=this._engine.getEffectDrawer(e);t&&this.effectDrawers.set(e,t)}for(let e of this._engine.getSupportedShapes()){let t=this._engine.getShapeDrawer(e);t&&this.shapeDrawers.set(e,t)}for(let[e,t]of(await this.particles.initPlugins(),this._options=rh(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=rh(this._engine,this,this._options),await this._engine.getAvailablePlugins(this)))this.plugins.set(e,t);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();let{zLayers:e,duration:t,delay:i,fpsLimit:a,smooth:s}=this.actualOptions;for(let n of(this.zLayers=e,this._duration=1e3*sb(t),this._delay=1e3*sb(i),this._lifeTime=0,this.fpsLimit=a>0?a:120,this._smooth=s,this.effectDrawers.values()))await n.init?.(this);for(let e of this.shapeDrawers.values())await e.init?.(this);for(let e of this.plugins.values())await e.init?.();for(let e of(this._engine.dispatchEvent(W.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity(),this.plugins.values()))e.particlesSetup?.();this._engine.dispatchEvent(W.particlesSetup,{container:this})}async loadTheme(e){rd(this)&&(this._currentTheme=e,await this.refresh())}pause(){if(rd(this)){if(void 0!==this._drawAnimationFrame){var e;e=this._drawAnimationFrame,cancelAnimationFrame(e),delete this._drawAnimationFrame}if(!this._paused){for(let e of this.plugins.values())e.pause?.();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent(W.containerPaused,{container:this})}}}play(e){if(!rd(this))return;let t=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&(this._paused=!1),t)for(let e of this.plugins.values())e.play&&e.play();this._engine.dispatchEvent(W.containerPlay,{container:this}),this.draw(t??!1)}async refresh(){if(rd(this))return this.stop(),this.start()}async reset(e){if(rd(this))return this._initialSourceOptions=e,this._sourceOptions=e,this._options=rh(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=rh(this._engine,this,this._options),this.refresh()}async start(){rd(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise(e=>{let t=async()=>{for(let e of(this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element),this.plugins.values()))await e.start?.();this._engine.dispatchEvent(W.containerStarted,{container:this}),this.play(),e()};this._delayTimeout=setTimeout(()=>void t(),this._delay)}))}stop(){if(rd(this)&&this.started){for(let e 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.values()))e.stop?.();for(let e of this.plugins.keys())this.plugins.delete(e);this._sourceOptions=this._options,this._engine.dispatchEvent(W.containerStopped,{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth!==e&&(this._responsiveMaxWidth=e,!0)}}class rf{constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let i=this._listeners.get(e);i||(i=[],this._listeners.set(e,i)),i.push(t)}dispatchEvent(e,t){let i=this._listeners.get(e);i?.forEach(e=>e(t))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let i=this._listeners.get(e);if(!i)return;let a=i.length,s=i.indexOf(t);s<0||(1===a?this._listeners.delete(e):i.splice(s,1))}}async function rp(e,t,i,a=!1){let s=t.get(e);return(!s||a)&&(s=await Promise.all([...i.values()].map(t=>t(e))),t.set(e,s)),s}async function rm(e){let t=sH(e.url,e.index);if(!t)return e.fallback;let i=await fetch(t);return i.ok?await i.json():(sS.error(`${a7} ${i.status} while retrieving config file`),e.fallback)}class rg{constructor(e){this.type=J.external,this.container=e}}class rv{constructor(e){this.type=J.particles,this.container=e}}(k=et||(et={})).clockwise="clockwise",k.counterClockwise="counter-clockwise",k.random="random",(C=ei||(ei={})).linear="linear",C.radial="radial",C.random="random",(E=ea||(ea={})).easeInBack="ease-in-back",E.easeInCirc="ease-in-circ",E.easeInCubic="ease-in-cubic",E.easeInLinear="ease-in-linear",E.easeInQuad="ease-in-quad",E.easeInQuart="ease-in-quart",E.easeInQuint="ease-in-quint",E.easeInExpo="ease-in-expo",E.easeInSine="ease-in-sine",E.easeOutBack="ease-
1out-back",E.easeOutCirc="ease-out-circ",E.easeOutCubic="ease-out-cubic",E.easeOutLinear="ease-out-linear",E.easeOutQuad="ease-out-quad",E.easeOutQuart="ease-out-quart",E.easeOutQuint="ease-out-quint",E.easeOutExpo="ease-out-expo",E.easeOutSine="ease-out-sine",E.easeInOutBack="ease-in-out-back",E.easeInOutCirc="ease-in-out-circ",E.easeInOutCubic="ease-in-out-cubic",E.easeInOutLinear="ease-in-out-linear",E.easeInOutQuad="ease-in-out-quad",E.easeInOutQuart="ease-in-out-quart",E.easeInOutQuint="ease-in-out-quint",E.easeInOutExpo="ease-in-out-expo",E.easeInOutSine="ease-in-out-sine";let ry=((i=new class e{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new rf,this._initialized=!1,this.plugins=[],this.colorManagers=new Map,this.easingFunctions=new Map,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 e={};for(let[t,i]of this._configs)e[t]=i;return e}get items(){return this._domArray}get version(){return"3.9.1"}async addColorManager(e,t=!0){this.colorManagers.set(e.key,e),await this.refresh(t)}addConfig(e){let t=e.key??e.name??"default";this._configs.set(t,e),this._eventDispatcher.dispatchEvent(W.configAdded,{data:{name:t,config:e}})}async addEasing(e,t,i=!0){this.getEasing(e)||(this.easingFunctions.set(e,t),await this.refresh(i))}async addEffect(e,t,i=!0){sU(e,e=>{this.getEffectDrawer(e)||this.effectDrawers.set(e,t)}),await this.refresh(i)}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}async addInteractor(e,t,i=!0){this._initializers.interactors.set(e,t),await this.refresh(i)}async addMover(e,t,i=!0){this._initializers.movers.set(e,t),await this.refresh(i)}async addParticleUpdater(e,t,i=!0){this._initializers.updaters.set(e,t),await this.refresh(i)}async addPathGenerator(e,t,i=!0){this.getPathGenerator(e)||this.pathGenerators.set(e,t),await this.refresh(i)}async addPlugin(e,t=!0){this.getPlugin(e.id)||this.plugins.push(e),await this.refresh(t)}async addPreset(e,t,i=!1,a=!0){(i||!this.getPreset(e))&&this.presets.set(e,t),await this.refresh(a)}async addShape(e,t=!0){for(let t of e.validTypes)this.getShapeDrawer(t)||this.shapeDrawers.set(t,e);await this.refresh(t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}clearPlugins(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}dom(){return this.items}domItem(e){return this.item(e)}async getAvailablePlugins(e){let t=new Map;for(let i of this.plugins)i.needsPlugin(e.actualOptions)&&t.set(i.id,await i.getPlugin(e));return t}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawer(e){return this.effectDrawers.get(e)}async getInteractors(e,t=!1){return rp(e,this.interactors,this._initializers.interactors,t)}async getMovers(e,t=!1){return rp(e,this.movers,this._initializers.movers,t)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.shapeDrawers.get(e)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(e,t=!1){return rp(e,this.updaters,this._initializers.updaters,t)}init(){this._initialized||(this._initialized=!0)}item(e){let{items:t}=this,i=t[e];return!i||i.destroyed?void t.splice(e,1):i}async load(e){let t,i=e.id??e.element?.id??`tsparticles${Math.floor(1e4*sm())}`,{index:a,url:s}=e,n=sH(s?await rm({fallback:e.options,url:s,index:a}):e.options,a),{items:r}=this,o=r.findIndex(e=>e.id.description===i),l=new ru(this,i,n);if(o>=0){let e=this.item(o),t=+!!e;e&&!e.destroyed&&e.destroy(!1),r.splice(o,t,l)}else r.push(l);let c=(e=>{let t;if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===ss)(t=e).dataset[a4]||(t.dataset[a4]=sa);else{let i=e.getElementsByTagName(ss);i.length?(t=i[0]).dataset[a4]=sa:((t=document.createElement(ss)).dataset[a4]=si,e.appendChild(t))}let i="100%";return t.style.width||(t.style.width=i),t.style.height||(t.style.height=i),t})(((t=e.element??document.getElementById(i))||((t=document.createElement("div")).id=i,t.dataset[a4]=si,document.body.append(t)),t));return l.canvas.loadCanvas(c),await l.start(),l}loadOptions(e,t){this.plugins.forEach(i=>
1i.loadOptions?.(e,t))}loadParticlesOptions(e,t,...i){let a=this.updaters.get(e);a&&a.forEach(e=>e.loadOptions?.(t,...i))}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}setOnClickHandler(e){let{items:t}=this;if(!t.length)throw Error(`${a7} can only set click handlers after calling tsParticles.load()`);t.forEach(t=>t.addClickHandler(e))}}).init(),i);sA()||(window.tsParticles=ry);let rb=e=>{let t=e.id??"tsparticles";return(0,ep.useEffect)(()=>{let i;return ry.load({id:t,url:e.url,options:e.options}).then(t=>{var a;i=t,null==(a=e.particlesLoaded)||a.call(e,t)}),()=>{null==i||i.destroy()}},[t,e,e.url,e.options]),(0,ed.jsx)("div",{id:t,className:e.className})};async function rx(e){await e(ry)}let rw=2*Math.PI;class r_{init(e){let t=e.options.move.gravity;e.gravity={enable:t.enable,acceleration:sb(t.acceleration),inverse:t.inverse},function(e){let t=e.container,i=e.options.move.spin;if(!i.enable)return;let a=i.position??{x:50,y:50},s={x:.01*a.x*t.canvas.size.width,y:.01*a.y*t.canvas.size.height},n=sC(e.getPosition(),s),r=sb(i.acceleration);e.retina.spinAcceleration=r*t.retina.pixelRatio,e.spin={center:s,direction:e.velocity.x>=0?et.clockwise:et.counterClockwise,angle:sm()*rw,radius:n,acceleration:e.retina.spinAcceleration}}(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,t){let i=e.options,a=i.move;if(!a.enable)return;let s=e.container,n=s.retina.pixelRatio;e.retina.moveSpeed??=sb(a.speed)*n,e.retina.moveDrift??=sb(e.options.move.drift)*n;let r=e.slow.inRange?e.slow.factor:1,o=s.retina.reduceFactor,l=e.retina.moveSpeed,c=e.retina.moveDrift,d=sw(i.size.value)*n,h=l*(a.size?e.getRadius()/d:1)*r*(t.factor||1)/2,u=e.retina.maxSpeed??s.retina.maxSpeed;a.spin.enable?function(e,t,i){let a=e.container;if(!e.spin)return;let s=e.spin.direction===et.clockwise,n={x:s?Math.cos:Math.sin,y:s?Math.sin:Math.cos};e.position.x=e.spin.center.x+e.spin.radius*n.x(e.spin.angle)*i,e.position.y=e.spin.center.y+e.spin.radius*n.y(e.spin.angle)*i,e.spin.radius+=e.spin.acceleration*i;let r=Math.max(a.canvas.size.width,a.canvas.size.height),o=.5*r;e.spin.radius>o?(e.spin.radius=o,e.spin.acceleration*=-1):e.spin.radius<0&&(e.spin.radius=0,e.spin.acceleration*=-1),e.spin.angle+=.01*t*(1-e.spin.radius/r)}(e,h,o):function(e,t,i,a,s,n,r){!function(e,t){let i=e.options.move.path;if(!i.enable)return;if(e.lastPathTime<=e.pathDelay){e.lastPathTime+=t.value;return}let a=e.pathGenerator?.generate(e,t);a&&e.velocity.addTo(a),i.clamp&&(e.velocity.x=sg(e.velocity.x,-1,1),e.velocity.y=sg(e.velocity.y,-1,1)),e.lastPathTime-=e.pathDelay}(e,r);let o=e.gravity,l=o?.enable&&o.inverse?-1:1;s&&i&&(e.velocity.x+=s*r.factor/(60*i)),o?.enable&&i&&(e.velocity.y+=l*(o.acceleration*r.factor)/(60*i));let c=e.moveDecay;e.velocity.multTo(c);let d=e.velocity.mult(i);o?.enable&&a>0&&(!o.inverse&&d.y>=0&&d.y>=a||o.inverse&&d.y<=0&&d.y<=-a)&&(d.y=l*a,i&&(e.velocity.y=d.y/i));let h=e.options.zIndex,u=(1-e.zIndexFactor)**h.velocityRate;d.multTo(u),d.multTo(n);let{position:f}=e;f.addTo(d),t.vibrate&&(f.x+=Math.sin(f.x*Math.cos(f.y))*n,f.y+=Math.cos(f.y*Math.sin(f.x))*n)}(e,a,h,u,c,o,t),function(e){let t=e.initialPosition,{dx:i,dy:a}=sk(t,e.position),s=Math.abs(i),n=Math.abs(a),{maxDistance:r}=e.retina,o=r.horizontal,l=r.vertical;if(o||l){if((o&&s>=o||l&&n>=l)&&!e.misplaced)e.misplaced=!!o&&s>o||!!l&&n>l,o&&(e.velocity.x=.5*e.velocity.y-e.velocity.x),l&&(e.velocity.y=.5*e.velocity.x-e.velocity.y);else if((!o||s<o)&&(!l||n<l)&&e.misplaced)e.misplaced=!1;else if(e.misplaced){let i=e.position,a=e.velocity;o&&(i.x<t.x&&a.x<0||i.x>t.x&&a.x>0)&&(a.x*=-sm()),l&&(i.y<t.y&&a.y<0||i.y>t.y&&a.y>0)&&(a.y*=-sm())}}}(e)}}async function rk(e,t=!0){e.checkVersion("3.9.1"),await e.addMover("base",()=>Promise.resolve(new r_),t)}let rC=2*Math.PI;class rE{constructor(){this.validTypes=["circle"]}draw(e){!function(e){let{context:t,particle:i,radius:a}=e;i.circleRange||(i.circleRange={min:0,max:rC});let s=i.circleRange;t.arc(0,0,a,s.min,s.max,!1)}(e)}getSidesCount(){return 12}particleInit(e,t){let i=t.shapeData,a=i?.angle??{max:360,min:0};t.circleRange=sc(a)?{min:sE(a.min),max:sE(a.max)}:{min:0,max:sE(a)}}}async function rP(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new rE,t)}class rR{constructor(e,t){this._container=e,this._engine=t}init(e){let t=sK(this._engine,e.options.color,e.id,e.options.reduceDuplicates);t&&(e.color=s6(t,e.options.color.animation,this._container.retina.reduceFactor))}
1isEnabled(e){let{h:t,s:i,l:a}=e.options.color.animation,{color:s}=e;return!e.destroyed&&!e.spawning&&(s?.h.value!==void 0&&t.enable||s?.s.value!==void 0&&i.enable||s?.l.value!==void 0&&a.enable)}update(e,t){ne(e.color,t)}}async function rS(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("color",t=>Promise.resolve(new rR(t,e)),t)}(P=es||(es={}))[P.r=1]="r",P[P.g=2]="g",P[P.b=3]="b",P[P.a=4]="a";let rz=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,rA=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i;class rM{constructor(){this.key="hex",this.stringPrefix="#"}handleColor(e){return this._parseString(e.value)}handleRangeColor(e){return this._parseString(e.value)}parseString(e){return this._parseString(e)}_parseString(e){if("string"!=typeof e||!e?.startsWith(this.stringPrefix))return;let t=e.replace(rz,(e,t,i,a,s)=>t+t+i+i+a+a+(void 0!==s?s+s:"")),i=rA.exec(t);return i?{a:void 0!==i[es.a]?parseInt(i[es.a],16)/255:1,b:parseInt(i[es.b],16),g:parseInt(i[es.g],16),r:parseInt(i[es.r],16)}:void 0}}async function rT(e,t=!0){e.checkVersion("3.9.1"),await e.addColorManager(new rM,t)}(R=en||(en={}))[R.h=1]="h",R[R.s=2]="s",R[R.l=3]="l",R[R.a=5]="a";class rI{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(e){let t=e.value.hsl??e.value;if(void 0!==t.h&&void 0!==t.s&&void 0!==t.l)return sZ(t)}handleRangeColor(e){let t=e.value.hsl??e.value;if(void 0!==t.h&&void 0!==t.l)return sZ({h:sb(t.h),l:sb(t.l),s:sb(t.s)})}parseString(e){var t;let i;if(!e.startsWith("hsl"))return;let a=/hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return a?(i=sZ(t={a:a.length>4?sR(a[en.a]):1,h:parseInt(a[en.h],10),l:parseInt(a[en.l],10),s:parseInt(a[en.s],10)}),{a:t.a,b:i.b,g:i.g,r:i.r}):void 0}}async function rO(e,t=!0){e.checkVersion("3.9.1"),await e.addColorManager(new rI,t)}class rD{constructor(e){this.container=e}init(e){let t=e.options.opacity;e.opacity=s$(t,1);let i=t.animation;i.enable&&(e.opacity.velocity=sb(i.speed)/100*this.container.retina.reduceFactor,i.sync||(e.opacity.velocity*=sm()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,t){this.isEnabled(e)&&e.opacity&&sQ(e,e.opacity,!0,e.options.opacity.animation.destroy,t)}}async function rj(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("opacity",e=>Promise.resolve(new rD(e)),t)}class rN{constructor(e){this.container=e,this.modes=[Y.bounce,Y.split]}update(e,t,i,a){if(!this.modes.includes(a))return;let s=this.container,n=!1;for(let a of s.plugins.values())if(void 0!==a.particleBounce&&(n=a.particleBounce(e,i,t)),n)break;if(n)return;let r=e.getPosition(),o=e.offset,l=e.getRadius(),c=sj(r,l),d=s.canvas.size;!function(e){if(e.outMode!==Y.bounce&&e.outMode!==Y.split||e.direction!==B.left&&e.direction!==B.right)return;e.bounds.right<0&&e.direction===B.left?e.particle.position.x=e.size+e.offset.x:e.bounds.left>e.canvasSize.width&&e.direction===B.right&&(e.particle.position.x=e.canvasSize.width-e.size-e.offset.x);let t=e.particle.velocity.x,i=!1;if(e.direction===B.right&&e.bounds.right>=e.canvasSize.width&&t>0||e.direction===B.left&&e.bounds.left<=0&&t<0){let t=sb(e.particle.options.bounce.horizontal.value);e.particle.velocity.x*=-t,i=!0}if(!i)return;let a=e.offset.x+e.size;e.bounds.right>=e.canvasSize.width&&e.direction===B.right?e.particle.position.x=e.canvasSize.width-a:e.bounds.left<=0&&e.direction===B.left&&(e.particle.position.x=a),e.outMode===Y.split&&e.particle.destroy()}({particle:e,outMode:a,direction:t,bounds:c,canvasSize:d,offset:o,size:l}),function(e){if(e.outMode!==Y.bounce&&e.outMode!==Y.split||e.direction!==B.bottom&&e.direction!==B.top)return;e.bounds.bottom<0&&e.direction===B.top?e.particle.position.y=e.size+e.offset.y:e.bounds.top>e.canvasSize.height&&e.direction===B.bottom&&(e.particle.position.y=e.canvasSize.height-e.size-e.offset.y);let t=e.particle.velocity.y,i=!1;if(e.direction===B.bottom&&e.bounds.bottom>=e.canvasSize.height&&t>0||e.direction===B.top&&e.bounds.top<=0&&t<0){let t=sb(e.particle.options.bounce.vertical.value);e.particle.velocity.y*=-t,i=!0}if(!i)return;let a=e.offset.y+e.size;e.bounds.bottom>=e.canvasSize.height&&e.direction===B.bottom?e.particle.position.y=e.canvasSize.height-a:e.bounds.top<=0&&e.direction===B.top&&(e.particle.position.y=a),e.outMode===Y.split&&e.particle.destroy()}({particle:e,outMode:a,direction:t,bounds:c,canvasSize:d,offset:o,size:l})}}class rF{constructor(e){this.container=e,this.modes=[Y.destroy]}update(e,t,i,a){if(!this.modes.includes(a))return;let s=this.container;switch(e.outType){case Z.normal:case Z.outside:if(sD(e.position,s.canvas.size,sf.origin,e.getRadius(),t))return;break;case Z.inside:{let{dx:t,dy:i}=sk(e.position,e.moveCenter),{x:a,y:s}=e.velocity;if(a<0&&t>e.moveCenter.radius||s<0&&i>e.moveCenter.radius||a>=0&&t<-e.moveCenter.radius||s>=0&&i<-e.moveCenter.radius)return}}s.particles.remove(e,e.group,!0)}}class rL{constructor(e){this.container=e,this.modes=[Y.none]}update(e,t,i,a){if(!this.modes.includes(a)||((e.options.move.distance.horizontal&&(t===B.left||t===B.right))??(e.options.move.distance.vertical&&(t===B.top||t===B.bottom))))return;let s=e.options.move.gravity,n=this.container,r=n.canvas.size,o=e.getRadius();if(s.enable){let i=e.position;(!s.inverse&&i.y>r.height+o&&t===B.bottom||s.inverse&&i.y<-o&&t===B.top)&&n.particles.remove(e)}else{if(e.velocity.y>0&&e.position.y<=r.height+o||e.velocity.y<0&&e.position.y>=-o||e.velocity.x>0&&e.position.x<=r.width+o||e.velocity.x<0&&e.position.x>=-o)return;sD(e.position,n.canvas.size,sf.origin,o,t)||n.particles.remove(e)}}}class rB{constructor(e){this.container=e,this.modes=[Y.out]}update(e,t,i,a){if(!this.modes.includes(a))return;let s=this.container;if(e.outType===Z.inside){let{x:t,y:i}=e.velocity,a=sf.origin;a.length=e.moveCenter.radius,a.angle=e.velocity.angle+Math.PI,a.addTo(sf.create(e.moveCenter));let{dx:n,dy:r}=sk(e.position,a);if(t<=0&&n>=0||i<=0&&r>=0||t>=0&&n<=0||i>=0&&r<=0)return;e.position.x=Math.floor(sy({min:0,max:s.canvas.size.width})),e.position.y=Math.floor(sy({min:0,max:s.canvas.size.height}));let{dx:o,dy:l}=sk(e.position,e.moveCenter);e.direction=Math.atan2(-l,-o),e.velocity.angle=e.direction}else{if(sD(e.position,s.canvas.size,sf.origin,e.getRadius(),t))return;switch(e.outType){case Z.outside:{e.position.x=Math.floor(sy({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(sy({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;let{dx:t,dy:i}=sk(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(i,t),e.velocity.angle=e.direction);break}case Z.normal:{let i=e.options.move.warp,a=s.canvas.size,n={bottom:a.height+e.getRadius()+e.offset.y,left
1:-e.getRadius()-e.offset.x,right:a.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},r=e.getRadius(),o=sj(e.position,r);t===B.right&&o.left>a.width+e.offset.x?(e.position.x=n.left,e.initialPosition.x=e.position.x,i||(e.position.y=sm()*a.height,e.initialPosition.y=e.position.y)):t===B.left&&o.right<-e.offset.x&&(e.position.x=n.right,e.initialPosition.x=e.position.x,i||(e.position.y=sm()*a.height,e.initialPosition.y=e.position.y)),t===B.bottom&&o.top>a.height+e.offset.y?(i||(e.position.x=sm()*a.width,e.initialPosition.x=e.position.x),e.position.y=n.top,e.initialPosition.y=e.position.y):t===B.top&&o.bottom<-e.offset.y&&(i||(e.position.x=sm()*a.width,e.initialPosition.x=e.position.x),e.position.y=n.bottom,e.initialPosition.y=e.position.y)}}}}}class rq{constructor(e){this._addUpdaterIfMissing=(e,t,i)=>{let a=e.options.move.outModes;this.updaters.has(t)||a.default!==t&&a.bottom!==t&&a.left!==t&&a.right!==t&&a.top!==t||this.updaters.set(t,i(this.container))},this._updateOutMode=(e,t,i,a)=>{for(let s of this.updaters.values())s.update(e,a,t,i)},this.container=e,this.updaters=new Map}init(e){this._addUpdaterIfMissing(e,Y.bounce,e=>new rN(e)),this._addUpdaterIfMissing(e,Y.out,e=>new rB(e)),this._addUpdaterIfMissing(e,Y.destroy,e=>new rF(e)),this._addUpdaterIfMissing(e,Y.none,e=>new rL(e))}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,t){let i=e.options.move.outModes;this._updateOutMode(e,t,i.bottom??i.default,B.bottom),this._updateOutMode(e,t,i.left??i.default,B.left),this._updateOutMode(e,t,i.right??i.default,B.right),this._updateOutMode(e,t,i.top??i.default,B.top)}}async function rV(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("outModes",e=>Promise.resolve(new rq(e)),t)}(S=er||(er={}))[S.r=1]="r",S[S.g=2]="g",S[S.b=3]="b",S[S.a=5]="a";class rU{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(e){let t=e.value.rgb??e.value;if(void 0!==t.r)return t}handleRangeColor(e){let t=e.value.rgb??e.value;if(void 0!==t.r)return{r:sb(t.r),g:sb(t.g),b:sb(t.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;let t=/rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return t?{a:t.length>4?sR(t[er.a]):1,b:parseInt(t[er.b],10),g:parseInt(t[er.g],10),r:parseInt(t[er.r],10)}:void 0}}async function rH(e,t=!0){e.checkVersion("3.9.1"),await e.addColorManager(new rU,t)}class rW{init(e){let t=e.container,i=e.options.size.animation;i.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??t.retina.sizeAnimationSpeed)/100*t.retina.reduceFactor,i.sync||(e.size.velocity*=sm()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??0)<=0||(e.size.maxLoops??0)>0&&(e.size.loops??0)<(e.size.maxLoops??0))}reset(e){e.size.loops=0}update(e,t){this.isEnabled(e)&&sQ(e,e.size,!0,e.options.size.animation.destroy,t)}}async function r$(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("size",()=>Promise.resolve(new rW),t)}async function rG(e,t=!0){e.checkVersion("3.9.1"),await rT(e,!1),await rO(e,!1),await rH(e,!1),await rk(e,!1),await rP(e,!1),await rS(e,!1),await rj(e,!1),await rV(e,!1),await r$(e,!1),await e.refresh(t)}async function rQ(e,t=!0){e.checkVersion("3.9.1"),await e.addEasing(ea.easeInQuad,e=>e**2,!1),await e.addEasing(ea.easeOutQuad,e=>1-(1-e)**2,!1),await e.addEasing(ea.easeInOutQuad,e=>e<.5?2*e**2:1-(-2*e+2)**2/2,!1),await e.refresh(t)}let rX='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"';class rY{constructor(){this.validTypes=["emoji"],this._emojiShapeDict=new Map}destroy(){for(let[e,t]of this._emojiShapeDict)t instanceof ImageBitmap&&t?.close(),this._emojiShapeDict.delete(e)}draw(e){let t=e.particle.emojiDataKey;if(!t)return;let i=this._emojiShapeDict.get(t);i&&function(e,t){let{context:i,opacity:a}=e,s=i.globalAlpha;if(!t)return;let n=t.width,r=.5*n;i.globalAlpha=a,i.drawImage(t,-r,-r,n,n),i.globalAlpha=s}(e,i)}async init(e){let t=e.actualOptions,{validTypes:i}=this;if(!i.find(e=>sT(e,t.particles.shape.type)))return;let a=[sI(rX)],s=i.map(e=>t.particles.shape.options[e]).find(e=>!!e);s&&sU(s,e=>{e.font&&a.push(sI(e.font))}),await Promise.all(a)}particleDestroy(e){e.emojiDataKey=void 0}particleInit(e,t){let i,a=t.shapeData;if(!a?.value)return;let s=sH(a.value,t.randomIndexData);if(!s)return;let n="string"==typeof s?{font:a.font??rX,padding:a.padding??0,value:s}:{font:rX,padding:0,...a,...s},r=n.font,o=n.value,l=`${o}_${r}`;if(this._emojiShapeDict.has(l)){t.emojiDataKey=l;return}let c=2*n.padding,d=sw(t.size.value),h=d+c,u=2*h;if("u">typeof OffscreenCanvas){let e=new OffscreenCanvas(u,u),t=e.getContext("2d");if(!t)return;t.font=`400 ${2*d}px ${r}`,t.textBaseline="middle",t.textAlign="center",t.fillText(o,h,h),i=e.transferToImageBitmap()}else{let e=document.createElement("canvas");e.width=u,e.height=u;let t=e.getContext("2d");if(!t)return;t.font=`400 ${2*d}px ${r}`,t.textBaseline="middle",t.textAlign="center",t.fillText(o,h,h),i=e}this._emojiShapeDict.set(l,i),t.emojiDataKey=l}}async function rK(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new rY,t)}function rJ(e,t,i,a,s,n){let r=t.actualOptions.interactivity.modes.attract;if(r)for(let o of t.particles.quadTree.query(s,n)){let{dx:t,dy:s,distance:n}=sk(o.position,i),l=r.speed*r.factor,c=sg(e.getEasing(r.easing)(1-n/a)*l,1,r.maxSpeed),d=sf.create(n?t/n*c:l,n?s/n*c:l);o.position.subFrom(d)}}class rZ{constructor(){this.distance=200,this.duration=.4,this.easing=ea.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(e){sh(e)||(void 0!==e.distance&&(this.distance=e.distance),void 0!==e.duration&&(this.duration=e.duration),void 0!==e.easing&&(this.easing=e.easing),void 0!==e.factor&&(this.factor=e.factor),void 0!==e.maxSpeed&&(this.maxSpeed=e.maxSpeed),void 0!==e.speed&&(this.speed=e.speed))}}let r0="attract";class r1 extends rg{constructor(e,t){super(t),this._engine=e,t.attract||(t.attract={particles:[]}),this.handleClickMode=e=>{let i=this.container.actualOptions.interactivity.modes.attract;if(i&&e===r0){for(let e of(t.attract||(t.attract={particles:[]}),t.attract.clicking=!0,t.attract.count=0,t.attract.particles))this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);t.attract.particles=[],t.attract.finish=!1,setTimeout(()=>{t.destroyed||(t.attract||(t.attract={particles:[]}),t.attract.clicking=!1)},1e3*i.duration)}}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.attract;t&&(e.retina.attractModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,i=e.interactivity.status===a6,a=t.interactivity.events,{enable:s,mode:n}=a.onHover,{enable:r,mode:o}=a.onClick;if(i&&s&&sT(r0,n)){var l,c,d;let e,t;l=this._engine,c=this.container,d=e=>this.isEnabled(e),e=c.interactivity.mouse.position,(t=c.retina.attractModeDistance)&&!(t<0)&&e&&rJ(l,c,e,t,new rs(e.x,e.y,t),e=>d(e))}else r&&sT(r0,o)&&function(e,t,i){t.attract||(t.attract={particles:[]});let{attract:a}=t;if(a.finish||(a.count||(a.count=0),a.count++,a.count===t.particles.count&&(a.finish=!0)),a.clicking){let a=t.interactivity.mouse.clickPosition,s=t.retina.attractModeDistance;if(!s||s<0||!a)return;rJ(e,t,a,s,new rs(a.x,a.y,s),e=>i(e))}else!1===a.clicking&&(a.particles=[])}(this._engine,this.container,e=>this.isEnabled(e))}isEnabled(e){let t=this.container,i=t.actualOptions,a=t.interactivity.mouse,s=(e?.interactivity??i.interactivity).events;if((!a.position||!s.onHover.enable)&&(!a.clickPosition||!s.onClick.enable))return!1;let n=s.onHover.mode,r=s.onClick.mode;return sT(r0,n)||sT(r0,r)}loadModeOptions(e,...t){for(let i of(e.attract||(e.attract=new rZ),t))e.attract.load(i?.attract)}reset(){}}async function r2(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalAttract",t=>Promise.resolve(new r1(e,t)),t)}let r3=.5*Math.PI;function r5(e,t,i,a,s){for(let n of e.particles.quadTree.query(a,s))a instanceof rs?sV(sq(n),{position:t,radius:i,mass:i**2*r3,velocity:sf.origin,factor:sf.origin}):a instanceof rn&&function(e,t){let i=sj(e.getPosition(),e.getRadius()),a=e.options.bounce,s=sz({pSide:{min:i.left,max:i.right},pOtherSide:{min:i.top,max:i.bottom},rectSide:{min:t.left,max:t.right},rectOtherSide:{min:t.top,max:t.bottom},velocity:e.velocity.x,factor:sb(a.horizontal.value)});s.bounced&&(void 0!==s.velocity&&(e.velocity.x=s.velocity),void 0!==s.position&&(e.position.x=s.position));let n=sz({pSide:{min:i.top,max:i.bottom},pOtherSide:{min:i.left,max:i.right},rectSide:{min:t.top,max:t.bottom},rectOtherSide:{min:t.left,max:t.right},velocity:e.velocity.y,factor:sb(a.vertical.value)});n.bounced&&(void 0!==n.velocity&&(e.velocity.y=n.velocity),void 0!==n.position&&(e.position.y=n.position))}(n,sj(t,i))}class r4{constructor(){this.distance=200}load(e){sh(e)||void 0!==e.distance&&(this.distance=e.distance)}}let r8="bounce";class r6 extends rg{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bounce;t&&(e.retina.bounceModeDistance=t.distance*e.retina.pixelRatio)}interact(){var e,t,i,a;let s=this.container,n=s.actualOptions.interactivity.events,r=s.interactivity.status===a6,o=n.onHover.enable,l=n.onHover.mode,c=n.onDiv;if(r&&o&&sT(r8,l)){let i,a,s;e=this.container,t=e=>this.isEnabled(e),i=e.retina.pixelRatio,a=e.interactivity.mouse.position,(s=e.retina.bounceModeDistance)&&!(s<0)&&a&&r5(e,a,s,new rs(a.x,a.y,s+10*i),t)}else i=this.container,a=e=>this.isEnabled(e),sL(r8,c,(e,t)=>{var s;let n;return s=(e,t,s)=>r5(i,e,t,s,a),void((n=document.querySelectorAll(e)).length&&n.forEac
1h(e=>{let a=i.retina.pixelRatio,n={x:(e.offsetLeft+.5*e.offsetWidth)*a,y:(e.offsetTop+.5*e.offsetHeight)*a},r=.5*e.offsetWidth*a,o=10*a,l=t.type===$.circle?new rs(n.x,n.y,r+o):new rn(e.offsetLeft*a-o,e.offsetTop*a-o,e.offsetWidth*a+2*o,e.offsetHeight*a+2*o);s(n,r,l)}))})}isEnabled(e){let t=this.container,i=t.actualOptions,a=t.interactivity.mouse,s=(e?.interactivity??i.interactivity).events,n=s.onDiv;return!!a.position&&s.onHover.enable&&sT(r8,s.onHover.mode)||sF(r8,n)}loadModeOptions(e,...t){for(let i of(e.bounce||(e.bounce=new r4),t))e.bounce.load(i?.bounce)}reset(){}}async function r9(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalBounce",e=>Promise.resolve(new r6(e)),t)}class r7{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(e){if(!sh(e)){if(void 0!==e.distance&&(this.distance=e.distance),void 0!==e.duration&&(this.duration=e.duration),void 0!==e.mix&&(this.mix=e.mix),void 0!==e.opacity&&(this.opacity=e.opacity),void 0!==e.color){let t=sd(this.color)?void 0:this.color;this.color=sU(e.color,e=>no.create(t,e))}void 0!==e.size&&(this.size=e.size)}}}class oe extends r7{constructor(){super(),this.selectors=[]}load(e){super.load(e),sh(e)||void 0!==e.selectors&&(this.selectors=e.selectors)}}class ot extends r7{load(e){super.load(e),sh(e)||(this.divs=sU(e.divs,e=>{let t=new oe;return t.load(e),t}))}}function oi(e,t,i,a){return t>=i?sg(e+(t-i)*a,e,t):t<i?sg(e-(i-t)*a,t,e):void 0}(z=eo||(eo={})).color="color",z.opacity="opacity",z.size="size";let oa="bubble";class os extends rg{constructor(e,t){super(e),this._clickBubble=()=>{let e=this.container,t=e.actualOptions,i=e.interactivity.mouse.clickPosition,a=t.interactivity.modes.bubble;if(!a||!i)return;e.bubble||(e.bubble={});let s=e.retina.bubbleModeDistance;if(!s||s<0)return;let n=e.particles.quadTree.queryCircle(i,s,e=>this.isEnabled(e)),{bubble:r}=e;for(let t of n){if(!r.clicking)continue;t.bubble.inRange=!r.durationEnd;let n=sC(t.getPosition(),i),o=(new Date().getTime()-(e.interactivity.mouse.clickTime??0))/1e3;o>a.duration&&(r.durationEnd=!0),o>2*a.duration&&(r.clicking=!1,r.durationEnd=!1);let l={bubbleObj:{optValue:e.retina.bubbleModeSize,value:t.bubble.radius},particlesObj:{optValue:sw(t.options.size.value)*e.retina.pixelRatio,value:t.size.value},type:eo.size};this._process(t,n,o,l);let c={bubbleObj:{optValue:a.opacity,value:t.bubble.opacity},particlesObj:{optValue:sw(t.options.opacity.value),value:t.opacity?.value??1},type:eo.opacity};this._process(t,n,o,c),!r.durationEnd&&n<=s?this._hoverBubbleColor(t,n):delete t.bubble.color}},this._hoverBubble=()=>{let e=this.container,t=e.interactivity.mouse.position,i=e.retina.bubbleModeDistance;if(i&&!(i<0)&&t)for(let a of e.particles.quadTree.queryCircle(t,i,e=>this.isEnabled(e))){a.bubble.inRange=!0;let s=sC(a.getPosition(),t),n=1-s/i;s<=i?n>=0&&e.interactivity.status===a6&&(this._hoverBubbleSize(a,n),this._hoverBubbleOpacity(a,n),this._hoverBubbleColor(a,n)):this.reset(a),e.interactivity.status===a8&&this.reset(a)}},this._hoverBubbleColor=(e,t,i)=>{let a=this.container.actualOptions,s=i??a.interactivity.modes.bubble;if(s){if(!e.bubble.finalColor){let t=s.color;if(!t)return;let i=sH(t);e.bubble.finalColor=sK(this._engine,i)}if(e.bubble.finalColor)if(s.mix){e.bubble.color=void 0;let i=e.getFillColor();e.bubble.color=i?sJ(s3(i,e.bubble.finalColor,1-t,t)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}},this._hoverBubbleOpacity=(e,t,i)=>{let a=this.container.actualOptions,s=i?.opacity??a.interactivity.modes.bubble?.opacity;if(!s)return;let n=e.options.opacity.value,r=oi(e.opacity?.value??1,s,sw(n),t);void 0!==r&&(e.bubble.opacity=r)},this._hoverBubbleSize=(e,t,i)=>{let a=this.container,s=i?.size?i.size*a.retina.pixelRatio:a.retina.bubbleModeSize;if(void 0===s)return;let n=sw(e.options.size.value)*a.retina.pixelRatio,r=oi(e.size.value,s,n,t);void 0!==r&&(e.bubble.radius=r)},this._process=(e,t,i,a)=>{let s=this.container,n=a.bubbleObj.optValue,r=s.actualOptions.interactivity.modes.bubble;if(!r||void 0===n)return;let o=r.duration,l=s.retina.bubbleModeDistance,c=a.particlesObj.optValue,d=a.bubbleObj.value,h=a.particlesObj.value??0,u=a.type;if(l&&!(l<0)&&n!==c)if(s.bubble||(s.bubble={}
1),s.bubble.durationEnd)d&&(u===eo.size&&delete e.bubble.radius,u===eo.opacity&&delete e.bubble.opacity);else if(t<=l){if((d??h)!==n){let t=h-i*(h-n)/o;u===eo.size&&(e.bubble.radius=t),u===eo.opacity&&(e.bubble.opacity=t)}}else u===eo.size&&delete e.bubble.radius,u===eo.opacity&&delete e.bubble.opacity},this._singleSelectorHover=(e,t,i)=>{let a=this.container,s=document.querySelectorAll(t),n=a.actualOptions.interactivity.modes.bubble;n&&s.length&&s.forEach(t=>{let s=a.retina.pixelRatio,r={x:(t.offsetLeft+.5*t.offsetWidth)*s,y:(t.offsetTop+.5*t.offsetHeight)*s},o=.5*t.offsetWidth*s,l=i.type===$.circle?new rs(r.x,r.y,o):new rn(t.offsetLeft*s,t.offsetTop*s,t.offsetWidth*s,t.offsetHeight*s);for(let i of a.particles.quadTree.query(l,e=>this.isEnabled(e))){if(!l.contains(i.getPosition()))continue;i.bubble.inRange=!0;let a=sB(n.divs,t);i.bubble.div&&i.bubble.div===t||(this.clear(i,e,!0),i.bubble.div=t),this._hoverBubbleSize(i,1,a),this._hoverBubbleOpacity(i,1,a),this._hoverBubbleColor(i,1,a)}})},this._engine=t,e.bubble||(e.bubble={}),this.handleClickMode=t=>{t===oa&&(e.bubble||(e.bubble={}),e.bubble.clicking=!0)}}clear(e,t,i){(!e.bubble.inRange||i)&&(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bubble;t&&(e.retina.bubbleModeDistance=t.distance*e.retina.pixelRatio,void 0!==t.size&&(e.retina.bubbleModeSize=t.size*e.retina.pixelRatio))}interact(e){let t=this.container.actualOptions.interactivity.events,i=t.onHover,a=t.onClick,s=i.enable,n=i.mode,r=a.enable,o=a.mode,l=t.onDiv;s&&sT(oa,n)?this._hoverBubble():r&&sT(oa,o)?this._clickBubble():sL(oa,l,(t,i)=>this._singleSelectorHover(e,t,i))}isEnabled(e){let t=this.container,i=t.actualOptions,a=t.interactivity.mouse,{onClick:s,onDiv:n,onHover:r}=(e?.interactivity??i.interactivity).events,o=sF(oa,n);return!!(o||r.enable&&a.position||s.enable&&a.clickPosition)&&(sT(oa,r.mode)||sT(oa,s.mode)||o)}loadModeOptions(e,...t){for(let i of(e.bubble||(e.bubble=new ot),t))e.bubble.load(i?.bubble)}reset(e){e.bubble.inRange=!1}}async function on(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalBubble",t=>Promise.resolve(new os(t,e)),t)}class or{constructor(){this.opacity=.5}load(e){sh(e)||void 0!==e.opacity&&(this.opacity=e.opacity)}}class oo{constructor(){this.distance=80,this.links=new or,this.radius=60}load(e){sh(e)||(void 0!==e.distance&&(this.distance=e.distance),this.links.load(e.links),void 0!==e.radius&&(this.radius=e.radius))}}class ol extends rg{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.connect;t&&(e.retina.connectModeDistance=t.distance*e.retina.pixelRatio,e.retina.c
1onnectModeRadius=t.radius*e.retina.pixelRatio)}interact(){let e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&"pointermove"===e.interactivity.status){let t=e.interactivity.mouse.position,{connectModeDistance:i,connectModeRadius:a}=e.retina;if(!i||i<0||!a||a<0||!t)return;let s=Math.abs(a),n=e.particles.quadTree.queryCircle(t,s,e=>this.isEnabled(e));n.forEach((t,a)=>{let s=t.getPosition();for(let r of n.slice(a+1)){let a=r.getPosition(),n=Math.abs(i),o=Math.abs(s.x-a.x),l=Math.abs(s.y-a.y);o<n&&l<n&&function(e,t,i){e.canvas.draw(a=>{var s;let n=function(e,t,i,a){let s=e.actualOptions.interactivity.modes.connect;if(s)return function(e,t,i,a){let s=Math.floor(i.getRadius()/t.getRadius()),n=t.getFillColor(),r=i.getFillColor();if(!n||!r)return;let o=t.getPosition(),l=i.getPosition(),c=s3(n,r,t.getRadius(),i.getRadius()),d=e.createLinearGradient(o.x,o.y,l.x,l.y);return d.addColorStop(0,s2(n,a)),d.addColorStop(sg(s,0,1),s1(c,a)),d.addColorStop(1,s2(r,a)),d}(t,i,a,s.links.opacity)}(e,a,t,i);if(!n)return;let r=t.getPosition(),o=i.getPosition();s=t.retina.linksWidth??0,nt(a,r,o),a.lineWidth=s,a.strokeStyle=n,a.stroke()})}(e,t,r)}})}}isEnabled(e){let t=this.container,i=t.interactivity.mouse,a=(e?.interactivity??t.actualOptions.interactivity).events;return!!(a.onHover.enable&&i.position)&&sT("connect",a.onHover.mode)}loadModeOptions(e,...t){for(let i of(e.connect||(e.connect=new oo),t))e.connect.load(i?.connect)}reset(){}}async function oc(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalConnect",e=>Promise.resolve(new ol(e)),t)}class od{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(e){sh(e)||(void 0!==e.blink&&(this.blink=e.blink),void 0!==e.color&&(this.color=no.create(this.color,e.color)),void 0!==e.consent&&(this.consent=e.consent),void 0!==e.opacity&&(this.opacity=e.opacity))}}class oh{constructor(){this.distance=100,this.links=new od}load(e){sh(e)||(void 0!==e.distance&&(this.distance=e.distance),this.links.load(e.links))}}class ou extends rg{constructor(e,t){super(e),this._engine=t}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.grab;t&&(e.retina.grabModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions.interactivity;if(!t.modes.grab||!t.events.onHover.enable||e.interactivity.status!==a6)return;let i=e.interactivity.mouse.position;if(!i)return;let a=e.retina.grabModeDistance;if(a&&!(a<0))for(let s of e.particles.quadTree.queryCircle(i,a,e=>this.isEnabled(e))){let n=sC(s.getPosition(),i);if(n>a)continue;let r=t.modes.grab.links,o=r.opacity,l=o-n*o/a;if(l<=0)continue;let c=r.color??s.options.links?.color;if(!e.particles.grabLineColor&&c){let i=t.modes.grab.links;e.particles.grabLineColor=s4(this._engine,c,i.blink,i.consent)}let d=s5(s,void 0,e.particles.grabLineColor);d&&function(e,t,i,a,s){e.canvas.draw(e=>{var n;let r=t.getPosition();n=t.retina.linksWidth??0,nt(e,r,s),e.strokeStyle=s1(i,a),e.lineWidth=n,e.stroke()})}(e,s,d,l,i)}}isEnabled(e){let t=this.container,i=t.interactivity.mouse,a=(e?.interactivity??t.actualOptions.interactivity).events;return a.onHover.enable&&!!i.position&&sT("grab",a.onHover.mode)}loadModeOptions(e,...t){for(let i of(e.grab||(e.grab=new oh),t))e.grab.load(i?.grab)}reset(){}}async function of(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalGrab",t=>Promise.resolve(new ou(t,e)),t)}class op extends rg{constructor(e){super(e),this.handleClickMode=e=>{if("pause"!==e)return;let t=this.container;t.animationStatus?t.pause():t.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}async function om(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalPause",e=>Promise.resolve(new op(e)),t)}class og{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(e){if(sh(e))return;void 0!==e.default&&(this.default=e.default),void 0!==e.groups&&(this.groups=e.groups.map(e=>e)),this.groups.length||(this.default=!0);let t=e.quantity;void 0!==t&&(this.quantity=s_(t)),this.particles=sU(e.particles,e=>sN({},e))}}class ov extends rg{constructor(e){super(e),this.handleClickMode=e=>{if("push"!==e)return;let t=this.container,i=t.actualOptions.interactivity.modes.push;if(!i)return;let a=sb(i.quantity);if(a<=0)return;let s=sO([void 0,...i.groups]),n=sN(void 0!==s?t.actualOptions.particles.groups[s]:void 0,sH(i.particles));t.particles.push(a,t.interactivity.mouse,n,s)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...t){for(let i of(e.push||(e.push=new og),t))e.push.load(i?.push)}reset(){}}async function oy(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalPush",e=>Promise.resolve(new ov(e)),t)}class ob{constructor(){this.quantity=2}load(e){if(sh(e))return;let t=e.quantity;void 0!==t&&(this.quantity=s_(t))}}class ox extends rg{constructor(e){super(e),this.handleClickMode=e=>{let t=this.container,i=t.actualOptions;if(!i.interactivity.modes.remove||"remove"!==e)return;let a=sb(i.interactivity.modes.remove.quantity);t.particles.removeQuantity(a)}}clear(){}init(){}interact(){}isEnabled(){return!0}
1loadModeOptions(e,...t){for(let i of(e.remove||(e.remove=new ob),t))e.remove.load(i?.remove)}reset(){}}async function ow(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalRemove",e=>Promise.resolve(new ox(e)),t)}class o_{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=ea.easeOutQuad}load(e){sh(e)||(void 0!==e.distance&&(this.distance=e.distance),void 0!==e.duration&&(this.duration=e.duration),void 0!==e.easing&&(this.easing=e.easing),void 0!==e.factor&&(this.factor=e.factor),void 0!==e.speed&&(this.speed=e.speed),void 0!==e.maxSpeed&&(this.maxSpeed=e.maxSpeed))}}class ok extends o_{constructor(){super(),this.selectors=[]}load(e){super.load(e),sh(e)||void 0!==e.selectors&&(this.selectors=e.selectors)}}class oC extends o_{load(e){super.load(e),sh(e)||(this.divs=sU(e.divs,e=>{let t=new ok;return t.load(e),t}))}}let oE="repulse";class oP extends rg{constructor(e,t){super(t),this._clickRepulse=()=>{let e=this.container,t=e.actualOptions.interactivity.modes.repulse;if(!t)return;let i=e.repulse??{particles:[]};if(i.finish||(i.count||(i.count=0),i.count++,i.count===e.particles.count&&(i.finish=!0)),i.clicking){let a=e.retina.repulseModeDistance;if(!a||a<0)return;let s=Math.pow(a/6,3),n=e.interactivity.mouse.clickPosition;if(void 0===n)return;let r=new rs(n.x,n.y,s);for(let a of e.particles.quadTree.query(r,e=>this.isEnabled(e))){let{dx:e,dy:r,distance:o}=sk(n,a.position),l=o**2,c=-s*t.speed/l;if(l<=s){i.particles.push(a);let t=sf.create(e,r);t.length=c,a.velocity.setTo(t)}}}else if(!1===i.clicking){for(let e of i.particles)e.velocity.setTo(e.initialVelocity);i.particles=[]}},this._hoverRepulse=()=>{let e=this.container,t=e.interactivity.mouse.position,i=e.retina.repulseModeDistance;i&&!(i<0)&&t&&this._processRepulse(t,i,new rs(t.x,t.y,i))},this._processRepulse=(e,t,i,a)=>{let s=this.container,n=s.particles.quadTree.query(i,e=>this.isEnabled(e)),r=s.actualOptions.interactivity.modes.repulse;if(!r)return;let{easing:o,speed:l,factor:c,maxSpeed:d}=r,h=this._engine.getEasing(o),u=(a?.speed??l)*c;for(let i of n){let{dx:a,dy:s,distance:n}=sk(i.position,e),r=sg(h(1-n/t)*u,0,d),o=sf.create(n?a/n*r:u,n?s/n*r:u);i.position.addTo(o)}},this._singleSelectorRepulse=(e,t)=>{let i=this.container,a=i.actualOptions.interactivity.modes.repulse;if(!a)return;let s=document.querySelectorAll(e);s.length&&s.forEach(e=>{let s=i.retina.pixelRatio,n={x:(e.offsetLeft+.5*e.offsetWidth)*s,y:(e.offsetTop+.5*e.offsetHeight)*s},r=.5*e.offsetWidth*s,o=t.type===$.circle?new rs(n.x,n.y,r):new rn(e.offsetLeft*s,e.offsetTop*s,e.offsetWidth*s,e.offsetHeight*s),l=sB(a.divs,e);this._processRepulse(n,r,o,l)})},this._engine=e,t.repulse||(t.repulse={particles:[]}),this.handleClickMode=e=>{let i=this.container.actualOptions.interactivity.modes.repulse;if(!i||e!==oE)return;t.repulse||(t.repulse={particles:[]});let a=t.repulse;for(let e of(a.clicking=!0,a.count=0,t.repulse.particles))this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);a.particles=[],a.finish=!1,setTimeout(()=>{t.destroyed||(a.clicking=!1)},1e3*i.duration)}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.repulse;t&&(e.retina.repulseModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,i=e.interactivity.status===a6,a=t.interactivity.events,s=a.onHover,n=s.enable,r=s.mode,o=a.onClick,l=o.enable,c=o.mode,d=a.onDiv;i&&n&&sT(oE,r)?this._hoverRepulse():l&&sT(oE,c)?this._clickRepulse():sL(oE,d,(e,t)=>this._singleSelectorRepulse(e,t))}isEnabled(e){let t=this.container,i=t.actualOptions,a=t.interactivity.mouse,s=(e?.interactivity??i.interactivity).events,n=s.onDiv,r=s.onHover,o=s.onClick,l=sF(oE,n);if(!(l||r.enable&&a.position||o.enable&&a.clickPosition))return!1;let c=r.mode,d=o.mode;return sT(oE,c)||sT(oE,d)||l}loadModeOptions(e,...t){for(let i of(e.repulse||(e.repulse=new oC),t))e.repulse.load(i?.repulse)}reset(){}}async function oR(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalRepulse",t=>Promise.resolve(new oP(e,t)),t)}class oS{constructor(){this.factor=3,this.radius=200}load(e){sh(e)||(void 0!==e.factor&&(this.factor=e.factor),void 0!==e.radius&&(this.radius=e.radius))}}class oz extends rg{constructor(e){super(e)}clear(e,t,i){(!e.slow.inRange||i)&&(e.slow.factor=1)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.slow;t&&(e.retina.slowModeRadius=t.radius*e.retina.pixelRatio)}interact(){}isEnabled(e){let t=this.container,i=t.interactivity.mouse,a=(e?.interactivity??t.actualOptions.interactivity).events;return a.onHover.enable&&!!i.position&&sT("slow",a.onHover.mode)}loadModeOptions(e,...t){for(let i of(e.slow||(e.slow=new oS),t))e.slow.load(i?.slow)}reset(e){e.slow.inRange=!1;let t=this.container,i=t.actualOptions,a=t.interactivity.mouse.position,s=t.retina.slowModeRadius,n=i.interactivity.modes.slow;if(!n||!s||s<0||!a)return;let r=sC(a,e.getPosition()),o=n.factor,{slow:l}=e;r>s||(l.inRange=!0,l.factor=r/s/o)}}async function oA(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("externalSlow",e=>Promise.resolve(new oz(e)),t)}let oM=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function oT(e){return new Promise(t=>{e.loading=!0;let i=new Image;e.element=i,i.addEventListener("load",()=>{e.loading=!1,t()}),i.addEventListener("error",()=>{e.element=void 0,e.error=!0,e.loading=!1,sS.error(`${a7} loading image: ${e.source}`),t()}),i.src=e.source})}async function oI(e){if("svg"!==e.type)return void await oT(e);e.loading=!0;let t=await fetch(e.source);t.ok?e.svgData=await t.text():(sS.error(`${a7} Image not found`),e.error=!0),e.loading=!1}let oO=[0,4,2,1],oD=[8,8,4,2];class oj{constructor(e){this.pos=0,this.data=new Uint8ClampedArray(e)}getString(e){let t=this.data.slice(this.pos,this.pos+e);return this.pos+=t.length,t.reduce((e,t)=>
1e+String.fromCharCode(t),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let e="",t=0;do{t=this.data[this.pos++];for(let i=t;--i>=0;e+=String.fromCharCode(this.data[this.pos++]));}while(0!==t)return e}readSubBlocksBin(){let e=this.data[this.pos],t=0;for(let i=0;0!==e;i+=e+1,e=this.data[this.pos+i])t+=e;let i=new Uint8Array(t);e=this.data[this.pos++];for(let t=0;0!==e;e=this.data[this.pos++])for(let a=e;--a>=0;i[t++]=this.data[this.pos++]);return i}skipSubBlocks(){for(;0!==this.data[this.pos];this.pos+=this.data[this.pos]+1);this.pos++}}(A=el||(el={}))[A.Replace=0]="Replace",A[A.Combine=1]="Combine",A[A.RestoreBackground=2]="RestoreBackground",A[A.RestorePrevious=3]="RestorePrevious",A[A.UndefinedA=4]="UndefinedA",A[A.UndefinedB=5]="UndefinedB",A[A.UndefinedC=6]="UndefinedC",A[A.UndefinedD=7]="UndefinedD",(M=ec||(ec={}))[M.Extension=33]="Extension",M[M.ApplicationExtension=255]="ApplicationExtension",M[M.GraphicsControlExtension=249]="GraphicsControlExtension",M[M.PlainTextExtension=1]="PlainTextExtension",M[M.CommentExtension=254]="CommentExtension",M[M.Image=44]="Image",M[M.EndOfFile=59]="EndOfFile";function oN(e,t){let i=[];for(let a=0;a<t;a++)i.push({r:e.data[e.pos],g:e.data[e.pos+1],b:e.data[e.pos+2]}),e.pos+=3;return i}async function oF(e,t,i,a,s,n){let r=t.frames[a(!0)];r.left=e.nextTwoBytes(),r.top=e.nextTwoBytes(),r.width=e.nextTwoBytes(),r.height=e.nextTwoBytes();let o=e.nextByte(),l=(128&o)==128;r.sortFlag=(32&o)==32,r.reserved=(24&o)>>>3,l&&(r.localColorTable=oN(e,1<<(7&o)+1));let c=e=>{let{r:a,g:n,b:o}=(l?r.localColorTable:t.globalColorTable)[e];return e!==s(null)?{r:a,g:n,b:o,a:255}:{r:a,g:n,b:o,a:i?~~((a+n+o)/3):0}},d=(()=>{try{return new ImageData(r.width,r.height,{colorSpace:"srgb"})}catch(e){if(e instanceof DOMException&&"IndexSizeError"===e.name)return null;throw e}})();if(null==d)throw EvalError("GIF frame size is to large");let h=e.nextByte(),u=e.readSubBlocksBin(),f=1<<h,p=(e,t)=>{let i=e>>>3,a=7&e;return(u[i]+(u[i+1]<<8)+(u[i+2]<<16)&(1<<t)-1<<a)>>>a};if((64&o)==64){for(let i=0,s=h+1,o=0,l=[[0]],u=0;u<4;u++){if(oO[u]<r.height){let e=0,t=0,a=!1;for(;!a;){let n=i;if(i=p(o,s),o+=s+1,i===f){s=h+1,l.length=f+2;for(let e=0;e<l.length;e++)l[e]=e<f?[e]:[]}else{for(let a of(i>=l.length?l.push(l[n].concat(l[n][0])):n!==f&&l.push(l[n].concat(l[i][0])),l[i])){let{r:i,g:s,b:n,a:o}=c(a);d.data.set([i,s,n,o],oO[u]*r.width+oD[u]*t+e%(4*r.width)),e+=4}l.length===1<<s&&s<12&&s++}e===4*r.width*(t+1)&&(t++,oO[u]+oD[u]*t>=r.height&&(a=!0))}}n?.(e.pos/(e.data.length-1),a(!1)+1,d,{x:r.left,y:r.top},{width:t.width,height:t.height})}r.image=d,r.bitmap=await createImageBitmap(d)}else{let i=0,s=h+1,o=0,l=-4,u=!1,m=[[0]];for(;!u;){let e=i;if(i=p(o,s),o+=s,i===f){s=h+1,m.length=f+2;for(let e=0;e<m.length;e++)m[e]=e<f?[e]:[]}else{if(i===f+1){u=!0;break}for(let t of(i>=m.length?m.push(m[e].concat(m[e][0])):e!==f&&m.push(m[e].concat(m[i][0])),m[i])){let{r:e,g:i,b:a,a:s}=c(t);d.data.set([e,i,a,s],l+=4)}m.length>=1<<s&&s<12&&s++}}r.image=d,r.bitmap=await createImageBitmap(d),n?.((e.pos+1)/e.data.length,a(!1)+1,r.image,{x:r.left,y:r.top},{width:t.width,height:t.height})}}async function oL(e,t,i,a,s,n){switch(e.nextByte()){case ec.EndOfFile:return!0;case ec.Image:await oF(e,t,i,a,s,n);break;case ec.Extension:switch(e.nextByte()){case ec.GraphicsControlExtension:{let i=t.frames[a(!1)];e.pos++;let n=e.nextByte();i.GCreserved=(224&n)>>>5,i.disposalMethod=(28&n)>>>2,i.userInputDelayFlag=(2&n)==2,i.delayTime=10*e.nextTwoBytes();let r=e.nextByte();(1&n)==1&&s(r),e.pos++;break}case ec.ApplicationExtension:{e.pos++;let i={identifier:e.getString(8),authenticationCode:e.getString(3),data:e.readSubBlocksBin()};t.applicationExtensions.push(i);break}case ec.CommentExtension:t.comments.push([a(!1),e.readSubBlocks()]);break;case ec.PlainTextExtension:if(0===t.globalColorTable.length)throw EvalError("plain text extension without global color table");e.pos++,t.frames[a(!1)].plainTextData={left:e.nextTwoBytes(),top:e.nextTwoBytes(),width:e.nextTwoBytes(),height:e.nextTwoBytes(),charSize:{width:e.nextTwoBytes(),height:e.nextTwoBytes()},foregroundColor:e.nextByte(),backgroundColor:e.nextByte(),text:e.readSubBlocks()};break;default:e.skipSubBlocks()}break;default:throw EvalError("undefined block found")}return!1}async function oB(e,t,i){i||(i=!1);let a=await fetch(e);if(!a.ok&&404===a.status)throw EvalError("file not found");let s=await a.arrayBuffer(),n={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},r=new oj(new Uint8ClampedArray(s));if("GIF89a"!==r.getString(6))throw Error("not a supported GIF file");n.width=r.nextTwoBytes(),n.height=r.nextTwoBytes();let o=r.nextByte(),l=(128&o)==128;n.colorRes=(112&o)>>>4,n.sortFlag=(8&o)==8;let c=r.nextByte();n.pixelAspectRatio=r.nextByte(),0!==n.pixelAspectRatio&&(n.pixelAspectRatio=(n.pixelAspectRatio+15)/64),l&&(n.globalColorTable=oN(r,1<<(7&o)+1));let d=(()=>{try{return new ImageData(n.width,n.height,{colorSpace:"srgb"})}catch(e){if(e instanceof DOMException&&"IndexSizeError"===e.name)return null;throw e}})();if(null==d)throw Error("GIF frame size is to large");let{r:h,g:u,b:f}=n.globalColorTable[c];d.data.set(l?[h,u,f,255]:[0,0,0,0]);for(let e=4;e<d.data.length;e*=2)d.data.copyWithin(e,0,e);n.backgroundImage=d;let p=-1,m=!0,g=-1,v=e=>(e&&(m=!0),p),y=e=>(null!=e&&(g=e),g);try{do m&&(n.frames.push({left:0,top:0,width:0,height:0,disposalMethod:el.Replace,image:new ImageData(1,1,{colorSpace:"srgb"}
1),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),p++,g=-1,m=!1);while(!await oL(r,n,i,v,y,t))for(let e of(n.frames.length--,n.frames)){if(e.userInputDelayFlag&&0===e.delayTime){n.totalTime=1/0;break}n.totalTime+=e.delayTime}return n}catch(e){if(e instanceof EvalError)throw Error(`error while parsing frame ${p} "${e.message}"`);throw e}}async function oq(e){if("gif"!==e.type)return void await oT(e);e.loading=!0;try{e.gifData=await oB(e.source),e.gifLoopCount=function(e){for(let t of e.applicationExtensions)if(t.identifier+t.authenticationCode==="NETSCAPE2.0")return t.data[1]+(t.data[2]<<8);return NaN}(e.gifData)??0,e.gifLoopCount||(e.gifLoopCount=1/0)}catch{e.error=!0}e.loading=!1}class oV{constructor(e){this.validTypes=["image","images"],this.loadImageShape=async e=>{if(!this._engine.loadImage)throw Error(`${a7} image shape not initialized`);await this._engine.loadImage({gif:e.gif,name:e.name,replaceColor:e.replaceColor??!1,src:e.src})},this._engine=e}addImage(e){this._engine.images||(this._engine.images=[]),this._engine.images.push(e)}draw(e){let{context:t,radius:i,particle:a,opacity:s}=e,n=a.image,r=n?.element;if(n){if(t.globalAlpha=s,n.gif&&n.gifData)!function(e){let{context:t,radius:i,particle:a,delta:s}=e,n=a.image;if(!n?.gifData||!n.gif)return;let r=new OffscreenCanvas(n.gifData.width,n.gifData.height),o=r.getContext("2d");if(!o)throw Error("could not create offscreen canvas context");o.imageSmoothingQuality="low",o.imageSmoothingEnabled=!1,o.clearRect(0,0,r.width,r.height),void 0===a.gifLoopCount&&(a.gifLoopCount=n.gifLoopCount??0);let l=a.gifFrame??0,c={x:-(.5*n.gifData.width),y:-(.5*n.gifData.height)},d=n.gifData.frames[l];if(void 0===a.gifTime&&(a.gifTime=0),d.bitmap){switch(t.scale(i/n.gifData.width,i/n.gifData.height),d.disposalMethod){case el.UndefinedA:case el.UndefinedB:case el.UndefinedC:case el.UndefinedD:case el.Replace:o.drawImage(d.bitmap,d.left,d.top),t.drawImage(r,c.x,c.y),o.clearRect(0,0,r.width,r.height);break;case el.Combine:o.drawImage(d.bitmap,d.left,d.top),t.drawImage(r,c.x,c.y);break;
1case el.RestoreBackground:o.drawImage(d.bitmap,d.left,d.top),t.drawImage(r,c.x,c.y),o.clearRect(0,0,r.width,r.height),n.gifData.globalColorTable.length?o.putImageData(n.gifData.backgroundImage,c.x,c.y):o.putImageData(n.gifData.frames[0].image,c.x+d.left,c.y+d.top);break;case el.RestorePrevious:{let e=o.getImageData(0,0,r.width,r.height);o.drawImage(d.bitmap,d.left,d.top),t.drawImage(r,c.x,c.y),o.clearRect(0,0,r.width,r.height),o.putImageData(e,0,0)}}if(a.gifTime+=s.value,a.gifTime>d.delayTime){if(a.gifTime-=d.delayTime,++l>=n.gifData.frames.length){if(--a.gifLoopCount<=0)return;l=0,o.clearRect(0,0,r.width,r.height)}a.gifFrame=l}t.scale(n.gifData.width/i,n.gifData.height/i)}}(e);else if(r){let e=n.ratio,a={x:-i,y:-i},s=2*i;t.drawImage(r,a.x,a.y,s,s/e)}t.globalAlpha=1}}getSidesCount(){return 12}async init(e){let t=e.actualOptions;if(t.preload&&this._engine.loadImage)for(let e of t.preload)await this._engine.loadImage(e)}loadShape(e){if("image"!==e.shape&&"images"!==e.shape)return;this._engine.images||(this._engine.images=[]);let t=e.shapeData;!t||this._engine.images.find(e=>e.name===t.name||e.source===t.src)||this.loadImageShape(t).then(()=>{this.loadShape(e)})}particleInit(e,t){if("image"!==t.shape&&"images"!==t.shape)return;this._engine.images||(this._engine.images=[]);let i=this._engine.images,a=t.shapeData;if(!a)return;let s=t.getFillColor(),n=i.find(e=>e.name===a.name||e.source===a.src);if(!n)return;let r=a.replaceColor??n.replaceColor;n.loading?setTimeout(()=>{this.particleInit(e,t)}):(async()=>{let e;if(n.svgData&&s){let i,r;e=await (i=function(e,t,i){let{svgData:a}=e;if(!a)return"";let s=s2(t,i);if(a.includes("fill"))return a.replace(oM,()=>s);let n=a.indexOf(">");return`${a.substring(0,n)} fill="${s}"${a.substring(n)}`}(n,s,t.opacity?.value??1),r={color:s,gif:a.gif,data:{...n,svgData:i},loaded:!1,ratio:a.width/a.height,replaceColor:a.replaceColor,source:a.src},new Promise(e=>{let t=new Blob([i],{type:"image/svg+xml"}),a=URL||window.URL||window.webkitURL||window,s=a.createObjectURL(t),o=new Image;o.addEventListener("load",()=>{r.loaded=!0,r.element=o,e(r),a.revokeObjectURL(s)});let l=async()=>{a.revokeObjectURL(s);let t={...n,error:!1,loading:!0};await oT(t),r.loaded=!0,r.element=t.element,e(r)};o.addEventListener("error",()=>void l()),o.src=s}))}else e={color:s,data:n,element:n.element,gif:n.gif,gifData:n.gifData,gifLoopCount:n.gifLoopCount,loaded:!0,ratio:a.width&&a.height?a.width/a.height:n.ratio??1,replaceColor:r,source:a.src};e.ratio||(e.ratio=1);let i=a.fill??t.shapeFill,o=a.close??t.shapeClose;t.image=e,t.shapeFill=i,t.shapeClose=o})()}}class oU{constructor(){this.src="",this.gif=!1}load(e){sh(e)||(void 0!==e.gif&&(this.gif=e.gif),void 0!==e.height&&(this.height=e.height),void 0!==e.name&&(this.name=e.name),void 0!==e.replaceColor&&(this.replaceColor=e.replaceColor),void 0!==e.src&&(this.src=e.src),void 0!==e.width&&(this.width=e.width))}}class oH{constructor(e){this.id="imagePreloader",this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,t){if(!t?.preload)return;e.preload||(e.preload=[]);let i=e.preload;for(let e of t.preload){let t=i.find(t=>t.name===e.name||t.src===e.src);if(t)t.load(e);else{let t=new oU;t.load(e),i.push(t)}}}needsPlugin(){return!0}}async function oW(e,t=!0){e.checkVersion("3.9.1"),e.loadImage||(e.loadImage=async t=>{if(!t.name&&!t.src)throw Error(`${a7} no image source provided`);if(e.images||(e.images=[]),!e.images.find(e=>e.name===t.name||e.source===t.src))try{let i,a={gif:t.gif??!1,name:t.name??t.src,source:t.src,type:t.src.substring(t.src.length-3),error:!1,loading:!0,replaceColor:t.replaceColor,ratio:t.width&&t.height?t.width/t.height:void 0};e.images.push(a),i=t.gif?oq:t.replaceColor?oI:oT,await i(a)}catch{throw Error(`${a7} ${t.name??t.src} not found`)}});let i=new oH(e);await e.addPlugin(i,t),await e.addShape(new oV(e),t)}class o$ extends nM{constructor(){super(),this.sync=!1}load(e){sh(e)||(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class oG extends nM{constructor(){super(),this.sync=!1}load(e){sh(e)||(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class oQ{constructor(){this.count=0,this.delay=new o$,this.duration=new oG}load(e){sh(e)||(void 0!==e.count&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}}class oX{constructor(e){this.container=e}init(e){let t=this.container,i=e.options.life;i&&(e.life={delay:t.retina.reduceFactor?sb(i.delay.value)*(i.delay.sync?1:sm())
1/t.retina.reduceFactor*1e3:0,delayTime:0,duration:t.retina.reduceFactor?sb(i.duration.value)*(i.duration.sync?1:sm())/t.retina.reduceFactor*1e3:0,time:0,count:i.count},e.life.duration<=0&&(e.life.duration=-1),e.life.count<=0&&(e.life.count=-1),e.life&&(e.spawning=e.life.delay>0))}isEnabled(e){return!e.destroyed}loadOptions(e,...t){for(let i of(e.life||(e.life=new oQ),t))e.life.load(i?.life)}update(e,t){this.isEnabled(e)&&e.life&&function(e,t,i){if(!e.life)return;let a=e.life,s=!1;if(e.spawning){if(a.delayTime+=t.value,!(a.delayTime>=e.life.delay))return;s=!0,e.spawning=!1,a.delayTime=0,a.time=0}if(-1===a.duration||e.spawning||(s?a.time=0:a.time+=t.value,a.time<a.duration))return;if(a.time=0,e.life.count>0&&e.life.count--,0===e.life.count)return e.destroy();let n=s_(0,i.width),r=s_(0,i.width);e.position.x=sy(n),e.position.y=sy(r),e.spawning=!0,a.delayTime=0,a.time=0,e.reset();let o=e.options.life;o&&(a.delay=1e3*sb(o.delay.value),a.duration=1e3*sb(o.duration.value))}(e,t,this.container.canvas.size)}}async function oY(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("life",async e=>Promise.resolve(new oX(e)),t)}class oK{constructor(){this.validTypes=["line"]}draw(e){!function(e){let{context:t,particle:i,radius:a}=e,s=i.shapeData;t.moveTo(-a,0),t.lineTo(a,0),t.lineCap=s?.cap??"butt"}(e)}getSidesCount(){return 1}}async function oJ(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new oK,t)}class oZ{init(){}isEnabled(e){return!sA()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){let t=e.container,i=t.actualOptions.interactivity.events.onHover.parallax;if(sA()||!i.enable)return;let a=i.force,s=t.interactivity.mouse.position;if(!s)return;let n=t.canvas.size,r={x:.5*n.width,y:.5*n.height},o=i.smooth,l=e.getRadius()/a,c={x:(s.x-r.x)*l,y:(s.y-r.y)*l},{offset:d}=e;d.x+=(c.x-d.x)/o,d.y+=(c.y-d.y)/o}}async function o0(e,t=!0){e.checkVersion("3.9.1"),await e.addMover("parallax",()=>Promise.resolve(new oZ),t)}class o1 extends rv{constructor(e){super(e)}clear(){}init(){}interact(e){let t=this.container;void 0===e.attractDistance&&(e.attractDistance=sb(e.options.move.attract.distance)*t.retina.pixelRatio);let i=e.attractDistance,a=e.getPosition();for(let s of t.particles.quadTree.queryCircle(a,i)){if(e===s||!s.options.move.attract.enable||s.destroyed||s.spawning)continue;let{dx:t,dy:i}=sk(a,s.getPosition()),n=e.options.move.attract.rotate,r=t/(1e3*n.x),o=i/(1e3*n.y),l=s.size.value/e.size.value,c=1/l;e.velocity.x-=r*l,e.velocity.y-=o*l,s.velocity.x+=r*c,s.velocity.y+=o*c}}isEnabled(e){return e.options.move.attract.enable}reset(){}}async function o2(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("particlesAttract",e=>Promise.resolve(new o1(e)),t)}function o3(e,t,i,a,s,n){let r=sg(e.options.collisions.absorb.speed*s.factor/10,0,a);e.size.value+=.5*r,i.size.value-=r,a<=n&&(i.size.value=0,i.destroy())}let o5=e=>{void 0===e.collisionMaxSpeed&&(e.collisionMaxSpeed=sb(e.options.collisions.maxSpeed)),e.velocity.length>e.collisionMaxSpeed&&(e.velocity.length=e.collisionMaxSpeed)};function o4(e,t){sV(sq(e),sq(t)),o5(e),o5(t)}class o8 extends rv{constructor(e){super(e)}clear(){}init(){}interact(e,t){if(e.destroyed||e.spawning)return;let i=this.container,a=e.getPosition(),s=e.getRadius();for(let n of i.particles.quadTree.queryCircle(a,2*s)){if(e===n||!n.options.collisions.enable||e.options.collisions.mode!==n.options.collisions.mode||n.destroyed||n.spawning)continue;let r=n.getPosition(),o=n.getRadius();if(!(Math.abs(Math.round(a.z)-Math.round(r.z))>s+o))sC(a,r)>s+o||function(e,t,i,a){switch(e.options.collisions.mode){case X.absorb:let s,n;s=e.getRadius(),n=t.getRadius(),void 0===s&&void 0!==n?e.destroy():void 0!==s&&void 0===n?t.destroy():void 0!==s&&void 0!==n&&(s>=n?o3(e,s,t,n,i,a):o3(t,n,e,s,i,a));break;case X.bounce:o4(e,t);break;case X.destroy:e.unbreakable||t.unbreakable||o4(e,t),void 0===e.getRadius()&&void 0!==t.getRadius()?e.destroy():void 0!==e.getRadius()&&void 0===t.getRadius()?t.destroy():void 0!==e.getRadius()&&void 0!==t.getRadius()&&(e.getRadius()>=t.getRadius()?t:e).destroy()}}(e,n,t,i.retina.pixelRatio)}}isEnabled(e){return e.options.collisions.enable}reset(){}}async function o6(e,t=!0){e.checkVersion("3.9.1"),await e.addInteractor("particlesCollisions",e=>Promise.resolve(new o8(e)),t)}class o9 extends rs{constructor(e,t,i,a){super(e,t,i),this.canvasSize=a,this.canvasSize={...a}}contains(e){let{width:t,height:i}=this.canvasSize,{x:a,y:s}=e;return super.contains(e)||super.contains({x:a-t,y:s})||super.contains({x:a-t,y:s-i})||super.contains({x:a,y:s-i})}intersects(e){if(super.intersects(e))return!0;let t={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(void 0!==e.radius){let i=new rs(t.x,t.y,2*e.radius);return super.intersects(i)}if(void 0!==e.size){let i=new rn(t.x,t.y,2*e.size.width,2*e.size.height);return super.intersects(i)}return!1}}class o7{constructor(){this.blur=5,this.color=new no,this.color.value="#000",this.enable=!1}load(e){sh(e)||(void 0!==e.blur&&(this.blur=e.blur),this.color=no.create(this.color,e.color),void 0!==e.enable&&(this.enable=e.enable))}}class le{constructor(){this.enable=!1,this.frequency=1}load(e){sh(e)||(void 0!==e.color&&(this.color=no.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity))}}class lt{constructor(){this.blink=!1,this.color=new no,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new o7,this.triangles=new le,this.width=1,this.warp=!1}load(e){sh(e)||(void 0!==e.id&&(this.id=e.id),void 0!==e.blink&&(this.blink=e.blink),this.color=no.create(this.color,e.color),void 0!==e.consent&&(this.consent=e.consent),void 0!==e.distance&&(this.distance=e.distance),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),void 0!==e.width&&(this.width=e.width),void 0!==e.warp&&(this.warp=e.warp))}}class li extends rv{constructor(e,t){super(e),this._setColor=e=>{if(!e.options.links)return;let t=this._linkContainer,i=e.options.links,a=void 0===i.id?t.particles.linksColor:t.particles.linksColors.get(i.id);if(a)return;let s=i.color;a=s4(this._engine,s,i.blink,i.consent),void 0===i.id?t.particles.linksColor=a:t.particles.linksColors.set(i.id,a)},this._linkContainer=e,this._engine=t}clear(){}init(){this._linkContainer.particles.linksColor=void 0,this._linkContainer.particles.linksColors=new Map}interact(e){let t;if(!e.options.links)return;e.links=[];let i=e.getPosition(),a=this.container,s=a.canvas.size;if(i.x<0||i.y<0||i.x>s.width||i.y>s.height)return;let n=e.options.links,r=n.opacity,o=e.retina.linksDistance??0,l=n.warp;for(let c of(t=l?new o9(i.x,i.y,o,s):new rs(i.x,i.y,o),a.particles.quadTree.query(t))){let t=c.options.links;
1if(e===c||!t?.enable||n.id!==t.id||c.spawning||c.destroyed||!c.links||e.links.some(e=>e.destination===c)||c.links.some(t=>t.destination===e))continue;let a=c.getPosition();if(a.x<0||a.y<0||a.x>s.width||a.y>s.height)continue;let d=function(e,t,i,a,s){let{dx:n,dy:r,distance:o}=sk(e,t);if(!s||o<=i)return o;let l={x:Math.abs(n),y:Math.abs(r)},c={x:Math.min(l.x,a.width-l.x),y:Math.min(l.y,a.height-l.y)};return Math.sqrt(c.x**2+c.y**2)}(i,a,o,s,l&&t.warp);if(d>o)continue;let h=(1-d/o)*r;this._setColor(e),e.links.push({destination:c,opacity:h})}}isEnabled(e){return!!e.options.links?.enable}loadParticlesOptions(e,...t){for(let i of(e.links||(e.links=new lt),t))e.links.load(i?.links)}reset(){}}async function la(e,t=!0){await e.addInteractor("particlesLinks",async t=>Promise.resolve(new li(t,e)),t)}function ls(e,t){var i;let a=((i=e.map(e=>e.id)).sort((e,t)=>e-t),i.join("_")),s=t.get(a);return void 0===s&&(s=sm(),t.set(a,s)),s}class ln{constructor(e,t){this._drawLinkLine=(e,t)=>{let i=e.options.links;if(!i?.enable)return;let a=this._container,s=a.actualOptions,n=t.destination,r=e.getPosition(),o=n.getPosition(),l=t.opacity;a.canvas.draw(t=>{let c,d=e.options.twinkle?.lines;if(d?.enable){let e=d.frequency,t=sY(this._engine,d.color);sm()<e&&t&&(c=t,l=sb(d.opacity))}if(c||(c=s5(e,n,void 0!==i.id?a.particles.linksColors.get(i.id):a.particles.linksColor)),!c)return;let h=e.retina.linksWidth??0,u=e.retina.linksDistance??0,{backgroundMask:f}=s;!function(e){let t=!1,{begin:i,end:a,engine:s,maxDistance:n,context:r,canvasSize:o,width:l,backgroundMask:c,colorLine:d,opacity:h,links:u}=e;if(sC(i,a)<=n)nt(r,i,a),t=!0;else if(u.warp){let e,s,l=sk(i,{x:a.x-o.width,y:a.y});if(l.distance<=n){let t=i.y-l.dy/l.dx*i.x;e={x:0,y:t},s={x:o.width,y:t}}else{let t=sk(i,{x:a.x,y:a.y-o.height});if(t.distance<=n){let a=-(i.y-t.dy/t.dx*i.x)/(t.dy/t.dx);e={x:a,y:0},s={x:a,y:o.height}}else{let t=sk(i,{x:a.x-o.width,y:a.y-o.height});if(t.distance<=n){let a=i.y-t.dy/t.dx*i.x;s={x:(e={x:-a/(t.dy/t.dx),y:a}).x+o.width,y:e.y+o.height}}}}e&&s&&(nt(r,i,e),nt(r,a,s),t=!0)}if(!t)return;r.lineWidth=l,c.enable&&(r.globalCompositeOperation=c.composite),r.strokeStyle=s1(d,h);let{shadow:f}=u;if(f.enable){let e=sY(s,f.color);e&&(r.shadowBlur=f.blur,r.shadowColor=s1(e))}r.stroke()}({context:t,width:h,begin:r,end:o,engine:this._engine,maxDistance:u,canvasSize:a.canvas.size,links:i,backgroundMask:f,colorLine:c,opacity:l})})},this._drawLinkTriangle=(e,t,i)=>{let a=e.options.links;if(!a?.enable)return;let s=a.triangles;if(!s.enable)return;let n=this._container,r=n.actualOptions,o=t.destination,l=i.destination,c=s.opacity??(t.opacity+i.opacity)*.5;c<=0||n.canvas.draw(t=>{let i=e.getPosition(),d=o.getPosition(),h=l.getPosition(),u=e.retina.linksDistance??0;if(sC(i,d)>u||sC(h,d)>u||sC(h,i)>u)return;let f=sY(this._engine,s.color);f||(f=s5(e,o,void 0!==a.id?n.particles.linksColors.get(a.id):n.particles.linksColor)),f&&function(e){let{context:t,pos1:i,pos2:a,pos3:s,backgroundMask:n,colorTriangle:r,opacityTriangle:o}=e;t.beginPath(),t.moveTo(i.x,i.y),t.lineTo(a.x,a.y),t.lineTo(s.x,s.y),t.closePath(),n.enable&&(t.globalCompositeOperation=n.composite),t.fillStyle=s1(r,o),t.fill()}({context:t,pos1:i,pos2:d,pos3:h,backgroundMask:r.backgroundMask,colorTriangle:f,opacityTriangle:c})})},this._drawTriangles=(e,t,i,a)=>{let s=i.destination;if(!(e.links?.triangles.enable&&s.options.links?.triangles.enable))return;let n=s.links?.filter(e=>{let t=this._getLinkFrequency(s,e.destination);return s.options.links&&t<=s.options.links.frequency&&a.findIndex(t=>t.destination===e.destination)>=0});if(n?.length)for(let a of n){let n=a.destination;this._getTriangleFrequency(t,s,n)>e.links.triangles.frequency||this._drawLinkTriangle(t,i,a)}},this._getLinkFrequency=(e,t)=>ls([e,t],this._freqs.links),this._getTriangleFrequency=(e,t,i)=>ls([e,t,i],this._freqs.triangles),this._container=e,this._engine=t,this._freqs={links:new Map,triangles:new Map}}drawParticle(e,t){let{links:i,options:a}=t;if(!i?.length)return;let s=i.filter(e=>a.links&&(a.links.frequency>=1||this._getLinkFrequency(t,e.destination)<=a.links.frequency));for(let e of s)this._drawTriangles(a,t,e,s),e.opacity>0&&(t.retina.linksWidth??0)>0&&this._drawLinkLine(t,e)}
1async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(e){if(e.links=[],!e.options.links)return;let t=this._container.retina.pixelRatio,{retina:i}=e,{distance:a,width:s}=e.options.links;i.linksDistance=a*t,i.linksWidth=s*t}particleDestroyed(e){e.links=[]}}class lr{constructor(e){this.id="links",this._engine=e}getPlugin(e){return Promise.resolve(new ln(e,this._engine))}loadOptions(){}needsPlugin(){return!0}}async function lo(e,t=!0){let i=new lr(e);await e.addPlugin(i,t)}async function ll(e,t=!0){e.checkVersion("3.9.1"),await la(e,t),await lo(e,t)}class lc{draw(e){let{particle:t,radius:i}=e;!function(e,t,i){let{context:a}=e,s=i.count.numerator*i.count.denominator,n=i.count.numerator/i.count.denominator,r=Math.PI-sE(180*(n-2)/n);if(a){a.beginPath(),a.translate(t.x,t.y),a.moveTo(0,0);for(let e=0;e<s;e++)a.lineTo(i.length,0),a.translate(i.length,0),a.rotate(r)}}(e,this.getCenter(t,i),this.getSidesData(t,i))}getSidesCount(e){let t=e.shapeData;return Math.round(sb(t?.sides??5))}}class ld extends lc{constructor(){super(...arguments),this.validTypes=["polygon"]}getCenter(e,t){return{x:-t/(e.sides/3.5),y:-t/.76}}getSidesData(e,t){let i=e.sides;return{count:{denominator:1,numerator:i},length:2.66*t/(i/3)}}}class lh extends lc{constructor(){super(...arguments),this.validTypes=["triangle"]}getCenter(e,t){return{x:-t,y:t/1.66}}getSidesCount(){return 3}getSidesData(e,t){return{count:{denominator:2,numerator:3},length:2*t}}}async function lu(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new ld,t)}async function lf(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new lh,t)}async function lp(e,t=!0){e.checkVersion("3.9.1"),await lu(e,t),await lf(e,t)}class lm{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(e){sh(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.speed&&(this.speed=s_(e.speed)),void 0!==e.decay&&(this.decay=s_(e.decay)),void 0!==e.sync&&(this.sync=e.sync))}}class lg extends nM{constructor(){super(),this.animation=new lm,this.direction=et.clockwise,this.path=!1,this.value=0}load(e){sh(e)||(super.load(e),void 0!==e.direction&&(this.direction=e.direction),this.animation.load(e.animation),void 0!==e.path&&(this.path=e.path))}}let lv=2*Math.PI;class ly{constructor(e){this.container=e}init(e){let t=e.options.rotate;if(!t)return;e.rotate={enable:t.animation.enable,value:sE(sb(t.value)),min:0,max:lv},e.pathRotation=t.path;let i=t.direction;switch(i===et.random&&(i=Math.floor(2*sm())>0?et.counterClockwise:et.clockwise),i){case et.counterClockwise:case"counterClockwise":e.rotate.status=F.decreasing;break;case et.clockwise:e.rotate.status=F.increasing}let a=t.animation;a.enable&&(e.rotate.decay=1-sb(a.decay),e.rotate.velocity=sb(a.speed)/360*this.container.retina.reduceFactor,a.sync||(e.rotate.velocity*=sm())),e.rotation=e.rotate.value}isEnabled(e){let t=e.options.rotate;return!!t&&!e.destroyed&&!e.spawning&&(!!t.value||t.animation.enable||t.path)}loadOptions(e,...t){for(let i of(e.rotate||(e.rotate=new lg),t))e.rotate.load(i?.rotate)}update(e,t){!this.isEnabled(e)||(e.isRotating=!!e.rotate,e.rotate&&(sQ(e,e.rotate,!1,L.none,t),e.rotation=e.rotate.value))}}async function lb(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("rotate",e=>Promise.resolve(new ly(e)),t)}let lx=Math.sqrt(2);class lw{constructor(){this.validTypes=["edge","square"]}draw(e){!function(e){let{context:t,radius:i}=e,a=i/lx,s=2*a;t.rect(-a,-a,s,s)}(e)}getSidesCount(){return 4}}async function l_(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new lw,t)}class lk{constructor(){this.validTypes=["star"]}draw(e){!function(e){let{context:t,particle:i,radius:a}=e,s=i.sides,n=i.starInset??2;t.moveTo(0,0-a);for(let e=0;e<s;e++)t.rotate(Math.PI/s),t.lineTo(0,0-a*n),t.rotate(Math.PI/s),t.lineTo(0,0-a)}(e)}getSidesCount(e){let t=e.shapeData;return Math.round(sb(t?.sides??5))}particleInit(e,t){let i=t.shapeData;t.starInset=sb(i?.inset??2)}}async function lC(e,t=!0){e.checkVersion("3.9.1"),await e.addShape(new lk,t)}class lE{constructor(e,t){this._container=e,this._engine=t}init(e){let t=this._container,i=e.options,a=sH(i.stroke,e.id,i.reduceDuplicates);e.strokeWidth=sb(a.width)*t.retina.pixelRatio,e.strokeOpacity=sb(a.opacity??1),e.strokeAnimation=a.color?.animation;let s=sK(this._engine,a.color)??e.getFillColor();s&&(e.strokeColor=s6(s,e.strokeAnimation,t.retina.reduceFactor))}isEnabled(e){let t=e.strokeAnimation,{strokeColor:i}=e;return!e.destroyed&&!e.spawning&&!!t&&(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(e,t){this.isEnabled(e)&&ne(e.strokeColor,t)}}async function lP(e,t=!0){e.checkVersion("3.9.1"),await e.addParticleUpdater("strokeColor",t=>Promise.resolve(new lE(t,e)),t)}
1async function lR(e,t=!0){e.checkVersion("3.9.1"),await o0(e,!1),await r2(e,!1),await r9(e,!1),await on(e,!1),await oc(e,!1),await of(e,!1),await om(e,!1),await oy(e,!1),await ow(e,!1),await oR(e,!1),await oA(e,!1),await o2(e,!1),await o6(e,!1),await ll(e,!1),await rQ(e,!1),await rK(e,!1),await oW(e,!1),await oJ(e,!1),await lp(e,!1),await l_(e,!1),await lC(e,!1),await oY(e,!1),await lb(e,!1),await lP(e,!1),await rG(e,t)}var lS=e.i(92017),lz=e.i(13317),lA=e.i(72913),lM=e.i(97818),lT=e.i(53728);function lI(e,t){[...t].reverse().forEach(i=>{let a=e.getVariant(i);a&&(0,lM.setTarget)(e,a),e.variantChildren&&e.variantChildren.forEach(e=>{lI(e,t)})})}function lO(){let e=!1,t=new Set,i={subscribe:e=>(t.add(e),()=>void t.delete(e)),start(i,a){(0,lT.invariant)(e,"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");let s=[];return t.forEach(e=>{s.push((0,lA.animateVisualElement)(e,i,{transitionOverride:a}))}),Promise.all(s)},set:i=>((0,lT.invariant)(e,"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook."),t.forEach(e=>{var t,a;t=e,Array.isArray(a=i)?lI(t,a):"string"==typeof a?lI(t,[a]):(0,lM.setTarget)(t,a)})),stop(){t.forEach(e=>{e.values.forEach(e=>e.stop())})},mount:()=>(e=!0,()=>{e=!1,i.stop()})};return i}let lD=function(){let e=(0,lS.useConstant)(lO);return(0,lz.useIsomorphicLayoutEffect)(e.mount,[]),e},lj=e=>{let{id:t,className:i,background:a,minSize:s,maxSize:n,speed:r,particleColor:o,particleDensity:l}=e,[c,d]=(0,ep.useState)(!1);(0,ep.useEffect)(()=>{rx(async e=>{await lR(e)}).then(()=>{d(!0)})},[]);let h=lD(),u=async e=>{e&&h.start({opacity:1,transition:{duration:1}})},f=(0,ep.useId)();return(0,ed.jsx)(aH.motion.div,{animate:h,className:(0,em.cn)("opacity-0",i),children:c&&(0,ed.jsx)(rb,{id:t||f,className:(0,em.cn)("h-full w-full"),particlesLoaded:u,options:{background:{color:{value:a||"#0d47a1"}},fullScreen:{enable:!1,zIndex:1},fpsLimit:120,interactivity:{events:{onClick:{enable:!0,mode:"push"},onHover:{enable:!1,mode:"repulse"},resize:!0},modes:{push:{quantity:4},repulse:{distance:200,duration:.4}}},particles:{bounce:{horizontal:{value:1},vertical:{value:1}},collisions:{absorb:{speed:2},bounce:{horizontal:{value:1},vertical:{value:1}},enable:!1,maxSpeed:50,mode:"bounce",overlap:{enable:!0,retries:0}},color:{value:o||"#ffffff",animation:{h:{count:0,enable:!1,speed:1,decay:0,delay:0,sync:!0,offset:0},s:{count:0,enable:!1,speed:1,decay:0,delay:0,sync:!0,offset:0},l:{count:0,enable:!1,speed:1,decay:0,delay:0,sync:!0,offset:0}}},effect:{close:!0,fill:!0,options:{},type:{}},groups:{},move:{angle:{offset:0,value:90},attract:{distance:200,enable:!1,rotate:{x:3e3,y:3e3}},center:{x:50,y:50,mode:"percent",radius:0},decay:0,distance:{},direction:"none",drift:0,enable:!0,gravity:{acceleration:9.81,enable:!1,inverse:!1,maxSpeed:50},path:{clamp:!0,delay:{value:0},enable:!1,options:{}},outModes:{default:"out"},random:!1,size:!1,speed:{min:.1,max:1},spin:{acceleration:0,enable:!1},straight:!1,trail:{enable:!1,length:10,fill:{}},vibrate:!1,warp:!1},number:{density:{enable:!0,width:400,height:400},limit:{mode:"delete",value:0},value:l||120},opacity:{value:{min:.1,max:1},animation:{count:0,enable:!0,speed:r||4,decay:0,delay:0,sync:!1,mode:"auto",startValue:"random",destroy:"none"}},reduceDuplicates:!1,shadow:{blur:0,color:{value:"#000"},enable:!1,offset:{x:0,y:0}},shape:{close:!0,fill:!0,options:{},type:"circle"},size:{value:{min:s||1,max:n||3},animation:{count:0,enable:!1,speed:5,decay:0,delay:0,sync:!1,mode:"auto",startValue:"random",destroy:"none"}},stroke:{width:0},zIndex:{value:0,opacityRate:1,sizeRate:1,velocityRate:1},destroy:{bounds:{},mode:"none",split:{count:1,factor:{value:3},rate:{value:{min:4,max:9}},sizeOffset:!0}}
1,roll:{darken:{enable:!1,value:0},enable:!1,enlighten:{enable:!1,value:0},mode:"vertical",speed:25},tilt:{value:0,animation:{enable:!1,speed:0,decay:0,sync:!1},direction:"clockwise",enable:!1},twinkle:{lines:{enable:!1,frequency:.05,opacity:1},particles:{enable:!1,frequency:.05,opacity:1}},wobble:{distance:5,enable:!1,speed:{angle:50,move:10}},life:{count:0,delay:{value:0,sync:!1},duration:{value:0,sync:!1}},rotate:{value:0,animation:{enable:!1,speed:0,decay:0,sync:!1},direction:"clockwise",path:!1},orbit:{animation:{count:0,enable:!1,speed:1,decay:0,delay:0,sync:!1},enable:!1,opacity:1,rotation:{value:45},width:1},links:{blink:!1,color:{value:"#fff"},consent:!1,distance:100,enable:!1,frequency:1,opacity:1,shadow:{blur:5,color:{value:"#000"},enable:!1},triangles:{enable:!1,frequency:1},width:1,warp:!1},repulse:{value:0,enabled:!1,distance:1,duration:1,factor:1,speed:1}},detectRetina:!0}})})};e.s(["default",0,function(){return(0,ed.jsxs)("div",{children:[(0,ed.jsx)(a2.default,{templateDescription:"FAIR Data Innovations Hub is an organization dedicated to building open source tools that help biomedical researchers understand and follow FAIR Data Principles when showcasing their findings",templateImage:"https://fairdataihub.org/thumbnails/index.png"}),(0,ed.jsxs)("div",{className:"relative",children:[(0,ed.jsx)("section",{className:"relative isolate mb-10 overflow-visible pt-12 sm:pt-30",children:(0,ed.jsx)("div",{className:"hero relative z-10 container mx-auto max-w-screen-xl items-center justify-center px-2 py-8 md:flex",children:(0,ed.jsxs)("div",{className:"flex w-full flex-col items-center justify-center p-2",children:[(0,ed.jsxs)("h1",{className:"header-gradient-background w-full text-center text-4xl font-black sm:text-3xl md:py-3 md:text-4xl lg:w-3/4 lg:text-5xl",children:["Streamlining the creation of ",(0,ed.jsx)(a5,{words:["reusable","FAIR","AI-ready"]})," ",(0,ed.jsx)("br",{})," ","data to empower AI driven discoveries"]}),(0,ed.jsxs)("div",{className:"relative mx-auto mt-10 h-48 w-full sm:h-40 md:mt-2",children:[(0,ed.jsx)("div",{"aria-hidden":!0,className:"spotlight [--spot-bleed:28rem] [--spot-bottom-left:2%] [--spot-bottom-right:98%] [--spot-end:90%] [--spot-h:860px] [--spot-mid:34%] [--spot-top-left:20%] [--spot-top-right:90%] [--spot-w:2000px] md:[--spot-end:92%] md:[--spot-top-left:32%] md:[--spot-top-right:66%]",children:(0,ed.jsx)(lj,{background:"transparent",minSize:1.5,maxSize:4.5,particleDensity:100,className:"absolute inset-0",particleColor:"#F098D4"})}),(0,ed.jsx)("div",{className:"absolute -top-4 left-1/2 z-10 h-[2px] w-[75%] -translate-x-1/2 bg-gradient-to-r from-transparent via-pink-400 to-transparent blur-sm md:top-0"}),(0,ed.jsx)("div",{className:"absolute -top-4 left-1/2 z-10 h-px w-[75%] -translate-x-1/2 bg-gradient-to-r from-transparent via-pink-400 to-transparent md:top-0"}),(0,ed.jsx)("div",{className:"absolute -top-4 left-1/2 z-10 h-[5px] w-[28%] -translate-x-1/2 bg-gradient-to-r from-transparent via-pink-400 to-transparent blur-sm md:top-0"}),(0,ed.jsx)("div",{className:"absolute -top-4 left-1/2 z-10 h-px w-[28%] -translate-x-1/2 bg-gradient-to-r from-transparent via-pink-400 to-transparent md:top-0"}),(0,ed.jsx)("div",{className:"absolute inset-0 z-10 mt-4 h-full w-full bg-transparent [mask-image:radial-gradient(350px_200px_at_top,transparent_20%,white)] md:mt-0"}),(0,ed.jsx)("div",{className:"absolute -inset-6 z-20 flex items-end justify-center px-4 sm:inset-0",children:(0,ed.jsx)("p",{className:"mb-1 w-full max-w-2xl text-center text-xl font-medium text-black sm:text-base md:text-lg lg:text-xl",children:"We develop open source tools, standards, and guidelines that support researchers in preparing and sharing data, software, and other research outcomes such that they are preserved over the long term and readily reusable particularly for AI applications."})})]})]})})}),(0,ed.jsx)("div",{className:"absolute inset-0 -z-10 transform-gpu overflow-hidden blur-3xl","aria-hidden":"true",children:(0,ed.jsx)("div",{className:"relative aspect-square rotate-[30deg] bg-gradient-to-tr from-pink-300 to-purple-500 o
1pacity-30",style:{clipPath:"polygon(6% 8%, 52% 29%, 93% 51%, 68% 82%, 99% 94%, 32% 57%, 48% 10%, 5% 37%, 69% 52%, 63% 63%, 81% 28%, 56% 64%, 62% 21%, 46% 61%, 79% 65%, 93% 68%, 88% 75%)"}})})]}),(0,ed.jsx)(ex,{}),(0,ed.jsx)("section",{className:"relative pt-4 pb-20",children:(0,ed.jsx)(aZ,{})}),(0,ed.jsx)("section",{className:"relative pb-10",children:(0,ed.jsx)("div",{className:"container mx-auto max-w-screen-xl border-t border-pink-300/50 px-6",children:(0,ed.jsxs)("div",{className:"flex flex-col-reverse items-center justify-center md:flex-row",children:[(0,ed.jsxs)("div",{className:"h-full w-full p-2 lg:max-w-2xl",children:[(0,ed.jsx)("h2",{className:"text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"The FAIR Data wave"}),(0,ed.jsx)("div",{className:"font-asap pt-8",children:(0,ed.jsx)("p",{className:"mb-4 text-left text-xl",children:"The FAIR (Findable, Accessible, Interoperable, Reusable) Principles are a set of instructions for sharing data and other research outcomes such that they are optimally reusable. Since their publication in 2016, they have been promoted and adopted by a large number of stakeholders in research data including the National Institutes of Health (NIH)."})}),(0,ed.jsx)("div",{className:"flex w-full justify-start py-5",children:(0,ed.jsx)(eh.default,{href:"https://doi.org/10.1038/sdata.2016.18",passHref:!0,children:(0,ed.jsx)("button",{type:"button",className:"w-max rounded-md border-none bg-black px-5 py-3 text-center text-base font-semibold text-white ring-2 ring-transparent ring-offset-2 transition duration-200 ease-in-out hover:ring-pink-600 focus:ring-pink-600","data-umami-event":"Home page link","data-umami-event-value":"Learn more about the FAIR Principles",children:"Learn more about the FAIR Principles"})})})]}),(0,ed.jsx)("div",{className:"flex w-full items-center justify-center p-8 lg:mt-0 lg:w-1/2",children:(0,ed.jsx)("img",{className:"w-[400px] rounded-lg",src:"/images/home/puzzle-collab-2.png",alt:"office content 1"})})]})})}),(0,ed.jsxs)("section",{className:"relative py-10",children:[(0,ed.jsx)("div",{className:"container mx-auto max-w-screen-xl px-6",children:(0,ed.jsxs)("div",{className:"items-center justify-center md:flex",children:[(0,ed.jsx)("div",{className:"mt-6 flex w-full items-center justify-center p-8 lg:mt-0 lg:w-1/2",children:(0,ed.jsx)("img",{className:"w-[400px] rounded-lg",src:"/images/home/fairdataihub-tools.png",alt:"office content 1"})}),(0,ed.jsxs)("div",{className:"h-full w-full p-2 lg:max-w-2xl",children:[(0,ed.jsx)("h2",{className:"text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"Sharing is caring... but also daunting"}),(0,ed.jsx)("p",{className:"font-asap mt-8 mb-6 w-full text-left text-xl",children:"Sharing FAIR data is not trivial as this involves formatting data into specific file format, organizing data files consistently, including metadata according to applicable standards, uploading data to a suitable repository, and more. This adds significant burden on researchers who are typically not trained or supported to do this. As result, they are either not making data FAIR or not doing it properly."})]})]})}),(0,ed.jsx)("div",{className:"absolute inset-0 -z-10 transform-gpu overflow-hidden blur-3xl","aria-hidden":"true",children:(0,ed.jsx)("div",{className:"relative aspect-square rotate-[45deg] bg-gradient-to-tr from-pink-200 to-purple-100 opacity-50",style:{clipPath:"polygon(10% 15%, 60% 35%, 85% 55%, 70% 90%, 95% 98%, 35% 60%, 55% 15%, 10% 40%, 75% 55%, 70% 70%, 85% 35%, 60% 70%, 65% 25%, 50% 65%, 85% 70%, 95% 72%, 90% 80%)"}})})]}),(0,ed.jsx)(a1,{}),(0,ed.jsx)("section",{className:"relative hidden w-full py-20",children:(0,ed.jsxs)("div",{className:"mx-auto w-full max-w-screen-xl",children:[(0,ed.jsx)("h2",{className:"mb-10 w-full text-center text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"Our solutions are making a difference worldwide"}),(0,ed.jsxs)("div",{className:"mx-auto flex max-w-screen-md items-center justify-center",children:[(0,ed.jsx)("div",{className:"font-asap pt-8",children:(0,ed.jsx)("p",{className:"mb-4 max-w-md text-center text-xl md:text-left",children:"Our solution are helping researchers all over the world with managing, curating, and sharing their data, software, and other research outcomes."})}),(0,ed.jsx)("div",{className:"relative mx-auto h-[350px] w-[350px]",children:(0,ed.jsx)(av,{className:{}})})]})]})}),(0,ed.jsxs)("section",{className:"relative py-10",children:[(0,ed.jsx)("div",{className:"container mx-auto max-w-screen-xl px-4",children:(0,ed.jsxs)("div",{className:"items-center justify-center md:flex",children:[(0,ed.jsx)("div",{className:"flex w-full items-center justify-center p-8 lg:mt-0 lg:w-1/2",children:(0,ed.jsx)("img",{className:"w-[400px] rounded-lg",src:"/images/home/3d-team.png",alt:"office content 1"})}),(0,ed.jsxs)("div",{className:"h-full w-full p-2 lg:max-w-2xl",children:[(0,ed.jsx)("h2",{className:"my-10 text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"A little bit about us"}),(0,ed.jsxs)("p",{className:"font-asap mt-2 mb-6 w-full text-left text-xl md:my-2",children:["FAIR Data Innovations Hub is a division of the California Medical Innovations Institute (CalMI",(0,ed.jsx)("sup",{children:"2"}),"), a non profit biomedical research organization located in San Diego, California. We started this division in 2019 and n
1ow have a multidisciplinary team of enthusiasts about FAIR Data practices and software development."]}),(0,ed.jsx)("div",{className:"flex w-full justify-start py-5",children:(0,ed.jsx)(eh.default,{href:"/team",passHref:!0,children:(0,ed.jsx)("button",{type:"button",className:"w-max rounded-md border-none bg-black px-5 py-3 text-center text-base font-semibold text-white ring-2 ring-transparent ring-offset-2 transition duration-200 ease-in-out hover:ring-pink-600 focus:ring-pink-600","data-umami-event":"Home page link","data-umami-event-value":"Team",children:"Meet our team"})})})]})]})}),(0,ed.jsx)("div",{className:"absolute inset-0 -z-10 transform-gpu overflow-hidden blur-3xl","aria-hidden":"true",children:(0,ed.jsx)("div",{className:"relative aspect-square rotate-[45deg] bg-gradient-to-tr from-pink-200 to-purple-300 opacity-50",style:{clipPath:"polygon(10% 15%, 60% 35%, 85% 55%, 70% 90%, 95% 98%, 35% 60%, 55% 15%, 10% 40%, 75% 55%, 70% 70%, 85% 35%, 60% 70%, 65% 25%, 50% 65%, 85% 70%, 95% 72%, 90% 80%)"}})})]}),(0,ed.jsx)(a0,{}),(0,ed.jsxs)("section",{className:"relative pb-10",children:[(0,ed.jsx)("div",{className:"container mx-auto max-w-screen-xl px-4",children:(0,ed.jsxs)("div",{className:"items-center justify-center md:flex",children:[(0,ed.jsx)("div",{className:"flex w-full items-center justify-center p-8 lg:mt-0 lg:w-1/2",children:(0,ed.jsx)("img",{className:"w-[400px] rounded-lg",src:"/images/home/3d-contact.png",alt:"office content 1"})}),(0,ed.jsxs)("div",{className:"h-full w-full p-2 lg:max-w-2xl",children:[(0,ed.jsx)("h2",{className:"my-10 text-left text-4xl font-extrabold text-stone-900 sm:text-4xl",children:"Let's get in touch"}),(0,ed.jsx)("p",{className:"font-asap mt-2 mb-6 w-full text-left text-xl md:my-2",children:"Need help with sharing data or research software? Want to collaborate on a cool new project or grant proposal? Have feedback or suggestions? Reach out to us!"}),(0,ed.jsx)("div",{className:"flex w-full justify-start py-5",children:(0,ed.jsx)(eh.default,{href:"/contact-us",passHref:!0,children:(0,ed.jsx)("button",{type:"button",className:"w-max rounded-md border-none bg-black px-5 py-3 text-center text-base font-semibold text-white ring-2 ring-transparent ring-offset-2 transition duration-200 ease-in-out hover:ring-pink-600 focus:ring-pink-600","data-umami-event":"Home page link","data-umami-event-value":"Team",children:"Contact us"})})})]})]})}),(0,ed.jsx)("div",{className:"absolute inset-0 -z-10 transform-gpu overflow-hidden blur-3xl","aria-hidden":"true",children:(0,ed.jsx)("div",{className:"relative aspect-square rotate-[45deg] bg-gradient-to-tr from-pink-200 to-purple-300 opacity-50",style:{clipPath:"polygon(10% 15%, 60% 35%, 85% 55%, 70% 90%, 95% 98%, 35% 60%, 55% 15%, 10% 40%, 75% 55%, 70% 70%, 85% 35%, 60% 70%, 65% 25%, 50% 65%, 85% 70%, 95% 72%, 90% 80%)"}})})]})]})}],87856)},55075,(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",()=>e.r(87856)]),t.hot&&t.hot.dispose(function(){window.__NEXT_P.push(["/"])})}]);
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.