FT
2

 
 
Hi

Project Shift 008

Policy: cd191f...20ef
Owner:

    Metadata:

    {
      "name": "Project Shift 008",
      "seed": 586,
      "files": [
        {
          "src": [
            "data:text/html;utf8,<html><head><body style='margin:0;overflow:h",
            "idden'><canvas id='tc' tabindex='1'><a id='link'></a><script>con",
            "st Q=s=>eval('(v,a,b,c,d)=>'+s),CHAR=C=>String.fromCharCode(C),F",
            "or=Q('{for(v=v;v<a;v++)b(v,v/(a-1))}'),FoE=Q('For(0,v.length,(i,",
            "t)=>a(v[i],i,t))'),cR=Q('`rgba(${v},${a},${b},${c})`'),cH=Q('`hs",
            "la(${v},${a}%25 ,${b}%25 ,${c})`'),cM=Q('cR(v,v,v,a)'),cHx=C=>'r",
            "gb('+((C=parseInt(C,16))>>16&255)+','+(C>>8&255)+','+(255&C)+')'",
            ";let P=(v,a,b,c)=>{for(b=b.split(':'),c=0;c<b.length;c+=2)eval(`",
            "C${b[c]}=${v}=>ctx.${b[c+1]}${a}`)},t='(...a)';P(t,t,'TC:clip:RT",
            ":rect:GT:getTransform:DI:drawImage:FT:fillText:EL:ellipse:BP:beg",
            "inPath:CP:closePath:MT:moveTo:LT:lineTo:BC:bezierCurveTo:ST:stro",
            "ke:VS:save:VR:restore:TR:setTransform:XT:translate:XS:scale:XR:r",
            "otate:FR:fillRect:RE:rect:FL:fill'),P('a','=a','SBr:shadowBlur:L",
            "W:lineWidth:TA:textAlign:TB:textBaseline:SC:shadowColor:SS:strok",
            "eStyle:GC:globalCompositeOperation:FS:fillStyle');const DEF=(C,e",
            ")=>{C=C??CANV,e=e??_R,CTR(e,0,0,e,0,0),CFS(C),CSS(C),CTA('center",
            "'),CSB(0),MUL()},CSB=C=>CSBr(C*_R),DCE=C=>document.createElement",
            "(C),CCX=C=>ctx=C||CTX,FNT=C=>ctx.font=C+'px Arial',TXT=(C,e,...t",
            ")=>{CFS(C),FNT(e),CFT(...t)},ELI=(C,...e)=>{CFS(C),CBP(),CEL(...",
            "e),CFL()},ADD=C=>CGC('screen'),MUL=C=>CGC('source-over'),CWH=(C,",
            "e,t)=>{C.width=e,C.height=t||e},BG=C=>RECT(C,0,0,_W,_H),RECT=(C,",
            "...e)=>{CBP(),CFS(C),CFR(...e),CFL()},AA=(C,e)=>C.imageSmoothing",
            "Enabled=C.mozImageSmoothingEnabled=C.webkitImageSmoothingEnabled",
            "=e;function v2(C,e){var t=this,i=(C,e)=>(t.x=C||0,t.y=e||0,t);i(",
            "C,e),Object.assign(t,{set:i,circ:C=>i(sin(C),-cos(C)),perp:C=>i(",
            "t.y,-t.x),len:C=>sqrt(t.x*t.x+t.y*t.y),dot:C=>t.x*C.x+t.y*C.y,no",
            "rm:C=>t.div(t.len()),rad:C=>atan2(t.x,-t.y),add:C=>i(t.x+C.x,t.y",
            "+C.y),sub:C=>i(t.x-C.x,t.y-C.y),mv:C=>i(t.x*C.x,t.y*C.y),inc:C=>",
            "i(t.x+C,t.y+C),mul:C=>i(t.x*C,t.y*C),div:C=>i(t.x/C,t.y/C),cpy:C",
            "=>V2(t.x,t.y)})}V2=Q('new v2(v,a)'),FoE(Object.getOwnPropertyNam",
            "es(Math),(i=>eval(`${i}=Math.${i}`)));const Lerp=Q('(1-v)*a+v*b'",
            "),Wrap=Q('v<a?b-(a-v)%25 (b-a):a+(v-a)%25 (b-a)'),Mapf=Q('b-a==0",
            "?c:c+(((v-a)/(b-a))*(d-c))'),Clamp=Q('v<a?a:min(b,v)'),Ease=C=>-",
            "(cos(PI*C)-1)/2,TAU=2*PI;class RNG{constructor(C){var e=this,t=4",
            "294967295,i=123456789+C&t,n=987654321-C&t,X=65535;e.r=C=>(((n=36",
            "969*(n&X)+(n>>>16)&t)<<16)+((i=18e3*(i&X)+(i>>>16)&t)&X)>>>0)/(t",
            "+1),e.f=(C,t)=>C+e.r()*(t-C),e.i=(C,t)=>floor(e.f(C,t)),e.c=C=>e",
            ".r()<C,e.item=C=>C[e.i(0,C.length)]}}CANV=cM(220,1),WALL=cHx('f5",
            "7411'),SHDW=cHx('0f0a06'),FPS=60;const SEED=586,TAG='PG-07-008',",
            "PX=1e3,HX=PX/2,uS=(C,e,t,n,X)=>{function r(C,e,t,i,n=!1){CBP(),C",
            "XR(C),a(i,0,-e,!0),1==n&&a(i+5,0,-e,!1),CXR(-C)}function a(C=300",
            ",e=PX/2,t=PX/2,i=!0){CVS(),CBP(),CSC('black'),CSS(w),1==i?CFS(w)",
            ":CFS('rgb(0,0,0,0)'),CLW(2),ctx.arc(e,t,C,0,2*Math.PI,!1),CST(),",
            "CFL(),CVR()}function c(C=0){let e,t;for(0==C?(e=20,t=[[HX+50,HX]",
            ",[HX-50,HX],[HX+25,HX-45],[HX-25,HX-45],[HX+25,HX+45],[HX-25,HX+",
            "45]]):1==C?(e=10,t=[[HX,HX-85],[HX,HX+85],[HX+75,HX+45],[HX-75,H",
            "X+45],[HX-75,HX-45],[HX+75,HX-45]]):2==C?(e=8,t=[[HX-105,HX],[HX",
            "+105,HX],[HX-55,HX-90],[HX+55,HX-90],[HX-55,HX+90],[HX+55,HX+90]",
            "]):3==C?(e=6,t=[[HX,HX-130],[HX,HX+130],[HX+110,HX-70],[HX+110,H",
            "X+70],[HX-110,HX-70],[HX-110,HX+70]]):4==C&&(e=4,t=[[HX+140,HX],",
            "[HX-140,HX],[HX+75,HX-120],[HX+75,HX+120],[HX-75,HX-120],[HX-75,",
            "HX+120]]),i=0;i<t.length;i++)a(e,...t[i])}function o(C=!0){CVS()",
            ",CBP(),CSS(1==C?w:y),CSC(1==C?w:y),CLW(2),CMT(5,5),CLT(50,5),CLT",
            "(50,25),CLT(35,25),CLT(35,50),CLT(5,50),CCP(),CRE(55,5,65,20),CR",
            "E(40,30,80,20),CRE(5,55,115,20),CST(),((C,e,t,i,n,X=!0)=>{CVS(),",
            "CBP(),1==X?(CSC(w),CFS(w)):CFS(y),CXT(C,e),CMT(0,0-t),CXR(Math.P",
            "I/5);for(var r=0;r<i;r++)CXR(Math.PI/i),CLT(0,0-t*n),CXR(Math.PI",
            "/i),CLT(0,0-t);CCP(),CFL(),CVR()})(20,38,3,5,3,C),CVR()}let S=(C",
            ",e=3)=>V.i(C-e,C+e),l=(C,e,t)=>(C.width=e,C.height=t,C.getContex",
            "t('2d'));function T(){let C=V.i(100,900);return[C,V.i(C-V.i(25,1",
            "00),C+V.i(25,100))]}CANV='black',WALL='black',SHDW='black';let P",
            ",H,s,v,u=e,h=document.createElement('canvas'),R=l(h,10,2*PX),g=d",
            "ocument.createElement('canvas'),L=l(g,.2*PX,.2*PX),m=document.cr",
            "eateElement('canvas'),d=l(m,200,200),F=document.createElement('c",
            "anvas'),E=l(F,200,200),f=document.createElement('canvas'),B=l(f,",
            "PX,PX),x=document.createElement('canvas'),D=l(x,PX,PX),M=documen",
            "t.createElement('canvas'),p=l(M,PX,PX),b=document.createElement(",
            "'canvas'),I=l(b,PX,PX),A=[],_=[],W=[],V=new RNG((new Date).getTi",
            "me()),w='white',y=cHx('737373'),G=0,N=0,$='- . -- .--. . .-. .- ",
            "-. -.-. .',k='.--- ..- ... - .. -.-. .',Q='.-- .. ... -.. --- --",
            "',O='-.-. --- ..- .-. .- --. .',Y=[[[156,90],[90,156],[90,142],[",
            "142,90],0],[[847,90],[912,156],[912,142],[862,90],0],[[90,847],[",
            "156,912],[142,912],[90,862],0],[[912,847],[912,862],[862,912],[8",
            "47,912],0]],U=[[[80,80],[180,80],[80,180]],[[922,80],[820,80],[9",
            "22,180]],[[922,820],[820,922],[922,922]],[[80,820],[80,922],[180",
            ",922]]],j=[[[180,80],[210,80],[80,210],[80,180],[25,60]],[[790,8",
            "0],[820,80],[922,180],[922,210],[745,60]],[[180,922],[210,922],[",
            "80,790],[80,820],[60,745]],[[790,922],[820,922],[922,820],[922,7",
            "90],[745,745]]],q=[[[210,80],[225,80],[80,225],[80,210]],[[775,8",
            "0],[790,80],[922,210],[922,225]],[[225,922],[210,922],[80,790],[",
            "80,775]],[[775,922],[790,922],[922,790],[922,775]]],z=[[95,245],",
            "[110,230],[125,215],[140,200],[155,185],[170,170],[185,155],[200",
            ",140],[215,125],[230,110],[245,95]],K=[[755,95],[770,110],[785,1",
            "25],[800,140],[815,155],[830,170],[845,185],[860,200],[875,215],",
            "[890,230],[905,245]],J=[[95,755],[110,770],[125,785],[140,800],[",
            "155,815],[170,830],[185,845],[200,860],[215,875],[230,890],[245,",
            "905]],Z=[[755,905],[770,890],[785,875],[800,860],[815,845],[830,",
            "830],[845,815],[860,800],[875,785],[890,770],[905,755]];return C",
            "=>{if(X(),AA(e,!0),G++,ctx.clearRect(0,0,PX,PX),1==G||(new Date)",
            ".getDate()!=P){for(CCX(R),CSB(2),(C=>{for(i=1;i<2e3;i++){if(i/2%",
            "25 1)continue;let C=T();CBP(),ctx.arc(S(1,i>=C[0]&&i<=C[1]?15:3)",
            ",i,1,0,2*Math.PI,!1),CFS(w),CFL()}})(),CCX(u),CCX(D),CSB(1),c(0)",
            ",c(2),c(4),CCX(p),CSB(1),c(1),c(3),CCX(d),CSB(2),o(!0),CCX(E),o(",
            "!1),1==G&&(CCX(B),CXT(HX,HX),(()=>{let C;for(CTB('middle'),CTA('",
            "center'),num=1;num<13;num++)C=num*Math.PI/6,CXR(C),CXT(0,.75*-HX",
            "),CXR(-C),a(12!=num&&8!=num&&4!=num?2:5,0,0,!0),CXR(C),CXT(0,.75",
            "*HX),CXR(-C)})()),CCX(I),ctx.clearRect(0,0,PX,PX),CSB(20),CBP(),",
            "CSC(w),CSS(w),CGC('source-over'),CLW(4),CRE(50,50,900,900),CST()",
            ",(()=>{for(i=0;i<U.length;i++)CBP(),CSC(w),CGC('source-over'),CS",
            "S(w),CLW(4),CMT(...U[i][0]),CLT(...U[i][1]),CLT(...U[i][2]),CCP(",
            "),CST()})(),CSB(1),(()=>{let C=(new Date).getFullYear().toString",
            "(2).split('').reverse();for(CBP(),CSC(w),CSS(w),CGC('source-over",
            "'),CLW(4),CMT(85,255),CLT(255,85),CCP(),CST(),CMT(170,170),CLT(1",
            "52,152),CCP(),CST(),i=0;i<=z.length-1;i++)a(7,...z[i],null!=C[i]",
            "&&C[i])})(),(()=>{let C=(new Date).getMonth()+1;for(C=C.toString",
            "(2).split('').reverse(),CBP(),CSC(w),CSS(w),CGC('source-over'),C",
            "LW(4),CMT(745,85),CLT(915,255),CCP(),CST(),CMT(830,170),CLT(848,",
            "152),CCP(),CST(),i=0;i<=K.length-1;i++)a(7,...K[i],null!=C[i]&&C",
            "[i])})(),(()=>{let C=(new Date).getDate().toString(2).split('').",
            "reverse();for(CBP(),CSC(w),CSS(w),CGC('source-over'),CLW(4),CMT(",
            "85,745),CLT(255,915),CCP(),CST(),CMT(170,830),CLT(152,848),CCP()",
            ",CST(),i=0;i<=J.length-1;i++)a(7,...J[i],null!=C[i]&&C[i])})(),(",
            "()=>{let C=(new Date).getDay()+1;for(C=C.toString(2).split('').r",
            "everse(),CBP(),CSC(w),CSS(w),CGC('source-over'),CLW(4),CMT(915,7",
            "45),CLT(745,915),CCP(),CST(),CMT(830,830),CLT(848,848),CCP(),CST",
            "(),i=0;i<=Z.length-1;i++)a(7,...Z[i],null!=C[i]&&C[i])})(),CCX(L",
            "),CSB(20),i=0;i<=1e3;i++)a(1,V.i(0,.2*PX),V.i(0,.2*PX),!0);v=Mat",
            "h.floor(((new Date).getMonth()+3)/3),P=(new Date).getDate(),CCX(",
            "u),CSB(0)}for(CRE(50,50,900,900),CVS(),ctx.clip(),i=1;i<=1;i++)C",
            "DI(h,V.i(50,950),V.i(-1e3,0),10,2*PX);return CVR(),(()=>{for(CVS",
            "();_.length<256;){let C;C='hsl(0, 0%25 , '+V.i(10,90)+'%25 )',_.",
            "push([V.i(50,950),V.i(50,950),C])}for(i=0;i<_.length;i++){let C=",
            "_[i][0],e=_[i][1];'x'==V.item(['x','y'])?C+=V.item([-1,1]):e+=V.",
            "item([-1,1]),50>C?C+=1:C>950&&(C-=1),50>e?e+=1:e>950&&(e-=1),_[i",
            "]=[C,e,_[i][2]],CFR(C-1.5,e-1.5,3,3),CBP(),CSS(_[i][2]),CLW(1),C",
            "MT(HX,HX),CLT(C,e),CST()}CVR()})(),CVS(),CXT(HX,HX),CXR(.01*G),C",
            "DI(M,-HX,-HX,PX,PX),CVR(),CVS(),CXT(HX,HX),CXR(.01*-G),CDI(x,-HX",
            ",-HX,PX,PX),CVR(),s=(new Date).getSeconds(),H!=s?(H=s,CDI(m,405,",
            "145,300,300)):CDI(F,405,145,300,300),(()=>{CVS(),CXT(HX,HX),CGC(",
            "'source-over');let C=new Date,e=C.getSeconds(),t=C.getMinutes();",
            "r(C.getHours()*PI/6+t*PI/360+e*PI/21600,.5*HX,0,16,C.getHours()>",
            "11),r(t*Math.PI/30+e*Math.PI/1800,.6*HX,0,8),r(e*Math.PI/30,.4*H",
            "X,0,4),CXR(.01*G),CDI(f,-PX/2,-PX/2,PX,PX),CVR()})(),(()=>{let C",
            "=Y[0][4],e=Y[1][4],t=Y[2][4],n=Y[3][4];for(CFS(w),'.'==$[C]?CFR(",
            "90,90,25,10):'-'==$[C]&&CFR(90,105,10,10),'.'==k[e]?CFR(886,90,2",
            "5,10):'-'==k[e]&&CFR(901,105,10,10),'.'==Q[t]?CFR(90,901,25,10):",
            "'-'==Q[t]&&CFR(90,886,10,10),'.'==O[n]?CFR(886,901,25,10):'-'==O",
            "[n]&&CFR(901,886,10,10),Y[0][4]=29==C?0:C+1,Y[1][4]=23==e?0:e+1,",
            "Y[2][4]=20==t?0:t+1,Y[3][4]=24==n?0:n+1,i=0;i<Y.length;i++)CBP()",
            ",CSC(w),CSS(w),CGC('source-over'),CLW(4),CMT(Y[i][0][0],Y[i][0][",
            "1]),CLT(...Y[i][1]),CLT(...Y[i][2]),CLT(...Y[i][3]),0==Y[i][4]&&",
            "(CFS(w),CFL()),CCP(),CST()})(),(()=>{let C=[U[0][0][0],U[0][0][1",
            "]],e=[U[1][0][0],U[1][0][1]],t=[U[3][1][0],U[3][1][1]],i=[U[2][2",
            "][0],U[2][2][1]];0==W.length&&(W=[C,0]),CBP(),CSC(w),CGC('source",
            "-over'),CSS(w),CLW(4),CMT(...W[0]),0==W[1]?(W[0][1]+=54,W[0][1]>",
            "=t[1]&&(W[0]=t,W[1]=1)):1==W[1]?(W[0][0]+=54,W[0][0]>=i[0]&&(W[0",
            "]=i,W[1]=2)):2==W[1]?(W[0][1]-=54,W[0][1]<=e[1]&&(W[0]=e,W[1]=3)",
            "):3==W[1]&&(W[0][0]-=54,W[0][0]<=C[0]&&(W[0]=C,W[1]=0)),CLT(...W",
            "[0]),CST()})(),(()=>{for(0==A.length&&(A=[[38,38,0]]),1==A.lengt",
            "h&&v>1&&A[0][0]>88&&A.push([38,38,0]),2==A.length&&v>2&&A[1][0]>",
            "88&&A.push([38,38,0]),3==A.length&&v>3&&A[2][0]>88&&A.push([38,3",
            "8,0]),i=0;i<A.length;i++)CBP(),CSC(w),CSS(w),CGC('source-over'),",
            "ctx.arc(A[i][0]+12,A[i][1]+12,12,0,2*Math.PI,!1),CST(),A[i][0]<9",
            "38&&0==A[i][2]?(A[i][2]=0,A[i][0]=A[i][0]+1):A[i][1]<938&&0==A[i",
            "][2]?(A[i][2]=0,A[i][1]=A[i][1]+1):A[i][0]>38?(A[i][2]=1,A[i][0]",
            "=A[i][0]-1):A[i][1]>38?(A[i][2]=1,A[i][1]=A[i][1]-1):(A[i][0]=38",
            ",A[i][1]=38,A[i][2]=0)})(),(()=>{for(i=0;i<j.length;i++)CBP(),CS",
            "C(w),CGC('source-over'),CSS(w),CLW(4),CMT(...j[i][0]),CLT(...j[i",
            "][1]),CLT(...j[i][2]),CLT(...j[i][3]),CCP(),CST(),CVS(),ctx.clip",
            "(),CDI(g,j[i][4][0]-V.i(-25,25),j[i][4][1]-V.i(-25,25),.2*PX,.2*",
            "PX),CVR()})(),(()=>{for(CBP(),CSC(w),CSS(w),CGC('source-over'),C",
            "LW(4),CBP(),i=0;i<=q.length-1;i++)CMT(...q[i][0]),CLT(...q[i][1]",
            "),CLT(...q[i][2]),CLT(...q[i][3]),'.'=='. ... . .   ... ... ... ",
            "  . . . ...   .'[N]&&(CFS(w),CFL()),CCP(),CST();N=24==N?0:N+1})(",
            "),CDI(b,0,0,PX,PX),0}};function I(){cnv=document.getElementById(",
            "'tc'),ctx=CTX=cnv.getContext('2d');const C=(C,t,i,n,X,r)=>{var a",
            ",c,o,S=V2(C,t);return e.push((C=>{c&&r(X)})),(e,X)=>{a=V2(_X,_Y)",
            ".mul(-1).add(S),c=a.len()<1.7*i,o=c?2:5,e&&(ELI(c||X?'white':'gr",
            "ey',C,t,i+o,i+o,0,0,TAU),CTA('center'),CFS('black'),FNT(i-3),CFT",
            "(n,C,t+6))}};var e=[],t=[],i=0,n=[1,2,4,8,16],X=0,r=C=>{i=C,_R=n",
            "[C],art=c(_R),cer=o(min(_R,4))},a={Piece:'8',Name:'Project Shift",
            " 008',Description:'On-chain glitch art made of time and purpose.",
            "'.split('|'),Properties:'none, none, circle, 1, 256, 64, white',",
            "Medium:'Fully On-Chain BlockGen.Art Canvas',Artist:'rtnptr',Seed",
            ":SEED},c=C=>{X=0;var e,t=DCE('canvas'),i=t.getContext('2d'),n=cM",
            "(150,1),r=()=>{DEF(),TXT(n,1==C?10:8,TAG,967,993)};return CWH(t,",
            "C*PX),CCX(i),AA(t,1),DEF(),e=uS(new RNG(SEED),i,t,C,r),r(),()=>(",
            "CCX(i),DEF(),X||(X=e())&&r(),CCX(),t)},o=C=>{var e=DCE('canvas')",
            ";let t,i;var n,X;for(var[n,r]of(CWH(e,PX*C),CCX(e.getContext('2d",
            "')),DEF(null,C),RECT(cH(0,2,80,.6),2,2,PX-4,PX-4),CBP(),CRT(4,4,",
            "PX-8,PX-8),CTC(),RECT(cH(0,2,80,1),0,0,PX,PX),CSC('black'),CSBr(",
            "30*C),CBP(),CRE(0,0,PX,PX),CSS(cHx('dbccb8')),CLW(102),CST(),CBP",
            "(),CRE(0,0,PX,PX),CSS(cHx('9d8c78')),CLW(92),CST(),CSBr(6*C),CSS",
            "(CANV),CLW(30),CST(),DEF(null,C),TXT(cM(0,.1),24,'BLOCKGEN.ART',",
            "HX,40),TXT(cM(0,.6),13,TAG,HX,970),t=HX,i=290,Object.entries(a))",
            ")i+=34,TXT(cM(0,.8),14,n,t,i),i+=24,X=cM(0,.5),Array.isArray(r)?",
            "FoE(r,(C=>{TXT(X,20,C,t,i),i+=22})):TXT(X,20,r,t,i);return DEF()",
            ",CCX(),C=>e},S=()=>{setTimeout((C=>{window.requestAnimationFrame",
            "(S);var e=0,n=PX;CCX(),l(.97,WALL),CSC(SHDW),CSBr(55),RECT(CANV,",
            "0,0,n,n),CSB(0),CVS(),_P&&(CXT(PX,0),CXS(-1,1)),CDI(art(),0,0,n,",
            "n),CVR(),_P&&CDI(cer(),0,0,n,n),FoE(t,(C=>{C(_P,i==e),e++}))}),1",
            "e3/FPS)},l=(C,e)=>{var t=window,i=t.innerWidth,n=t.innerHeight,X",
            "=i!=_W||n!=_H,r=min(i,n)*C,a=r/PX,c=min(2,max(devicePixelRatio??",
            "1,1));X&&(cnv.width=_W=i*c,cnv.height=_H=n*c),CTR(1,0,0,1,0,0),B",
            "G(e),CXT((i-r)/2,(n-r)/2),CXS(a,a)};AA(ctx,1),(()=>{r(0);var i,X",
            ",c=n.length,o='touch',l='mouse',T=C=>{C.preventDefault();var e=C",
            ".changedTouches[0];return C.clientX=e.pageX,C.clientY=e.pageY,C}",
            ",P=C=>{var e=cnv.getBoundingClientRect(),t=CGT().invertSelf();X=",
            "C.clientX-e.left,y=C.clientY-e.top,_X=X*t.a+y*t.c+t.e,_Y=X*t.b+y",
            "*t.d+t.f};for(p=C=>{_M=1,P(C),(C=>{C.preventDefault(),C.stopProp",
            "agation()})(C),_P=_I(_X,_Y)},u=C=>{_P&&FoE(e,(C=>C())),_M=_P=0,P",
            "(C)},FoE([[o+'start',C=>{p(T(C))}],[o+'move',C=>{P(T(C))}],[o+'e",
            "nd',C=>{u(T(C))}],[l+'down',p],[l+'move',P],[l+'up',u]],(C=>cnv.",
            "addEventListener(...C))),i=0;i<c;i++)t.push(C(130,X=HX-80*c/2+80",
            "*(i+.5),22,n[i]+'k',i,r));t.push(C(130,800,25,CHAR(8595),0,(C=>(",
            "C=>{let e=DCE('canvas'),t=PX*_R;CWH(e,t),CCX(e.getContext('2d'))",
            ",RECT(CANV,0,0,t,t),ctx.drawImage(art(),0,0,t,t);let i=DCE('a');",
            "i.download=a.Name,i.href=e.toDataURL(),i.click(),CCX()})()))),S(",
            ")})()}_X=_Y=0,_R=1,_P=0,_M=0,_W=0,_H=0,_I=C=>1,I();</script></ca",
            "nvas></body></html>"
          ],
          "name": "Project Shift 008",
          "mediaType": "text/html"
        }
      ],
      "image": "ipfs://QmXYcUosUCMaS22z4KNoPNari3kESCUL83uaouojsFzh46",
      "piece": 8,
      "artist": "rtnptr",
      "medium": "Fully On-Chain BlockGen.Art Canvas",
      "vendor": "BlockGen.art",
      "authNFT": "asset1u0xjrcjdlwgejmwg0gzl2la3n0k80dmczxk7la",
      "mediaType": "image/png",
      "properties": {
        "node_count": "256",
        "node_theme": "white",
        "glitch_count": "1",
        "walker_shape": "circle",
        "runner_length": "64",
        "expanding_shape": "none",
        "oscillating_shape": "none"
      },
      "description": [
        "On-chain glitch art made of time and purpose."
      ]
    }
    ...cl1ck