Beginning of implementation of a ctypes-based interface to libboard, which is a much cleaner set of Go routines than I hacked together originally. Including a copy of gnugo 3.8 so we can build a dynamic version of libboard.

This commit is contained in:
2012-04-12 13:46:27 -04:00
parent 55dbed09f5
commit 8b772255a1
2259 changed files with 388094 additions and 291 deletions

View File

@ -0,0 +1,54 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[CrazyStone]WR[30k]
PB[GNU]BR[13k]
PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[B+33.50]
TM[1080]RU[Chinese]
C[CrazyStone [30k\]: GTP Engine for CrazyStone (white): Crazy Stone version 0003-12
GNU [13k\]: GTP Engine for GNU (black): GNU Go version 3.7.8
]
CA[UTF-8]RO[5]
;B[kd];W[eh];B[jh];W[ch];B[kk];W[ed];B[cc];W[kg];B[kh];W[fk];B[cf]
;W[db];B[dc];W[ec];B[hc];W[fb];B[gb];W[gc];B[hb];W[hd]
C[gunnar [?\]: Is the upper left quite safe?
];B[id];W[ic];B[jc]
;W[bf];B[gd];W[he];B[ge];W[gf];B[hf];W[ie];B[ff];W[ig];B[if];W[je]
C[burtabel [3d\]: what default level is GNU using now?
];B[jg];W[gg]
C[gunnar [?\]: I don't understand a thing of this fight.
];B[jf]
;W[fe];B[fc];W[fd];B[gc]C[gunnar [?\]: 15
];W[ef];B[hk];W[ke];B[ib]
;W[fg];B[gl];W[ld];B[lc];W[lb];B[el];W[mc];B[kc];W[lh];B[le];W[lf]
;B[li];W[me];B[kf];W[lg];B[kb];W[ki];B[ji];W[kj];B[lj];W[jj];B[hi]
;W[hj];B[gj];W[ij];B[ik];W[mb];B[la];W[ka];B[dk];W[ja];B[fj];W[be]
;B[cj];W[dj];B[di];W[bj];B[bk];W[fa]
C[gunnar [?\]: I'm not sure GNU understands the semeai in the upper right. G13 is a good move.
]
;B[jd];W[le];B[bi]
C[burtabel [3d\]: i am sure GNU does not understand it...
];W[ga]
;B[cg];W[ci]C[gunnar [?\]: Me too. :-(
];B[ej];W[ma];B[ce];W[ck]
;B[dh];W[cl];B[bh];W[jb];B[cb];W[cd];B[dd]
C[RemiCoulom [12k\]: Crazy Stone plays stupid moves because it believes GNU has to reply in K3 to kill K4.
]
;W[bl];B[aj];W[ak];B[bj];W[ca];B[ba];W[de];B[da];W[eb];B[bd];W[jl]
;B[jk];W[ea];B[hg];W[kl]
C[gunnar [?\]: Strange game, even with computer go standards.
];B[ll]
;W[gh];B[hh];W[mh];B[df];W[ee];B[ei];W[eg];B[mi];W[ml];B[mk];W[ic]
;B[ca];W[lm];B[lk];W[gi];B[fi];W[ih];B[ii];W[em];B[fm];W[al];B[dm]
;W[fh];B[dg];W[ab];B[bb];W[ad];B[bg];W[ac];B[af];W[ae];B[bc];W[ha]
;B[dl];W[ag];B[ah];W[aa];B[af];W[kj];B[be];W[hl];B[mm];W[la];B[km]
;W[fl];B[gk];W[il];B[jm];W[ij];B[ek];W[mg];B[];W[ih];B[];W[jj];B[]
;W[ki];B[];W[jd];B[];W[kd];B[];W[md];B[];W[id];B[];W[ia];B[];W[]
TB[aa][ab][ac][ad][cd][ae][bf][ag][ig][ch][ih][ai][ci][ki][dj][hj]
[ij][jj][kj][mj][ak][ck][fk][al][bl][cl][fl][hl][il][jl][kl][ml][am]
[bm][cm][em][gm][hm][im][lm]TW[gb][hb][ib][kb][fc][gc][hc][jc][kc]
[lc][gd][ge][ff][mf]
C[burtabel [3d\]: think all GNU - games in this tourney were exciting, more because of the fighting than because of the quality of moves...
]
)

