0x3b1383e0…50dasent to0x99a9b7c1…b069·#18,982,224·0x79b68c90…998ccd
|i.bodyA&&i.bodyA.isStatic,a=!i.bodyB||i.bodyB&&i.bodyB.isStatic,r||a||se.solve(e[o],n)},solve:(e,t)=>{var n=e.bodyA,o=e.bodyB,i=e.pointA,r=e.pointB;if(n||o){n&&!n.isStatic&&(j.rotate(i,n.angle-e.angleA,i),e.angleA=n.angle),o&&!o.isStatic&&(j.rotate(r,o.angle-e.angleB,r),e.angleB=o.angle);var a=i,s=r;if(n&&(a=j.add(n.position,i)),o&&(s=j.add(o.position,r)),a&&s){var c=j.sub(a,s),l=j.magnitude(c);l<se._ml&&(l=se._ml);var v,p,x,d,m,u=(l-e.length)/l,y=1<=e.stiffness||0===e.length?e.stiffness*t:e.stiffness*t*t,f=e.damping*t,g=j.mult(c,u*y),b=(n?n.inverseMass:0)+(o?o.inverseMass:0),h=b+((n?n.inverseInertia:0)+(o?o.inverseInertia:0));if(0<f){var _=j.create();x=j.div(c,l),m=j.sub(o&&j.sub(o.position,o.positionPrev)||_,n&&j.sub(n.position,n.positionPrev)||_),d=j.dot(x,m)}n&&!n.isStatic&&(p=n.inverseMass/b,n.constraintIp.x-=g.x*p,n.constraintIp.y-=g.y*p,n.position.x-=g.x*p,n.position.y-=g.y*p,0<f&&(n.positionPrev.x-=f*x.x*d*p,n.positionPrev.y-=f*x.y*d*p),v=j.cross(i,g)/h*se._td*n.inverseInertia*(1-e.angularStiffness),n.constraintIp.angle-=v,n.angle-=v),o&&!o.isStatic&&(p=o.inverseMass/b,o.constraintIp.x+=g.x*p,o.constraintIp.y+=g.y*p,o.position.x+=g.x*p,o.position.y+=g.y*p,0<f&&(o.positionPrev.x+=f*x.x*d*p,o.positionPrev.y+=f*x.y*d*p),v=j.cross(r,g)/h*se._td*o.inverseInertia*(1-e.angularStiffness),o.constraintIp.angle+=v,o.angle+=v)}}},postSolveAll:e=>{for(var t=0;t<e.length;t++){var n=e[t],o=n.constraintIp;if(!(n.isStatic||0===o.x&&0===o.y&&0===o.angle)){for(var i,r=0;r<n.parts.length;r++)i=n.parts[r],H.translate(i.vertices,o),0<r&&(i.position.x+=o.x,i.position.y+=o.y),0!==o.angle&&(H.rotate(i.vertices,o.angle,n.position),K(i.axes,o.angle),0<r&&j.rotateAbout(i.position,o.angle,n.position,i.position)),Z.update(i.bounds,i.vertices,n.vel);o.angle*=se._w,o.x*=se._w,o.y*=se._w}}}},ce={create:e=>q.extend({bodies:[],pairs:null},e),setBodies:(e,t)=>{e.bodies=t.slice(0)},collisions:e=>{var t,n,o=[],i=e.pairs,r=e.bodies,a=r.length,s=ce.canCollide,c=ne.collides;for(r.sort(ce._compareBoundsX),t=0;t<a;t++){var l=r[t],v=l.bounds,p=l.bounds.max.x,x=l.bounds.max.y,d=l.bounds.min.y,m=l.isStatic,u=l.parts.length,y=1===u;for(n=t+1;n<a;n++){var f=r[n];if((R=f.bounds).min.x>p)break;if(!(x<R.min.y||d>R.max.y)&&(!m||!f.isStatic)&&s(l.filter,f.filter)){var g=f.parts.length;if(y&&1===g)(w=c(l,f,i))&&o.push(w);else for(var b=1<g?1:0,h=1<u?1:0;h<u;h++)for(var _=l.parts[h],S=(v=_.bounds,b);S<g;S++){var w,A=f.parts[S],R=A.bounds;v.min.x>R.max.x||v.max.x<R.min.x||v.max.y<R.min.y||v.min.y>R.max.y||(w=c(_,A,i))&&o.push(w)}}}}return o},canCollide:(e,t)=>e.group===t.group&&0!==e.group?0<e.group:0!=(e.mask&t.category)&&0!=(t.mask&e.category),_compareBoundsX:(e,t)=>e.bounds.min.x-t.bounds.min.x},le={_rt:2};le._rtt=r(6),le._pd=.9,le._pw=.8,le._fnm=5,le._fms=e,le.preSolvePosition=e=>{var t,n,o,i=e.length;for(t=0;t<i;t++)(n=e[t]).isActive&&(o=n.activeContacts.length,n.collision.parentA.totalContacts+=o,n.collision.parentB.totalContacts+=o)},le.solvePosition=(e,t,n)=>{var o,i,r,a,s,c,l,v,p=le._pd*(n||1),x=q.clamp(t/q._bd,0,1),d=e.length;for(o=0;o<d;o++)(i=e[o]).isActive&&!i.isSensor&&(a=(r=i.collision).parentA,s=r.parentB,c=r.normal,i.separation=c.x*(s.positionIp.x+r.penetration.x-a.positionIp.x)+c.y*(s.positionIp.y+r.penetration.y-a.positionIp.y));for(o=0;o<d;o++)(i=e[o]).isActive&&!i.isSensor&&(a=(r=i.collision).parentA,s=r.parentB,c=r.normal,v=i.separation-i.slop*x,(a.isStatic||s.isStatic)&&(v*=2),a.isStatic||(l=p/a.totalContacts,a.positionIp.x+=c.x*v*l,a.positionIp.y+=c.y*v*l),s.isStatic||(l=p/s.totalContacts,s.positionIp.x-=c.x*v*l,s.positionIp.y-=c.y*v*l))},le.postSolvePosition=e=>{for(var t=le._pw,n=e.length,o=H.translate,i=Z.update,r=0;r<n;r++){var a=e[r],s=a.positionIp,c=s.x,l=s.y,v=a.vel;if(a.totalContacts=0,0!==c||0!==l){for(var p,x=0;x<a.parts.length;x++)o((p=a.parts[x]).vertices,s),i(p.bounds,p.vertices,v),p.position.x+=c,p.position.y+=l;a.positionPrev.x+=c,a.positionPrev.y+=l,0>c*v.x+l*v.y?(s.x=0,s.y=0):(s.x*=t,s.y*=t)}}},le.preSolveVel=e=>{var t,n,o=e.length;for(t=0;t<o;t++){var i=e[t];if(i.isActive&&!i.isSensor){var r=i.activeContacts,a=r.length,s=i.collision,c=s.parentA,l=s.parentB,v=s.normal,p=s.tangent;for(n=0;n<a;n++){var x=r[n],d=x.vertex,m=x.normalIp,u=x.tangentIp;if(0!==m||0!==u){var y=v.x*m+p.x*u,f=v.y*m+p.y*u;c.isStatic||(c.positionPrev.x+=y*c.inverseMass,c.positionPrev.y+=f*c.inverseMass,c.anglePrev+=c.inverseInertia*((d.x-c.position.x)*f-(d.y-c.position.y)*y)),l.isStatic||(l.positionPrev.x-=y*l.inverseMass,l.positionPrev.y-=f*l.inverseMass,l.anglePrev-=l.inverseInertia*((d.x-l.position.x)*f-(d.y-l.position.y)*y))}}}}},le.solveVel=(e,t)=>{var n,o,i,r,a=t/q._bd,c=a*a*a,l=-le._rt*a,v=le._rtt,p=le._fnm*a,x=le._fms,d=e.length;for(i=0;i<d;i++){var m=e[i];if(m.isActive&&!m.isSensor){var u=m.collision,y=u.parentA,f=u.parentB,g=y.vel,b=f.vel,h=u.normal.x,_=u.normal.y,S=u.tangent.x,w=u.tangent.y,A=m.activeContacts,R=A.length,P=1/R,E=y.inverseMass+f.inverseMass,I=m.friction*m.frictionStatic*p;for(g.x=y.position.x-y.positionPrev.x,g.y=y.position.y-y.positionPrev.y,b.x=f.position.x-f.positionPrev.x,b.y=f.position.y-f.positionPrev.y,y.angularVel=y.angle-y.anglePrev,f.angularVel=f.angle-f.anglePrev,r=0;r<R;r++){var C=A[r],B=C.vertex,T=B.x-y.position.x,M=B.y-y.position.y,U=B.x-f.position.x,z=B.y-f.position.y,V=g.x-M*y.angularVel,F=g.y+T*y.angularVel,k=V-(b.x-z*f.angularVel),L=F-(b.y+U*f.angularVel),O=h*k+_*L,D=S*k+w*L,X=m.separation+O,N=s(X,1),$=(N=0>X?0:N)*I;D<-$||D>$?(o=0<D?D:-D,(n=m.friction*(0<D?1:-1)*c)<-o?n=-o:n>o&&(n=o)):(n=D,o=x);var Y=T*_-M*h,G=U*_-z*h,W=P/(E+y.inverseInertia*Y*Y+f.inverseInertia*G*G),j=(1+m.restitution)*O*W;if(n*=W,O<l)C.normalIp=0;else{var K=C.normalIp;C.normalIp+=j,0<C.normalIp&&(C.normalIp=0),j=C.normalIp-K}if(D<-v||D>v)C.tangentIp=0;else{var H=C.tangentIp;C.tangentIp+=n,C.tangentIp<-o&&(C.tangentIp=-o),C.tangentIp>o&&(C.tangentIp=o),n=C.tangentIp-H}var Z=h*j+S*n,J=_*j+w*n;y.isStatic||(y.positionPrev.x+=Z*y.inverseMass,y.positionPrev.y+=J*y.inverseMass,y.anglePrev+=(T*J-M*Z)*y.inverseInertia),f.isStatic||(f.positionPrev.x-=Z*f.inverseMass,f.positionPrev.y-=J*f.inverseMass,f.anglePrev-=(U*J-z*Z)*f.inverseInertia)}}}};var ve={create:e=>{e=e||{};var t=q.extend({posIt:6,velIt:4,conIt:2,gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},e);return t.world=e.world||ae.create(),t.pairs=e.pairs||(e=>q.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},e))(),t.detector=e.detector||ce.create(),t.grid={buckets:[]},t.world.gravity=t.gravity,t.broadphase=t.grid,t.metrics={},t},update:(e,t)=>{var n,o=q.now(),i=e.world,r=e.detector,a=e.pairs,s=e.timing,c=s.timestamp;t=void 0===t?q._bd:t,t*=s.timeScale,s.timestamp+=t,s.lastDelta=t;var l=ae.allBodies(i),v=ae.allConstraints(i);for(i.isModified&&(ce.setBodies(r,l),ae.setModified(i,!1,!1,!0)),ve._bag(l,e.gravity),0<t&&ve._bu(l,t),se.preSolveAll(l),n=0;n<e.conIt;n++)se.solveAll(v,t);se.postSolveAll(l),r.pairs=e.pairs,((e,t,n)=>{var o,i,r,a,s=e.list,c=s.length,l=e.table,v=t.length,p=e.collisionStart,x=e.collisionEnd,d=e.collisionActive;for(p.length=0,x.length=0,d.length=0,a=0;a<c;a++)s[a].confirmedActive=!1;for(a=0;a<v;a++)(r=(o=t[a]).pair)?(r.isActive?d.push(r):p.push(r),te.update(r,o,n),r.confirmedActive=!0):(l[(r=te.create(o,n)).id]=r,p.push(r),s.push(r));var m=[];for(c=s.length,a=0;a<c;a++)(r=s[a]).confirmedActive||(te.setActive(r,!1,n),x.push(r),m.push(a));for(a=0;a<m.length;a++)r=s[i=m[a]-a],s.splice(i,1),delete l[r.id]})(a,ce.collisions(r),c);var p=q.clamp(20/e.posIt,0,1);for(le.preSolvePosition(a.list),n=0;n<e.posIt;n++)le.solvePosition(a.list,t,p);for(le.postSolvePosition(l),se.preSolveAll(l),n=0;n<e.conIt;n++)se.solveAll(v,t);for(se.postSolveAll(l),le.preSolveVel(a.list),n=0;n<e.velIt;n++)le.solveVel(a.list,t);return ve._buv(l),ve._bcf(l),e.timing.lastElapsed=q.now()-o,e},_bcf:e=>{for(var t,n=e.length,o=0;o<n;o++)(t=e[o]).force.x=0,t.force.y=0,t.torque=0},_bag:(e,t)=>{var n=void 0===t.scale?.001:t.scale,o=e.length;if((0!==t.x||0!==t.y)&&0!==n)for(var i,r=0;r<o;r++)(i=e[r]).isStatic||(i.force.y+=i.mass*t.y*n,i.force.x+=i.mass*t.x*n)},_bu:(e,t)=>{for(var n,o=e.length,i=0;i<o;i++)(n=e[i]).isStatic||J.update(n,t)},_buv:e=>{for(var t=e.length,n=0;n<t;n++)J.updateVelocities(e[n])}};const pe=(e,t,n,o,i)=>{e.width=t,e.height=n,W(e,{width:`${o}px`,height:`${i}px`})},xe=(e,t)=>{e.save(),t(),e.restore()},de=(e,t,n=[1,1])=>{e.moveTo(t[0].x*n[0],t[0].y*n[1]);for(let o=1,i=t.length;o<i;o++)e.lineTo(t[o].x*n[0],t[o].y*n[1])},me=e=>e.clearRect(0,0,e.canvas.width,e.canvas.height),ue=(e,t,n)=>{const o=e.createShader(t);return e.shaderSource(o,n),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS)?o:void e.deleteShader(o)},ye=(e,t,n=0,o=e.CLAMP_TO_EDGE,i=e.NEAREST)=>{const r=e.createTexture();return e.activeTexture(e.TEXTURE0+n),e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,i),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),r};var fe=(e,t,n,o,i=!0)=>{const r=e.getContext("webgl2",o);i&&(r.drawingBufferColorSpace="display-p3"),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!0);const a=((e,t,n)=>{const o=e.createProgram();return e.attachShader(o,t),e.attachShader(o,n),e.linkProgram(o),e.getProgramParameter(o,e.LINK_STATUS)?o:void e.deleteProgram(o)})(r,ue(r,r.VERTEX_SHADER,t),ue(r,r.FRAGMENT_SHADER,n)),s=r.getAttribLocation(a,"aPos"),c=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,c),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,3,3,-1]),r.STATIC_DRAW);const l=r.createVertexArray();r.bindVertexArray(l),r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,c),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0),r.bindVertexArray(null);const v=[];let p;const x=()=>r.clear(r.COLOR_BUFFER_BIT);return{resize:(t,n,o,i)=>{pe(e,t,n,o||t,i||n),p=[t,n,t/n],x()},frame:(e=[0,0],t=[])=>{r.viewport(0,0,p[0],p[1]),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r.useProgram(a),r.bindVertexArray(l);let n=0;[["uVp","v3",p],["uT","f",e[1]],...t.map((e=>("t"===e[1]&&(v[e[0]]=[ye(r,e[2],n,r[e[3]],r[e[4]]),n++]),"t[]"===e[1]&&(v[e[0]]=[[],[]],e[2].forEach((t=>{v[e[0]][0].push(ye(r,t,n,r[e[3]],r[e[4]])),v[e[0]][1].push(n++)}))),e)))].forEach((([e,t,n])=>((e,[t,n,o,i])=>{"b"===t?e.uniform1i(o,!0===n?1:0):"i"===t?e.uniform1i(o,n):"i[]"===t?e.uniform1iv(o,n):"f"===t?e.uniform1f(o,n):"f[]"===t?e.uniform1fv(o,n):"v2"===t?e.uniform2f(o,...n):"v2[]"===t?e.uniform2fv(o,n):"v3"===t?e.uniform3f(o,...n):"v3[]"===t?e.uniform3fv(o,n):"v4"===t?e.uniform4f(o,...n):"v4[]"===t?e.uniform4fv(o,n):"t"===t?e.uniform1i(o,i):"t[]"===t&&e.uniform1iv(o,i)})(r,[t,"t"===t||"t[]"===t?v[e][0]:n,r.getUniformLocation(a,e),"t"===t||"t[]"===t?v[e][1]:-1]))),r.drawArrays(r.TRIANGLES,0,3)},clear:x}};const ge="#version 300 es\nin vec2 aPos;\nout vec2 vUv;\nvoid main(){gl_Position=vec4(aPos*2.-1.,0.,1.);vUv=aPos;}\n";var be=(e,o,i)=>{const r=m[i[1][2]],v=u[i[1][2]]*y[i[0][2]],x=s(1+c((r-1)/8),4);let d,f,g,b,h,_,S,w,A,R=!1,P=0,I=[p,p],C=[],M=[],U=[],z=[],L=[],O=!1,X=0,N=[],$=[];const Y=T(.4,.6),G=T(.2,.3),W=(t=!1,n=!1)=>ae.allBodies(e.world).filter((e=>(t||!e.__cursor)&&(n||!e.__bound))),q=(e=0,t=0,n,o)=>ee.rectangle(e,t,n,o,{isStatic:!0,friction:.5,filter:{category:2},__bound:!0}),K=(e,t,n,o,i,r,a,c,l,p)=>{const x=s(...I)*v*r,d=ee.rectangle(e,t,x*o,x*i,{restitution:.5,friction:.9,density:2e-4,color:"blue"});return J.setVertices(d,d.vertices.map(((e,t)=>{let n=[e.x-d.position.x,e.y-d.position.y];return 2<=t&&(e.x-=a*n[0]),e}))),J.setAngle(d,n),d.__pos=[e,t,n],d.__src=[o,1,r,a,c],d.__anim=[l,p,0],d},H=()=>{const e=T(.2,.8)*b,n=T(-1.1,-.1)*_,o=[1,Y,G,T(.2,.8),B()?T(.1,.3):T(.4,.6)][i[0][2]],r=E()*t*2,a=i[1][1]===F?.4+.6*l(E(),2):i[1][1]===k&&B(.7)?.5:1,s=.07*l(E(),4),c=2+V([1,8,4,1]),v=E();return K(e,n,r,o,1,a,s,c,v,0)};let Z=()=>{};return{config:()=>[r,v,x],resize:(...t)=>Z=((t,n)=>{Z(),O=!1,X=0;const i=!!U.length;d=t[4],g=1<=d,b=p*(g?d:1),h=b/2,_=p/(g?1:d),S=_/2,w=.015*s(b,_);const r=d>f?1:-1;if(f=d,I=[b,_],!i||n){C=[q(-h+w,S,b,4*_),q(b+h-w,S,b,4*_),q(h,-(_+S)+w,2*b,_),q(h,_+S-w,2*b,_)],ae.add(e.world,C),M=[];for(let e=0;e<P;e++){const t=i?K(U[e][0]*b,U[e][1]*_,U[e][2],...z[e],...L[e]):H();M.push(t);const n=.2*t.m*r;J.applyForce(t,t.position,j.create((2*E()-1)*n,-E()*n))}ae.add(e.world,M)}A=((e=document.body)=>{let t=!1,n=!1,o=[1,1],i=[];const r=t=>{i=[],((e,t)=>{for(var n=0,o=e.length;n<o;n++)t(Array.isArray(e)?e.at(n):e.item(n),n)})(t,((t,n)=>{const r=((e,t)=>{const n=t.getBoundingClientRect(),o=document.documentElement||document.body.parentNode||document.body,i=void 0===window.pageXOffset?o.scrollLeft:window.pageXOffset,r=void 0===window.pageYOffset?o.scrollTop:window.pageYOffset,a=e.pageX-n.left-i,s=e.pageY-n.top-r;return[a/(t.clientWidth/(t.width||t.clientWidth)),s/(t.clientHeight/(t.height||t.clientHeight))]})(t,e),a=r[0]*o[0],s=r[1]*o[1],c=t.identifier||0;i[n]={x:a,y:s,id:c}}))};return{positions:()=>i,setScale:([e,t])=>{o=[e,t]},touchstart:e=>{t=!0,r(e.targetTouches)},touchmove:e=>{r(e.targetTouches)},touchend:e=>{r(e.targetTouches)},mousedown:e=>{t||(n=!0,r([e]))},mousemove:e=>{t||n&&r([e])},mouseup:e=>{t||(n=!1,r([]))}}})(o),A.setScale([b/t[0],_/t[1]]);for(let e=0;e<64;e++)$[e]=ee.circle(0,0,.02*s(b,_),{color:"#0f0",filter:{category:2,mask:1},density:.01,__cursor:!0});return()=>{U=M.map((e=>[e.position.x/b,e.position.y/_,e.angle])),z=M.map((e=>e.__src)),L=M.map((e=>e.__anim)),n&&ae.remove(e.world,[...C,...M])}})(...t),frame:([t,o,i],c,v,p)=>{if(O=!0,X=o===t?1e3-t:c?0:X+t,0<o&&X<=1e3&&(O=!1),ae.remove(e.world,$),A.positions().forEach((t=>{const o=n(t.id%64);J.setPosition($[o],j.create($[o].position.x+.05*(t.x-$[o].position.x),$[o].position.y+.05*(t.y-$[o].position.y)),!0),ae.add(e.world,$[o])})),W().forEach(((e,t)=>{const o=D([e.position.x,e.position.y],[...e.__pos]),i=e.angle-e.__pos[2];(o>.2||n(i)>.002)&&(O=!1,X=0),e.__pos=[e.position.x,e.position.y,e.angle],e.__invalid=!v&&(e=>{for(let t=0,n=e.vertices.length;t<n;t++)if(e.vertices[t].y<w/2)return!0;return!1})(e),e.__anim[1]+=3e-4*e.speed+s(e.angularSpeed,.01),p&&(J.applyForce(e,e.position,j.create(0,.5*((e,t,n)=>a(s(e,30),10))(e.mass)*l(a(0,e.position.y/_),3)*e.__anim[2]*-1)),e.__anim[2]*=.97,B(1/s(r,36)*.004)&&(e.__anim[2]+=1))})),!R){if(!(i%30)){const t=H();M.push(t),ae.add(e.world,t),P++}P>=r&&(R=!0)}},size:()=>[...I],bodies:W,resting:()=>O,populated:()=>R,pointerDown:()=>{if(A.positions().length)for(let e=0;e<A.positions().length;e++){const t=A.positions()[e],o=n(t.id%64);N.find((({id:e})=>t.id===e))||J.setPosition($[o],t,!1)}N=[...A.positions()]},pointerUp:()=>{N=[...A.positions()]},mousedown:e=>A.mousedown(e),mousemove:e=>A.mousemove(e),mouseup:e=>A.mouseup(e),touchstart:e=>A.touchstart(e),touchmove:e=>A.touchmove(e),touchend:e=>A.touchend(e)}};const he=window,_e=document,Se=_e.body,we=new URLSearchParams(he.location.search),Ae=e=>we.get(e),Re=e=>null!==Ae(e),Pe=()=>{try{return he.self!==he.top}catch(e){return!0}},Ee="undefined"==typeof tokenData?Ae("seed")||(()=>{let e="0x";for(let t=64;0<t;--t)e+="0123456789abcdef"[~~(16*Math.random())];return e})():"string"==typeof tokenData?tokenData:tokenData.hash;C(Ee);const Ie=O.map((e=>{const t=e[1].map((e=>e[1])),n=V(t);return[e[0],e[1][n][0],n]}));console.log(`${Ee}\n`,...Ie.map((e=>`\n${e[0]}: ${e[1]}`)),Pe()?"\n\niframe":"");const Ce=$(Se,N("main")),Be=$(Ce,N("canvas")),Te=$(Ce,N("canvas")),Me=$(Se,N("canvas")),Ue=Ie[3][1]===L;let ze,Ve=Re("expand"),Fe=Re("expose"),ke=Re("excess"),Le=Re("excite"),Oe=0;(()=>{let e;const t=()=>{e&&e.cleanup(),e=(()=>{C(Ee);const e=ve.create(),t=be(e,Ce,Ie),n=(e=>{const t=e.getContext("2d");return{resize:(t,n,o,i)=>pe(e,t,n,o,i),frame:(e,n,o,i,r,a,c)=>{me(t),c&&xe(t,(()=>{t.fillStyle=a?g:f,t.globalAlpha=.3,t.fillRect(0,0,n,o)}));for(let l=0,v=r.length;l<v;l++){const v=r[l];xe(t,(()=>{c&&(t.scale(.5,.5),t.translate(n/2,o)),t.beginPath(),de(t,[...v.vertices,v.vertices[0]],i),t.closePath(),c?(t.globalAlpha=.8,t.fillStyle=v.__invalid?"red":v.color,t.fill()):(v.__cursor||v.__invalid)&&100<e&&(t.strokeStyle=a?f:g,t.lineWidth=.002*s(n,o),t.stroke())}))}},clear:()=>me(t)}})(Te),o=fe(Be,ge,(([e,t,n])=>`#version 300 es\nprecision highp float;\n#define COUNT ${e}\n#define TILE ${n}.0\n#define BASE ${t}\n#define PI 3.1415926535\n#define F .0006\nin vec2 vUv;\nuniform vec4 uBdS[COUNT],uBdP[COUNT];\nuniform vec3 uVp,uCl,uCd,uBdA[COUNT];\nuniform float uT,uI;\nuniform sampler2D uTx[8];\nout vec4 fc;\nmat2 r2d(float t){return mat2(cos(t),sin(t),-sin(t),cos(t));}\nvec2 rUV(vec2 st,float t){float sr=sin(t),cr=cos(t);return vec2(cr*(st.x)+sr*(st.y)+.5,cr*(st.y)-sr*(st.x)+.5);}\nfloat rand(vec2 st){return fract(sin(dot(st,vec2(12.9898,78.233)))*43758.5453);}\nvec2 gO(vec4 bdP){\nvec2 pos=bdP.xy/uVp.xy;\npos.y=(1.-pos.y)/uVp.z;\nreturn pos;\n}\nfloat rect(vec2 st,vec4 bdP,vec4 bdS,float f){\nfloat x=(1.-bdS.x/max(uVp.z,1.)/(1./BASE))/2.; \nfloat y=(1.-bdS.y/max(uVp.z,1.)/(1./BASE))/2.;\nx*=1.-.5*bdS.z*bdS.x;\nx*=1.0015;y*=1.0015;\nst=rUV(st-gO(bdP),PI-bdP.z);\nvec2 wBl=st,wTr=st;\nwBl.x-=bdS.z*st.y*bdS.x*.5;\nwTr.x+=bdS.z*st.y*bdS.x*.5;\nwBl.y-=bdS.z*st.y*.11;\nwTr.y-=bdS.z*st.y*.05;\nvec2 bl=smoothstep(vec2(x-f,y-f),vec2(x+f,y+f),wBl);\nvec2 tr=smoothstep(vec2(x-f,y-f),vec2(x+f,y+f),1.-wTr);\nreturn bl.x*bl.y*tr.x*tr.y;\n}\nvec2 tU(vec2 st,vec4 bdP,vec4 bdS,int i){\nreturn rUV((st-gO(bdP))*(1./BASE)*max(uVp.z, 1.),PI*.5-bdP.z)\n*vec2(1./TILE,1.)\n*vec2((1./(3.0+1.))*(bdS.w-1.),1.)\n+vec2(.5*max(1.-TILE,0.)+(1./TILE)*float(i/8),0.);\n}\nfloat tM(int i,int o){return step(float(i+o&7),0.);}\nvoid main(){\nvec2 uv=vUv;\nuv.y/=uVp.z;\nvec4 b=vec4(uCd,1.);\nvec4 w=vec4(uCl,1.);\nvec4 c=mix(w,b,uI);\nfor (int i=0;i<COUNT;i++){\nvec4 bdP=uBdP[i];\nvec4 bdS=uBdS[i];\nvec3 bdA=uBdA[i];\nfloat r=.93*rect(uv,bdP,bdS,F)*bdP.w;\nc = max(c-r,0.);\nvec2 tO=vec2(-.7*pow(1.-bdS.y,4.),0.); \nvec2 tA=vec2(0.,\nsin(uT*.00005*(.1+.9*pow(bdA.y,4.)))+.5*mod(bdA.z,999.)\n)*r2d(bdP.z);\nvec2 tUV=uv+vec2(0.,.035*bdS.z)*r2d(bdP.z)+tO+tA*bdA.x;\nc+=r*tM(i,0)*texture(uTx[0],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,1)*texture(uTx[1],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,2)*texture(uTx[2],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,3)*texture(uTx[3],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,4)*texture(uTx[4],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,5)*texture(uTx[5],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,6)*texture(uTx[6],tU(tUV,bdP,bdS,i));\nc+=r*tM(i,7)*texture(uTx[7],tU(tUV,bdP,bdS,i));\n}\nc+=(rand(uv*10.)*2.-1.)*.025;\nfc=c;\n}\n`)(t.config()),v),i=fe(Me,ge,(([e,t,n])=>`#version 300 es\nprecision highp float;\n#define S 5\n#define ST ${5*n}\n#define PI 3.141592653589793\n#define F .0001\nin vec2 vUv;\nuniform int uCn;\nuniform float uT;\nuniform vec3 uVp, uC[ST];\nout vec4 fc;\nvec3 mod289(vec3 x){return x-floor(x*(1./289.))*289.;}vec2 mod289(vec2 x){return x-floor(x*(1./289.))*289.;}vec3 permute(vec3 x){return mod289(((x*34.)+1.)*x);}float noise(vec2 v){const vec4 C=vec4(.211324865405187,.366025403784439,-.577350269189626,.024390243902439);vec2 i=floor(v+dot(v,C.yy));vec2 x0=v-i+dot(i,C.xx);vec2 i1;i1=(x0.x>x0.y)?vec2(1.,0.):vec2(0.,1.);vec4 x12=x0.xyxy+C.xxzz;x12.xy-=i1;i=mod289(i);vec3 p=permute(permute(i.y+vec3(0.,i1.y,1.))+i.x+vec3(0.,i1.x,1.));vec3 m=max(.5-vec3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.);m=m*m;m=m*m;vec3 x=2.*fract(p*C.www)-1.;vec3 h=abs(x)-.5;vec3 ox=floor(x+.5);vec3 a0=x-ox;m*=1.79284291400159-.85373472095314*(a0*a0+h*h);vec3 g;g.x=a0.x*x0.x+h.x*x0.y;g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.*dot(m,g);}\nfloat g1(float x,float k){x=clamp(x,0.,1.);float s=sign(x-.5);float o=(1.+s)/2.;return o-.5*s*pow(2.*(o-s*x),k);}\nfloat gN(float x,float a){return g1(x,1.2+.8*a);}\n\n// Copyright (c) 2022 Adam Lastowka (MIT License)\n#define D65 vec3(.950456,1.,1.089058)\nvec3 rgb2xyz(vec3 rgb){return rgb*mat3(.4124,.3576,.1805,.2126,.7152,.0722,.0193,.1192,.9505);}\nvec3 xyz2rgb(vec3 xyz){return xyz*mat3(3.2406255,-1.5372080,-.4986286,-.9689307,1.8757561,.0415175,.0557101,-.2040211,1.0569959);}\nfloat xyz2labF(float x){return x>.00885645167?pow(x,1./3.):7.78703703704*x+.13793103448;}\nvec3 xyz2lab(vec3 xyz){\nvec3 s=xyz/D65;\ns=vec3(xyz2labF(s.x),xyz2labF(s.y),xyz2labF(s.z));\nreturn vec3((116.*s.y)-16.,500.*(s.x-s.y),200.*(s.y-s.z));\n}\nfloat lab2xyzF(float x){return x>.206897?x*x*x:(.12841854934*(x-0.137931034));}\nvec3 lab2xyz(vec3 lab){\nfloat w=(lab.x+16.)/116.;\nreturn D65*vec3(lab2xyzF(w+lab.y/500.),lab2xyzF(w),lab2xyzF(w-lab.z/200.));\n}\nvec3 rgb2lab(vec3 rgb){return xyz2lab(rgb2xyz(rgb));}\nvec3 lab2rgb(vec3 lab){retu