Repository: code-golf/code-golf

Issue:
Add Minesweeper hole
**Description**
Given an input of a 8x8 minesweeper board with 10 mines where "X" is used for non-mine squares and "M" is used for squares that are mines, print a solved Minesweeper board. The input will be 8 lines of 8 characters each. Use the digits 0-8 for other squares based on how many mines border it.

**Example input (if any)**
```
XXXMXXXX
XXXXXXMX
XXXXXXXX
MMMXXXXX
XXXMXXXX
XXXXXXXX
XXXXXXXX
XXXXMMMM
```

**Example output**
```
001M1111
001111M1
23210111
MMM21000
233M1000
00111000
00012332
0001MMMM
```

Hints from issue comments:
@kg583: Before anyone gets any bright ideas about using emoji like 💣 , note that the hole would end up with the same problem that #622 currently has, i.e. many (mostly mobile) fonts aren't evenly-spaced and thus the grids are completely ruined.@DialFrost: Isn't this very similar to Proximity Grid?@hallvabo: Done before: http://golf.shinh.org/p.rb?Minesweeper@snoozingnewt: Ah, that’s a problem@Yewzir: > Done before: http://golf.shinh.org/p.rb?Minesweeper

Would you be so kind to enlighten me as to why the OP considers that a problem?@hallvabo: I assume it is because it is in post-mortem, so solutions are open for all to see.@kg583: Useless point, but why not `F` for flagged mines? Turning `M` to `X` and `X` to not `X` seems odd.@canissimia: Use of "X" in output seems unintuitive to me as well.@MeWhenI: This feels too similar to Game of Life: replace each char based on the count of adjacent chars that match some condition

Solution patch:
diff --git a/config/data/holes.toml b/config/data/holes.toml
index 299a2efd..b5315952 100644
--- a/config/data/holes.toml
+++ b/config/data/holes.toml
@@ -2154,6 +2154,29 @@ preamble = '''
     print the corresponding diamonds and medals.
 '''
 
+[Minesweeper]
+experiment = 1025
+category = 'Gaming'
+links = [
+    { name = 'Wikipedia', url = '//en.wikipedia.org/wiki/Minesweeper_(video_game)' },
+]
+synopsis = 'Print solved boards in Minesweeper games.'
+preamble = '''
+<p>
+    Minesweeper is a video game in which the player must clear a board without
+    detonating any of the hidden mines scattered throughout the grid of
+    clickable tiles.
+
+<p>
+    Each argument represents a ten-by-ten board with thirteen mine tiles,
+    denoted by <code><b>M</b></code>. Replace the safe tiles, denoted by
+    <code><b>X</b></code>, with the number of adjacent mines.
+
+<p>
+    Print a solved Minesweeper board for each argument, separated by newlines,
+    and replace each mine with <code><b>X</b></code> as if it weren't detonated.
+'''
+
 ['Morse Decoder']
 category = 'Transform'
 released = 2018-02-18
diff --git a/config/data/langs.toml b/config/data/langs.toml
index ac8bb5b2..fa6d7e76 100644
--- a/config/data/langs.toml
+++ b/config/data/langs.toml
@@ -1017,7 +1017,7 @@ example    = '''
 args       = [ '/usr/bin/iogiiwrapper', '-' ]
 experiment = 1770
 size       = '34.1 MiB'
-version    = '0.1'
+version    = '0.2'
 website    = 'https://golfscript.com/iogii/'
 example    = '''
 # Printing
@@ -1507,7 +1507,7 @@ Shout arg
 ['Rockstar 2']
 args    = [ '/usr/bin/rockstarwrapper', '-' ]
 size    = '5.83 MiB'