View File

@ -0,0 +1,41 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[GNU]WR[13k]
PB[CrazyStone]BR[30k]
PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[W+0.50]
TM[1080]RU[Chinese]
C[CrazyStone [30k\]: GTP Engine for CrazyStone (black): Crazy Stone version 0003-12
GNU [13k\]: GTP Engine for GNU (white): GNU Go version 3.7.8
]
CA[UTF-8]RO[3]
;B[gh];W[dj];B[if];W[dh];B[fc];W[ce];B[hh];W[ek];B[di];W[ei];B[hj]
;W[hl];B[cf];W[df];B[ik]
C[burtabel [3d\]: just this week I wanted to write some code go generate invasions like L11 here...
]
;W[kk];B[ki];W[kg];B[il];W[kd];B[ke];W[le];B[jc];W[lj];B[kl];W[li]
;B[jd];W[kc];B[kb];W[lb];B[ld];W[lc];B[lf];W[md];B[be];W[kf];B[de]
;W[cg];B[cd];W[ef];B[je];W[gk];B[ee];W[ll];B[lh];W[kh];B[jh];W[jb]
;B[ib];W[ka];B[jj];W[lg];B[jg];W[ia];B[jf];W[mf];B[ci];W[bi];B[mg]
;W[lf];B[cj];W[ck];B[bj];W[bh];B[fj];W[ej];B[bg];W[ch];B[fk];W[fl]
;B[eh];W[ga];B[ff];W[hb];B[ic];W[db];B[hm];W[gm];B[im];W[eg];B[fh]
;W[km];B[ah];W[ai];B[bk];W[cl];B[el];W[dl];B[ag];W[bl];B[fi];W[em]
;B[fg];W[aj];B[dg];W[ak];B[fb];W[fa];B[hc];W[bc];B[ea];W[eb];B[gb]
;W[da];B[ha];W[cc];B[ea];W[fa];B[ba];W[bb];B[ca];W[aa];B[ac];W[jl]
;B[bd];W[ja];B[la];W[ma];B[gj];W[kj];B[mb];W[ji];B[la];W[kb];B[ii]
;W[jk];B[hk];W[gl];B[mc];W[ma];B[jm];W[ij];B[bf];W[jj];B[lm];W[mm]
;B[ml];W[al];B[ec];W[mh];B[lm];W[kl];B[ig];W[ld];B[ga];W[];B[ef];W[]
;B[ea];W[];B[gi];W[];B[ad];W[];B[fa];W[];B[hb];W[];B[ab];W[];B[ih]
;W[];B[hf];W[];B[cb];W[];B[dc];W[];B[]TB[aa][da][bb][db][eb][bc][cc]
[gc][dd][ed][fd][gd][hd][id][ae][ce][fe][ge][he][ie][af][df][gf][eg]
[gg][hg][hi]TW[la][mb][mc][me][mg][lh][ci][di][ki][mi][bj][cj][mj]
[bk][dk][lk][mk][el][ml][am][bm][cm][dm][fm][lm][mm]
C[burtabel [3d\]: oops
RemiCoulom [12k\]: !
Franco [10k\]: lol
wb [7k\]: :)
maproom [8k?\]: please leave your bots running after this - there MAY be three more rounds
burtabel [3d\]: typical monkey jump disaster by GNU Go...
]
)

View File

