v="g in a)a[g[6]]=a[g];Zb,c,g,d,e,f@if(b!=Q.a)return c?d+9>b&b+g>d&e+f>c&c+9>e:CfillStyle=b;t,YXAK29*1s=z=H=0};Q=[e=[P=[V=1,c.height=w=600]]];i=x=u=U=d=k=O=T=D=I=F=B=JNQ *20ejw Z,Pjw Z;down=upa@n=Cwhich-38;d!=|k!)&!L?(L=!n,dN?d:,kN?k:,L?0:O=:0};M@L&!U(U=J?-4:m);yUU<3?W=.05:0;d?xu=k+(Ok*W):0;_hsl('+T++%w+'9%,'+D*50+'%)w,w);f=1;f<80;f++@_redof<KQ[f%9]+(D|!(f&f-1)KMath.sin(T/2*2(E=f*5-,R=f<?/V:`|y<E-17&U>y=E-2UN=;iqH|=,`&s>Y=E-9)}i{qX>291|X<0?A=-A:_#30F'),H?(s=!i|B?m:z=H=:s(s<3KW!Ialert(-(y/50-)||(x=9e9),Cc(XA*V,(Y>?Y=y-:Y-)`;!I_#0f0x,,2;P )!HCx(G'DJFBI')[i%5],-)|-9&(H[G]=1,G+'=0',1e4))}y<V.3,;M`};M()";for(e in d="qe )m-2.5j =ne`)_'N=LK)*Ca.@){79onkeyy=390=this0(=(o,E,RF?-n:nt.X,Yy++=&&Z(a.type[5]with(,90,0)setTimeout( [i]');a.c(for(300=Math.random(),x,y,20)&=function(=0;i<9;i++)".split(""))v=v.replace(RegExp(d[e][0],"g"),d[e].slice(1));eval(v)
/* This time I'm submitting the un-jscrushed source
(which is up to date with the entry). If you want
variable names look at the older version.*/
for (g in a) a[g[6]] = a[g];
Z = function (q, L, k, e, f, h) {
if (q != Q.a) return L ? e + 9 > q & q + k > e & f + h > L & L + 9 > f : a.fillStyle = q;
t = this, t.Y = (t.X = (t.A = Math.random()) * 290) * 10, t.s = t.z = t.H = 0
}
Q = [e = [P = [y = 3900, V = 1, c.height = w = 600]]];
for (i = x = u = U = d = k = O = T = D = I = F = B = J = L = 0; i < 9; i++) Q[i] = Math.random() * 200, e[i] = new Z, P[i] = new Z;
onkeydown = onkeyup = function (q) {
n = q.which - 38;
d != q.type[5] | k != (F ? -n : n) & !L ? (L = !n, d = L ? d : q.type[5], k = L ? k : F ? -n : n, L ? 0 : O = 0) : 0
}
M = function (q) {
L & !U && (U = J ? -4 : -2.5);
y += U += U < 3 ? W = .05 : 0;
d ? x += u = k + (O += k * W) : 0;
Z("hsl(" + T++ % w + ",99%," + D * 50 + "%)");
a.c(0, 0, w, w);
for (f = 1; f < 80; f++) {
Z("red");
a.c(o = (f < 79) * Q[f % 9] + (D | !(f&f-1)) * Math.sin(T / 20) * 20, (E = f * 50) - y + 300, R = f < 79 ? 79 / V : 300, 9) | Z(o, E, R, x, y, 20) & y < E - 17 & U > 0 && (y = E - 20, U = L = 0);
for (i = 0; i < 9; i++)
with (e[i]) H |= Z(o, E, R, X, Y, 9) & s > 0 && (Y = E - 9);
}
for (i = 0; i < 9; i++) {
with (e[i])
X > 300 - 9 | X < 0 ? A = -A : Z("#30F"), H ? (s = !i | B ? -2.5 : 0, z = H = 0) :
Z(X, Y += s += (s < 3) * W, 9, x, y, 20) & !I && alert(-(y / 50 - 79) | 0) | (x = 9e9),
a.c(X += A * V, (Y > y + 300 ? Y = y - 300 : 0, Y - y + 300), 9, 9);
!I && Z("#0f0");
a.c(x, 300, 9, 20);
with (P[i]) !H && a.x(G = "DJFBI"[i%5], X, Y - y + 300) | Z(X, Y - 9, 9, x, y, 20) && (H = this[G] = 1, setTimeout(G + "=0", 1E4))
}
y < 0 && (V += .3, y = 3900)
setTimeout(M, 9)
};M()