PageSourceSearch

https://aave.org/_next/static/chunks/pages/app/g/[code]-db09526df060c256.js

js aave.org collected 2026-10-05 06:50:05 UTC 51,178 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5455],{3992:e=>{e.exports={root:"styles_root__qn_su",widget:"styles_widget__RdaXo",widgetImg:"styles_widgetImg__PfCM7"}},5376:(e,t,a)=>{"use strict";a.d(t,{N:()=>s});var n=a(89893),r=a(65162),i=a(74895);function s(e){let t=(0,r.useRef)(0),{isStatic:a}=(0,r.useContext)(i.Q);(0,r.useEffect)(()=>{if(a)return;let r=({timestamp:a,delta:n})=>{t.current||(t.current=a),e(a-t.current,n)};return n.Gt.update(r,!0),()=>(0,n.WG)(r)},[e])}},21724:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/app/g/[code]",function(){return a(60398)}])},46879:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(4930);a(65162);var r=a(59347),i=a.n(r);let s=e=>{let{className:t="",children:a,level:r=1,styleLevel:s,size:l="default",style:o}=e,u=null!=s?s:r,c=1===u&&"large"===l?i().level1Large:i()["level".concat(u)];return(0,n.jsx)("h".concat(r),{className:"".concat(i().heading," ").concat(c," ").concat(t),style:o,children:a})}},47828:(e,t,a)=>{"use strict";a.d(t,{w:()=>c});var n=a(4930),r=a(65162),i=a(46879),s=a(50398),l=a.n(s),o=a(81876),u=a(49841);let c=(0,r.forwardRef)((e,t)=>{let{title:a,titleSuffix:r,titleRevealAnimation:s=!0,titleStyleLevel:c,description:d,children:h,className:f="",style:p,linkSlot:m,variant:g="primary",id:v,action:x,alternateStyling:y=!1,align:_="left",fullWidth:w=!1,inlineLinkSlot:b=!1}=e,{width:S}=(0,o.A)();return(0,n.jsx)("section",{id:v,ref:t,className:"".concat(l().section," ").concat(f),style:p,"data-alternate-styling":y,"data-full-width":w,children:(0,n.jsxs)("div",{className:l().inner,children:[(a||d||x)&&(0,n.jsxs)("header",{className:l().header,"data-variant":g,"data-align":_,"data-inline-link-slot":b,children:[(0,n.jsx)("div",{className:l().content,children:"primary"===g?(0,n.jsxs)(n.Fragment,{children:[(a||d)&&(0,n.jsxs)("div",{className:l().headingGroup,children:[a&&(0,n.jsx)(i.A,{className:l().title,level:2,styleLevel:c,children:(0,n.jsxs)("span",{className:l().titleText,"data-deep-link-host":!0,children:[s?(0,n.jsx)(u.R,{children:a}):(0,n.jsx)(n.Fragment,{children:a}),r]})}),d&&(0,n.jsx)("p",{className:l().description,children:d})]}),m&&(0,n.jsx)("div",{className:l().linkSlot,children:m})]}):(0,n.jsxs)(n.Fragment,{children:[a&&(0,n.jsx)(i.A,{className:l().title,level:2,styleLevel:c,children:(0,n.jsxs)("span",{className:l().titleText,"data-deep-link-host":!0,children:[s?(0,n.jsx)(u.R,{children:a}):(0,n.jsx)(n.Fragment,{children:a}),r]})}),a&&m&&S>768&&(0,n.jsx)("div",{className:l().linkSlot,children:m}),d&&(0,n.jsx)("p",{className:l().description,children:d}),m&&S<=768&&(0,n.jsx)("div",{className:l().linkSlot,children:m})]})}),x&&(0,n.jsx)("div",{className:l().action,children:x})]}),h]})})})},49841:(e,t,a)=>{"use strict";a.d(t,{R:()=>c});var n=a(4930),r=a(65162),i=a(43106),s=a(31204);let l={duration:.937,ease:[.19,1,.22,1]},o=(e,t)=>{let a=[];return r.Children.forEach(e,e=>{if("string"==typeof e||"number"==typeof e)String(e).split(/\s+/).filter(Boolean).forEach(e=>a.push({text:e,className:t}));else if(r.isValidElement(e)){var n;if("sup"===e.type){let n=a.at(-1);n?n.suffix=e:a.push({text:"",className:t,suffix:e});return}let r=e.props;a.push(...o(r.children,null!=(n=r.className)?n:t))}}),a},u=function(e,t){let a=!(arguments.length>2)||void 0===arguments[2]||arguments[2],s=o(e);return s.length?s.map((e,s)=>(0,n.jsxs)(r.Fragment,{children:[s>0?" ":null,(0,n.jsxs)(i.P.span,{className:e.className?"text-reveal-word ".concat(e.className):"text-reveal-word",style:{display:"inline-block",position:"relative"},animate:a?{opacity:[0,1],rotate:0,rotateX:[-45,0],y:["50%","0%"]}:void 0,transition:{...l,delay:t+.05*s},children:[e.text,e.suffix]})]},s)):null},c=e=>{let{children:t,delay:a}=e,i=r.useRef(null),l=(0,s.W)(i,{once:!0});return(0,n.jsx)("span",{ref:i,children:u(t,null!=a?a:.3,l)})}},50398:e=>{e.exports={section:"styles_section__vb2MD",title:"styles_title__w9v2w",description:"styles_description__zLett",action:"styles_action__8XA71",header:"styles_header__KBUwj",content:"styles_content__1gkQc",inner:"styles_inner__2r6Ak",headingGroup:"styles_headingGroup__s1bs1",titleText:"styles_titleText__gIrXH",linkSlot:"styles_linkSlot__RB7vT"}},51701:e=>{e.exports={root:"styles_root__cXk_D",button:"styles_button__jm4k4",item:"styles_item__IbPe9",itemIcon:"styles_itemIcon__pHGf9",itemLabel:"styles_itemLabel__B_Jl8",itemLabelPrimary:"styles_itemLabelPrimary__hqrxr",panel:"styles_panel__QM1LZ",pill:"styles_pill__JxhQc",static:"styles_static__wPjuC"}},59347:e=>{e.exports={heading:"styles_heading__GjRm3",level1:"styles_level1__XdFYL",level1Large:"styles_level1Large__nO364",level2:"styles_level2__W0mM0",level3:"styles_level3__dqbul",level4:"styles_level4__OKhm_",level5:"styles_level5__JS_lX"}},60398:(e,t,a)=>{"use strict";a.r(t),a.d(t,{__N_SSP:()=>eW,default:()=>eD});var n=a(4930),r=a(28442),i=a.n(r),s=a(93839),l=a(40057),o=a(43106),u=a(17292),c=a(99897),d=a(47828),h=a(47280),f=a(63965),p=a(46879),m=a(88222),g=a(85086),v=a(26810),x=a(65162),y=a(86739),_=a(95810),w=a(95356),b=a(26399),S=a(85419);let k={src:"/_next/static/media/ticket-noshadow.7dee7b25.webp",height:582,width:800};var T=a(84882),L=a.n(T);function j(){let e=(0,y._)(["",""]);return j=function(){return e},e}function R(){let e=(0,y._)(["",""]);return R=function(){return e},e}function E(){let e=(0,y._)(["",""]);return E=function(){return e},e}function P(){let e=(0,y._)(["",""]);return P=function(){return e},e}let N=e=>e.toFixed(4),B={stiffness:300,damping:30},C={type:"spring",duration:3,bounce:0},A=[0,-13,0],F={duration:1.1,ease:[.22,1,.36,1],times:[0,.32,1]},I=()=>(0,n.jsx)("link",{rel:"preload",as:"image",href:k.src,type:"image/webp",fetchPriority:"high"}),M=e=>{let{entered:t,back:a,priority:r}=e;return(0,n.jsxs)("span",{className:"".concat(L().ticketFace).concat(a?" ".concat(L().ticketFaceBack):""),children:[(0,n.jsx)("span",{className:"".concat(L().depth).concat(t?" ".concat(L().depthEnter):""),"aria-hidden":!0,
1children:(0,n.jsx)("span",{className:L().depthSlab})}),(0,n.jsx)("img",{src:k.src,width:k.width,height:k.height,alt:"",fetchPriority:r?"high":"auto",decoding:r?"sync":"async",draggable:!1,className:L().ticketImg}),(0,n.jsx)("span",{className:L().gloss,"aria-hidden":!0}),(0,n.jsx)("span",{className:L().sweep,"aria-hidden":!0})]})},G=()=>{let e=(()=>{let e=(0,x.useRef)(null),t=(0,_.d)(.5),a=(0,_.d)(.5),n=(0,w.z)(t,B),r=(0,w.z)(a,B),i=(0,b.G)(r,[0,1],[6,-6]),s=(0,b.G)(n,[0,1],[-6,6]),l=(0,S.E)(j(),(0,b.G)(n,e=>N(.26-.52*e)));return{ref:e,onMouseMove:n=>{var r;let i=null==(r=e.current)?void 0:r.getBoundingClientRect();i&&(t.set((n.clientX-i.left)/i.width),a.set((n.clientY-i.top)/i.height))},onMouseLeave:()=>{t.set(.5),a.set(.5)},vars:{rotateX:i,rotateY:s,transformPerspective:900,"--depth-x":l,"--depth-y":(0,S.E)(R(),(0,b.G)(r,e=>N(.35-.7*e)))}}})(),[t,a]=(0,x.useState)(0),[r,i]=(0,x.useState)(!1),s=(0,_.d)(0),l=(0,S.E)(E(),(0,b.G)(s,e=>N(Math.abs(Math.cos(e*Math.PI/180))))),u=(0,S.E)(P(),(0,b.G)(s,e=>N(Math.sin(e*Math.PI/180))));return(0,x.useEffect)(()=>i(!0),[]),(0,n.jsxs)(o.P.div,{ref:e.ref,className:L().ticket,onMouseMove:e.onMouseMove,onMouseLeave:e.onMouseLeave,onClick:()=>a(e=>e+1),style:{...e.vars,"--ticket-src":'url("'.concat(k.src,'")')},children:[(0,n.jsx)("span",{className:"".concat(L().burst).concat(r?" ".concat(L().burstPlay):""),"aria-hidden":!0}),(0,n.jsx)("span",{className:L().ticketShadow,children:(0,n.jsxs)(o.P.span,{className:L().ticketSpin,style:{transformPerspective:1e3,"--spin-flat":l,"--spin-side":u},onUpdate:e=>{"number"==typeof e.rotateY&&s.set(e.rotateY)},animate:0===t?{rotateY:0,rotateZ:0}:{rotateY:360*t,rotateZ:A},transition:{rotateY:C,rotateZ:F},children:[(0,n.jsx)(M,{entered:r,priority:!0}),(0,n.jsx)(M,{entered:r,back:!0})]})})]})},W=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return{duration:3,repeat:1/0,repeatType:"reverse",ease:"easeInOut",delay:e}},D=e=>{let{onAnimationComplete:t}=e,[a,r]=(0,x.useState)(!1);return(0,n.jsxs)("div",{className:L().stage,children:[(0,n.jsx)(o.P.div,{animate:{scale:[.5,1],y:[500,0],rotateX:[150,0],rotate:[-100,0]},transition:{type:"spring",stiffness:150,damping:22,mass:1.2},onAnimationComplete:()=>{r(!0),setTimeout(t,400)},children:(0,n.jsx)(o.P.div,{animate:{y:[-20,10],rotate:[0,5],transition:{y:W(-.25),rotate:W()}},children:(0,n.jsx)(o.P.div,{animate:{scale:[1,1.05,1],rotateX:[0,-20,0]},transition:{duration:.5,delay:1,ease:[.455,.03,.515,.955]},children:(0,n.jsx)(G,{})})})}),(0,n.jsx)(o.P.span,{className:L().groundShadow,"aria-hidden":!0,initial:{opacity:0}
1,animate:{opacity:+!!a},transition:{delay:.6,duration:.8,ease:"easeOut"},children:(0,n.jsx)(o.P.span,{className:L().groundShadowInk,animate:{scaleX:[.96,1.04],scaleY:[1.25,1],opacity:[.28,.4],transition:W(-.25)}})})]})};var H=a(80055),U=a(47454),X=a(31204),O=a(63681);let z={src:"/_next/static/media/button.9cadf59e.svg"};var K=a(51701),q=a.n(K);let V={width:972,height:420},Y=(e,t)=>"".concat(e/t*100,"%"),Z={x:188.777,y:8.934,width:170},Q={x:207.77,y:156.38,width:558.5,height:580.85},J=[{icon:{src:"/_next/static/media/icon-redeem.8575850b.svg",height:90,width:514,blurWidth:0,blurHeight:0},label:"Redeem Ghost Pass",y:178.723,primary:!0},{icon:{src:"/_next/static/media/icon-follow.376e4550.svg",height:90,width:514,blurWidth:0,blurHeight:0},label:"Follow for Updates",y:268.242},{icon:{src:"/_next/static/media/icon-support.af1eb234.svg",height:63,width:514,blurWidth:0,blurHeight:0},label:"Contact Support",y:357.602}],$={x:230.106,width:513.83,labelX:107.24},ee=()=>{let e=(0,H.I)(),[t,a]=(0,U.l)(),r=(0,X.W)(t,{once:!0,amount:.5});return(0,x.useEffect)(()=>{if(!r||e)return;let t=!1;return(async()=>{for(;!t;)await a([["[data-panel]",{opacity:0,scale:.6},{duration:0}],["[data-item]",{opacity:0,y:-8},{duration:0}],["[data-pill]",{opacity:0,scale:.94},{duration:0}],["[data-button]",{scale:.88},{duration:.1,at:.6}],["[data-button]",{scale:1},{type:"spring",stiffness:520,damping:18,at:.7}],["[data-panel]",{opacity:1,scale:1},{type:"spring",stiffness:340,damping:26,at:.7}],["[data-item]",{opacity:1,y:0},{duration:.28,ease:"easeOut",delay:(0,O.y)(.05),at:.76}],["[data-pill]",{opacity:1,scale:1},{duration:.22,ease:"easeOut",at:1.6}],["[data-panel]",{opacity:0,scale:.92},{duration:.2,ease:"easeIn",at:"+".concat(2.2)}],["[data-panel]",{opacity:0},{duration:.9}]])})(),()=>{t=!0}},[r,e,a]),(0,n.jsxs)("div",{ref:t,className:"".concat(q().root).concat(e?" ".concat(q().static):""),style:{aspectRatio:"".concat(V.width," / ").concat(V.height)},"aria-hidden":!0,children:[(0,n.jsxs)("div",{"data-panel":!0,className:q().panel,style:{left:Y(Q.x,V.width),top:Y(Q.y,V.height),width:Y(Q.width,V.width)},children:[(0,n.jsx)("span",{"data-pill":!0,className:q().pill,style:{left:Y($.x-Q.x,Q.width),top:Y(J[0].y-Q.y,Q.height),width:Y($.width,Q.width)}}),J.map(e=>{let{icon:t,label:a,y:r,primary:i}=e;return(0,n.jsxs)("div",{"data-item":!0,className:q().item,style:{left:Y($.x-Q.x,Q.width),top:Y(r-Q.y,Q.height),width:Y($.width,Q.width)},children:[(0,n.jsx)("img",{src:t.src,alt:"",draggable:!1,className:q().itemIcon}),(0,n.jsx)("span",{className:"".concat(q().itemLabel).concat(i?" ".concat(q().itemLabelPrimary):""),style:{left:Y($.labelX,$.width)},children:a})]},a)})]}),(0,n.jsx)("img",{"data-button":!0,src:z.src,alt:"",draggable:!1,className:q().button,style:{left:Y(Z.x,V.width),top:Y(Z.y,V.height),width:Y(Z.width,V.width)}})]})},et={src:"/_next/static/media/app-icon.1a25c03c.svg",height:188,width:188,blurWidth:0,blurHeight:0};var ea=a(3992),en=a.n(ea);let er={width:972,height:420},ei=[{src:{src:"/_next/static/media/calendar.fca75525.svg",height:116,width:116,blurWidth:0,blurHeight:0},x:318,y:229,drift:6,tilt:-4,delay:.9,duration:7.5},{src:{src:"/_next/static/media/contacts.a8d477dc.svg",height:111,width:111,blurWidth:0,blurHeight:0},x:338,y:160,drift:4,tilt:3,delay:2.1,duration:6.5},{src:{src:"/_next/static/media/rocket.678f03bc.svg",height:166,width:166,blurWidth:0,blurHeight:0},x:510,y:181,drift:6,tilt:4,delay:.4,duration:8},{src:{src:"/_next/static/media/earned.a98404f0.svg",height:83,width:189,blurWidth:0,blurHeight:0},x:305,y:81,drift:5,tilt:-2.5,delay:1.6,duration:7},{src:et,x:392,y:118,drift:4,tilt:0,delay:0,duration:8.5},{src:{src:"/_next/static/media/projection.0a683343.svg",height:94,width:226,blurWidth:0,blurHeight:0},x:433,y:260,drift:5,tilt:2.5,delay:2.7,duration:7.2},{src:{src:"/_next/static/media/deposit.6b48124b.svg",height:41,width:32,blurWidth:0,blurHeight:0},x:609,y:184,drift:5,tilt:-5,delay:1.2,duration:6.2},{src:{src:"/_next/static/media/folder.a0a6e219.svg",height:122,width:122,blurWidth:0,blurHeight:0},x:454,y:30,drift:5,tilt:3,delay:3.1,duration:6.8}
1,{src:{src:"/_next/static/media/check.ad84a767.svg",height:94,width:94,blurWidth:0,blurHeight:0},x:370,y:34,drift:5,tilt:-3,delay:.7,duration:6.4},{src:{src:"/_next/static/media/card.e1cf740c.svg",height:79,width:71,blurWidth:0,blurHeight:0},x:311,y:157,drift:5,tilt:3.5,delay:2.4,duration:6.3},{src:{src:"/_next/static/media/bank.d83d7360.svg",height:44,width:37,blurWidth:0,blurHeight:0},x:401,y:305,drift:4,tilt:-4,delay:1.9,duration:6},{src:{src:"/_next/static/media/map.49fddb12.svg",height:133,width:133,blurWidth:0,blurHeight:0},x:529,y:67,drift:6,tilt:-3,delay:1.4,duration:8.2}],es=ei.findIndex(e=>e.src===et),el=(e,t)=>"".concat(e/t*100,"%"),eo=(e,t)=>({duration:e,repeat:1/0,repeatType:"reverse",ease:"easeInOut",delay:-t}),eu=e=>{let{src:t}=e;return t.width*t.height},ec=e=>[...e].sort((e,t)=>eu(t)-eu(e)),ed=[...ec(ei.slice(0,es)),ei[es],...ec(ei.slice(es+1))],eh={hidden:e=>{let{rotate:t}=e;return{y:6,opacity:0,scale:.72,rotate:t}},shown:e=>{let{delay:t}=e;return{y:0,opacity:1,scale:1,rotate:0,transition:{type:"spring",stiffness:380,damping:14,mass:.9,delay:t,opacity:{duration:.2,ease:"easeOut",delay:t}}}}},ef=()=>{let e=(0,H.I)();return(0,n.jsx)(o.P.div,{className:en().root,style:{aspectRatio:"".concat(er.width," / ").concat(er.height)},"aria-hidden":!0,initial:!e&&"hidden",whileInView:"shown",viewport:{once:!0,amount:.5},children:ei.map(t=>{let{src:a,x:r,y:i,drift:s,tilt:l,delay:u,duration:c}=t,d={delay:.1+.045*ed.indexOf(t),rotate:-(6*l)};return(0,n.jsx)(o.P.div,{className:en().widget,style:{left:el(r,er.width),top:el(i,er.height),width:el(a.width,er.width)},variants:eh,custom:d,children:(0,n.jsx)(o.P.img,{src:a.src,alt:"",draggable:!1,className:en().widgetImg,animate:e?void 0:{y:[s,-s],rotate:[-l,l],transition:{y:eo(c,u),rotate:eo(c,u+.25*c)}}})},a.src)})})};var ep=a(84817),em=a(5376);let eg={lead:10,trail:70,fade:.45,afterglow:.08,residual:.05,residualFade:1.6,meetLevel:.55,meetSigma:5,shimmer:.3,buttonLevel:0,rimSigma:.9,rimLevel:.5,bevelOffset:4,bevelSigma:3.5,bevelLevel:.14,bevelLag:9,washLead:26,washTrail:90,washLevel:0,rippleLevel:.05,rippleSigma:2.5,starLevel:.55,starCore:.7,starBand:[4,18],starFlare:.7,linger:.1,sparkleLevel:.7,sparkleCell:8,sparkleSize:.65,sparkleBand:[3,12],sparkleArms:5,sparkleHue:.6,starHue:.12,sparkLevel:8,sparkSize:.7,sparkLife:.9,sparkSpeed:45,dispersion:3.2,grain:.5,bloom:.6,bloomSigma:2.6,bloomThreshold:.28,bloomKnee:.3,tint:[.592,.557,1],deep:[.42,.33,1],cool:[.36,.66,1],warm:[.86,.55,1],wash:[.68,.65,1],shine:[[.36,.72,1],[.592,.557,1],[.92,.5,.95],[.42,.33,1]]},ev=e=>{if(e<=0||e>=1)return 0;let t=e<.4?e/.4:(1-e)/.6;return t*t*(3-2*t)},ex=(e,t,a)=>{let n=0;for(let r of a){let a=Math.abs(e-r.origin)/.42;n+=ev((t-r.start-a)/320)}return Math.min(n,1)},ey=e=>"color-mix(in oklab, var(--fp-1), var(--purple-3) ".concat((75*e).toFixed(1),"%)"),e_=e=>{let{rootRef:t,charsRef:a,centersRef:n,widthRef:r,wavesRef:i,onIdle:s}=e;return(0,em.N)(()=>{var e,l;let o=t.current,u=a.current;if(!o||!(null==u?void 0:u.length))return;let c=performance.now(),d=r.current||1,h=(null!=(e=i.current)?e:[]).filter(e=>{let t=Math.max(e.origin,d-e.origin);return c-e.start<t/.42+320});if(i.current=h,!h.length){o.style.setProperty("--wave","linear-gradient(var(--fp-1), var(--fp-1))"),u.forEach(e=>e.style.setProperty("--lit","0")),s();return}let f=[];for(let e=0;e<24;e++){let t=e/23,a=ey(ex(t*d,c,h));f.push("".concat(a," ").concat((100*t).toFixed(2),"%"))}o.style.setProperty("--wave","linear-gradient(90deg, ".concat(f.join(", "),")"));let p=null!=(l=n.current)?l:[];u.forEach((e,t)=>{var a;let n=null!=(a=p[t])?a:(t+.5)/u.length*d;e.style.setProperty("--lit",ex(n,c,h).toFixed(3))})}),null},ew=(0,x.forwardRef)(function(e,t){let{code:a,className:r=""}=e,i=(0,H.I)(),s=(0,x.useRef)(null),l=(0,x.useRef)([]),o=(0,x.useRef)([]),u=(0,x.useRef)(0),c=(0,x.useRef)([]),[d,h]=(0,x.useState)(!1),f=(0,x.useCallback)(()=>{let e=s.current;if(!e)return;let t=e.getBoundingClientRect(),a=t.width||1;u.current=a,e.style.setProperty("--gw","".concat(a,"px")),l.current.forEach((e,a)=>{let n=e.getBoundingClientRect(),r=n.left-t.left;e.style.setProperty("--cx","".concat(r,"px")),o.current[a]=r+n.width/2})},[]);return(0,x.useEffect)(()=>{var e;let t=s.current;if(!t)return;f();let a=new ResizeObserver(f);
1return a.observe(t),null==(e=document.fonts)||e.ready.then(f),()=>a.disconnect()},[f,a]),(0,x.useImperativeHandle)(t,()=>({ripple:e=>{if(i)return;let t=s.current;if(!t)return;let a=t.getBoundingClientRect(),n=void 0===e?a.width:e-a.left,r=c.current,l=performance.now();if(r.length>=24){let e=r.findIndex(e=>{let t=Math.max(e.origin,a.width-e.origin);return l-e.start>t/.42});if(-1===e)return;r.splice(e,1)}r.push({start:l,origin:n}),h(!0)}}),[i]),(0,n.jsxs)("span",{ref:s,className:"".concat(L().waveRoot," ").concat(r),children:[a.split("").map((e,t)=>(0,n.jsx)("span",{className:L().waveChar,ref:e=>{e&&(l.current[t]=e)},children:e},t)),d&&(0,n.jsx)(e_,{rootRef:s,charsRef:l,centersRef:o,widthRef:u,wavesRef:c,onIdle:()=>h(!1)})]})});var eb=a(67998);let eS="#version 300 es\nprecision highp float;\n\n#define BURSTS ".concat(10,"\n#define SPARKS ").concat(3,"\n#define STARS ").concat(14,"\n#define PI 3.14159265359\n#define TAU 6.28318530718\n\nuniform vec2 uSize;\n/** The bar inside the canvas: x, y, w, h in device px from the top-left. */\nuniform vec4 uPill;\nuniform float uTime;\n/** Per burst: origin x, y in device px, start time on `uTime`'s clock, 1 while live. */\nuniform vec4 uBurst[BURSTS];\n/** Per burst: the copy button's box, x, y, w, h in device px. The light leaves from its edge. */\nuniform vec4 uButton[BURSTS];\nuniform float uDpr;\n/** Device px per second. */\nuniform float uSpeed;\n\nuniform float uLead;\nuniform float uTrail;\nuniform float uFade;\nuniform float uAfterglow;\n/** Light left on the rim after the fade, and how long it takes to go — the \"Copied!\" beat. */\nuniform float uResidual;\nuniform float uResidualFade;\n/** The pinprick where the two fronts meet. */\nuniform float uMeetLevel;\nuniform float uMeetSigma;\n/** Flutter along the wake, and the hairline round the button at the click. */\nuniform float uShimmer;\nuniform float uButtonLevel;\nuniform float uRimSigma;\nuniform float uRimLevel;\nuniform float uBevelOffset;\nuniform float uBevelSigma;\nuniform float uBevelLevel;\n/** Device px the bevel's light trails the outer one by: the second surface of the glass. */\nuniform float uBevelLag;\nuniform float uWashLead;\nuniform float uWashTrail;\nuniform float uWashLevel;\nuniform float uRippleLevel;\nuniform float uRippleSigma;\nuniform float uStarLevel;\nuniform float uStarCore;\nuniform vec2 uStarBand;\nuniform float uStarFlare;\nuniform float uLinger;\nuniform float uSparkleLevel;\nuniform float uSparkleCell;\nuniform float uSparkleSize;\nuniform vec2 uSparkleBand;\nuniform float uSparkleArms;\nuniform float uSparkleHue;\nuniform float uStarHue;\nuniform vec3 uShine[4];\nuniform float uSparkLevel;\nuniform float uSparkSize;\nuniform float uSparkLife;\nuniform float uSparkSpeed;\nuniform float uDispersion;\nuniform float uGrain;\n\nuniform vec3 uTint;\nuniform vec3 uDeep;\nuniform vec3 uCool;\nuniform vec3 uWarm;\nuniform vec3 uWash;\n\nout vec4 fragColor;\n\nfloat hash11(float n) {\n  n = fract(n * 0.1031);\n  n *= n + 33.33;\n  n *= n + n;\n  return fract(n);\n}\n\nfloat hash21(vec2 p) {\n  p = fract(p * vec2(127.1, 311.7));\n  p += dot(p, p + 45.32);\n  return fract(p.x * p.y);\n}\n\n/** 1D value noise. */\nfloat noise1(float x) {\n  float i = floor(x);\n  float f = fract(x);\n  f = f * f * (3.0 - 2.0 * f);\n  return mix(hash11(i), hash11(i + 1.0), f);\n}\n\nfloat gauss(float x, float sigma) {\n  float q = x / max(sigma, 1e-4);\n  return exp(-q * q);\n}\n\n/** Signed distance to a stadium whose spine runs a..b with radius r. */\nfloat sdPill(vec2 p, vec2 a, vec2 b, float r) {\n  vec2 pa = p - a;\n  vec2 ba = b - a;\n  float t = clamp(dot(pa, ba) / max(dot(ba, ba), 1e-4), 0.0, 1.0);\n  return length(pa - ba * t) - r;\n}\n\n/**\n * Arc length around the outline, clockwise from where the left cap meets the top edge, of the\n * point p projects to. Defined for every p, inside or out.\n */\nfloat arcT(vec2 p, vec2 a, vec2 b, float r, float straight) {\n  if (p.x < a.x) {\n    // Left cap: bottom (PI/2) through the far left (PI) up to the top (3PI/2).\n    float th = atan(p.y - a.y, p.x - a.x);\n    if (th < 0.0) th += TAU;\n    return 2.0 * straight + PI * r + (th - PI * 0.5) * r;\n  }\n  if (p.x > b.x) {\n    // Right cap: top (-PI/2) round to bottom (PI/2).\n    float th = atan(p.y - b.y, p.x - b.x);\n    return straight + (th + PI * 0.5) * r;\n  }\n  return p.y < a.y ? p.x - a.x : straight + PI * r + (b.x - p.x);\n}\n\n/** The inverse of arcT: the point on the outline at arc length t, and the outward normal there. */\nvec2 outlineAt(float t, vec2 a, vec2 b, float r, float straight, out vec2 n) {\n  if (t < straight) { n = vec2(0.0, -1.0); return vec2(a.x + t, a.y - r); }\n  t -= straight;\n  if (t < PI * r) { float th = t / r - PI * 0.5; n = vec2(cos(th), sin(th)); return b + n * r; }\n  t -= PI * r;\n  if (t < straight) { n = vec2(0.0, 1.0); return vec2(b.x - t, a.y + r); }\n  t -= straight;\n  float th = PI * 0.5 + t / r;\n  n = vec2(cos(th), sin(th));\n  return a + n * r;\n}\n\n/** A four-point glint: two thin gaussians crossed, `arms` core widths long. */\nfloat glint(vec2 dv, float core, float arms) {\n  return gauss(dv.x, c
1ore * 0.5) * gauss(dv.y, core * arms)\n       + gauss(dv.y, core * 0.5) * gauss(dv.x, core * arms);\n}\n\n/**\n * A sparkle: a hot pinpoint, the four-point glint, and a second, shorter cross turned 45deg. The\n * eight points are what make it read as a sparkle rather than a star.\n */\nfloat sparkle(vec2 dv, float core, float arms) {\n  vec2 dr = vec2(dv.x + dv.y, dv.y - dv.x) * 0.70710678;\n  return gauss(length(dv), core * 0.7) * 1.5\n       + glint(dv, core, arms)\n       + glint(dr, core * 0.8, arms * 0.45) * 0.6;\n}\n\n/** The colour at `h` (cycles) round the four-stop palette, wrapping. */\nvec3 shine(float h) {\n  float x = fract(h) * 4.0;\n  int k = int(floor(x));\n  float f = smoothstep(0.0, 1.0, fract(x));\n  vec3 c0 = k == 0 ? uShine[0] : k == 1 ? uShine[1] : k == 2 ? uShine[2] : uShine[3];\n  vec3 c1 = k == 0 ? uShine[1] : k == 1 ? uShine[2] : k == 2 ? uShine[3] : uShine[0];\n  return mix(c0, c1, f);\n}\n\n/** Shortest way round between two arc coordinates. */\nfloat perim(float t, float t0, float L) {\n  float d = abs(t - t0);\n  return min(d, L - d);\n}\n\n/** Source-over, straight colour in, premultiplied accumulator. */\nvoid lay(inout vec4 acc, vec3 c, float a) {\n  a = clamp(a, 0.0, 1.0);\n  acc.rgb = acc.rgb * (1.0 - a) + c * a;\n  acc.a = acc.a * (1.0 - a) + a;\n}\n\nvoid main() {\n  vec2 p = vec2(gl_FragCoord.x, uSize.y - gl_FragCoord.y);\n\n  float r = uPill.w * 0.5;\n  vec2 a = vec2(uPill.x + r, uPill.y + r);\n  vec2 b = vec2(uPill.x + uPill.z - r, uPill.y + r);\n  float straight = max(b.x - a.x, 0.0);\n  float L = 2.0 * straight + TAU * r;\n\n  float d = sdPill(p, a, b, r);\n  // Before any branch: derivatives in non-uniform control flow are undefined.\n  float e = fwidth(d) + 1e-4;\n  float inside = 1.0 - smoothstep(-e, e, d);\n  float t = arcT(p, a, b, r, straight);\n  float grain = hash21(gl_FragCoord.xy + vec2(uTime * 71.3, uTime * 43.1)) - 0.5;\n\n  vec4 acc = vec4(0.0);\n\n  for (int i = 0; i < BURSTS; i++) {\n    vec4 bst = uBurst[i];\n    if (bst.w < 0.5) continue;\n    float age = uTime - bst.z;\n    if (age < 0.0) continue;\n    vec2 o = bst.xy;\n\n    // The fronts leave from the click's shadow on both long edges, so the two edges light together\n    // rather than one waiting for the light to come round the cap.\n    float tTop = arcT(vec2(o.x, a.y - 1.0), a, b, r, straight);\n    float tBot = arcT(vec2(o.x, a.y + 1.0), a, b, r, straight);\n    float ds = min(perim(t, tTop, L), perim(t, tBot, L));\n\n    float front = uSpeed * age;\n    // Where the fronts meet: the far cap's apex, along the longer straight and a quarter turn.\n    float reach = max(o.x - a.x, b.x - o.x) + PI * 0.5 * r;\n    float meet = reach / uSpeed;\n    float attack = smoothstep(0.0, 0.04, age);\n    float hold = 1.0 - smoothstep(meet, meet + uFade, age);\n    // Slower than the main fade: what stays is a whisper on the rim for as long as the button\n    // says \"Copied!\", gone by the time it says \"Copy\" again.\n    float rest = 1.0 - smoothstep(meet, meet + uResidualFade, age);\n    if (attack * max(hold, rest) <= 0.001) continue;\n\n    // Positive is ahead of the front. The asymmetry is the wake, and the wake is what says which\n    // way the light is going.\n    float ahead = ds - front;\n    float lit = gauss(ahead, ahead > 0.0 ? uLead : uTrail) * hold;\n    // Once the fronts have met the whole outline holds a little light, and the fade takes that too.\n    lit = max(lit, uAfterglow * smoothstep(reach * 0.5, reach, front) * hold);\n    lit = max(lit, uResidual * smoothstep(reach * 0.6, reach, front) * rest);\n    // The two fronts arriving at the same point at the same moment: one bright pixel, briefly.\n    lit += gauss(ds - reach, uMeetSigma) * gauss(age - meet, 0.07) * uMeetLevel;\n    lit *= attack;\n\n    // Cool ahead, warm behind — light through glass. Signed by position, not brightness, so the\n    // wake does not turn cool as it fades.\n    float side = clamp(ahead / (ahead > 0.0 ? uLead * 2.0 : uTrail), -1.0, 1.0);\n    vec3 base = mix(uTint, uWarm, uDispersion * smoothstep(0.1, 1.0, -side));\n    base = mix(base, uCool, uDispersion * smoothstep(0.15, 1.0, side));\n\n    // --- the wash: the bar's body, behind everything ---\n    float wash = gauss(ahead, ahead > 0.0 ? uWashLead : uWashTrail) * inside * hold * attack;\n    lay(acc, uWash, wash * uWashLevel);\n\n    // --- the button: a hairline round its edge at the instant of the click ---\n    vec4 bt = uButton[i];\n    float br = bt.w * 0.5;\n    float sdb = sdPill(p, vec2(bt.x + br, bt.y + br), vec2(bt.x + bt.z - br, bt.y + br), br);\n    float hair = gauss(sdb, uRimSigma) * (1.0 - smoothstep(0.0, 0.3, age)) * attack;\n    lay(acc, uDeep, hair * uButtonLevel);\n\n    // --- the bevel: a soft band inside the edge, its light a step behind the outer one ---\n    float lag = ahead + uBevelLag;\n    float litBevel = gauss(lag, lag > 0.0 ? uLead : uTrail) * hold * attack;\n    float bevel = gauss(d + uBevelOffset, uBevelSigma) * litBevel;\n    lay(acc, base, bevel * uBevelLevel);\n\n    // --- the filament: the outline itself ---\n    // Flutter along the wake only: the head stays clean, the tail moves like heat.\n    float wake = 1.0 - smoothstep(0.0, uLead, ahead);\n    float shimmer = (noise1(t / (14.0 * uDpr) + uTime * 2.5) - 0.5) * 2.0 * uShimmer * wake;\n    float amp = lit * uRimLevel * (1.0 + grain * uGrain + shimmer);\n    float core = clamp(amp * 0.9, 0.0, 1.0);\n    lay(acc, mix(base, uDeep, core), gauss(d, uRimSigma) * amp);\n\n    // --- the sparkles: glints thrown off the rim as the light passes ---\n    // The rim is cut into cells along its length; each cell holds one glint, standing a little way\n    // outside the outline, with its own clock — and a glint is only ever on for a moment.\n    // Not on the wake alone — that is a quarter of a second. Once the front has gone by, the rim\n    // keeps its glitter for `uLinger`, dying off as the rest does.\n    float since = max(-ahead, 0.0) / uSpeed;\n    float lingerGate = smoothstep(uLead * 2.0, -uLead * 2.0, ahead) * exp(-since / uLinger) * rest;\n    float glitterGate = max(lit, lingerGate * attack);\n    if (uSparkleLevel > 0.001 && glitterGate > 0.02) {\n      float cell = floor(t / uSparkleCell);\n      float seed = hash11(cell * 5.13 + float(i) * 31.0);\n      float tc = (cell + 0.2 + seed * 0.6) * uSparkleCell;\n      vec2 gn;\n      vec2 gp = outlineAt(tc, a, b, r, straight, gn);\n      gp += gn * mix(uSparkleBand.x, uSparkleBand.y, hash11(cell * 7.77 + float(i) * 13.0));\n      // A slow pop with a fast flicker riding on it, the arms growing as it pops.\n      float pop = pow(max(sin(uTime * 5.0 + seed * TAU), 0.0), 6.0);\n      float flicker = 0.65 + 0.35 * sin(uTime * 23.0 + seed * 50.0);\n      float g = sparkle(p - gp, uSparkleSize, uSparkleArms * (0.5 + 0.5 * pop))\n              * pop * flicker * glitterGate;\n      lay(acc, shine(seed + uTime * uSparkleHue), g * uSparkleLevel);\n    }\n\n    // --- the stars: a scatter just outside the rim, lit as the front passes under them ---\n    if (uStarLevel > 0.001) {\n      float star = 0.0;\n      vec3 starTint = vec3(0.0);
1\n      for (int k = 0; k < STARS; k++) {\n        float fk = float(k) + 1.0 + float(i) * 23.0;\n        float tk = hash11(fk * 1.71) * L;\n        // sqrt: even per unit area, or they pile against the rim.\n        float dk = mix(uStarBand.x, uStarBand.y, sqrt(hash11(fk * 3.31 + 11.0)));\n        vec2 nk;\n        vec2 at = outlineAt(tk, a, b, r, straight, nk) + nk * dk;\n        // How far the front is from this star, along the rim.\n        float dsk = min(perim(tk, tTop, L), perim(tk, tBot, L)) - front;\n        // Lit as the front arrives, then left burning: a slow exponential from the moment it\n        // passed, under the long fade.\n        float arrival = gauss(dsk, dsk > 0.0 ? uLead * 3.0 : uTrail) * hold;\n        float sinceK = max(-dsk, 0.0) / uSpeed;\n        float burning = smoothstep(uLead * 2.0, -uLead * 2.0, dsk) * exp(-sinceK / uLinger) * rest;\n        float caught = max(arrival, burning);\n        float twinkle = 0.55 + 0.45 * sin(uTime * mix(2.0, 5.0, hash11(fk * 9.11)) + fk * 2.2);\n        float bright = hash11(fk * 13.3 + 2.0);\n        vec2 dv = p - at;\n        float point = gauss(length(dv), uStarCore);\n        // The flare on the brightest third only, and only while the light is under them.\n        point += glint(dv, uStarCore, 4.0) * uStarFlare * smoothstep(0.6, 0.92, bright) * caught;\n        float w = point * twinkle * mix(0.3, 1.0, bright) * caught;\n        star += w;\n        starTint += shine(bright + uTime * uStarHue) * w;\n      }\n      // Each star its own colour: the tint is the weighted mix of whichever ones reach this pixel.\n      lay(acc, starTint / max(star, 1e-4), star * uStarLevel * attack);\n    }\n\n    // --- the ripple: a ring leaving the click, inside the glass only ---\n    float ripple = gauss(length(p - o) - front * 0.85, uRippleSigma)\n                 * inside * (1.0 - smoothstep(0.0, 0.45, age)) * attack;\n    lay(acc, uTint, ripple * uRippleLevel);\n\n    // --- the sparks ---\n    float u = age / max(uSparkLife, 1e-3);\n    if (u < 1.0) {\n      float envS = smoothstep(0.0, 0.05, u) * pow(1.0 - u, 1.7);\n      for (int j = 0; j < SPARKS; j++) {\n        float fj = float(j) + 1.0 + float(i) * 17.0;\n        float ang = hash11(fj * 1.71) * TAU;\n        float spd = uSparkSpeed * mix(0.45, 1.0, hash11(fj * 3.31));\n        // Out fast, then coasting.\n        float travel = spd * (1.0 - exp(-age * 4.0)) * 0.25;\n        vec2 at = o + vec2(cos(ang), sin(ang)) * travel;\n        float size = uSparkSize * mix(1.0, 0.5, u);\n        float glow = gauss(length(p - at), size);\n        lay(acc, mix(uTint, uDeep, 1.0 - u), glow * envS * uSparkLevel);\n      }\n    }\n  }\n\n  fragColor = acc;\n}\n"),ek="#version 300 es\nprecision highp float;\n\n#define TAPS ".concat(12,"\n\nuniform sampler2D uSrc;\nuniform vec2 uTexel;\nuniform vec2 uAxis;\nuniform float uSigma;\n/** Alpha at which a pixel starts to bloom. Only the first pass thresholds; the second gets -1. */\nuniform float uThreshold;\nuniform float uKnee;\n\nout vec4 fragColor;\n\nvec4 tap(vec2 uv) {\n  vec4 c = texture(uSrc, uv);\n  return c * smoothstep(uThreshold, uThreshold + max(uKnee, 1e-3), c.a);\n}\n\nvoid main() {\n  vec2 uv = gl_FragCoord.xy * uTexel;\n  // Premultiplied in, so a plain weighted average is the right blur.\n  float inv = -0.5 / max(uSigma * uSigma, 1e-4);\n  vec4 sum = tap(uv);\n  float total = 1.0;\n  for (int i = 1; i <= TAPS; i++) {\n    float f = float(i);\n    float w = exp(f * f * inv);\n    vec2 offset = uAxis * uTexel * f;\n    sum += (tap(uv + offset) + tap(uv - offset)) * w;\n    total += 2.0 * w;\n  }\n  fragColor = sum / total;\n}\n");function eT(e,t,a){let n=e.createShader(a);if(!n)throw Error("CodeGlass: createShader failed");if(e.shaderSource(n,t),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(n);throw e.deleteShader(n),Error("CodeGlass shader compile: ".concat(t))}return n}function eL(e,t,a){let n=e.createProgram();if(!n)throw Error("CodeGlass: createProgram failed");if(e.attachShader(n,t),e.attachShader(n,a),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS)){let t=e.getProgramInfoLog(n);throw e.deleteProgram(n),Error("CodeGlass program link: ".concat(t))}return n}function ej(e){let t=e.createTexture();if(!t)throw Error("CodeGlass: createTexture failed");return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}function eR(e,t,a){let n={};for(let r of a)n[r]=e.getUniformLocation(t,r);return n}let eE=["uSize","uPill","uTime","uBurst","uButton","uDpr","uSpeed","uLead","uTrail","uFade","uAfterglow","uResidual","uResidualFade","uMeetLevel","uMeetSigma","uShimmer","uButtonLevel","uRimSigma","uRimLevel","uBevelOffset","uBevelSigma","uBevelLevel","uBevelLag","uWashLead","uWashTrail","uWashLevel","uRippleLevel","uRippleSigma","uStarLevel","uStarCore","uStarBand","uStarFlare","uLinger","uSparkleLevel","uSparkleCell","uSparkleSize","uSparkleBand","uSparkleArms","uSparkleHue","uStarHue","uShine","uSparkLevel","uSparkSize","uSparkLife","uSparkSpeed","uDispersion","uGrain","uTint","uDeep","uCool","uWarm","uWash"],eP=["uSrc","uTexel","uAxis","uSigma","uThreshold","uKnee"],eN=["uField","uGlow","uTexel","uBloom"],eB=(0,x.forwardRef)(function(e,t){let{className:a}=e,r=(0,x.useRef)(null),i=(0,x.useRef)(null),s=(0,H.I)(),[l,o]=(0,x.useState)(!1);return((0,x.useEffect)(()=>{let e,t=r.current;if(t&&!l&&!s){try{e=function(e,t){let a=e.getContext("webgl2",{alpha:!0,antialias:!1,depth:!1,stencil:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1});if(!a)throw Error("WebGL2 unavailable");let n=eT(a,"#version 300 es\nvoid main() {\n  vec2 p = vec2(gl_VertexID == 2 ? 3.0 : 
1-1.0, gl_VertexID == 1 ? 3.0 : -1.0);\n  gl_Position = vec4(p, 0.0, 1.0);\n}\n",a.VERTEX_SHADER),r=eT(a,eS,a.FRAGMENT_SHADER),i=eT(a,ek,a.FRAGMENT_SHADER),s=eT(a,"#version 300 es\nprecision highp float;\n\nuniform sampler2D uField;\nuniform sampler2D uGlow;\nuniform vec2 uTexel;\nuniform float uBloom;\n\nout vec4 fragColor;\n\nvoid main() {\n  vec4 field = texelFetch(uField, ivec2(gl_FragCoord.xy), 0);\n  vec4 glow = texture(uGlow, gl_FragCoord.xy * uTexel) * uBloom;\n  glow = min(glow, vec4(1.0));\n  // The sharp field over its own halo. Both premultiplied, so this is the plain over operator.\n  fragColor = field + glow * (1.0 - field.a);\n}\n",a.FRAGMENT_SHADER),l=eL(a,n,r),o=eL(a,n,i),u=eL(a,n,s),c=eR(a,l,eE),d=eR(a,o,eP),h=eR(a,u,eN),f=a.createVertexArray();a.bindVertexArray(f);let p=a.createFramebuffer(),m=ej(a),g=ej(a),v=ej(a);a.disable(a.BLEND),a.disable(a.DEPTH_TEST),a.clearColor(0,0,0,0);let x=1,y=0,_=0,w=0,b=0,S=0,k=!1,T=[],L=new Float32Array(40),j=new Float32Array(40),R=performance.now(),E=(e,t,n)=>{a.bindTexture(a.TEXTURE_2D,e),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,t,n,0,a.RGBA,a.UNSIGNED_BYTE,null)},P=(e,t,n)=>{a.bindFramebuffer(a.FRAMEBUFFER,p),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0),a.viewport(0,0,t,n)},N=()=>{let t=Math.max(1,e.clientWidth),a=Math.max(1,e.clientHeight),n=Math.max(1,Math.min(window.devicePixelRatio||1,2)),r=Math.round(t*n),i=Math.round(a*n);(r!==y||i!==_||n!==x)&&(x=n,y=r,_=i,w=Math.max(1,Math.round(y/2)),b=Math.max(1,Math.round(_/2)),e.width=y,e.height=_,E(m,y,_),E(g,w,b),E(v,w,b))},B=n=>{if(S=0,k)return;let r=(t=>{let a=e.clientWidth-72;return Math.max((a+.5*Math.PI*(e.clientHeight-72)/2)/.42+1e3*Math.max(t.fade,t.residualFade),1e3*t.sparkLife)+50})(t());if(!(T=T.filter(e=>n-e.start<r)).length)return void(a.bindFramebuffer(a.FRAMEBUFFER,null),a.viewport(0,0,y,_),a.clear(a.COLOR_BUFFER_BIT));N();let i=t(),s=36*x;P(m,y,_),a.useProgram(l),a.uniform2f(c.uSize,y,_),a.uniform4f(c.uPill,s,s,y-2*s,_-2*s),a.uniform1f(c.uTime,(n-R)/1e3),L.fill(0),j.fill(0),T.forEach((e,t)=>{L[4*t]=e.x*x,L[4*t+1]=e.y*x,L[4*t+2]=(e.start-R)/1e3,L[4*t+3]=1,j[4*t]=e.button.x*x,j[4*t+1]=e.button.y*x,j[4*t+2]=e.button.w*x,j[4*t+3]=e.button.h*x}),a.uniform4fv(c.uBurst,L),a.uniform4fv(c.uButton,j),a.uniform1f(c.uDpr,x),a.uniform1f(c.uSpeed,420*x),a.uniform1f(c.uLead,i.lead*x),a.uniform1f(c.uTrail,i.trail*x),a.uniform1f(c.uFade,i.fade),a.uniform1f(c.uAfterglow,i.afterglow),a.uniform1f(c.uResidual,i.residual),a.uniform1f(c.uResidualFade,i.residualFade),a.uniform1f(c.uMeetLevel,i.meetLevel),a.uniform1f(c.uMeetSigma,i.meetSigma*x),a.uniform1f(c.uShimmer,i.shimmer),a.uniform1f(c.uButtonLevel,i.buttonLevel),a.uniform1f(c.uRimSigma,i.rimSigma*x),a.uniform1f(c.uRimLevel,i.rimLevel),a.uniform1f(c.uBevelOffset,i.bevelOffset*x),a.uniform1f(c.uBevelSigma,i.bevelSigma*x),a.uniform1f(c.uBevelLevel,i.bevelLevel),a.uniform1f(c.uBevelLag,i.bevelLag*x),a.uniform1f(c.uWashLead,i.washLead*x),a.uniform1f(c.uWashTrail,i.washTrail*x),a.uniform1f(c.uWashLevel,i.washLevel),a.uniform1f(c.uRippleLevel,i.rippleLevel),a.uniform1f(c.uRippleSigma,i.rippleSigma*x),a.uniform1f(c.uStarLevel,i.starLevel),a.uniform1f(c.uStarCore,i.starCore*x),a.uniform2f(c.uStarBand,i.starBand[0]*x,i.starBand[1]*x),a.uniform1f(c.uStarFlare,i.starFlare),a.uniform1f(c.uLinger,i.linger),a.uniform1f(c.uSparkleLevel,i.sparkleLevel),a.uniform1f(c.uSparkleCell,i.sparkleCell*x),a.uniform1f(c.uSparkleSize,i.sparkleSize*x),a.uniform2f(c.uSparkleBand,i.sparkleBand[0]*x,i.sparkleBand[1]*x),a.uniform1f(c.uSparkleArms,i.sparkleArms),a.uniform1f(c.uSparkleHue,i.sparkleHue),a.uniform1f(c.uStarHue,i.starHue),a.uniform3fv(c.uShine,i.shine.flat()),a.uniform1f(c.uSparkLevel,i.sparkLevel),a.uniform1f(c.uSparkSize,i.sparkSize*x),a.uniform1f(c.uSparkLife,i.sparkLife),a.uniform1f(c.uSparkSpeed,i.sparkSpeed*x),a.uniform1f(c.uDispersion,i.dispersion),a.uniform1f(c.uGrain,i.grain),a.uniform3fv(c.uTint,i.tint),a.uniform3fv(c.uDeep,i.deep),a.uniform3fv(c.uCool,i.cool),a.uniform3fv(c.uWarm,i.warm),a.uniform3fv(c.uWash,i.wash),a.drawArrays(a.TRIANGLES,0,3),a.useProgram(o),a.uniform1i(d.uSrc,0),a.uniform2f(d.uTexel,1/w,1/b),a.uniform1f(d.uSigma,i.bloomSigma),a.uniform1f(d.uKnee,i.bloomKnee),a.activeTexture(a.TEXTURE0),P(g,w,b),a.bindTexture(a.TEXTURE_2D,m),a.uniform2f(d.uAxis,1,0),a.uniform1f(d.uThreshold,i.bloomThreshold),a.drawArrays(a.TRIANGLES,0,3),P(v,w,b),a.bindTexture(a.TEXTURE_2D,g),a.uniform2f(d.uAxis,0,1),a.uniform1f(d.uThreshold,-1),a.drawArrays(a.TRIANGLES,0,3),a.bindFramebuffer(a.FRAMEBUFFER,null),a.viewport(0,0,y,_),a.useProgram(u),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,m),a.uniform1i(h.uField,0),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,v),a.uniform1i(h.uGlow,1),a.uniform2f(h.uTexel,1/y,1/_),a.uniform1f(h.uBloom,i.bloom),a.drawArrays(a.TRIANGLES,0,3),a.activeTexture(a.TEXTURE0),S=window.requestAnimationFrame(B)};N();let C=new ResizeObserver(N);return C.observe(e),{burst:(t,a,n)=>{if(k)return;let r=performance.now();if(T.length>=10){let t=T.findIndex(t=>r-t.start>(t=>{let a=(e.clientHeight-72)/2,n=e.clientWidth-36-a;return(Math.max(t.x-(36+a),n-t.x)+Math.PI/2*a)/.42})(t));if(-1===t)return;
1T.splice(t,1)}T.push({x:t,y:a,start:r,button:n}),0===S&&(S=window.requestAnimationFrame(B))},teardown:()=>{k=!0,window.cancelAnimationFrame(S),S=0,C.disconnect(),a.deleteFramebuffer(p),a.deleteTexture(m),a.deleteTexture(g),a.deleteTexture(v),a.deleteProgram(l),a.deleteProgram(o),a.deleteProgram(u),a.deleteShader(n),a.deleteShader(r),a.deleteShader(i),a.deleteShader(s),a.deleteVertexArray(f),(0,eb.t)(a,e)}}}(t,()=>eg)}catch(e){console.error("CodeGlass: init failed",e),o(!0);return}return i.current=e,()=>{e.teardown(),i.current=null}}},[l,s]),(0,x.useImperativeHandle)(t,()=>({burst:e=>{let t=r.current,a=i.current;if(!t||!a)return;let n=t.getBoundingClientRect(),s=e.left-n.left,l=e.top-n.top;a.burst(s+e.width/2,l+e.height/2,{x:s,y:l,w:e.width,h:e.height})}}),[]),l||s)?null:(0,n.jsx)("canvas",{ref:r,className:a?"".concat(L().glass," ").concat(a):L().glass,style:{"--glass-overhang":"".concat(36,"px")},"aria-hidden":"true"})}),eC=e=>{let{code:t,copyLabel:a,copiedLabel:r}=e,i=(0,x.useRef)(null),s=(0,x.useRef)(null);return(0,n.jsxs)("div",{className:L().codeBar,children:[(0,n.jsx)(eB,{ref:s}),(0,n.jsx)(ew,{ref:i,code:t,className:L().code}),(0,n.jsx)(ep.i,{code:t,className:L().copyButton,copyLabel:a,copiedLabel:r,onCopy:e=>{var t,a;let n=e.getBoundingClientRect();null==(t=i.current)||t.ripple(n.left+n.width/2),null==(a=s.current)||a.burst(n)}})]})};var eA=a(13175),eF=a(49841);let eI=()=>(0,n.jsxs)("svg",{width:"16",height:"22",viewBox:"0 0 16 22",fill:"none","aria-hidden":!0,children:[(0,n.jsx)("path",{d:"M13.3636 10.6359C13.3832 9.09202 14.1985 7.63115 15.4918 6.82249C14.6759 5.6374 13.3092 4.88602 11.8874 4.84078C10.3708 4.67889 8.90062 5.76366 8.12782 5.76366C7.34007 5.76366 6.15022 4.85685 4.86895 4.88366C3.19887 4.93853 1.64194 5.90417 0.82941 7.38906C-0.917205 10.4644 0.385612 14.9841 2.05872 17.47C2.89582 18.6873 3.87414 20.047 5.15425 19.9988C6.40692 19.9459 6.87477 19.1864 8.38684 19.1864C9.88489 19.1864 10.3238 19.9988 11.6299 19.9681C12.9741 19.9459 13.821 18.7454 14.6287 17.5166C15.2301 16.6493 15.693 15.6907 16 14.6763C14.4204 13.9969 13.3654 12.3802 13.3636 10.6359Z",fill:"currentColor"}),(0,n.jsx)("path",{d:"M10.8966 3.20595C11.6295 2.31119 11.9906 1.16113 11.9031 0C10.7834 0.1196 9.74914 0.663834 9.00635 1.52426C8.27999 2.36494 7.90199 3.49477 7.97345 4.61152C9.09356 4.62325 10.1947 4.09376 10.8966 3.20595Z",fill:"currentColor"})]}),eM=e=>{let{code:t}=e,a=(0,s.c)("ghostPass.metadata");return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.ec,{title:a("title",{code:t}),description:a("description"),image:"/og/ghost-pass.jpg",canonicalPath:"/app/g/".concat(t)}),(0,n.jsxs)(i(),{children:[(0,n.jsx)("meta",{name:"robots",content:"noindex,nofollow"}),(0,n.jsx)(I,{})]})]})},eG=e=>{let{code:t,senderName:a}=e,r=(0,s.c)("ghostPass"),{openNotify:i}=(0,v.M)(),l=function(e,t){try{let a=new URL(e);return a.searchParams.set("deep_link_value","ghost_pass"),a.searchParams.set("deep_link_sub1",t),a.toString()}catch(t){return e}}((0,g.X)(),t),[u,c]=(0,x.useState)(!1),m=e=>(0,n.jsx)("span",{className:L().passWord,children:e});return(0,n.jsxs)("div",{className:L().container,children:[(0,n.jsx)(d.w,{className:L().hero,children:(0,n.jsx)(o.P.div,{initial:{y:200,scale:1.25},animate:{scale:u?1:1.25,y:200*!u},transition:{type:"spring",stiffness:150,damping:22,mass:1.2},children:(0,n.jsx)(D,{onAnimationComplete:()=>c(!0)})})}),u?(0,n.jsxs)(o.P.div,{initial:{opacity:0,y:64},animate:{opacity:1,y:0},transition:eA.hN,children:[(0,n.jsxs)(d.w,{className:L().intro,children:[(0,n.jsxs)("div",{className:L().headingGroup,children:[(0,n.jsx)(p.A,{level:1,className:L().headline,children:(0,n.jsx)(eF.R,{delay:.4,children:a?r.rich("heading.withName",{name:a,pass:m}):r.rich("heading.default",{pass:m})})}),(0,n.jsx)(o.P.div,{initial:{opacity:0,y:32},animate:{opacity:1,y:0},transition:{...eA.hN,delay:1},children:(0,n.jsx)("p",{className:L().subtitle,children:r("subheading")})})]}),(0,n.jsx)(o.P.div,{initial:{opacity:0,y:32},animate:{opacity:1,y:0},transition:{...eA.hN,delay:1.1},children:(0,n.jsx)(eC,{code:t,copyLabel:r("copy"),copiedLabel:r("copied")})}),(0,n.jsx)(o.P.div,{initial:{opacity:0,y:32}
1,animate:{opacity:1,y:0},transition:{...eA.hN,delay:1.2},children:(0,n.jsxs)("div",{className:L().ctas,children:[(0,n.jsxs)(f.$,{href:l,color:"purple",children:[(0,n.jsx)(eI,{}),(0,n.jsx)("span",{children:r("cta")})]}),(0,n.jsx)(f.$,{onClick:i,variant:"soft",color:"purple",children:(0,n.jsx)("span",{children:r("waitlist")})})]})}),(0,n.jsx)(o.P.div,{initial:{opacity:0,y:32},animate:{opacity:1,y:0},transition:{...eA.hN,delay:1.3},children:(0,n.jsx)("p",{className:L().hint,children:r("hint")})})]}),(0,n.jsx)(h.n,{}),(0,n.jsx)(d.w,{className:L().stepsSection,title:r("steps.title"),align:"center",children:(0,n.jsxs)("div",{className:L().steps,children:[(0,n.jsxs)("article",{className:"".concat(L().step," ").concat(L().stepWide),children:[(0,n.jsxs)("div",{className:L().stepText,children:[(0,n.jsx)("h3",{className:L().stepTitle,children:r("steps.download.title")}),(0,n.jsx)("p",{className:L().stepBody,children:r("steps.download.description")})]}),(0,n.jsxs)(f.$,{href:l,color:"purple",className:L().stepButton,children:[(0,n.jsx)(eI,{}),(0,n.jsx)("span",{children:r("cta")})]})]}),(0,n.jsxs)("article",{className:L().step,children:[(0,n.jsx)("h3",{className:L().stepTitle,children:r("steps.enterCode.title")}),(0,n.jsx)("p",{className:L().stepBody,children:r("steps.enterCode.description")}),(0,n.jsx)(ee,{})]}),(0,n.jsxs)("article",{className:L().step,children:[(0,n.jsx)("h3",{className:L().stepTitle,children:r("steps.skipWaitlist.title")}),(0,n.jsx)("p",{className:L().stepBody,children:r("steps.skipWaitlist.description")}),(0,n.jsx)(ef,{})]})]})})]}):(0,n.jsx)("div",{style:{height:"200svh"}})]})};var eW=!0;function eD(e){let{code:t,senderName:a,locale:r,messages:i}=e;return(0,n.jsxs)(l.A,{locale:r,messages:i,children:[(0,n.jsx)(eM,{code:t}),(0,n.jsx)(eG,{code:t,senderName:a}),(0,n.jsx)(u.wi,{showLanguageSelect:!0}),(0,n.jsx)(m.h,{})]})}},63681:(e,t,a)=>{"use strict";a.d(t,{y:()=>r});var n=a(29550);function r(e=.1,{startDelay:t=0,from:a=0,ease:i}={}){return(r,s)=>{let l=e*Math.abs(("number"==typeof a?a:function(e,t){if("first"===e)return 0;{let a=t-1;return"last"===e?a:a/2}}(a,s))-r);if(i){let t=s*e;l=(0,n.K)(i)(l/t)*t}return t+l}}},79985:e=>{e.exports={copyButton:"styles_copyButton__AgA_4",status:"styles_status__CEl_M"}},81876:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(65162);function r(){let[e,t]=(0,n.useState)({width:0,height:0});return(0,n.useEffect)(()=>{let e=()=>{t(e=>({width:window.innerWidth,height:!e.height||window.innerWidth>920?window.innerHeight:e.height}))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),e}},84817:(e,t,a)=>{"use strict";a.d(t,{i:()=>u});var n=a(4930),r=a(65162),i=a(79985),s=a.n(i),l=a(48244),o=a(43106);
1function u(e){let{code:t,className:a="",copyLabel:i="Copy Code",copiedLabel:u="Copied!",onCopy:c}=e,[d,h]=(0,r.useState)(!1),f=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]);let p=async e=>{let a=e.currentTarget;try{await navigator.clipboard.writeText(t),h(!0),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>h(!1),2e3),null==c||c(a)}catch(e){}};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.P.button,{whileTap:{scale:.98},transition:{type:"spring",stiffness:450,damping:20},type:"button",className:"".concat(s().copyButton," ").concat(a),onClick:p,children:(0,n.jsx)(l.g,{children:d?u:i})}),(0,n.jsx)("span",{role:"status","aria-live":"polite",className:s().status,children:d?u:""})]})}},84882:e=>{e.exports={container:"styles_container__nZs1R",hero:"styles_hero__1tOcg",intro:"styles_intro__StVym",stage:"styles_stage__FsvdT",groundShadow:"styles_groundShadow__v8nPl",groundShadowInk:"styles_groundShadowInk__DV76H",ticket:"styles_ticket__1JETl",ticketShadow:"styles_ticketShadow__CjlbE",ticketSpin:"styles_ticketSpin__9tOAM",ticketFace:"styles_ticketFace__dnoDu",ticketFaceBack:"styles_ticketFaceBack___LgCW",burst:"styles_burst__sSr6F",burstPlay:"styles_burstPlay__qhPVr","ticket-burst":"styles_ticket-burst__aNrIF",ticketImg:"styles_ticketImg__MyeAN",depth:"styles_depth__Hcxak","ticket-depth":"styles_ticket-depth__VVuEX",depthSlab:"styles_depthSlab___uFla",depthEnter:"styles_depthEnter__uO820","ticket-depth-enter":"styles_ticket-depth-enter__8hIpX",gloss:"styles_gloss__9jb5a",sweep:"styles_sweep__mLw96","ticket-gloss":"styles_ticket-gloss__vaI4L","ticket-sweep":"styles_ticket-sweep__je5fQ",headingGroup:"styles_headingGroup__iKwAp",headline:"styles_headline__qluG4",passWord:"styles_passWord__GqD33",subtitle:"styles_subtitle__KmOsL",codeBar:"styles_codeBar__ogHEt",glass:"styles_glass__lhPke",code:"styles_code__Yp0Eo",waveRoot:"styles_waveRoot__iwKOr",waveChar:"styles_waveChar__lrRDN",copyButton:"styles_copyButton__tSGKE",ctas:"styles_ctas__zx5qk",hint:"styles_hint__bZxjC",stepsSection:"styles_stepsSection__F3EXa",steps:"styles_steps__kGAM6",step:"styles_step__mDEo8",stepWide:"styles_stepWide__68Zs7",stepButton:"styles_stepButton__UZ52o",stepText:"styles_stepText__fRBbg",stepTitle:"styles_stepTitle__JoFsh",stepBody:"styles_stepBody__IvwXL",redeemFigure:"styles_redeemFigure__UN33C",stepFigure:"styles_stepFigure__lQQpN"}},85419:(e,t,a)=>{"use strict";a.d(t,{E:()=>i});var n=a(74229),r=a(15494);function i(e,...t){let a=e.length;return(0,r.j)(t.filter(n.S),function(){let r="";for(let i=0;i<a;i++){r+=e[i];let a=t[i];a&&(r+=(0,n.S)(a)?a.get():a)}return r})}},86739:(e,t,a)=>{"use strict";function n(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}a.d(t,{_:()=>n})},95356:(e,t,a)=>{"use strict";a.d(t,{z:()=>d});var n=a(74229),r=a(11757),i=a(89893);function s(e){return"number"==typeof e?e:parseFloat(e)}var l=a(65162),o=a(74895),u=a(95810),c=a(26399);function d(e,t={}){return function(e,t={}){let{isStatic:a}=(0,l.useContext)(o.Q),d=()=>(0,n.S)(e)?e.get():e;if(a)return(0,c.G)(d);let h=(0,u.d)(d());return(0,l.useInsertionEffect)(()=>(function(e,t,a={}){let l,o=e.get(),u=null,c=o,d="string"==typeof o?o.replace(/[\d.-]/g,""):void 0,h=()=>{u&&(u.stop(),u=null),e.animation=void 0},f=()=>{(()=>{let t=s(e.get()),n=s(c);if(t===n)return h();let i=u?u.getGeneratorVelocity():e.getVelocity();h(),u=new r.s({keyframes:[t,n],velocity:i,type:"spring",restDelta:.001,restSpeed:.01,...a,onUpdate:l})})(),e.animation=u??void 0,e.events.animationStart?.notify(),u?.then(()=>{e.animation=void 0,e.events.animationComplete?.notify()})};if(e.attach((e,t)=>{c=e,l=e=>{var a,n;return t((a=e,(n=d)?a+n:a))},i.Gt.postRender(f)},h),(0,n.S)(t)){let n=!0===a.skipInitialAnimation,r=t.on("change",t=>{var a,r,i,s;n?(n=!1,e.jump((a=t,(r=d)?a+r:a),!1)):e.set((i=t,(s=d)?i+s:i))}),i=e.on("destroy",r);return()=>{r(),i()}}return h})(h,e,t),[h,JSON.stringify(t)]),h}(e,{type:"spring",...t})}}},e=>{e.O(0,[7862,7833,823,4304,5241,636,6593,8792],()=>e(e.s=21724)),_N_E=e.O()}]);

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.