@ -0,0 +1,82 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[GNU]WR[13k]
PB[firstgo]PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[W+148.50]
TM[1080]RU[Chinese]
C[GNU [13k\]: GTP Engine for GNU (white): GNU Go version 3.7.8
firstgo [?\]: GTP Engine for firstgo (black): FirstGo version 1.112
]
CA[UTF-8]RO[1]
;B[gg];W[ci];B[hh];W[de];B[ff];W[dg];B[je];W[ec];B[id];W[ek];B[di]
;W[eh];B[ej];W[fj];B[ei];W[fi];B[dk];W[el];B[cl];W[cj];B[dj];W[bl]
;B[fh];W[hj];B[bk];W[ck];B[dh];W[eg];B[dl];W[bj];B[bm];W[ak];B[ch]
;W[bh];B[cg];W[cf];B[ef];W[df];B[gj]
C[gunnar [?\]: I'm not entirely impressed by GNU's play.
];W[bg]
;B[fk];W[gi];B[hi];W[gk];B[fl];W[gl];B[em]
C[greymatter [24k?\]: Gnu should have no problem to win with a large amount
]
;W[cm]C[greymatter [24k?\]: Hi gunnar
];B[dd];W[ed];B[dc];W[cd];B[cc]
;W[bc];B[cb]C[burtabel [3d\]: not a big tournament...
gunnar [?\]: No, 9x9 seems more popular.
]
;W[bb];B[da];W[am];B[ij]C[burtabel [3d\]: huh?
burtabel [3d\]: a1?
gunnar [?\]: No idea.
trogdor [-\]: :)
]
;W[ik];B[jj];W[gj];B[gm]C[gunnar [?\]: G4 wasn't stellar either.
]
;W[jk];B[hl];W[hk];B[jl]
C[gunnar [?\]: On the other, neither was K2. :-)
];W[kj];B[il]
C[burtabel [3d\]: or G1 or L4...
];W[kl];B[lk];W[kk];B[bf]
C[gunnar [?\]: Pretty bad fight in other words.
];W[eb];B[ee]
C[burtabel [3d\]: e12 is the best move i have seen so far :)
];W[be]
;B[lj]C[gunnar [?\]: It was the second choice when A1 was played.
]
;W[ki];B[ii];W[kg];B[ll];W[km];B[mj];W[le];B[lh];W[kh];B[lm];W[li]
;B[ml]C[gunnar [?\]: Shouldn't have been necessary to let black live.
burtabel [3d\]: yes but m9 was big too
gunnar [?\]: GNU is down to level 12 now but playing quite slowly.
]
;W[hc];B[mi];W[ic];B[jc];W[jb];B[kb];W[kc];B[jd];W[lb];B[kd];W[lc]
C[gunnar [?\]: Now level 8 and the speed is up.
];B[ib];W[ka];B[ja]
C[gunnar [?\]: Hm, back to 12. Time might become a problem.
burtabel [3d\]: ko always dangerous for time
]
;W[kb]C[al2 [7k\]: there is no ko here
];B[ld];W[lg];B[mh];W[md]
C[burtabel [3d\]: L12 will turn up as ko in many reading sequences
]
;B[hd];W[gc];B[fd];W[ig]C[al2 [7k\]: ok :)
];B[ge];W[hf];B[mb];W[af]
;B[mc];W[ma]
C[burtabel [3d\]: I think we need alpha-beta cut in all our reading so we dont get killed by kos at higher levels
]
;B[mb];W[fg];B[gf];W[gh];B[hg];W[if];B[la];W[ia];B[fc];W[db]
C[al2 [7k\]: do this reading at high level is in cache ?
gunnar [?\]: Only one dragon now. That's good for speed.
]
;B[fb];W[ca];B[gb];W[hb];B[ha];W[ga];B[fa];W[ea];B[gd];W[jf];B[ha]
;W[ib];B[lf];W[ga];B[mg];W[ke];B[ha];W[me];B[mf];W[kf];B[ji];W[jh]
C[al2 [7k\]: whao
];B[ie];W[mc];B[];W[fh];B[];W[bf];B[];W[dd];B[]
;W[cb];B[];W[bi];B[];W[bk];B[];W[bm];B[];W[dm];B[];W[jm];B[];W[]
TB[mk][mm]TW[aa][ba][da][fa][ga][ha][ja][la][ma][ab][fb][gb][mb][ac]
[cc][dc][fc][jc][ad][bd][fd][gd][hd][id][jd][kd][ld][ae][ce][ee][fe]
[ge][he][ie][je][ef][ff][gf][ag][cg][gg][hg][jg][ah][ch][dh][hh][ih]
[ai][di][ei][hi][ii][ji][aj][dj][ej][ij][jj][dk][ek][fk][al][cl][dl]
[el][fl][hl][il][jl][em][fm][gm][hm][im]
C[greymatter [24k?\]: well, congratulations
burtabel [3d\]: thanks
greymatter [24k?\]: till next time...
]
)

