0x2776621f…43f9sent to0x942bc2d3…5c8a·#15,828,991·view on Etherscan
(()=>{"use strict";{const i=e=>new Float32Array(e),l=Math.PI,n=2*l,a=Math.cos,o=Math.sin,f=Math.pow,s=Math.sqrt,h=Math.floor,u=(Math.ceil,Math.abs),c=Math.min,b=Math.max,d=e=>e*e*(3-2*e),p=1/3,v=1/6,g=new Float32Array([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]);class T{constructor(e,t,r,i,l,n,a,o=!1){this.x=e,this.y=t,this.z=r,this.life=8,this.frac=i,this.s=l,this.angle=n,this.range=a,this.frac2=1,this.frac3=1,this.frac4=1,this.active=o}}const y={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var i=t+~~(e()*(256-t)),l=r[t];r[t]=r[i],r[i]=l}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var i=.02519603282416938*(e+=t.charCodeAt(r));i-=e=i>>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,i=1,l=this.masher();e=l(" "),t=l(" "),r=l(" ");for(var n=0;n<arguments.length;n++)(e-=l(arguments[n]))<0&&(e+=1),(t-=l(arguments[n]))<0&&(t+=1),(r-=l(arguments[n]))<0&&(r+=1);return l=null,function(){var l=2091639*e+2.3283064365386963e-10*i;return e=t,t=r,r=l-(i=0|l)}},n3(e,t,r){var i,l,n,a,o,f,s,u,c,b,d=this.p12,T=this.perm,y=(e+t+r)*p,m=h(e+y),x=h(t+y),A=h(r+y),k=(m+x+A)*v,S=e-(m-k),D=t-(x-k),E=r-(A-k);S>=D?D>=E?(o=1,f=0,s=0,u=1,c=1,b=0):S>=E?(o=1,f=0,s=0,u=1,c=0,b=1):(o=0,f=0,s=1,u=1,c=0,b=1):D<E?(o=0,f=0,s=1,u=0,c=1,b=1):S<E?(o=0,f=1,s=0,u=0,c=1,b=1):(o=0,f=1,s=0,u=1,c=1,b=0);var P=S-o+v,w=D-f+v,B=E-s+v,R=S-u+2*v,L=D-c+2*v,N=E-b+2*v,C=S-1+3*v,F=D-1+3*v,_=E-1+3*v,I=255&m,G=255&x,M=255&A,U=.6-S*S-D*D-E*E;if(U<0)i=0;else{var V=3*d[I+T[G+T[M]]];i=(U*=U)*U*(g[V]*S+g[V+1]*D+g[V+2]*E)}var O=.6-P*P-w*w-B*B;if(O<0)l=0;else{var W=3*d[I+o+T[G+f+T[M+s]]];l=(O*=O)*O*(g[W]*P+g[W+1]*w+g[W+2]*B)}var z=.6-R*R-L*L-N*N;if(z<0)n=0;else{var H=3*d[I+u+T[G+c+T[M+b]]];n=(z*=z)*z*(g[H]*R+g[H+1]*L+g[H+2]*N)}var Y=.6-C*C-F*F-_*_;if(Y<0)a=0;else{var q=3*d[I+1+T[G+1+T[M+1]]];a=(Y*=Y)*Y*(g[q]*C+g[q+1]*F+g[q+2]*_)}return 32*(i+l+n+a)}};function m(e){let t=f(.4122214708*e[0]+.5363325363*e[1]+.0514459929*e[2],1/3),r=f(.2119034982*e[0]+.6806995451*e[1]+.1073969566*e[2],1/3),i=f(.0883024619*e[0]+.2817188376*e[1]+.6299787005*e[2],1/3);return[.2104542553*t+.793617785*r-.0040720468*i,1.9779984951*t-2.428592205*r+.4505937099*i,.0259040371*t+.7827717662*r-.808675766*i]}let x=[19,18,14,77,88,88,88,87,68,96,42,87,15,45,41,71,20,12,37,80,67,14,22,70,13,20,3,75,7,88,48,70,68,54,97,72,58,59,60,83,97,96,0,74,67,66,69,84,23,40,42,70,46,46,29,78,26,56,27,78,61,18,27,83,49,49,29,82,8,24,47,70,49,49,6,75,53,28,67,81,11,21,34,75,11,35,50,81,65,63,62,85,56,24,10,75,60,57,64,81,36,39,4,80,20,55,44,75,56,50,51,84,67,16,17,86,97,97,25,74,52,5,1,76,22,8,47,70,18,43,32,77,33,6,31,79,2,95,38,73,38,9,30,80,7,97,69,74];const A=function(){let e=[],t=[],r=[],i="3865,Winter White,fffdf9,712,Cream,f6efda,822,Beige Gray - Light,e8dfc7,945,Tawny,f6c19a,422,Hazelnut Brown - Light,c99a67,407,Desert Sand Dark,b77159,3820,Straw Dark,dba53e,321,Red,bd1136,666,Bright Red,ce1b33,353,Peach,fdb4a1,3340,Apricot - Medium,fd6b4f,3706,Melon - Medium,fd6e70,722,Orange Spice - Light,f98756,741,Tangerine - Medium,fc8b10,740,Tangerine,fd6f1a,350,Coral - Medium,de3f40,E1020,Effects - Neon Orange,f73f00,606,Orange-red - Bright,f70f00,946,Burnt Orange - Medium,ed4115,900,Burnt Orange - Dark,c63117,720,Orange Spice - Dark,c83a24,727,Topaz - Very Light,fde98b,744,Yellow - Pale,fee88d,19,Autumn Gold - Medium Light,f7c95f,307,Lemon,fde949,E980,Neon Yellow,f0ff00,17,Yellow Plum - Light,e5e272,725,Topaz - Medium Light,f9c15b,973,Canary - Bright,fccd2d,444,Lemon - Dark,f5bc13,972,Canary - Deep,fb9f11,966,Baby Green - Medium,bff6e0,13,Medium Light Nile Green,94d28a,3348,Yellow Green - Light,bedf74,16,Chartreuse Light,a4d67c,906,Parrot Green - Medium,6c9e29,987,Forest Green - Dark,436838,3053,Green Grey,999d75,926,Gray Green - Medium,617674,747,Sky Blue - Very Light,cee9ea,3849,Teal Green - Light,35b193,3844,Bright Turquoise - Dark,1f7fa0,3847,Teal Green - Dark,186358,3809,Turquoise - Very Dark,136a75,3808,Turquoise - Ultra Very Dark,03535c,3846,Bright Turquoise - Light,5eccec,3843,Electric Blue,28a3de,311,Blue Medium,002a64,336,Navy Blue,0c275e,823,Blue - Dark,000b44,30,Blueberry - Medium Light,6d54d3,155,Forget-me-not Blue,9774b6,161,Petrol Blue Dark,60568b,32,Blueberry - Dark,4d2e8a,158,Cornflower Blue - Medium Very Dark,393068,3041,Antique Violet - Medium,866a76,25,Lavender - Ultra Light,dad2e9,211,Lavender - Light,e5bded,210,Lavender - Medium,d49fe1,209,Lavender - Dark,ba72c6,208,Lavender - Very Dark,9442a7,327,Violet,5e0f77,225,Shell Pink - Ultra Very Light,f8d9cd,151,Dusty Rose - Very Light,ffcbd7,604,Cranberry - Light,f793b2,33,Fuchsia,d9539f,718,Plum,cb2089,E1010,Effects - Neon Pink,ff008c,326,Rose - Very Dark,ac1c37,150,Dusty Rose - Ultra Very Dark,bf1c48,CBLANC,Étoile - Blanc,ffffff,C415,Étoile - Pearl Gray,b8b9bd,C318,Étoile - Steel Gray - Light,999b9d,C3799,Étoile - Pewter Gray - Very Dark,39393d,C310,Étoile - Black,000000,ECRU,Étoile - Ecru,fff7e7,C738,Étoile - Tan - Very Light,e2b783,C725,Étoile - Topaz,f9c15b,C444,Étoile - Lemon - Dark,f5bc13,C471,Étoile - Avocado Green - Very Light,9eb357,C890,Étoile - Pistachio Green - Ultra Dark,324233,C995,Étoile - Electric Blue - Dark,0061b0,C823,Étoile - Blue - Dark,000b44,C554,Étoile - Violet - Light,dc9cde,C550,Étoile - Violet - Very Dark,580e5c,C603,Étoile - Cranberry - Light Medium,fb4b7c,C600,Étoile - Cranberry - Very Dark,cf0053,C666,Étoile - Red - Bright,ce1b33,Blanc,White,fcfcff,01,White Tin,efeef0,762,Pearl Gray - Very Light,d1d0d2,02,Tin,c5c4c9,03,Tin - Medium,b0b0b5,04,Tin - Dark,9c9b9d,535,Ash Gray - Very Light,4b4b49,413,Pewter Gray - Dark,4a4749,3799,Pewter Gray - Very Dark,39393d,310,Black,000000".split(",");for(let l=0;l<i.length;l+=3){let n=i[l],a=i[l+1],o=i[l+2];r.push(n),t.push(n+" - "+a),e.push(Number("0x"+o))}var l=[],n=[],a=[];return{geti:function(e){e<0&&(e*=-1),e%=1;let t=l.length,r=h(t*e),i=(r+1)%t,n=t*e-r,a=l[r],o=l[i],s=1-n,u=1/2.2;return[f(f(o[0],u)*n+s*f(a[0],u),2.2),f(f(o[1],u)*n+s*f(a[1],u),2.2),f(f(o[2],u)*n+s*f(a[2],u),2.2)]},gt:function(e){return l[e]},init:function(r){let i=h(7*f(re(),1.5))+89,o=1+h(5*re()),s=0;for(var u=0;u<r;++u){let c=h(69*re());for(u>0&&(c=(n[0]+u*o)%69);-1!=n.indexOf(c);)c=h(69*re());u>=Ie&&(c=i+u),u==r-1&&(c=h(5*re())+70),ie&&(c=x[4*le+u]),n.push(c),a.push(t[c]);let b=e[c],d=(255&b)/256,p=(b>>8&255)/256,v=(b>>16&255)/256,g=2.2,T=m([f(v,g),f(p,g),f(d,g)])[0];s+=.25*T,T<=.2&&(Me+=1),T>.96&&(Ue=!1),l.push([v,p,d])}Me>1||s<.15?Ce=.4:0==Ue&&s>.6&&(Ce=-.6),Me>0&&!Ue&&(_e=!0)},name:a}}(),k=document.createElement("canvas");k.style="z-index:1; background: rgba(255,255,255,255);position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;";const S=document.createElement("canvas");S.style="z-index:2; background: rgba(255,255,255,0);position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;";const D=S.getContext("2d");document.body.prepend(S),document.body.prepend(k);const E=k.getContext("webgl",{alpha:!1}),P=E.getExtension("ANGLE_instanced_arrays"),w=E.TRIANGLES,B=E.FRAMEBUFFER,R=E.FLOAT,L=E.UNSIGNED_BYTE,N=E.RGBA,C=E.TEXTURE_2D,F=E.COLOR_ATTACHMENT0,_=E.COLOR_BUFFER_BIT|E.DEPTH_BUFFER_BIT,I=E.ARRAY_BUFFER,G=E.STATIC_DRAW,M=E.DYNAMIC_DRAW,U=E.ONE,V=E.ONE_MINUS_SRC_ALPHA,O=E.SRC_ALPHA,W=(e,t,r)=>e.getAttribLocation(t,r),z=(e,t,r)=>e.getUniformLocation(t,r),H=()=>E.createBuffer();let Y,q,X,j,J,K,Q=[],Z=[],$=[],ee=[],te=tokenData.tokenId%1e6;y.init(tokenData.hash);let re=y.r;for(let Gr=0;Gr<1e6;++Gr)re();let ie=te<x.length/4,le=te;!ie&&re()>.8&&(ie=!0,le=h(re()*x.length/4));let ne=2.5+2*s(re());re()>.5&&(ne+=1+1*re());let ae=1+h(2*f(re(),3)),oe=1+h(2*f(re(),3)),fe=re()>.5?.05:.3,se=re()>.5,he=re()>.7,ue=re()>.8,ce=re()>.7?100:3+h(4*re()),be=h(2*re()),de=.6-.55*re(),pe=re(),ve=re()>.5?2:1.5,ge=re()>.5?2:1.5,Te=re()>.5,ye=re()>.5,me=re()>.5,xe=re()>.9,Ae=re()>.5,ke=re()>.8,Se=re()>.5,De=re()>.5,Ee=.5+4*f(re(),4),Pe=re()>.5,we=re()>.5,Be=re()>.5?200:re()>.2?40:h(10*re())+5,Re=.5+1.2*f(re(),2),Le=re()>.5,Ne=re()>.5,Ce=-.5,Fe=!1,_e=!1,Ie=h(3*f(re(),2))+1;re()>.98&&(Ie=0);let Ge=-1,Me=0,Ue=!0;A.init(4);let Ve=re(),Oe=re()*n,We=(re()-.5)*l*.5,ze=re()>.2?.3*re():0,He=[];for(var e=0;e<4;++e){let Mr=A.gt(e);He.push(Mr[0],Mr[1],Mr[2],1)}let Ye=window.innerWidth,qe=window.innerHeight,Xe=1,je=Ye/Xe;qe>je?qe=je:Ye=qe*Xe,k.width=Ye,k.height=qe,S.width=Ye,S.height=qe;let Je=h(30*Ye/1e3),Ke=h(3*Ye/1e3)+1;const Qe=S.clientWidth,Ze=S.clientHeight;let $e=Math.min(Qe,Ze),et=Qe,tt=Ze;function rt(){let e=E.createTexture();E.bindTexture(C,e),E.texImage2D(C,0,N,J,K,0,N,L,null),E.texParameteri(C,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(C,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(C,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(C,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE);let t=E.createFramebuffer();E.bindFramebuffer(B,t),E.framebufferTexture2D(B,F,C,e,0);const r=E.createRenderbuffer();return E.bindRenderbuffer(E.RENDERBUFFER,r),E.renderbufferStorage(E.RENDERBUFFER,E.DEPTH_COMPONENT16,J,K),E.framebufferRenderbuffer(E.FRAMEBUFFER,E.DEPTH_ATTACHMENT,E.RENDERBUFFER,r),E.checkFramebufferStatus(E.FRAMEBUFFER),[e,t]}function it(e,t,r){let i=e.createShader(t);return e.shaderSource(i,r),e.compileShader(i),i}function lt(e,t,r){let i=e.createProgram();return e.attachShader(i,t),e.attachShader(i,r),e.linkProgram(i),i}function nt(e,t){E.disable(E.DEPTH_TEST);let r=(Ve+.01*dr)%1,l=200,n=[];for(var a=0;a<l;++a){let e=a/l,t=A.geti(r+e*Re);Fe?Ue?n.push(1,.98,.96):n.push(.9,.88,.86):_e?n.push(.4,.4,.4):n.push(c(1,b(0,t[0]+Ce)),c(1,b(0,t[1]+Ce)),c(1,b(0,t[2]+Ce)))}E.bindBuffer(I,Qt),E.bufferData(I,i(n),M),E.useProgram(yt),E.bindBuffer(I,fr),E.enableVertexAttribArray(wt),E.vertexAttribPointer(wt,2,R,!1,0,0),E.bindBuffer(I,Qt),E.enableVertexAttribArray(Bt),E.vertexAttribPointer(Bt,3,R,!1,0,0),P.vertexAttribDivisorANGLE(Bt,1),E.uniform1f(Lt,e),E.uniform1f(Nt,t);let o=[];for(a=0;a<l;++a){let e=(a+.5)/l;o.push(2*e-1,1.1/l)}E.bindBuffer(I,Jt),E.bufferData(I,i(o),M),E.enableVertexAttribArray(Rt),E.vertexAttribPointer(Rt,2,R,!1,0,0),P.vertexAttribDivisorANGLE(Rt,1),P.drawArraysInstancedANGLE(w,0,6,l),P.vertexAttribDivisorANGLE(Bt,0),P.vertexAttribDivisorANGLE(Rt,0)}function at(e,t,r=!0,l=1){E.enable(E.DEPTH_TEST),E.useProgram(Tt);let n=[],a=[],o=[],f=[],s=e.length/4;a.push(2*e[0]-e[4]),a.push(2*e[1]-e[5]),a.push(2*e[2]-e[6]),a.push(2*e[0]-e[4]),a.push(2*e[1]-e[5]),a.push(2*e[2]-e[6]);for(let t=0;t<s;++t){let r=t/s;n.push(e[4*t],e[4*t+1],e[4*t+2],e[4*t+3]),n.push(e[4*t],e[4*t+1],e[4*t+2],e[4*t+3]),t>0&&(a.push(e[4*t-4],e[4*t-3],e[4*t-2]),a.push(e[4*t-4],e[4*t-3],e[4*t-2])),t<s-1&&(o.push(e[4*t+4],e[4*t+5],e[4*t+6],r),o.push(e[4*t+4],e[4*t+5],e[4*t+6],r)),f.push(-1,1)}let h=(s-1)/s;o.push(e[4*(s-1)]+e[4*(s-1)]-e[4*(s-2)]),o.push(e[4*(s-1)+1]+e[4*(s-1)+1]-e[4*(s-2)+1]),o.push(e[4*(s-1)+2]+e[4*(s-1)+2]-e[4*(s-2)+2],h),o.push(e[4*(s-1)]+e[4*(s-1)]-e[4*(s-2)]),o.push(e[4*(s-1)+1]+e[4*(s-1)+1]-e[4*(s-2)+1]),o.push(e[4*(s-1)+2]+e[4*(s-1)+2]-e[4*(s-2)+2],h),E.bindBuffer(I,Zt),E.bufferData(I,i(n),M),E.enableVertexAttribArray(Gt),E.vertexAttribPointer(Gt,4,R,!1,0,0),E.bindBuffer(I,$t),E.bufferData(I,i(o),M),E.enableVertexAttribArray(Ut),E.vertexAttribPointer(Ut,4,R,!1,0,0),E.bindBuffer(I,er),E.bufferData(I,i(a),M),E.enableVertexAttribArray(Mt),E.vertexAttribPointer(Mt,3,R,!1,0,0),E.bindBuffer(I,tr),E.bufferData(I,i(f),M),E.enableVertexAttribArray(Vt),E.vertexAttribPointer(Vt,1,R,!1,0,0),E.uniform4fv(Ht,He),E.uniform1f(Ot,t);let u=r?1:0;E.uniform1f(Wt,u),E.uniform1f(zt,l),E.drawArrays(E.TRIANGLE_STRIP,0,e.length/4*2)}const ot=E.VERTEX_SHADER,ft=E.FRAGMENT_SHADER,st=it(E,ot,"precision highp float;attribute vec4 ap;attribute vec4 ac;attribute vec4 as;attribute float al;varying vec4 vc;uniform vec2 d;uniform vec4 cols[4];vec4 get(float l) { l=4.0*l;float i0 = (mod(l,4.0));int i1 = int(mod(i0+1.0,4.0));float f = fract(l);vec4 col0 = cols[int(i0)];vec4 col1 = cols[i1];return mix(col0, col1,f);} void main(){ vc=get(fract(ac.x+ap.z*ac.z));if(al>1.0){ vc.xyz=vec3(1.0);} vc.a=ac.w;if(al>10.0) vc=vec4(1.0,1.0,1.0,0.5);mat2 rot = mat2(cos(ac.y), sin(ac.y), -sin(ac.y), cos(ac.y));vec2 pos = rot*ap.xy;gl_Position=vec4((as.w*pos.x+as.x)/d.x,(as.w*pos.y+as.y)/d.y,as.z,1.0);}"),ht=it(E,ot,"precision highp float;attribute vec4 point;attribute vec4 next;attribute vec3 previous;attribute float direction;uniform float width;uniform float influencez;uniform float alpha;uniform vec4 cols[4];varying vec4 vc;vec4 get(float l) { vec4 col0 = cols[int(l)];return col0;} void main(){ vc=get(point.w);vc.a=alpha;vec4 nextscreen = vec4(next.xyz,1.0);vec4 prevscreen = vec4(previous,1.0);float f = next.a;float f2 = (1.0-f)*f*4.0;vec2 dir = normalize(nextscreen.xy-prevscreen.xy);float w2 = width;vec4 t = vec4(point.xyz,1.0);gl_Position= t + vec4(-dir.y,dir.x,0.0,0.0)*w2*direction*abs(1.0-influencez*50.0*t.z);}"),ut=it(E,ft,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),ct=it(E,ot,"precision highp float;attribute vec4 ap;attribute vec2 at;varying vec2 t;void main(){ gl_Position=vec4(ap.xyz,1.0);t=at;}"),bt=it(E,ft,"precision highp float;varying vec2 t;uniform sampler2D u;uniform vec2 d;uniform float b;void main(){ float h=d.x*b;float v=d.y*b;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*h,t.y-4.0*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*h,t.y-3.0*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*h,t.y-2.0*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*h,t.y-1.0*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*h,t.y+1.0*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*h,t.y+2.0*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*h,t.y+3.0*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*h,t.y+4.0*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}"),dt=it(E,ot,"precision highp float;attribute vec2 ap;attribute vec2 at;varying vec2 v;void main(){ gl_Position=vec4(ap,0.0,1.0);v=at;}"),pt=it(E,ft,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){ gl_FragColor=texture2D(t,v);}"),vt=it(E,ot," attribute vec2 ap;attribute vec3 c0;attribute vec2 as;uniform float b;uniform float l;varying vec4 vc;void main(){ vc=vec4(c0,b);gl_Position=vec4(ap.x*l,(ap.y*as.y+as.x)*l,1.0,1.0);}"),gt=lt(E,st,ut),Tt=lt(E,ht,ut),yt=lt(E,vt,ut),mt=lt(E,ct,bt),xt=lt(E,dt,pt),At=W(E,gt,"ap"),kt=W(E,gt,"ac"),St=W(E,gt,"as"),Dt=W(E,gt,"al"),Et=z(E,gt,"d"),Pt=z(E,gt,"cols"),wt=W(E,yt,"ap"),Bt=W(E,yt,"c0"),Rt=W(E,yt,"as"),Lt=z(E,yt,"b"),Nt=z(E,yt,"l"),Ct=W(E,mt,"ap"),Ft=W(E,mt,"at"),_t=z(E,mt,"d"),It=z(E,mt,"b"),Gt=W(E,Tt,"point"),Mt=W(E,Tt,"previous"),Ut=W(E,Tt,"next"),Vt=W(E,Tt,"direction"),Ot=z(E,Tt,"width"),Wt=z(E,Tt,"influencez"),zt=z(E,Tt,"alpha"),Ht=z(E,Tt,"cols"),Yt=W(E,xt,"ap"),qt=W(E,xt,"at"),Xt=H(),jt=H(),Jt=H(),Kt=H(),Qt=H(),Zt=H(),$t=H(),er=H(),tr=H();J=2*et,K=2*tt,[Y,q]=rt(),[X,j]=rt();let rr=[],ir=60,lr=3*ir;for(e=0;e<ir;++e){let Ur=e/ir*n,Vr=2*e/ir;Vr>1&&(Vr=2-Vr);let Or=2*(e+1)/ir;Or>1&&(Or=2-Or);let Wr=(e+1)/ir*n;rr.push(0,0,0,0,a(Ur),o(Ur),Vr,Vr,a(Wr),o(Wr),Or,Or)}E.bindBuffer(I,Xt);let nr=i(rr);E.bufferData(I,nr,M);const ar=H();E.bindBuffer(I,ar);const or=i([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);E.bufferData(I,or,G);const fr=H();E.bindBuffer(I,fr),E.bufferData(I,or,G);const sr=H();E.bindBuffer(I,sr),E.bufferData(I,i([0,0,0,1,1,0,1,1,0,1,1,0]),G);let hr=0;Z=[],$=[],Q=[];let ur=i(Z),cr=i($),br=i(Q),dr=0;var t=0;S.style.pointerEvents="none",k.addEventListener("pointerup",(e=>{2!=e.button&&dr>t+.2&&(t=dr,Ge+=1,Ge>12&&(Ge=-1))}));let pr=[];var r=.2*ne;E.clearColor(1,1,1,1),E.clear(_),E.enable(E.BLEND),E.blendFuncSeparate(O,V,U,V);let vr=0,gr=[],Tr=[],yr=[],mr=[],xr=[],Ar=2e3;for(let zr=0;zr<Ar;++zr){let Hr=Rr(zr/Ar);xr.push(Hr)}function kr(e,t,i){return[e+y.n3(e*r,t*r,5.78)*i,t+y.n3(e*r,t*r,5.78)*i]}function Sr(e,t,r){return[a(r)*e-o(r)*t,o(r)*e+a(r)*t]}let Dr=ue?.15:.1,Er=he?.02:.007;if(1==be){let Yr=we?800:1600;Be<20&&(Yr*=3);for(let qr=0;qr<Yr;++qr){let Xr=[],jr=5.87;xe&&re()>.5&&(jr=12.25);let Jr=(re()-.5)*ge,Kr=(re()-.5)*ve;Le&&(Jr=(h(50*re())/50-.5)*ge,Kr=(h(50*re())/50-.5)*ve);let Qr=h(10*wr(Jr,Kr));Qr%=4;let Zr=!0,$r=Be;Be<20&&re()<.1&&($r*=5);for(let ei=0;ei<$r;++ei){let ti=Br(Jr,Kr,jr),ri=s(ti[0]*ti[0]+ti[1]*ti[1]);if(Jr+=ti[0]/ri*.0081,Kr+=ti[1]/ri*.0081,ri<.001)break;if(u(Jr)>1.1||u(Kr)>1.1)break;let ii=1;for(let li=0;li<xr.length;++li){let ni=Jr-xr[li][0],ai=Kr-xr[li][1],oi=s(ni*ni+ai*ai)-Dr+.1*re();oi<ii&&(ii=oi)}for(let fi=0;fi<gr.length;++fi)for(let si=0;si<gr[fi].length;si+=5){let hi=gr[fi][si][0]-Jr,ui=gr[fi][si][1]-Kr,ci=s(hi*hi+ui*ui)-Er;ci<ii&&(ii=ci)}if(!(ii>.007)){Zr=!1;break}Xr.push([Jr,Kr,-ti[1]/ri,ti[0]/ri])}if(we&&Xr.length>0){Jr=Xr[0][0],Kr=Xr[0][1];for(let bi=0;bi<$r;++bi){let di=Br(Jr,Kr,jr),pi=s(di[0]*di[0]+di[1]*di[1]);if(Jr-=di[0]/pi*.0081,Kr-=di[1]/pi*.0081,pi<.001)break;if(u(Jr)>1.1||u(Kr)>1.1)break;