-version = '2.0.25'
+version = '2.0.26'
 website = 'https://codewithrockstar.com'
 example = '''
 (Printing)
diff --git a/hole/play.go b/hole/play.go
index bddbf658..21b7a993 100644
--- a/hole/play.go
+++ b/hole/play.go
@@ -275,7 +275,7 @@ func Play(
 		runs = outputTests(shuffle(fixedTests(hole.ID)))
 	case "emojify", "flags", "rock-paper-scissors-spock-lizard", "tic-tac-toe", "united-states":
 		runs = outputMultirunTests(fixedTests(hole.ID))
-	case "floyd-steinberg-dithering", "hexdump", "proximity-grid", "star-wars-opening-crawl":
+	case "floyd-steinberg-dithering", "hexdump", "minesweeper", "proximity-grid", "star-wars-opening-crawl":
 		runs = outputTestsWithSep("\n\n", shuffle(fixedTests(hole.ID)))
 
 	// Holes with no arguments and a static answer.
diff --git a/langs/iogii/Dockerfile b/langs/iogii/Dockerfile
index bb421171..5d540e1a 100644
--- a/langs/iogii/Dockerfile
+++ b/langs/iogii/Dockerfile
@@ -2,7 +2,7 @@ FROM alpine:3.21 AS builder
 
 RUN apk add --no-cache gcc musl-dev
 
-ENV VER=0.1
+ENV VER=0.2
 
 RUN wget -cO /usr/bin/iogii https://golfscript.com/iogii/iogii-$VER-alpha \
  && chmod +x /usr/bin/iogii
diff --git a/langs/iogii/iogiiwrapper.c b/langs/iogii/iogiiwrapper.c
index a59d8322..6b65076f 100644
--- a/langs/iogii/iogiiwrapper.c
+++ b/langs/iogii/iogiiwrapper.c
@@ -1,13 +1,11 @@
-#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/wait.h>
 #include <unistd.h>
 
 #define ERR_AND_EXIT(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)
 
-const char* iogii = "/usr/bin/iogii", *code = "code.iog", *input = "argv.txt";
+const char* iogii = "/usr/bin/iogii", *code = "code.iog";
 
 int main(int argc, char* argv[]) {
     if (!strcmp(argv[1], "--version")) {
@@ -33,39 +31,14 @@ int main(int argc, char* argv[]) {
     if (fclose(fp))
         ERR_AND_EXIT("fclose");
 
-    int fd;
+    int iargc = argc + 2;
+    char** iargv = malloc(iargc * sizeof(char*));
+    iargv[0] = (char*) iogii;
+    iargv[1] = (char*) code;
+    iargv[2] = "--";
+    memcpy(&iargv[3], &argv[2], (argc - 2) * sizeof(char*));
+    iargv[iargc - 1] = NULL;
 
-    if (!(fd = open(input, O_CREAT | O_TRUNC | O_WRONLY, 0644)))
-        ERR_AND_EXIT("open");
-
-    for (int i = 2; i < argc; i++)
-        if (write(fd, argv[i], strlen(argv[i])) < 0 || write(fd, "\n", sizeof(char)) < 0) {
-            if (close(fd))
-                ERR_AND_EXIT("close");
-
-            ERR_AND_EXIT("write");
-        }
-
-    if (close(fd))
-        ERR_AND_EXIT("close");
-
-    pid_t pid;
-
-    if (!(pid = fork())) {
-        if (dup2(open(input, O_RDONLY), STDIN_FILENO))
-            ERR_AND_EXIT("dup2");
-
-        execl(iogii, iogii, code, NULL);
-        ERR_AND_EXIT("execl");
-    }
-
-    int status;
-
-    waitpid(pid, &status, 0);
-
-    if (!WIFEXITED(status))
-        exit(EXIT_FAILURE);
-
-    if (WEXITSTATUS(status))
-        return WEXITSTATUS(status);
+    execv(iogii, iargv);
+    ERR_AND_EXIT("execv");
 }
diff --git a/langs/rockstar-2/Dockerfile b/langs/rockstar-2/Dockerfile
index ad860759..c72cab55 100644
--- a/langs/rockstar-2/Dockerfile
+++ b/langs/rockstar-2/Dockerfile
@@ -2,7 +2,7 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0.101-alpine3.20 AS builder
 
 RUN apk add --no-cache build-base zlib-dev
 
-RUN curl -L https://github.com/RockstarLang/rockstar/archive/refs/tags/v2.0.25.tar.gz \
+RUN curl -L https://github.com/RockstarLang/rockstar/archive/refs/tags/v2.0.26.tar.gz \
   | tar xz --strip-components 1
 
 RUN find Starship -name '*.csproj' -exec sed -Ei 's/\bnet\d+\b/net9/' {} + \
diff --git a/sql/a-schema.sql b/sql/a-schema.sql
index a6440a26..7ce7c5ef 100644
--- a/sql/a-schema.sql
+++ b/sql/a-schema.sql
@@ -47,25 +47,26 @@ CREATE TYPE hole AS ENUM (
     'kolakoski-constant', 'kolakoski-sequence', 'leap-years',
     'levenshtein-distance', 'leyland-numbers', 'ln-2', 'look-and-say',
     'lucky-numbers', 'lucky-tickets', 'mahjong', 'mandelbrot', 'maze',
-    'medal-tally', 'morse-decoder', 'morse-encoder', 'musical-chords',
-    'n-queens', 'nfa-simulator', 'niven-numbers', 'niven-numbers-long',
-    'number-spiral', 'odd-polyomino-tiling', 'odious-numbers',
-    'odious-numbers-long', 'ordinal-numbers', 'p-adic-expansion',
-    'palindromemordnilap', 'pangram-grep', 'partition-numbers',
-    'pascals-triangle', 'pernicious-numbers', 'pernicious-numbers-long',
-    'placeholder', 'poker', 'polyominoes', 'prime-numbers',
-    'prime-numbers-long', 'proximity-grid', 'qr-decoder', 'qr-encoder',
-    'quadratic-formula', 'quine', 'recamán', 'repeating-decimals',
-    'reverse-polish-notation', 'reversi', 'rijndael-s-box',
-    'rock-paper-scissors-spock-lizard', 'roman-to-arabic', 'rot13',
-    'rule-110', 'scrambled-alphabetization', 'semiprime-numbers', 'set',
-    'seven-segment', 'si-units', 'sierpiński-triangle', 'smith-numbers',
-    'spelling-numbers', 'sphenic-numbers', 'star-wars-gpt',
-    'star-wars-opening-crawl', 'sudoku', 'sudoku-fill-in',
-    'ten-pin-bowling', 'tic-tac-toe', 'time-distance', 'tongue-twisters',
-    'transpose-sentence', 'trinomial-triangle', 'turtle', 'united-states',
-    'vampire-numbers', 'van-eck-sequence', 'zeckendorf-representation',
-    'zodiac-signs', 'γ', 'λ', 'π', 'τ', 'φ', '√2', '𝑒'
+    'medal-tally', 'minesweeper', 'morse-decoder', 'morse-encoder',
+    'musical-chords', 'n-queens', 'nfa-simulator', 'niven-numbers',
+    'niven-numbers-long', 'number-spiral', 'odd-polyomino-tiling',
+    'odious-numbers', 'odious-numbers-long', 'ordinal-numbers',
+    'p-adic-expansion', 'palindromemordnilap', 'pangram-grep',
+    'partition-numbers', 'pascals-triangle', 'pernicious-numbers',
+    'pernicious-numbers-long', 'placeholder', 'poker', 'polyominoes',
+    'prime-numbers', 'prime-numbers-long', 'proximity-grid', 'qr-decoder',
+    'qr-encoder', 'quadratic-formula', 'quine', 'recamán',
+    'repeating-decimals', 'reverse-polish-notation', 'reversi',
+    'rijndael-s-box', 'rock-paper-scissors-spock-lizard',
+    'roman-to-arabic', 'rot13', 'rule-110', 'scrambled-alphabetization',
+    'semiprime-numbers', 'set', 'seven-segment', 'si-units',
+    'sierpiński-triangle', 'smith-numbers', 'spelling-numbers',
+    'sphenic-numbers', 'star-wars-gpt', 'star-wars-opening-crawl',
+    'sudoku', 'sudoku-fill-in', 'ten-pin-bowling', 'tic-tac-toe',
+    'time-distance', 'tongue-twisters', 'transpose-sentence',
+    'trinomial-triangle', 'turtle', 'united-states', 'vampire-numbers',
+    'van-eck-sequence', 'zeckendorf-representation', 'zodiac-signs', 'γ',
+    'λ', 'π', 'τ', 'φ', '√2', '𝑒'
 );
 
 CREATE TYPE idea_category AS ENUM ('cheevo', 'hole', 'lang', 'other');



Test patch:
diff --git a/hole/fixed-tests/minesweeper.txt b/hole/fixed-tests/minesweeper.txt
new file mode 100644
index 00000000..26aafd98
--- /dev/null
+++ b/hole/fixed-tests/minesweeper.txt
@@ -0,0 +1,2099 @@
+< XXXXXXMXXM
+< XXMXXXXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MMMXXXXXXX
+< XXXXXXXXXX
+< XXXXXMXMXX
+< XXXXMXXMMX
+< XXXXXXXXXX
+< XXXXXMXXXX
+> 011101X11X
+> 01X1011122
+> 011100001X
+> 2321000011
+> XXX1000000
+> 2321112110
+> 00012X3X31
+> 0001X23XX1
+> 0001222221
+> 00001X1000
+
+< XXXXMMXXMX
+< XMMXXXXXXX
+< XXXXXXXXXM
+< XXXXXMMXXX
+< XXXXMXXXXX
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MMXXXXXXXX
+> 1222XX11X1
+> 1XX2221122
+> 122112211X
+> 00012XX111
+> 0001X32211
+> 00011101X1
+> 0000000122
+> 000000001X
+> 2210000011
+> XX10000000
+
+< XXXXXXXXXM
+< MXXXXXXXMX
+< XXXXXXXXMX
+< MMXXXXMXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXMXX
+< XXXXXXXXXX
+< XMXXMXXXXX
+< XXXMXXMXXX
+> 110000012X
+> X1000002X3
+> 33100113X2
+> XX1001X211
+> 2210011100
+> 0001111110
+> 0001X11X10
+> 1112221110
+> 1X22X21100
+> 112X22X100
+
+< XXXXXXXXMM
+< XMXXXXXXXX
+< MXXXXXXXXX
+< XXXMXMXXXX
+< XXXXMXXXXX
+< XXMXXXXXXX
+< XXXXXMXXXX
+< XXXMMXXXXX
+< XXXXXXXXMX
+< XXMXXXXXXX
+> 11100001XX
+> 2X10000122
+> X221211000
+> 111X3X1000
+> 0123X21000
+> 01X2221000
+> 01233X1000
+> 001XX21111
+> 01232101X1
+> 01X1000111
+
+< XMXXXXMXXX
+< XXXXXXXXXX
+< XXMXXMXXXX
+< MXXXMXXXXX
+< MXXXXXXMXX
+< XXMXXXMXXX
+< XXXXXMXXMX
+< MXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+> 1X1001X100
+> 1221122100
+> 12X22X1000
+> X312X22110
+> X312122X10
+> 12X112X321
+> 12111X22X1
+> X100111111
+> 1100000000
+> 0000000000
+
+< MXXXMXXXMX
+< XXXXXXXMXX
+< XXXXXXXMXM
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXMX
+< XXXXXXXXXM
+< XMXXXXMXXX
+< XXMXXXXXXX
+> X101X112X1
+> 1101112X42
+> 0000002X3X
+> 1110001121
+> 1X10000000
+> 1111110111
+> 0001X101X2
+> 111112122X
+> 1X2101X111
+> 12X1011100
+
+< XXXXXXMXXX
+< XMXXXXXXXX
+< XXXXXXXMXM
+< XXXXXXXXXM
+< XXXXXXXXXX
+< XXXMXMXXMX
+< MXXXXXXXMX
+< XMMXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+> 111001X100
+> 1X10012221
+> 1110001X3X
+> 000000113X
+> 0011211122
+> 111X2X12X2
+> X3322112X2
+> 2XX1001221
+> 1221001X10
+> 0000001110
+
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXMXXXXX
+< XXXXMXMMXX
+< XXMMXXMXXX
+< XXXXXXXXXX
+< XXXXXMXXXX
+< XXXXMXXXXX
+< MXXXXXXXXX
+< MXXXXXXMXX
+> 00000001X1
+> 0001110111
+> 0002X32210
+> 0124X4XX10
+> 01XX23X310
+> 0122222100
+> 00012X1000
+> 1101X21000
+> X201111110
+> X200001X10
+
+< XXXXXXXXXX
+< MXXXXXXXXX
+< MXXMXXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXMMXXXXX
+< MXMXXXXXXX
+< XMMXXXMXXX
+< XXXXXXXXXX
+< MXXXXXXXXM
+> 1100000000
+> X211100000
+> X21X100000
+> 2221100000
+> 1X22210000
+> 233XX10000
+> X4X4221100
+> 2XX201X100
+> 2321011111
+> X10000001X
+
+< XXXXMXMXXX
+< XXXMXXXXXX
+< XXXXXMMXXX
+< XXXXXMXXXX
+< XXXXXXXXXM
+< XXMXXXMXXX
+< XMXXXXXXMX
+< XXXXXXXXXX
+< MXXXXMXXXX
+< XXXXXXXXXX
+> 0012X2X100
+> 001X343200
+> 00113XX100
+> 00002X3111
+> 011112211X
+> 12X101X222
+> 1X210112X1
+> 2210111111
+> X1001X1000
+> 1100111000
+
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXMXXXXX
+< XXXXXMXXXX
+< MMXMXXXXXM
+< XXXXXXXXXX
+< MXMXXXXXXX
+< XMXXMXXMXX
+> 00000001X1
+> 0000000111
+> 1110000000
+> 1X11110000
+> 1111X21000
+> 22223X1011
+> XX2X21101X
+> 3432100011
+> X3X2111110
+> 2X22X11X10
+
+< XXXXXXXXMM
+< XXXXXXMXXM
+< XXXXXXXXXX
+< MXXXXMXXXM
+< XXMMMXXXXX
+< XXXXXXXXXX
+< XXXXXMXXXX
+< XXMXXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+> 00000112XX
+> 000001X23X
+> 1100122122
+> X2233X101X
+> 12XXX21011
+> 0123321000
+> 01111X1000
+> 01X2211000
+> 012X100000
+> 0011100000
+
+< MXXMMXXXXX
+< XXXMXXXXXM
+< XXXXMXXMMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXMXXMMX
+< XXXXXXXXXX
+< XMXXXXXXXX
+> X12XX10011
+> 112X42123X
+> 0012X11XX2
+> 0001111221
+> 0000000000
+> 0000000000
+> 1101111221
+> X101X11XX1
+> 2211111221
+> 1X10000000
+
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXXX
+< MXXMXXXMXX
+< XXXXXMXXXM
+< XMXXXXXXXX
+< XXXXMXXXXX
+< XXMXXXMMXX
+> 0011100000
+> 112X100000
+> 1X21100000
+> 1111110000
+> 1112X11110
+> X11X322X21
+> 22212X212X
+> 1X11221011
+> 1222X22210
+> 01X212XX10
+
+< MXXMMXXXXX
+< XXXXXXXXXX
+< MXXXXXXXXM
+< XMXXXXMXXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XMXXXMXXXX
+< XXMMXXXXXX
+> X11XX10000
+> 2212210011
+> X21001111X
+> 2X1001X111
+> 1110011111
+> 111000001X
+> 1X10000011
+> 2220111000
+> 1X322X1000
+> 12XX211000
+
+< XXXXMXMXXX
+< XMXXXXXXXX
+< XXXXMXMMXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXMXXM
+< XXXMXXXMMX
+< XXXXXXXXMX
+> 1111X2X100
+> 1X12243310
+> 1111X2XX20
+> 0001123X20
+> 0000001110
+> 0000000000
+> 0000011111
+> 001111X33X
+> 001X112XX3
+> 00111013X2
+
+< XXXMXXMXXX
+< XXXXMXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXMXXM
+< XXMXXXMXXX
+< MXXXMXXXXX
+< XXXXMXXXXX
+< XXXXXXXXMX
+> 001X22X211
+> 0012X212X1
+> 0001110111
+> 0000000000
+> 1100011111
+> X21102X21X
+> 23X213X211
+> X213X31100
+> 1102X20111
+> 00011101X1
+
+< XXXXXXXXMX
+< XXXXXXMXXX
+< XXXXMXXXXX
+< XXXXXXXXXX
+< XXXMXXMMXX
+< MMXXXXXXMX
+< XXXXXXXXXX
+< XMXXXXMXXX
+< XXXXMXXXXX
+< XXXXXMXXXX
+> 00000112X1
+> 000112X211
+> 0001X21100
+> 0012222210
+> 222X11XX21
+> XX211123X1
+> 3320011211
+> 1X1112X100
+> 1111X32100
+> 00012X1000
+
+< XXXXXXXXXX
+< XXXXXXMXXM
+< XXXXXXXXXX
+< MXMMXXXMXX
+< XXXXXXXXXX
+< XXMMXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXXXXX
+< MMMXMXXXXX
+> 0000011111
+> 000001X11X
+> 1222112221
+> X2XX101X10
+> 1344201110
+> 01XX100000
+> 0122100000
+> 0111000000
+> 24X3110000
+> XXX3X10000
+
+< XMXXXXXXXX
+< XXMXXXXXMX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XXXMXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXM
+< MXXXMXXXXM
+< XXXXMMXXXX
+> 1X21000111
+> 12X10001X2
+> 011100012X
+> 1100000011
+> X111100000
+> 111X101110
+> 0011101X21
+> 110111113X
+> X102X3102X
+> 1102XX1011
+
+< XXXXXXMXXX
+< MXXXXMXXXX
+< MXMXXMXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XXXXXXXMMX
+< XXMMXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+> 110012X100
+> X3112X3100
+> X3X12X2011
+> 121111101X
+> 1100000011
+> X100001221
+> 1222101XX1
+> 01XX102331
+> 0122101X10
+> 0000001110
+
+< XXXXMMXXXX
+< XXXXXXXXXX
+< MXMXXXXXXX
+< XXXXXXXXXX
+< XXXMMXMMXX
+< XMXXMXXMXX
+< XXXXXXXXXX
+< XMXXXMXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+> 0001XX1000
+> 1212221000
+> X2X1000000
+> 1223222210
+> 112XX3XX20
+> 1X23X33X20
+> 2221222110
+> 1X101X1000
+> 1110111000
+> 0000000000
+
+< MXXXXXXXXX
+< XXXXXXXXXX
+< XMXMXXMXMX
+< XMXXXMXXXX
+< XXXXXXXXXX
+< XXMXXXXXMX
+< MXXXXXXXXX
+< XXMXMXXXXM
+< XXXXXXXXXX
+< XXXXXXXXXX
+> X100000000
+> 2221111211
+> 2X3X22X2X1
+> 2X312X2211
+> 1221111111
+> 12X10001X1
+> X323110122
+> 12X2X1001X
+> 0112110011
+> 0000000000
+
+< XXXXXXXXXX
+< XXXXXMXMXM
+< XXXXXXMXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXMX
+< MMXXXXXXXX
+< MXXXXXMMXX
+< MXXXXXXXXX
+< XXXMMXXXXX
+> 0000112121
+> 00001X3X2X
+> 000012X221
+> 0000011100
+> 0000000111
+> 22100001X1
+> XX10012321
+> X41001XX10
+> X212222210
+> 111XX10000
+
+< MMXXXMMXXX
+< XXXXXXXXXX
+< XXXXXXMXXM
+< XXXMXXXXMX
+< XXXMXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XXMXXXXXMX
+< XXXXXXXXXX
+< XXXXXXXMXX
+> XX101XX100
+> 2210133211
+> 001111X22X
+> 002X2112X2
+> 003X300111
+> 002X200000
+> 0122100111
+> 01X10001X1
+> 0111001221
+> 0000001X10
+
+< MXXXXXMMXX
+< XXMXXMXXXX
+< XXXXXXXXXX
+< XXMXXXXXMX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XMXXXXMXXX
+< XXXXXXXXMX
+< MXXXXMXXXX
+< XXXXXXXXXX
+> X21112XX10
+> 12X11X3210
+> 0222111111
+> 01X10001X1
+> 1221000111
+> 2X20011100
+> 2X2001X211
+> 22101222X1
+> X1001X1111
+> 1100111000
+
+< XXXXXXXMXX
+< XXMXXXXXXM
+< XXXXXXXXXX
+< XXXXMMXMXX
+< XXXXXMMXMX
+< XXXXXXXXXM
+< XXXMXXXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< XXXXMXXXXX
+> 0111001X21
+> 01X100112X
+> 0112222121
+> 0001XX4X21
+> 00013XX3X2
+> 001122222X
+> 001X100022
+> 001110001X
+> 0001110011
+> 0001X10000
+
+< MXXXXMXXXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXXMXMXXXX
+< XXXXXXXXXX
+< XXMMMXXXXX
+< XMXXXXXXXX
+< XXXXMXXXXX
+< XMXXXXXXMX
+< XXMXXXXXXX
+> X1001X1000
+> 1111211000
+> 002X311000
+> 002X3X1000
+> 0134421000
+> 12XXX10000
+> 1X34320000
+> 2221X10111
+> 1X221101X1
+> 12X1000111
+
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMMXMXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXMXXX
+< XXMXXMMXXM
+< MXXXXXXXMX
+< MXXXXXXXXX
+> 0000000000
+> 1222110000
+> 1XX2X10000
+> 2332110000
+> 1X10000000
+> 1221011100
+> 02X213X211
+> 13X21XX32X
+> X3111222X2
+> X200000111
+
+< XMMXMXXXXX
+< XXXXXMXXXX
+< XXXXXXXXXX
+< XXXXMMMXXX
+< XXXXXXXXXX
+< XXXMXXMXXX
+< XXXXXMXXXX
+< XXXXXXXXXX
+< XXMXMXXXXX
+< XXXXXMXXXX
+> 1XX2X21000
+> 12222X1000
+> 0001343100
+> 0001XXX100
+> 0012343200
+> 001X22X100
+> 00112X2100
+> 0112221000
+> 01X2X21000
+> 01122X1000
+
+< MMXMXXXMXX
+< XMXXXXXMXX
+< XMXXXXXXXX
+< XXXXXMXXXX
+< XXXXXXXXXM
+< XMXXXMXXXX
+< XMXXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+> XX3X102X20
+> 4X41102X20
+> 2X20112110
+> 11101X1011
+> 111022201X
+> 2X201X1011
+> 2X20112110
+> 1110001X10
+> 0000001110
+> 0000000000
+
+< XXXXXXXXXX
+< XMXXXXXXXX
+< MXMXXXMXXX
+< XXMXXXXMXX
+< XXXXXMXXXX
+< MXXMMXXXXX
+< XXXXMXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+> 1110000000
+> 2X21011100
+> X4X201X210
+> 13X2123X10
+> 12233X2110
+> X11XX31111
+> 1113X201X1
+> 0001110111
+> 0000000011
+> 000000001X
+
+< XXXXXXXMXX
+< XXXXMXXXXX
+< XXXXXMXXXM
+< XXMXXXXXMX
+< XXXXXXMXXX
+< XXXXXXXXXX
+< XXMXMXXXMX
+< XXXXXXMXXX
+< XXMXXXXXMX
+< XXXXXXXXXX
+> 0001111X10
+> 0001X22121
+> 01122X112X
+> 01X11222X2
+> 011101X211
+> 0112121211
+> 01X2X212X1
+> 022312X322
+> 01X10112X1
+> 0111000111
+
+< MXXXMXXXMX
+< XXXXMXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXMXXXX
+< XXMXXXMXXX
+< XXXXMXXXXX
+< XXXXXXXXXX
+< XMXXXXXXMM
+< XXMXXXXXXX
+> X102X201X1
+> 1102X20111
+> 1111110000
+> 1X10111000
+> 12211X2100
+> 01X223X100
+> 0112X21100
+> 1111110122
+> 1X210001XX
+> 12X1000122
+
+< XMXMXXXXXX
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXXXMXXM
+< XXXMXXXMXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XMXXMXXXMX
+< MXXXXXXMXX
+< XXXXXXXXXX
+> 1X2X100111
+> 11211001X1
+> 0000011222
+> 001111X22X
+> 001X112X21
+> 0011102220
+> 1111111X21
+> 2X11X123X1
+> X211111X21
+> 1100001110
+
+< MMXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XXXMXMXXXX
+< XMXXXXXXXM
+< XXXXXXXXXM
+< XXMXXXXMMX
+> XX10000000
+> 3310000000
+> X210000000
+> 2X10000000
+> 1110001110
+> 0011212X10
+> 112X2X2121
+> 1X2121102X
+> 122100124X
+> 01X1001XX2
+
+< XXXXXXXXXX
+< XXXXMXXXXX
+< MXXXXXXXXX
+< XXMXMMXXXM
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXMMXXMX
+< XXXXXMXMXX
+> 0001110000
+> 1101X10000
+> X213331011
+> 12X3XX101X
+> 012X321011
+> 0011100000
+> 0000011100
+> 000123X211
+> 0001XX43X1
+> 00013X3X21
+
+< XXXXXXXXMX
+< XMXXXMXXXX
+< MXXMXXXXXX
+< XXXXXMXXXX
+< XXXXXXXXXX
+< XXXXXXXMMX
+< XXMXXXXMMX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< MXXXXXXXXX
+> 11101111X1
+> 2X212X1111
+> X22X322000
+> 11112X1000
+> 0000112221
+> 0111002XX2
+> 01X1002XX2
+> 0111002331
+> 1100001X10
+> X100001110
+
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXMXXXXXXX
+< XXXXXXXXXM
+< XXXXXMXMXX
+< XXXXXXXMXX
+< MMXXMXXXXX
+< XXXXXXXXXX
+< XXXXXMXXXX
+< XXXXMXMXXM
+> 00000001X1
+> 0111000111
+> 01X1000011
+> 011111212X
+> 00001X3X31
+> 2211223X20
+> XX11X11110
+> 2211221000
+> 00012X2111
+> 0001X3X11X
+
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXXXMX
+< MMXMXXXXXX
+< XXXXXXXXMX
+< MXXMXXXXXM
+< XXXXXXXXXX
+< MXXXMMXXXX
+> 0000001110
+> 0000001X10
+> 0000001110
+> 1100000111
+> X3211001X1
+> XX2X100222
+> 33322001X2
+> X11X10012X
+> 2212321011
+> X101XX1000
+
+< XXXXXXXXXX
+< XXXXMXXXXX
+< XXXXMXXXXX
+< MXXMXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< MXXXXXMMXM
+< XMXXXXXXXX
+< XXXXXXXXMX
+< XXXXXXXMMX
+> 0001110000
+> 0002X20000
+> 1113X20000
+> X12X310000
+> 112X200000
+> 1111112221
+> X21001XX2X
+> 2X10012332
+> 11100013X2
+> 0000001XX2
+
+< XMXXXXMXXX
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXXMXXXX
+< XXXXXXXMXM
+< XXMXXXXXXX
+< XXXXXXXXXX
+< MXXXXXXMXM
+< XMXXXXMXXX
+< XXXXXXXXXM
+> 1X1001X100
+> 1110022200
+> 000012X100
+> 00001X3221
+> 0111112X2X
+> 01X1001121
+> 1211001121
+> X210012X2X
+> 2X1001X232
+> 111001111X
+
+< XXXXXXXXXM
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXXMXMXXXX
+< XXMXXMXXXX
+< XXXMXMXXXM
+< XXXXXXXXXM
+< XXXXXMXXXX
+< XXXXXXXXXX
+< XMXXXXXXMX
+> 000000001X
+> 0011100011
+> 002X311000
+> 013X4X2000
+> 01X35X3011
+> 012X3X202X
+> 001132202X
+> 00001X1011
+> 1110111111
+> 1X100001X1
+
+< XXXXXXXMMM
+< XXXXXXXXMM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXMM
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXMXMX
+< XXXMXMXXXX
+< XXXMXXXXXX
+> 0000001XXX
+> 00000013XX
+> 0000000122
+> 0000000122
+> 00000001XX
+> 1110000122
+> 1X10011211
+> 112122X2X1
+> 002X3X2211
+> 002X311000
+
+< XMXXXXMXXX
+< XXMXXXMXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XMXXXXXXXM
+< MXXMXMXXXX
+< XXXXXXXXMX
+< XXXMXXXXXX
+> 1X2102X200
+> 12X212X200
+> 012X111100
+> 0011100000
+> 0000001110
+> 1110001X21
+> 2X2121212X
+> X22X2X1122
+> 11223111X1
+> 001X100111
+
+< XXXMXXMXMX
+< XXXXXXXXMX
+< XXXXXXXMXX
+< MXMXXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXXXXXMXXM
+< MXXXXXXXXM
+> 001X11X3X2
+> 00111124X2
+> 1211001X21
+> X2X2101110
+> 122X100000
+> 0011100000
+> 0011100000
+> 001X111111
+> 111111X12X
+> X10001112X
+
+< MXMXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XXMXXMXXXM
+< XMXXMXXXXX
+< XXXXXXXXXM
+< XXXXXXMXXX
+< XXXXXXXXXX
+< MXXXMXXXXX
+< XMXXXXXXXX
+> X2X1000000
+> 1211001110
+> 0111112X21
+> 12X22X212X
+> 1X22X21022
+> 111112111X
+> 000001X111
+> 1101121100
+> X211X10000
+> 2X11110000
+
+< MXMMXMMXMX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXXXXX
+< MXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXMXMXXXXX
+< XXXXXXXXXX
+> X3XX2XX2X1
+> 2X32222211
+> 1221000000
+> 12X1000000
+> X321000000
+> 2X10000000
+> 2220000000
+> 1X22110000
+> 12X2X10000
+> 0112110000
+
+< MXXXXMXXXX
+< XXXXXXXXMX
+< MXXMXXXXXX
+< XXXXXXXXXX
+< XXMMXXXXXX
+< XXXXMXXXXX
+< MXXXXXXXMX
+< XXXXXMMXXX
+< XXXXXXXXXX
+< XXXXXXMXXX
+> X1001X1111
+> 22112111X1
+> X11X100111
+> 1233200000
+> 01XX210000
+> 1223X10111
+> X1012322X1
+> 11001XX211
+> 0000133200
+> 000001X100
+
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXMMXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XMMXXXMXXX
+< XXXXMXXXXX
+< XXMXXMXXXX
+< XXMXXXXXMX
+> 1X10000000
+> 1221012210
+> 01X101XX10
+> 0122112210
+> 001X100000
+> 1232111100
+> 1XX212X100
+> 1333X32100
+> 02X32X1111
+> 02X21111X1
+
+< XXXXXXXXMX
+< XXXXXXMXXX
+< XXXXXXXXXM
+< MMXXXXXXMX
+< XXXXXXXXXX
+< MXXXMXXXXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXXXMMMXXX
+< XXXXXXMXXX
+> 00000112X1
+> 000001X222
+> 221001122X
+> XX100001X2
+> 3311110111
+> X101X10000
+> 1112210000
+> 001X332100
+> 0012XXX200
+> 000124X200
+
+< XXMXXMXXXM
+< XXXXXXXXXX
+< XXXXXMXXXX
+< MXMXMMXXXX
+< XXXXXXXXXX
+< XXXXXMXXXX
+< XXXXXXMXXM
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+> 01X11X101X
+> 0111222011
+> 12123X2000
+> X2X2XX2000
+> 1212332000
+> 00001X2111
+> 000012X22X
+> 0000012X21
+> 0011101110
+> 001X100000
+
+< XXXXXXXXXX
+< XMXXXXXXXM
+< XXXXXXXXXX
+< XXXXMXXMXX
+< XMXXMXXXXX
+< XXXXXXXXXX
+< XXMXXXXXXX
+< XMXXXXXXXX
+< XXMMXMXXXX
+< MXXXXMXXXX
+> 1110000011
+> 1X1000001X
+> 1111111121
+> 1112X21X10
+> 1X12X21110
+> 1222110000
+> 12X1000000
+> 1X43211000
+> 23XX3X2000
+> X2223X2000
+
+< XMXXMXXXMX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XMXXXXMXXX
+< MXMXXMXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XMXXXMXXXX
+> 1X22X101X1
+> 112X210111
+> 1121111100
+> 2X2112X210
+> X3X11X3X10
+> 1211112110
+> 0000000111
+> 00000001X1
+> 1110111111
+> 1X101X1000
+
+< XXXXXXXXXX
+< XMMXXMXMXX
+< XXXXMXXMXX
+< XXXXXXMXXM
+< XXMXXXXXXX
+< XXXXMXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< MXXXMXXXXX
+> 1221112110
+> 1XX22X3X20
+> 1222X34X31
+> 011212X22X
+> 01X2121111
+> 0112X10000
+> 0001110000
+> 0000000011
+> 110111001X
+> X101X10011
+
+< XXXMXXXXXX
+< XXXXMMXXXX
+< XXXMXXMXXX
+< XXXXXXMMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXMXMXMXX
+< XXMXXXXXXX
+< XXMXXXXXXX
+< XXXXMXXXXX
+> 001X321000
+> 0023XX2100
+> 001X34X310
+> 001112XX10
+> 0000012210
+> 0011212110
+> 012X2X2X10
+> 02X3212110
+> 02X3110000
+> 0112X10000
+
+< XMXXXXXXMX
+< XXXXXXMXXX
+< XXXMXXXXXX
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< XXMMXXMXXX
+< XXXXXXMXXM
+< XXXMXXXXMX
+< XXXXXXXXXX
+> 1X100112X1
+> 112111X211
+> 001X111211
+> 00111001X1
+> 0000000122
+> 012211111X
+> 01XX12X222
+> 013322X32X
+> 001X1112X2
+> 0011100111
+
+< XXMXXXXXXX
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXXMXXXX
+< XXXXMXMXXX
+< XXMXMXXXMX
+< MXXXXMXMXX
+< XXMXXXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+> 01X1000000
+> 0111011100
+> 000012X100
+> 00012X3200
+> 0113X4X211
+> 12X3X433X1
+> X3232X2X32
+> 12X11122X1
+> 0111000111
+> 0000000000
+
+< XXXMXXXXXM
+< XXMXXXMXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXMMXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXMMXX
+< MXXXXXMMXX
+< XMXXXXXXXX
+> 012X11111X
+> 01X211X111
+> 0111011100
+> 0122100000
+> 01XX100000
+> 0122100000
+> 0001122210
+> 1101X3XX20
+> X21113XX20
+> 2X10012210
+
+< XXXXXXXXMX
+< XXXXXMMXXX
+< XMXXXXXXXX
+< XXXXXXMXXX
+< XXXXXXXMMM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXXMXX
+< MXXXXXXMXX
+< XMXXXXXXXX
+> 00001222X1
+> 11101XX211
+> 1X10133200
+> 111001X332
+> 0000012XXX
+> 0000001232
+> 1110001110
+> 2X10002X20
+> X320002X20
+> 2X10001110
+
+< XXMXXXXXXX
+< XXXXXXXMXM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXMXXXMXXM
+< XXXMXXXXXX
+< XMXXXXXXMX
+< XXXXXXXXXM
+< XXXXXXMMXX
+> 01X1001121
+> 0111001X2X
+> 0000001121
+> 1110000000
+> 1X21011111
+> 12X211X11X
+> 123X111222
+> 1X211001X2
+> 111001233X
+> 000001XX21
+
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXMXXXMX
+< XXXXXXXXXM
+< XXXXMXXXMX
+< XXXXXXXXXX
+< XXXXXXMXXX
+< MMXXMXMXXX
+< XXXXXXXXXX
+< XXMMXXXXXX
+> 0000011100
+> 000112X211
+> 0001X212X2
+> 000222023X
+> 0001X101X2
+> 0001121211
+> 221113X200
+> XX11X3X200
+> 2333221100
+> 01XX100000
+
+< XXXXXXXXXX
+< XXXXXXXXMX
+< XXXXXXXMXM
+< XMXXXMXXXX
+< XMXXXXXMMX
+< XXXXMXXXXX
+< XMXXXXXXXX
+< MXXXXXXXXM
+< XXXXXXXXXX
+< XXXXXXXXMX
+> 0000000111
+> 00000012X2
+> 1110112X3X
+> 2X201X3342
+> 2X21222XX1
+> 2221X11221
+> 2X11110011
+> X21000001X
+> 1100000122
+> 00000001X1
+
+< XMXXMXXMMX
+< MXXMXXXXXX
+< MXXMXXXMXX
+< XXXMXXXXXM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+> 2X22X11XX1
+> X33X312331
+> X23X301X21
+> 112X20112X
+> 0011100011
+> 0000001110
+> 0000001X10
+> 0000002220
+> 0000001X10
+> 0000001110
+
+< XXMXXXXXXM
+< XXXXXMXXMX
+< XXXXXXXXXX
+< XXMXMXXXXM
+< XXXXMXXXXX
+< MXXXXXXXXX
+< XXXXXMXXXX
+< XMXXXXXXMX
+< XXMXXXXXXX
+< XXXXXXXXXX
+> 01X111112X
+> 01111X11X2
+> 0112221122
+> 01X3X2001X
+> 1213X20011
+> X101221000
+> 22101X1111
+> 1X211111X1
+> 12X1000111
+> 0111000000
+
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXMXMXXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXXMXX
+< XMXXXXXXXX
+< XMXMXXXXXX
+< XXXMMMXMXX
+> 1110000000
+> 1X10000000
+> 1121211000
+> 112X2X1000
+> 1X21211000
+> 2220001110
+> 2X20001X10
+> 3X41101110
+> 2X4X422110
+> 113XXX2X10
+
+< XXMXXXXXXX
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XMXXXXMMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMXXXXMXXX
+< XXXMXXXXXX
+< MXXMXXXMXX
+< XXXXXMMXXX
+> 01X1000111
+> 01110001X1
+> 1110012321
+> 1X1001XX10
+> 1110012210
+> 1110011100
+> 1X2111X100
+> 223X212210
+> X12X323X10
+> 11112XX210
+
+< MMXXXXXMXX
+< XXXXXXXXMX
+< XXXXXMXXXX
+< XXMXXXXXXX
+< MXXXXXXMXX
+< MXXXXMXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXMXMXXMX
+> XX10001X21
+> 22101122X1
+> 01111X1111
+> 12X1112110
+> X311112X10
+> X2001X2110
+> 1100111000
+> 0000000000
+> 0011211111
+> 001X2X11X1
+
+< XMXXXXXXXX
+< MMXXXXXXMX
+< XXXXMXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXMXXXXX
+< MXXXXMXXMX
+< XXXXXXXXXM
+< XXXXXXXMXX
+> 3X20000111
+> XX211102X2
+> 2211X102X2
+> 0001110111
+> 0000000000
+> 1101110000
+> X201X21111
+> X2012X11X2
+> 110011223X
+> 0000001X21
+
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXXMMXMX
+< XXXXMXXXMM
+< XMXMXXMXXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXXX
+< XXXXXXXXMX
+> 0000011100
+> 000013X311
+> 00012XX4X3
+> 1122X434XX
+> 2X3X22X222
+> 2X31111100
+> 1110000000
+> 0001110000
+> 0001X10111
+> 00011101X1
+
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XXXXXMXXXX
+< XXMXXXXXMX
+< XXXXXXXXXM
+< XXXMXXXXMX
+< MXXXMXXXXX
+< XXXXXXXXMX
+< XXXXXMXXMX
+> 00000001X1
+> 0000011211
+> 000012X100
+> 01111X2211
+> 01X11111X2
+> 012210023X
+> 111X2101X2
+> X112X10222
+> 11012212X2
+> 00001X12X2
+
+< XXXXXXMXXX
+< MXXXXXXXMM
+< XXXXXXXXXX
+< XXMXXXXXXX
+< MXXXXXMXXX
+< XXMXXXXXXX
+< XMMXXMXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+> 110001X222
+> X1000112XX
+> 1211000122
+> 12X1011100
+> X32201X100
+> 24X2123210
+> 1XX21X2X10
+> 1221112110
+> 0000000011
+> 000000001X
+
+< XXXXXXMXXX
+< XXXXXXXXXX
+< MXXXXMXXXX
+< XXXMXXXMXM
+< XXXXXMXXXX
+< XXMXXXXXXX
+< XXXMXMXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXMXMX
+> 000001X100
+> 1100122100
+> X1112X2121
+> 111X323X2X
+> 01222X2121
+> 01X2322000
+> 012X2X1000
+> 0011211000
+> 1100011211
+> X10001X2X1
+
+< XXXXXXXXXM
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XMXMXXXXMX
+< XXXMXXMXMX
+< XXXMXXXXXX
+< XXXMXXXXXX
+< MXXXXXXXXX
+< MXXXXXXXXX
+< XXMXXXXXXX
+> 111000001X
+> 1X10000011
+> 2231100111
+> 1X3X2113X2
+> 114X31X3X2
+> 003X311211
+> 112X200000
+> X211100000
+> X311000000
+> 12X1000000
+
+< XXXXXXXXMX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XMXXXXXXMX
+< MXMXXXXXXX
+< XXXXXXXXMM
+< MXXXXMXXXX
+< XXXXXXXXXX
+< XMXXXXMXXX
+< XXXXXXXMXX
+> 00000001X1
+> 1110000111
+> 2X20000111
+> 3X310001X1
+> X3X1000233
+> 23111111XX
+> X1001X1122
+> 2210122100
+> 1X1001X210
+> 1110012X10
+
+< XXXXXMXMXX
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXMMMXXMX
+< XXXXXXMXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XMXXXXXXXX
+< MXXXXXXXXX
+< XXXXXXXMXM
+> 11101X2X10
+> 1X10112110
+> 1122321111
+> 001XXX22X1
+> 001233X321
+> 0000012X10
+> 1110001110
+> 2X10000000
+> X210001121
+> 1100001X2X
+
+< MXXXMMXXMX
+< XXXXXXXXXX
+< XXMXXMXMXX
+< XMXXXXXXXX
+< XXXXXXMXXX
+< XXMXXMXXXX
+< XXMXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+> X101XX11X1
+> 1212333221
+> 12X11X2X10
+> 1X21123210
+> 122112X100
+> 02X21X3210
+> 02X2112X10
+> 0111001110
+> 0000000000
+> 0000000000
+
+< XMXXXXXXXX
+< XXXMMXXXXX
+< XXXMXMXXXX
+< XXXXXXXXXX
+< MMXXXXXXXX
+< XXXXXXMXXX
+< XXXXMMXXXX
+< XXXXXXXXXM
+< XXXXXXMXXX
+< XMXXXXXXXX
+> 1X22210000
+> 113XX21000
+> 002X4X1000
+> 2221211000
+> XX10011100
+> 221123X100
+> 0001XX2111
+> 000123211X
+> 111001X111
+> 1X10011100
+
+< XXXXXXXMMX
+< MXXXXXMMXM
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXMMXX
+< MXXXXXXXMX
+< XXXMXXXXXX
+> 1100013XX2
+> X10001XX5X
+> 110001223X
+> 1100000011
+> X100000000
+> 1100000000
+> 0000012210
+> 110001XX21
+> X1111123X1
+> 111X100111
+
+< XXXXXXXXXX
+< XXXXXXXMXX
+< XMMXXMMXXM
+< XXMXXXXXXX
+< XXXXMXXXXX
+< XXXXXXXXMM
+< XMXXXXXXXX
+< XXXXXXXXXX
+< XXXMXXXXXX
+< XXMXXXXXXX
+> 0000001110
+> 1221123X21
+> 1XX21XX22X
+> 13X3232111
+> 0112X10122
+> 11111101XX
+> 1X10000122
+> 1121100000
+> 012X100000
+> 01X2100000
+
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< MXXXMXXXXX
+< XXXXMXXXXX
+< XXXMXXXXXM
+< XXXXMXXXXX
+< XXXXMXXXXX
+< XMMXXXXMXX
+< XXXXXXXMXM
+> 0000000000
+> 0000000011
+> 110111001X
+> X102X20011
+> 1113X20011
+> 001X32001X
+> 0013X20011
+> 1223X21110
+> 1XX2112X31
+> 1221002X3X
+
+< XXXXXXXXXM
+< XXXXXXXMXX
+< XXXXXXXXXX
+< MMXXXXXXXX
+< XXXXXXXXMM
+< MXXXXXXXXX
+< XXXXXMXXXX
+< XXXXXMXMXX
+< XXXXXXMXXX
+< XMXXXXXMXX
+> 000000112X
+> 0000001X21
+> 2210001110
+> XX10000122
+> 33100001XX
+> X100111122
+> 11002X3110
+> 00002X4X10
+> 111012X320
+> 1X10012X10
+
+< MXXXMXXXXX
+< XXXXXXXXXX
+< XMXXXXMXXM
+< XXXXMXXXMX
+< XXXXXXMXXM
+< XMXXMXXXXX
+< XXXXXXMXXX
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XXXXXXXXXX
+> X101X10000
+> 2211121111
+> 1X1112X22X
+> 1111X323X3
+> 111223X22X
+> 1X11X32211
+> 111112X100
+> 1100011100
+> X100000000
+> 1100000000
+
+< XXMXXXXXXX
+< XXXXMXXMXX
+< XXMXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXMX
+< XXMXMXXXXM
+< XXXXXXXXXM
+< XXXXXXMXXM
+< XMXXXXXXXX
+> 01X2111110
+> 0223X11X10
+> 01X2111110
+> 0111000000
+> 0001110111
+> 0113X201X2
+> 01X3X2013X
+> 011212113X
+> 111001X12X
+> 1X10011111
+
+< XXXXXXXXXM
+< XXXXMXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXMX
+< XXXXXXXXXM
+< XXXXXXXXXM
+< XXXXXXMMXM
+< XXMXXXXXXX
+< XXMMXXXXXX
+> 000111112X
+> 0001X11X21
+> 0001111110
+> 0001110111
+> 0001X101X2
+> 000111013X
+> 000001224X
+> 011101XX3X
+> 02X3112221
+> 02XX100000
+
+< XXXXXMXXXM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XMXXMXXXXX
+< XXXMXXXXXX
+< XXXMXXXXXX
+< XXMXXXXXXX
+< XXXMXXXXMX
+< XMXXXMXXXM
+< XXMXXXXXXX
+> 00001X101X
+> 0000111011
+> 1111110000
+> 1X22X10000
+> 113X310000
+> 013X200000
+> 01X3200111
+> 123X2111X2
+> 1X322X112X
+> 12X1111011
+
+< XXXMMMXXXX
+< XXXMXXXXXX
+< MXXXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XMXMXXXXXX
+< MXMXMXXXXX
+> 002XXX1000
+> 112X421000
+> X111101110
+> 1100001X10
+> 0000001121
+> 000000001X
+> 1100000011
+> X221100000
+> 3X3X210000
+> X3X3X10000
+
+< XXXXXXMXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXMX
+< XXXXMXXXXX
+< XMMXMXXXXX
+< MXXXMXXXXX
+< XXXXXMXXXX
+< XXXXXXXXXX
+< MXMXXXMXMX
+> 000001X100
+> 0000011100
+> 0000000111
+> 00011101X1
+> 1223X20111
+> 2XX4X30000
+> X323X31000
+> 11012X1000
+> 1211122211
+> X2X101X2X1
+
+< XXXXXXXMXX
+< XXMXXXXXXX
+< XXXXXXXMXX
+< XMXXXXXXXM
+< XXXXXXXXXX
+< XXXXXXXXMX
+< XXXXXXMMXX
+< XXMXXXXXXX
+< MXXXXMXXXX
+< XXXMXXMXXX
+> 0111001X10
+> 01X1002220
+> 1221001X21
+> 1X1000112X
+> 1110000122
+> 00000123X1
+> 011101XX21
+> 12X1123210
+> X2222X2100
+> 111X22X100
+
+< XXXXXXXXXX
+< XXXXXXMXXX
+< XMMXXXXXXX
+< XXMXXXMXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXMMXXXXXM
+< XXMXXXXXXX
+< XMXXXXMXXX
+< XXMXXXXXXX
+> 0000011100
+> 122101X100
+> 1XX2022311
+> 13X201X2X1
+> 0111011211
+> 0122100011
+> 02XX10001X
+> 13X3111111
+> 1X3201X100
+> 12X1011100
+
+< XXXMXMXXMX
+< MXXXXXMXXM
+< XXXXXXXXXX
+< MXXXXXXXXM
+< XXMXXXXXXX
+< XXXXXXXXXX
+< XXXMXXXXMM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXXXXX
+> 111X2X22X2
+> X11122X22X
+> 2200011122
+> X21100001X
+> 12X1000011
+> 0122100122
+> 001X1001XX
+> 0011100122
+> 0111000000
+> 01X1000000
+
+< XXMXXXXXXX
+< MXXMXXXXXX
+< XMXMXMXXXX
+< MXXXXXXXXX
+< XXMXXXXXXX
+< XXXXMXXXXX
+< XXMXXXXXXX
+< XXXXXXXMXX
+< XXXXXXXMXX
+< XXXXXXXXXM
+> 12X2100000
+> X34X311000
+> 3X3X3X1000
+> X332211000
+> 12X2110000
+> 0223X10000
+> 01X2111110
+> 0111002X20
+> 0000002X31
+> 000000112X
+
+< XXMMXXMXXX
+< XXXXXXMXMX
+< XMXXXXXXXX
+< XXXMXXXXXX
+< XXXXXXXXXX
+< XXMXXXXXMM
+< XXMXXXXXXX
+< XXXXXXXXXM
+< XXXXXXXXXX
+< XXXXXXXMXX
+> 01XX12X311
+> 123212X3X1
+> 1X21111211
+> 112X100000
+> 0122100122
+> 02X20001XX
+> 02X2000133
+> 011100001X
+> 0000001121
+> 0000001X10
+
+< XXXXXXXXXX
+< MMXXXXXXXX
+< XXMXMXMXXM
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXXXXX
+< XXXMMMXXXX
+< XXXMXXXXXX
+< XXXXXXXMXX
+< XXMXXXXXXX
+> 2210000000
+> XX22121111
+> 23X2X2X11X
+> 0112121111
+> 1100000000
+> X112321000
+> 112XXX1000
+> 002X422110
+> 0122101X10
+> 01X1001110
+
+< XXXMXXXXXX
+< XXXXXMMXXX
+< XXXXXXXXXX
+< XXMXMXXXMM
+< MXXXXXXXXX
+< XXXXXXXXXM
+< MXXXXXXXXX
+< XXXXMXXMXX
+< XXXXXXXXXX
+< XXXXMXXXXX
+> 001X222100
+> 00112XX100
+> 0112232222
+> 12X2X101XX
+> X212110133
+> 220000001X
+> X101111121
+> 1101X11X10
+> 0002221110
+> 0001X10000
+
+< MXXXXXXXXX
+< XXXXXXMXMX
+< MXXMXXXXMX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXXXMXXXMX
+< XXXXXMXXXX
+< XXXXXMXXXM
+< XXXXXXXXMX
+< XXXXXXXXXM
+> X100011211
+> 221111X3X2
+> X11X1113X2
+> 1111100111
+> 0001110111
+> 0001X211X1
+> 00013X2122
+> 00002X212X
+> 00001111X3
+> 000000012X
+
+< MXXXXXMXXX
+< XXXXXXXXXX
+< XXXMMMXXXX
+< XXXMXMXXXX
+< XXXXXXXMXX
+< MXXXXXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< MXXXXXXXXX
+< MXXXXMXXMX
+> X10001X100
+> 1112332100
+> 002XXX2000
+> 002X5X3110
+> 1111212X10
+> X100001110
+> 1100000000
+> 1100000000
+> X200111111
+> X2001X11X1
+
+< XXXXXXXXXX
+< MXXXMXXXXX
+< XXMXXXXXXX
+< MXXMXXXXXX
+< XXXXXXXXMX
+< XXMXXXXXXX
+< XXXXXXXXXX
+< XXXXXXMXXM
+< XXMXXXXXXX
+< XMXXXXMXMX
+> 1101110000
+> X212X10000
+> 23X3210000
+> X22X100111
+> 12221001X1
+> 01X1000111
+> 0111011111
+> 011101X11X
+> 12X1022322
+> 1X2101X2X1
+
+< XXXXXXXXXX
+< XXXXXXXXMX
+< XXXXXMMXXX
+< XXXXXXXXXM
+< MXXXXMXXXX
+< XXXMXXXXXX
+< XXXMMXXXXX
+< XXXXXXXXXX
+< XXXXXXXXXX
+< XXMXXXMXMM
+> 0000000111
+> 00001222X1
+> 00001XX222
+> 110023311X
+> X1112X1011
+> 112X421000
+> 002XX10000
+> 0012210000
+> 0111011222
+> 01X101X2XX
+
+< XMXXXXMXXM
+< XXXXXXXXXX
+< XXXMXXXXXM
+< XXXXXXXXXX
+< XXXXXXXXXM
+< MXXXXXXXXX
+< XXXXXXXXMM
+< XXXXXXXXXX
+< XMXXXXXXXX
+< XMXMXXXMXX
+> 1X1001X11X
+> 1121111122
+> 001X10001X
+> 0011100022
+> 110000001X
+> X100000133
+> 11000001XX
+> 1110000122
+> 2X31101110
+> 2X3X101X10