View File

@ -0,0 +1,75 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[GNU]WR[13k]
PB[viking5]PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[W+Resign]
TM[1080]RU[Chinese]
C[GNU [13k\]: GTP Engine for GNU (white): GNU Go version 3.7.8
viking5 [?\]: GTP Engine for viking5 (black): Viking version 5.3.1
]
CA[UTF-8]RO[2]
;B[kc];W[dj];B[ec];W[jf];B[ij]
C[zapp [?\]: burtabel, viking does not use bensons it plays random games to the end
]
;W[kj];B[ck];W[ii]
C[zapp [?\]: And if all random games wins it simply plays any move
]
;B[hf]C[burtabel [3d\]: ok i see
];W[hj];B[dk]
C[zapp [?\]: But in a close game losing those stones would be a disaster
]
;W[ej]C[zapp [?\]: And in 99% of the case it will play correctly
]
;B[ek];W[ik]
C[zapp [?\]: I have actually never tested viking against gnugo on 13x13
]
;B[gg];W[eg];B[fk];W[bi];B[bj];W[ee];B[id];W[cj];B[bk];W[ch]
C[zapp [?\]: Viking thinks it is slightly behind
];B[je];W[kf];B[cd]
;W[cf];B[le]C[gunnar [?\]: GNU thinks B+3.
];W[lf]
C[burtabel [3d\]: yes after W C8 Black should be leading
];B[fd]
;W[be];B[bc];W[gl];B[ig];W[jh]
C[zapp [?\]: Viking has problems with monkey jumps
burtabel [3d\]: gnugo too
]
;B[ff];W[ke];B[aj];W[ld];B[ef];W[lc]
C[gunnar [?\]: GNU thinks it's ahead by five points now.
];B[bg]
C[zapp [?\]: Viking is also more pessimistic
];W[ai];B[fj];W[jc]
;B[eh]C[gunnar [?\]: GNU doesn't seem worried about the left side.
zapp [?\]: Viking clearly wants to kill this large group
]
;W[ic];B[dg]C[burtabel [3d\]: well its dead now
];W[gb]
C[zapp [?\]: Not in computer go...
];B[cg]
C[gunnar [?\]: Somehow the owl reading found out correctly but didn't play to defend it anyway.
burtabel [3d\]: maybe semeai overruled it?
zapp [?\]: This is often what happens when viking beats gnu
]
;W[ie];B[fb]
C[zapp [?\]: It desperately tries something and gnu stumbles on a bug
]
;W[hd];B[gc]C[Gresil [16k\]: viking5 has superior luck code, eh
]
;W[hb]
C[zapp [?\]: Good comment. Since it is based on playing random games to the end it actually measures luck all the time
]
;B[fl];W[fm]
C[zapp [?\]: It plays the move that seems to possibly be the most lucky one
]
;B[gi];W[dm];B[gk];W[hl];B[hk];W[il];B[he];W[if];B[el];W[em];B[ga]
;W[gd]
C[zapp [?\]: A move ordering problem makes it not see the points in the lower left
]
;B[ha];W[ia];B[fa];W[bm];B[cl];W[cm];B[jg];W[kg];B[ih];W[hi];B[hh]
;W[ji];B[bl];W[ge];B[fe];W[al];B[fh];W[jd];B[kl];W[gf];B[lk];W[hg]
C[zapp [?\]: It now thinks it is losing
];B[lj];W[li];B[ml];W[lm]
;B[mj];W[km];B[gj];W[gh];B[hh];W[ih];B[fg];W[gh];B[jl];W[jm]
C[burtabel [3d\]: hmm
])

View File

