A=[],C=0;for(B in g)A.push(B);for(A.sort();B=A.pop();)window["_"+C++]=g[B].bind?g[B].bind(g):g[B];_41(A=_108(_141),"attribute vec2 P;void main(){gl_Position=vec4(P,0,1);}"),_41(B=_108(_358),"precision mediump float;uniform vec2 R;uniform float T;void main(){float a,b,c,d,e,t=0.;for(float i=0.;i<256.;i++){a=cos(T);b=sin(T);c=1.;vec3 p=vec3((2.*gl_FragCoord.xy-R)/R.yy*t-vec2(0,.5),-2.5+t),z=p=vec3(p.zx*mat2(a,-b,b,a),-p.y);e=2.;for(int j=0;j<99;j++){e*=0.9;d=length(z);if(dot(z,z)>4.){t+=d=.5*log(d)*d/c;break;}z=pow(d,2.)*vec3(sin(a=acos(z.z/d)*2.)*cos(b=atan(z.y,z.x)*2.),sin(a)*sin(b),cos(a))+p;c=pow(d,1.)*2.*c+1.;}if(d<1e-3||t>5.){gl_FragColor=vec4(vec3(t>5.?i/128.:e),1);break;}}}"),_117(A),_117(B),_137(P=_110(),A),_137(P,B),_48(P),_11(P),_135(A=_427,_112()),_88(0),_1(0,2,_406,0,0,0),_126(A,new Int8Array([-1,-1,-1,1,1,1,1,-1]),_235),_26(_61(P,"R"),a.width*=1/a.height*(a.height=500),500),_0(0,0,a.width,a.height),a=new Date,(function r(){requestAnimationFrame(r);_30(_61(P,"T"),(new Date-a)/5000-1);_93(6,0,4)})()
          // Big thanks to Syntopia: http://blog.hvidtfeldts.net/index.php/2011/06/distance-estimated-3d-fractals-part-i/
A=[]; C=0; for(B in g) A.push(B); A.sort(); while(B = A.pop()) window["_" + C++] = g[B].bind ? g[B].bind(g) : g[B]
// _0   = g.viewport()
// _1   = g.vertexAttribPointer()
// _11  = g.useProgram()
// _26  = g.uniform2f()
// _41  = g.shaderSource()
// _48  = g.linkProgram()
// _61  = g.getUniformLocation()
// _88  = g.enableVertexAttribArray()
// _93  = g.drawArrays()
// _108 = g.createShader()
// _110 = g.createProgram()
// _112 = g.createBuffer()
// _117 = g.compileShader()
// _126 = g.bufferData()
// _135 = g.bindBuffer()
// _137 = g.attachShader()
// _141 = g.VERTEX_SHADER
// _235 = g.STATIC_DRAW
// _358 = g.FRAGMENT_SHADER
// _406 = g.BYTE
// _427 = g.ARRAY_BUFFER
_41(A=_108(_141),"attribute vec2 P;void main(){gl_Position=vec4(P,0,1);}")
_41(B=_108(_358),"precision mediump float;uniform vec2 R;uniform float T;\
void main()\
{\
	float a, b, c, d, e, t = 0.;\
	for (float i = 0.; i < 256.; i++)\
	{\
		a = cos(T);\
		b = sin(T);\
		c = 1.0;\
		e = 2.0;\
		vec3 p = vec3((2. * gl_FragCoord.xy - R) / R.yy * t - vec2(0, 0.5), -2.5 + t), z = p = vec3(p.zx * mat2(a, -b, b, a), -p.y);\
		for (int j = 0; j < 99; j++)\
		{\
			e *= 0.9;\
			d = length(z);\
			if (dot(z, z) > 4.)\
			{\
				t += d = .5 * log(d) * d / c;\
				break;\
			}\
			z = pow(d, 2.) * vec3(sin(a = acos(z.z / d) * 2.) * cos(b = atan(z.y, z.x) * 2.), sin(a) * sin(b), cos(a)) + p;\
			c = pow(d, 1.) * 2. * c + 1.;\
		}\
		if (d < 1e-3 || t > 5.)\
		{\
			gl_FragColor = vec4(vec3(t > 5. ? i/128. : e),1);\
			break;\
		}\
	}\
}")
_117(A);_117(B)             // compileShader
_137(P=_110(),A);_137(P,B)  // attachShader
_48(P);_11(P)               // linkProgram, useProgram
_135(A=_427,_112())         // bindBuffer
_88(0);_1(0,2,_406,0,0,0)   // enableVertexAttribArray, vertexAttribPointer
_126(A,new Int8Array([-1,-1,-1,1,1,1,1,-1]),_235)       // bufferData
_26(_61(P,"R"),a.width*=1/a.height*(a.height=500),500)  // uniform2f resolution
_0(0,0,a.width,a.height)                                // viewport
// uniform1f time, drawArrays
a=new Date; (function r(){requestAnimationFrame(r);_30(_61(P,"T"),(new Date-a)/5000-1);_93(6,0,4)})();