Add a benchmark script to test the slowness of prettyprint_pv.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 20 Sep 2014 16:14:45 +0000 (18:14 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 20 Sep 2014 16:14:45 +0000 (18:14 +0200)
bench.pl [new file with mode: 0644]
pv-benchmark.txt [new file with mode: 0644]

diff --git a/bench.pl b/bench.pl
new file mode 100644 (file)
index 0000000..b7c5340
--- /dev/null
+++ b/bench.pl
@@ -0,0 +1,42 @@
+#! /usr/bin/perl
+use strict;
+use warnings;
+require 'Position.pm';
+
+my $pos = Position->start_pos('NN', 'NN');
+while (<>) {
+       chomp;
+       my @pvs = split / /, $_;
+       print join(' ', prettyprint_pv_no_cache($pos->{'board'}, @pvs)), "\n";
+}
+
+sub prettyprint_pv_no_cache {
+       my ($board, @pvs) = @_;
+
+       if (scalar @pvs == 0 || !defined($pvs[0])) {
+               return ();
+       }
+
+       my $pv = shift @pvs;
+       my ($from_col, $from_row, $to_col, $to_row, $promo) = parse_uci_move($pv);
+       my ($pretty, $nb) = $board->prettyprint_move($from_row, $from_col, $to_row, $to_col, $promo);
+       return ( $pretty, prettyprint_pv_no_cache($nb, @pvs) );
+}
+
+sub col_letter_to_num {
+       return ord(shift) - ord('a');
+}
+
+sub row_letter_to_num {
+       return 7 - (ord(shift) - ord('1'));
+}
+
+sub parse_uci_move {
+       my $move = shift;
+       my $from_col = col_letter_to_num(substr($move, 0, 1));
+       my $from_row = row_letter_to_num(substr($move, 1, 1));
+       my $to_col   = col_letter_to_num(substr($move, 2, 1));
+       my $to_row   = row_letter_to_num(substr($move, 3, 1));
+       my $promo    = substr($move, 4, 1);
+       return ($from_col, $from_row, $to_col, $to_row, $promo);
+}
diff --git a/pv-benchmark.txt b/pv-benchmark.txt
new file mode 100644 (file)
index 0000000..d15411e
--- /dev/null
@@ -0,0 +1,274 @@
+d2d4 g8f6 g1f3 d7d5 c1f4 c8f5 e2e3 e7e6 f1d3 f8d6 f4d6 d8d6 b1c3 e8g8 e1g1 b8c6 c3b5 d6e7 d3f5 e6f5
+e2e4 e7e5 g1f3 b8c6 d2d4 e5d4 f3d4 d7d5 b1c3 d5e4 d4c6 d8d1 e1d1 b7c6 c3e4
+b1c3 g8f6 e2e4 e7e5 g1f3 b8c6 d2d4 e5d4 f3d4 f8b4 d1d3 c6d4
+g1f3 d7d5 d2d4 g8f6 e2e3 e7e6 f1e2 f8b4 c2c3 b4d6 e1g1 e8g8 b1d2 b8c6
+d2d4 g8f6 e2e3 d7d5 g1f3 e7e6 f1e2 f8b4 c2c3 b4d6 e1g1 e8g8 b1d2 b8c6
+e2e3 d7d5 d2d4 g8f6 g1f3 e7e6 f1e2 f8b4 c2c3 b4d6 e1g1 e8g8 b1d2 b8c6
+c2c4 e7e6 g1f3 g8f6 d2d4 d7d5 e2e3 b8c6 b1c3 f8b4 d1a4
+a2a3 g8f6 d2d4 d7d5 g1f3 e7e6 c1f4 f8e7 e2e3 e8g8 b1c3 b8c6
+h2h3 e7e5 d2d4 e5e4 b1c3 d7d5 c1f4 f8b4 a2a3 b4c3 b2c3 g8e7 e2e3
+f2f4 g8f6 g1f3 b8c6 b1c3 d7d5 e2e3 e7e6 g2g4 f6g4 h2h3 g4f6 f1b5
+d2d3 d7d5 e2e4 d5e4 b1c3 g8f6 c1e3 e7e5 d3e4 d8d1 a1d1 f8b4 f2f3 b8c6
+a2a4 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 d7d5 e4d5 f6d5 f1b5
+g1h3 e7e5 b1c3 b8c6 e2e4 g8f6 f1c4 c6a5 c4e2 d7d5 d2d4 f8b4 e1g1 b4c3 b2c3 f6e4 d4e5 e4c3
+h2h4 d7d5 g1f3 b8c6 d2d4
+f2f3 e7e5 e2e4 g8f6 g1e2 d7d5 d2d4 e5d4 e4e5 f6d7 d1d4 b8c6
+c2c3 e7e5 d2d4 e5e4 e2e3 d7d5 b1d2 g8f6 g1e2 b8c6 d1a4 f8d6
+b2b3 e7e5 d2d4 e5d4 g1f3 f8b4 c1d2 b4d2 d1d2 g8f6 f3d4 e8g8 b1c3 d7d6
+b1a3 e7e5 d2d4 e5e4 d4d5 g8f6 e2e3 f8b4 c2c3 b4a3 b2a3 d7d6 g1e2 e8g8
+g2g3 e7e5 d2d4 e5d4 g1f3 d7d5 d1d4 b8c6 d4e3 g8e7 c2c3 c8e6 f3g5
+g2g4 d7d5 g4g5 e7e5 d2d4 b8c6 d4e5 c6e5 f2f4 e5c4 e2e4
+b2b4 e7e5 e2e3 d7d5 c2c3 g8f6 d2d4 e5d4
+e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 c8g4 h2h3 g4f3 d1f3 g8f6 f3b3 a8b8 d2d3 f8c5 c1e3 f6d7 b1d2 e8g8 b3c3 c5e3 f2e3
+e2e4 e7e5 g1f3 g8f6 d2d4 d7d5 f3e5 c8e6 d1e2 d5e4 e2b5 b8c6 e5c6 b7c6 b5c6 e6d7
+c2c4 e7e6 g1f3 g8f6 d2d4 d7d5 e2e3 b8c6 b1c3
+d2d4 g8f6 g1f3 e7e6 e2e3 d7d5 c2c4 b8c6 b1c3
+b1c3 g8f6 d2d4 d7d5 c1f4 e7e6 e2e3 f8d6 f4d6 d8d6 g1f3 d6b4 f1d3 b4b2 c3b5
+g1f3 g8f6 e2e3 d7d5 d2d4 e7e6
+e2e3 d7d5 d2d4 g8f6 g1f3 e7e6
+d2d3 d7d5 e2e4 d5e4 b1c3 g8f6 c1e3 c8f5 d3e4 d8d1 a1d1 f6e4 c3b5 b8a6 g1f3 c7c6 b5a7
+a2a3 e7e5 e2e4 b8c6 g1f3 g8f6 b1c3 d7d5 e4d5 f6d5 f1b5 a7a6 b5c6 b7c6 d2d4 d5c3 b2c3 e5d4 f3d4
+a2a4 b8c6 d2d4 d7d5 g1f3 g8f6 e2e3 e7e6 f1d3 f8d6 e1g1 e8g8 b1c3 c8d7 c1d2 a7a6
+c2c3 e7e5 d2d4 e5e4 c3c4 g8f6 b1c3 f8b4 e2e3 d7d5 g1e2 e8g8 c4d5 d8d5 c1d2 d5f5
+h2h3 g8f6 d2d4 e7e6 g1f3 b8c6 b1c3 d7d5 e2e3 f8e7 f1b5
+f2f4 d7d5 g1f3 b8c6 e2e3 g8f6 b1c3 e7e6 f1b5 c8d7 e1g1 a7a6 b5e2 f8b4
+f2f3 e7e5 e2e4 g8f6 b1c3 f8c5 g1e2 d7d5 d2d4 e5d4 c3a4 c5b4 c2c3 d4c3 b2c3
+b2b3 e7e5 e2e4 g8f6 b1c3
+g2g3 e7e5 d2d4 e5d4 g1f3 d7d5 f1g2 c7c5 e1g1 b8c6 e2e3 d4e3 c1e3 g8f6 b1c3 d5d4
+g1h3 e7e5 b1c3 b8c6 e2e4 g8f6 f1c4 c6a5 c4e2 d7d5 e4d5 f6d5 e1g1 f8b4
+h2h4 e7e5 e2e4 b8c6 g1f3 g8f6 f1b5 f8c5 d2d3 e8g8 b5c6 d7c6 f3e5
+b1a3 e7e5 d2d4 e5d4 g1f3 d7d5 d1d4 b8c6 d4a4 g8f6 c1f4 f8c5 a3b5 e8g8 b5c7
+g2g4 d7d5 g1f3 b8c6 g4g5 e7e5 d2d3 g8e7 b1d2 h7h6 g5h6 g7g6 h1g1 f8h6 e2e3
+b2b4 e7e5 c1b2 d7d5 b2e5 b8c6 g1f3 c6e5 f3e5 f8b4 b1c3 g8f6 e5d3 b4c3 d2c3
+e2e4 e7e5 g1f3 g8f6 f3e5 d7d6 e5f3 f6e4 d2d4 d6d5 f1d3 b8c6 e1g1 f8e7 b1c3 f7f5 c1f4 a7a6 f3e5 c6e5 d4e5 e8g8 d3e2 c7c6
+e2e4 e7e5 g1f3 g8f6 d2d4 f6e4 f3e5 d7d5 b1d2 c8e6 d1e2 e4d6 c2c3 b8c6 e5c6 b7c6 h2h3
+g1f3 g8f6 d2d4 e7e6 c1f4 d7d5 e2e3 f8d6 f4d6 d8d6 b1c3 d6b4 f1d3 b4b2 c3b5
+d2d4 g8f6 g1f3 e7e6 c1f4 d7d5 e2e3 f8d6 f4d6 d8d6 b1c3 d6b4 f1d3 b4b2 c3b5
+b1c3 e7e5 e2e4 b8c6 f1c4 g8f6 d2d3 f8c5 g1f3 e8g8 e1g1 d7d6 c1e3 c5e3 f2e3
+e2e3 g8f6 d2d4 e7e6 g1f3 f8e7 b1c3 d7d5 f1d3 e8g8 e1g1 b8c6 c1d2 c8d7 a2a3 a7a6
+a2a3 e7e5 e2e3 d7d5 d2d4 e5d4 e3d4 g8f6 g1f3 b8c6 b1c3 c8g4 f1b5 d8e7 d1e2 a7a6 b5c6 b7c6
+c2c4 e7e5 b1c3 g8f6 g1f3 b8c6 e2e3 f8b4 f1e2 e8g8 e1g1 d7d5 d2d4 e5d4 f3d4 c6e5 c4d5 f6d5
+d2d3 d7d5 e2e4 d5e4 b1c3 g8f6 c1e3 e4d3 d1d3 b8d7 a1d1 e7e5 g1f3 f8d6 c3e4 f6e4 d3e4
+h2h3 g8f6 g1f3 e7e6 b1c3 d7d5 d2d4 c8d7 e2e3 f8e7 f1e2 e8g8 e1g1 c7c5 d4c5 e7c5
+b2b3 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 f8c5 f1c4 d7d6 e1g1 e8g8 d2d3 a7a6 c1e3 c5e3 f2e3
+f2f4 d7d5 g1f3 b8c6 e2e3 g8f6 b1c3 e7e6 f1e2 f8d6 e1g1 e8g8
+a2a4 e7e5 e2e4 g8f6 b1c3 f8b4 g1f3 e8g8 f1c4 d7d6 d2d3 b8c6 e1g1 c8d7
+g1h3 e7e5 d2d4 e5d4 e2e3 g8f6 e3d4 d7d5 f1e2 b8c6 b1c3 c8h3 g2h3 f8b4 a2a3 b4c3 b2c3
+g2g3 e7e5 d2d3 b8c6 f2f4 g8f6 g1f3 d7d6 b1c3 f8e7 f1g2 e8g8 e2e4 c8g4 e1g1 a7a6
+h2h4 d7d5 d2d4 e7e6 e2e3 g8f6 g1f3 f8e7 b1c3 e8g8 f1e2 b8c6 e1g1 f6e4 c3e4 d5e4
+b1a3 e7e5 e2e4 g8f6 g1f3 d7d5 e4d5 e5e4 d1e2 f8a3 b2a3 e8g8 f3e5 d8d5 c1b2 b8c6 e5c6 d5c6
+f2f3 e7e5 e2e4 g8f6 d2d4 e5d4 d1d4 b8c6 d4e3 f8e7 e4e5 f6d5 e3e4 d5b6 b1c3 e8g8 a2a3
+g1f3 g8f6 d2d4 e7e6 c1f4 d7d5 e2e3 b8c6 f1b5 c8d7 b1c3 f8b4 e1g1 e8g8 a2a3 b4c3 b2c3
+d2d4 g8f6 g1f3 e7e6 c1f4 d7d5 e2e3 b8c6 f1b5 c8d7 b1c3 f8b4 e1g1 e8g8 a2a3 b4c3 b2c3
+e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 c8g4 d2d3 f8d6 c1e3 g8f6 b1d2 e8g8 d2c4 f8e8
+b1c3 e7e5 e2e4 b8c6 g1f3 g8f6 a2a3 f8c5 f1c4 e8g8 d2d3 d7d6
+e2e3 d7d5 d2d4 b8c6 g1f3 e7e6 b1c3 g8f6 c1d2 f8e7 f1e2 e8g8 e1g1 c8d7 a2a3 a7a6
+d2d3 b8c6 e2e4 e7e5 g1f3
+f2f4 d7d5 g1f3 e7e6 e2e3 g8f6 b1c3 f8e7 f1e2 e8g8 e1g1 c7c5 d2d4 b8c6
+b2b4 e7e5 a2a3 d7d5 d2d4 e5d4 g1f3 c7c5 e2e3 d4e3 d1e2 b8c6 c1e3 c5b4 e3g5 f8e7 a3b4 g8f6
+g2g4 d7d5 c2c4 d5c4 b1c3 c8g4 h2h3 g4d7 e2e3 g8f6 f1c4 b8c6 g1f3 e7e5 d2d4
+e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 b1c3 b8c6 f1b5 f8b4 d1e2 f6e4 e1g1 b4c3 b2c3 e8g8 e2d3 c8g4
+e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 b1c3 b8c6 f1b5 f8b4 d1e2 f6e4 e1g1 b4c3 b2c3 e8g8 e2d3 c8g4
+d2d4 g8f6 b1c3 d7d5 c1f4 e7e6 e2e3 b8c6 f1d3 a7a6 g1e2 f8e7 e1g1 e8g8 a2a3 c8d7 f4g3 g8h8
+b1c3 d7d5 d2d4 g8f6 c1f4 e7e6 e2e3 b8c6 f1d3 a7a6 g1e2 f8e7 e1g1 e8g8 a2a3 c8d7 f4g3 g8h8
+g1f3 g8f6 d2d4 e7e6 c1f4 d7d5 e2e3 b8c6 b1c3 a7a6 f1e2 c8d7 e1g1 f8e7 f3e5 e8g8 e5d7 f6d7
+e2e3 d7d5 d2d4 b8c6 g1f3 e7e6 b1c3 g8f6 c1d2 f8e7 f1d3 e8g8 e1g1 c8d7 a2a3 a7a6
+a2a3 e7e5 e2e4 b8c6 b1c3 f7f5 e4f5 g8f6
+a2a4 e7e5 e2e4 g8f6 b1c3 f8b4 c3d5 b8c6 g1f3 e8g8 d5f6 d8f6 c2c3 b4e7 d2d4 d7d6 d4d5
+c2c3 e7e5 d2d4 e5d4 g1f3 g8f6 c3d4 d7d5 e2e3 b8c6 b1c3 f8e7 f1b5 e8g8 e1g1 c8f5
+h2h4 d7d5 d2d4 e7e6 c1f4 g8f6 e2e3 f8d6
+g1h3 e7e5 d2d4 e5d4 e2e3 d7d5 e3d4 g8f6
+g2g3 e7e5 d2d3 b8c6 f2f4 g8f6 g1f3 e5f4 c1f4 d7d5 b1d2 f8d6 f4d6 c7d6 f1g2 e8g8 c2c3 c8g4
+f2f3 e7e5 e2e4 b8c6 b1c3 f8c5 a2a3 d7d6 g1e2 g8f6 b2b4 c5b6 b4b5 c6e7 d2d4 e8g8
+b2b4 e7e5 d2d4 e5e4 a2a3 g8f6 e2e3 d7d5 g1e2 a7a5 b4b5 b8d7 b1c3 d7b6 a1b1
+e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 d1e2 f8e7 g1f3 g8f6 b1c3 e8g8
+a2a3 d7d5 d2d4 g8f6 g1f3 e7e6 e2e3 f8e7 f1d3 e8g8 e1g1 b8c6
+c2c3 g8f6 d2d4 d7d5 g1f3 b8c6 b1d2 e7e6 e2e3 f8d6 f1d3 e8g8 e1g1 e6e5 d4e5 c6e5 f3e5 d6e5
+h2h3 d7d5 g1f3 b8c6 d2d4 e7e6 e2e3 g8f6 f1e2 f8e7 b1c3 e8g8 e1g1 c8d7 c1d2 a7a6 a2a3 g8h8
+c2c4 e7e5 b1c3 g8f6 g1f3 b8c6 e2e3 f8b4 f1e2 e8g8 e1g1 d7d5 d2d4 e5d4 f3d4 c6e5 d1b3
+d2d3 b8c6 e2e4 e7e5 g1f3 g8f6
+f2f4 d7d5 g1f3 e7e6 e2e3 g8f6 f1e2 f8e7 e1g1 e8g8 d2d4 c7c5 c2c4 b8c6 b1c3 f6e4 d4c5 e4c3 b2c3
+h2h4 d7d5 d2d4 e7e6 c1f4 g8f6 g1f3 f8d6 e2e3 d6f4 e3f4 e8g8 c2c3 b8c6 b1d2 c8d7 f1d3
+g1h3 e7e5 d2d4 e5d4 e2e3 d7d5 e3d4 g8f6 b1c3 c8h3 g2h3 f8b4 f1b5 b8c6
+g2g3 e7e5 d2d4 e5d4 g1f3 d7d5 f3d4 c7c5 d4b3 b8c6 f1g2 g8f6 e1g1 c8g4 c1f4
+f2f3 d7d5 d2d4 e7e6 b1c3 b8c6 e2e3 f8b4 f1b5 g8e7 g1e2 a7a6 b5c6 e7c6 a2a3 b4d6 e3e4 d5e4 c3e4 e8g8
+g2g3 e7e5 d2d4 e5d4 g1f3 d7d5 f3d4 c7c5 d4b3 g8f6 f1g2 c5c4 b3d4 f8c5 e1g1 e8g8 b1c3 b8c6 c1e3 c6e5
+b2b4 e7e5 d2d4 e5d4 d1d4 b8c6 d4e3 d8e7 a2a3 d7d6 g1f3 g8f6 b1c3 c8f5 e3d2 f6e4 c3e4 e7e4
+b1a3 e7e5 e2e4 g8f6 g1f3 d7d5 e4d5 e5e4 d1e2 f8a3 b2a3 e8g8 f3d4 c7c6 c2c4 c6d5 c4d5 f6d5 e2e4
+g2g4 d7d5 c2c4 d5c4 e2e3 d8d5 f2f3 g8f6 b2b3 d5c6 b1c3 b7b5
+d2d4 g8f6 e2e3 d7d5 g1f3 e7e6 f1e2 f8e7 e1g1 e8g8 c1d2 c7c5 d4c5 e7c5 b1c3 b8c6 c3b5
+g1f3 g8f6 d2d4 d7d5 e2e3 e7e6 f1e2 f8e7 e1g1 e8g8 c1d2 c7c5 d4c5 e7c5 b1c3 b8c6 c3b5
+b1c3 d7d5 d2d4 g8f6 c1f4 e7e6 e2e3 a7a6 f1d3 f8e7 g1f3 b8c6
+e2e3 d7d5 d2d4 e7e6 g1f3 g8f6 c2c4 f8e7 b1c3 e8g8 f1d3 c7c5 e1g1 b8c6 b2b3 c6b4 c1b2 c5d4 f3d4 b4d3
+a2a3 d7d5 d2d4 g8f6 g1f3 e7e6 e2e3 f8e7 f1d3 e8g8 b1c3 b8c6 e1g1 c8d7 c1d2 a7a6 e3e4 d5e4
+h2h3 d7d5 g1f3 e7e6 d2d4 g8f6 b1c3 b8c6 e2e3 f8d6 c1d2 a7a6 f1e2 e8g8 e1g1 c8d7 a2a3 e6e5
+c2c3 e7e5 d2d4 e5e4 c3c4 g8f6 e2e3 c7c6 b1c3 f8e7 g1e2 e8g8 d1b3 d7d6 c1d2 b8d7 a2a3
+c2c4 e7e5 b1c3 g8f6 e2e4 b8c6 g1f3 f8c5 f1e2 e8g8 d2d3
+d2d3 b8c6 e2e4 e7e5 g1f3 g8f6 f1e2 d7d5 e4d5 f6d5 e1g1 f8e7 b1c3 e8g8 c3d5 d8d5 c1d2
+b2b3 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 f8c5 f1c4 d7d6 e1g1 c8g4 d2d3 e8g8 h2h3 g4f3 d1f3 c6d4
+a2a4 e7e5 e2e4 g8f6 b1c3 f8b4 c3d5 f6d5 e4d5 e8g8 d1h5 e5e4 h5e2 f8e8 e2b5
+a2a4 d7d5 d2d4 b8c6 g1f3 g8f6 e2e3 e7e6 b1c3
+h2h4 d7d5 d2d4 c7c5 g1f3 b8c6 e2e3 e7e6 f1b5 c8d7 b5c6 d7c6 f3e5 g8f6 e5c6 b7c6 b1c3 f8d6 e1g1 c5d4 e3d4
+g1h3 e7e5 d2d4 e5d4 e2e3 d7d5 e3d4 g8f6 b1c3 c8h3 g2h3 f8b4 f1b5 b8c6 d1e2 d8e7 e1g1 b4c3 b2c3 e7e2 b5e2 f6e4
+b1a3 e7e5 e2e4 g8f6 g1f3 b8c6 f1b5 f6e4 e1g1 f8a3 b2a3 e8g8 b5c6 d7c6 d2d3 e4d6 f3e5 f7f6 e5c4 d6c4 d3c4
+b2b4 e7e5 d2d4 e5d4 d1d4 g8f6 b4b5 c7c5 d4e3 f8e7 b1c3 d7d5 a1b1 e8g8
+e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 f8d6 b1c3 c8g4 d2d3 g8f6 c1e3 e8g8 h2h3 g4e6 a2a3
+e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 f8d6 b1c3 c8g4 d2d3 g8f6 c1e3 e8g8 h2h3 g4e6 a2a3
+d2d4 g8f6 c1f4 d7d5 e2e3 e7e6 g1f3 f8e7 f1d3 b8c6 c2c3 f6h5 e1g1 h5f4 e3f4 e8g8 b1d2 c8d7
+g1f3 g8f6 d2d4 d7d5 e2e3 e7e6 c2c4 f8e7 b1c3 e8g8 f1d3 c7c5 e1g1 b8c6 d4c5 e7c5 c1d2 c8d7 c4d5 e6d5 a2a3
+b1c3 d7d5 d2d4 g8f6 c1f4 e7e6 e2e3 f8d6 f4d6 c7d6 g1f3 e8g8 f1d3 c8d7 e1g1 b8c6 a2a3 a7a6 h2h3 d8b6
+b2b4 e7e5 d2d4 e5d4 d1d4 g8f6 g1f3 d7d5 e2e3 f8d6 b1c3 b8c6 f1b5 e8g8 b5c6 b7c6 e1g1
+g2g4 d7d5 c2c4 b8c6 f1g2 e7e6 d1a4 c8d7 c4d5 e6d5 b1c3 g8f6 g1f3 f6g4 d2d4 c6b4 a4b3 c7c6 e1g1
+g1f3 d7d5 d2d4 g8f6 c2c4 e7e6 b1c3
+e2e3 d7d5 d2d4 e7e6 g1f3 g8f6 c2c4 f8e7 b1c3 e8g8 f1d3 c7c5 e1g1 b8c6 d4c5 e7c5 c1d2 c8d7 c4d5 e6d5 a2a3
+a2a3 d7d5 d2d4 g8f6 g1f3 e7e6 e2e3 f8e7 c2c4 e8g8 b1c3 c7c5 d4c5 e7c5 b2b4 c5e7 c4d5 f6d5 c3d5 e6d5
+c2c4 e7e5 b1c3 g8f6 e2e4 b8c6 d2d3 f8c5 f1e2 e8g8 g1f3 d7d6 e1g1 c8d7 a2a3 a7a6 b2b4 c5b6 c1d2 c6d4 f3d4 b6d4
+c2c3 e7e5 d2d4 e5e4 c3c4 g8f6 e2e3 b8c6 g1e2 f8e7 b1c3 d7d6 d1c2 e8g8 c3e4 f6e4 c2e4 c8d7 c1d2
+h2h3 d7d5 g1f3 e7e6 d2d4 g8f6 b1c3 c7c5 e2e3 f8e7 d4c5 e8g8
+d2d3 d7d5 g1f3 b8c6 d3d4 g8f6 e2e3 c8g4 f1e2 e7e6 b1c3 f8d6 e1g1 e8g8 c1d2 f6e4 h2h3 e4d2 d1d2 g4f3 e2f3
+f2f4 d7d5 g1f3 e7e6 e2e3 g8f6 f1e2 f8e7 e1g1 e8g8 d2d4 c7c5 c2c4 b8c6 b1c3 a7a6 c1d2 c8d7
+h2h3 d7d5 g1f3 g8f6 d2d4 c7c5 e2e3 e7e6 c2c4 b8c6 a2a3 c5d4 e3d4 f8e7 b1c3 e8g8 f1d3 d5c4 d3c4
+b2b3 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 f8c5 f1e2 e8g8 e1g1 d7d6 d2d3 a7a6 c1g5 h7h6 g5e3 c5e3 f2e3
+a2a4 e7e5 e2e4 g8f6 g1f3 d7d5 f3e5 d8e7 d2d4 f6e4 b1c3 e4c3 b2c3 f7f6 c1a3 e7e6 f1b5 c7c6 a3f8 h8f8
+h2h4 d7d5 d2d4 c7c5 g1f3 e7e6
+e2e4 e7e6 d2d4 d7d5 b1c3 g8f6 c1g5 d5e4 c3e4 b8d7 g1f3 f8e7 e4f6 d7f6 f1d3 e8g8 d1e2 f6d5 g5e7 d8e7 e1g1 d5f4 e2e4 f4d3 e4d3 c8d7
+g2g3 e7e5 c2c4 g8f6 b1c3 b8c6 g1f3 d7d5 d2d4 e5d4 f3d4 d5c4 d4c6 d8d1 c3d1 b7c6 f1g2 f8b4 d1c3 b4c3 b2c3 f6d5 c1f4 c8f5 e1g1 e8g8 g2d5 c6d5 f4c7
+f2f3 d7d5 d2d4 e7e6 c1f4 f8d6 f4d6 d8d6 b1c3 g8f6 e2e4 d6b4 e4e5 f6d7 e1f2 b4b2 c3b5 b8a6 f1d3
+g1h3 e7e5 e2e3 d7d5 d2d4 b8c6 b1c3 g8f6 f1b5 e5d4 e3d4 c8h3 g2h3 f8b4 d1e2 d8e7 c1d2 b4c3 d2c3 a7a6 b5d3 f6e4 e1g1 e4c3 b2c3 e7e2 d3e2
+b1a3 e7e5 e2e3 d7d5 d2d4 b8c6 g1f3 e5e4 f3d2 g8f6 f1e2 f8b4 e1g1 e8g8 c2c3 b4e7 c3c4 e7b4 c4d5 d8d5 a3c4
+b2b4 e7e5 e2e4 g8f6 g1f3 f8b4 c2c3 b4e7 f3e5 e8g8 d2d3 d7d5 b1d2 e7d6 d3d4 d8e7 f1e2 d6e5 d4e5 e7e5
+g2g4 d7d5 c2c4 b8c6 f1g2 e7e6 g1f3 g8f6 c4d5 e6d5 h2h3 h7h5
+e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 f8d6 b1c3 c8g4 d2d3 g8f6 c1e3 e8g8 h2h3 g4f3 d1f3 d6b4 f3g3
+d2d4 g8f6 c1f4 d7d5 e2e3 c8f5 g1f3 e7e6 f1d3 f5d3 d1d3 b8c6
+g1f3 g8f6 d2d4 d7d5 c1f4 c8f5 e2e3 e7e6 f1d3 f5d3 d1d3 b8c6
+g2g4 d7d5 c2c4 d5c4 e2e3 g8f6 f1c4 f6g4 g1f3 b8c6 b1c3 g4e5 f3e5 c6e5 c4e2 e5d3 e2d3 d8d3 d1b3
+d2d4 e7e6 g1f3 g8f6 c2c4 d7d5 b1c3 b8c6
+e2e3 d7d5 d2d4 e7e6 g1f3 c7c5 c2c4 g8f6 f1d3 b8c6 e1g1 f8e7 d4c5 e7c5 b1c3 e8g8 c4d5 e6d5 c1d2 c6b4
+b1c3 d7d5 d2d4 g8f6 c1f4 e7e6 e2e3 f8e7 f1d3 e8g8 g1f3 c7c5 e1g1 b8c6 f3e5 c8d7 e5d7
+a2a3 e7e5 e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 d1h5 b8c6 f1b5 d5c3 d2c3 d8d5 b5c6 b7c6 g1f3
+c2c4 e7e5 b1c3 g8f6 g1f3 b8c6 d2d3 f8c5 a2a3 e8g8 e2e3 d7d5 b2b4 c5e7 b4b5 d5d4 c3e2 e5e4 f3d4 c6d4 e3d4
+a2a3 e7e5 e2e4 g8f6 b1c3 d7d5 e4d5 f6d5 f1c4 c8e6 c4d5 e6d5 g1f3 f8e7 d2d4 e5e4 f3e5 b8c6 e5c6 d5c6 e1g1
+h2h3 d7d5 g1f3 g8f6 e2e3 e7e6 d2d4 c7c5 c2c4 b8c6 b1c3 f8e7 f1e2 e8g8 e1g1 c8d7
+f2f4 d7d5 g1f3 e7e6 e2e3 g8f6 f1e2 f8e7 e1g1 e8g8 d2d4 c8d7 c2c4 b8c6 c4d5 e6d5 b1c3 a7a6 c1d2
+h2h3 d7d5 g1f3 g8f6 e2e3 e7e6 d2d4 f8e7
+b2b3 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 f8c5 f1e2 e8g8 e1g1 d7d6 d2d3 c8d7 c1d2 a7a5 a2a3 h7h6 h2h3 f8e8
+g2g3 e7e5 g1f3 e5e4 f3h4 g8f6 d2d3 e4d3 c2d3 d7d5 f1g2 f8e7 c1d2 b8c6 b1c3 e8g8 e1g1 c8g4 h2h3
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d1e2 d7d5 f3e5 d8e7 e5f3 b8c6 b1c3 e4f6 e2e7 f8e7 c3b5 e7d8 d2d3
+d2d4 d7d5 g1f3 c8f5 c2c4 e7e6 b1c3 b8c6 c4d5 e6d5 a2a3 g8f6 c1g5 f8e7 g5f6 e7f6 e2e3 a7a6 f1d3 f5d3
+h2h4 d7d5 d2d4 c7c5 c2c3 g8f6 c1f4 b8c6 e2e3 c5d4 e3d4 e7e6 h4h5 f8d6 f4d6 d8d6 g1f3 e8g8 h5h6 g7g6
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 d8e7 d1e2 b8c6 e5c6 d7c6 b2b3 e7e6 e2e6 c8e6 f1e2 f8d6 b1c3 e8g8 e1g1
+f2f3 e7e5 e2e3 b8c6 b1c3 f8b4 g1e2 d7d5 a2a3 b4e7 d2d4 g8f6 g2g4 e5e4 f3e4 f6e4 c3e4 d5e4 e2g3 e7h4
+f2f3 e7e5 e2e3 b8c6 b1c3 f8b4 g1e2 d7d5 a2a3 b4e7 d2d4 g8f6 g2g4 e5e4 f3e4 f6e4 c3e4 d5e4 e2g3 e7h4
+g1h3 e7e5 d2d4 e5d4 e2e3 d4e3 c1e3 g8f6 h3f4 d7d5 c2c4 f8b4 b1c3 e8g8 f4d5 c8g4 d1d2 f6d5 c4d5 b8d7 a2a3
+d2d4 d7d5 g1f3 c8f5 c2c4 e7e6 b1c3 b8c6 c4d5 e6d5 a2a3 g8f6 c1g5 f8e7 g5f6 e7f6 e2e3 a7a6 f1d3 f5d3 d1d3 e8g8 e1g1 d8d7 b2b4 f8e8 a1b1 g7g6 f1c1 d7e6 h2h3
+g2g4 d7d5 c2c4 d5c4 e2e3 g8f6 f1c4 c7c6 b1c3 b7b5 c4e2 e7e5
+b2b4 e7e5 c1b2 f8b4 b2e5 g8f6 c2c3 b4e7 d2d4 e8g8 g1f3 d7d5 b1d2 b8c6 e5f6 e7f6
+e2e4 e7e5 g1f3 b8c6 b1c3 g8f6 f1b5 f8c5 d2d3 e8g8 b5c6 d7c6 h2h3 c8e6 c1e3 d8d6 e1g1 c5e3 f2e3 a8d8 a2a3
+g2g4 d7d5 e2e3 e7e5 b1c3 b8c6 h2h3 h7h5 g4g5 c8f5 g1f3 d5d4 e3d4 e5d4 d1e2 g8e7 c3e4 d8d5 d2d3 e8c8 c2c4 d4c3 b2c3
+d2d4 g8f6 c2c4 e7e6 g1f3 d7d5 b1c3 a7a6 e2e3 c7c5 c4d5 e6d5 f1e2 b8c6 a2a3 c5c4 e1g1 f8e7 c1d2 e8g8 f3e5
+d2d4 d7d5 g1f3 e7e6 c2c4 c7c5 b1c3 b8c6 d4c5 f8c5 c4d5 e6d5 d1d5 d8b6 e2e3 g8f6 d5b3 e8g8 f1c4 b6b3 c4b3 c8e6 e1g1 e6b3 a2b3 a7a6 c1d2 f8d8
+g1f3 d7d5 b1c3 g8f6 d2d4 e7e6 e2e3 f8e7 f1d3 b8c6 e1g1 e8g8 c1d2
+g1f3 g8f6 d2d4 d7d5 c2c4
+b1c3 d7d5 d2d4 g8f6 c1f4 c8f5 e2e3 e7e6 f1d3 f5d3 c2d3 b8c6 g1f3 f8d6 d1b3 a8b8 f4d6 d8d6 e1g1 e8g8 a2a3
+e2e3 g8f6 g1f3 e7e6 d2d4 c7c5 c2c4 d7d5 f1d3 b8c6 e1g1 c5d4 e3d4 d5c4 d3c4 f8d6 b1c3 e8g8 c3b5 d6e7 c1f4 f6d5
+a2a3 d7d5 g1f3 g8f6 e2e3 c8f5 c2c4 e7e6 d2d4 b8d7 b1c3 c7c6 f1e2 d5c4 f3d2 f5d3 d2c4 d3e2 c3e2 g7g6
+c2c4 e7e5 b1c3 g8f6 g1f3 b8c6 a2a3 f8e7 e2e4 d7d6 f1e2 c6d4 e1g1 e8g8 d2d3 c7c5 b2b4 c8g4 c1d2 g4f3 e2f3 a7a6 b4c5 d6c5
+c2c3 b8c6 d2d4 d7d5 g1f3 c8f5 c1f4 e7e6 e2e3 f8d6 f4d6 c7d6 f1e2 g8e7 b1d2 d8b6 d1b3 b6b3 a2b3 e8g8
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 f8e7 e1g1 e8g8 d2d4 c8d7 c2c4 d5c4 e2c4
+h2h3 d7d5 d2d4 e7e6 e2e3 g8f6 c2c4 c7c5 g1f3 b8c6 b1c3 f8e7 f1e2 e8g8 d4c5 d8a5 e1g1 a5c5 c4d5 f6d5 c3d5 e6d5
+b2b3 e7e5 e2e4 g8f6 b1c3 b8c6 g1f3 a7a6 f1c4 f8c5 e1g1 e8g8 a2a4 d7d6 d2d3 c8g4 h2h3 g4d7 c1d2 h7h6 c3d5 f6d5 c4d5
+g2g3 e7e5 c2c4 g8f6 b1c3 b8c6 f1g2 f8c5 d2d3 e8g8 g1f3 d7d5 c4d5 f6d5 e1g1 c8e6 f3g5 d5c3 b2c3 e6f5
+d2d4 d7d5 c2c4 g8f6 g1f3 c7c6 c4d5 c6d5 b1c3 b8c6 c1f4 e7e6 e2e3 f8e7 h2h3 e8g8 a2a3 f6h5 f4h2 c8d7 f1d3
+g2g3 g8f6 g1f3 d7d5 d2d4 e7e6 f1g2 c7c5 e1g1 c5d4 f3d4 e6e5 d4b3 b8c6 c1g5 d5d4
+h2h4 d7d5 d2d4 c7c5 c2c3 g8f6 c1f4 b8c6 e2e3 c8f5 g1e2 e7e6 e2g3 f8d6 g3f5 e6f5 f1d3 d6f4 e3f4 d8e7 d1e2
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 d8e7 d1e2 b8c6 e5c6 d7c6 b2b3 e7e6 e2e6 c8e6 f1e2 f8d6 b1c3 e8g8
+a2a4 d7d5 d2d4 g8f6
+f2f3 e7e5 e2e3 d7d5 d2d4 e5d4 d1d4 b8c6
+f2f3 e7e5 e2e3 d7d5 d2d4 b8c6 f1b5 a7a6 b5c6 b7c6 b1c3 f8b4 a2a3 b4c3 b2c3 d8g5 d1e2 g5f6 e3e4 e5d4 e4d5 g8e7 d5c6 d4c3
+b2b4 e7e5 c1b2 f8b4 b2e5 g8f6 b1c3 b4e7 g1f3 b8c6 e5f6 e7f6 e2e4 e8g8 d2d4 d7d6 f1b5 c8g4 b5c6 g4f3 d1f3 b7c6
+g1h3 e7e5 e2e3 d7d5 d2d4 b8c6 f1b5 f8d6 c2c4 a7a6 b5c6 b7c6 c4c5 d6e7 d1a4 e5d4 e3d4 g8f6 h3f4 e8g8 e1g1 c8b7
+b1a3 e7e5 e2e3 d7d5 d2d4 b8c6 g1f3 e5e4 f3d2 g8f6 f1e2 f8b4 e1g1 e8g8 c2c3 b4e7 c3c4 e7b4 c4d5 d8d5
+b1a3 e7e5 e2e3 d7d5 d2d4 b8c6 g1f3 c8g4 d4e5 c6e5 f1e2 e5f3 g2f3 g4e6 a3b5 c7c6 b5d4 g8f6 d4e6 f7e6 e1g1 f8d6
+d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 b1c3
+g1f3 d7d5 d2d4 c8f5 c2c4 e7e6 c4d5 e6d5 d1b3 b8c6 c1d2 a8b8 e2e3 g8f6 b1c3 f8e7 f1e2 e8g8 e1g1 a7a6 f3e5
+d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 g1f3 f8e7 c1g5 e8g8 e2e3 b8d7 c4d5 e6d5 f1d3 b7b6 e1g1 c8b7 f3d2 c7c5 d1f3 h7h6 g5f4 a8c8 f4g3 c5d4 e3d4 e7b4
+e2e4 e7e6 d2d4 d7d5 b1c3 f8b4 e4d5 e6d5 f1d3 g8f6 g1f3 e8g8 e1g1 b8c6 c1g5 b4e7
+e2e3 g8f6 g1f3 e7e6 d2d4 c7c5 f1e2 d7d5 e1g1 b8c6 c2c4 f8d6 b1c3
+b1c3 d7d5 d2d4 c7c5 g1f3 g8f6 d4c5 b8c6 e2e4 d5d4 e4e5 d4c3 d1d8 e8d8 e5f6 e7f6 b2c3 f8c5 c1e3 c5e3 f2e3 c8d7
+b1c3 d7d5 d2d4 g8f6 c1f4 c8f5 e2e3 e7e6 f1d3 f5d3 c2d3 b8c6 g1f3 f8d6 d1b3 a8b8 f4d6 d8d6 e1g1 e8g8 c3b5 d6e7
+a2a3 d7d5 g1f3 g8f6 e2e3 c7c5 d2d4 c5d4 e3d4 b8c6 b1c3 e7e6 c1f4 f8e7 f1d3 e8g8 e1g1 c8d7 f3e5 a7a6 d3e2 c6e5 d4e5 f6e4 c3e4 d5e4
+c2c3 g8f6 d2d4 d7d5 g1f3 c8f5 d1b3 b8d7 b3b7 e7e6 c1g5
+c2c3 g8f6 d2d4 d7d5 g1f3 c8f5 c1f4 e7e6 b1d2 f8d6 f4d6 d8d6 e2e3 e8g8 f1e2 b8d7 e1g1 c7c5 f3h4 f5e4 h4f3
+d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 c4d5 e6d5 e2e3 h7h6 g5f4 f8e7 f1d3 c7c5 g1e2 c5c4 d3c2 e8g8 e1g1 d8b6
+g2g3 g8f6 g1f3 d7d5 f1g2 c7c5 c2c3 e7e6 e1g1 b8c6 d2d4 f8e7 d4c5 e7c5 c1f4 e8g8 b1d2 c8d7 e2e3 f6e4 d2e4 d5e4
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 f8e7 e1g1 e8g8 d2d4 c8d7 c2c4 d5c4 e2c4 c7c5 b1c3 b8c6 c1d2 a7a6 a2a3
+h2h3 e7e5 e2e4 g8f6 b1c3 f8b4 g1f3 e8g8 a2a3 b4c3 d2c3 f6e4 f3e5 d7d5 f1e2 b8c6 e5c6 b7c6 c1e3 a8b8 a1b1 f8e8 e1g1
+d2d3 d7d5 g1f3 g8f6 e2e3 b8c6 d3d4 c8g4 f1e2 e7e6 b1c3 f8d6 e1g1 e8g8 c1d2 f6e4 h2h3 e4d2 d1d2 g4f3 e2f3
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 f8e7 e1g1 e8g8 d2d4 c8d7 c2c4 d5c4 e2c4 c7c5 b1c3 b8c6 c1d2 a7a6 a2a3 b7b5
+b2b3 e7e5 c1b2 b8c6 e2e3 d7d5 g1f3 e5e4 f3e5 c6e5 b2e5 g8h6 b1c3 c7c6 f1e2 d8g5 e5g3 h6f5 e1g1 f5g3 f2g3 f8d6 a2a4
+a2a4 e7e5 e2e4 g8f6 b1c3 f8b4 g1f3 e8g8 f1e2 d7d5 e4d5 e5e4 f3g5 c8f5 e1g1 h7h6
+d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 c4d5 e6d5 e2e3 h7h6 g5f4 f8e7 f1d3 c7c5 g1e2 c5c4 d3c2 e8g8 e1g1 a7a6 e3e4 d5e4 d4d5 e7c5 c3e4 f6e4 c2e4 d7f6 e4f3
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 b8c6 e5c6 d7c6 f1e2 f8d6 e1g1 e8g8 c2c4 c6c5 b1c3 f8e8 c1e3 c8d7 f1e1 b7b6
+h2h4 d7d5 d2d4 c7c5 c2c3 e7e6 c1f4 f8d6 f4d6 d8d6 g1f3 g8f6 e2e3 b8c6 b1d2 e8g8 f1e2 c8d7 e1g1 e6e5 f3e5 c6e5 d4e5 d6e5
+f2f3 e7e5 e2e3 b8c6 b1c3 g8f6 d2d4 d7d5 f1b5 f8d6 g1e2 a7a6 b5c6 b7c6 e1g1 e8g8 c1d2 a8b8 b2b3 d8e7 e3e4
+b1a3 e7e5 e2e3 d7d5 d2d4 b8c6 g1f3 e5e4 f3d2 f7f5 f1e2 g8f6 e1g1 f8e7 b2b3 e8g8 c1b2 a7a6 c2c4 c8e6 a3c2 g7g6 f2f3 g8g7 c4c5
+g1h3 e7e5 e2e3 d7d5 d2d4 b8c6 f1b5 f8d6 c2c4 a7a6 b5c6 b7c6 c4c5 d6e7 d1a4 e5d4 e3d4 g8f6 h3f4 e8g8 e1g1 c8d7 b1d2
+f2f3 e7e5 e2e3 b8c6 b1c3 g8f6 d2d4 d7d5 f1b5 f8d6 g1e2 a7a6 b5c6 b7c6 e1g1 e8g8 c1d2 a8b8 b2b3
+f2f3 e7e5 e2e3 d7d5 d2d4 b8c6 f1b5 a7a6 b5c6 b7c6 b1c3 f8b4 a2a3 b4c3 b2c3 d8g5 d1e2 g5f6 e3e4 g8e7 e4d5 e5d4 d5c6 d4c3
+b2b4 d7d5 g1f3 g8f6 e2e3 c8f5 b1c3 e7e6 a2a3 f8d6 d2d4 a7a5 b4b5 c7c5 d4c5 d6c5 f1d3 f5d3 c2d3 b8d7 d3d4 c5d6
+g2g4 d7d5 e2e3 e7e5 b1c3 b8c6 h2h3 h7h5 g4g5 c8f5 g1f3 d5d4 e3d4
+g2g4 d7d5 e2e3 e7e5 b1c3 c7c6 d2d4 e5e4 h2h3 d8h4 f1g2 h7h5 g4h5 g8f6 g1e2 h4h5 a2a3 f8d6 c1d2 c8f5 h3h4
+e2e4 e7e6 d2d4 d7d5 b1c3 f8b4 e4d5 e6d5 f1d3 g8f6 g1f3 c7c5 d4c5 e8g8 e1g1 b4c5 c1g5 b8c6 a2a3 f8e8 f1e1
+d2d4 d7d5 c2c4 e7e6 g1f3 c7c5 b1c3 c5d4 f3d4 g8f6 c4d5 f6d5 d4c2 f8e7 e2e4 d5c3 d1d8 e7d8 b2c3 b8c6 a1b1 e8g8 f1b5
+d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 b1c3 f8b4 e2e3 c7c5 c1d2 c5d4 d1a4 b8c6 f3d4 d8b6 c4d5 f6d5 a1d1 c8d7 c3d5 e6d5 d4b5 b4e7 d2c3
+g1f3 d7d5 d2d4 c8f5 c2c4 e7e6 c4d5 e6d5 d1b3 b8c6 c1d2 a8b8 e2e3 g8f6 b1c3 f8e7 f1e2 e8g8 e1g1 a7a6 a2a3
+g1f3 d7d5 d2d4 c8f5 c2c4 e7e6 c4d5 e6d5 d1b3 b8c6 c1d2 a8b8 e2e3 g8f6 b1c3 f8e7 f1e2 e8g8 e1g1 a7a6 a2a3
+e2e3 g8f6 g1f3 e7e6 d2d4 c7c5 f1e2 d7d5 e1g1 b8c6 c2c4 c5d4 c4d5 e6d5 e3d4 f8d6 b1c3 e8g8 c1g5 c8e6 c3b5 d6b4
+d2d4 d7d5 c2c4 e7e6 b1c3 c7c5 c4d5 e6d5 e2e4
+c2c4 e7e5 b1c3 g8f6 g1f3 b8c6 e2e4 f8b4 d2d3 e8g8 f1e2 h7h6 e1g1 b4c3 b2c3
+a2a3 d7d5 g1f3 g8f6 e2e3 c7c5 d2d4 c5d4 e3d4 b8c6 b1c3 e7e6 c1f4 f8e7 f1d3 e8g8 e1g1 c8d7 f3e5 a7a6 d3e2 c6e5 d4e5 f6e4 c3e4
+c2c3 g8f6 d2d4 d7d5 g1f3 c8f5 c1f4 e7e6 b1d2 f8d6 f4d6 d8d6 e2e3 e8g8 f1e2 b8d7 e1g1 c7c5
+g2g3 g8f6 g1f3 d7d5 f1g2 c7c5 c2c3 e7e6 e1g1 b8c6 d2d4 f8e7 d4c5 e7c5 c1f4 e8g8 b1d2 c8d7 e2e3 a7a6 f3d4 h7h6 d2b3 c5e7 a2a3
+c2c3 e7e5 d2d4 e5e4 c3c4 g8f6 e2e3 c7c6 b1c3 d7d5 g1e2 f8d6 c4d5 c6d5 d1b3 b8c6 c1d2 c6e7 e2f4 d6f4 f1b5 c8d7 e3f4 d7b5 b3b5 d8d7
+d2d3 d7d5 g1f3 e7e6 c1f4 b8c6 e2e3 f7f6 f4g3 f8d6 d3d4 g8e7 f1b5 e8g8 b1c3 a7a6 b5c6 e7c6 e1g1 d6g3 h2g3 c8d7 a2a3
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 b8c6 e5c6 d7c6 f1e2 f8d6 e1g1 e8g8 c2c4 c8f5 b1c3 f6d7 c1e3
+h2h3 e7e5 e2e4 g8f6 g1f3 d7d5 f3e5 f6e4 d2d3 e4f6 d3d4 f8d6 c1f4 e8g8 b1c3 f8e8 d1e2 b8c6 e1c1 d6b4
+h2h3 g8f6 g1f3 d7d5 d2d4 e7e6 c2c4 c7c5 c4d5 e6d5 b1c3 b8c6 e2e3 c5c4 c1d2 a7a6 a2a3 b7b5 f3e5 c6e5 d4e5 f6d7 c3d5 d7e5
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 c7c5 e1g1 b8c6 b2b3 f8e7 c1b2 e8g8 c2c4 d5d4 e3d4 c6d4 b1c3
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 b8c6 e5c6 d7c6 f1e2 f8d6 e1g1 e8g8 b1d2 c8e6 d2f3 f8e8 c1e3 d8e7 c2c4
+h2h4 d7d5 d2d4 c7c5 c2c3 e7e6 c1f4 f8d6 f4d6 d8d6 g1f3 g8f6 e2e3 b8c6 b1d2 e8g8 f1e2 c8d7 e1g1 a8e8 d4c5 d6c5 d2b3 c5e7 a2a3 f6e4 b3d4 c6d4 d1d4
+f2f3 e7e5 e2e3 d7d5 d2d4 b8c6 b1c3 f8d6 c3d5 e5d4 e3d4 g8e7 d5f4 e7g6 g1e2 g6f4 c1f4 d6f4 e2f4 c6d4 f1e2 c8f5 a1c1
+g1h3 e7e5 e2e3 d7d5 d2d4 b8c6 f1b5 f8d6 c2c4 a7a6 b5c6 b7c6 c4c5 d6e7
+d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 c4d5 e6d5 e2e3 f8e7 f1d3 e8g8 g1e2 c7c5 e1g1 c5c4 d3b1 b7b6 d1c2 c8b7 a2a3 g7g6 e2f4 f8e8 f2f3 g8h8
+g1h3 d7d5 d2d4 b8c6 h3f4 g8f6 b1c3 c8f5 e2e3 e7e5 d4e5 c6e5 d1d4 f8d6 f4d5 f6d5 d4d5 f5c2
+g1h3 d7d5 d2d4 g8f6 b1c3 e7e6 e2e3 c7c5 f1e2 b8c6 a2a3 a7a6 e1g1 c8d7 a1b1 d8c7 d4c5 f8c5 b2b4 c5d6
+g1h3 d7d5 d2d4 g8f6 b1c3 e7e6 e2e3 c7c5 f1e2 b8c6 a2a3 a7a6 e1g1 c8d7 a1b1 d8c7 d4c5 f8c5 b2b4 c5d6
+b2b4 d7d5 g1f3 g8f6 e2e3 c8f5 b1c3 e7e6 a2a3 f8d6 f1e2 b8d7 e1g1 e8g8 d2d4 c7c6 c1b2 a7a5 b4b5 e6e5 d4e5 d7e5 f3d4
+g2g4 d7d5 e2e3 e7e5 b1c3 c7c6 d2d4 e5e4 h2h3 d8h4 f1g2 g8f6 c1d2 h7h5 g4h5 f8d6 g1e2 c8f5 a2a3 b8d7
+d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 b1c3 f8e7 c4d5 e6d5 e2e3
+g2g4 d7d5 e2e3 e7e5 b1c3 c7c6 h2h4 f8d6 f1g2 g8e7 h4h5 h7h6 d2d3 e8g8 f2f3 b7b5 a2a3 f7f5 g4g5 h6g5 h5h6 g7h6 h1h6
+d2d4 d7d5 c2c4 e7e6 g1f3 g8f6 b1c3 f8e7 c1g5 e8g8 e2e3 b8d7 f1e2 h7h6 g5f4 d5c4 e2c4 d7b6 c4d3 b6d5 e1g1 d5f4 e3f4
+g1f3 d7d5 d2d4 c8f5 c2c4 e7e6 c4d5 e6d5 d1b3 b8c6 c1d2 a8b8 e2e3 g8f6
+e2e4 e7e6 d2d4 d7d5 b1c3 f8b4 e4d5 e6d5 f1d3 g8f6 g1f3 d8e7 c1e3 f6e4
+d2d4 d7d5 c2c4 e7e6 b1c3 g8f6 c1g5 b8d7 c4d5 e6d5 e2e3 f8e7 f1d3 e8g8 g1e2 c7c5 e1g1 c5c4 d3b1 b7b6 d1c2 h7h6 g5f4 c8b7 a2a3 f8e8 f1c1 g7g5 f4g3 e7f8 c2f5
+e2e4 e7e6 d2d4 d7d5 b1c3 f8b4 e4d5 e6d5 f1d3 g8f6 g1f3 c7c5 d4c5 e8g8 e1g1 b4c5 c1g5 c8e6 g5f4 b8d7 f3g5 g7g6 g5e6 f7e6 d1e2
+e2e3 g8f6 g1f3 e7e6 d2d4 c7c5 f1e2 d7d5 e1g1 b8c6 c2c4 d5c4 e2c4 a7a6 b1c3
+b1c3 d7d5 d2d4 g8f6 g1f3 c7c5 c1f4 c5d4 d1d4 b8c6 d4a4 c8d7 e2e3 e7e6 c3b5 a8c8 b5d6 f8d6 f4d6 f6e4
+b1c3 d7d5 g1f3 e7e5 d2d4 e5e4 f3e5 g8f6 c1g5 b8d7 e2e3 c7c6
+b1c3 d7d5 g1f3 g8f6 d2d4 e7e6
+d2d3 d7d5 g1f3 g8f6 c1f4 b8c6 e2e3 c8g4 f1e2 f6h5 f4e5 g4f3 e2f3 c6e5 f3h5 e7e6 b1d2 g7g6 h5e2 f8d6 d3d4 e5c6 e1g1 e8g8 g2g3 d6b4
+c2c3 e7e5 d2d4 e5e4 c3c4 g8f6 e2e3 c7c6 b1c3 d7d5 g1e2 f8d6 e2g3 e8g8 f1e2 g8h8 e1g1
+c2c3 g8f6 d2d4 d7d5 g1f3 c8f5 c1f4 e7e6 e2e3 f8d6 f4d6 d8d6 f1e2 b8d7 e1g1 d6b6 d1b3 c7c5 b1d2 e8g8 b3b6 a7b6 a2a3 h7h6 e2b5
+b2b3 e7e5 c1b2 b8c6 e2e3 d7d5 f1b5 f8d6 g1f3 c8g4 h2h3 g4f3 d1f3 g8f6 b5c6 b7c6 f3g3 e8g8 b2e5 d6e5
+b2b3 e7e5 c1b2 b8c6 e2e3 d7d5 f1b5 f8d6 g1f3 c8g4 h2h3 g4f3 d1f3 g8f6 b5c6 b7c6 f3g3 f6h5 g3g4 h5f6 g4g3
+h2h3 g8f6 g1f3 e7e6 c2c4 c7c5 e2e3 f8e7 d2d4 e8g8 b1c3 d7d5 c4d5 e6d5 d4c5 e7c5 f1e2 b8c6 a2a3 c8f5 b2b4 c5b6 e1g1 d5d4
+g2g3 d7d5 g1f3 g8f6 f1g2 c7c5 c2c3 e7e6 e1g1 b8c6 d2d4 f8e7 d4c5 e7c5 c1f4 e8g8 b1d2 c8d7 e2e3 a7a6 f3d4 h7h6 d2b3 c5e7
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 c7c5 e1g1 b8c6 b2b3 f8e7 c1b2 e8g8 c2c4 d5d4 e3d4 c6d4 f3d4 c5d4 d2d3 a7a6
+f2f4 g8f6 g1f3 d7d5 e2e3 e7e6 f1e2 b7b6 e1g1 f8e7 c2c4 e8g8 b1c3 c7c5 f3e5 c8b7 c4d5 e6d5 d2d4 b8c6 c1d2 c5d4 e5c6 b7c6 e3d4
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 b8c6 e5c6 d7c6 f1e2 f8d6 e1g1 e8g8 b1d2 c8e6 d2f3 f8e8 c1e3 d8e7
+a2a4 e7e5 e2e4 g8f6 g1f3 f6e4 d2d3 e4f6 f3e5 d7d6 e5f3 f8e7 b1c3 e8g8 f1e2 c7c5 e1g1 b8c6
+h2h4 d7d5 d2d4 c7c5 c2c3 e7e6 c1f4 f8d6 f4d6 d8d6 g1f3 g8f6 e2e3 b8c6 b1d2 e8g8 f1e2 c8d7 e1g1 a8e8 d4c5 d6c5 d2b3 c5e7 a2a3 f6e4
+b1a3 e7e5 e2e3 d7d5 d2d4 b8c6 g1f3 c8g4 d4e5 c6e5 f1e2 e5f3 g2f3 g4e6 c2c4 g8f6 c4d5 d8d5 d1d5 f6d5 e3e4 f8b4 c1d2 b4d2 e1d2 d5e7 h1g1 a8d8 d2c2 e8g8
+b2b4 d7d5 g1f3 g8f6 e2e3 c8f5 b1c3 b8d7 d2d4 e7e6 a2a3 f8d6 f1e2 e8g8 e1g1 c7c6
+g1h3 d7d5 d2d4 g8f6 b1c3 c8h3 g2h3 e7e6 f1g2 f8b4 e1g1 e8g8 c1d2 b8c6 e2e3 a7a6 a2a3 b4e7 g2f3 f6d7 g1h1 g7g6 h1g1
+f2f3 e7e5 e2e3 d7d5 d2d4 b8c6 b1c3 g8f6 f1b5 f8d6 g1e2 e8g8 e1g1 a7a6 b5a4 e5d4 e3d4 b7b5 a4b3 b5b4 c3d5 f6d5 b3d5