@ -0,0 +1,78 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[GNU]WR[13k]
PB[viking5]PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[W+Resign]
TM[1080]RU[Chinese]
C[viking5 [?\]: GTP Engine for viking5 (black): Viking version 5.3.1
GNU [13k\]: GTP Engine for GNU (white): GNU Go version 3.7.8
]
CA[UTF-8]RO[4]
;B[ik];W[kj];B[id];W[ek];B[ed];W[ji];B[gk];W[ei];B[jg];W[hi];B[kl]
;W[kd];B[je];W[ke];B[ef];W[dh];B[kf];W[lf];B[lg];W[le];B[hj];W[hh]
C[zapp [?\]: Since Viking only searches 1 ply on 13x13 it appears to vervalue sente moves
]
;B[gg];W[cf];B[jc]
C[burtabel [3d\]: well GNU Go only "searches" 1 ply too
];W[kc]
C[burtabel [3d\]: but has a lot of special code to guess the value of (reverse) sente moves
zapp [?\]: On 9x9 however viking searches 2-4 ply depending on position and stage of the game
]
;B[kb];W[lb];B[jb];W[la];B[de];W[ij];B[gi];W[gh];B[fh];W[fi];B[ce]
;W[bf];B[eg];W[gj];B[hk]C[zapp [?\]: Another bad sente move
];W[ac]
C[gunnar [?\]: GNU says B+6.
];B[cc];W[hg]
C[burtabel [3d\]: I think W is leading
gunnar [?\]: Now B+0.10.
]
;B[fl];W[el]C[zapp [?\]: Viking thinks white is ahead
];B[li];W[lj]
;B[hf]C[gunnar [?\]: GNU agrees now. W+3.
];W[fk];B[gm];W[jk]
C[burtabel [3d\]: well of course W should have gotten F2
];B[jl]
;W[eh];B[lk];W[kk];B[mk];W[em];B[fg];W[mj];B[lm];W[kh];B[ih];W[kg]
;B[jf];W[jh];B[ig];W[ii];B[dg];W[cg]
C[zapp [?\]: Now viking is starting to get desperate
gunnar [?\]: Viking blundered away some points and now the C7 cut aji is gone.
]
;B[bh];W[ch]C[zapp [?\]: Yes, it is to weak tactically in the endgame
zapp [?\]: I need to use time more efficient
burtabel [3d\]: before that GNU Go played some negative moves.. (K3, E6)
]
;B[be];W[ae];B[ck];W[bi];B[bj];W[ah];B[bl];W[ak]
C[trogdor [-\]: zapp: tried splitting vikings simulations to several computers?
]
;B[aj];W[cl];B[bm];W[al];B[dl];W[dk]
C[zapp [?\]: This is a thought that is in my mind
];B[cm]
C[zapp [?\]: But right now I only have my laptop
];W[dm]
C[burtabel [3d\]: easier thought than done..
];B[jd]
C[trogdor [-\]: well, for montecarlo it should be easy.
];W[bb]
C[zapp [?\]: But a multicore stationary PC is on the wishlist
];B[cb]
;W[ba];B[bd]
C[zapp [?\]: Actually viking code might be unusually easy to parallelize
]
;W[ad];B[ml];W[ca];B[db];W[da]
C[zapp [?\]: Ok, gnu is still the king :-)
burtabel [3d\]: well Black had a chance in lower left
burtabel [3d\]: d2 instead of b1 lives?
gunnar [?\]: No.
zapp [?\]: If C5 is sent?
gunnar [?\]: It's not.
burtabel [3d\]: how can White kill?
burtabel [3d\]: after D2?
gunnar [?\]: Down to C1.
burtabel [3d\]: then Black B1 and A2
zapp [?\]: I need to enter my bathtub quickly
zapp [?\]: see you
gunnar [?\]: Uh, yeah, I was thinking false eye when it wasn't.
gunnar [?\]: So C2 should have been C1?
]
)

View File

