1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,60770,16742,79939,35014,10737,4467,84697,69148,37525,18375,t=>{"use strict";function e(t,s,i,r=1){return`hsla(${t}, ${s}%, ${i}%, ${r})`}function s({style:t,variant:e,weight:i,size:r,font:n}){return`${null!=t?t:""} ${null!=e?e:""} ${null!=i?i:""} ${r}px ${null!=n?n:"-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif"}`}t.s([],60770),t.s(["hsla",0,e],16742);class i{constructor(t,e){this.config=t,this.text=e,this.textIn=(t,e)=>{let i,{size:r,at:n,kind:o,align:a="center"}=this.config;t.textAlign=a,t.font=s(this.config),i=n[1]+r/2,"fill"===o?t.fillText(this.text,n[0],i):t.strokeText(this.text,n[0],i)}}measure(t){let{size:e,align:i="center"}=this.config;if(t.textAlign=i,!(e<1))return t.font=s(this.config),t.measureText(this.text);{t.font=s(Object.assign(Object.assign({},this.config),{size:100*this.config.size}));let e=t.measureText(this.text);return{actualBoundingBoxAscent:e.actualBoundingBoxAscent/100,actualBoundingBoxDescent:e.actualBoundingBoxDescent/100,actualBoundingBoxLeft:e.actualBoundingBoxLeft/100,actualBoundingBoxRight:e.actualBoundingBoxRight/100,fontBoundingBoxAscent:e.fontBoundingBoxAscent/100,fontBoundingBoxDescent:e.fontBoundingBoxDescent/100,width:e.width/100}}}}t.s(["Rect",()=>m],10737);let r=([t,e],[s,i])=>[t+s,e+i],n=([t,e],[s,i])=>[t-s,e-i],o=([t,e])=>Math.sqrt(t**2+e**2),a=(t,e)=>o(n(t,e)),h=([t,e],s)=>[s*t,s*e],l=([t,e],[s,i])=>t*s+e*i,c={add:r,subtract:n,magnitude:o,rotate:([t,e],s)=>[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)],normalize:t=>{let e=o(t);return[t[0]/e,t[1]/e]},scale:h,polarToCartesian:([t,e],s,i)=>[t+s*Math.cos(i),e+s*Math.sin(i)],pointAlong:(t,e,s=.5)=>r(t,h(n(e,t),s)),dot:l,distance:a};t.s(["v",0,c],79939);let u=t=>{let e=t.length;if(0===e)throw Error("centroid must have at least one point");{if(1===e)return t[0];let s=t[0][0]==t[e-1][0]&&t[0][1]==t[e-1][1]?e-1:e,i=0,r=0;for(let e=0;e<s;e++)i+=t[e][0],r+=t[e][1];return[i/s,r/s]}};t.s(["Path",()=>f],35014);var d=function(t,e){var s={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&0>e.indexOf(i)&&(s[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,i=Object.getOwnPropertySymbols(t);r<i.length;r++)0>e.indexOf(i[r])&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(s[i[r]]=t[i[r]]);return s};class f{constructor(t){this.edges=[],this.addLineTo=t=>(this.edges.push({kind:"line",from:this.currentPoint,to:t}),this.currentPoint=t,this),this.addCurve=t=>{let{to:e}=t,s=d(t,["to"]);return this.addCurveTo(e,s)},this.addCurveTo=(t,e={})=>{let{curveSize:s=1,polarlity:i=1,bulbousness:r=1,curveAngle:n=0,twist:o=0}=e,a=c.subtract(t,this.currentPoint),h=c.magnitude(a),l=c.add(this.currentPoint,c.scale(a,.5)),u=c.normalize(c.rotate(a,-Math.PI/2)),d=c.rotate(u,n),f=c.add(l,c.scale(d,s*i*h*.5)),g=c.normalize(c.rotate(d,-Math.PI/2-o)),m=c.add(f,c.scale(g,r*h/2)),p=c.add(f,c.scale(g,-r*h/2));return this.edges.push({kind:"cubic",control1:m,control2:p,to:t,from:this.currentPoint}),this.currentPoint=t,this},this.traceIn=t=>{let{from:e}=this.edges[0];for(let s of(t.moveTo(...e),this.edges))switch(s.kind){case"line":t.lineTo(...s.to);break;case"cubic":{let{to:e,control1:i,control2:r}=s;t.bezierCurveTo(i[0],i[1],r[0],r[1],e[0],e[1])}}},this.currentPoint=t}static startAt(t){return new f(t)}moved(t){return this.transformed(e=>c.add(e,t))}scaled(t){let e=this.centroid;return this.transformed(s=>c.add(e,c.scale(c.subtract(s,e),t)))}get reversed(){let t=new f(this.currentPoint);return t.edges=this.edges.map(t=>{switch(t.kind){case"line":return{kind:"line",from:t.to,to:t.from};case"cubic":return{kind:"cubic",from:t.to,to:t.from,control1:t.control2,control2:t.control1}}}),t}get centroid(){return u(this.edges.map(t=>t.from))}get segmented(){let t=this.centroid;if(this.edges.length<2)throw Error("Must have at least 2 edges");this.edges.length;let e=[];for(let s of this.edges){let i=new f(s.to);i.edges=[s],i.addLineTo(t),i.addLineTo(s.from),e.push(i)}return e}exploded(t={}){let{magnitude:e=1.2,scale:s=1}=t,i=this.centroid;
1if(this.edges.length<2)throw Error("Must have at least 2 edges");let r=[];for(let t of this.edges){let n=new f(t.to);n.edges=[t],n.addLineTo(i),n.addLineTo(t.from);let o=n.scaled(s),a=o.centroid,h=c.scale(c.subtract(a,i),e-1);r.push(o.moved(h))}return r}transformed(t){let e=new f(this.currentPoint);return e.edges=this.edges.map(e=>{switch(e.kind){case"cubic":return{kind:"cubic",from:t(e.from),to:t(e.to),control1:t(e.control1),control2:t(e.control2)};case"line":return{kind:"line",from:t(e.from),to:t(e.to)}}}),e}transformedLooped(t){let e=this.transformed(t);return e.edges[e.edges.length-1].to=[...e.edges[0].from],e}rotated(t){let e=this.centroid,[s,i]=e;return this.transformed(r=>{let[n,o]=c.subtract(r,e);return[s+Math.cos(t)*n-Math.sin(t)*o,i+Math.sin(t)*n+Math.cos(t)*o]})}subdivide(t){let e=this.edges.length,{n:s,m:i}=t;(i>s||s>=e||i>=e||s<0||i<0)&&Error("Requires two indices, ordered, each less than the total edges in this path");let r=this.edges.slice(i,s),n=[...this.edges.slice(s),...this.edges.slice(0,i)];if(t.curve){let e=new f(r[r.length-1].to),s=new f(n[n.length-1].to);e.edges=r,s.edges=n;let i=t.curve&&t.curve.polarlity||1;return e.addCurveTo(r[0].from,t.curve),s.addCurveTo(n[0].from,Object.assign(Object.assign({},t.curve),{polarlity:-i})),[e,s]}{r.push({to:r[0].from,from:r[r.length-1].to,kind:"line"}),n.push({from:r[0].from,to:r[r.length-1].to,kind:"line"});let t=new f(r[r.length-1].to);t.edges=r;let e=new f(n[n.length-1].to);return e.edges=n,[t,e]}}}class g{constructor(t=[]){this.points=t,this.traceIn=t=>{let e=this.points[0];for(let s of(t.moveTo(...e),this.points.slice(1)))t.lineTo(...s)}}static startAt(t){return new g([t])}static withPoints(t){return new g(t)}addPoint(t){return this.points.push(t),this}close(){return this.points[0]&&this.points.push(this.points[0]),this}chaiken({n:t=1,looped:e=!1}){for(let s=0;s<t;s++)this.points=(e?[]:this.points.slice(0,1)).concat((function(t,e){if(t.length<3)return[];let s=[];e&&s.push([t[t.length-2],t[0],t[1]]);for(let e=0;e<t.length-2;e++)s.push([t[e],t[e+1],t[e+2]]);return e&&s.push([t[t.length-2],t[t.length-1],t[1]]),s})(this.points,e).flatMap(([t,e,s])=>[c.pointAlong(e,t,.25),c.pointAlong(e,s,.25)])).concat(e?[]:this.points.slice(this.points.length-1)).slice(+!!e);return e&&(this.points[0]=this.points[this.points.length-1]),this}moved(t){return this.transformed(e=>c.add(e,t))}scaled(t){let e=this.centroid;return this.transformed(s=>c.add(e,c.scale(c.subtract(s,e),t)))}transformPoints(t){return this.points=this.points.map(t),this}transformLoopedPoints(t){return this.points=this.points.map(t),this.points[this.points.length-1]=[this.points[0][0],this.points[0][1]],this}get reversed(){return new g(this.points.slice().reverse())}get centroid(){return u(this.points)}get segmented(){let t=this.centroid;if(this.points.length<2)throw Error("Must have at least 2 points");let e=this.points.length-1,s=[];for(let i=0;i<e;i++)s.push(g.withPoints([this.points[i],this.points[i+1],t,this.points[i]]));return s}exploded(t={}){let{magnitude:e=1.2,scale:s=1}=t,i=this.centroid;if(this.points.length<2)throw Error("Must have at least 2 points");let r=this.points.length-1,n=[];for(let t=0;t<r;t++){let r=g.withPoints([this.points[t],this.points[t+1],i,this.points[t]]).scaled(s),o=r.centroid,a=c.scale(c.subtract(o,i),e-1);n.push(r.moved(a))}return n}transformed(t){return new g(this.points.map(t))}transformLooped(t){let e=this.points.map(t);return e[e.length-1]=[e[0][0],e[0][1]],new g(e)}withAppended(t){return new g(this.points.concat(t.points))}rotated(t){let e=this.centroid,[s,i]=e;return this.transformed(r=>{let[n,o]=c.subtract(r,e);return[s+Math.cos(t)*n-Math.sin(t)*o,i+Math.sin(t)*n+Math.cos(t)*o]})}subdivide(t){let e=this.points.length,{n:s,m:i}=t;(i>s||s>=e||i>=e||s<0||i<0)&&Error("Requires two indices, ordered, each less than the total points in this path");let r=[...this.points.slice(i,s+1),this.points[i]],n=[...this.points.slice(s-1),...this.points.slice(0,i+1),this.points[s]];return[g.withPoints(r),g.withPoints(n)]}curvify(t){if(this.points.length<2)throw Error("Must have at least 2 points");let e=this.points[0],s=f.startAt(e);for(let e=0;e<this.points.length-1;e++){let i=t(e);i?s.addCurveTo(this.points[e+1],i):s.addLineTo(this.points[e+1])}return s}get edges(){return(function(t){if(t.length<2)return[];let e=[];for(let s=0;s<t.length-1;s++)e.push([t[s],t[s+1]]);return e})(this.points).map(g.withPoints)}}class m{constructor(t){this.traceIn=t=>{t.rect(this.at[0],this.at[1],this.w,this.h)},this.split=t=>{let{orientation:e,split:s}=t;if(s=s||.5,"horizontal"===e)if("number"==typeof s)return[new m({at:this.at,w:this.w/2,h:this.h}),new m({at:[this.at[0]+this.w/2,this.at[1]],w:this.w/2,h:this.h})];else{let t=s.reduce((t,e)=>t+e,0),e=s.map(e=>e/t),i=[],r=0;return e.forEach(t=>{i.push([r,t*this.w]),r+=t*this.w}),i.map(([t,e],s)=>new m({at:[this.at[0]+t,this.at[1]],w:e,h:this.h}))}{if("number"==typeof s)return[new m({at:this.at,w:this.w,h:this.h/2}),new m({at:[this.at[0],this.at[1]+this.h/2],w:this.w,h:this.h/2})];let t=s.reduce((t,e)=>t+e,0),e=s.map(e=>e/t),i=[],r=0;return e.forEach(t=>{i.push([r,t*this.h]),r+=t*this.h}),i.map(([t,e],s)=>new m({at:[this.at[0],this.at[1]+t],w:this.w,h:e}))}};const{at:e,w:s,h:i,align:r="topLeft"}=t;this.at="topLeft"===r?e:c.subtract(e,[s/2,i/2]),this.w=s,this.h=i}get path(){let[t,e]=this.at;return g.withPoints([this.at,[t+this.w,e],[t+this.w,e+this.h],[t,e+this.h]]).close()}}function p(t,e,s,i,r){var n=e+i>>>0,o=s+r>>>0;o>>>0<s>>>0&&(n=n+1|0),t[0]=n,t[1]=o}class b{constructor(t,e,s=0x14057b7e,i=0xf767814f){let r,n;void 0===e&&void 0===t?(n=0xffffffff*Math.random()>>>0,r=0):void 0===e?(n=t,r=0):(n=e,r=t),this.state=new Int32Array([0,0,s>>>0,(1|i)>>>0]),this.next(),p(this.state,this.state[0],this.state[1],r>>>0,n>>>0),this.next()}getState(){return[this.state[0],this.state[1],this.state[2],this.state[3]]}setState(t){this.state[0]=t[0],this.state[1]=t[1],this.state[2]=t[2],this.state[3]=1|t[3]}next(){var t,e,s,i,r,n=this.state[0]>>>0,o=this.state[1]>>>0;t=this.state,e=(o>>>16)*32557>>>0,s=(65535&o)*19605>>>0,i=(65535&o)*32557>>>0,r=(o>>>16)*19605+((s>>>16)+(e>>>16))>>>0,(i=i+(s=s<<16>>>0)>>>0)>>>0<s>>>0&&(r=r+1>>>0),(i=i+(e=e<<16>>>0)>>>0)>>>0<e>>>0&&(r=r+1>>>0),r=(r=r+Math.imul(o,0x5851f42d)>>>0)+Math.imul(n,0x4c957f2d)>>>0,t[0]=r,t[1]=i,p(this.state,this.state[0],this.state[1],this.state[2],this.state[3]);var a=n>>>18,h=(o>>>18|n<<14)>>>0;a=(a^n)>>>0;var l=((h=(h^o)>>>0)>>>27|a<<5)>>>0,c=n>>>27;return(l>>>c|l<<((-c>>>0&31)>>>0))>>>0}integer(t){if(!t)return this.next();if(((t>>>=0)&t-1)==0)return this.next()&t-1;var e=0,s=(-t>>>0)%t>>>0;for(e=this.next();e<s;e=this.next());return e%t}number(){return((0x3ffffff&this.next())*0x8000000+(0x7ffffff&this.next())*1)/0x20000000000000}}class w{constructor(t,e,s,i){this.width=t,this.height=e,this.minDist=s,this.k=i,this.cellSize=this.minDist/Math.sqrt(2),this.grid=Array.from({length:Math.ceil(this.height/this.cellSize)},()=>Array.from({length:Math.ceil(this.width/this.cellSize)},()=>null)),this.points=[],this.spawnPoints=[]}generatePoints(t){let e=[t()*this.width,t()*this.height];for(this.points.push(e),this.spawnPoints.push(e),this.grid[Math.floor(e[1]/this.cellSize)][Math.floor(e[0]/this.cellSize)]=e;this.spawnPoints.length>0;){let e=Math.floor(t()*this.spawnPoints.length),s=this.spawnPoints[e],i=!1;for(let e=0;e<this.k;e++){let e=2*t()*Math.PI,r=[Math.cos(e),Math.sin(e)],n=t()*this.minDist+this.minDist,o=[s[0]+r[0]*n,s[1]+r[1]*n];if(this.isValid(o)){this.points.push(o),this.spawnPoints.push(o),this.grid[Math.floor(o[1]/this.cellSize)][Math.floor(o[0]/this.cellSize)]=o,i=!0;break}}i||this.spawnPoints.splice(e,1)}return this.points}isValid(t){if(t[0]<0||t[0]>=this.width||t[1]<0||t[1]>=this.height)return!1;let e=Math.floor(t[0]/this.cellSize),s=Math.floor(t[1]/this.cellSize),i=Math.max(e-2,0),r=Math.max(s-2,0),n=Math.min(e+2,this.grid[0].length-1),o=Math.min(s+2,this.grid.length-1);for(let e=r;e<=o;e++)for(let s=i;s<=n;s++){let i=this.grid[e][s];if(i&&a(i,t)<this.minDist)return!1}return!0}}class v{constructor(t,{width:e,height:s},i,r){this.ctx=t,this.forMargin=(t,e)=>this.forTiling({n:1,margin:t},e),this.forTiling=(t,e)=>{let s=0,{n:i,type:r="proportionate",margin:n=0,order:o="columnFirst"}=t,a="square"===r?Math.floor(i*(1/this.aspectRatio)):i,h=(1-2*n)/i,l="square"===r?h*a:1/this.aspectRatio-2*n,c=l/a,u=(1/this.aspectRatio-l)/2;if("columnFirst"===o)for(let t=0;t<i;t++)for(let i=0;i<a;i++)e([n+t*h,u+i*c],[h,c],[n+t*h+h/2,u+i*c+c/2],s),s++;else for(let t=0;t<a;t++)for(let r=0;r<i;r++)e([n+r*h,u+t*c],[h,c],[n+r*h+h/2,u+t*c+c/2],s),s++},this.forHorizontal=(t,e)=>{let{n:s,margin:i=0}=t,r=1-i,n=1/this.aspectRatio-2*i,o=(r-i)/s;for(let t=0;t<s;t++)e([i+t*o,i],[o,n],[i+t*o+o/2,i+n/2],t)},this.forVertical=(t,e)=>{let{n:s,margin:i=0}=t,r=1/this.aspectRatio-i,n=1-2*i,o=(r-i)/s;for(let t=0;t<s;t++)e([i,i+t*o],[n,o],[i+n/2,i+t*o+o/2],t)},this.forGrid=(t,e)=>{let s=0,{minX:i,maxX:r,minY:n,maxY:o,order:a="columnFirst"}=t;if("columnFirst"===a)for(let t=i;t<=r;t++)for(let i=n;i<=o;i++)e([t,i],s),s++;else for(let t=n;t<=o;t++)for(let n=i;n<=r;n++)e([n,t],s),s++},this.build=(t,e,s)=>{let i=[];return t(e,(...t)=>{i.push(s(...t))}),i},this.aroundCircle=(t,e)=>{let{n:s,at:[i,r]=[.5,.5/this.aspectRatio],r:n=.25}=t,o=2*Math.PI/s,a=-(.5*Math.PI);for(let t=0;t<s;t++)e([i+n*Math.cos(a+o),r+n*Math.sin(a+o)],t),a+=o},this.forPoissonDiskPoints=(t,e)=>{let{minDist:s,attempts:i=30}=t;(function({width:t,height:e,minDist:s,rng:i,k:r}){let n=new w(t,e,s,r);return n.generatePoints(i),n.points})({width:1,height:this.meta.bottom,minDist:s,rng:()=>this.random(),k:i}
1).forEach(e)},this.inDrawing=t=>{let{left:e,right:s,top:i,bottom:r}=this.meta;return t[0]>e&&t[0]<s&&t[1]>i&&t[1]<r},this.withClipping=(t,e)=>{this.pushState(),this.ctx.beginPath(),t.traceIn(this.ctx),this.ctx.clip(),e(),this.popState()},this.withContext=t=>{this.pushState(),t(),this.popState()},this.withRotation=(t,e)=>{this.pushState(),this.ctx.rotate(t),e(),this.popState()},this.withScale=(t,e)=>{this.pushState(),this.ctx.scale(t[0],t[1]),e(),this.popState()},this.withTranslation=(t,e)=>{this.pushState(),this.ctx.translate(t[0],t[1]),e(),this.popState()},this.withTransform=(t,e)=>{this.pushState();let{hScale:s,hSkew:i,vSkew:r,vScale:n,dX:o,dY:a}=t;this.ctx.transform(s,i,r,n,o,a),e(),this.popState()},this.withBlendMode=(t,e)=>{this.pushState(),this.ctx.globalCompositeOperation=t,e(),this.popState()},this.random=()=>this.rng.number(),this.uniformRandomInt=t=>{let{to:e,from:s=0,inclusive:i=!0}=t;return s+Math.floor(this.random()*(e-s+ +!!i))},this.uniformGridPoint=({minX:t,maxX:e,minY:s,maxY:i})=>[this.uniformRandomInt({from:t,to:e}),this.uniformRandomInt({from:s,to:i})],this.randomPolarity=()=>this.rng.number()>.5?1:-1,this.sample=t=>t[Math.floor(this.rng.number()*t.length)],this.samples=(t,e)=>{let s=[];for(let i=0;i<t;i++)s.push(this.sample(e));return s},this.shuffle=t=>{let e,s=t.length,i=0;for(;0!==s;)i=Math.floor(this.rng.number()*s),s-=1,e=t[s],t[s]=t[i],t[i]=e;return t},this.perturb=t=>{let{at:[e,s],magnitude:i=.1}=t;return[e+i*(this.rng.number()-.5),s+i*(this.rng.number()-.5)]},this.gaussian=t=>{let{mean:e=0,sd:s=1}=t||{};return e+Math.sqrt(-2*Math.log(this.rng.number()))*Math.cos(2*Math.PI*this.rng.number())*s},this.poisson=t=>{let e=Math.exp(-t),s=this.rng.number(),i=0;for(;s>=e;)i++,s*=this.rng.number();return i},this.oscillate=t=>{let{from:e=0,to:s=1,rate:i=1}=t||{};return e+(s-e)*(1+Math.cos(this.t*i))/2},t.resetTransform(),this.aspectRatio=e/s,this.originalScale=e,t.scale(e,e),t.lineWidth=.01,t.lineJoin="round",t.strokeStyle="black",t.fillStyle="gray",this.lineStyle={cap:"round"},this.meta={top:0,bottom:1/this.aspectRatio,right:1,left:0,aspectRatio:this.aspectRatio,center:[.5,.5/this.aspectRatio]},this.rng=new b(i),this.t=r||0}updateTime(t){this.t=t}updateSize({width:t,height:e}){this.ctx.resetTransform(),this.aspectRatio=t/e,this.originalScale=t,this.ctx.scale(t,t),this.meta={top:0,bottom:1/this.aspectRatio,right:1,left:0,aspectRatio:this.aspectRatio,center:[.5,.5/this.aspectRatio]}}resetRandomNumberGenerator(t){this.rng=new b(t)}set lineWidth(t){this.ctx.lineWidth=t}set lineStyle({cap:t="round",join:e="round"}){this.ctx.lineCap=t,this.ctx.lineJoin=e}set dash({pattern:t=[.05,.05],offset:e=0}){this.ctx.setLineDash(t),this.ctx.lineDashOffset=e}clearShadow(){this.ctx.shadowBlur=0,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0}set shadow({size:t=.01,color:s={h:0,s:0,l:0,a:.5},dX:i=0,dY:r=.01}){let{h:n,s:o,l:a,a:h}=s;this.ctx.shadowBlur=t*this.originalScale,this.ctx.shadowColor=e(n,o,a,h),this.ctx.shadowOffsetX=i*this.originalScale,this.ctx.shadowOffsetY=r*this.originalScale}background(t,s,i,r=1){this.pushState(),this.ctx.fillStyle=e(t,s,i,r);let{right:n,bottom:o}=this.meta;this.fill(new m({at:[0,0],w:n,h:o})),this.popState()}backgroundFromSpec({h:t,s:e,l:s,a:i}){this.background(t,e,s,i)}backgroundGradient(t){this.pushState(),this.ctx.fillStyle=t.gradient(this.ctx);let{right:e,bottom:s}=this.meta;this.fill(new m({at:[0,0],w:e,h:s})),this.popState()}setStrokeColor(t,s,i,r=1){this.ctx.strokeStyle=e(t,s,i,r)}setStrokeColorFromSpec({h:t,s:e,l:s,a:i}){this.setStrokeColor(t,e,s,i)}setFillColor(t,s,i,r=1){this.ctx.fillStyle=e(t,s,i,r)}setFillColorFromSpec({h:t,s:e,l:s,a:i}){this.setFillColor(t,e,s,i)}setStrokeGradient(t){this.ctx.strokeStyle=t.gradient(this.ctx)}setFillGradient(t){this.ctx.fillStyle=t.gradient(this.ctx)}draw(t){this.ctx.beginPath(),t.traceIn(this.ctx),this.ctx.stroke()}fill(t){this.ctx.beginPath(),t.traceIn(this.ctx),this.ctx.fill()}drawText(t,e){new i(Object.assign(Object.assign({},t),{kind:"stroke"}),e).textIn(this.ctx,this)}fillText(t,e){new i(Object.assign(Object.assign({},t),{kind:"fill"}),e).textIn(this.ctx,this)}measureText(t,e){return new i(Object.assign(Object.assign({},t),{kind:"stroke",at:[0,0]}),e).measure(this.ctx)}drawImage({image:t,at:e=[0,0],w:s,h:i}){this.ctx.drawImage(t,e[0],e[1],null!=s?s:1,null!=i?i:this.meta.bottom)}withRandomOrder(t,e,s){let i=[];for(let r of(t(e,(...t)=>{i.push(t)}),this.shuffle(i),i))s(...r)}doProportion(t,e){this.rng.number()<t&&e()}times(t,e){for(let s=0;s<t;s++)e(s)}downFrom(t,e){for(let s=t;s>0;s--)e(s)}proportionately(t){let e=t.map(t=>t[0]).reduce((t,e)=>t+e,0);
1if(e<=0)throw Error("Must be positive total");let s=this.rng.number()*e;for(let e=0;e<t.length;e++)if(t[e][0]>s)return t[e][1]();else s-=t[e][0];return t[0][1]()}randomPoint(){return[this.rng.number(),this.rng.number()/this.aspectRatio]}randomAngle(){return this.rng.number()*Math.PI*2}range(t,e){let{from:s=0,to:i=1,n:r,inclusive:n=!0}=t,o=(i-s)/r,a=n?r:r-1;for(let t=0;t<=a;t++)e(t*o+s)}pushState(){this.ctx.save()}popState(){this.ctx.restore()}}function x(t){return t*t*t*(t*(6*t-15)+10)}let M=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]];var y=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];let T=Array(512),k=Array(512);var P=0;(P=Math.floor(0))<256&&(P|=P<<8);for(var S,R=0;R<256;R++)S=1&R?y[R]^255&P:y[R]^P>>8&255,T[R]=T[R+256]=S,k[R]=k[R+256]=M[S%12];t.s(["perlin2",0,function(t,e){let s=Math.floor(t),i=Math.floor(e),r=t-s,n=e-i;var o,a,h,c=l(k[(s&=255)+T[i&=255]],[r,n]),u=l(k[s+T[i+1]],[r,n-1]),d=l(k[s+1+T[i]],[r-1,n]),f=l(k[s+1+T[i+1]],[r-1,n-1]);let g=x(r);return o=(1-g)*c+g*d,a=(1-g)*u+g*f,(1-(h=x(n)))*o+h*a}],4467),t.s(["RegularPolygon",()=>A],84697);class A{constructor(t){if(this.config=t,this.traceIn=t=>{let{at:[e,s],n:i,r,a:n=0}=this.config;n-=Math.PI/2;let o=2*Math.PI/i;t.moveTo(e+r*Math.cos(n),s+r*Math.sin(n));for(let a=1;a<i;a++)t.lineTo(e+r*Math.cos(n+a*o),s+r*Math.sin(n+a*o));t.lineTo(e+r*Math.cos(n),s+r*Math.sin(n))},this.config.n<3)throw Error(`Must have at least 3 sides, n was set to ${this.config.n}`)}get path(){let t;return t=g.withPoints([]),this.traceIn({moveTo(e,s){t.addPoint([e,s])},lineTo(e,s){t.addPoint([e,s])}}),t}}t.s(["Line",()=>I],69148);class I{constructor(t,e){this.a=t,this.b=e,this.traceIn=t=>{t.moveTo(...this.a),t.lineTo(...this.b)}}moved(t){return new I(c.add(this.a,t),c.add(this.b,t))}get path(){return new g([this.a,this.b])}}function C({w:t=2048,h:e=2048,sketch:s,seed:i=0,time:r=0}){let n=new OffscreenCanvas(t,e),o=n.getContext("2d");if(!o)throw Error("Unable to create OffscreenCanvas context");return s(new v(o,{width:t,height:e},i,r)),n.transferToImageBitmap()}t.s(["render",()=>C],18375),t.s(["SCanvas",()=>v],37525)},54724,22527,t=>{"use strict";class e{constructor(t){this.config=t,this.traceIn=t=>{let{at:e,w:s,h:i,align:r="center"}=this.config,[n,o]="center"===r?e:[e[0]+s/2,e[1]+i/2],a=4/3*Math.tan(Math.PI/8);t.moveTo(n,o-i/2),t.bezierCurveTo(n+a*s/2,o-i/2,n+s/2,o-a*i/2,n+s/2,o),t.bezierCurveTo(n+s/2,o+a*i/2,n+a*s/2,o+i/2,n,o+i/2),t.bezierCurveTo(n-a*s/2,o+i/2,n-s/2,o+a*i/2,n-s/2,o),t.bezierCurveTo(n-s/2,o-a*i/2,n-a*s/2,o-i/2,n,o-i/2)}}}t.s(["Circle",0,class extends e{constructor(t){super({at:t.at,w:2*t.r,h:2*t.r,align:t.align})}}],54724);var s=t.i(23157),i=t.i(13352);t.i(60770);var r=t.i(37525);t.s(["FixedSizeCanvas",0,function({width:t,height:e,seed:n=0,sketch:o,dependencies:a,pixelDensity:h=2,style:l}){let c=(0,i.useRef)(null);return(0,i.useEffect)(()=>{if(!c.current)return;let s=c.current.getContext("2d");s&&o(new r.SCanvas(s,{width:t*h,height:e*h},n,0),a)},[n]),(0,s.jsx)("canvas",{width:t*h,height:e*h,ref:c,style:l??{width:t,height:e}})}],22527)},1524,t=>{"use strict";var e=t.i(23157);t.i(60770);var s=t.i(54724),i=t.i(69148),r=t.i(16742);class n{constructor(t){this.config=t}gradient(t){let{from:[e,s],to:[i,n],colors:o}=this.config,a=t.createLinearGradient(e,s,i,n);for(let[t,{h:e,s,l:i,a:n}]of o)a.addColorStop(t,(0,r.hsla)(e,s,i,n));return a}}var o=t.i(35014),a=t.i(10737),h=t.i(84697);function l(t,e){return function({a:t,b:e,c:s,d:i,steps:r}){let n=[];for(let u=0;u<r;u++){var o,a,h,l,c;n.push((o=u/r,a=t,h=e,l=s,c=i,function(t,e,s){let i=Math.max(t,e,s),r=Math.min(t,e,s),n=(i+r)/2,o=0,a=0;if(i!==r){let h=i-r;switch(a=n>.5?h/(2-i-r):h/(i+r),i){case t:o=(e-s)/h+6*(e<s);break;case e:o=(s-t)/h+2;break;case s:o=(t-e)/h+4}o/=6}return[360*o,100*a,100*n]}(a[0]+h[0]*Math.cos(2*Math.PI*(l[0]*o+c[0])),a[1]+h[1]*Math.cos(2*Math.PI*(l[1]*o+c[1])),a[2]+h[2]*Math.cos(2*Math.PI*(l[2]*o+c[2])))))}return n}(Object.assign(Object.assign({},c[t]),{steps:e}))}let c={rainbow:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[0,.33,.67]},warmth:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[0,.1,.2]},rusty:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[.3,.2,.2]},autumnal:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,.5],d:[.8,.9,.3]},natural:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,.7,.4],d:[0,.15,.2]}
1,neon:{a:[.5,.5,.5],b:[.5,.5,.5],c:[2,1,0],d:[.5,.2,.25]},subtle:{a:[.8,.5,.4],b:[.2,.4,.2],c:[2,1,1],d:[0,.25,.25]}};var u=t.i(4467),d=t.i(79939),f=t.i(22527);let g=[function(t){let e=l("natural",12);t.background(350,30,80),new h.RegularPolygon({at:t.meta.center,r:.35,n:6}).path.exploded().flatMap(t=>t.exploded()).flatMap(t=>t.exploded({scale:1.2})).forEach((s,i)=>{t.setFillColor(...e[i%e.length]),t.fill(s)})},function(t){t.background(210,70,10),t.withClipping(new s.Circle({at:t.meta.center,r:.4}),()=>{t.backgroundGradient(new n({from:[.5,0],to:[.5,t.meta.bottom],colors:[[0,{h:210,s:80,l:40}],[1,{h:190,s:60,l:60}]]})),t.forPoissonDiskPoints({minDist:.05},e=>{(0,u.perlin2)(...d.v.scale(e,4))>.05&&(t.setFillColor(210,10,90,.4),t.fill(new h.RegularPolygon({at:e,r:.06,n:6,a:t.randomAngle()})))})})},function(t){let e=l("autumnal",20);t.background(40,70,80),t.forPoissonDiskPoints({minDist:.05},i=>{let r=(0,u.perlin2)(...i);t.setFillColor(...e[Math.floor((1+r)*e.length/2)]),t.fill(new s.Circle({at:i,r:.02}))})},function(t){let{bottom:e,right:s}=t.meta;t.backgroundGradient(new n({from:[0,0],to:[0,e],colors:[[0,{h:215,s:80,l:60}],[1,{h:215,s:80,l:20}]]})),t.times(40,()=>{t.setFillColor(t.uniformRandomInt({from:180,to:225}),80,40,.3),t.fill(new a.Rect({at:[0,t.gaussian({mean:.6*e,sd:.15*e})],w:s,h:.1*e}))}),t.lineWidth=.005,t.times(20,()=>{t.setStrokeColor(0,0,100,.2);let r=t.gaussian({mean:.8*e,sd:.1*e});t.draw(new i.Line([0,r],[s,r]))})},function(t){t.backgroundFromSpec({h:30,s:50,l:90});let e=l("rusty",22),{bottom:s,right:i,center:[r,n]}=t.meta,a=[r-i/3.5,n-s/3.5],h=[r+i/3.5,n+s/3.5];t.lineWidth=.02,t.range({from:-10,to:10,n:20},s=>{t.setStrokeColor(...e[(s+10)%20]),t.draw(o.Path.startAt(a).addCurveTo(h,{curveSize:s/10,curveAngle:t.gaussian(),bulbousness:1+Math.cos(t.t/2+s)}))})}];t.s(["IndexPageCard",0,function({imageIndex:t,size:s}){let i=g[t%g.length];return(0,e.jsx)(f.FixedSizeCanvas,{sketch:i,width:s??240,height:s??240,style:{width:"100%",height:"100%"}})}],1524)},96913,t=>{"use strict";var e=t.i(23157),s=t.i(13352),i=t.i(69831);t.s(["SceneRelight",0,function({options:t}){let[r,n]=(0,s.useState)(t[0].name);return(0,e.jsxs)("div",{className:"my-6",children:[(0,e.jsx)("div",{className:"flex flex-wrap justify-center gap-2",children:t.map(t=>(0,e.jsx)("button",{type:"button",onClick:()=>n(t.name),"aria-pressed":t.name===r,className:t.name===r?"rounded-md bg-teal-500 px-3 py-1 text-sm font-medium text-white":"rounded-md bg-zinc-100 px-3 py-1 text-sm font-medium text-zinc-700 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700",children:t.name},t.name))}),(0,e.jsx)("div",{className:"mt-4 flex justify-center",children:t.map(t=>(0,e.jsx)(i.default,{unoptimized:!0,src:t.render.src,alt:t.render.alt,hidden:t.name!==r,className:"w-full max-w-[42rem] rounded-lg shadow-lg"},t.name))})]})}])},3185,t=>{"use strict";var e=t.i(23157);t.i(60770);var s=t.i(54724);let i={palette:`vec3 palette( in float t, in vec3 a, in vec3 b, in vec3 c, in vec3 d ) 2{ 3 return a + b*cos( 6.28318*(c*t+d) ); 4}`,rand:`float rand(vec2 pos){ 5 return fract(sin(dot(pos, vec2(12.9898, 78.233))) * 43758.5453); 6}`},r=` 7attribute vec2 a_position; 8 9void main() { 10 gl_Position = vec4(a_position, 0, 1); 11} 12`;function n({w:t=2048,h:e=2048,shader:s,images:o={},includes:a}){var h,l,c;let u=new OffscreenCanvas(t,e),d=u.getContext("webgl",{preserveDrawingBuffer:!0});if(!d)throw Error("Unable to create OffscreenCanvas context");d.viewport(0,0,d.drawingBufferWidth,d.drawingBufferHeight),d.clearColor(1,0,0,1),d.clear(d.COLOR_BUFFER_BIT);let f=d.createBuffer();d.bindBuffer(d.ARRAY_BUFFER,f),d.bufferData(d.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),d.STATIC_DRAW);let g=d.createShader(d.VERTEX_SHADER);d.shaderSource(g,r),d.compileShader(g);let m=d.createShader(d.FRAGMENT_SHADER),p=(h=Object.keys(o),`precision highp float; 13precision highp sampler2D; 14 15uniform vec2 u_resolution; 16 17${null!=(l=h.map(t=>`uniform sampler2D ${t};`).join("\n"))?l:""} 18 19${null!=(c=null==a?void 0:a.map(t=>i[t]).join("\n\n"))?c:""} 20 21${s} 22 `);d.shaderSource(m,p),d.compileShader(m);let b=d.createProgram();d.attachShader(b,g),d.attachShader(b,m),d.linkProgram(b),d.useProgram(b);let w=d.getAttribLocation(b,"a_position");d.enableVertexAttribArray(w),d.vertexAttribPointer(w,2,d.FLOAT,!1,0,0);let v=d.getShaderInfoLog(m);if(v)throw v;let x=d.getUniformLocation(b,"u_resolution");return d.uniform2f(x,d.drawingBufferWidth,d.drawingBufferHeight),Object.entries(o).map(([t,e],s)=>{let i=d.createTexture();d.activeTexture(d.TEXTURE0+s),d.bindTexture(d.TEXTURE_2D,i),d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,e),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR);let r=d.getUniformLocation(b,t);d.uniform1i(r,s)}),d.drawArrays(d.TRIANGLES,0,6),u.transferToImageBitmap()}var o=t.i(18375),a=t.i(22527);let h=[t=>{let e=n({shader:` 23 void main() { 24 vec2 r_pos = gl_FragCoord.xy / u_resolution; 25 gl_FragColor = vec4(r_pos.x, r_pos.y, 0.4, 1.0); 26 } 27 `}),i=(0,o.render)({w:1024,h:1024,sketch:t=>{t.forPoissonDiskPoints({minDist:.05},(e,i)=>{t.setFillColor(i%360,80,70,.7),t.fill(new s.Circle({at:e,r:.025}))})}});t.background(20,40,40),t.withClipping(new s.Circle({at:t.meta.center,r:.4}),()=>{t.drawImage({image:e})}),t.withBlendMode("overlay",()=>{t.drawImage({image:i})})},t=>{let e=n({shader:` 28 void main() { 29 vec2 r_pos = gl_FragCoord.xy / u_resolution; 30 31 vec2 r_pos_r = r_pos - vec2(0.01, 0.0); 32 vec2 r_pos_g = r_pos - vec2(0.0, 0.01); 33 vec2 r_pos_b = r_pos - vec2(0.01, 0.01); 34 35 float r = texture2D(solImage, r_pos_r).r; 36 float g = texture2D(solImage, r_pos_g).g; 37 float b = texture2D(solImage, r_pos_b).b; 38 39 gl_FragColor = vec4(r, g, b, 1.0); 40 } 41 `,images:{solImage:(0,o.render)({w:1024,h:1024,sketch:t=>{t.background(0,0,0),t.setFillColor(0,0,100),t.forPoissonDiskPoints({minDist:.05},e=>{t.fill(new s.Circle({at:e,r:.01}))})}})}});t.background(30,30,80),t.drawImage({image:e})}];t.s(["SolandraStacked",0,function({size:t,index:s=0}){return(0,e.jsx)(a.FixedSizeCanvas,{sketch:h[s],width:t??240,height:t??240,style:{width:"100%",height:"100%"}})}],3185)},8944,65016,34826,t=>{"use strict";t.s([],8944),t.s(["SolandraSvg",()=>b],34826);let e=([t,e],[s,i])=>[t+s,e+i],s=([t,e],[s,i])=>[t-s,e-i],i=([t,e])=>Math.sqrt(t**2+e**2),r=([t,e],s)=>[s*t,s*e],n={add:e,subtract:s,magnitude:i,rotate:([t,e],s)=>[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)],normalise:t=>{let e=i(t);return[t[0]/e,t[1]/e]},scale:r,polarToCartesian:([t,e],s,i)=>[t+s*Math.cos(i),e+s*Math.sin(i)],pointAlong:(t,i,n=.5)=>e(t,r(s(i,t),n)),dot:([t,e],[s,i])=>t*s+e*i,distance:(t,e)=>i(s(t,e))};function o(t,e){return Array.from({length:t},t=>e())}function a(t,e){return o(e,()=>" ").join("")+t}t.s(["v",0,n],65016);class h{constructor(t){this.attributes=t,this.segments=[]}moveTo(t){return this.segments.push({kind:"move",to:t}),this}lineTo(t){return this.segments.push({kind:"line",to:t}),this}curveTo(t,e={}){let{curveSize:s=1,polarlity:i=1,bulbousness:r=1,curveAngle:n=0,twist:o=0}=e;return this.segments.push({kind:"cubicCurve",to:t,config:{curveSize:s,polarlity:i,bulbousness:r,curveAngle:n,twist:o}}),this}arcTo(t,e={}){try{let s=this.segments[this.segments.length-1].to,{rX:i=Math.abs(t[0]-s[0]),rY:r=Math.abs(t[1]-s[1]),largeArc:n=!1,xAxisRotation:o=0}=e;return this.segments.push({kind:"arc",to:t,config:{rX:i,rY:r,xAxisRotation:o,largeArc:n}}),this}catch(t){return console.error("Probably no previous point",t),this}}rect(t,e,s,i="center"){let r="topLeft"===i?t:n.subtract(t,[e/2,s/2]);return this.segments.push({kind:"move",to:r}),this.segments.push({kind:"line",to:n.add(r,[e,0])}),this.segments.push({kind:"line",to:n.add(r,[e,s])}),this.segments.push({kind:"line",to:n.add(r,[0,s])}),this.segments.push({kind:"line",to:r}),this}regularPolygon(t,e,s,i=0,r="center"){let o="topLeft"===r?n.add(t,[s,s]):t,a=[o[0]+s*Math.cos(i),o[1]+s*Math.sin(i)];this.segments.push({kind:"move",to:a});for(let t=1;t<=e;t++){let r=t*Math.PI*2/e+i;this.segments.push({kind:"line",to:[o[0]+s*Math.cos(r),o[1]+s*Math.sin(r)]})}return this}ellipse(t,e,s,i="center"){let[r,n]="center"===i?t:[t[0]+e/2,t[1]+s/2],o=e/2,a=s/2;this.segments.push({kind:"move",to:[r,n-s/2]});for(let t=0;t<4;t++)this.arcTo([r+o*Math.cos(Math.PI*(t+1)),n+a*Math.sin(Math.PI*(t+1))],{rX:o,rY:a});return this}close(){return this.segments.push({kind:"close"}),this}chaiken(t=2){for(let e=0;e<t;e++){let t=[];t.push(this.segments[0]);for(let e=1;e<this.segments.length-1;e++){let s=this.segments[e-1],i=this.segments[e],r=this.segments[e+1];"line"===i.kind&&"line"===r.kind&&s.to?(t.push({kind:"line",to:n.pointAlong(s.to,i.to,.75)}),t.push({kind:"line",to:n.pointAlong(i.to,r.to,.25)})):t.push(i)}t.push(this.segments[this.segments.length-1]),this.segments=t}return this}map(t){return this.segments=this.segments.map(t),this}clone(t){let e=new h(t||this.attributes.clone());return e.segments=this.segments.map(t=>JSON.parse(JSON.stringify(t))),e}
41string(t){if(0===this.segments.length)throw Error("Must add to path");if("move"!==this.segments[0].kind)throw Error("Must start path with move to initial position");let e=this.segments.map((t,e)=>(function(t,e){switch(t.kind){case"move":return`M ${t.to.join(" ")}`;case"close":return"Z";case"line":return`L ${t.to.join(" ")}`;case"cubicCurve":return function({from:t,to:e,curveSize:s,curveAngle:i,bulbousness:r,polarlity:o,twist:a}){let h=n.subtract(e,t),l=n.magnitude(h),c=n.add(t,n.scale(h,.5)),u=n.normalise(n.rotate(h,-Math.PI/2)),d=n.rotate(u,i),f=n.add(c,n.scale(d,s*o*l*.5)),g=n.normalise(n.rotate(d,-Math.PI/2-a)),m=n.add(f,n.scale(g,r*l/2)),p=n.add(f,n.scale(g,-r*l/2));return`C ${m.join(" ")}, ${p.join(" ")}, ${e.join(" ")}`}(Object.assign({from:e,to:t.to},t.config));case"arc":let{config:{rX:s,rY:i,largeArc:r,xAxisRotation:o},to:a}=t;return`A ${s} ${i} ${o} ${+!!r} ${+!!r} ${a[0]} ${a[1]}`}})(t,e>0?this.segments[e-1].to:void 0)).join(" ");return a(`<path${this.attributes.string} d="${e}" />`,t)}configureAttributes(t){t(this.attributes)}}class l{constructor(){this.transforms=[]}translate(t,e){return Array.isArray(t)?this.transforms.push(`translate(${t[0]}, ${t[1]})`):this.transforms.push(`translate(${t}, ${e})`),this}scale(t,e){return Array.isArray(t)?this.transforms.push(`scale(${t[0]}, ${t[1]})`):this.transforms.push(`scale(${t}, ${void 0===e?t:e})`),this}rotate(t,e,s){let i="";return void 0!==e&&void 0!==s&&(i=`, ${e}, ${s}`),this.transforms.push(`rotate(${180*t/Math.PI}${i})`),this}skewX(t){return this.transforms.push(`skewX(${t})`),this}skewY(t){return this.transforms.push(`skewY(${t})`),this}get string(){return this.transforms.join(" ")}static of({translate:t,scale:e,rotate:s,skewX:i,skewY:r}){let n=new l;return void 0!==t&&n.translate(t),void 0!==e&&("object"==typeof e?n.scale(...e):n.scale(e)),void 0!==s&&("object"==typeof s?n.rotate(s[0],...s[1]):n.rotate(s)),void 0!==i&&n.skewX(i),void 0!==r&&n.skewY(r),n}}function c(t,e,s){return(s<0&&(s+=1),s>1&&(s-=1),s<1/6)?t+(e-t)*6*s:s<.5?e:s<2/3?t+(e-t)*(2/3-s)*6:t}function u(t){let e;return(e=Math.round(255*t).toString(16).toUpperCase().toString()).length<2?o(2-e.length,()=>"0").join()+e:e}function d(t,e,s){let i,r,n;if(0===e)i=r=n=s;else{var o=s<.5?s*(1+e):s+e-s*e,a=2*s-o;i=c(a,o,t+1/3),r=c(a,o,t),n=c(a,o,t-1/3)}return`#${u(i)}${u(r)}${u(n)}`}class f{constructor(){this.attributes={},this.styleAttributes={}}opacity(t){return this.styleAttributes.opacity=t,this}fill(t,e,s,i){return this.styleAttributes.fill=d(t/360,e/100,s/100),void 0!==i&&(this.styleAttributes["fill-opacity"]=i),this}noFill(){return this.styleAttributes.fill="none",this}fillOpacity(t){return this.styleAttributes["fill-opacity"]=t,this}fillOklch(t,e,s,i){return this.styleAttributes.fill=`oklch(${t} ${e} ${s}${"number"==typeof i?` / ${100*i}%`:""})`,this}stroke(t,e,s,i){return this.styleAttributes.stroke=d(t/360,e/100,s/100),void 0!==i&&(this.styleAttributes["stroke-opacity"]=i),this}strokeOklch(t,e,s,i){return this.styleAttributes.stroke=`oklch(${t} ${e} ${s})`,"number"==typeof i&&(this.styleAttributes["stroke-opacity"]=i),this}strokeOpacity(t){return this.styleAttributes["stroke-opacity"]=t,this}strokeWidth(t){return this.styleAttributes["stroke-width"]=t,this}lineCap(t){return this.styleAttributes["stroke-linecap"]=t,this}lineJoin(t){return this.styleAttributes["stroke-linejoin"]=t,this}miterLimit(t){return this.styleAttributes["stroke-miterlimit"]=t,this}dashArray(...t){return this.styleAttributes["stroke-dasharray"]=t.join(" "),this}dashOffset(t){return this.styleAttributes["stroke-dashoffset"]=t,this}class(t){return this.attributes.class=t,this}id(t){return this.attributes.id=t,this}transform(t){return this.attributes.transform=t.string,this}transformOrigin(t){return"string"==typeof t?this.attributes["transform-origin"]=t:this.attributes["transform-origin"]=`${t[0]} ${t[1]}`,this}clone(){let t=new f;return t.attributes=Object.assign({},this.attributes),t.styleAttributes=Object.assign({},this.styleAttributes),t}get string(){let t=Object.entries(this.styleAttributes),e=[Object.entries(this.attributes).map(([t,e])=>`${t}="${e}"`).join(" "),t.length>0?`style="${t.map(([t,e])=>`${t}:${e};`).join(" ")}"`:""].filter(t=>t.length>0).join(" ");return e.length>0&&(e=" "+e),e}static get stroked(){return new f().noFill().strokeWidth(.005).stroke(0,0,0)}static get filled(){return new f().fill(0,0,0)}static transform(t){return new f().transform(t)}static transformOf(...t){return new f().transform(l.of(...t))}
41static of({fill:t,fillOKLCH:e,fillOpacity:s,opacity:i,stroke:r,dashArray:n,dashOffset:o,lineCap:a,lineJoin:h,miterLimit:l,strokeOpacity:c,strokeWidth:u,transform:d,transformOrigin:g,class:m,id:p}){let b=new f;if(void 0!==t){let{h:e,s,l:i,a:r}=t;b.fill(e,s,i,r)}if(void 0!==e){let{l:t,c:s,h:i,a:r}=e;b.fillOklch(t,s,i,r)}if(void 0!==r){let{h:t,s:e,l:s,a:i}=r;b.stroke(t,e,s,i)}return void 0!==s&&b.fillOpacity(s),void 0!==i&&b.opacity(i),void 0!==n&&b.dashArray(...n),void 0!==o&&b.dashOffset(o),void 0!==a&&b.lineCap(a),void 0!==h&&b.lineJoin(h),void 0!==l&&b.miterLimit(l),void 0!==c&&b.strokeOpacity(c),void 0!==u&&b.strokeWidth(u),void 0!==d&&b.transform(d),void 0!==g&&b.transformOrigin(g),void 0!==m&&b.class(m),void 0!==p&&b.id(p),b}static get empty(){return new f}}function g(t,e,s,i,r){var n=e+i>>>0,o=s+r>>>0;o>>>0<s>>>0&&(n=n+1|0),t[0]=n,t[1]=o}class m{constructor(t,e,s=0x14057b7e,i=0xf767814f){let r,n;void 0===e&&void 0===t?(n=0xffffffff*Math.random()>>>0,r=0):void 0===e?(n=t,r=0):(n=e,r=t),this.state=new Int32Array([0,0,s>>>0,(1|i)>>>0]),this.next(),g(this.state,this.state[0],this.state[1],r>>>0,n>>>0),this.next()}getState(){return[this.state[0],this.state[1],this.state[2],this.state[3]]}setState(t){this.state[0]=t[0],this.state[1]=t[1],this.state[2]=t[2],this.state[3]=1|t[3]}next(){var t,e,s,i,r,n=this.state[0]>>>0,o=this.state[1]>>>0;t=this.state,e=(o>>>16)*32557>>>0,s=(65535&o)*19605>>>0,i=(65535&o)*32557>>>0,r=(o>>>16)*19605+((s>>>16)+(e>>>16))>>>0,(i=i+(s=s<<16>>>0)>>>0)>>>0<s>>>0&&(r=r+1>>>0),(i=i+(e=e<<16>>>0)>>>0)>>>0<e>>>0&&(r=r+1>>>0),r=(r=r+Math.imul(o,0x5851f42d)>>>0)+Math.imul(n,0x4c957f2d)>>>0,t[0]=r,t[1]=i,g(this.state,this.state[0],this.state[1],this.state[2],this.state[3]);var a=n>>>18,h=(o>>>18|n<<14)>>>0;a=(a^n)>>>0;var l=((h=(h^o)>>>0)>>>27|a<<5)>>>0,c=n>>>27;return(l>>>c|l<<((-c>>>0&31)>>>0))>>>0}integer(t){if(!t)return this.next();if(((t>>>=0)&t-1)==0)return this.next()&t-1;var e=0,s=(-t>>>0)%t>>>0;for(e=this.next();e<s;e=this.next());return e%t}number(){return((0x3ffffff&this.next())*0x8000000+(0x7ffffff&this.next())*1)/0x20000000000000}}class p{constructor(t){this.attributes=t,this.children=[]}strings(t){return[a(`<g${this.attributes.string}>`,t),...this.children.flatMap(e=>e instanceof p?e.strings(t+1):e.string(t+1)),a("</g>",t)]}push(t){this.children.push(t)}}class b{constructor(t,e,s){this.width=t,this.height=e,this.elements=[],this.currentGroup=null,this.forMargin=(t,e)=>this.forTiling({n:1,margin:t},e),this.forTiling=(t,e)=>{let s=0,{n:i,type:r="proportionate",margin:n=0,order:o="columnFirst"}=t,a="square"===r?Math.floor(i*(1/this.aspectRatio)):i,h=(1-2*n)/i,l="square"===r?h*a:1/this.aspectRatio-2*n,c=l/a,u=(1/this.aspectRatio-l)/2;if("columnFirst"===o)for(let t=0;t<i;t++)for(let i=0;i<a;i++)e([n+t*h,u+i*c],[h,c],[n+t*h+h/2,u+i*c+c/2],s),s++;else for(let t=0;t<a;t++)for(let r=0;r<i;r++)e([n+r*h,u+t*c],[h,c],[n+r*h+h/2,u+t*c+c/2],s),s++},this.forHorizontal=(t,e)=>{let{n:s,margin:i=0}=t,r=1-i,n=1/this.aspectRatio-2*i,o=(r-i)/s;for(let t=0;t<s;t++)e([i+t*o,i],[o,n],[i+t*o+o/2,i+n/2],t)},this.forVertical=(t,e)=>{let{n:s,margin:i=0}=t,r=1/this.aspectRatio-i,n=1-2*i,o=(r-i)/s;for(let t=0;t<s;t++)e([i,i+t*o],[n,o],[i+n/2,i+t*o+o/2],t)},this.forGrid=(t,e)=>{let s=0,{minX:i,maxX:r,minY:n,maxY:o,order:a="columnFirst"}=t;if("columnFirst"===a)for(let t=i;t<=r;t++)for(let i=n;i<=o;i++)e([t,i],s),s++;else for(let t=n;t<=o;t++)for(let n=i;n<=r;n++)e([n,t],s),s++},this.build=(t,e,s)=>{let i=[];return t(e,(...t)=>{i.push(s(...t))}),i},this.aroundCircle=(t,e)=>{let{n:s,at:[i,r]=[.5,.5/this.aspectRatio],r:n=.25}=t,o=2*Math.PI/s,a=-(.5*Math.PI);for(let t=0;t<s;t++)e([i+n*Math.cos(a+o),r+n*Math.sin(a+o)],t),a+=o},this.inDrawing=t=>{let{left:e,right:s,top:i,bottom:r}=this.meta;return t[0]>e&&t[0]<s&&t[1]>i&&t[1]<r},this.random=()=>this.rng.number(),this.randomAngle=()=>this.rng.number()*Math.PI*2,this.uniformRandomInt=t=>{let{to:e,from:s=0,inclusive:i=!0}=t;return s+Math.floor(this.random()*(e-s+ +!!i))},this.uniformGridPoint=({minX:t,maxX:e,minY:s,maxY:i})=>[this.uniformRandomInt({from:t,to:e}),this.uniformRandomInt({from:s,to:i})],this.randomPolarity=()=>this.rng.number()>.5?1:-1,this.sample=t=>t[Math.floor(this.rng.number()*t.length)],this.samples=(t,e)=>{let s=[];for(let i=0;i<t;i++)s.push(this.sample(e));return s},this.shuffle=t=>{let e,s=t.length,i=0;for(;0!==s;)i=Math.floor(this.rng.number()*s),s-=1,e=t[s],t[s]=t[i],t[i]=e;return t},this.perturb=t=>{let{at:[e,s],magnitude:i=.1}=t;return[e+i*(this.rng.number()-.5),s+i*(this.rng.number()-.5)]},this.gaussian=t=>{let{mean:e=0,sd:s=1}=t||{};return e+Math.sqrt(-2*Math.log(this.rng.number()))*Math.cos(2*Math.PI*this.rng.number())*s},this.poisson=t=>{let e=Math.exp(-t),s=this.rng.number(),i=0;for(;s>=e;)i++,s*=this.rng.number();return i},this.aspectRatio=t/e,this.rng=new m(s)}get image(){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 ${1/this.aspectRatio}" width="${this.width}" height="${this.height}"> 42${this.elements.flatMap(t=>t instanceof p?t.strings(1):t.string(1)).join("\n")} 43</svg>`}imageSrc(t=!0){return`data:image/svg+xml;utf8,${t?encodeURIComponent(this.image):this.image.replace(/\#/g,"%23")}`}get UNSTABLE_imageInkscapeReady(){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 ${1/this.aspectRatio}" width="${this.width}mm" height="${this.height}mm"> 44${this.elements.flatMap(t=>t instanceof p?t.strings(1):t.string(1)).join("\n")} 45</svg>`}UNSTABLE_imageSrcInkscapeReady(t=!0){return`data:image/svg+xml;utf8,${t?encodeURIComponent(this.UNSTABLE_imageInkscapeReady):this.UNSTABLE_imageInkscapeReady.replace(/\#/g,"%23")}`}group(t,e){let s=this.currentGroup,i=new p(t);this.currentElements.push(i),this.currentGroup=i,e(),this.currentGroup=s}groupWithId(t,e){this.group(new f().id(t),e)}get currentElements(){return this.currentGroup?this.currentGroup:this.elements}path(t=new f){let e=new h(t);return this.currentElements.push(e),e}strokedPath(t){let e=f.stroked.stroke(0,0,0).strokeWidth(.005).strokeOpacity(1).lineCap("round");null==t||t(e);let s=new h(e);return this.currentElements.push(s),s}clonePath(t,e){let s=t.clone(e);return this.currentElements.push(s),s}cutPath(t){return this.strokedPath(e=>{e.lineCap("round").lineJoin("round").stroke(0,0,60).strokeWidth(.005),null==t||t(e)})}creasePath(t){return this.strokedPath(e=>{e.lineCap("round").lineJoin("round").stroke(0,0,90).strokeWidth(.005),null==t||t(e)})}withRandomOrder(t,e,s){let i=[];for(let r of(t(e,(...t)=>{i.push(t)}),this.shuffle(i),i))s(...r)}doProportion(t,e){this.rng.number()<t&&e()}times(t,e){for(let s=0;s<t;s++)e(s)}downFrom(t,e){for(let s=t;s>0;s--)e(s)}proportionately(t){let e=t.map(t=>t[0]).reduce((t,e)=>t+e,0);
45if(e<=0)throw Error("Must be positive total");let s=this.rng.number()*e;for(let e=0;e<t.length;e++)if(t[e][0]>s)return t[e][1]();else s-=t[e][0];return t[0][1]()}randomPoint(){return[this.rng.number(),this.rng.number()/this.aspectRatio]}range(t,e){let{from:s=0,to:i=1,n:r,inclusive:n=!0}=t,o=(i-s)/r,a=n?r:r-1;for(let t=0;t<=a;t++)e(t*o+s)}get meta(){return{top:0,bottom:1/this.aspectRatio,right:1,left:0,aspectRatio:this.aspectRatio,center:[.5,.5/this.aspectRatio]}}get A(){return new f}get T(){return new l}}let w=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]];var v=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];let x=Array(512),M=Array(512);var y=0;(y=Math.floor(0))<256&&(y|=y<<8);for(var T,k=0;k<256;k++)T=1&k?v[k]^255&y:v[k]^y>>8&255,x[k]=x[k+256]=T,M[k]=M[k+256]=w[T%12]},85258,t=>{"use strict";var e=t.i(23157);t.i(8944);var s=t.i(34826);let i=(0,t.i(48108).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),r=[t=>{t.strokedPath(t=>t.fill(220,90,80,.5)).regularPolygon(t.meta.center,12,t.meta.bottom/3,0,"center")},t=>{t.forTiling({n:5,type:"square",margin:.1},(e,s,i,r)=>{t.strokedPath(t=>t.fill(220-15*r,90,80,.5)).regularPolygon(i,3+r,s[0]*Math.max(t.poisson(3)/4,.6),0,"center")})}];t.s(["SVGExample",0,function({index:t}){let n=new s.SolandraSvg(360,240,0);return r[t](n),(0,e.jsxs)("div",{className:"my-4 flex flex-col gap-4 lg:flex-row",children:[(0,e.jsx)("img",{src:n.imageSrc(!1),className:"h-[240px] w-[360px] rounded-xl bg-zinc-50"}),(0,e.jsxs)("div",{className:"relative h-[240px] overflow-auto rounded",children:[(0,e.jsx)("pre",{className:"relative h-[240px] bg-sky-900/75 p-4",children:(0,e.jsx)("code",{className:"text-sm",children:n.image})}
45),(0,e.jsx)("button",{className:"absolute right-4 top-4 rounded bg-sky-500 p-2 text-zinc-50",onClick:()=>{navigator.clipboard.writeText(n.image)},children:(0,e.jsx)(i,{})})]})]})}],85258)},7355,t=>{"use strict";var e=t.i(23157);t.i(8944);var s=t.i(34826),i=t.i(65016);t.s(["CutAndFoldExample",0,function(){let t,r,n,o,a,h=(t=new s.SolandraSvg(1e3,1e3,0),n=.8*(r=t.meta.bottom),o=.98*r,a=.041666666666666664,t.groupWithId("tree-fold",()=>{t.creasePath().moveTo([0,n]).lineTo([.5,n]),t.creasePath().moveTo([0,o]).lineTo([.5,o]);for(let e=1;e<=12;e++)t.creasePath().moveTo([e*a,n]).lineTo([e*a,o])}),t.groupWithId("tree-cuts",()=>{for(let e=0;e<=13;e++)0===e?t.cutPath().moveTo([e*a,0]).lineTo([e*a,r]):13===e?t.cutPath().moveTo([(e-1)*a,o]).lineTo([e*a,o-.025]).lineTo([e*a,n+.025]).lineTo([(e-1)*a,n]):(t.cutPath().moveTo([e*a,0]).lineTo([e*a,n]),t.cutPath().moveTo([e*a,o]).lineTo([e*a,r]));t.cutPath().moveTo([0,r]).lineTo([.5,r]),t.cutPath().moveTo([0,0]).lineTo([.5,0])}),t.groupWithId("base-cuts",()=>{t.cutPath().moveTo([.5,0]).lineTo([1,0]).lineTo([1,.5]).lineTo([.5,.5]);let e=a/(2*Math.sin(Math.PI/12)),s=2*Math.PI/12,r=t.cutPath().moveTo([.75+ +e,.25+0*e]);for(let t=1;t<=12;t++){let i=s*t,n=.75+e*Math.cos(i),o=.25+e*Math.sin(i);r.lineTo([n,o])}1;for(let r=1;r<=12;r++){let n=s*(r-1),o=s*r,a=.75+e*Math.cos(n),h=.25+e*Math.sin(n),l=.75+e*Math.cos(o),c=.25+e*Math.sin(o),u=(.15+t.random())*.5/3.2,d=u*Math.cos((n+o)/2),f=u*Math.sin((n+o)/2),g=[a+d,h+f],m=[l+d,c+f],p=i.v.pointAlong(g,m,-.1),b=i.v.pointAlong(g,m,1.1);t.cutPath().moveTo(p).lineTo(b)}}),t);return(0,e.jsx)("img",{src:h.imageSrc(),className:"size-[800px] rounded bg-zinc-50"})}])},82588,t=>{"use strict";let e;var s=t.i(23157);t.i(8944);var i=t.i(34826);let r="u">typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),n=new Uint8Array(16),o=[];for(let t=0;t<256;++t)o.push((t+256).toString(16).slice(1));let a=function(t,s,i){if(r&&!s&&!t)return r();let a=(t=t||{}).random??t.rng?.()??function(){if(!e){if("u"<typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");e=crypto.getRandomValues.bind(crypto)}return e(n)}();if(a.length<16)throw Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,s){if((i=i||0)<0||i+16>s.length)throw RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);for(let t=0;t<16;++t)s[i+t]=a[t];return s}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(a)};class h{pos;size;kind;x;y;id;constructor(t,e,s,i,r){this.pos=t,this.size=e,this.kind=s,this.x=i,this.y=r,this.id=a()}get points(){let[t,e]=this.pos,[s,i]=this.size;return[[t,e],[t+s,e],[t+s,e+i],[t,e+i]]}}let l=1/3;t.s(["PopUpExample",0,function(){let t,e=((t=new i.SolandraSvg(900,400,0)).groupWithId("main-cuts",()=>{for(let e of[0,l,2*l])t.cutPath().moveTo([e+l/2,.03]).lineTo([e+l-.03,.03]).lineTo([e+l-.03,t.meta.bottom-.03]).lineTo([e+l/2,t.meta.bottom-.03]);t.cutPath().moveTo([0,0]).lineTo([1,0]).lineTo([1,t.meta.bottom]).lineTo([0,t.meta.bottom]).close()}),t.groupWithId("windows",()=>{for(let e of[0,l,2*l])(function(t,e,s){let i=[],r=e[0]-t[0],n=e[1]-t[1],o=.8*r/5,a=.8*n/5,l=.2*n/4,c=o+.2*r/4,u=a+l;for(let e=0;e<5;e++)for(let s=0;s<5;s++){let r=[t[0]+e*c,t[1]+s*u],n=[o,a];i.push(new h(r,n,"base",e,s))}for(let t=0;t<5;t++){let e=s.uniformRandomInt({from:0,to:4,inclusive:!1}),r=i.find(s=>s.x===t&&s.y===e);i.find(s=>s.x===t&&s.y===e+1).kind="replaced",r.size=[r.size[0],2*r.size[1]+l]}return i})([.03+e,.06],[.03+e+l-.09,t.meta.bottom-.06],t).forEach(e=>{if("replaced"!==e.kind){let s=t.cutPath(),i=e.points;
45s.moveTo(i.pop()),i.forEach(t=>s.lineTo(t)),s.close()}})}),t.groupWithId("creases",()=>{for(let e of[0,l,2*l])t.creasePath().moveTo([e+l/2,0]).lineTo([e+l/2,.03]).moveTo([e+l/2,t.meta.bottom-.03]).lineTo([e+l/2,t.meta.bottom])}),t);return(0,s.jsx)("img",{src:e.imageSrc(),className:"h-[400px] w-[900px] rounded bg-zinc-50"})}],82588)}]);
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.