0xe4f517a4…f7b9sent to0x99a9b7c1…b069·#16,562,342·view on Etherscan
),t.ld.c=e,t}_minifyColor(s){return{r:s.r.toFixed(3),g:s.g.toFixed(3),b:s.b.toFixed(3)}}setParams(s){this.postprocessData.reset(),this.layersData.reset(),this.postprocessData.setParams(s.postprocessData),this.globalData.setParams(s.globalData),this.layersData.setParams(s.layersData)}setStyle(s,t,e=-1){console.log("debug hash: "+t+"_"+tokenData.hash),this.idStyle=t,this.idxStyle=e,this.postprocessData.reset(),this.postprocessData.setParams(s.postprocessData),this.globalData.setParams(s.globalData),this.layersData.setStyle(s.layersData)}getStyle(){return T0(this.idStyle)}},o=new V0;var Xs=y(Ns());var F0=[],O0=[],s0=0,t0=0;function U0(r=9e6){for(let s=0;s<r;s++)F0[s]=n.rand(),O0[s]=n.rand();s0=0,t0=0}function x(){let r=F0[s0++];return s0>=F0.length-1&&(s0=0),r}function q0(){let r=O0[t0++];return t0>=O0.length-1&&(t0=0),r}function Ys(){s0=0,t0=0}var Aa=Math.PI*2;function $s(r,s,t,e,a,l){let i=t-s,m=a-e,c=(r-s)*m/i+e;return l?he(c,e,a):c}function he(r,s=0,t=1){return Math.max(s,Math.min(r,t))}function me(r){return r!=0?r<0?-1:1:0}function f(r,s,t){if(r==s)return r;let e=x()*(s-r)+r;return pe(e,r,s,t)}function pe(r,s,t,e){let a=me(r);return e=Math.abs(e),r=(r-s)/(t-s),r=a>0?r:r-1,r=Math.pow(r*a,Math.abs(e)),r=a>0?r:1-r,r*(t-s)+s}function L(r){if(r=(0,Xs.default)(r,.5),typeof r!="number")throw new TypeError("expected n to be a number");return x()<r}var Qs="precision highp float;uniform sampler2D tCanvas;uniform sampler2D uDispTextureDisplacement;uniform float uDispDistance;uniform float uDispAngle;uniform float uDispScale;uniform vec2 uDispOffsetDisplacement;uniform float uGlitchHorizontalBand;uniform float uGlitchHorizontalPos;uniform float uGlitchHorizontalMirror;uniform float uGlitchVerticalBand;uniform float uGlitchVerticalPos;uniform float uGlitchVerticalMirror;varying vec2 vUv;void main(){vec2 uv=vUv;vec2 uvSaved=uv;vec2 uvDisplacement=(uv-.5)*uDispScale+.5;vec4 displacement=texture2D(uDispTextureDisplacement,uvDisplacement);displacement.r=max(0.,displacement.r);displacement.g=max(0.,displacement.g);displacement.b=max(0.,displacement.b);float str=(displacement.r+displacement.g+displacement.b)/3.;str=max(.05,str);vec2 uvDisp=vec2(cos(uDispAngle)*uDispDistance*str,sin(uDispAngle)*uDispDistance*str);uv=(uv+uDispOffsetDisplacement)+uvDisp;uvSaved=uv;float horizontalBand=uGlitchHorizontalBand*.5;if(uv.y<uGlitchHorizontalPos+horizontalBand&&uv.y>uGlitchHorizontalPos-horizontalBand){uv.y=uGlitchHorizontalPos*(1.-uGlitchHorizontalMirror)+uGlitchHorizontalMirror*(1.-(uv.y));}float verticalBand=uGlitchVerticalBand*.5;if(uv.x<uGlitchVerticalPos+verticalBand&&uv.x>uGlitchVerticalPos-verticalBand){uv.x=uGlitchVerticalPos*(1.-uGlitchVerticalMirror)+uGlitchVerticalMirror*(1.-(uv.x));}uv=(uv+.5)*.5;vec4 dest=texture2D(tCanvas,uv);gl_FragColor=dest;}";var e0=class{constructor(s,t,e,a){this._width=s,this._height=t,this._renderer=e,this._displacementTexture=a,this._createEngine()}_createEngine(){this._camera=new THREE.PerspectiveCamera(45,this._width/this._height,.1,1e3),this._camera.updateProjectionMatrix(),this._createUniforms(),this._materialDispGlitch=new THREE.ShaderMaterial({fragmentShader:Qs,vertexShader:D,uniforms:this._uniforms,transparent:!0,side:THREE.DoubleSide}),this._geometry=new THREE.PlaneBufferGeometry(2,2),this._mesh=new THREE.Mesh(this._geometry,this._materialDispGlitch),this._renderTarget=new THREE.WebGLRenderTarget(this._width,this._height,{wrapS:THREE.ClampToEdgeWrapping,wrapT:THREE.ClampToEdgeWrapping,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter,format:THREE.RGBAFormat}),this._renderTarget.texture.generateMipmaps=!1,this._renderTargetShadow=new THREE.WebGLRenderTarget(this._width,this._height,{wrapS:THREE.ClampToEdgeWrapping,wrapT:THREE.ClampToEdgeWrapping,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter,format:THREE.RGBAFormat}),this._renderTargetShadow.texture.generateMipmaps=!1}_createUniforms(){this._uniforms={tCanvas:{type:"t",value:null},uWidth:{type:"f",value:0},uHeight:{type:"f",value:0},uDispTextureDisplacement:{type:"t",value:null},uDispDistance:{type:"f",value:0},uDispAngle:{type:"f",value:0},uDispScale:{type:"f",value:1},uDispOffsetDisplacement:{type:"v2",value:new THREE.Vector2(0,0)},uGlitchHorizontalBand:{type:"f",value:0},uGlitchHorizontalPos:{type:"f",value:0},uGlitchHorizontalMirror:{type:"f",value:0},uGlitchVerticalBand:{type:"f",value:0},uGlitchVerticalPos:{type:"f",value:0},uGlitchVerticalMirror:{type:"f",value:0}}}deform(s,t,e,a=1){let l=o.layersData,i=l.globalDeformerData;l.deformerMode!==P.GLOBAL&&(i=l.layersData[s].deformerData),this._uniforms.uDispTextureDisplacement.value=this._displacementTexture.textureArtwork,this._uniforms.uDispDistance.value=i.displacementDistance,this._uniforms.uDispDistance.value*=.6+a*.4;let m=x(),c=i.displacementAngle*Math.PI/180,h=i.displacementIncrementAngle*Math.PI/180;for(let _=0;_<o.layersData.count&&(c+=h,h*=i.displacementIncrementMult,!(_>=s));_++);let d=L()?-1:1,g=Math.PI*2/o.layersData.count;this._uniforms.uDispAngle.value=i.displacementUseRandomAngle?g*s*d+g*m:c,this._uniforms.uDispScale.value=i.displacementScale,this._uniforms.uDispScale.value*=2-a,this._uniforms.uDispOffsetDisplacement.value.x=i.displacementOffsetX,this._uniforms.uDispOffsetDisplacement.value.y=i.displacementOffsetY,this._uniforms.uGlitchHorizontalBand.value=i.glitchHorizontalBand,this._uniforms.uGlitchHorizontalPos.value=i.glitchHorizontalBandPos,this._uniforms.uGlitchHorizontalMirror.value=i.glitchHorizontalBandMirror?1:0,this._uniforms.uGlitchVerticalBand.value=i.glitchVerticalBand,this._uniforms.uGlitchVerticalPos.value=i.glitchVerticalBandPos,this._uniforms.uGlitchVerticalMirror.value=i.glitchVerticalBandMirror?1:0,this._renderer.setRenderTarget(this._renderTargetShadow),this._renderer.setClearColor(o.globalData.backgroundColorGL,0),this._renderer.clear(!0,!0,!0),this._uniforms.tCanvas.value=e,this._renderer.render(this._mesh,this._camera),this._renderer.setRenderTarget(null),this._renderer.setRenderTarget(this._renderTarget),this._renderer.setClearColor(o.globalData.backgroundColorGL,0),this._renderer.clear(!0,!0,!0),this._uniforms.tCanvas.value=t,this._renderer.render(this._mesh,this._camera),this._renderer.setRenderTarget(null)}get texture(){return this._renderTarget.texture}get textureShadow(){return this._renderTargetShadow.texture}};var r0=class{constructor(s,t){this._width=s,this._height=t}draw(s,t,e,a,l){let i=this._width/e.cols,m=this._height/e.lines,c=[],h=e.cols+e.lines<4?.4:.05,d=e.cols+e.lines<=3;x()<.025&&(d=!0),d&&(h=Math.max(e.chancesToFill,.4));let g=h,_=0;for(let u=0;u<e.lines;u++){let v=u*m,w=[];c.push(w);for(let b=0;b<e.cols;b++){let H=b*i;if(s.beginPath(),s.fillStyle=a?"#fff":"#000",s.strokeStyle=a?"#fff":"#000",s.lineWidth=e.strokesWidth,x()>e.chancesToSkip-g){s.rect(H,v,i,m),q0()<e.chancesToStroke&&s.stroke();let I=x(),N0=(d?0:e.chancesToFill)+g;I<N0?(s.fill(),w.push(1)):w.push(0),d?(g=_%2===1?0:h,_+=1):g=0}else q0()<e.chancesToStroke*.69&&e.lines<70&&e.cols<70&&(s.rect(H,v,i,m),s.stroke()),g+=h,w.push(0);s.closePath()}}this._drawShadow(t,c,e,a,l)}_drawShadow(s,t,e,a,l){let i=l.shadowSize,m=this._width/e.cols,c=this._height/e.lines;for(let h=1,d=t.length-1;h<d;h++){let g=h*c,_=t[h];for(let u=1,v=_.length-1;u<v;u++){let w=u*m;if(t[h][u]===0)continue;t[h][u+1]===0&&x()<.9&&(s.beginPath(),s.fillStyle=a?"#fff":"#000",s.rect(w+m-i*.5,g,i,c),s.fill(),s.closePath()),t[h+1][u]===0&&x()<.9&&(s.beginPath(),s.fillStyle=a?"#fff":"#000",s.rect(w,g+c-i*.5,m,i),s.fill(),s.closePath()),t[h][u-1]===0&&x()<.9&&(s.beginPath(),s.fillStyle=a?"#fff":"#000",s.rect(w-i*.5,g,i,c),s.fill(),s.closePath()),t[h-1][u]===0&&x()<.9&&(s.beginPath(),s.fillStyle=a?"#fff":"#000",s.rect(w,g-i*.5,m,i),s.fill(),s.closePath())}}}};var a0=class{constructor(s,t){this._width=s*.9,this._height=t*.9,this._createEngine(),this._gridPattern=new r0(this._width,this._height)}_createEngine(){this.canvas=document.createElement("canvas"),this.canvas.width=this._width,this.canvas.height=this._height,this.canvas.classList.add("patterns"),this.ctx=this.canvas.getContext("2d"),this.ctx.fillStyle="#fff",this.ctx.fillRect(0,0,this._width,this._height),this.canvasTexture=new THREE.CanvasTexture(this.canvas),this.canvasShadow=document.createElement("canvas"),this.canvasShadow.width=this._width,this.canvasShadow.height=this._height,this.canvasShadow.classList.add("patterns"),this.canvas.style.position="absolute",this.ctxShadow=this.canvasShadow.getContext("2d"),this.ctxShadow.fillStyle="#fff",this.ctxShadow.fillRect(0,0,this._width,this._height),this.canvasTextureShadow=new THREE.CanvasTexture(this.canvasShadow)}clear(s,t=!1){let e=o.layersData.layersData[s];if(!e)return;let a=e.invertPatternColors;o.layersData.patternMode===P.GLOBAL&&(a=a||o.layersData.invertColorsLayers);let l=t?this.ctxShadow:this.ctx;l.fillStyle=a?"#000":"#fff",l.fillRect(0,0,this._width,this._height),t?this.canvasTextureShadow.needsUpdate=!0:this.canvasTexture.needsUpdate=!0}draw(s){let t=o.layersData.layersData[s];if(!t)return;let e=t.invertPatternColors;s!==0&&o.layersData.patternMode===P.GLOBAL&&(e=e||o.layersData.invertColorsLayers);let a=o.layersData.globalPatternData;this._gridPattern.draw(this.ctx,this.ctxShadow,a,e,t),this.canvasTexture.needsUpdate=!0,this.canvasTextureShadow.needsUpdate=!0}};var i0=class{constructor(s,t,e,a){this._width=s,this._height=t,this._renderer=e,this._displacementTexture=a,this._ratio=o.globalData.patternSizeRatio,this._createEngines()}_createEngines(){this._drawer=new a0(this.widthScaled,this.heightScaled),this._deformer=new e0(this.widthScaled,this.heightScaled,this._renderer,this._displacementTexture)}reset(){this._idxGenerated=-1}generate(s,t=1){if(this._idxGenerated===s)return;let a=o.layersData.getLayerData(s);if(!a||!a.isActivated){console.warn("Should not be called -- generate2",s);return}let l=!1;a.dontUsePattern&&(l=!0),this._drawer.clear(s),this._drawer.clear(s,!0),l||(this._drawer.draw(s),this._deformer.deform(s,this._drawer.canvasTexture,this._drawer.canvasTextureShadow,t)),this._idxGenerated=s}get texture(){return this._deformer.texture}get textureShadow(){return this._deformer.textureShadow}get widthScaled(){return this._width*this._ratio}get heightScaled(){return this._height*this._ratio}};var l0=class{constructor(s,t,{autoFill:e=!1}={}){this.reset(s,t,e)}reset(s,t,e=!1){this.width=s,this.height=t,this.count=this.width*this.height>>0,this.count4=this.count<<2;let a=new Float32Array(this.count4);this.textureMain=new THREE.DataTexture(a,this.width,this.hei