@ -0,0 +1,77 @@
(;GM[1]FF[4]
SZ[13]KM[7.50]
PW[firstgo]PB[GNU]BR[13k]
PC[The Kiseido Go Server (KGS) at http://kgs.kiseido.com/]
DT[2006-02-05]
EV[Eleventh KGS Computer Go Tournament - Formal division]RE[B+161.50]
TM[1080]RU[Chinese]
C[GNU [13k\]: GTP Engine for GNU (black): GNU Go version 3.7.8
firstgo [?\]: GTP Engine for firstgo (white): FirstGo version 1.112
]
CA[UTF-8]RO[6]
;B[jd];W[ie];B[kf];W[ke];B[je];W[kd];B[jg];W[kc];B[if];W[he];B[gg]
;W[gd]C[gunnar [?\]: Corners are out of vogue!
];B[eg];W[ei];B[dj]
;W[fj];B[hj];W[ji];B[dh];W[kj];B[gk];W[gj]
C[gunnar [?\]: White has managed to split itself into four groups.
]
;B[ij];W[di];B[ci];W[dk];B[ck];W[bj];B[cj];W[bk]
C[gunnar [?\]: So why don't start a fifth?
];B[bi];W[cl];B[dl];W[ek]
C[greymatter [24k?\]: Does gnu try to keep fewer groups?
];B[bl]
;W[gl];B[ik];W[ii]
C[gunnar [?\]: Not really, although it has some bonuses to keep connected.
gunnar [?\]: And some penalties for starting invasions.
]
;B[fk];W[el]
C[greymatter [24k?\]: Ok, firstgo has a bad evaluation. Must get major changes
]
;B[ej];W[fh];B[kl];W[dm]
C[greymatter [24k?\]: gnu is much stronger at this moment.
];B[bm]
;W[fl];B[hk]C[gunnar [?\]: Not playing great here though.
];W[bh]
C[greymatter [24k?\]: Does gnu use global lookahead?
gunnar [?\]: No.
greymatter [24k?\]: One of my problems is to combine the results of different searches.
]
;B[ch];W[bg];B[cc]
C[greymatter [24k?\]: With a global lookahead, this could be less of a problem?
]
;W[cf];B[jc];W[kb]C[gunnar [?\]: Maybe, but I'm doubtful.
];B[cm]
;W[al]C[gunnar [?\]: C1 dangerous.
];B[dl]
C[greymatter [24k?\]: Because of the increased search depth?
];W[em]
;B[cl];W[dc]
C[elife [5d?\]: why L12 not at K12? I have observed many these kind of moves in gnugo's game
]
;B[db];W[ec];B[eb];W[fc]C[gunnar [?\]: Well L12 was firstgo's move.
greymatter [24k?\]: Thats a move of firstgo...
]
;B[fb];W[kk]C[elife [5d?\]: oh :-)
];B[ll];W[bc];B[cd]
C[greymatter [24k?\]: K12 is better, firstgo is new program, should be better in the future :^)
]
;W[bd];B[id];W[bb];B[cb];W[ic];B[ib];W[hc];B[gb];W[jb];B[hb];W[ca]
;B[df];W[hi];B[fg];W[gi];B[ce];W[ac];B[be];W[il];B[jl];W[jk];B[hl]
;W[gf];B[fe];W[hd];B[jf];W[hf];B[hg];W[ih];B[fd];W[lk];B[lf];W[ml]
;B[mc];W[le];B[me];W[mg];B[mf];W[ld];B[md];W[ig];B[kh];W[ki];B[lh]
;W[jh];B[li];W[hm];B[im];W[lj];B[lm];W[mi];B[mh];W[bf];B[ff];W[gh]
;B[mj];W[mk];B[eh];W[mi];B[mm];W[];B[ae];W[jj];B[gm];W[];B[ai];W[]
;B[lb];W[];B[ka];W[];B[la];W[];B[kg];W[mj];B[hh];W[];B[da];W[];B[ba]
;W[];B[dg];W[];B[lc];W[];B[ja];W[le];B[ld];W[];B[ke];W[];B[fi]
C[greymatter [24k?\]: Why is gnu continuing, firstgo sees all of his stones dead
]
;W[ii];B[ih];W[lj];B[kj];W[];B[ia];W[];B[de];W[];B[]TB[aa][ca][ea]
[fa][ga][ha][ma][ab][bb][jb][kb][mb][ac][bc][dc][ec][fc][gc][hc][ic]
[kc][ad][bd][dd][ed][gd][hd][kd][ee][ge][he][ie][le][af][bf][cf][ef]
[gf][hf][ag][bg][cg][ig][lg][mg][ah][bh][fh][gh][jh][di][ei][gi][hi]
[ii][ji][ki][mi][aj][bj][fj][gj][jj][lj][mj][ak][bk][dk][ek][jk][kk]
[lk][mk][al][el][fl][gl][il][ml][am][dm][em][fm][hm][jm][km]
C[greymatter [24k?\]: congratulations
greymatter [24k?\]: I have much to do, but I already knew that :-)
]
)