eval(
( %w{req ui
re"io /co ns ol e";r=%q
{ "" """##..#))#90;;KCX2; ;K>U5z2k
0M F[:$ $$..#)+]1;;K=%$%%$X1;;K?##//1.91j.m.#+z2K:
q3 i5 %x./.%#)n/;;K;"#$%)++)%$8/;;K=#[.$..#++i2y/*</
z1K9 o1a.y3Z/*%..n.%#;;K<]/$)##)$80;;K<#$l/z.$#+#j.#*$$
'?.z/ $$#K<o2+)o.z1#X/p/$#%l/;;K;T.$Z.[/v0;;K9#*$$'[.l.#$].
o.'($* z1;/K:m/Q.##+U.90z.'$$*$l.=/;;K<T.z0[.y0;;K9o.'($*Z0]/;/n.*
$$;5K7l /G.I.$$%l0*$('*m/>.K.;;K<j.%*Z/y0;;K;#%#'#L.Z/%k0#'-<1F.K=##%%%
$/.%a.l1$('*(>.$#k0;;K:"#$z.*%$80;;K=##'-#].[.%]0;.*o/s.z0K8#%%y.%..%$#m1
2.#'##9.;;KAL.j180;2*;9L.K4#'-*#$$%/.k0;/('#;8$K.$>.x.#%%%..;/n0###*-'o0K/l
/;;K3#[ 2$%*y.W0[0;.<<L.Z0z.w.('#%b._0#'''((r0;2K2n01.$'$$*$l.;0))l.'..#l1d.;4
k1K3U. [1#*%w.#I0[/#%%%%3/<3$%%*#[1k.'''((R1^/#<.:0#:0K5I1*$('*$*%$$<2+)m/'z/j.#
+;4++ z0C.;2:1+#%%%$#[/j0k.$</[6</%#t.k/#z.(1.4.#m.#J.(((c0k.n/K380%$('*l/$q.l0))#
[.))+ +:0+; 4:1;4z1Z/y/[8%%[9L1z2#z.k.t.m0#&''(B/:1m.#I6"#$##K.#$%q.I0+#''''2.;;J1;
9z.) #&''&;3 k/#$$20;3K0)Z3Y.'(#+)=2#&&&i/(z1;.' 'x/[3#*-''-*$J3(#,]/,
c.k/#';3':0w .K2 (l 3Z/X.;1[.d.h/[0"R.K2Z1 m/k /+k 3l.++)#':4W0'Z
2#E.-'..4.j1 E. )++B.'&l/d/;0(':0&'V. K/n .m1 K2T/k7K1b/k2Z
2###j1k2=.& && i2M2(93#U1W.))+l3('&& &#' *k /# (&..l.(#..
y/*'#J.z. m1N/L/(#>.j/[5k1'k0(h0 j. '# ## l/0/m0#(L
.Y.L2"#*'& ''83)y.#h.M.)L3(''?.#i 2 '; .&&'(#..k0F
.l.z3[/*(&R.&&l/# [5:0A.'J.*[2q/L.'&##' L 0 " #;.8/i0
l0'&(>/[1#'&''[.'<2o/(*##Z2w.##*(=/'(^2&=/ Y4 o.*'#(&
U/i0[391a.&(#'*[3J.(*v.##'[1k.9.84l0G.&&l3' #7 .r.K4&(
*&#&h3##&'(('Z.z3H.*(K3[/&x.&#('n1[3x1'([ /M / Z3,Y.#k
.#=4L0K2#70(&&,,n1#'*#*q. [4l/,h4;1=/<5M 1 K4v0&k8[
5B.H.M/h3Z.##(O.m3g.,L3x0w /1/k1('#''n.<2N1g 3^1&I.=9 M6v /,##;5[:F.
M0X 2x.w.##&]3k.#m.@.Y1J/q 021S.(..L.D1>/52 k2;/==M4u. ,[9v.= ;M4###v0 #,
l3= .,,,;6E1L0#v.&##''(&5. ^2Z.g3;2m.=:M7 [ <&#.. [Dz/o/z6# #.
.o 451;1F2M2#};s=nil;f="";r. size.times{|i |i f!s ;s=nil ;
el se;f+=r[i]<"."&&r[i]||f[s=43 +f.size-r[i] .or d,r[i +
1] .ord -43]end};s=[];5.times{|i|s.push([]);4.t im e s{s
[i ].p ush("")}};24.times{|i|3.times{|j|3.times{ | k |
s[k ][j ]+=f[(i*10+k*3+j)*16,16]+"T"};s[3][j]+=s[2 ][ j]
[i *17 ,16].reverse+"T";s[4][j]+=f[i*160+144,16]+ " T
"} };5.times{|k|s[k][3]=s[k][1]};p=[0,233,23,108,8 8 ,2
22, 173,98,230,177,136,17].map{|i|"\e[48;5; #{i}m"} ; s =
s.map{|i|i.map{| j|d=p[0]+"\e[24A\e[1G";j.e ach_byte {|k|d+= k
==84&&p[0]+"\e [1B\e[1G"||p[k-34]+"!!"}; d}};prin t!
p[0]+"\n"*24, "\e[?25l";d=f=0;t=Thread.ne w{whil e!d <4
;k="jBkAhDlCq \3".index(STDIN.getch());d=k &&k/2 ||d ;
end};w hile!d <4;p rint!s[d][f];f=-~ f% 4;sl eep! 0.
14;e nd; pr int!s[4][0]," \e [?2 5h \e[0m \n"
;t.join}* "" ) . gsub(
"!" ," " ) )
|