0x412b…8a51

All memos sent from and to 0x412b…8a51.

N !function(){"use strict";function e(e){const t=[[[0,-.07,6],[.02,.015,0],.07,0,[3,1.4,2]],[[.035,-.06,6],[.03,.09,-.02],.06,0,[-.3,3.2,.95]],[[.04,-.07,6],[0,.1,-.1],.06,-.02,[.3,2.7]],[[-.03,-.02,6],[-.04,-.07,.03],.087,-0,[-2.2,1,2]],[[.03,-.1,6],[-.07,-.01,.04],.08,-0,[1,2.5,1.5]],[[.03,.015,6],[.05,.04,-.03],.09,-0,[-.7,3.1,1.5]],[[-.05,-.14,4],[-.03,-.12,.09],.1,-.04,[-3,.9,2]],[[.01,-.05,8.5],[-.06,-.055,.03],.056,0,[1.5,2.5,2.5]],[[.01,.01,10],[.14,.05,.1],.04,0,[0,3.6,1]],[[-0,-.07,8],[-.07,-.1,.03],.059,0,[-3,1.2,1.5]],[[0,-.06,3],[.06,.09,-.04],.2,.04,[-4,1,5]],[[-.05,-.07,3],[.09,-.09,0],.14,.04,[3.2,1,2]],[[-.03,-.03,9],[.1,-.1,-.01],.052,0,[3.3,.6,2]],[[-.023,-.008,9],[.1,-.07,-.07],.038,.02,[3.5,.7,2.1]],[[-.03,-.01,9],[.16,-.17,-.07],.032,.11,[3,.8,1.6]],[[.03,-.04,6],[.02,.15,0],.067,-.12,[1.7,3,1.1]],[[-.01,-.023,9],[.11,-.07,-.14],.03,.13,[3,.7,1]],[[.01,-.05,4],[.04,.06,-.03],.11,.01,[-3.2,1.5,10]],[[-.015,-.037,9],[.01,-.09,-.22],.032,.224,[2,.7,3]],[[0,-.09,4],[-.07,.04,-.09],.125,.06,[0,2.2,20]],[[.04,.015,8],[.08,.08,-.09],.061,.09,[3.5,.5,2]],[[-.04,0,7.6],[.06,-.09,.09],.06,-.08,[-3.25,.35,3]],[[.035,-.06,8],[-.06,.04,-.02],.06,0,[-.5,1.6,2]],[[.028,-.1,6],[-.1,.02,-.04],.062,-.04,[-2.3,1.8,2.5]],[[.07,-.1,3],[.02,.1,-.1],.18,.08,[-.5,2.6,5]],[[-.08,-.1,4],[-.04,-.13,.03],.09,.02,[2.6,1.6,3]],[[-.01,-.005,9],[.05,.1,-.04],.051,-.015,[-4,1.2,10]],[[-.005,.006,9],[.09,.11,0],.057,-.015,[-3,1.2,100]],[[.07,-.1,3],[.06,.08,-.1],.16,.08,[-.5,2.8,5]],[[-.01,-.05,6],[-.03,-.03,.04],.072,.01,[-2.9,1.16,2]],[[-0,-.03,6],[.05,-.044,-.04],.082,0,[-3,1.5,1.7]],[[.04,-.03,6],[-.03,.07,-.03],.09,0,[-4,1.8,1.8]],[[0,-0,8],[.02,.02,0],.05,-.01,[.6,3,2.8]],[[-0,-.02,4],[.02,.02,0],.11,-.02,[.4,2.5,10]],[[.05,-.07,6],[.13,.09,-.09],.06,.03,[-.1,3.4,2]],[[.045,-.03,6],[0,.07,-.1],.065,.09,[3.2,.7,30]],[[-.01,-.14,3],[.02,-.03,0],.17,.012,[3.9,1.5,2]],[[.025,.005,9],[.05,.1,-.04],.057,-.015,[-4,1.2,10]],[[0,-.01,8],[-.05,0,0],.055,-.01,[.3,3,.8]],[[.02,-.01,8],[-.04,-.03,-.06],.052,.01,[-1.3,3,1]],[[.052,-.04,6],[.04,.1,-.05],.077,.01,[-8,2.8,20]],[[.02,-.01,6],[.13,-.05,-.07],.055,.09,[3.7,.75,50.6]],[[-.09,-.14,3],[-.06,-.11,-.01],.13,.035,[2.3,.9,1.2]],[[-.02,-.05,6],[-.05,-.044,-.04],.085,0,[-2,2,2.6]],[[0,-.09,4],[.03,.12,-.09],.125,.02,[-.5,2.3,10]],[[.02,-.02,6],[.11,.06,-.04],.09,-.02,[-3.6,1.5,10]],[[-.04,-.03,7.6],[-.01,-.11,.12],.06,-.08,[-3.25,.85,30]],[[.01,-.06,6],[-.05,.02,.02],.076,-.06,[-2.5,1.3,1000.6]],[[-0,-.06,4],[.02,-.02,0],.11,.02,[.5,2.4,10]],[[-0,.014,7],[.1,.02,.08],.06,0,[.2,3.3,1.3]],[[-.005,.005,9],[.09,.1,0],.057,-.015,[-3.5,1.3,4]],[[.03,-.06,4],[-.07,.07,-.03],.115,0,[-5,1.8,1.4]],[[0,.01,9],[.11,-.02,0],.04,.01,[4.4,.9,2]],[[-.005,.002,9],[.09,.1,0],.057,-.015,[-3,1.2,10]],[[-.02,-.1,4],[-.06,-.08,.05],.122,0,[-2.8,1.2,4.5]],[[-.004,-.019,10],[.02,-.01,.07],.05,-.02,[-3.1,1.4,2.4]]][e];return[(new THREE.Vector3).copy(new THREE.Vector3(0,0,-4)),t[2],t[3],n(...t[4]).negate(),n(...t[0]),b(...t[1])]}function n(e,n,t=1){e=u/4*e+u/2;let r=d(n*=u/4);return new THREE.Vector3(r*d(e),i(n),r*i(e)).multiplyScalar(t)}var t=Math.ceil,r=Math.round,c=Math.exp,v=Math.pow,o=Math.min,a=Math.floor,l=Math.sqrt,s=Math.abs,p=Math.max,i=Math.sin,d=Math.cos,u=Math.PI;const m=l(2),f=1080,x=1/l(2),h=e=>2*a(e/2),y=(e,n,t)=>p(o(e,t),n),S=e=>2*s(e-a(e+.5)),w=()=>{let e=window.innerWidth,n=window.innerHeight;if(e/x<n){const n=h(e);return[n,a(n/x)]}{const e=h(n);return[a(e*x),e]}},E=(e,n,t)=>{const r=`//!S:${n}`,c=[`${r}`,`${r}:${t}`,`${r}:${t+1}`,`${r}:END`],v=c.map((n=>e.indexOf(n)));return-1===v[1]||-1===v[3]?e:e.slice(0,v[0])+e.slice(v[1]+c[1].length,void 0===v[2]?v[3]:0<=v[2]?v[2]:v[3])+e.slice(v[3]+c[3].length)},g=(e,n,t,r)=>{let c=e;for(;(()=>{const e=`/*!${n}:${t}*/`,v=c.indexOf(e);return-1!==v&&(c=`${c.slice(0,v)}${r}${c.slice(v+e.length)}`,!0)})(););return c},R=(e,n,t)=>g(e,"F",n,`${t}${0==a(t)-t?".":""}`),T=(e,n,t)=>g(e,"V3",n,`vec3(${t.x},${t.y},${t.z})`),b=(e,n,t)=>M(e).multiply(F(n)).multiply(U(t)),M=e=>{const n=i(-e*u*2),t=d(-e*u*2);return(new THREE.Matrix3).set(1,0,0,0,t,-n,0,n,t)},F=e=>{const n=i(-e*u*2),t=d(-e*u*2);return(new THREE.Matrix3).set(t,0,n,0,1,0,-n,0,t)},U=e=>{const n=i(-e*u*2),t=d(-e*u*2);return(new THREE.Matrix3).set(t,-n,0,n,t,0,0,0,1)},C=[(e,n)=>p(.6*v(e,.5),.2)*n,(e,n)=>p(.5*v(e,.25),.1)*n,(e,n)=>p(.5*v(e,.25),.1)*n,(e,n)=>p(c(2*e-2.5),.1)*n,(e,n)=>p(c(2*i(1.6*e-.3)-2.6),0)*n+.028],X=[(e,n,t,r)=>{e[0]=hl.random(),e[1]=1+r-y(n/(t-1)+(2*hl.random()-1)*(2/t),0,1)*(1+r)},(e,n,t,r)=>{e[0]=(1.8*hl.random()-.9)*(1.8*hl.random()-.9)+.5,e[1]=1+r-y(n/(t-1)+(2*hl.random()-1)*(2/t),0,1)*(1+r)},(e,n,t,r)=>{e[0]=(1.5*hl.random()-.75)*(1.5*hl.random()-.75)+.5,e[1]=1+r-y(n/(t-1)+(2*hl.random()-1)*(2/t),0,1)*(1+r)}],z=[[.95,!1,2,.125],[.95,!1,8,.5],[.95,!0,1,.05],[.95,!0,4,.5],[.85,!1,2,.125],[.99,!1,2,.25]],P=[[[14270913,12755875,11044998,9334893,7626072,6180166,5062970,4406324,4275508,4473401,4934466,5526604,6184791,6842723,7631983,6184794,5000777,4079675,3290673,2698537,2238243,1843486,1514522,1185814,856850,593165,329736,131844,131587],14204589],[[14074805,10393979,5987914,3882288,1647392],16764064],[[16578028,11128776,2198136,3890996,12295204,15119706,15979691,15780248,14985834,14060107,13201988,12740426,12740947,12081735,10964801,9651263,8076094,5582648,3548205],8834744],[[11712474,11383511,10527950,9277631,7829417,6380426,4997478,3942979,3678251,4663847,6242098,7886146,9529683,10844771,11765875,10713697,9596242,8413254,7230266,6047279,4929829,3812123,2760210,1774089,853507,328195,525582],14667720],[[16777215,8624357,8295393,7374296,6123717,4675492,3161720,1581894,132876,1513736,3684123,5591854,7237187,8619352,9607022,10265225,9869700,9211514,8421743,7565923,6579029,5526344,4539450,3487021,2565920,1645077,855563,263428,197635,197636],15983070],[[11770775,11639189,11309968,10848906,10322308,9796224,9467521,9270918,9337743,9602202,9997991,10394290,10724540,10923459,11056329,10465489,9676495,8624328,7440318,6124462,4874136,3754622,2700897,1778757,922410,197389,131328],16767687],[[10911809,10846274,10715204,10452548,10058307,9466944,8612411,7560500,6114346,4404766,2366221,262661,2435650,5266044,9410478,7896720,6580343,5461859,4540754,3882309,3290170,2829618,2500396,2303016,2105637,2039843,1974050,1973794,1973794],15983838],[[8361299,8294477,8227655,8160833,8159547,8092470,8025393,8023852,7956775,8020771,8084766,8345369,8933908,10243088,16394500,9652528,7422254,5978667,4862759,4074788,3418145,2892830,2498844,2235931,2039066,1907481,1841945,1841689,1841689],16632752],[[13160150,13226199,13291993,13357786,13358043,13292507,13095386,12766680,12175315,11321035,10203583,8889006,7508121,6521220,6521466,9086867,7111794,6255972,5663065,5136209,4675401,4345666,4016188,3752503,3489074,3291182,3093290,2895655,2763813,2697763,2631713],15979707],[[15636355,15635583,15567734,15499369,15364441,15229513,15094841,15026476,14959396,14567207,13977899,13191472,12339252,11617336,11157820,11091265,10960193,10566977,9977153,9124672,8141117,6960441,5779764,4664110,3679784,2892323,2367263],15636355],[[14931056,14931054,14931051,14865765,14800478,14669398,14078540,13159493,11911999,10271037,8104513,6003529,3968592,2459481,2788718,4036233,3576706,3050874,2917488,2848869,2779737,2710093,2574913,2505782,2306093,2172710,2040097,1973790,1973533],14283451],[[16444130,14734806,12435663,9610695,7048131,5535420,4747195,4548783,4349854,4150666,3819893,3423324,2895939,2434350,2039328,1907740],14734806],[[14672597,11844259,9212796,6910045,4936260,3357233,2238499,1580572,1383194,1448474],9212796],[[11128773,9815742,8502712,7254963,6007471,4891052,3774634,3116708,3113108,3108223,2970979,2571074,2040868,2236445,5980448,14121254,12741672,11559212,10573872,9851443,9326134,8866616,8472890,8079419,7751483,7358012,7030332,6636860,6243644,5915964,5522748],15979707],[[11314331,11116951,10919571,10787983,10590860,10393480,10130307,9670268,9078388,8223593,7171419,5790539,4278588,3227449,4018001,6913673,5794933,4938852,4214614,3556425,3029567,2634038,2239022,1975080,1777443,1711136,1776672,1973537,2236708,2631208],15979707],[[16576733,15330023,10468821,6395850,4228807,2984646,3833027,4353206,4610721,4475011,3881058,3618643,3355717,3092537,2697518,1907741],15591385],[[14537937,13284524,12162436,10713953,9069893,7361071,5652766,3944464,2170373,133891],15578992],[[13160909,9940641,7179384,5008212,3493428,2438171,1842953,1445378],7179384],[[13552567,13224890,12700091,11978171,10993594,9812153,8368311,6858422,5217716,3773617,3180965,2915731,2649982,2450024,2119250,1854786,1854271,1853500,1852216,1915956,1979951,1978155,2042150,2040867,1974304,1973790,1973533],15979707],[[14875330,15006401,15202495,15463868,15724734,15854528,15722176,15523774,15128763,14667958,13944495,13155239,12102812,10721674,7432798,9012855,8882553,8028530,6910822,5792600,4674378,3753021,2897456,2239014,1646621,1185814,856848,659213,593420],15979707],[[3126230,2794955,2595009,2460857,2326707,2192815,2255277,2579628,3231147,4013475,4795793,5447798,6297432,7609152,9842995,12802871,11685170,10633775,9713964,8794922,7941672,7154213,6367010,5645342,4923931,4267799,3677460,3087121,2562319,2168590,1840653],15979707],[[13025713,12894642,12566194,12237488,11711917,11120297,10528165,9870496,9146780,8488599,7829906,7237005,6840964,6510714,6114927,5588580,4996439,4404812,3878978,3353401,2959153,2630955,2368295,2237222,2171428,2106147,2106659,2107172,2107429],15979707],[[13748943,12169915,10196385,8288644,6578282,5262422,4472905,4078146,3683644,3025970,2499625,2302245,2104866,1907487,1710364,1578777],16205382],[[16580607,15988477,14804985,13687286,12569075,11582192,10660332,9869288,9274338,8744921,8346314,7947954,7484819,7087728,6823242,7414826,11693617,9522982,8667940,8010532,7419171,6828067,6302754,5711904,5121053,4530202,3939095,3282707,2691854,2035465,1444613,919811,657924],16771030],[[16777215,16777215,16777215,16381942,15065050,13484987,11773341,9930881,8154472,6510421,5392200,4735044,4735559,5065040,5394519,5592412,5395803,5330011,5132633,4803926,4409169,3948875,3488068,2961980,2501171,1974827,1448482,987673,527120,197639,65794,0,0],16767687]],L=[(e,n,t,c,v)=>v[r((.5*(1-t)+.5*n)*v.length)%v.length],(e,n,t,c,v)=>v[r((.45*(1-t)+.05*(1-c)+.5*n)*v.length)%v.length],(e,n,t,c,v)=>v[r(n*(v.length-1))%v.length],(e,n,t,c,v)=>v[r((.2*(1-t)+.8*n)*(v.length-1))%v.length],(e,n,t,c,o)=>o[r((.5*v(1-t,.75)+.5*n)*o.length)%o.length],(e,n,t,c,v)=>v[r((.75*(1-t)+.25*n)*v.length)%v.length]],A=[[1e5,220,400,3,.82,.8,.5,0,.8,.1,4],[24e4,350,[160,100],[1.2,0],.6,[.75,.6],.58,.2,.4,.06,1],[3e5,400,[250,150],2,.6,.6,.7,0,.4,.1,1],[2e5,200,160,3,.9,.6,.6,[.3,.5],.9,.09,3],[2e5,200,260,4,.9,.6,.4,[.3,.5],.6,.1,3],[14e4,160,200,[3,1],.82,.7,.59,.3,.8,.08,3],[3e5,100,600,1,.2,.6,.25,[.1,.5],.5,.1,2],[3e5,250,600,2,.65,.6,.8,[.1,.5],.4,.1,2],[3e5,200,500,3,.3,.6,.9,[.1,.5],.9,.12,3],[3e5,400,250,[5,.5],[.45,.5],.61,[.76,0],.3,.7,.1,3],[2e5,250,600,2.5,.75,.66,.3,[.2,.5],.4,.08,0],[1e5,420,400,3,.82,.8,.45,.3,.8,.1,4],[3e5,400,250,[4,.5],.75,.6,[.46,0],.1,.7,.1,3]],B=[null,[9,2,32,.4,1.5],[7,1.7,72,.5,2.5]],H=[[[-.01,.0035,.0023,1160],[1,.3,.2],[0,0,0],[0,0,0],!1],[[-.01,.0033,.0023,1300],[1.5,.29,.05],[0,0,-.03],[0,0,0],!1],[[-.012,.0032,.003,650],[1,.32,.13],[0,0,-.02],[0,.11,.21],!1],[[-.01,.002,.0026,520],[1,.27,.13],[-.02,.16,-.22],[.25,-.06,.5],!1],[[-.0145,.0035,.0023,492],[.8,.21,.1],[0,-.18,-.3],[.75,-.32,.78],!1],[[-94e-5,.0035,.0023,1290],[.8,.3,.17],[0,-.12,-.3],[0,-.03,.03],!1],[[-8e-4,.0035,.003,950],[1,.222,.05],[0,-.12,-.2],[.2,.03,0],!1],[[-.02,.0035,.0023,945],[.7,.3,.06],[-.02,.1,-.02],[-.05,.15,.5],!1],[[-.02,.0035,.0023,955],[.7,.3,.05],[0,.08,-.02],[.05,-.3,0],!1],[[-98e-5,.0035,.0023,1290],[1,.3,.18],[.05,-.08,-.2],[-.03,.03,0],!1],[[-.00101,.0035,.0023,1500],[.7,.3,.11],[0,0,-.14],[.19,.2,0],!1],[[-.002,-.0054,.0023,1576],[1,.24,.06],[-.03,-.07,-.19],[.03,0,-.03],!0],[[-.002,-.0059,.00225,3657],[.9,.25,.035],[.04,-.02,-.1],[.2,.2,.2],!0],[[-.002,-.00556,.0023,5467],[.9,.2,.07],[-.015,-.1,-.3],[-.14,.11,.042],!0],[[-.002,-.00547,.0023,5889],[.9,.26,.05],[-.1,-.04,-.25],[-.17,.3,.1],!0],[[-.002,-.005495,.0023,8930],[.9,.3,.07],[0,.15,-.1],[.18,.2,-.02],!1],[[-.002,-.00552,.0023,8930],[.9,.3,.05],[.1,.15,-.15],[.18,.1,-.02],!1],[[-.002005,-.0055,.0023,10170],[.9,.25,.15],[-.1,.08,-.3],[.25,.65,-.21],!0],[[-.01,-.0055,.0023,460],[1.1,.24,.08],[0,.1,-.07],[-.14,-.13,.19],!0],[[-.00199,-.00546,.00231,11562],[1,.3,.05],[.01,.12,-.18],[.13,-.02,.3],!0],[[-.002,-.0055,.00231,20997],[.9,.25,.12],[0,-.02,-.1],[0,.1,0],!0],[[-.00199,-.0055,.0025,20917],[.9,.25,.12],[0,0,-.04],[-.2,-.3,.5],!0],[[-.001998,-.0055,.0023,22540],[1,.25,.15],[.01,0,-.01],[0,.1,-.1],!0],[[.004,-.0075,-.0063,1170],[1,.26,.1],[.1,.1,-.18],[.76,.43,.35],!0],[[.00453,-.00739,-.00619,5260],[.9,.25,.04],[0,.03,-.1],[0,0,.2],!0],[[.00453,-.00739,-.00619,5270],[.95,.28,.08],[.1,.15,-.04],[.1,-.03,.3],!0],[[.00458,-.00746,-.00622,5248],[.75,.28,.07],[.03,.1,-.1],[.12,-.37,-.05],!0]],Y={type:THREE.UnsignedByteType,format:THREE.RGBAFormat,antialias:!1,precision:"highp",stencil:!1,depth:!1,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter,wrapS:THREE.ClampToEdgeWrapping,wrapT:THREE.ClampToEdgeWrapping,alpha:!1};let Z,N,k,V,q,I,$,O,D,G,W,_,J,j,K,Q,ee,ne,te,re,ce,ve,oe,ae,le,se,pe,ie,de=window,ue=document;const me=(e,n)=>1/(n*l(2*u))*c(-v(e,2)/(2*v(n,2))),fe=()=>{[ee,ne]=(()=>{let e=h(f);return[a(e*x),e]})(),[_,J]=w(),[j,K]=[a(1024*x),1024],Q=J/ne;let e=de.devicePixelRatio??1;Z.setRenderTarget(null),Z.setPixelRatio(de.devicePixelRatio),Z.setClearColor(0,1);let n=2160;8192>Z.capabilities.maxTextureSize&&(n=2048);let t=o(2*_*2/e,2*a(n*x)/e),r=o(2*J*2/e,2*n/e);Z.setSize(t,r),Z.clear(),W.style=`aspect-ratio: auto ${_}/${J};width:${_}px;height:${J}px;`,W.id="defaultCanvas",N=new THREE.OrthographicCamera(-j/2,j/2,K/2,-K/2,.01,100),N.position.z=.1,N.lookAt(new THREE.Vector3(0,0,0)),k=new THREE.OrthographicCamera(0,_,J,0,.01,100),k.position.z=.1,k.lookAt(new THREE.Vector3(0,0,0)),G=function(e,n,t){let r="\nuniform float uS;\nuniform vec3 uR;\n\n#define PI 3.1415926536\n#define UF float(0xffffffffU)\n#define C clamp\n#define F floor\n#define S smoothstep\n#define fseed uS*1e-4\n\nvarying vec2 vU;\n\nuint hi(uint x){x^=x>>16;x*=0x45d9f3bU;x^=x>>16;x*=0x45d9f3bU;x^=x>>16;return x;}\nvec2 h22(uvec2 p){uint n=uint(p.x)*1597334677U^uint(p.y)*3812015801U;return vec2(hi(n)*uvec2(0x1U,0x1ffU))/UF;}\nvec3 h32(uvec2 p){uint n=uint(p.x)*1597334677U^uint(p.y)*3812015801U;return vec3(hi(n)*uvec3(0x1U,0x1ffU,0x3ffffU))/UF;}\nfloat v2d(in vec2 p,float u,float v){p+=fseed;float k=1.+63.*pow(1.-v,6.);vec2 i=F(p),f=fract(p),a=vec2(0);for(int y=-2;y<=2;y++)for(int x=-2;x<=2;x++){vec2 g=vec2(x,y);vec3 o=h32(uvec2(ivec2(i+g)))*vec3(u,u,1.);vec2 d=g-f+o.xy;float w=pow(1.-S(0.,1.414,length(d)),k);a+=vec2(o.z*w,w);}return a.x/a.y;}\nfloat mag(vec2 x){return dot(x,x);}\nfloat w2d(vec2 x){x+=fseed;uvec2 p=uvec2(int(F(x.x)),int(F(x.y)));vec2 f=fract(x);float res=1e30;vec3 fb=vec3(-1,0,1);uvec3 ub=uvec3(-1,0,1);res=min(mag(fb.xx-f+h22(p+ub.xx)),res);res=min(mag(fb.xy-f+h22(p+ub.xy)),res);res=min(mag(fb.xz-f+h22(p+ub.xz)),res);res=min(mag(fb.yx-f+h22(p+ub.yx)),res);res=min(mag(fb.yy-f+h22(p+ub.yy)),res);res=min(mag(fb.yz-f+h22(p+ub.yz)),res);res=min(mag(fb.zx-f+h22(p+ub.zx)),res);res=min(mag(fb.zy-f+h22(p+ub.zy)),res);res=min(mag(fb.zz-f+h22(p+ub.zz)),res);return sqrt(res);}\nmat2 rot=mat2(.6,.8,-.8,.6);\nfloat vFbm(in vec2 p,float u,float v){float r=v2d(p,u,v)*.5;p=p*rot*2.;r+=v2d(p,u,v)*.25;p=p*rot*2.;r+=v2d(p,u,v)*.125;p=p*rot*2.;r+=v2d(p,u,v)*.0625;return r/.9375;}\nfloat wFbm(in vec2 p){float r=w2d(p)*.6;p=p*rot*2.3;r+=w2d(p)*.25;p=p*rot*2.3;r+=w2d(p)*.25;p=p*rot*2.3;r+=w2d(p)*.0625;return r/.9375;}\nvoid hfast(vec2 g,out vec4 h0,out vec4 h1){const vec2 o=vec2(26.,161.);const float d=71.;const vec2 f=vec2(951.135664,642.949883);vec4 P=vec4(g.xy,g.xy+1.);P=P-F(P*(1./d))*d+o.xyxy;P*=P;P=P.xzxz*P.yyww;h0=fract(P/f.x);h1=fract(P/f.y);}\nfloat qh2d(float x,float i0,float i1,float e0,float e1){vec3 h=(((vec3(-15.,8.,7.)+vec3(6.,-3.,-3.)*x)*x)+vec3(10.,-6.,-4.))*(x*x*x);return i0+dot(vec3((i1-i0),e0,e1),h.xyz+vec3(0.,x,0.));}\nvec4 qh2d(float x,vec2 i0,vec2 i1,vec2 e0,vec2 e1){vec3 h=(((vec3(-15.,8.,7.)+vec3(6.,-3.,-3.)*x)*x)+vec3(10.,-6.,-4.))*(x*x*x);return vec4(e1,i0)*vec4(h.zz,1.,1.)+vec4(e0,h.xx)*vec4(vec2(h.y+x),(i1-i0));}\nfloat h2d(vec2 P){P+=fseed;vec2 Pi=F(P),Pf=P-Pi;vec4 hgx,hgy;hfast(Pi,hgx,hgy);hgx=hgx-.49999;hgy=hgy-.49999;vec4 norm=inversesqrt(hgx*hgx+hgy*hgy);hgx*=norm;hgy*=norm;vec4 qr=qh2d(Pf.y,hgx.xy,hgx.zw,hgy.xy,hgy.zw);return qh2d(Pf.x,qr.x,qr.y,qr.z,qr.w)*2.2627416997969520780827019587355;}\nfloat c2d(vec2 P){P+=fseed;vec2 Pi=F(P),Pf=P-Pi;vec4 hx,hy;hfast(Pi,hx,hy);const float J=.4;hx=hx*J*2.+vec4(-J,1.-J,-J,1.-J);hy=hy*J*2.+vec4(-J,-J,1.-J,1.-J);vec4 dx=Pf.xxxx-hx;vec4 dy=Pf.yyyy-hy;vec4 d=dx*dx+dy*dy;d.xy=min(d.xy,d.zw);return min(d.x,d.y)*(1./1.125);}\n\nvoid main(){\n vec2 uv=vU*.5;\n //!S:B:0\n vec3 col=vec3(pow(wFbm(uv*5.)+.1,2.));\n //!S:B:1\n vec3 col=vec3(pow(wFbm(uv*vec2(20,3))+.09,2.));\n //!S:B:2\n vec3 col=vec3(pow(wFbm(uv*vec2(60,3))+.1,3.));\n //!S:B:3\n vec3 col=vec3(pow(wFbm(uv*vec2(10))+.05,2.));\n //!S:B:4\n vec3 col=vec3(pow(wFbm(uv*vec2(3)+vFbm(uv*vec2(4,12),.2,.5))+.2,2.));\n //!S:B:5\n vec3 col=vec3(pow(wFbm(uv*vec2(2,4)+vFbm(uv*vec2(3,15),.8,.2))+.15,2.));\n //!S:B:6\n vec3 col=vec3(pow(wFbm(uv*vec2(2,5)+wFbm(uv*vec2(5,12.5)))+.2,2.5));\n //!S:B:7\n vec3 col=vec3(pow(wFbm(uv*vec2(5,10)+wFbm(uv*vec2(1,5)))+.2,2.5));\n //!S:B:8\n vec3 col=vec3(pow(wFbm(uv*vec2(5,15)+wFbm(uv*vec2(1,5)))+.2,2.5));\n //!S:B:9\n vec3 col=vec3(pow(vFbm(uv*vec2(11,33)+7.*wFbm(uv*vec2(2,4)),0.,.3)+.2,2.5));\n //!S:B:10\n vec3 col=vec3(pow(wFbm(uv*7.+8.*wFbm(uv*4.))+.17,3.));\n //!S:B:11\n vec3 col=vec3(pow(wFbm(uv*vec2(10.)+wFbm(uv*vec2(6.)+vFbm(uv*vec2(3.),.2,.5)))+.05,2.));\n //!S:B:12\n vec3 col=vec3(pow(wFbm(uv*vec2(2.)+wFbm(uv*vec2(2.)+vFbm(uv*vec2(1.),.5,.5)))+.05,2.));\n //!S:B:13\n vec3 col=vec3(pow(wFbm(uv*vec2(4.)+wFbm(uv*vec2(2.)+vFbm(uv*vec2(1.),.5,.5)))+.05,2.));\n //!S:B:14\n vec3 col=vec3(pow(wFbm(uv*vec2(2.)+wFbm(uv*vec2(8.)+vFbm(uv*vec2(4.),0.,.5)))+.05,2.));\n //!S:B:END\n uv=uv*vec2(.8,1.2);\n //!S:FT:0\n float fdXY=-1.3*S(.1,.9,min(w2d(99.*uv*vec2(1.6,1.))*1.2,v2d(40.*uv*vec2(1.,2.),.5,.75)));\n float fdYZ= 1.4*S(.1,.9,max(w2d(86.*(uv+vec2(41.3))*vec2(2.,1.))*1.2,v2d(22.5*(uv+vec2(41.3))*vec2(1.,2.),.3,.75)));\n //!S:FT:1\n float fdXY=1.6*S(0.,1.,max(w2d(115.*uv*vec2(2.,1.))*.4,v2d(30.*uv*vec2(1.,2.),.3,.75)));\n float fdYZ=1.*S(.4,1.,max(w2d(115.*(uv+vec2(41.3))*vec2(2.,1.))*1.2,v2d(30.*(uv+vec2(41.3))*vec2(1.,2.),.3,.75)));\n //!S:FT:2\n float fdXY=1.125*S(.1,1.,max(w2d(99.*uv*vec2(2.,1.)),.8*v2d(22.*uv*vec2(1.,2.),.3,.75)));\n float fdYZ=1.4*S(.1,1.,max(w2d(99.*(uv+vec2(41.3))*vec2(2.,1.)),.8*v2d(38.*(uv+vec2(41.3))*vec2(1.,2.),.3,.75)));\n //!S:FT:3\n float fdXY=1.5*S(0.,1.,min(1.-w2d(55.*uv*vec2(2.,1.)),v2d(64.*uv*vec2(2.,1.),.9,.75)));\n float fdYZ=1.2*S(0.,1.,min(1.-w2d(35.*(uv+vec2(41.3))*vec2(3.,1.)),v2d(94.*(uv+vec2(41.3))*vec2(2.,1.),.3,.75)));\n //!S:FT:4\n float fdXY=.9*S(0.,1.,max(c2d(85.*uv*vec2(1.,1.5))*2.2,v2d(30.*uv*vec2(1.,2.),.8,.5)));\n float fdYZ=1.*S(0.,1.,min(c2d(100.*(uv+vec2(41.3)))*2.2,v2d(64.*(uv+vec2(41.3))*vec2(1.,2.),.3,.75)));\n //!S:FT:5\n float fdXY=1.1*S(0.,1.,max(h2d(87.5*uv),1.5*c2d(62.5*uv*vec2(2.5,1.5))));\n float fdYZ=.8*S(0.,1.,max(h2d(97.5*(uv+vec2(41.3)))*1.,1.8*c2d(52.5*(uv+vec2(41.3))*vec2(1.,1.5))));\n //!S:FT:6\n float fdXY=1.*S(0.,1.,max(c2d(97.5*uv)*1.,1.8*c2d(52.5*uv*vec2(1.,1.5))));\n float fdYZ=1.1*S(0.,1.,max(h2d(117.5*(uv+vec2(41.3)))*1.,1.8*c2d(52.5*(uv+vec2(41.3))*vec2(1.,1.5))));\n //!S:FT:7\n float fdXY=1.1*S(0.,1.,max(c2d(160.*uv),1.2*h2d(37.5*uv*vec2(1.,1.5))));\n float fdYZ=-1.2*S(0.,1.,max(c2d(160.*(uv+vec2(41.3))),1.2*h2d(37.5*(uv+vec2(41.3))*vec2(1.,1.5))));\n //!S:FT:END\n //!S:BI:0\n gl_FragColor=vec4(vec3(C(col.r,0.,1.),fdXY,fdYZ),1.);\n //!S:BI:1\n gl_FragColor=vec4(vec3(1.-C(col.r,0.,1.),fdXY,fdYZN ),1.);\n //!S:BI:END\n}";r=E(r,"B",s(e[7])),r=E(r,"BI",0<=e[7]?0:1),r=E(r,"FT",e[11]);const c=new THREE.PlaneGeometry(n,t),v=new THREE.ShaderMaterial({uniforms:{uS:{value:e[15]},uR:{value:new THREE.Vector3(n,t,1800)}},vertexShader:"varying vec2 vU;\nvoid main(){vU=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",fragmentShader:r,transparent:!1,depthTest:!1,depthWrite:!1});return new THREE.Mesh(c,v)}(le,j,K),[O,V]=function(e,n,t,r){const c=[new THREE.WebGLRenderTarget(t,r,Y),new THREE.WebGLRenderTarget(t,r,Y),new THREE.WebGLRenderTarget(t,r,{type:THREE.FloatType,format:THREE.RGBAFormat,antialias:!1,precision:"highp",stencil:!1,depth:!1,minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,wrapS:THREE.MirroredRepeatWrapping,wrapT:THREE.MirroredRepeatWrapping,alpha:!1})];c.forEach((n=>{e.setRenderTarget(n),e.clearColor()}));let v="// technical\nuniform vec4 uT;\n#define FRAME int(uT.x)\n#define FRAMES uT.y\n#define SEED uT.w\n\nuniform vec3 uR;\nuniform sampler2D uPF;\nuniform sampler2D uPB;\nuniform vec3 uCT;\nuniform float uCF;\nuniform float uCA;\nuniform mat3 uSR;\nvarying vec2 vU;\n\nconst float\nPI=3.14159265359,\nTAU=PI*2.,\nTMIN=1./2048.,\nTMAX=10.,\nBLUR=5.,\nES=.062,\nM1=1.,\nM2=2.,\nM3=3.;\nconst vec3\nST=/*!V3:ST*/,\nRC=vec3(0.,-.25,.3);\nconst vec2\nDOF=vec2(ST.z-.4,.02);\n\n#define L length\n#define N normalize\n#define F floor\n#define C clamp\n#define UF float(0xffffffffU)\n\nuint hi(uint x){x^=x>>16;x*=0x45d9f3bU;x^=x>>16;x*=0x45d9f3bU;x^=x>>16;return x;}\nuvec2 s=uvec2(0);\nvoid srnd(){s=uvec2(vU*uR.xy*54.279)+uvec2(SEED,uint(FRAME));}\nfloat rnd(){s+=uvec2(1);return float(hi(s.x+(s.y<<16)))/UF;}\nvec2 rnd2(){s+=uvec2(1);return vec2(hi(s.x+(s.y<<16))*uvec2(0x1U,0x1ffU))/UF;}\nvec2 h22(uvec2 p){uint n=uint(p.x)*1597334677U^uint(p.y)*3812015801U;return vec2(hi(n)*uvec2(0x1U,0x1ffU))/UF;}\nfloat noise2(vec2 p){uvec2 c=uvec2(int(F(p.x)),int(F(p.y)));vec2 f=fract(p);f=f*f*(3.-2.*f);return mix(mix(h22(c).x,h22(c+uvec2(1,0)).x,f.x),mix(h22(c+uvec2(0,1)).x,h22(c+uvec2(1,1)).x,f.x),f.y);}\n\nvec2 CS(float x){vec2 si=fract(vec2(.5,1.)-x*2.)*2.-1.,so=sign(.5-fract(vec2(.25,.5)-x));return (20./(si*si+4.)-4.)*so;}\nmat2 m2(float y){return mat2(sin(y),cos(y),-cos(y),sin(y));}\nmat3 RX(float t){vec4 cs=vec4(CS(t),0,1);return mat3(cs.wzz,vec3(cs.zx,-cs.y),cs.zyx);}\nmat3 RY(float t){vec4 cs=vec4(CS(t),0,1);return mat3(cs.xzy,cs.zwz,vec3(-cs.y,cs.zx));}\nmat3 RZ(float t){vec4 cs=vec4(CS(t),0,1);return mat3(vec3(cs.x,-cs.y,cs.z),cs.yxz,cs.zzw);}\nmat3 RZYX(float tz,float ty,float tx){vec2 Z=CS(tz),Y=CS(ty);Y.y=-Y.y;vec3 X=vec3(CS(tx),0);return mat3(Y.xxy*vec3(Z.x,-Z.y,-1),-X.yyy*Y.yyx*vec3(Z.x,-Z.y,1)+X.xxz*Z.yxx,X.xxx*Y.yyx*vec3(Z.x,-Z.y,1)+X.yyz*Z.yxx);}\nmat3 cLAM(vec3 o,vec3 t){vec3 ww=N(t-o),uu=N(cross(ww,vec3(0,1,0))),vv=N(cross(uu,ww));return mat3(uu,vv,ww);}\nfloat SRBGtoL(float v){v=C(v,0.,1.);return mix(pow(((v+.055)/1.055),2.4),v/12.92,step(v,.04045));}\nvec3 dUv(vec2 uv, float fov){return N(vec3((uv*2.-1.)*fov,1.));}\nvec3 toLC(vec3 p){return ((p+ST-RC)*uSR+RC)*vec3(1,.97,1);}\nvec2 opU(vec2 d1,vec2 d2){return d1.x<d2.x?d1:d2;}\nvec2 opS(vec2 d1,vec2 d2){return -d1.x>=d2.x?vec2(-d1.x,d1.y):d2;}\nvec2 opSU(vec2 d1,vec2 d2,float k){float h=max(k-abs(d1.x-d2.x),0.)/k,m=h*h*h*.5,s=m*k*(1./3.);return (d1.x<d2.x)?vec2(d1.x-s,(m<.5?d1.y:d2.y)):vec2(d2.x-s,(1.-m<.5?d1.y:d2.y));}\nvec2 opSS(vec2 d1,vec2 d2,float k){float h=C(.5-.5*(d2.x+d1.x)/k,0.,1.);return vec2(mix(d2.x,-d1.x,h)+k*h*(1.-h),(h>.5?d1.y:d2.y));}\nvec3 opB(vec3 p,float k){float c=cos(k*p.x),s=sin(k*p.x);mat2 m=mat2(c,-s,s,c);vec3 q=vec3(m*p.xy,p.z);return q;}\nvec3 opSmX(vec3 p){return vec3(abs(p.x),p.yz);}\nvec3 opSSmX(vec3 p, float s){return vec3(sqrt(p.x*p.x+4.*s*s),p.yz);}\nvec2 sdSp(vec3 p,float s,float m){return vec2(L(p)-s,m);}\nvec2 sdEl(vec3 p,vec3 r,float m){float k0=L(p/r),k1=L(p/(r*r));return vec2(k0*(k0-1.)/k1,m);}\nvec2 sdEy(vec3 p,float s,float m){vec2 q=vec2(L(p.xz),p.y);float t=L(q-vec2(ES-.002,0))-.009,r=max(-s*q.x*q.x+s*s*(s-2.*q.y),-s*q.y);r=(r<0.?L(q)-s:(q.x<s)?-q.y:L(q-vec2(s,0)))-.001;float k=.015,h=C(.5+.5*(r-t)/k,0.,1.);return vec2(mix(r,t,h)-k*h*(1.-h),m);}\nvec2 sdRb(vec3 p,vec3 b,float r,float m){return vec2(L(max(abs(p)-b,0.))-r,m);}\nvec2 sdTo(vec3 p,vec2 t,float m){return vec2(L(vec2(L(p.xz)-t.x,p.y))-t.y,m);}\nvec2 sdCa(vec3 p,vec3 a,vec3 b,float r,float m){vec3 pa=p-a,ba=b-a;float h=C(dot(pa,ba)/dot(ba,ba),0.,1.);return vec2(L(pa-ba*h)-r,m);}\nvec2 sdCy(vec3 p,float h,float r,float m){vec2 d=abs(vec2(L(p.xz),p.y))-vec2(r,h);return vec2(C(d.x,d.y,0.)+L(max(d,0.)),m);}\nvec2 sdKIFS(vec2 res,vec3 p,vec4 m,vec3 s,float ab){mat2 ma=m2(m.x*m.w),mb=m2(m.y*m.w),mc=m2(m.z*m.w);float d=L(p);for(int i=0;i<10;i++){s.y=s.y*.66;p.xy=ma*p.xy;p.yz=mix(mb*p.yz,abs(mb*p.yz),ab*/*!F:ABS*/);p.zx=abs(mc*p.zx)-s.y;}return opSU(res,vec2(min(d,L(p)-s.x*s.y),M1),s.z);}\n\nvec2 map(vec3 p){\n p=toLC(p);\n vec2 res=sdRb(opB((p+vec3(0,.05,-.435))*RZYX(0.,0.,.266), 2.3),vec3(.145,.065,.13),.065,M1);\n res=opSU(res,opSU(sdRb(opB((opSSmX(p,.009)+vec3(-.095,.426,-.37))*RZYX(-.109,-.16,-.13),.7),vec3(.1195,.054,.004),.052,M1),sdCa(p+vec3(0,.46,-.51),vec3(0,-.01,0),vec3(0,-.045,.01),.065,M1),.1025),.41);\n res=opSU(opSU(res,sdEl(p+vec3(0.,.03,-.28),vec3(.29,.32,.31),M1),.06),sdEl(p+vec3(0.,.062,-.16),vec3(.29,.35,.3245),M1),.055);\n res=opSU(res,sdEl(p+vec3(0,.43,-.24),vec3(.12,.1,.24),M1),.11);\n if(L(opSmX(p)+vec3(-.28,.205,-.15))<.128){\n res=opSS(opSU(sdEl((opSmX(p)+vec3(-.305,.19,-.15))*RZYX(.04,.035,-.05),vec3(.035,.07,.06),M1),sdEl((opSmX(p)+vec3(-.265,.24,-.155))*RZYX(.055,.035,.19),vec3(.04,.04,.03),M1),.04),opSU(res,opSU(sdEl((opSmX(p)+vec3(-.3,.17,-.14))*RZYX(.04,.035,-.025),vec3(.024,.075,.064),M1),sdEl((opSmX(p)+vec3(-.26,.26,-.14))*RZYX(.055,.045,.09),vec3(.02,.075,.04),M1),.09),.027),.019);\n res=opSU(res,sdTo((opSmX(p)+vec3(-.25,.21,-.17))*RZYX(.27,-.05,-.104),vec2(.079,.009), M1),.033);\n res=opSU(res,sdEl((opSmX(p)+vec3(-.265,.27,-.14))*RZYX(.05,.055,.1),vec3(.015,.038,.025),M1),.015);\n res=opSU(res,opSU(sdTo((opSmX(p)+vec3(-.27,.15,-.16))*RZYX(.22,.12,.1),vec2(.04,.006),M1),opSU(sdTo((opSmX(p)+vec3(-.24,.22,-.17))*RZYX(.36,.0,.02),vec2(.04,.01),M1),sdEl((opSmX(p)+vec3(-.267,.23,-.19))*RZYX(.08,.13,.04),vec3(.005,.015,.01),M1),.02),.02),.029);\n }\n vec2 mv=sdEl(p+vec3(0,.39,-.5),vec3(.11,.13,.065),M1);\n mv.x+=.05*(cos(200.*mv.x-2.)*.5+.5)*pow(p.y+.7,2.);\n res=opSU(res,mv,.1);\n res=opSU(res,sdRb((opSSmX(p,.005)+vec3(-.04-cos((1./(1.+exp((abs(p.y+.2)-.2)*20.)))*p.y*50.-2.2)*.008*step(p.y,.2),.2,-.52))*RZYX(-.04,.08,.081),vec3(.0035,.13,.06),.03,M1),.04);\n res=opSU(res,opSU(sdSp(p+vec3(0.,.295,-.63),.028,M1),sdEl(opSSmX(p,.005)+vec3(-.047,.29,-.61),vec3(.018,.019,.02),M1),.056),.051);\n res=opSS(sdEl((opSmX(p)+vec3(-.036,.32,-.63))*RZYX(0.,-.12,0.),vec3(.0222,.0207,.0082),M1),res,.015);\n res=opSS(sdEl((opSSmX(p,.005)+vec3(-.13,.145,-.53))*RZYX(-.01,.01,.0),vec3(.044,.022,.033),M1),res,.14);\n res=opSU(res,sdTo((opSSmX(p,.005)+vec3(-.07,.08,-.44))*RZYX(.01,0.1,.03),vec2(.1,.042),M1),.05);\n if(L(p+vec3(0,.403,-.583))<.13){\n vec2\n ls=sdEl((opSSmX(p,.005)+vec3(-.046,.403,-.583))*RZYX(.05,-.12,-.14),vec3(.05,.023,.013),M1),\n ul=opSU(ls,opSU(sdRb(opB((p+vec3(-.045,.364,-.555)),-1.)*RZYX(.03,-.11,.08),vec3(.05,.04,.02),.008,M1),sdRb(opB((vec3(-p.x,p.yz)+vec3(-.045,.364,-.555)),-1.)*RZYX(.03,-.11,.08),vec3(.05,.04,.02),.008,M1),.0767),.035),\n ll=sdTo(opB(opSSmX(p,.002)+vec3(-.01,.421,-.542),0.)*RZYX(0.,0.,-.07),vec2(.055,.022),M1); \n res=opSU(res,opSU(ul,ll,.003),.026);\n }\n float eb=0.;\n vec3 p2=vec3(abs(p.x),p.yz)-vec3(.12,-.081,.59);\n if(L(p2-vec3(.035,0.,0.))<.12){\n p2.xy=m2(-33.*p2.x*p2.x+1.82)*p2.xy;\n p2.x+=.037;\n p2.xz=m2(-5.*p2.x+1.57)*p2.xz;\n vec2 de=sdEl(p2,vec3(.035,.02,.015),M1);\n de=opSU(de,sdEl(p2+vec3(-.075,0,0),vec3(.08,.01,.01),M1),.04);\n eb=-110.*(de.x-.007)+.5*noise2(((sin(p2.x*28.+1.1)*.5+.5)*.1+vec2(p2.x*.35,p2.y*3.5))*150.);\n eb=smoothstep(.0,4.,eb);\n }\n res.x-=.01*texture2D(uPB,(p+vec3(.5)-RC).xy).y*(.5+.5*(1.-smoothstep(.5,1.,p.y)))*(dot(vec3(0,-0.1,.6),p))*(1.-C(eb,0.,1.));\n res.x-=.01*texture2D(uPB,(p+vec3(.5)-RC).yz).z*(.5+.5*(1.-smoothstep(.5,1.,p.x)))*(dot(vec3(2,-.2,0),p))*(1.-C(eb,0.,1.));\n res.x-=.019*eb;\n vec3 ep=vec3(-.114,.142,-.47);\n if(L(opSmX(p)+ep)<.11){\n vec3 epr=p+ep*vec3(-1,1,1),epl=p+ep,tgt=toLC(vec3(0))*vec3(.5,-.8,1.);\n bool isc=/*!I:ET*/==0;\n if(abs(dot(N(tgt),vec3(1,0,0)))>.5||abs(dot(N(tgt),N(vec3(0,1,-0.0625))))>.58)isc=true;\n vec2 ebl=sdSp(opSmX(p)+ep,ES,M2);\n ebl=opS(opU(sdSp(epr+vec3(-.08,.03,-1.)*cLAM(epr,tgt)*.176,ES*1.93,M3),sdSp(epl+vec3(.08,.03,-1.)*cLAM(epl,tgt)*.176,ES*1.93,M3)),ebl);\n float a=C(.5+dot(N(tgt-epr),vec3(0,1,0)),0.,1.);\n vec3 eyl=vec3(mix(.1,.02,a),mix(.445,.39,a),-.02);\n if(/*!I:ET*/>0)eyl=vec3(mix(.095,.0,a),mix(.455,.39,a),mix(-.03,-.02,a));\n if(isc)eyl=vec3(-.048,.422,-.009);\n vec2 s=vec2(abs(p.x),p.y)-vec2(.13,-.155);\n float l=L(s*vec2(.25,1.)),l2=L(s*vec2(.5,1.)),xx=.008*(sin(l*l*1.5e4)*pow(1.-l2,140.)*.5);\n vec2 lel=sdEy((opSmX(p)+ep)*RX(eyl.y)*RY(-.15)*RZ(-.011),ES+.0015,M1);\n lel.x+=.002*cos(180.*lel.x+.3);\n res=opSU(res,opU(ebl,opU(sdEy((opSmX(p)+ep)*RX(eyl.x)*RY(-.15)*RZ(eyl.z),ES+.0015,M1)-vec2(xx,0.),lel)),.039);\n res=opSU(res,sdCy(opB((opSmX(p)+ep+vec3(-.005,.005,-.02))*RX(.01)*RX(eyl.x)*RY(-.15)*RZ(eyl.z),-1.),.0002,.055,M1),.009);\n }\n res=opSU(res,sdEl((opSSmX(p,.005)+vec3(-.125,.3,-.47))*RZYX(0.,-.17,-.02),vec3(.1,.1,.05),M1),.045);\n vec4 m=/*!V4:OGI*/;vec3 s=/*!V3:OGS*/,r=/*!V3:OGR*/;\n res=sdKIFS(res,(p+/*!V3:OGO*/)*RZYX(r.z,r.y,r.x),m,s,1.);\n vec4 m2=vec4(-.03,.0055,.0024,2500);vec3 s2=vec3(1,.36,.05);\n res=sdKIFS(res,p+vec3(0,.9,0),m2,s2,0.);\n return res*vec2(.99,1);\n}\n\nfloat shadow(vec3 ro, vec3 rd){float t=TMIN;int s=0;while(s<40){float h=map(ro+t*rd).x;t+=h;if(h<TMIN*t||t>TMAX){break;}s++;}return step(TMAX,t);}\nvec3 raymarch(vec3 ro, vec3 rd){float t=TMIN,near=TMAX,m=0.;for(int s=0;s<70;s++){vec2 d=map(ro+t*rd);near=min(d.x,near);m=d.y;t+=d.x;if(abs(d.x)<TMIN*t){break;}if(t>TMAX||s==70-1)return vec3(0,0,near);}return vec3(C(t,TMIN,TMAX),m,near);}\n\nconst float n=.0005;\nvec3 cNor(vec3 p){vec2 e=vec2(n,-n);return N(e.xyy*map(p+e.xyy).x+e.yyx*map(p+e.yyx).x+e.yxy*map(p+e.yxy).x+e.xxx*map(p+e.xxx).x);}\nvec3 uVec(void){float phi=rnd()*TAU,x=rnd()*2.-1.;return pow(rnd(),.33)*vec3(sqrt(1.-x*x)*vec2(sin(phi),cos(phi)),x);}\nvec3 cosDir(vec3 n,float strength){float u=(rnd()*2.-1.)*strength,v=rnd()*TAU;return N(n+vec3(sqrt(1.-u*u)*vec2(cos(v),sin(v)),u));}\nfloat getBg(vec3 d,vec3 lp){float dl=dot(d,lp);return (dl<0.?/*!F:LA*/:mix(1.,.2,1./(1.+exp((-(1.-dl)+/*!F:LS*/)*42.))));}\n\nvec3 cCol(vec3 ro, vec3 rd, vec3 lp){\n vec3 campos=ro,res;\n float ret=0.,thr=1.,rbg=0.,shar=0.;\n for (int i=0;i<3;i++){\n res=raymarch(ro,rd);\n if(res.x<TMIN){rbg=step(float(i),0.);ret+=SRBGtoL(getBg(rd,lp))*thr;break;}\n ro+=res.x*rd;vec3 nor=cNor(ro);float sha=shadow(ro+nor*3e-4,lp+cosDir(lp,1.)*.25);\n if(i==0)shar=sha;\n float ma=0.,me=0.,mr=.0,msp=.0,ms=0.;\n if(res.y<M1+.5){ma=.951;me=/*!F:EM*/;mr=.77;msp=.31;ms=.951;}else if(res.y<M2+.5){ma=.951;me=.1;mr=.77;msp=.31;ms=.951;}else if(res.y<M3+.5){if(/*!I:ET*/==1){ma=.951;me=.1;mr=.77;msp=.31;ms=.951;}else{ma=.73;me=0.;mr=1.;msp=.5;ms=0.;}}\n float doS=step(rnd(),msp),rp=max(doS*msp+(1.-doS)*(1.-msp),1e-3);vec3 drd=N(nor+uVec()),srd=reflect(rd,nor);srd=N(mix(srd,drd,mr*mr));rd=mix(drd,srd,doS);ret+=me*thr;thr=thr*mix(ma,ms,doS)/rp*(sha*.5+.5);float p=thr;\n if(rnd()>p)break;\n thr*=1./p;ro+=nor*(1e-3/abs(dot(rd,nor)));\n }\n if(rbg==1.){\n //!S:O:0\n return vec3(0);\n //!S:O:1\n return vec3(0,1.-pow(C(res.z/.014,0.,1.),6.),0)*step(0.,res.x);\n //!S:O:2\n return vec3(0,1.-pow(C(res.z/.03,0.,1.),.9),0)*step(0.,res.x);\n //!S:O:END\n } else {\n return vec3(ret,step(0.,res.y),0);\n }\n}\n\nvec3 powRand(vec3 axis,float fpow){vec3 r=uVec();float d=dot(r,axis);r=N(r-d*axis);r*=sqrt(1.-pow(d*.5+.5,2./(fpow+1.)));return r+axis*sqrt(1.-dot(r,r));}\nvec2 rPIP(float s){vec2 r=rnd2();float a1=(F(rnd()*s)/s)*TAU;vec2 s1=CS(a1),s2=CS(a1+TAU/s);return r.x+r.y>1.?s1*(1.-r.x)+s2*(1.-r.y):s1*r.x+s2*r.y;}\n\nvec3 calculateColorPixel(in vec2 uv){\n vec3 ro=vec3(0),ww=N(uCT-ro),uu=N(cross(ww,vec3(0,1,0))),vv=N(cross(uu,ww)),rd=dUv(uv+vec2(rnd()-.5,rnd()-.5)*BLUR/uR.zz,uCF)*RZ(uCA)*mat3(uu,vv,ww),fp=ro+rd*DOF.x;\n vec2 p=rPIP(6.);ro+=(uu*p.x+vv*p.y)*DOF.y;rd=N(fp-ro);float r=rnd();\n if(r<.15)rd=powRand(rd,2e6);else if(r<.25)rd=powRand(rd,5e5);\n return cCol(ro,rd,/*!V3:LP*/);\n}\n\nvoid main(){\n srnd();\n vec3 prev=texture2D(uPF,vU).rgb;\n vec2 uv=vU;\n uv.y=(uv.y-.5)*(uR.y/uR.x)+.5;\n vec3 col=C(min(calculateColorPixel(uv),1.),0.,1.);\n gl_FragColor=C(vec4(prev+vec3(col.r/FRAMES,col.g,0),1),0.,1.);\n}";var o,l,s;v=E(v,"O",n[13]),v=R(v,"ABS",n[12][4]?1:0),o=v,l="OGI",s=(new THREE.Vector4).fromArray(n[12][0]),v=g(o,"V4",l,`vec4(${s.x},${s.y},${s.z},${s.w})`),v=T(v,"OGS",(new THREE.Vector3).fromArray(n[12][1])),v=T(v,"OGO",(new THREE.Vector3).fromArray(n[12][2])),v=T(v,"OGR",(new THREE.Vector3).fromArray(n[12][3])),v=T(v,"LP",n[5][3]),v=T(v,"ST",n[5][4]),v=R(v,"LA",n[3][7]),v=R(v,"LS",n[3][8]),v=R(v,"EM",n[3][9]),v=((e,n,t)=>g(e,"I",n,`${a(t)}`))(v,"ET",n[14]);const p=new THREE.PlaneGeometry(t,r),i=new THREE.ShaderMaterial({uniforms:{uT:{value:new THREE.Vector4(0,18,0,n[16])},uR:{value:new THREE.Vector3(t,r,1800)},uPF:{value:null},uPB:{value:null},uCT:{value:n[5][0]},uCF:{value:n[5][1]},uCA:{value:n[5][2]},uSR:{value:n[5][5]}},vertexShader:"varying vec2 vU;\nvoid main(){vU=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",fragmentShader:v,transparent:!1,depthTest:!1,depthWrite:!1});return[new THREE.Mesh(p,i),c]}(Z,le,j,K),D=function(e,n){const t=new THREE.ShaderMaterial({vertexShader:"varying vec3 vC;\nvoid main(){vC=instanceColor;gl_Position=projectionMatrix*modelViewMatrix*instanceMatrix*vec4(position,1.);}",fragmentShader:"varying vec3 vC;\nvoid main(){gl_FragColor=vec4(vC,1.);}",transparent:!1,depthTest:!0,depthWrite:!0}),r=((e,n=4)=>{let t=[],r=[];const c=a(n);t.push(0,0,-1);for(let n=0;n<c;n++){const v=n/c*u*2;t.push(e*d(v+u/4),e*i(v+u/4),-1),r.push(0,n+1,(n+1)%c+1)}let v=new THREE.BufferGeometry;return v.setAttribute("position",new THREE.BufferAttribute(new Float32Array(t),3)),v.setIndex(new THREE.BufferAttribute(new Uint16Array(r),1)),v})(m*n);return new THREE.InstancedMesh(r,t,e[3][0])}(le,Q)},xe=()=>{Z.setAnimationLoop(we),te=0,re=ce=ve=oe=ae=!1,O=V=I=$=null,O&&(O.clear(),O.geometry.dispose(),O.material&&O.material.dispose()),D&&(D.clear(),D.geometry.dispose(),D.material&&D.material.dispose()),G&&(G.clear(),G.geometry.dispose(),G.material&&G.material.dispose()),Z.dispose(),fe()},he=()=>{var e;!1===ve?($=((e,n=4,r=4,c=null)=>{let v=0,o=0,l=0,s=0,p=0,i=0,d=[];return{read:a=>{if(0===l&&(v=a.width,o=a.height,s=t(a.height/n),p=s*r*v,i=s-(s*n-a.height)),l<n){let t=new Float32Array(p);const r=l===n-1?i:s;return e.readRenderTargetPixels(a,0,l*s,v,r,t),d.push(c?t.map(((e,n)=>c(e,n))):t),l++,l<n}return!1},getValues:(e,n)=>{let t=a(S(.5*n[0])*(v-1));const c=(a(S(.5*n[1])*(o-1))*v+t)*r,l=a(c/p),s=c%p;e[0]=d[l][s],e[1]=d[l][s+1],e[2]=d[l][s+2],e[3]=d[l][s+3]},reset:()=>{d=[],l=0}}})(Z,4,4),Z.setRenderTarget(V[2]),Z.render(G,N),ve=!0):!1===ce?te<18&&(e=18,0===te&&(I=((e,n=4,r=4,c=null)=>{let v=0,o=0,l=0,s=0,p=0,i=0,d=[];return{read:a=>{if(0===l&&(v=a.width,o=a.height,s=t(a.height/n),p=s*r*v,i=s-(s*n-a.height)),l<n){let t=new Uint8Array(p);const r=l===n-1?i:s;return e.readRenderTargetPixels(a,0,l*s,v,r,t),d.push(c?t.map(((e,n)=>c(e,n))):t),l++,l<n}return!1},getValues:(e,n)=>{let t=a(S(.5*n[0])*(v-1));const c=(a(S(.5*n[1])*(o-1))*v+t)*r,l=a(c/p),s=c%p;e[0]=d[l][s]/255,e[1]=d[l][s+1]/255,e[2]=d[l][s+2]/255,e[3]=d[l][s+3]/255},reset:()=>{d=[],l=0}}})(Z,4,4)),te<e&&(O.material.uniforms.uPF.value=V[0].texture,O.material.uniforms.uPF.needsUpdate=!0,O.material.uniforms.uPB.value=V[2].texture,O.material.uniforms.uPB.needsUpdate=!0,O.material.uniforms.uT.value.x=te,O.material.uniforms.uT.needsUpdate=!0,Z.setRenderTarget(V[1]),Z.render(O,N),[V[0],V[1]]=[V[1],V[0]],te===e-1&&(q=V[0])),te++,te>=18&&(ce=!0,(e=>{const n=new THREE.Matrix4,t=new THREE.Color;n.makeScale(f*x*2,2160,1),n.setPosition(0,0,-98),D.setMatrixAt(0,n),t.setRGB(e.r,e.g,e.b),D.setColorAt(0,t),D.count=1,D.instanceMatrix.needsUpdate=!0,D.instanceColor.needsUpdate=!0,Z.setRenderTarget(null),Z.render(D,k)})(le[8]),te=0)):ce&&ve&&!1===oe?I.read(q)&$.read(V[2])||(te<le[3][2]?(Se(),te++):oe=!0):re&&ae?ge():re||(re=!0,hl.token.capturePreview())},ye=(e,n,t,r,c,l=null)=>{var s=Math.sign;const[p,i,d,u,m,x,h,S,w,E,g]=t,R=new THREE.Matrix4,T=new THREE.Color,b=[0,0],M=[0,0],F=[0,0],U=[0,0,0,0],C=[0,0,0,0],X=[0,0,0,0];let z=0,P=le[6];if(n){let t=a(p/i);for(let e=0;e<t;e++){le[2](b,te,d,le[10]),M[0]=b[0],M[1]=b[1],n.getValues(U,b);let p=1;if(l&&null!==se){let e=0;p=0;let n=se[0];for(let t=0;t<n*n;t++)if(t!=(n*n-1)/2){let r=(n-1)/2;F[0]=b[0]+(t%n-r)/(2*_)*se[2],F[1]=b[1]+(a(t/n)-r)/(2*J)*se[2],l.getValues(C,F),e+=C[0]*ie[t],p+=((C[1]>=.99?1:0)*(1-se[3])+se[3])*ie[t]}p=v((1-y(e,0,1))*y(p,0,1),se[4])}if(0<U[0]){let d=a(v(U[0],u)*i)*p;d=o(d,i);for(let o=0;o<d;o++){n.getValues(C,M),P&&hl.random()<(P[1]?o/d*(o/d):1)*(1-P[0])&&(M[0]+=s(hl.random()-.5)*v(o/d,P[2])*P[3]);let a=!1;if(l&&(l.getValues(X,b),.99<X[1]&&(a=!0)),!a){if(M[1]+=-m/f/(C[0]*h+(1-h)),0>M[0]||0>M[1]||1<=M[0]||1.05<=M[1])break;const n=g(U[0],x),v=c(e/t,o/d,U[0],C[0],r);R.makeScale(n,n,1),R.setPosition(M[0]*_,M[1]*J,-2),D.setMatrixAt(z,R),T.setRGB(v.r,v.g,v.b),D.setColorAt(z,T),z++}}}}0<z&&(D.count=z,D.instanceMatrix.needsUpdate=!0,D.instanceColor.needsUpdate=!0,Z.setRenderTarget(null),Z.render(D,e))}},Se=function(){return $&&ye(k,$,le[[4]],le[0],le[1],I),void(I&&ye(k,I,le[3],le[0],le[1]))},we=()=>{he(),requestAnimationFrame(we)},Ee=()=>{let[e,n]=w();n===J||(Z.setAnimationLoop(we),xe())},ge=()=>{Re(),ae=!1},Re=()=>{const e=Z.domElement.toDataURL("image/png");if(e){const n=de.atob(e.split(",")[1]),t=new ArrayBuffer(n.length),r=new Uint8Array(t);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);const c=new Blob([t],{type:"image/png"}),v=ue.createElement("a");v.href=URL.createObjectURL(c),v.download=Te(".png"),v.click()}},Te=e=>`${(new Date).toLocaleDateString()} ${(new Date).toLocaleTimeString()}${e}`.replace(/\//g,"-").replace(/:/g,".");let be;de.addEventListener("resize",(()=>{de.clearTimeout(be),be=de.setTimeout(Ee,500)}),!1),de.addEventListener("keydown",(e=>{"KeyS"===e.code&&(ae=!0)})),(()=>{W=ue.createElement("canvas");const n=W.getContext("webgl2",{antialias:!1,precision:"highp",stencil:!1,depth:!1,preserveDrawingBuffer:!0,alpha:!1,premultipliedAlpha:!1});Z=new THREE.WebGLRenderer({canvas:W,context:n}),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),n.getExtension("EXT_color_buffer_float"),Z.outputEncoding=THREE.LinearEncoding,Z.autoClear=!1,le=function(){const n=1e5*hl.random();let t=[[0,2,1,1],[1,4,2,0],[2,0,0,0],[2,0,1,0],[11,2,1,1],[3,1,0,0],[4,1,0,0],[5,1,2,1],[6,2,2,0],[7,2,0,0],[8,2,1,0],[9,3,0,0],[10,2,1,0],[12,5,0,1]],r=[[0,52,6,6,21,null,7,1,1,13e4],[11,23,23,0,11,1,2,0,0,299e3],[7,10,12,-1,26,1,1,0,1,840800],[1,6,7,3,19,0,2,0,0,223e3],[3,11,8,10,0,null,5,1,2,74e4],[3,19,24,11,18,2,4,2,2,1e5],[6,25,19,-10,3,1,0,0,0,714e3],[2,1,15,13,9,5,2,2,2,838e3],[2,15,14,4,20,5,5,1,2,487e3],[2,26,0,-14,14,4,6,0,2,398e3],[3,4,13,1,13,null,0,2,1,1e5],[3,0,9,-5,9,null,5,0,1,61e4],[7,3,21,-1,13,null,2,0,1,2e5],[2,18,7,12,11,2,0,0,2,722e3],[3,32,10,-14,1,3,0,0,0,556e3],[2,17,0,12,4,4,2,0,1,5e3],[6,20,19,-14,12,0,0,1,1,886500],[2,21,22,8,9,5,2,2,2,139400],[12,51,20,-3,7,null,1,1,1,425e3],[7,16,17,0,21,5,2,0,1,881e3],[10,54,1,-1,22,null,2,0,1,32e4],[9,50,18,14,0,4,6,0,1,657e3],[7,13,0,-14,17,3,0,0,1,456e3],[9,9,2,0,9,2,2,0,1,2e5],[2,27,17,14,3,0,5,0,2,220500],[12,29,16,14,4,1,4,1,0,114e3],[4,31,24,-14,9,null,2,1,1,2e3],[10,22,0,-14,8,5,5,0,1,729e3],[0,28,3,-14,13,null,0,0,0,712e3],[2,7,9,-14,15,6,5,0,1,3e4],[7,5,22,-3,9,null,7,1,1,5e5],[12,34,17,6,1,3,4,1,0,114e3],[7,14,19,12,17,5,0,0,1,255e3],[6,12,5,-14,4,null,1,2,1,237e3],[9,8,1,12,16,5,6,0,0,1e4],[0,33,4,-3,9,null,2,0,1,304e3],[12,44,6,-14,26,2,2,2,1,74e4],[12,30,16,14,23,5,0,0,1,147e3],[3,36,4,12,12,2,4,1,1,1e5],[6,35,7,-1,4,null,5,0,2,236e3],[8,53,22,-1,4,1,7,2,2,2e5],[7,47,4,2,4,null,7,1,2,53e4],[7,37,19,-9,10,1,1,0,1,9e4],[5,24,0,6,5,5,2,0,2,265e3],[12,10,0,-14,17,1,2,0,0,698e3],[10,39,3,-14,24,1,7,0,2,988e3],[9,38,16,-14,10,null,7,0,2,716e3],[7,40,7,-9,2,null,7,0,1,945e3],[12,43,12,3,18,0,7,0,2,861e3],[12,45,4,-6,7,3,5,0,0,614e3],[11,48,24,-12,1,null,3,1,1,394e3],[2,46,11,-9,18,null,3,1,2,118e3],[9,49,0,12,21,4,6,0,2,349500],[13,55,3,14,21,null,2,0,1,2e5],[6,41,19,-3,22,null,2,0,1,26e4],[6,42,20,-3,21,null,0,0,2,292e3],[10,26,16,-2,25,null,1,1,2,336e3]],c=r[p(hl.tx.tokenId-1,0)%r.length],v=c[2],o=A[t[c[0]][0]];o[10]=C[o[10]];let a=[];return o.forEach(((e,n)=>{"object"==typeof e?(a.push(e[1]),o[n]=e[0]):a.push(e)})),[(l=P[v][0],l.map(((e,n)=>l[l.length-1-n]))).map((e=>new THREE.Color(e))),L[t[c[0]][1]],X[c[7]],o,a,e(c[1]),z[c[5]],c[3],new THREE.Color(P[v][1]),B[t[c[0]][2]],.04,c[6],H[c[4]],t[c[0]][3],c[8],c[9],n];var l}(),ue.body.appendChild(Z.domElement),xe(),(()=>{if(se=le[9],null!==se){pe=se[0],ie=Array(pe*pe).fill(0);for(let e=0;e<pe*pe;e++)if(e!=(pe*pe-1)/2){let n=e%pe,t=a(e/pe),r=(pe-1)/2;ie[e]=me((n-r)/(2*_)*16,se[1])*me((t-r)/(2*J)*16,se[1])}}})(),we()})()}();
<!DOCTYPE html> <html lang=""> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> <title>Virga</title> <head> <style> html, body { height: 100%; min-height: 100%; margin: 0; padding: 0; } canvas { display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0; padding: 0; margin: auto; } </style> </head> <body> <script src="hl-gen.js"></script> <script src="three-v0.144.0.js"></script> <script src="main.min.js"></script> </body> </html>
Transition explores the concept of motion resulting from the shift between two states. The tipping point from stability/order to chaos. Structures emerge and dissolve into surreal landscapes lost in time. It is highly recommended to experience the piece in big format or zoom in on parts of the image. Transition is a work that uses WebGL2, while a lot of work has been put into optimisation, recent devices might be required to render it.
!function(){"use strict";var e=Math.exp,t=Math.cos,c=Math.sin,r=Math.PI,n=Math.pow,o=Math.min,a=Math.max,f=Math.abs,l=Math.sqrt,i=Math.floor;class s{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substring(0,8),16),c=parseInt(e.substring(8,16),16),r=parseInt(e.substring(16,24),16),n=parseInt(e.substring(24,32),16);return function(){t|=0,c|=0,r|=0,n|=0;let e=0|(0|t+c)+n;return n=0|n+1,t=c^c>>>9,c=0|r+(r<<3),r=r<<21|r>>>11,r=0|r+e,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substring(2,34)),this.prngB=new e(tokenData.hash.substring(34,66));for(let e=0;1e6>e;e+=2)this.prngA(),this.prngB()}rd(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}rn(e,t){return e+(t-e)*this.rd()}ri(e,t){return i(this.rn(e,t+1))}rc(e){return e[this.ri(0,e.length-1)]}rp(e){let t=0;return Object.entries(e).reduce(((e,[c,r])=>(t+=r,e.concat(Array(r).fill(0).map((()=>c))))),[])[this.ri(0,t-1)]}}let v=new s;const u=480,d=1800,g=120,x=l(2),b=e=>2*i(e/2),m=(e,t,c)=>.2125*e+.7154*t+.0721*c,p=e=>2*f(e-i(e+.5)),y=(e,t)=>{if(e=e||window.innerWidth,(t=t||window.innerHeight)<=e){const e=b(t);let c=i(e);return[c,e,c+c%2,e,!1]}{const t=b(e);let c=i(t);return[t,c,t,c+c%2,!0]}},h=(e,t,c,r)=>{const n=a(e,t,c),f=n-o(e,t,c),l=0===f?0:f&&(n===e?(t-c)/f:n===t?2+(c-e)/f:4+(e-t)/f);r[0]=(0>l?l+6:l)/6,r[1]=n&&f/n,r[2]=n},E=(e,t,c,r)=>{if(0===t)r[0]=r[1]=r[2]=c;else{const n=(e,t,c)=>(0>c&&(c+=1),1<c&&(c-=1),c<1/6?e+6*(t-e)*c:c<.5?t:c<2/3?e+(t-e)*(2/3-c)*6:e);let o=.5>c?c*(1+t):c+t-c*t,a=2*c-o;r[0]=n(a,o,e+1/3),r[1]=n(a,o,e),r[2]=n(a,o,e-1/3)}},R=(...e)=>new THREE.Vector3(...e),w={Hessonite:[3,[1,.727,.521],[.337,.392,.667],[.4,.3,.2],[.45,.5],[.49,.56,.75],[.9,.8,.9],2.3,2.1,1.3,.025,.95],Aquamarine:[1,[.01,.08,.48],[.312,.611,.541],[.4,.1,.4],[.25,.6],[.517,.768,.56],[.9,1,.8],2.2,1.5,1.15,.015,1.1],Labradorite:[3,[.345,.624,.973],[.87,.76,.27],[.5,.3,.3],[.176,.77],[2,.9,.9],[.85,.75,1],2.3,1.1,1.5,.02,1.05],VerdeDarno:[3,[.345,.614,.823],[.87,.76,.27],[.5,.2,0],[.156,.57],[1,.9,.85],[1,1,.8],2.2,1.1,1.4,.02,1.03],DendriticAgate:[3,[.345,.624,.973],[.87,.76,.27],[.5,.3,.3],[.16,.7],[.9,.81,.81],[1,.8,.4],2.2,1.1,1.6,.04,1.1],Amethyst:[3,[.474,.749,.856],[.728,.658,.784],[.6,.5,.2],[.13,1.5],[.8,.704,.704],[.7,1,.9],2.1,1.1,2.2,.019,1.02],Ammolite:[2,[.8,.744,.604],[.41,.49,.29],[.25,.1,.5],[.18,.59],[.488,.31,.136],[.85,.95,.7],2.6,2.1,1.15,.01,1.05],"Unakite-a":[3,[.6,.6143,.3997],[.137,.442,.727],[.64,.56,.16],[.3,.42],[.66,.396,.35],[1,.9,.8],2.3,2.2,1.3,.02,1],Peridot:[4,[.6,.6143,.3997],[.037,.442,.767],[.64,.56,.16],[.28,.45],[.5,.43,.4],[1,.9,.8],2.3,2.1,1.3,.025,1.05],"Ametrine-a":[2,[.896,.698,.39],[.192,.162,.312],[.3,.2,0],[.3,.5],[.493,.489,.72],[.8,.8,1],2.2,2,1.3,.015,1.02],"Ametrine-b":[3,[.945,.768,.598],[.282,.149,.384],[.227,.122,.31],[.4,.56],[.59,.54,.9],[1,.9,.7],2.25,1.9,1.44,.02,.9],"Unakite-b":[1,[.522,.46,.29],[.304,.536,.375],[0,.2,.4],[.13,.7],[.524,.069,.068],[1,1,.5],2.3,2.1,.85,.012,1.05]},T=[(e,t,c)=>v.rd()>c,(e,t,c)=>v.rd()>c+5e-5*(1-t)-.001*e,(e,t,c)=>v.rd()>c+5e-5*(1-t)-.01*e],M=[(e,t)=>1*(v.rd()>t+.25*(1-t)-e*(1-t)*.5),e=>1*(v.rd()>.025*e+.975)],F=(e,t,c,r,o,a,f,l)=>{z(e,t,a,f,l,n(r,2-.75*(o+1-c[3]))*a[4]+(1-a[4]))},z=(e,t,c,r,n,o)=>{const a=(r*c[2]*n+c[2])/1080;e[0]+=t[0]*(a/o*.7),e[1]+=t[1]*(a/o*.7)},U=()=>{const e=(v=new s,{Palette:v.rp(Object.fromEntries(Object.keys(w).map((e=>[e,w[e][0]])))),Rendering:v.rp({Default:5,Light:4,Flat:1,"Cluttered-1":3,"Cluttered-2":3,Tall:4}),Scene:v.rp({Default:12,Arch:5,Dendrite:4})}),t={Default:(()=>{const e=v.rc([[[-1,2,5],[-24,9,-1],[-24,4,-2],[[.8,.9],[1.1,1.2]],[.5,1,.2]],[[-.5,5,0],[-24,6,-6],[-24,2,-6.1],[[.6,.9],[1.1,1.4]],[.5,1,.2]],[[0,7,0],[-26,5,-2],[-26.1,-2,-3],[[.6,.9],[1.1,1.6]],[0,1,0]],[[0,5,1],[-24,4,0],[-24.2,-2,-.8],[[.6,.9],[1.1,1.5]],[0,1,0]],[[-1,7,2],[-28.5,5,0],[-29,1,-1],[[.6,.9],[1.1,1.6]],[0,1,.5]]]);let[t,c]=[[0,[.8,1.2]],[1,[.8,.9]]][.9>v.rd()?0:1];return[1,A(-.02).multiply(k(.04)),e[0],e[1],e[2],e[3],c,0,[e[4]],t]})(),Arch:(()=>{const e=v.rc([[[-1,5,1],[-28.8,4,0],[-29.8,1,-1]]]);return[1,A(-.02).multiply(k(.04)),e[0],e[1],e[2],[[1.1,1.4]],[1.1,1.5],0,[[0,1,2]],2]})(),Dendrite:(()=>{const e=v.rc([[[2,2,-5],[-13,5,3],[-11,-2,-4]],[[2,2,-6],[-13,5,3],[-11,-3,-6]]]);return[0,A(-.025).multiply(C(-.05)).multiply(k(.07)),e[0],e[1],e[2],[[.7,.9]],[1.1,1.4],0,[[0,1,1]],0]})()}[e.Scene];t[8].push(...w[e.Palette]);const o={Default:[[[25,0,.7,1,.7],[90,.2,2,4,.1]],[.98,.5,40,T[1]],[.99,.9991,6,M[1]],[.9995,.9991,1,.5,90],F,v.rc([-.05,0,0,0,.04,.1,.18])],Light:[[[100,0,.5,1,.1],[100,.6,1.4,3,.495]],[.98,.5,50,T[1]],[.99,.9982,8,M[1]],[.9998,.9991,15,.5,150],(e,t,n,o,a,f,l,i)=>{z(e,t,f,l,i,.8*(.5*c(a*r-r/2)+.5+.5*c(o*r-r/2)+.5)*f[4]+(1-f[4]))},v.rc([-.2,-.1,0,0,.05,.1,.2,.25])],Flat:[[[100,.1,.55,1.3,.8],[50,.3,9,2,-.3]],[.992,.5,50,T[0]],[.989,.997,50,M[0]],[.9991,.9996,5,.5,150],(e,t,o,a,f,l,i,s)=>{z(e,t,l,i,s,n(a,2-.75*(f+1-.5*c(o[3]*r-r/2)+.5))*l[4]+(1-l[4]))},0],"Cluttered-1":[[[70,0,1.3,1.3,.03],[65,.6,2,2.5,2]],[.99,.75,45,T[2]],[.99,.9997,6,M[1]],[.998,.9998,20,.5,150],F,v.rc([-.15,-.1,0,0,.05,.1,.2])],"Cluttered-2":[[[60,0,.9,1.2,.05],[65,.6,1.9,2.7,2]],[.99,.75,45,T[2]],[.994,.9997,6,M[1]],[.9989,.9998,20,.5,100],F,v.rc([-.15,-.08,0,0,.08,.2])],Tall:[[[50,.1,.5,1.1,.5],[5,.1,6,4,.9]],[.98,.5,90,T[1]],[.97,.998,10,M[0]],[1,.982,3,.5,20],(e,t,c,r,o,a,f,l)=>{z(e,t,a,f,l,n(r,2-.5*o)*a[4]+(1-a[4]))},v.rc([-.3,-.2,-.1,0,0,0,.1,.2])]}[e.Rendering],a=.5<v.rd(),f=+v.rp({".9992":1,".9997":2,"1.":3}),l=i(99999*v.rd()*1e3)/1e3;return t[7]=B(R(...t[3]),R(3,-1,-10),t[1],R(...t[2])),[t,o[5],o[0],o[4],o[1],o[2],o[3],f,a,l]},C=e=>{const n=c(-e*r*2),o=t(-e*r*2),a=new THREE.Matrix3;return a.set(1,0,0,0,o,-n,0,n,o),a},k=e=>{const n=c(-e*r*2),o=t(-e*r*2),a=new THREE.Matrix3;return a.set(o,0,n,0,1,0,-n,0,o),a},A=e=>{const n=c(-e*r*2),o=t(-e*r*2),a=new THREE.Matrix3;return a.set(o,-n,0,n,o,0,0,0,1),a},B=(e,t,c,r)=>{const n=c.clone().transpose();return i(100*e.clone().applyMatrix3(n).add(r).add(t).length())/100};var S="uniform float uF;uniform vec3 uR;out vec2 vU;out vec2 vF;void main(){vU=uv;vF=vec2(uv.x,uv.y*.5+.5*mod(uF+1.,2.));gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",L="uniform float uF;uniform vec3 uR;uniform sampler2D uT;uniform sampler2D uB;in vec2 vU;const float C=/*!F:C*/;const float E=/*!F:E*/;const float S=/*!F:S*/;vec3 b(vec3 e,float g){return vec3(step(e.x,g),step(e.y,g),step(e.z,g));}vec3 c(vec3 h){h=clamp(h,0.,1.);return mix(pow(h,vec3(.4166))*1.055-.055,h*12.92,b(h,.0031308));}vec3 d(vec3 j){return clamp((j*(2.51*j+.03))/(j*(2.43*j+.59)+.14),0.,1.);}void main(){vec4 k;if(vU.y>.5){k=texelFetch(uT,ivec2(floor(vU.x*uR.x),floor((vU.y*2.-1.)*uR.y)),0);}else{k=texelFetch(uB,ivec2(floor(vU.x*uR.x),floor((vU.y*2.)*uR.y)),0);}k.rgb/=float(uF)/2.+1.;vec3 l=vec3(dot(k.rgb,vec3(.2125,.7154,.0721)));k.rgb=c(d(clamp(pow(mix(l,k.rgb,S)*E,vec3(C)),0.,1.)));gl_FragColor=vec4(clamp(k.rgb,0.,1.),k.a);}";const P=(e,t,c,r=!1)=>new THREE.ShaderMaterial({uniforms:Object.fromEntries(c.map((e=>[e[0],{value:e[1]}]))),vertexShader:e,fragmentShader:t,transparent:!1,depthTest:r,depthWrite:r}),D=(e,t,c)=>{const r=`/*!S:${t}`,n=[`${r}`,`${r}:${c}*/`,`${r}:${c+1}*/`,`${r}:END*/`],o=n.map((t=>e.indexOf(t)));return-1===o[1]||-1===o[3]?e:e.slice(0,o[0])+e.slice(o[1]+n[1].length,void 0===o[2]?o[3]:0<=o[2]?o[2]:o[3])+e.slice(o[3]+n[3].length)},H=(e,t,c)=>{const r=`/*!F:${t}*/`,n=e.indexOf(r);return-1===n?e:`${e.slice(0,n)}${c}${0==i(c)-c?".":""}${e.slice(n+r.length)}`},I=(e,t,c)=>{const r=`/*!V3:${t}*/`,n=e.indexOf(r);return-1===n?e:`${e.slice(0,n)}vec3(${c.x},${c.y},${c.z})${e.slice(n+r.length)}`},j=(e,t)=>{e[0]=t[0],e[1]=t[1]};(()=>{let s,b,w,T,M,F,z,C,k,A,B,V,N,K,O,X,G,$,q,W,J,Z,_,Q=window,Y=document,ee=0,te=1+2*v.rd(),ce=-1;W=J=Z=!1,k=A=B=V=N=null;const re=i(15),ne=(e,t,c,r)=>{let n=new THREE.OrthographicCamera(e,t,c,r,.01,100);return n.position.z=.1,n.lookAt(R(0,0,0)),n},oe=(e,n,o)=>{let f;[K,O,G,$,f]=y(e,n),q=O/1080;let l=Q.devicePixelRatio??1;s.setRenderTarget(null),s.setPixelRatio(Q.devicePixelRatio),s.setClearColor(0,1),s.setSize(K*l,O*l),s.clear();let g=1*(o??f),m=["width","height"];X.style=`aspect-ratio:1;${m[1-g]}:100%;${m[g]}:max-content;margin:auto;padding:0;display:block;position:absolute;inset:0;`,b=ne(-240,240,240,-240),w=ne(-240,240,120,-120),T=ne(0,G,$,0),[C,z,k,A,M,F]=((e,t)=>{const c=THREE.NearestFilter,n=THREE.ClampToEdgeWrapping,o={type:THREE.FloatType,format:THREE.RGBAFormat,antialias:!1,precision:"highp",stencilBuffer:!1,depthBuffer:!1,minFilter:c,magFilter:c,wrapS:n,wrapT:n,alpha:!1,encoding:THREE.sRGBEncoding},f=[,,,,].fill(0).map((()=>new THREE.WebGLRenderTarget(u,240,o)));f.forEach((e=>e.texture.generateMipmaps=!1));const l=new THREE.WebGLRenderTarget(480,480,o);l.texture.generateMipmaps=!1,e.setRenderTarget(l),e.clearColor();let i=t[0][8],s=1===t[0][5].length,g="uniform float uF;uniform int uI;uniform float uS;uniform vec3 uR;uniform sampler2D uP;uniform float uT;uniform mat3 uC;in vec2 vU;in vec2 vF;\n#define k normalize\n#define C fract\n#define E floor\nconst float PI=3.1416;const float TAU=6.2832;const float MD=.002;const float Mat1=1.;const float Mat2=2.;const vec2 B=vec2(10.,0.);struct j{vec3 e;float r;float p;vec3 c;float s;float ss;};uint G(uint Rb){Rb^=Rb>>17;Rb*=0xed5ad4bbU;Rb^=Rb>>11;Rb*=0xac4c1b51U;Rb^=Rb>>15;Rb*=0x31848babU;Rb^=Rb>>14;return Rb;}uvec2 s1=uvec2(0);void H(){s1=uvec2(vF*uR.xy*84.67)+uvec2(uS,float(E(uF/2.))*84.67);}float I(){s1+=uvec2(1);return float(G(s1.x+G(s1.y)))/float(0xffffffffU);}uvec2 s2=uvec2(0);void J(int Vb){s2=uvec2(uS*84.67,uS*84.67+float(Vb)*13.31);}float K(){s1+=uvec2(1);return float(G(s2.x+G(s2.y)))/float(0xffffffffU);}uint L(uvec2 Xb){Xb=1103515245U*((Xb>>1U)^Xb.yx);uint Zb=1103515245U*(Xb.x^(Xb.y>>3U));return Zb^(Zb>>16);}vec2 N(uvec2 bc){uint dc=L(bc);return vec2((uvec2(dc,dc*48271U)>>1)&uvec2(0x7fffffffU))/float(0x7fffffff);}float P(vec2 fc){return dot(fc,fc);}float Q(vec2 hc){uvec2 kc=uvec2(int(E(hc.x)),int(E(hc.y)));vec2 mc=C(hc);float oc=1e10;vec3 qc=vec3(-1.,0.,1.);uvec3 sc=uvec3(-1,0,1);oc=min(P(qc.xx-mc+N(kc+sc.xx)),oc);oc=min(P(qc.xy-mc+N(kc+sc.xy)),oc);oc=min(P(qc.xz-mc+N(kc+sc.xz)),oc);oc=min(P(qc.yx-mc+N(kc+sc.yx)),oc);oc=min(P(qc.yy-mc+N(kc+sc.yy)),oc);oc=min(P(qc.yz-mc+N(kc+sc.yz)),oc);oc=min(P(qc.zx-mc+N(kc+sc.zx)),oc);oc=min(P(qc.zy-mc+N(kc+sc.zy)),oc);oc=min(P(qc.zz-mc+N(kc+sc.zz)),oc);return sqrt(oc);}vec2 R(float uc){vec2 wc=C(vec2(.5,1.)-uc*2.)*2.-1.;vec2 yc=sign(.5-C(vec2(.25,.5)-uc));return(20./(wc*wc+4.)-4.)*yc;}vec2 U(float Ac){return vec2(cos(Ac*TAU),sin(Ac*TAU));}mat3 V(float Cc){vec4 Ec=vec4(R(Cc),0.,1.);return mat3(Ec.wzz,vec3(Ec.zx,-Ec[1]),Ec.zyx);}mat3 W(float Gc){vec4 Ic=vec4(R(Gc),0.,1.);return mat3(Ic.xzy,Ic.zwz,vec3(-Ic[1],Ic.zx));}mat3 X(float Kc){vec4 Mc=vec4(R(Kc),0.,1.);return mat3(vec3(Mc.x,-Mc[1],Mc.z),Mc.yxz,Mc.zzw);}mat3 Y(vec3 Oc,vec3 Qc){vec3 Sc=k(Qc-Oc);vec3 Uc=k(cross(vec3(0.,1.,0.),Sc));vec3 Wc=cross(Sc,Uc);return mat3(Uc,Wc,Sc);}vec3 Z(vec3 Yc,float ad){return vec3(step(Yc.x,ad),step(Yc.y,ad),step(Yc.z,ad));}vec3 ab(vec3 cd){cd=clamp(cd,0.,1.);return mix(pow(((cd+.055)/1.055),vec3(2.4)),cd/12.92,Z(cd,.04045));}vec2 cb(vec3 ed,vec3 gd,float jd){vec3 ld=abs(ed)-gd;return vec2(length(max(ld,0.))+min(max(ld.x,max(ld.y,ld.z)),0.),jd);}vec2 eb(vec2 nd,vec2 pd){return step(nd.x,pd.x)*nd+step(pd.x,nd.x)*pd;}vec2 gb(vec2 td,vec2 vd){return step(-td.x,vd.x)*vd+step(vd.x,-td.x)*vec2(-td.x,td.y);}vec3 jb(vec2 xd,float zd){float Bd=atan(xd.y,xd.x);float Dd=C(E(Bd/TAU*zd+.5)/zd)/zd*(zd+1.);zd=PI/zd;Bd=mod(Bd+zd,zd*2.)-zd;vec2 Fd=length(xd)*U(Bd/TAU);return vec3(Fd.x-.5,Fd.y,Dd);}vec3 lb(vec3 Hd,float Jd,vec3 Ld,vec3 Nd){return Hd-Jd*clamp(round(Hd/Jd),Ld,Nd);}vec2 nb(vec2 Pd,vec3 Rd,vec3 Td,vec3 Vd,float Xd,float Zd,float be){return eb(Pd,cb(lb(vec3(abs(Rd.x),Rd.yz),Xd,-Td,Td)*W(Zd),Vd,be));}vec2 pb(vec2 de,vec3 fe,vec3 he){vec3 ke=lb(fe,5.,-B.xyx,B.xyx);ke.xz=jb(ke.xz,6.).xz;ke.x-=2.;return eb(de,cb(ke,he,Mat1));}vec3 rb(vec3 me,float oe,float qe){vec3 se=me;se.xz=jb(se.xz,oe).xy;se.x-=qe;return se;}vec2 tb(vec3 we){vec2 ye=vec2(99.);/*!S:S:0*/const float Ae=10.;we=(we*uC)/1.2+/*!V3:ST*/;ye=eb(ye,cb(rb(we,15.,Ae),vec3(.8,7.,.4),Mat2));vec3 Ce=we;Ce.xz=jb(Ce.xz,15.).xy;Ce.y+=.3;ye=eb(ye,cb(Ce,vec3(Ae,.4,2.),Mat2));vec3 Ee=rb(we,120.,Ae-5.);Ce=rb(we,20.,Ae-5.)+vec3(-0.,-3.,0.);Ce.xy=jb(Ce.xy,60.).xy;Ce.x-=Ae-7.5;ye=eb(ye,cb(Ce,vec3(.25,.2,.2),Mat1));ye=eb(ye,gb(cb(Ee+vec3(0.,-1.,0.),vec3(Ae-8.5,3.,2.),Mat1),cb(Ee+vec3(0.,1.,0.),vec3(Ae-7.,3.5,2.),Mat1)));ye=nb(ye,we+vec3(0.,-4.,0.),B.xyx,vec3(10.,.5,.25),2.,0.,Mat1);return vec2(ye.x*1.2,ye.y);/*!S:S:1*/we=(we*uC)/1.5+/*!V3:ST*/;ye=nb(ye,we+vec3(8.,-6.,-2.),B.yyx,vec3(1.5,10.,1.5),5.,.165,Mat2);ye=pb(ye,we+vec3(2.5,-6.,2.5),vec3(.2,1.,3.));ye=pb(ye,we+vec3(0.,-3.,1.),vec3(.2,.2,3.));return vec2(ye.x*1.5,ye.y);/*!S:S:END*/}vec3 vb(vec3 Ge,vec3 Ie){float Ke=MD;vec2 Me;int Oe=0;while(Oe<60){Me=tb(Ge+Ke*Ie);Ke+=Me.x;if(abs(Me.x)<MD*Ke || Ke>30.){break;}Oe++;}return vec3(step(Ke,30.)*vec2(Ke,Me.y),Oe);}float xb(vec3 Qe,vec3 Se){float Ue=MD;int We=0;while(We<60){float Ye=tb(Qe+Ue*Se).x;Ue+=Ye;if(Ye<MD*Ue || Ue>30.){break;}We++;}return step(30.,Ue);}vec3 zb(vec3 af){vec2 cf=vec2(.03,-.03);return k(cf.xyy*tb(af+cf.xyy).x+cf.yyx*tb(af+cf.yyx).x+cf.yxy*tb(af+cf.yxy).x+cf.xxx*tb(af+cf.xxx).x);}vec3 Bb(){float ef=I()*2.-1.;return pow(I(),.33)*vec3(sqrt(1.-ef*ef)*U(I()).yx,ef);}vec3 Db(vec3 gf){float jf=I()*2.-1.;return k(gf+vec3(sqrt(1.-jf*jf)*U(I()),jf));}vec3 Fb(vec3 lf,float nf){float pf=K()*nf*2.-1.;return k(lf+vec3(sqrt(1.-pf*pf)*U(K()),pf));}vec3 Hb(vec3 rf,vec3 tf){float vf=/*!F:LS2*/;float xf=dot(rf,tf);return step(xf,1.-vf)*/*!V3:LB*/+step(1.-vf,xf)*mix(/*!V3:LC1*/,/*!V3:LC2*/,clamp(1./(1.+exp((-(1.-xf)/vf+/*!F:LS1*//vf)*42.)),0.,1.));}vec4 Jb(vec2 zf,vec3 Bf,vec3 Df,vec3 Ff){vec3 Hf=Bf;vec3 Jf=vec3(0.);vec3 Lf=vec3(1.);vec3 Nf;vec3 Pf;int Rf=0;while(Rf<3){Nf=vb(Bf,Df);if(Nf.x<MD){if(Rf==0){return vec4(0.);}Jf+=ab(Hb(Df,Ff))*Lf;break;}Bf=Bf+Df*Nf.x;vec3 Tf=zb(Bf);if(Rf==0){Pf=Tf;}float Vf=xb(Bf+Tf*3e-2,Ff+Db(Ff)*.04);j Xf;if(Nf.y>Mat2-.5){Xf=j(/*!V3:LE*/,0.,.2,vec3(1.),1.,0.);}else{Xf=j(vec3(0.),.81,.14,vec3(.91),256.,.7);}float Zf=step(I(),Xf.p);float bg=Zf*Xf.p+(1.-Zf)*(1.-Xf.p);bg=max(bg,1e-3);vec3 dg=vec3(Xf.ss)*pow(max(0.,dot(k(Hf-Bf),-reflect(Ff,Tf))),Xf.s);vec3 fg=k(Tf+Bb());vec3 hg=reflect(Df,Tf);hg=k(mix(hg,fg,Xf.r*Xf.r));Df=mix(fg,hg,Zf);Jf+=(Xf.e+dg*Vf)*Lf;Lf*=mix(vec3(.96),Xf.c,Zf);Lf/=bg;Lf*=Vf;Lf*=exp(length(Hf-Bf)*-/*!F:F*/);float kg=max(Lf.r,max(Lf.g,Lf.b));if(I()>kg){break;}Lf*=1./kg;Bf+=Tf*(1e-3/abs(dot(Df,Tf)));Rf++;}return vec4(Jf,dot(Pf,k(vec3(.7071,-.7071,0.))));}vec2 Lb(vec2 mg,float og){mg.xy=pow(length(mg),og)*U(atan(mg.y,mg.x)/TAU);return mg;}vec3 Nb(vec3 sg){return sg*X(.09*pow(max(Q(sg.zz*3.)+E(uF/2.)*.006,1e-4),2.5));}vec4 Pb(vec2 ug){if(uI==-1){float wg=/*!F:SS*/;J(int(E(ug.y*wg))*int(wg)+int(E(ug.x*wg)));ug=C(ug*wg);}else{J(uI);}float yg=/*!F:A*/+K()*.4-.2;vec3 Ag=/*!V3:O*/;vec3 Cg=/*!V3:T*/;vec2 Eg=U(K());/*!S:BT:0*/ug=Lb(ug-Eg,(/*!F:B1*/+K()*/*!F:B2*/))+Eg;/*!S:BT:1*/ug=Lb(ug-Eg,(K()>.5?/*!F:B1*/+K()*/*!F:B2*/:/*!F:B3*/+K()*/*!F:B4*/))+Eg;/*!S:BT:END*/vec3 Gg=k(Cg-Ag);vec3 Ig=k(cross(Gg,vec3(0.,0.,1.)));vec2 Kg=ug+Bb().xz/uR.zz;vec3 Mg=k(vec3((Kg*2.-1.)*(/*!F:FM*/+K()*/*!F:FS*/),1.))*X(yg);vec2 Og=U(I())*sqrt(I())*.036;vec3 Qg=Ag+vec3(Og.x*Ig+Og.y*cross(Ig,Gg));Mg=k((Ag+/*!F:FL*/*Mg*Y(Ag,Cg))-Qg);vec3 Sg=Fb(k(/*!V3:LP*/),.125);/*!S:D:0*/Mg=Nb(Mg);/*!S:D:1*/Mg=Nb(Mg)*W(.15*(Q(sin(Mg.zz*PI)*1.5)-.5));/*!S:D:2*/Mg=Nb(Mg)*V(.125*Mg.z-.1);/*!S:D:END*/return Jb(ug,Qg,Mg,Sg);}void main(){H();vec4 Ug=(uF<2.?vec4(0.):texelFetch(uP,ivec2(E(vU.x*uR.x/2.),E(vU.y*uR.y/4.)),0));vec4 Wg=Pb(vF);gl_FragColor=vec4(Ug.xyz+clamp(Wg.xyz,0.,1.),Wg.w);}";g=D(g,"S",t[0][0]),g=D(g,"D",t[0][9]),g=D(g,"BT",s?0:1),g=H(g,"B1",t[0][5][0][0]),g=H(g,"B2",a(t[0][5][0][1]-t[0][5][0][0],0)),s||(g=H(g,"B3",t[0][5][1][0]),g=H(g,"B4",a(t[0][5][1][1]-t[0][5][1][0],0))),g=I(g,"LP",R(...i[0])),g=I(g,"LC1",R(...i[2])),g=I(g,"LC2",R(...i[3])),g=I(g,"LB",R(...i[4])),g=H(g,"LS1",i[5][0]),g=H(g,"LS2",i[5][1]),g=I(g,"LE",R(...i[6])),g=H(g,"F",i[11]),g=I(g,"O",R(...t[0][3])),g=I(g,"T",R(...t[0][4])),g=I(g,"ST",R(...t[0][2])),g=H(g,"FL",t[0][7]),g=H(g,"FM",t[0][6][0]),g=H(g,"FS",a(t[0][6][1]-t[0][6][0],0)),g=H(g,"A",v.rd()*r*2),g=H(g,"SS",10);const x=new THREE.PlaneBufferGeometry(480,240),b=P(S,g,[["uS",t[9]],["uF",0],["uI",-1],["uR",R(960,960,d)],["uP",null],["uT",60],["uC",t[0][1]]]),m=new THREE.Mesh(x,b);let p=L;p=H(L,"C",i[8]),p=H(p,"E",i[9]),p=H(p,"S",i[10]);const y=P(S,p,[["uF",0],["uR",R(480,240,d)],["uT",null],["uB",null]]),h=new THREE.PlaneBufferGeometry(480,480);return[b,m,y,new THREE.Mesh(h,y),f,l]})(s,_),B=((e,n,o,a)=>{let f="uniform float uS;uniform vec3 uR;in vec2 vU;in vec3 vC;in vec3 vP;float s=1.;void b(vec2 d){s=uS*2.3e-4;}float c(){vec3 e=fract(vec3((vU.xyx*uR.xyx+vP.xyx+s)*14.67)*.1031);s=e.y;e+=dot(e,e.yzx+33.33);return fract((e.x+e.y)*e.z);}void main(){b(vU);gl_FragColor=vec4(clamp(vC+pow(vec3(c(),c(),c())*.2+c()*.8,max(/*!V3:C*/+dot(vC.rgb,vec3(.2125,.7154,.0721)),1e-4))*.1,0.,1.),1.);}";f=I(f,"C",R(...e[0][8][7]));const l=P("out vec2 vU;out vec3 vC;out vec3 vP;void main(){vU=position.xy;vC=instanceColor;vP=(instanceMatrix*vec4(1.)).xyz;gl_Position=projectionMatrix*modelViewMatrix*instanceMatrix*vec4(position,1.);}",f,[["uS",e[9]],["uR",R(n,o,d)]],!0),s=((e,n=4)=>{let o=[],a=[];const f=i(n);o.push(0,0,-1);for(let n=0;n<f;n++){const l=n/f*r*2;o.push(e*t(l+r/4),e*c(l+r/4),-1),a.push(0,n+1,(n+1)%f+1)}let l=new THREE.BufferGeometry;return l.setAttribute("position",new THREE.BufferAttribute(new Float32Array(o),3)),l.setIndex(new THREE.BufferAttribute(new Uint16Array(a),1)),l})(x*a);return new THREE.InstancedMesh(s,l,3e5)})(_,G,$,q)},ae=(e,t,c)=>{_=U(),s.setAnimationLoop(ve),ee=0,ce=-1,te=1+2*v.rd(),W=Z=!1,C=k=z=A=V=M=F=N=null,B&&(B.clear(),B.dispose()),s.dispose(),oe(e,t,c)},fe=(e,t,c=!1)=>{ee<e?le():(null===N&&(N=((e,t=4,c=4,r=null)=>{let n=0,o=0,a=0,f=0,l=0,s=0,v=[];return{read:i=>{var u=Math.ceil;if(0===a&&(n=i.width,o=i.height,f=u(i.height/t),l=f*c*n,s=f-(f*t-i.height)),a<t){let c=new Float32Array(l);const o=a===t-1?s:f;return e.readRenderTargetPixels(i,0,a*f,n,o,c),v.push(r?c.map(((e,t)=>r(e,t))):c),a++,a<t}return!1},getValues:(e,t)=>{let r=i(p(.5*t[0])*(n-1));const a=(i(p(.5*t[1])*(o-1))*n+r)*c,f=i(a/l),s=a%l;e[0]=v[f][s],e[1]=v[f][s+1],e[2]=v[f][s+2],e[3]=v[f][s+3]},reset:()=>{v=[],a=0}}})(s,4,4)),!N.read(F)&&(ce=t,c&&s.clear(),ee=0))},le=()=>{s.autoClearColor=!1;const e=ee%2;C.uniforms.uF.value=ee,C.uniforms.uP.value=M[e].texture,C.needsUpdate=!0,s.setRenderTarget(M[e+2]),s.render(z,w),k.uniforms.uF.value=ee,k.uniforms.uT.value=M[2-e%2*2].texture,k.uniforms.uB.value=M[1+e%2*2].texture,k.needsUpdate=!0,0!=e&&(s.setRenderTarget(F),s.render(A,b)),[M[e],M[e+2]]=[M[e+2],M[e]],ee++},ie=function(){const e=new THREE.Matrix4,t=new THREE.Color,c=[0,0],r=[0,0],f=[0,0,0,0],u=[0,0,0,0];let d=0,x=[-1,_[1]];return((e,t)=>{let c=t[0]*t[0]+t[1]*t[1];0<c&&(c=1/l(c),e[0]=t[0]*c,e[1]=t[1]*c)})(x,x),function(){var l=Math.sign;if(N){let b=l(v.rd()-.5),p=i(15e4/_[2][0][0]);for(let l,s=0;s<p;s++){l=n(2,4+i(4*v.rd())),c[0]=1.02*v.rd(),c[1]=1-ee/g-(v.rd()-.5)*(1/g*2);let s=i(c[0]*V[0].length),p=i(c[1]*V.length);const y=e=>p+3<re&&V[p][s]>=e&&V[p+1][s]<e&&V[p+2][s]<e&&V[p+3][s]<e||0<=p-3&&V[p][s]>=e&&V[p-1][s]<e&&V[p-2][s]<e&&V[p-3][s]<e;let R=y(.5)&&v.rd()>_[6][0],w=y(.25)&&v.rd()>_[6][1];j(r,c),N.getValues(f,c);let T=m(...f);const M=_[5][3](f[3],_[5][0]),F=_[4][3](ee/g,T,_[4][0]);let z=!1;!Z&&3<=s&&s<re-3&&3<=p&&p<re-5&&(p+3<re&&.6>V[p][s]&&.6<=V[p+1][s]&&.6<=V[p+2][s]&&.6<=V[p+3][s]||0<=p-3&&.6>V[p][s]&&.6<=V[p-1][s]&&.6<=V[p-2][s]&&.6<=V[p-3][s])&&.96<v.rd()&&(z=!0,Z=!0);let U=_[2][M|1*z],C=a(.6*n(f[0],2),.2)*U[3]*_[0][8][12];C*=v.rd()>_[5][1]&!F&!R&!w?_[5][2]:1;let k=i(n(T+.2,U[1])*U[0]);for(let c=0;c<k;c++){const c=!!(1>_[7])&&v.rd()>_[7];if(-.03>r[0]||-.03>r[1]||1.03<=r[0]||1.03<=r[1])break;N.getValues(u,r);let n=m(u[0],u[1],u[2]);_[3](r,x,f,T,n,U,R|w|z,_[6][2]-z*_[6][2]*.95);let s=C*(F?_[4][1]:1)*(R|w?_[6][3]:1),g=C*(F?_[4][2]:1)*(R|w?_[6][4]:1);z&&(g=C*_[4][2]*te),R&&(s=o(a(C*_[6][3],.25),1.5),g=C*_[6][4]*.5),w&&(r[0]=i(r[0]*l)/l,s=o(a(C*_[6][3],.25),1.5),g=C*_[6][4]*1.8),e.makeScale(s,g,1),_[8]?R?e.setPosition(K-3*i(r[0]*K/3),r[1]*O,-8+M+2*F):e.setPosition(K-r[0]*K,r[1]*O,-8+M+2*F):R?e.setPosition(3*i(r[0]*K/3),r[1]*O,-8+M+2*F):e.setPosition(r[0]*K,r[1]*O,-8+M+2*F),B.setMatrixAt(d,e);let p=R?[0,0,0]:w?[1,1,1]:[f[0],f[1],f[2]];if(z){let e=[0,0,0];h(f[0],f[1],f[2],e),e[0]=(e[0]+.04*b)%1,e[1]=o(1.3*(e[1]+.1),1),e[2]=o(1.1*e[2],1),E(...e,p)}p=c?[1,1,1]:p,t.setRGB(...p),B.setColorAt(d,t),d++}}0<d&&(((e,t)=>{e.count=t,e.instanceMatrix.needsUpdate=!0,e.instanceColor.needsUpdate=!0})(B,d),s.setRenderTarget(null),s.render(B,T)),ee++}}()},se=function(){const e=[0,0],t=[0,0],c=[0,0,0,0];return function(){if(N){V=Array(re).fill(0).map((()=>Array(re).fill(0)));for(let r=0;r<re*re;r++){e[0]=r%re*32,e[1]=32*i(r/re),j(t,e);let n=0;for(let r=0;r<32;r++)for(let o=0;o<32;o++)e[0]=(t[0]+o)/u,e[1]=(t[1]+r)/u,N.getValues(c,e),n+=m(...c);V[i(r/re)][r%re]=n/1024}ee++}}()},ve=()=>{(()=>{if(0===ee&&-1===ce&&(ce=0),0===ce)fe(120,1);else if(1===ce){let t=(t=>{const c=[0,0],r=[0,0,0],n=[0,0,0,0];return(()=>{if(t){let a=i(48),l=a*a,s=[];for(let v=0;v<100;v++){let d=v%10*a,g=i(v/10)*a,x=0,b=0,p=Array(21).fill(0).reduce(((e,t,c)=>(e[5*c]=0,e)),{}),y={};for(let e=g;e<g+a;e++)for(let o=d;o<d+a;o++){c[0]=o/u,c[1]=e/u,t.getValues(n,c),x+=m(n[0],n[1],n[2]),h(n[0],n[1],n[2],r),b+=r[1];const a=5*i(21*r[2]);++p[a];const f=15*i(25*(5<a&&95>a?r[0]:0));y[f]=y[f]?y[f]+1:1}x/=l,b/=l,Object.keys(y).forEach((e=>{4>=y[e]&&delete y[e]})),Object.keys(p).forEach((e=>{p[e]/=l}));let E=0,R=p[0]+p[5];E+=.3*(.85-1/(1+e(-3*(f(R-.33)-.15)*8)))*(1/(1+e(-1*(R-.45+.2)*8))),E+=.15*Object.keys(p).reduce(((e,t)=>e+(30<=t&&60>=t?p[t]:0)),0);let w=.11-(p[95]+p[100]);E+=.25*(w*(w>0?0:1)+1-1/(1+e(12*-(1*w-.15)))),E-=.02*b,E-=.01*x,E+=.3*Object.keys(y).length/24,s.push((o=E,Math.round(1e3*o)/1e3))}return s=s.map(((e,t)=>[e,t])).sort(((e,t)=>t[0]-e[0]+1e-5*(t[1]-e[1]))),s[0][1]}var o})()})(N);C.uniforms.uI.value=t,C.uniforms.uT.value=80,C.needsUpdate=!0,s.render(A,b),ce=2,N=null}else 2===ce?fe(160,3,!0):3===ce?(0===ee&&se(),ee<g?ie():ce=4):W?W&&J&&ge():W=!0})(),requestAnimationFrame(ve)},ue=(e,t)=>{let c;[e,t,G,$,c]=y(e,t),t===O||(s.setAnimationLoop(ve),ae(e,t,c))},de=(e,t)=>{J=!0,ue(e,t)},ge=()=>{const e=s.domElement.toDataURL("image/png"),t=be(".png");xe(t,e),ue(),J=!1},xe=(e,t)=>{const c=(e=>{const t=Q.atob(e.split(",")[1]),c=t.length,r=new Uint8Array(c);for(let e=0;e<c;e++)r[e]=t.charCodeAt(e);return new Q.Blob([r])})(t),r=Y.createElement("a");r.download=e,r.href=Q.URL.createObjectURL(c),r.click()},be=e=>`${(new Date).toLocaleDateString()} at ${(new Date).toLocaleTimeString()}${e}`.replace(/\//g,"-").replace(/:/g,".");let me;Q.addEventListener("resize",(()=>{Q.clearTimeout(me),me=Q.setTimeout(ue,500)}),!1),Q.addEventListener("keydown",(e=>{switch(e.code){case"KeyS":de(Q.innerWidth,Q.innerHeight);break;case"KeyH":de(2400,1200)}})),(()=>{X=Y.createElement("canvas");const e=X.getContext("webgl2",{antialias:!1,precision:"highp",stencil:!1,depth:!1,preserveDrawingBuffer:!0,alpha:!1,premultipliedAlpha:!1});s=new THREE.WebGLRenderer({canvas:X,context:e});const t=s.getContext();t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.getExtension("EXT_color_buffer_float"),s.outputEncoding=THREE.sRGBEncoding,s.autoClear=!1,Y.body.appendChild(s.domElement),ae(),ve()})()})()}();