diff options
| author | Simon Tatham <anakin@pobox.com> | 2023-03-26 20:05:40 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2023-03-26 20:32:38 +0100 |
| commit | 8d6647548f7d0051221374ad6eb2b6dd32e2a3ed (patch) | |
| tree | 93c46ea2403a04072c53cbbee95d60546042b82e /hat-tables.h | |
| parent | 255744676c0c4c8fa391d7a03bdd3142d6db0ad2 (diff) | |
| download | puzzles-8d6647548f7d0051221374ad6eb2b6dd32e2a3ed.zip puzzles-8d6647548f7d0051221374ad6eb2b6dd32e2a3ed.tar.gz puzzles-8d6647548f7d0051221374ad6eb2b6dd32e2a3ed.tar.bz2 puzzles-8d6647548f7d0051221374ad6eb2b6dd32e2a3ed.tar.xz | |
Loopy / grid.c: new grid type, 'Hats'.
The big mathematical news this month is that a polygon has been
discovered that will tile the plane but only aperiodically. Penrose
tiles achieve this with two tile types; it's been an open question for
decades whether you could do it with only one tile. Now someone has
announced the discovery of such a thing, so _obviously_ this
mathematically exciting tiling ought to be one of the Loopy grid
options!
The polygon, named a 'hat' by its discoverers, consists of the union
of eight cells of the 'Kites' periodic tiling that Loopy already
implements. So all the vertex coordinates of the whole tiling are
vertices of the Kites grid, which makes handling the coordinates in an
exact manner a lot easier than Penrose tilings.
What's _harder_ than Penrose tilings is that, although this tiling can
be generated by a vaguely similar system of recursive expansion, the
expansion is geometrically distorting, which means you can't easily
figure out which tiles can be discarded early to save CPU. Instead
I've come up with a completely different system for generating a patch
of tiling, by using a hierarchical coordinate system to track a
location within many levels of the expansion process without ever
simulating the process as a whole. I'm really quite pleased with that
technique, and am tempted to try switching the Penrose generator over
to it too - except that we'd have to keep the old generator around to
stop old game ids being invalidated, and also, I think it would be
slightly trickier without an underlying fixed grid and without
overlaps in the tile expansion system.
However, before coming up with that, I got most of the way through
implementing the more obvious system of actually doing the expansions.
The result worked, but was very slow (because I changed approach
rather than try to implement tree-pruning under distortion). But the
code was reusable for two other useful purposes: it generated the
lookup tables needed for the production code, and it also generated a
lot of useful diagrams. So I've committed it anyway as a supporting
program, in a new 'aux' source subdirectory, and in aux/doc is a
writeup of the coordinate system's concepts, with all those diagrams.
(That's the kind of thing I'd normally put in a huge comment at the
top of the file, but doing all those diagrams in ASCII art would be
beyond miserable.)
From a gameplay perspective: the hat polygon has 13 edges, but one of
them has a vertex of the Kites tiling in the middle, and sometimes two
other tile boundaries meet at that vertex. I've chosen to represent
every hat as having degree 14 for Loopy purposes, because if you only
included that extra vertex when it was needed, then people would be
forever having to check whether this was a 13-hat or a 14-hat and it
would be nightmarish to play.
Even so, there's a lot of clicking involved to turn all those fiddly
individual edges on or off. This grid is noticeably nicer to play in
'autofollow' mode, by setting LOOPY_AUTOFOLLOW in the environment to
either 'fixed' or 'adaptive'. I'm tempted to make 'fixed' the default,
except that I think it would confuse players of ordinary square Loopy!
Diffstat (limited to 'hat-tables.h')
| -rw-r--r-- | hat-tables.h | 2183 |
1 files changed, 2183 insertions, 0 deletions
diff --git a/hat-tables.h b/hat-tables.h new file mode 100644 index 0000000..5b3b0ed --- /dev/null +++ b/hat-tables.h @@ -0,0 +1,2183 @@ +/* + * Header file autogenerated by aux/hatgen.c + * + * To regenerate, run 'hatgen --tables > hat-tables.h' + */ + +static const unsigned hats_in_metatile[] = { 4, 1, 2, 2, }; + +static const TileType children_H[] = { + TT_H, TT_H, TT_H, TT_T, TT_P, TT_P, TT_P, TT_F, TT_F, TT_F, TT_F, TT_F, TT_F, +}; +static const TileType children_T[] = { + TT_H, TT_P, TT_P, TT_P, TT_F, TT_F, TT_F, +}; +static const TileType children_P[] = { + TT_H, TT_H, TT_P, TT_P, TT_P, TT_F, TT_F, TT_F, TT_F, TT_F, TT_F, +}; +static const TileType children_F[] = { + TT_H, TT_H, TT_P, TT_P, TT_F, TT_F, TT_F, TT_F, TT_F, TT_F, TT_F, +}; +static const TileType *const children[] = { + children_H, + children_T, + children_P, + children_F, +}; +static const size_t nchildren[] = { + 13, + 7, + 11, + 11, +}; + +static const MetatilePossibleParent permitted_parents_H[] = { + { TT_H, 0 }, + { TT_H, 1 }, + { TT_H, 2 }, + { TT_T, 0 }, + { TT_P, 0 }, + { TT_P, 1 }, + { TT_F, 0 }, + { TT_F, 1 }, +}; +static const MetatilePossibleParent permitted_parents_T[] = { + { TT_H, 3 }, +}; +static const MetatilePossibleParent permitted_parents_P[] = { + { TT_H, 4 }, + { TT_H, 5 }, + { TT_H, 6 }, + { TT_T, 1 }, + { TT_T, 2 }, + { TT_T, 3 }, + { TT_P, 2 }, + { TT_P, 3 }, + { TT_P, 4 }, + { TT_F, 2 }, + { TT_F, 3 }, +}; +static const MetatilePossibleParent permitted_parents_F[] = { + { TT_H, 7 }, + { TT_H, 8 }, + { TT_H, 9 }, + { TT_H, 10 }, + { TT_H, 11 }, + { TT_H, 12 }, + { TT_T, 4 }, + { TT_T, 5 }, + { TT_T, 6 }, + { TT_P, 5 }, + { TT_P, 6 }, + { TT_P, 7 }, + { TT_P, 8 }, + { TT_P, 9 }, + { TT_P, 10 }, + { TT_F, 4 }, + { TT_F, 5 }, + { TT_F, 6 }, + { TT_F, 7 }, + { TT_F, 8 }, + { TT_F, 9 }, + { TT_F, 10 }, +}; +static const MetatilePossibleParent *const permitted_parents[] = { + permitted_parents_H, + permitted_parents_T, + permitted_parents_P, + permitted_parents_F, +}; +static const size_t n_permitted_parents[] = { + 8, + 1, + 11, + 22, +}; + +static const KitemapEntry kitemap_H[] = { + /* hat #0 in metatile #0 (type H) */ + {1,0,0}, {7,3,0}, {3,0,4}, {4,0,4}, + {4,3,0}, {0,0,0}, {5,0,0}, {2,0,0}, + {3,0,4}, {3,0,0}, {1,0,0}, {5,0,0}, + {2,0,0}, {1,2,1}, {4,0,0}, {6,2,1}, + {3,0,3}, {5,0,0}, {6,2,1}, {3,0,0}, + {4,0,0}, {6,0,0}, {2,0,0}, {1,0,0}, + {5,0,0}, {7,0,0}, {4,3,0}, {3,3,0}, + {6,0,0}, {2,0,3}, {7,1,0}, {0,0,3}, + /* hat #1 in metatile #0 (type H) */ + {1,1,0}, {2,0,5}, {7,1,8}, {0,0,5}, + {3,0,2}, {0,1,0}, {5,1,0}, {2,1,0}, + {7,1,8}, {3,1,0}, {1,1,0}, {5,1,0}, + {2,1,0}, {4,1,8}, {4,1,0}, {0,3,0}, + {2,3,0}, {5,1,0}, {0,3,0}, {3,1,0}, + {4,1,0}, {6,1,0}, {2,1,0}, {1,1,0}, + {5,1,0}, {7,1,0}, {3,0,2}, {4,0,2}, + {6,1,0}, {3,3,0}, {0,0,3}, {7,0,0}, + /* hat #2 in metatile #0 (type H) */ + {1,2,0}, {1,0,7}, {7,1,4}, {6,0,7}, + {3,0,8}, {0,2,0}, {5,2,0}, {2,2,0}, + {7,1,4}, {3,2,0}, {1,2,0}, {5,2,0}, + {2,2,0}, {4,1,4}, {4,2,0}, {6,3,0}, + {1,3,0}, {5,2,0}, {6,3,0}, {3,2,0}, + {4,2,0}, {6,2,0}, {2,2,0}, {1,2,0}, + {5,2,0}, {7,2,0}, {3,0,8}, {4,0,8}, + {6,2,0}, {0,3,0}, {3,1,8}, {4,1,8}, + /* hat #3 in metatile #0 (type H) */ + {7,2,0}, {1,3,0}, {3,1,0}, {4,1,0}, + {0,3,0}, {4,2,0}, {2,3,0}, {5,3,0}, + {3,3,0}, {4,1,0}, {5,3,0}, {1,3,0}, + {7,1,0}, {2,3,0}, {6,0,0}, {4,3,0}, + {5,3,0}, {1,0,0}, {3,3,0}, {6,0,0}, + {6,3,0}, {4,3,0}, {1,3,0}, {2,3,0}, + {7,3,0}, {5,3,0}, {3,2,0}, {4,2,0}, + {0,0,0}, {6,3,0}, {3,1,4}, {4,1,4}, + /* hat #0 in metatile #1 (type H) */ + {1,0,1}, {7,3,1}, {3,0,9}, {4,0,9}, + {4,3,1}, {0,0,1}, {5,0,1}, {2,0,1}, + {3,0,9}, {3,0,1}, {1,0,1}, {5,0,1}, + {2,0,1}, {1,0,10}, {4,0,1}, {6,0,10}, + {0,0,6}, {5,0,1}, {6,0,10}, {3,0,1}, + {4,0,1}, {6,0,1}, {2,0,1}, {1,0,1}, + {5,0,1}, {7,0,1}, {4,3,1}, {3,3,1}, + {6,0,1}, {1,0,6}, {7,1,1}, {6,0,6}, + /* hat #1 in metatile #1 (type H) */ + {1,1,1}, {1,1,2}, {7,0,3}, {6,1,2}, + {0,1,6}, {0,1,1}, {5,1,1}, {2,1,1}, + {7,0,3}, {3,1,1}, {1,1,1}, {5,1,1}, + {2,1,1}, {4,0,3}, {4,1,1}, {0,3,1}, + {2,3,1}, {5,1,1}, {0,3,1}, {3,1,1}, + {4,1,1}, {6,1,1}, {2,1,1}, {1,1,1}, + {5,1,1}, {7,1,1}, {0,1,6}, {7,0,6}, + {6,1,1}, {3,3,1}, {6,0,6}, {7,0,1}, + /* hat #2 in metatile #1 (type H) */ + {1,2,1}, {2,0,4}, {7,1,9}, {0,0,4}, + {3,0,0}, {0,2,1}, {5,2,1}, {2,2,1}, + {7,1,9}, {3,2,1}, {1,2,1}, {5,2,1}, + {2,2,1}, {4,1,9}, {4,2,1}, {6,3,1}, + {1,3,1}, {5,2,1}, {6,3,1}, {3,2,1}, + {4,2,1}, {6,2,1}, {2,2,1}, {1,2,1}, + {5,2,1}, {7,2,1}, {3,0,0}, {4,0,0}, + {6,2,1}, {0,3,1}, {3,0,3}, {4,0,3}, + /* hat #3 in metatile #1 (type H) */ + {7,2,1}, {1,3,1}, {3,1,1}, {4,1,1}, + {0,3,1}, {4,2,1}, {2,3,1}, {5,3,1}, + {3,3,1}, {4,1,1}, {5,3,1}, {1,3,1}, + {7,1,1}, {2,3,1}, {6,0,1}, {4,3,1}, + {5,3,1}, {1,0,1}, {3,3,1}, {6,0,1}, + {6,3,1}, {4,3,1}, {1,3,1}, {2,3,1}, + {7,3,1}, {5,3,1}, {3,2,1}, {4,2,1}, + {0,0,1}, {6,3,1}, {3,1,9}, {4,1,9}, + /* hat #0 in metatile #2 (type H) */ + {1,0,2}, {7,3,2}, {3,0,5}, {4,0,5}, + {4,3,2}, {0,0,2}, {5,0,2}, {2,0,2}, + {3,0,5}, {3,0,2}, {1,0,2}, {5,0,2}, + {2,0,2}, {1,1,0}, {4,0,2}, {6,1,0}, + {0,0,3}, {5,0,2}, {6,1,0}, {3,0,2}, + {4,0,2}, {6,0,2}, {2,0,2}, {1,0,2}, + {5,0,2}, {7,0,2}, {4,3,2}, {3,3,2}, + {6,0,2}, {1,0,3}, {7,1,2}, {6,0,3}, + /* hat #1 in metatile #2 (type H) */ + {1,1,2}, {1,1,6}, {7,1,12}, {6,1,6}, + {0,1,1}, {0,1,2}, {5,1,2}, {2,1,2}, + {7,1,12}, {3,1,2}, {1,1,2}, {5,1,2}, + {2,1,2}, {4,1,12}, {4,1,2}, {0,3,2}, + {2,3,2}, {5,1,2}, {0,3,2}, {3,1,2}, + {4,1,2}, {6,1,2}, {2,1,2}, {1,1,2}, + {5,1,2}, {7,1,2}, {0,1,1}, {7,0,3}, + {6,1,2}, {3,3,2}, {6,0,3}, {7,0,2}, + /* hat #2 in metatile #2 (type H) */ + {1,2,2}, {1,0,11}, {7,1,5}, {6,0,11}, + {3,0,12}, {0,2,2}, {5,2,2}, {2,2,2}, + {7,1,5}, {3,2,2}, {1,2,2}, {5,2,2}, + {2,2,2}, {4,1,5}, {4,2,2}, {6,3,2}, + {1,3,2}, {5,2,2}, {6,3,2}, {3,2,2}, + {4,2,2}, {6,2,2}, {2,2,2}, {1,2,2}, + {5,2,2}, {7,2,2}, {3,0,12}, {4,0,12}, + {6,2,2}, {0,3,2}, {3,1,12}, {4,1,12}, + /* hat #3 in metatile #2 (type H) */ + {7,2,2}, {1,3,2}, {3,1,2}, {4,1,2}, + {0,3,2}, {4,2,2}, {2,3,2}, {5,3,2}, + {3,3,2}, {4,1,2}, {5,3,2}, {1,3,2}, + {7,1,2}, {2,3,2}, {6,0,2}, {4,3,2}, + {5,3,2}, {1,0,2}, {3,3,2}, {6,0,2}, + {6,3,2}, {4,3,2}, {1,3,2}, {2,3,2}, + {7,3,2}, {5,3,2}, {3,2,2}, {4,2,2}, + {0,0,2}, {6,3,2}, {3,1,5}, {4,1,5}, + /* hat #0 in metatile #3 (type T) */ + {1,0,3}, {4,0,2}, {7,0,0}, {7,1,0}, + {7,0,2}, {0,0,3}, {5,0,3}, {2,0,3}, + {7,0,0}, {3,0,3}, {1,0,3}, {5,0,3}, + {2,0,3}, {4,0,0}, {4,0,3}, {7,2,1}, + {3,1,1}, {5,0,3}, {7,2,1}, {3,0,3}, + {4,0,3}, {6,0,3}, {2,0,3}, {1,0,3}, + {5,0,3}, {7,0,3}, {7,0,2}, {7,1,2}, + {6,0,3}, {2,1,1}, {6,1,2}, {0,1,1}, + /* hat #1 in metatile #3 (type T) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #2 in metatile #3 (type T) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #3 (type T) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #4 (type P) */ + {1,0,4}, {-1,-1,-1}, {0,2,1}, {7,1,9}, + {-1,-1,-1}, {0,0,4}, {5,0,4}, {2,0,4}, + {0,2,1}, {3,0,4}, {1,0,4}, {5,0,4}, + {2,0,4}, {2,0,0}, {4,0,4}, {0,0,0}, + {3,1,4}, {5,0,4}, {0,0,0}, {3,0,4}, + {4,0,4}, {6,0,4}, {2,0,4}, {1,0,4}, + {5,0,4}, {7,0,4}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,4}, {2,1,4}, {-1,-1,-1}, {0,1,4}, + /* hat #1 in metatile #4 (type P) */ + {1,1,4}, {-1,-1,-1}, {7,0,4}, {-1,-1,-1}, + {0,1,7}, {0,1,4}, {5,1,4}, {2,1,4}, + {7,0,4}, {3,1,4}, {1,1,4}, {5,1,4}, + {2,1,4}, {4,0,4}, {4,1,4}, {7,3,0}, + {3,2,0}, {5,1,4}, {7,3,0}, {3,1,4}, + {4,1,4}, {6,1,4}, {2,1,4}, {1,1,4}, + {5,1,4}, {7,1,4}, {0,1,7}, {7,0,7}, + {6,1,4}, {2,2,0}, {6,0,7}, {0,2,0}, + /* hat #2 in metatile #4 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #4 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #5 (type P) */ + {1,0,5}, {-1,-1,-1}, {0,1,0}, {7,1,8}, + {-1,-1,-1}, {0,0,5}, {5,0,5}, {2,0,5}, + {0,1,0}, {3,0,5}, {1,0,5}, {5,0,5}, + {2,0,5}, {2,0,2}, {4,0,5}, {0,0,2}, + {3,1,5}, {5,0,5}, {0,0,2}, {3,0,5}, + {4,0,5}, {6,0,5}, {2,0,5}, {1,0,5}, + {5,0,5}, {7,0,5}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,5}, {2,1,5}, {-1,-1,-1}, {0,1,5}, + /* hat #1 in metatile #5 (type P) */ + {1,1,5}, {-1,-1,-1}, {7,0,5}, {-1,-1,-1}, + {0,1,11}, {0,1,5}, {5,1,5}, {2,1,5}, + {7,0,5}, {3,1,5}, {1,1,5}, {5,1,5}, + {2,1,5}, {4,0,5}, {4,1,5}, {7,3,2}, + {3,2,2}, {5,1,5}, {7,3,2}, {3,1,5}, + {4,1,5}, {6,1,5}, {2,1,5}, {1,1,5}, + {5,1,5}, {7,1,5}, {0,1,11}, {7,0,11}, + {6,1,5}, {2,2,2}, {6,0,11}, {0,2,2}, + /* hat #2 in metatile #5 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #5 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #6 (type P) */ + {1,0,6}, {4,0,1}, {0,1,10}, {7,0,10}, + {7,0,1}, {0,0,6}, {5,0,6}, {2,0,6}, + {0,1,10}, {3,0,6}, {1,0,6}, {5,0,6}, + {2,0,6}, {-1,-1,-1}, {4,0,6}, {-1,-1,-1}, + {3,1,6}, {5,0,6}, {-1,-1,-1}, {3,0,6}, + {4,0,6}, {6,0,6}, {2,0,6}, {1,0,6}, + {5,0,6}, {7,0,6}, {7,0,1}, {7,1,1}, + {6,0,6}, {2,1,6}, {6,1,1}, {0,1,6}, + /* hat #1 in metatile #6 (type P) */ + {1,1,6}, {1,1,1}, {7,0,6}, {6,1,1}, + {0,1,2}, {0,1,6}, {5,1,6}, {2,1,6}, + {7,0,6}, {3,1,6}, {1,1,6}, {5,1,6}, + {2,1,6}, {4,0,6}, {4,1,6}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,6}, {-1,-1,-1}, {3,1,6}, + {4,1,6}, {6,1,6}, {2,1,6}, {1,1,6}, + {5,1,6}, {7,1,6}, {0,1,2}, {7,1,12}, + {6,1,6}, {-1,-1,-1}, {6,1,12}, {-1,-1,-1}, + /* hat #2 in metatile #6 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #6 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #7 (type F) */ + {1,0,7}, {2,0,8}, {-1,-1,-1}, {0,0,8}, + {0,2,0}, {0,0,7}, {5,0,7}, {2,0,7}, + {-1,-1,-1}, {3,0,7}, {1,0,7}, {5,0,7}, + {2,0,7}, {-1,-1,-1}, {4,0,7}, {-1,-1,-1}, + {3,1,7}, {5,0,7}, {-1,-1,-1}, {3,0,7}, + {4,0,7}, {6,0,7}, {2,0,7}, {1,0,7}, + {5,0,7}, {7,0,7}, {0,2,0}, {7,1,4}, + {6,0,7}, {2,1,7}, {6,1,4}, {0,1,7}, + /* hat #1 in metatile #7 (type F) */ + {1,1,7}, {1,1,4}, {7,0,7}, {6,1,4}, + {-1,-1,-1}, {0,1,7}, {5,1,7}, {2,1,7}, + {7,0,7}, {3,1,7}, {1,1,7}, {5,1,7}, + {2,1,7}, {4,0,7}, {4,1,7}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,7}, {-1,-1,-1}, {3,1,7}, + {4,1,7}, {6,1,7}, {2,1,7}, {1,1,7}, + {5,1,7}, {7,1,7}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,7}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #2 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #8 (type F) */ + {1,0,8}, {-1,-1,-1}, {0,0,7}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,8}, {5,0,8}, {2,0,8}, + {0,0,7}, {3,0,8}, {1,0,8}, {5,0,8}, + {2,0,8}, {1,2,0}, {4,0,8}, {6,2,0}, + {3,1,8}, {5,0,8}, {6,2,0}, {3,0,8}, + {4,0,8}, {6,0,8}, {2,0,8}, {1,0,8}, + {5,0,8}, {7,0,8}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,8}, {2,1,8}, {-1,-1,-1}, {0,1,8}, + /* hat #1 in metatile #8 (type F) */ + {1,1,8}, {-1,-1,-1}, {7,0,8}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,8}, {5,1,8}, {2,1,8}, + {7,0,8}, {3,1,8}, {1,1,8}, {5,1,8}, + {2,1,8}, {4,0,8}, {4,1,8}, {7,2,0}, + {3,1,0}, {5,1,8}, {7,2,0}, {3,1,8}, + {4,1,8}, {6,1,8}, {2,1,8}, {1,1,8}, + {5,1,8}, {7,1,8}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,8}, {2,1,0}, {0,0,5}, {0,1,0}, + /* hat #2 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #9 (type F) */ + {1,0,9}, {-1,-1,-1}, {0,0,10}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,9}, {5,0,9}, {2,0,9}, + {0,0,10}, {3,0,9}, {1,0,9}, {5,0,9}, + {2,0,9}, {2,0,1}, {4,0,9}, {0,0,1}, + {3,1,9}, {5,0,9}, {0,0,1}, {3,0,9}, + {4,0,9}, {6,0,9}, {2,0,9}, {1,0,9}, + {5,0,9}, {7,0,9}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,9}, {2,1,9}, {-1,-1,-1}, {0,1,9}, + /* hat #1 in metatile #9 (type F) */ + {1,1,9}, {-1,-1,-1}, {7,0,9}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,9}, {5,1,9}, {2,1,9}, + {7,0,9}, {3,1,9}, {1,1,9}, {5,1,9}, + {2,1,9}, {4,0,9}, {4,1,9}, {7,3,1}, + {3,2,1}, {5,1,9}, {7,3,1}, {3,1,9}, + {4,1,9}, {6,1,9}, {2,1,9}, {1,1,9}, + {5,1,9}, {7,1,9}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,9}, {2,2,1}, {0,0,4}, {0,2,1}, + /* hat #2 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #10 (type F) */ + {1,0,10}, {2,0,9}, {-1,-1,-1}, {0,0,9}, + {3,0,1}, {0,0,10}, {5,0,10}, {2,0,10}, + {-1,-1,-1}, {3,0,10}, {1,0,10}, {5,0,10}, + {2,0,10}, {-1,-1,-1}, {4,0,10}, {-1,-1,-1}, + {3,1,10}, {5,0,10}, {-1,-1,-1}, {3,0,10}, + {4,0,10}, {6,0,10}, {2,0,10}, {1,0,10}, + {5,0,10}, {7,0,10}, {3,0,1}, {4,0,1}, + {6,0,10}, {2,1,10}, {0,0,6}, {0,1,10}, + /* hat #1 in metatile #10 (type F) */ + {1,1,10}, {2,0,6}, {7,0,10}, {0,0,6}, + {-1,-1,-1}, {0,1,10}, {5,1,10}, {2,1,10}, + {7,0,10}, {3,1,10}, {1,1,10}, {5,1,10}, + {2,1,10}, {4,0,10}, {4,1,10}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,10}, {-1,-1,-1}, {3,1,10}, + {4,1,10}, {6,1,10}, {2,1,10}, {1,1,10}, + {5,1,10}, {7,1,10}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,10}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #2 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #11 (type F) */ + {1,0,11}, {2,0,12}, {-1,-1,-1}, {0,0,12}, + {0,2,2}, {0,0,11}, {5,0,11}, {2,0,11}, + {-1,-1,-1}, {3,0,11}, {1,0,11}, {5,0,11}, + {2,0,11}, {-1,-1,-1}, {4,0,11}, {-1,-1,-1}, + {3,1,11}, {5,0,11}, {-1,-1,-1}, {3,0,11}, + {4,0,11}, {6,0,11}, {2,0,11}, {1,0,11}, + {5,0,11}, {7,0,11}, {0,2,2}, {7,1,5}, + {6,0,11}, {2,1,11}, {6,1,5}, {0,1,11}, + /* hat #1 in metatile #11 (type F) */ + {1,1,11}, {1,1,5}, {7,0,11}, {6,1,5}, + {-1,-1,-1}, {0,1,11}, {5,1,11}, {2,1,11}, + {7,0,11}, {3,1,11}, {1,1,11}, {5,1,11}, + {2,1,11}, {4,0,11}, {4,1,11}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,11}, {-1,-1,-1}, {3,1,11}, + {4,1,11}, {6,1,11}, {2,1,11}, {1,1,11}, + {5,1,11}, {7,1,11}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,11}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #2 in metatile #11 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #11 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #12 (type F) */ + {1,0,12}, {-1,-1,-1}, {0,0,11}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,12}, {5,0,12}, {2,0,12}, + {0,0,11}, {3,0,12}, {1,0,12}, {5,0,12}, + {2,0,12}, {1,2,2}, {4,0,12}, {6,2,2}, + {3,1,12}, {5,0,12}, {6,2,2}, {3,0,12}, + {4,0,12}, {6,0,12}, {2,0,12}, {1,0,12}, + {5,0,12}, {7,0,12}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,12}, {2,1,12}, {-1,-1,-1}, {0,1,12}, + /* hat #1 in metatile #12 (type F) */ + {1,1,12}, {-1,-1,-1}, {7,0,12}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,12}, {5,1,12}, {2,1,12}, + {7,0,12}, {3,1,12}, {1,1,12}, {5,1,12}, + {2,1,12}, {4,0,12}, {4,1,12}, {7,2,2}, + {3,1,2}, {5,1,12}, {7,2,2}, {3,1,12}, + {4,1,12}, {6,1,12}, {2,1,12}, {1,1,12}, + {5,1,12}, {7,1,12}, {-1,-1,-1}, {7,1,6}, + {6,1,12}, {2,1,2}, {6,1,6}, {0,1,2}, + /* hat #2 in metatile #12 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #12 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, +}; +static const KitemapEntry kitemap_T[] = { + /* hat #0 in metatile #0 (type H) */ + {1,0,0}, {7,3,0}, {3,0,3}, {4,0,3}, + {4,3,0}, {0,0,0}, {5,0,0}, {2,0,0}, + {3,0,3}, {3,0,0}, {1,0,0}, {5,0,0}, + {2,0,0}, {1,1,6}, {4,0,0}, {6,1,6}, + {0,0,2}, {5,0,0}, {6,1,6}, {3,0,0}, + {4,0,0}, {6,0,0}, {2,0,0}, {1,0,0}, + {5,0,0}, {7,0,0}, {4,3,0}, {3,3,0}, + {6,0,0}, {1,0,2}, {7,1,0}, {6,0,2}, + /* hat #1 in metatile #0 (type H) */ + {1,1,0}, {1,1,4}, {7,1,1}, {6,1,4}, + {0,1,2}, {0,1,0}, {5,1,0}, {2,1,0}, + {7,1,1}, {3,1,0}, {1,1,0}, {5,1,0}, + {2,1,0}, {4,1,1}, {4,1,0}, {0,3,0}, + {2,3,0}, {5,1,0}, {0,3,0}, {3,1,0}, + {4,1,0}, {6,1,0}, {2,1,0}, {1,1,0}, + {5,1,0}, {7,1,0}, {0,1,2}, {7,0,2}, + {6,1,0}, {3,3,0}, {6,0,2}, {7,0,0}, + /* hat #2 in metatile #0 (type H) */ + {1,2,0}, {1,1,5}, {7,1,3}, {6,1,5}, + {3,0,1}, {0,2,0}, {5,2,0}, {2,2,0}, + {7,1,3}, {3,2,0}, {1,2,0}, {5,2,0}, + {2,2,0}, {4,1,3}, {4,2,0}, {6,3,0}, + {1,3,0}, {5,2,0}, {6,3,0}, {3,2,0}, + {4,2,0}, {6,2,0}, {2,2,0}, {1,2,0}, + {5,2,0}, {7,2,0}, {3,0,1}, {4,0,1}, + {6,2,0}, {0,3,0}, {3,1,1}, {4,1,1}, + /* hat #3 in metatile #0 (type H) */ + {7,2,0}, {1,3,0}, {3,1,0}, {4,1,0}, + {0,3,0}, {4,2,0}, {2,3,0}, {5,3,0}, + {3,3,0}, {4,1,0}, {5,3,0}, {1,3,0}, + {7,1,0}, {2,3,0}, {6,0,0}, {4,3,0}, + {5,3,0}, {1,0,0}, {3,3,0}, {6,0,0}, + {6,3,0}, {4,3,0}, {1,3,0}, {2,3,0}, + {7,3,0}, {5,3,0}, {3,2,0}, {4,2,0}, + {0,0,0}, {6,3,0}, {3,1,3}, {4,1,3}, + /* hat #0 in metatile #1 (type P) */ + {1,0,1}, {-1,-1,-1}, {0,1,5}, {7,0,5}, + {-1,-1,-1}, {0,0,1}, {5,0,1}, {2,0,1}, + {0,1,5}, {3,0,1}, {1,0,1}, {5,0,1}, + {2,0,1}, {1,2,0}, {4,0,1}, {6,2,0}, + {3,1,1}, {5,0,1}, {6,2,0}, {3,0,1}, + {4,0,1}, {6,0,1}, {2,0,1}, {1,0,1}, + {5,0,1}, {7,0,1}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,1}, {2,1,1}, {-1,-1,-1}, {0,1,1}, + /* hat #1 in metatile #1 (type P) */ + {1,1,1}, {-1,-1,-1}, {7,0,1}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,1}, {5,1,1}, {2,1,1}, + {7,0,1}, {3,1,1}, {1,1,1}, {5,1,1}, + {2,1,1}, {4,0,1}, {4,1,1}, {7,2,0}, + {3,1,0}, {5,1,1}, {7,2,0}, {3,1,1}, + {4,1,1}, {6,1,1}, {2,1,1}, {1,1,1}, + {5,1,1}, {7,1,1}, {-1,-1,-1}, {7,1,4}, + {6,1,1}, {2,1,0}, {6,1,4}, {0,1,0}, + /* hat #2 in metatile #1 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #1 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #2 (type P) */ + {1,0,2}, {4,0,0}, {-1,-1,-1}, {7,1,6}, + {7,0,0}, {0,0,2}, {5,0,2}, {2,0,2}, + {-1,-1,-1}, {3,0,2}, {1,0,2}, {5,0,2}, + {2,0,2}, {-1,-1,-1}, {4,0,2}, {-1,-1,-1}, + {3,1,2}, {5,0,2}, {-1,-1,-1}, {3,0,2}, + {4,0,2}, {6,0,2}, {2,0,2}, {1,0,2}, + {5,0,2}, {7,0,2}, {7,0,0}, {7,1,0}, + {6,0,2}, {2,1,2}, {6,1,0}, {0,1,2}, + /* hat #1 in metatile #2 (type P) */ + {1,1,2}, {1,1,0}, {7,0,2}, {6,1,0}, + {0,1,4}, {0,1,2}, {5,1,2}, {2,1,2}, + {7,0,2}, {3,1,2}, {1,1,2}, {5,1,2}, + {2,1,2}, {4,0,2}, {4,1,2}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,2}, {-1,-1,-1}, {3,1,2}, + {4,1,2}, {6,1,2}, {2,1,2}, {1,1,2}, + {5,1,2}, {7,1,2}, {0,1,4}, {7,0,4}, + {6,1,2}, {-1,-1,-1}, {6,0,4}, {-1,-1,-1}, + /* hat #2 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #3 (type P) */ + {1,0,3}, {-1,-1,-1}, {0,1,6}, {7,0,6}, + {-1,-1,-1}, {0,0,3}, {5,0,3}, {2,0,3}, + {0,1,6}, {3,0,3}, {1,0,3}, {5,0,3}, + {2,0,3}, {2,0,0}, {4,0,3}, {0,0,0}, + {3,1,3}, {5,0,3}, {0,0,0}, {3,0,3}, + {4,0,3}, {6,0,3}, {2,0,3}, {1,0,3}, + {5,0,3}, {7,0,3}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,3}, {2,1,3}, {-1,-1,-1}, {0,1,3}, + /* hat #1 in metatile #3 (type P) */ + {1,1,3}, {-1,-1,-1}, {7,0,3}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,3}, {5,1,3}, {2,1,3}, + {7,0,3}, {3,1,3}, {1,1,3}, {5,1,3}, + {2,1,3}, {4,0,3}, {4,1,3}, {7,3,0}, + {3,2,0}, {5,1,3}, {7,3,0}, {3,1,3}, + {4,1,3}, {6,1,3}, {2,1,3}, {1,1,3}, + {5,1,3}, {7,1,3}, {-1,-1,-1}, {7,1,5}, + {6,1,3}, {2,2,0}, {6,1,5}, {0,2,0}, + /* hat #2 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #4 (type F) */ + {1,0,4}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,4}, {5,0,4}, {2,0,4}, + {-1,-1,-1}, {3,0,4}, {1,0,4}, {5,0,4}, + {2,0,4}, {-1,-1,-1}, {4,0,4}, {-1,-1,-1}, + {3,1,4}, {5,0,4}, {-1,-1,-1}, {3,0,4}, + {4,0,4}, {6,0,4}, {2,0,4}, {1,0,4}, + {5,0,4}, {7,0,4}, {-1,-1,-1}, {7,1,2}, + {6,0,4}, {2,1,4}, {6,1,2}, {0,1,4}, + /* hat #1 in metatile #4 (type F) */ + {1,1,4}, {1,1,2}, {7,0,4}, {6,1,2}, + {0,1,0}, {0,1,4}, {5,1,4}, {2,1,4}, + {7,0,4}, {3,1,4}, {1,1,4}, {5,1,4}, + {2,1,4}, {4,0,4}, {4,1,4}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,4}, {-1,-1,-1}, {3,1,4}, + {4,1,4}, {6,1,4}, {2,1,4}, {1,1,4}, + {5,1,4}, {7,1,4}, {0,1,0}, {7,1,1}, + {6,1,4}, {-1,-1,-1}, {6,1,1}, {-1,-1,-1}, + /* hat #2 in metatile #4 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #4 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #5 (type F) */ + {1,0,5}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,5}, {5,0,5}, {2,0,5}, + {-1,-1,-1}, {3,0,5}, {1,0,5}, {5,0,5}, + {2,0,5}, {-1,-1,-1}, {4,0,5}, {-1,-1,-1}, + {3,1,5}, {5,0,5}, {-1,-1,-1}, {3,0,5}, + {4,0,5}, {6,0,5}, {2,0,5}, {1,0,5}, + {5,0,5}, {7,0,5}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,5}, {2,1,5}, {0,0,1}, {0,1,5}, + /* hat #1 in metatile #5 (type F) */ + {1,1,5}, {2,0,1}, {7,0,5}, {0,0,1}, + {0,2,0}, {0,1,5}, {5,1,5}, {2,1,5}, + {7,0,5}, {3,1,5}, {1,1,5}, {5,1,5}, + {2,1,5}, {4,0,5}, {4,1,5}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,5}, {-1,-1,-1}, {3,1,5}, + {4,1,5}, {6,1,5}, {2,1,5}, {1,1,5}, + {5,1,5}, {7,1,5}, {0,2,0}, {7,1,3}, + {6,1,5}, {-1,-1,-1}, {6,1,3}, {-1,-1,-1}, + /* hat #2 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #6 (type F) */ + {1,0,6}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,6}, {5,0,6}, {2,0,6}, + {-1,-1,-1}, {3,0,6}, {1,0,6}, {5,0,6}, + {2,0,6}, {-1,-1,-1}, {4,0,6}, {-1,-1,-1}, + {3,1,6}, {5,0,6}, {-1,-1,-1}, {3,0,6}, + {4,0,6}, {6,0,6}, {2,0,6}, {1,0,6}, + {5,0,6}, {7,0,6}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,6}, {2,1,6}, {0,0,3}, {0,1,6}, + /* hat #1 in metatile #6 (type F) */ + {1,1,6}, {2,0,3}, {7,0,6}, {0,0,3}, + {3,0,0}, {0,1,6}, {5,1,6}, {2,1,6}, + {7,0,6}, {3,1,6}, {1,1,6}, {5,1,6}, + {2,1,6}, {4,0,6}, {4,1,6}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,6}, {-1,-1,-1}, {3,1,6}, + {4,1,6}, {6,1,6}, {2,1,6}, {1,1,6}, + {5,1,6}, {7,1,6}, {3,0,0}, {4,0,0}, + {6,1,6}, {-1,-1,-1}, {0,0,2}, {-1,-1,-1}, + /* hat #2 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, +}; +static const KitemapEntry kitemap_P[] = { + /* hat #0 in metatile #0 (type H) */ + {1,0,0}, {7,3,0}, {3,0,4}, {4,0,4}, + {4,3,0}, {0,0,0}, {5,0,0}, {2,0,0}, + {3,0,4}, {3,0,0}, {1,0,0}, {5,0,0}, + {2,0,0}, {1,1,9}, {4,0,0}, {6,1,9}, + {0,0,3}, {5,0,0}, {6,1,9}, {3,0,0}, + {4,0,0}, {6,0,0}, {2,0,0}, {1,0,0}, + {5,0,0}, {7,0,0}, {4,3,0}, {3,3,0}, + {6,0,0}, {1,0,3}, {7,1,0}, {6,0,3}, + /* hat #1 in metatile #0 (type H) */ + {1,1,0}, {1,1,8}, {7,1,5}, {6,1,8}, + {0,1,3}, {0,1,0}, {5,1,0}, {2,1,0}, + {7,1,5}, {3,1,0}, {1,1,0}, {5,1,0}, + {2,1,0}, {4,1,5}, {4,1,0}, {0,3,0}, + {2,3,0}, {5,1,0}, {0,3,0}, {3,1,0}, + {4,1,0}, {6,1,0}, {2,1,0}, {1,1,0}, + {5,1,0}, {7,1,0}, {0,1,3}, {7,0,3}, + {6,1,0}, {3,3,0}, {6,0,3}, {7,0,0}, + /* hat #2 in metatile #0 (type H) */ + {1,2,0}, {1,0,6}, {7,1,4}, {6,0,6}, + {3,0,5}, {0,2,0}, {5,2,0}, {2,2,0}, + {7,1,4}, {3,2,0}, {1,2,0}, {5,2,0}, + {2,2,0}, {4,1,4}, {4,2,0}, {6,3,0}, + {1,3,0}, {5,2,0}, {6,3,0}, {3,2,0}, + {4,2,0}, {6,2,0}, {2,2,0}, {1,2,0}, + {5,2,0}, {7,2,0}, {3,0,5}, {4,0,5}, + {6,2,0}, {0,3,0}, {3,1,5}, {4,1,5}, + /* hat #3 in metatile #0 (type H) */ + {7,2,0}, {1,3,0}, {3,1,0}, {4,1,0}, + {0,3,0}, {4,2,0}, {2,3,0}, {5,3,0}, + {3,3,0}, {4,1,0}, {5,3,0}, {1,3,0}, + {7,1,0}, {2,3,0}, {6,0,0}, {4,3,0}, + {5,3,0}, {1,0,0}, {3,3,0}, {6,0,0}, + {6,3,0}, {4,3,0}, {1,3,0}, {2,3,0}, + {7,3,0}, {5,3,0}, {3,2,0}, {4,2,0}, + {0,0,0}, {6,3,0}, {3,1,4}, {4,1,4}, + /* hat #0 in metatile #1 (type H) */ + {1,0,1}, {7,3,1}, {3,0,10}, {4,0,10}, + {4,3,1}, {0,0,1}, {5,0,1}, {2,0,1}, + {3,0,10}, {3,0,1}, {1,0,1}, {5,0,1}, + {2,0,1}, {1,0,9}, {4,0,1}, {6,0,9}, + {0,0,4}, {5,0,1}, {6,0,9}, {3,0,1}, + {4,0,1}, {6,0,1}, {2,0,1}, {1,0,1}, + {5,0,1}, {7,0,1}, {4,3,1}, {3,3,1}, + {6,0,1}, {1,0,4}, {7,1,1}, {6,0,4}, + /* hat #1 in metatile #1 (type H) */ + {1,1,1}, {1,1,6}, {7,1,2}, {6,1,6}, + {0,1,4}, {0,1,1}, {5,1,1}, {2,1,1}, + {7,1,2}, {3,1,1}, {1,1,1}, {5,1,1}, + {2,1,1}, {4,1,2}, {4,1,1}, {0,3,1}, + {2,3,1}, {5,1,1}, {0,3,1}, {3,1,1}, + {4,1,1}, {6,1,1}, {2,1,1}, {1,1,1}, + {5,1,1}, {7,1,1}, {0,1,4}, {7,0,4}, + {6,1,1}, {3,3,1}, {6,0,4}, {7,0,1}, + /* hat #2 in metatile #1 (type H) */ + {1,2,1}, {1,1,7}, {7,1,10}, {6,1,7}, + {3,0,2}, {0,2,1}, {5,2,1}, {2,2,1}, + {7,1,10}, {3,2,1}, {1,2,1}, {5,2,1}, + {2,2,1}, {4,1,10}, {4,2,1}, {6,3,1}, + {1,3,1}, {5,2,1}, {6,3,1}, {3,2,1}, + {4,2,1}, {6,2,1}, {2,2,1}, {1,2,1}, + {5,2,1}, {7,2,1}, {3,0,2}, {4,0,2}, + {6,2,1}, {0,3,1}, {3,1,2}, {4,1,2}, + /* hat #3 in metatile #1 (type H) */ + {7,2,1}, {1,3,1}, {3,1,1}, {4,1,1}, + {0,3,1}, {4,2,1}, {2,3,1}, {5,3,1}, + {3,3,1}, {4,1,1}, {5,3,1}, {1,3,1}, + {7,1,1}, {2,3,1}, {6,0,1}, {4,3,1}, + {5,3,1}, {1,0,1}, {3,3,1}, {6,0,1}, + {6,3,1}, {4,3,1}, {1,3,1}, {2,3,1}, + {7,3,1}, {5,3,1}, {3,2,1}, {4,2,1}, + {0,0,1}, {6,3,1}, {3,1,10}, {4,1,10}, + /* hat #0 in metatile #2 (type P) */ + {1,0,2}, {-1,-1,-1}, {0,1,7}, {7,0,7}, + {-1,-1,-1}, {0,0,2}, {5,0,2}, {2,0,2}, + {0,1,7}, {3,0,2}, {1,0,2}, {5,0,2}, + {2,0,2}, {1,2,1}, {4,0,2}, {6,2,1}, + {3,1,2}, {5,0,2}, {6,2,1}, {3,0,2}, + {4,0,2}, {6,0,2}, {2,0,2}, {1,0,2}, + {5,0,2}, {7,0,2}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,2}, {2,1,2}, {-1,-1,-1}, {0,1,2}, + /* hat #1 in metatile #2 (type P) */ + {1,1,2}, {-1,-1,-1}, {7,0,2}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,2}, {5,1,2}, {2,1,2}, + {7,0,2}, {3,1,2}, {1,1,2}, {5,1,2}, + {2,1,2}, {4,0,2}, {4,1,2}, {7,2,1}, + {3,1,1}, {5,1,2}, {7,2,1}, {3,1,2}, + {4,1,2}, {6,1,2}, {2,1,2}, {1,1,2}, + {5,1,2}, {7,1,2}, {-1,-1,-1}, {7,1,6}, + {6,1,2}, {2,1,1}, {6,1,6}, {0,1,1}, + /* hat #2 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #3 (type P) */ + {1,0,3}, {4,0,0}, {-1,-1,-1}, {7,1,9}, + {7,0,0}, {0,0,3}, {5,0,3}, {2,0,3}, + {-1,-1,-1}, {3,0,3}, {1,0,3}, {5,0,3}, + {2,0,3}, {-1,-1,-1}, {4,0,3}, {-1,-1,-1}, + {3,1,3}, {5,0,3}, {-1,-1,-1}, {3,0,3}, + {4,0,3}, {6,0,3}, {2,0,3}, {1,0,3}, + {5,0,3}, {7,0,3}, {7,0,0}, {7,1,0}, + {6,0,3}, {2,1,3}, {6,1,0}, {0,1,3}, + /* hat #1 in metatile #3 (type P) */ + {1,1,3}, {1,1,0}, {7,0,3}, {6,1,0}, + {0,1,8}, {0,1,3}, {5,1,3}, {2,1,3}, + {7,0,3}, {3,1,3}, {1,1,3}, {5,1,3}, + {2,1,3}, {4,0,3}, {4,1,3}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,3}, {-1,-1,-1}, {3,1,3}, + {4,1,3}, {6,1,3}, {2,1,3}, {1,1,3}, + {5,1,3}, {7,1,3}, {0,1,8}, {7,0,8}, + {6,1,3}, {-1,-1,-1}, {6,0,8}, {-1,-1,-1}, + /* hat #2 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #4 (type P) */ + {1,0,4}, {4,0,1}, {0,1,9}, {7,0,9}, + {7,0,1}, {0,0,4}, {5,0,4}, {2,0,4}, + {0,1,9}, {3,0,4}, {1,0,4}, {5,0,4}, + {2,0,4}, {2,0,0}, {4,0,4}, {0,0,0}, + {3,1,4}, {5,0,4}, {0,0,0}, {3,0,4}, + {4,0,4}, {6,0,4}, {2,0,4}, {1,0,4}, + {5,0,4}, {7,0,4}, {7,0,1}, {7,1,1}, + {6,0,4}, {2,1,4}, {6,1,1}, {0,1,4}, + /* hat #1 in metatile #4 (type P) */ + {1,1,4}, {1,1,1}, {7,0,4}, {6,1,1}, + {0,1,6}, {0,1,4}, {5,1,4}, {2,1,4}, + {7,0,4}, {3,1,4}, {1,1,4}, {5,1,4}, + {2,1,4}, {4,0,4}, {4,1,4}, {7,3,0}, + {3,2,0}, {5,1,4}, {7,3,0}, {3,1,4}, + {4,1,4}, {6,1,4}, {2,1,4}, {1,1,4}, + {5,1,4}, {7,1,4}, {0,1,6}, {7,0,6}, + {6,1,4}, {2,2,0}, {6,0,6}, {0,2,0}, + /* hat #2 in metatile #4 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #4 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #5 (type F) */ + {1,0,5}, {-1,-1,-1}, {0,0,6}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,5}, {5,0,5}, {2,0,5}, + {0,0,6}, {3,0,5}, {1,0,5}, {5,0,5}, + {2,0,5}, {1,2,0}, {4,0,5}, {6,2,0}, + {3,1,5}, {5,0,5}, {6,2,0}, {3,0,5}, + {4,0,5}, {6,0,5}, {2,0,5}, {1,0,5}, + {5,0,5}, {7,0,5}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,5}, {2,1,5}, {-1,-1,-1}, {0,1,5}, + /* hat #1 in metatile #5 (type F) */ + {1,1,5}, {-1,-1,-1}, {7,0,5}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,5}, {5,1,5}, {2,1,5}, + {7,0,5}, {3,1,5}, {1,1,5}, {5,1,5}, + {2,1,5}, {4,0,5}, {4,1,5}, {7,2,0}, + {3,1,0}, {5,1,5}, {7,2,0}, {3,1,5}, + {4,1,5}, {6,1,5}, {2,1,5}, {1,1,5}, + {5,1,5}, {7,1,5}, {-1,-1,-1}, {7,1,8}, + {6,1,5}, {2,1,0}, {6,1,8}, {0,1,0}, + /* hat #2 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #6 (type F) */ + {1,0,6}, {2,0,5}, {-1,-1,-1}, {0,0,5}, + {0,2,0}, {0,0,6}, {5,0,6}, {2,0,6}, + {-1,-1,-1}, {3,0,6}, {1,0,6}, {5,0,6}, + {2,0,6}, {-1,-1,-1}, {4,0,6}, {-1,-1,-1}, + {3,1,6}, {5,0,6}, {-1,-1,-1}, {3,0,6}, + {4,0,6}, {6,0,6}, {2,0,6}, {1,0,6}, + {5,0,6}, {7,0,6}, {0,2,0}, {7,1,4}, + {6,0,6}, {2,1,6}, {6,1,4}, {0,1,6}, + /* hat #1 in metatile #6 (type F) */ + {1,1,6}, {1,1,4}, {7,0,6}, {6,1,4}, + {0,1,1}, {0,1,6}, {5,1,6}, {2,1,6}, + {7,0,6}, {3,1,6}, {1,1,6}, {5,1,6}, + {2,1,6}, {4,0,6}, {4,1,6}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,6}, {-1,-1,-1}, {3,1,6}, + {4,1,6}, {6,1,6}, {2,1,6}, {1,1,6}, + {5,1,6}, {7,1,6}, {0,1,1}, {7,1,2}, + {6,1,6}, {-1,-1,-1}, {6,1,2}, {-1,-1,-1}, + /* hat #2 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #7 (type F) */ + {1,0,7}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,7}, {5,0,7}, {2,0,7}, + {-1,-1,-1}, {3,0,7}, {1,0,7}, {5,0,7}, + {2,0,7}, {-1,-1,-1}, {4,0,7}, {-1,-1,-1}, + {3,1,7}, {5,0,7}, {-1,-1,-1}, {3,0,7}, + {4,0,7}, {6,0,7}, {2,0,7}, {1,0,7}, + {5,0,7}, {7,0,7}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,7}, {2,1,7}, {0,0,2}, {0,1,7}, + /* hat #1 in metatile #7 (type F) */ + {1,1,7}, {2,0,2}, {7,0,7}, {0,0,2}, + {0,2,1}, {0,1,7}, {5,1,7}, {2,1,7}, + {7,0,7}, {3,1,7}, {1,1,7}, {5,1,7}, + {2,1,7}, {4,0,7}, {4,1,7}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,7}, {-1,-1,-1}, {3,1,7}, + {4,1,7}, {6,1,7}, {2,1,7}, {1,1,7}, + {5,1,7}, {7,1,7}, {0,2,1}, {7,1,10}, + {6,1,7}, {-1,-1,-1}, {6,1,10}, {-1,-1,-1}, + /* hat #2 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #8 (type F) */ + {1,0,8}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,8}, {5,0,8}, {2,0,8}, + {-1,-1,-1}, {3,0,8}, {1,0,8}, {5,0,8}, + {2,0,8}, {-1,-1,-1}, {4,0,8}, {-1,-1,-1}, + {3,1,8}, {5,0,8}, {-1,-1,-1}, {3,0,8}, + {4,0,8}, {6,0,8}, {2,0,8}, {1,0,8}, + {5,0,8}, {7,0,8}, {-1,-1,-1}, {7,1,3}, + {6,0,8}, {2,1,8}, {6,1,3}, {0,1,8}, + /* hat #1 in metatile #8 (type F) */ + {1,1,8}, {1,1,3}, {7,0,8}, {6,1,3}, + {0,1,0}, {0,1,8}, {5,1,8}, {2,1,8}, + {7,0,8}, {3,1,8}, {1,1,8}, {5,1,8}, + {2,1,8}, {4,0,8}, {4,1,8}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,8}, {-1,-1,-1}, {3,1,8}, + {4,1,8}, {6,1,8}, {2,1,8}, {1,1,8}, + {5,1,8}, {7,1,8}, {0,1,0}, {7,1,5}, + {6,1,8}, {-1,-1,-1}, {6,1,5}, {-1,-1,-1}, + /* hat #2 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #9 (type F) */ + {1,0,9}, {2,0,10}, {-1,-1,-1}, {0,0,10}, + {3,0,1}, {0,0,9}, {5,0,9}, {2,0,9}, + {-1,-1,-1}, {3,0,9}, {1,0,9}, {5,0,9}, + {2,0,9}, {-1,-1,-1}, {4,0,9}, {-1,-1,-1}, + {3,1,9}, {5,0,9}, {-1,-1,-1}, {3,0,9}, + {4,0,9}, {6,0,9}, {2,0,9}, {1,0,9}, + {5,0,9}, {7,0,9}, {3,0,1}, {4,0,1}, + {6,0,9}, {2,1,9}, {0,0,4}, {0,1,9}, + /* hat #1 in metatile #9 (type F) */ + {1,1,9}, {2,0,4}, {7,0,9}, {0,0,4}, + {3,0,0}, {0,1,9}, {5,1,9}, {2,1,9}, + {7,0,9}, {3,1,9}, {1,1,9}, {5,1,9}, + {2,1,9}, {4,0,9}, {4,1,9}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,9}, {-1,-1,-1}, {3,1,9}, + {4,1,9}, {6,1,9}, {2,1,9}, {1,1,9}, + {5,1,9}, {7,1,9}, {3,0,0}, {4,0,0}, + {6,1,9}, {-1,-1,-1}, {0,0,3}, {-1,-1,-1}, + /* hat #2 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #10 (type F) */ + {1,0,10}, {-1,-1,-1}, {0,0,9}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,10}, {5,0,10}, {2,0,10}, + {0,0,9}, {3,0,10}, {1,0,10}, {5,0,10}, + {2,0,10}, {2,0,1}, {4,0,10}, {0,0,1}, + {3,1,10}, {5,0,10}, {0,0,1}, {3,0,10}, + {4,0,10}, {6,0,10}, {2,0,10}, {1,0,10}, + {5,0,10}, {7,0,10}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,10}, {2,1,10}, {-1,-1,-1}, {0,1,10}, + /* hat #1 in metatile #10 (type F) */ + {1,1,10}, {-1,-1,-1}, {7,0,10}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,10}, {5,1,10}, {2,1,10}, + {7,0,10}, {3,1,10}, {1,1,10}, {5,1,10}, + {2,1,10}, {4,0,10}, {4,1,10}, {7,3,1}, + {3,2,1}, {5,1,10}, {7,3,1}, {3,1,10}, + {4,1,10}, {6,1,10}, {2,1,10}, {1,1,10}, + {5,1,10}, {7,1,10}, {-1,-1,-1}, {7,1,7}, + {6,1,10}, {2,2,1}, {6,1,7}, {0,2,1}, + /* hat #2 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, +}; +static const KitemapEntry kitemap_F[] = { + /* hat #0 in metatile #0 (type H) */ + {1,0,0}, {7,3,0}, {3,0,3}, {4,0,3}, + {4,3,0}, {0,0,0}, {5,0,0}, {2,0,0}, + {3,0,3}, {3,0,0}, {1,0,0}, {5,0,0}, + {2,0,0}, {1,1,9}, {4,0,0}, {6,1,9}, + {0,0,2}, {5,0,0}, {6,1,9}, {3,0,0}, + {4,0,0}, {6,0,0}, {2,0,0}, {1,0,0}, + {5,0,0}, {7,0,0}, {4,3,0}, {3,3,0}, + {6,0,0}, {1,0,2}, {7,1,0}, {6,0,2}, + /* hat #1 in metatile #0 (type H) */ + {1,1,0}, {1,1,8}, {7,1,4}, {6,1,8}, + {0,1,2}, {0,1,0}, {5,1,0}, {2,1,0}, + {7,1,4}, {3,1,0}, {1,1,0}, {5,1,0}, + {2,1,0}, {4,1,4}, {4,1,0}, {0,3,0}, + {2,3,0}, {5,1,0}, {0,3,0}, {3,1,0}, + {4,1,0}, {6,1,0}, {2,1,0}, {1,1,0}, + {5,1,0}, {7,1,0}, {0,1,2}, {7,0,2}, + {6,1,0}, {3,3,0}, {6,0,2}, {7,0,0}, + /* hat #2 in metatile #0 (type H) */ + {1,2,0}, {1,0,5}, {7,1,3}, {6,0,5}, + {3,0,4}, {0,2,0}, {5,2,0}, {2,2,0}, + {7,1,3}, {3,2,0}, {1,2,0}, {5,2,0}, + {2,2,0}, {4,1,3}, {4,2,0}, {6,3,0}, + {1,3,0}, {5,2,0}, {6,3,0}, {3,2,0}, + {4,2,0}, {6,2,0}, {2,2,0}, {1,2,0}, + {5,2,0}, {7,2,0}, {3,0,4}, {4,0,4}, + {6,2,0}, {0,3,0}, {3,1,4}, {4,1,4}, + /* hat #3 in metatile #0 (type H) */ + {7,2,0}, {1,3,0}, {3,1,0}, {4,1,0}, + {0,3,0}, {4,2,0}, {2,3,0}, {5,3,0}, + {3,3,0}, {4,1,0}, {5,3,0}, {1,3,0}, + {7,1,0}, {2,3,0}, {6,0,0}, {4,3,0}, + {5,3,0}, {1,0,0}, {3,3,0}, {6,0,0}, + {6,3,0}, {4,3,0}, {1,3,0}, {2,3,0}, + {7,3,0}, {5,3,0}, {3,2,0}, {4,2,0}, + {0,0,0}, {6,3,0}, {3,1,3}, {4,1,3}, + /* hat #0 in metatile #1 (type H) */ + {1,0,1}, {7,3,1}, {3,0,10}, {4,0,10}, + {4,3,1}, {0,0,1}, {5,0,1}, {2,0,1}, + {3,0,10}, {3,0,1}, {1,0,1}, {5,0,1}, + {2,0,1}, {1,0,9}, {4,0,1}, {6,0,9}, + {0,0,3}, {5,0,1}, {6,0,9}, {3,0,1}, + {4,0,1}, {6,0,1}, {2,0,1}, {1,0,1}, + {5,0,1}, {7,0,1}, {4,3,1}, {3,3,1}, + {6,0,1}, {1,0,3}, {7,1,1}, {6,0,3}, + /* hat #1 in metatile #1 (type H) */ + {1,1,1}, {1,1,5}, {7,1,6}, {6,1,5}, + {0,1,3}, {0,1,1}, {5,1,1}, {2,1,1}, + {7,1,6}, {3,1,1}, {1,1,1}, {5,1,1}, + {2,1,1}, {4,1,6}, {4,1,1}, {0,3,1}, + {2,3,1}, {5,1,1}, {0,3,1}, {3,1,1}, + {4,1,1}, {6,1,1}, {2,1,1}, {1,1,1}, + {5,1,1}, {7,1,1}, {0,1,3}, {7,0,3}, + {6,1,1}, {3,3,1}, {6,0,3}, {7,0,1}, + /* hat #2 in metatile #1 (type H) */ + {1,2,1}, {1,0,7}, {7,1,10}, {6,0,7}, + {3,0,6}, {0,2,1}, {5,2,1}, {2,2,1}, + {7,1,10}, {3,2,1}, {1,2,1}, {5,2,1}, + {2,2,1}, {4,1,10}, {4,2,1}, {6,3,1}, + {1,3,1}, {5,2,1}, {6,3,1}, {3,2,1}, + {4,2,1}, {6,2,1}, {2,2,1}, {1,2,1}, + {5,2,1}, {7,2,1}, {3,0,6}, {4,0,6}, + {6,2,1}, {0,3,1}, {3,1,6}, {4,1,6}, + /* hat #3 in metatile #1 (type H) */ + {7,2,1}, {1,3,1}, {3,1,1}, {4,1,1}, + {0,3,1}, {4,2,1}, {2,3,1}, {5,3,1}, + {3,3,1}, {4,1,1}, {5,3,1}, {1,3,1}, + {7,1,1}, {2,3,1}, {6,0,1}, {4,3,1}, + {5,3,1}, {1,0,1}, {3,3,1}, {6,0,1}, + {6,3,1}, {4,3,1}, {1,3,1}, {2,3,1}, + {7,3,1}, {5,3,1}, {3,2,1}, {4,2,1}, + {0,0,1}, {6,3,1}, {3,1,10}, {4,1,10}, + /* hat #0 in metatile #2 (type P) */ + {1,0,2}, {4,0,0}, {-1,-1,-1}, {7,1,9}, + {7,0,0}, {0,0,2}, {5,0,2}, {2,0,2}, + {-1,-1,-1}, {3,0,2}, {1,0,2}, {5,0,2}, + {2,0,2}, {-1,-1,-1}, {4,0,2}, {-1,-1,-1}, + {3,1,2}, {5,0,2}, {-1,-1,-1}, {3,0,2}, + {4,0,2}, {6,0,2}, {2,0,2}, {1,0,2}, + {5,0,2}, {7,0,2}, {7,0,0}, {7,1,0}, + {6,0,2}, {2,1,2}, {6,1,0}, {0,1,2}, + /* hat #1 in metatile #2 (type P) */ + {1,1,2}, {1,1,0}, {7,0,2}, {6,1,0}, + {0,1,8}, {0,1,2}, {5,1,2}, {2,1,2}, + {7,0,2}, {3,1,2}, {1,1,2}, {5,1,2}, + {2,1,2}, {4,0,2}, {4,1,2}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,2}, {-1,-1,-1}, {3,1,2}, + {4,1,2}, {6,1,2}, {2,1,2}, {1,1,2}, + {5,1,2}, {7,1,2}, {0,1,8}, {7,0,8}, + {6,1,2}, {-1,-1,-1}, {6,0,8}, {-1,-1,-1}, + /* hat #2 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #2 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #3 (type P) */ + {1,0,3}, {4,0,1}, {0,1,9}, {7,0,9}, + {7,0,1}, {0,0,3}, {5,0,3}, {2,0,3}, + {0,1,9}, {3,0,3}, {1,0,3}, {5,0,3}, + {2,0,3}, {2,0,0}, {4,0,3}, {0,0,0}, + {3,1,3}, {5,0,3}, {0,0,0}, {3,0,3}, + {4,0,3}, {6,0,3}, {2,0,3}, {1,0,3}, + {5,0,3}, {7,0,3}, {7,0,1}, {7,1,1}, + {6,0,3}, {2,1,3}, {6,1,1}, {0,1,3}, + /* hat #1 in metatile #3 (type P) */ + {1,1,3}, {1,1,1}, {7,0,3}, {6,1,1}, + {0,1,5}, {0,1,3}, {5,1,3}, {2,1,3}, + {7,0,3}, {3,1,3}, {1,1,3}, {5,1,3}, + {2,1,3}, {4,0,3}, {4,1,3}, {7,3,0}, + {3,2,0}, {5,1,3}, {7,3,0}, {3,1,3}, + {4,1,3}, {6,1,3}, {2,1,3}, {1,1,3}, + {5,1,3}, {7,1,3}, {0,1,5}, {7,0,5}, + {6,1,3}, {2,2,0}, {6,0,5}, {0,2,0}, + /* hat #2 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #3 (type P) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #4 (type F) */ + {1,0,4}, {-1,-1,-1}, {0,0,5}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,4}, {5,0,4}, {2,0,4}, + {0,0,5}, {3,0,4}, {1,0,4}, {5,0,4}, + {2,0,4}, {1,2,0}, {4,0,4}, {6,2,0}, + {3,1,4}, {5,0,4}, {6,2,0}, {3,0,4}, + {4,0,4}, {6,0,4}, {2,0,4}, {1,0,4}, + {5,0,4}, {7,0,4}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,4}, {2,1,4}, {-1,-1,-1}, {0,1,4}, + /* hat #1 in metatile #4 (type F) */ + {1,1,4}, {-1,-1,-1}, {7,0,4}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,4}, {5,1,4}, {2,1,4}, + {7,0,4}, {3,1,4}, {1,1,4}, {5,1,4}, + {2,1,4}, {4,0,4}, {4,1,4}, {7,2,0}, + {3,1,0}, {5,1,4}, {7,2,0}, {3,1,4}, + {4,1,4}, {6,1,4}, {2,1,4}, {1,1,4}, + {5,1,4}, {7,1,4}, {-1,-1,-1}, {7,1,8}, + {6,1,4}, {2,1,0}, {6,1,8}, {0,1,0}, + /* hat #2 in metatile #4 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #4 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #5 (type F) */ + {1,0,5}, {2,0,4}, {-1,-1,-1}, {0,0,4}, + {0,2,0}, {0,0,5}, {5,0,5}, {2,0,5}, + {-1,-1,-1}, {3,0,5}, {1,0,5}, {5,0,5}, + {2,0,5}, {-1,-1,-1}, {4,0,5}, {-1,-1,-1}, + {3,1,5}, {5,0,5}, {-1,-1,-1}, {3,0,5}, + {4,0,5}, {6,0,5}, {2,0,5}, {1,0,5}, + {5,0,5}, {7,0,5}, {0,2,0}, {7,1,3}, + {6,0,5}, {2,1,5}, {6,1,3}, {0,1,5}, + /* hat #1 in metatile #5 (type F) */ + {1,1,5}, {1,1,3}, {7,0,5}, {6,1,3}, + {0,1,1}, {0,1,5}, {5,1,5}, {2,1,5}, + {7,0,5}, {3,1,5}, {1,1,5}, {5,1,5}, + {2,1,5}, {4,0,5}, {4,1,5}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,5}, {-1,-1,-1}, {3,1,5}, + {4,1,5}, {6,1,5}, {2,1,5}, {1,1,5}, + {5,1,5}, {7,1,5}, {0,1,1}, {7,1,6}, + {6,1,5}, {-1,-1,-1}, {6,1,6}, {-1,-1,-1}, + /* hat #2 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #5 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #6 (type F) */ + {1,0,6}, {-1,-1,-1}, {0,0,7}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,6}, {5,0,6}, {2,0,6}, + {0,0,7}, {3,0,6}, {1,0,6}, {5,0,6}, + {2,0,6}, {1,2,1}, {4,0,6}, {6,2,1}, + {3,1,6}, {5,0,6}, {6,2,1}, {3,0,6}, + {4,0,6}, {6,0,6}, {2,0,6}, {1,0,6}, + {5,0,6}, {7,0,6}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,6}, {2,1,6}, {-1,-1,-1}, {0,1,6}, + /* hat #1 in metatile #6 (type F) */ + {1,1,6}, {-1,-1,-1}, {7,0,6}, {-1,-1,-1}, + {-1,-1,-1}, {0,1,6}, {5,1,6}, {2,1,6}, + {7,0,6}, {3,1,6}, {1,1,6}, {5,1,6}, + {2,1,6}, {4,0,6}, {4,1,6}, {7,2,1}, + {3,1,1}, {5,1,6}, {7,2,1}, {3,1,6}, + {4,1,6}, {6,1,6}, {2,1,6}, {1,1,6}, + {5,1,6}, {7,1,6}, {-1,-1,-1}, {7,1,5}, + {6,1,6}, {2,1,1}, {6,1,5}, {0,1,1}, + /* hat #2 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #6 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #7 (type F) */ + {1,0,7}, {2,0,6}, {-1,-1,-1}, {0,0,6}, + {0,2,1}, {0,0,7}, {5,0,7}, {2,0,7}, + {-1,-1,-1}, {3,0,7}, {1,0,7}, {5,0,7}, + {2,0,7}, {-1,-1,-1}, {4,0,7}, {-1,-1,-1}, + {3,1,7}, {5,0,7}, {-1,-1,-1}, {3,0,7}, + {4,0,7}, {6,0,7}, {2,0,7}, {1,0,7}, + {5,0,7}, {7,0,7}, {0,2,1}, {7,1,10}, + {6,0,7}, {2,1,7}, {6,1,10}, {0,1,7}, + /* hat #1 in metatile #7 (type F) */ + {1,1,7}, {1,1,10}, {7,0,7}, {6,1,10}, + {-1,-1,-1}, {0,1,7}, {5,1,7}, {2,1,7}, + {7,0,7}, {3,1,7}, {1,1,7}, {5,1,7}, + {2,1,7}, {4,0,7}, {4,1,7}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,7}, {-1,-1,-1}, {3,1,7}, + {4,1,7}, {6,1,7}, {2,1,7}, {1,1,7}, + {5,1,7}, {7,1,7}, {-1,-1,-1}, {-1,-1,-1}, + {6,1,7}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #2 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #7 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #8 (type F) */ + {1,0,8}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,8}, {5,0,8}, {2,0,8}, + {-1,-1,-1}, {3,0,8}, {1,0,8}, {5,0,8}, + {2,0,8}, {-1,-1,-1}, {4,0,8}, {-1,-1,-1}, + {3,1,8}, {5,0,8}, {-1,-1,-1}, {3,0,8}, + {4,0,8}, {6,0,8}, {2,0,8}, {1,0,8}, + {5,0,8}, {7,0,8}, {-1,-1,-1}, {7,1,2}, + {6,0,8}, {2,1,8}, {6,1,2}, {0,1,8}, + /* hat #1 in metatile #8 (type F) */ + {1,1,8}, {1,1,2}, {7,0,8}, {6,1,2}, + {0,1,0}, {0,1,8}, {5,1,8}, {2,1,8}, + {7,0,8}, {3,1,8}, {1,1,8}, {5,1,8}, + {2,1,8}, {4,0,8}, {4,1,8}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,8}, {-1,-1,-1}, {3,1,8}, + {4,1,8}, {6,1,8}, {2,1,8}, {1,1,8}, + {5,1,8}, {7,1,8}, {0,1,0}, {7,1,4}, + {6,1,8}, {-1,-1,-1}, {6,1,4}, {-1,-1,-1}, + /* hat #2 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #8 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #9 (type F) */ + {1,0,9}, {2,0,10}, {-1,-1,-1}, {0,0,10}, + {3,0,1}, {0,0,9}, {5,0,9}, {2,0,9}, + {-1,-1,-1}, {3,0,9}, {1,0,9}, {5,0,9}, + {2,0,9}, {-1,-1,-1}, {4,0,9}, {-1,-1,-1}, + {3,1,9}, {5,0,9}, {-1,-1,-1}, {3,0,9}, + {4,0,9}, {6,0,9}, {2,0,9}, {1,0,9}, + {5,0,9}, {7,0,9}, {3,0,1}, {4,0,1}, + {6,0,9}, {2,1,9}, {0,0,3}, {0,1,9}, + /* hat #1 in metatile #9 (type F) */ + {1,1,9}, {2,0,3}, {7,0,9}, {0,0,3}, + {3,0,0}, {0,1,9}, {5,1,9}, {2,1,9}, + {7,0,9}, {3,1,9}, {1,1,9}, {5,1,9}, + {2,1,9}, {4,0,9}, {4,1,9}, {-1,-1,-1}, + {-1,-1,-1}, {5,1,9}, {-1,-1,-1}, {3,1,9}, + {4,1,9}, {6,1,9}, {2,1,9}, {1,1,9}, + {5,1,9}, {7,1,9}, {3,0,0}, {4,0,0}, + {6,1,9}, {-1,-1,-1}, {0,0,2}, {-1,-1,-1}, + /* hat #2 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #9 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #0 in metatile #10 (type F) */ + {1,0,10}, {-1,-1,-1}, {0,0,9}, {-1,-1,-1}, + {-1,-1,-1}, {0,0,10}, {5,0,10}, {2,0,10}, + {0,0,9}, {3,0,10}, {1,0,10}, {5,0,10}, + {2,0,10}, {2,0,1}, {4,0,10}, {0,0,1}, + {3,1,10}, {5,0,10}, {0,0,1}, {3,0,10}, + {4,0,10}, {6,0,10}, {2,0,10}, {1,0,10}, + {5,0,10}, {7,0,10}, {-1,-1,-1}, {-1,-1,-1}, + {6,0,10}, {2,1,10}, {-1,-1,-1}, {0,1,10}, + /* hat #1 in metatile #10 (type F) */ + {1,1,10}, {-1,-1,-1}, {7,0,10}, {-1,-1,-1}, + {0,1,7}, {0,1,10}, {5,1,10}, {2,1,10}, + {7,0,10}, {3,1,10}, {1,1,10}, {5,1,10}, + {2,1,10}, {4,0,10}, {4,1,10}, {7,3,1}, + {3,2,1}, {5,1,10}, {7,3,1}, {3,1,10}, + {4,1,10}, {6,1,10}, {2,1,10}, {1,1,10}, + {5,1,10}, {7,1,10}, {0,1,7}, {7,0,7}, + {6,1,10}, {2,2,1}, {6,0,7}, {0,2,1}, + /* hat #2 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + /* hat #3 in metatile #10 (type F) does not exist */ + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, + {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, {-1,-1,-1}, +}; +static const KitemapEntry *const kitemap[] = { + kitemap_H, + kitemap_T, + kitemap_P, + kitemap_F, +}; + +static const MetamapEntry metamap_H[] = { + /* 0, 0 -> */ {0, 0}, /* no alternatives */ + /* 1, 0 -> */ {1, 0}, /* no alternatives */ + /* 2, 0 -> */ {2, 0}, /* no alternatives */ + /* 3, 0 -> */ {3, 0}, /* no alternatives */ + /* 4, 0 -> */ {3, 4}, + /* 5, 0 -> */ {2, 8}, + /* 6, 0 -> */ {3, 3}, + /* 7, 0 -> */ {8, 4}, + /* 8, 0 -> */ {9, 8}, + /* 9, 0 -> */ {9, 4}, + /* 10, 0 -> */ {8, 1}, + /* 11, 0 -> */ {10, 5}, + /* 12, 0 -> */ {5, 3}, + /* 0, 1 -> */ {0, 1}, /* no alternatives */ + /* 1, 1 -> */ {1, 1}, /* no alternatives */ + /* 2, 1 -> */ {2, 1}, /* no alternatives */ + /* 3, 1 -> */ {3, 1}, /* no alternatives */ + /* 4, 1 -> */ {2, 9}, + /* 5, 1 -> */ {2, 3}, + /* 6, 1 -> */ {2, 6}, + /* 7, 1 -> */ {10, 4}, + /* 8, 1 -> */ {6, 3}, + /* 9, 1 -> */ {9, 9}, + /* 10, 1 -> */ {6, 10}, + /* 11, 1 -> */ {4, 3}, + /* 12, 1 -> */ {6, 6}, + /* 0, 2 -> */ {0, 2}, /* no alternatives */ + /* 1, 2 -> */ {1, 2}, /* no alternatives */ + /* 2, 2 -> */ {2, 2}, /* no alternatives */ + /* 3, 2 -> */ {3, 2}, /* no alternatives */ + /* 4, 2 -> */ {3, 5}, + /* 5, 2 -> */ {2, 12}, + /* 6, 2 -> */ {1, 3}, + /* 7, 2 -> */ {8, 5}, + /* 8, 2 -> */ {9, 12}, + /* 9, 2 -> */ {9, 5}, + /* 10, 2 -> */ {12, 0}, + /* 11, 2 -> */ {5, 6}, + /* 12, 2 -> */ {11, 1}, + /* 0, 3 -> */ {0, 3}, /* no alternatives */ + /* 1, 3 -> */ {6, 2}, + /* 2, 3 -> */ {5, 1}, + /* 3, 3 -> */ {6, 0}, + /* 4, 3 -> */ {12, 2}, + /* 5, 3 -> */ {10, 2}, + /* 6, 3 -> */ {10, 0}, + /* 7, 3 -> */ {-1,-1}, /* does not exist */ + /* 8, 3 -> */ {-1,-1}, /* does not exist */ + /* 9, 3 -> */ {-1,-1}, /* does not exist */ + /* 10, 3 -> */ {-1,-1}, /* does not exist */ + /* 11, 3 -> */ {-1,-1}, /* does not exist */ + /* 12, 3 -> */ {-1,-1}, /* does not exist */ + /* 0, 4 -> */ {0, 4}, /* no alternatives */ + /* 1, 4 -> */ {1, 4}, /* no alternatives */ + /* 2, 4 -> */ {2, 4}, /* no alternatives */ + /* 3, 4 -> */ {4, 0}, + /* 4, 4 -> */ {4, 4}, /* no alternatives */ + /* 5, 4 -> */ {5, 7}, + /* 6, 4 -> */ {6, 4}, /* no alternatives */ + /* 7, 4 -> */ {4, 9}, + /* 8, 4 -> */ {6, 7}, + /* 9, 4 -> */ {9, 0}, + /* 10, 4 -> */ {8, 9}, + /* 11, 4 -> */ {-1,-1}, /* does not exist */ + /* 12, 4 -> */ {-1,-1}, /* does not exist */ + /* 0, 5 -> */ {0, 5}, /* no alternatives */ + /* 1, 5 -> */ {1, 5}, /* no alternatives */ + /* 2, 5 -> */ {2, 5}, /* no alternatives */ + /* 3, 5 -> */ {4, 2}, + /* 4, 5 -> */ {4, 5}, /* no alternatives */ + /* 5, 5 -> */ {5, 11}, + /* 6, 5 -> */ {6, 5}, /* no alternatives */ + /* 7, 5 -> */ {4, 8}, + /* 8, 5 -> */ {6, 11}, + /* 9, 5 -> */ {9, 2}, + /* 10, 5 -> */ {8, 8}, + /* 11, 5 -> */ {-1,-1}, /* does not exist */ + /* 12, 5 -> */ {-1,-1}, /* does not exist */ + /* 0, 6 -> */ {0, 6}, /* no alternatives */ + /* 1, 6 -> */ {1, 6}, /* no alternatives */ + /* 2, 6 -> */ {6, 1}, + /* 3, 6 -> */ {3, 6}, /* no alternatives */ + /* 4, 6 -> */ {4, 6}, /* no alternatives */ + /* 5, 6 -> */ {8, 12}, + /* 6, 6 -> */ {12, 1}, + /* 7, 6 -> */ {10, 1}, + /* 8, 6 -> */ {4, 12}, + /* 9, 6 -> */ {9, 6}, /* no alternatives */ + /* 10, 6 -> */ {5, 10}, + /* 11, 6 -> */ {-1,-1}, /* does not exist */ + /* 12, 6 -> */ {-1,-1}, /* does not exist */ + /* 0, 7 -> */ {0, 7}, /* no alternatives */ + /* 1, 7 -> */ {1, 7}, /* no alternatives */ + /* 2, 7 -> */ {2, 7}, /* no alternatives */ + /* 3, 7 -> */ {3, 7}, /* no alternatives */ + /* 4, 7 -> */ {4, 7}, /* no alternatives */ + /* 5, 7 -> */ {5, 4}, + /* 6, 7 -> */ {7, 0}, + /* 7, 7 -> */ {10, 8}, + /* 8, 7 -> */ {8, 7}, /* no alternatives */ + /* 9, 7 -> */ {9, 7}, /* no alternatives */ + /* 10, 7 -> */ {10, 7}, /* no alternatives */ + /* 11, 7 -> */ {-1,-1}, /* does not exist */ + /* 12, 7 -> */ {-1,-1}, /* does not exist */ + /* 0, 8 -> */ {0, 8}, /* no alternatives */ + /* 1, 8 -> */ {1, 8}, /* no alternatives */ + /* 2, 8 -> */ {5, 0}, + /* 3, 8 -> */ {3, 8}, /* no alternatives */ + /* 4, 8 -> */ {7, 5}, + /* 5, 8 -> */ {5, 8}, /* no alternatives */ + /* 6, 8 -> */ {6, 8}, /* no alternatives */ + /* 7, 8 -> */ {7, 8}, /* no alternatives */ + /* 8, 8 -> */ {11, 0}, + /* 9, 8 -> */ {8, 0}, + /* 10, 8 -> */ {7, 7}, + /* 11, 8 -> */ {-1,-1}, /* does not exist */ + /* 12, 8 -> */ {-1,-1}, /* does not exist */ + /* 0, 9 -> */ {0, 9}, /* no alternatives */ + /* 1, 9 -> */ {1, 9}, /* no alternatives */ + /* 2, 9 -> */ {4, 1}, + /* 3, 9 -> */ {3, 9}, /* no alternatives */ + /* 4, 9 -> */ {7, 4}, + /* 5, 9 -> */ {5, 9}, /* no alternatives */ + /* 6, 9 -> */ {6, 9}, /* no alternatives */ + /* 7, 9 -> */ {7, 9}, /* no alternatives */ + /* 8, 9 -> */ {7, 1}, + /* 9, 9 -> */ {9, 1}, + /* 10, 9 -> */ {7, 10}, + /* 11, 9 -> */ {-1,-1}, /* does not exist */ + /* 12, 9 -> */ {-1,-1}, /* does not exist */ + /* 0, 10 -> */ {0, 10}, /* no alternatives */ + /* 1, 10 -> */ {1, 10}, /* no alternatives */ + /* 2, 10 -> */ {2, 10}, /* no alternatives */ + /* 3, 10 -> */ {3, 10}, /* no alternatives */ + /* 4, 10 -> */ {4, 10}, /* no alternatives */ + /* 5, 10 -> */ {10, 6}, + /* 6, 10 -> */ {7, 6}, + /* 7, 10 -> */ {10, 9}, + /* 8, 10 -> */ {8, 10}, /* no alternatives */ + /* 9, 10 -> */ {9, 10}, /* no alternatives */ + /* 10, 10 -> */ {10, 10}, /* no alternatives */ + /* 11, 10 -> */ {-1,-1}, /* does not exist */ + /* 12, 10 -> */ {-1,-1}, /* does not exist */ + /* 0, 11 -> */ {0, 11}, /* no alternatives */ + /* 1, 11 -> */ {1, 11}, /* no alternatives */ + /* 2, 11 -> */ {2, 11}, /* no alternatives */ + /* 3, 11 -> */ {3, 11}, /* no alternatives */ + /* 4, 11 -> */ {4, 11}, /* no alternatives */ + /* 5, 11 -> */ {5, 5}, + /* 6, 11 -> */ {7, 2}, + /* 7, 11 -> */ {10, 12}, + /* 8, 11 -> */ {8, 11}, /* no alternatives */ + /* 9, 11 -> */ {9, 11}, /* no alternatives */ + /* 10, 11 -> */ {10, 11}, /* no alternatives */ + /* 11, 11 -> */ {-1,-1}, /* does not exist */ + /* 12, 11 -> */ {-1,-1}, /* does not exist */ + /* 0, 12 -> */ {0, 12}, /* no alternatives */ + /* 1, 12 -> */ {1, 12}, /* no alternatives */ + /* 2, 12 -> */ {5, 2}, + /* 3, 12 -> */ {3, 12}, /* no alternatives */ + /* 4, 12 -> */ {8, 6}, + /* 5, 12 -> */ {5, 12}, /* no alternatives */ + /* 6, 12 -> */ {6, 12}, /* no alternatives */ + /* 7, 12 -> */ {7, 12}, /* no alternatives */ + /* 8, 12 -> */ {11, 2}, + /* 9, 12 -> */ {8, 2}, + /* 10, 12 -> */ {7, 11}, + /* 11, 12 -> */ {-1,-1}, /* does not exist */ + /* 12, 12 -> */ {-1,-1}, /* does not exist */ +}; +static const MetamapEntry metamap_T[] = { + /* 0, 0 -> */ {0, 0}, /* no alternatives */ + /* 1, 0 -> */ {1, 0}, /* no alternatives */ + /* 2, 0 -> */ {2, 0}, /* no alternatives */ + /* 3, 0 -> */ {3, 0}, /* no alternatives */ + /* 4, 0 -> */ {3, 3}, + /* 5, 0 -> */ {3, 1}, + /* 6, 0 -> */ {2, 2}, + /* 7, 0 -> */ {8, 3}, + /* 8, 0 -> */ {9, 1}, + /* 9, 0 -> */ {9, 3}, + /* 10, 0 -> */ {4, 6}, + /* 11, 0 -> */ {4, 4}, + /* 12, 0 -> */ {6, 2}, + /* 0, 1 -> */ {0, 1}, /* no alternatives */ + /* 1, 1 -> */ {1, 1}, /* no alternatives */ + /* 2, 1 -> */ {2, 1}, /* no alternatives */ + /* 3, 1 -> */ {5, 0}, + /* 4, 1 -> */ {4, 1}, /* no alternatives */ + /* 5, 1 -> */ {8, 4}, + /* 6, 1 -> */ {6, 1}, /* no alternatives */ + /* 7, 1 -> */ {6, 5}, + /* 8, 1 -> */ {11, 0}, + /* 9, 1 -> */ {8, 0}, + /* 10, 1 -> */ {5, 5}, + /* 11, 1 -> */ {-1,-1}, /* does not exist */ + /* 12, 1 -> */ {-1,-1}, /* does not exist */ + /* 0, 2 -> */ {0, 2}, /* no alternatives */ + /* 1, 2 -> */ {1, 2}, /* no alternatives */ + /* 2, 2 -> */ {6, 0}, + /* 3, 2 -> */ {3, 2}, /* no alternatives */ + /* 4, 2 -> */ {4, 2}, /* no alternatives */ + /* 5, 2 -> */ {5, 4}, + /* 6, 2 -> */ {12, 0}, + /* 7, 2 -> */ {10, 0}, + /* 8, 2 -> */ {6, 4}, + /* 9, 2 -> */ {9, 2}, /* no alternatives */ + /* 10, 2 -> */ {8, 6}, + /* 11, 2 -> */ {-1,-1}, /* does not exist */ + /* 12, 2 -> */ {-1,-1}, /* does not exist */ + /* 0, 3 -> */ {0, 3}, /* no alternatives */ + /* 1, 3 -> */ {1, 3}, /* no alternatives */ + /* 2, 3 -> */ {2, 3}, /* no alternatives */ + /* 3, 3 -> */ {4, 0}, + /* 4, 3 -> */ {4, 3}, /* no alternatives */ + /* 5, 3 -> */ {8, 5}, + /* 6, 3 -> */ {6, 3}, /* no alternatives */ + /* 7, 3 -> */ {6, 6}, + /* 8, 3 -> */ {4, 5}, + /* 9, 3 -> */ {9, 0}, + /* 10, 3 -> */ {5, 6}, + /* 11, 3 -> */ {-1,-1}, /* does not exist */ + /* 12, 3 -> */ {-1,-1}, /* does not exist */ + /* 0, 4 -> */ {0, 4}, /* no alternatives */ + /* 1, 4 -> */ {1, 4}, /* no alternatives */ + /* 2, 4 -> */ {2, 4}, /* no alternatives */ + /* 3, 4 -> */ {3, 4}, /* no alternatives */ + /* 4, 4 -> */ {8, 1}, + /* 5, 4 -> */ {5, 2}, + /* 6, 4 -> */ {8, 2}, + /* 7, 4 -> */ {7, 4}, /* no alternatives */ + /* 8, 4 -> */ {5, 1}, + /* 9, 4 -> */ {9, 4}, /* no alternatives */ + /* 10, 4 -> */ {10, 4}, /* no alternatives */ + /* 11, 4 -> */ {-1,-1}, /* does not exist */ + /* 12, 4 -> */ {-1,-1}, /* does not exist */ + /* 0, 5 -> */ {0, 5}, /* no alternatives */ + /* 1, 5 -> */ {1, 5}, /* no alternatives */ + /* 2, 5 -> */ {2, 5}, /* no alternatives */ + /* 3, 5 -> */ {3, 5}, /* no alternatives */ + /* 4, 5 -> */ {7, 0}, + /* 5, 5 -> */ {10, 1}, + /* 6, 5 -> */ {7, 1}, + /* 7, 5 -> */ {7, 5}, /* no alternatives */ + /* 8, 5 -> */ {5, 3}, + /* 9, 5 -> */ {9, 5}, /* no alternatives */ + /* 10, 5 -> */ {10, 5}, /* no alternatives */ + /* 11, 5 -> */ {-1,-1}, /* does not exist */ + /* 12, 5 -> */ {-1,-1}, /* does not exist */ + /* 0, 6 -> */ {0, 6}, /* no alternatives */ + /* 1, 6 -> */ {1, 6}, /* no alternatives */ + /* 2, 6 -> */ {2, 6}, /* no alternatives */ + /* 3, 6 -> */ {3, 6}, /* no alternatives */ + /* 4, 6 -> */ {7, 2}, + /* 5, 6 -> */ {10, 3}, + /* 6, 6 -> */ {7, 3}, + /* 7, 6 -> */ {7, 6}, /* no alternatives */ + /* 8, 6 -> */ {10, 2}, + /* 9, 6 -> */ {9, 6}, /* no alternatives */ + /* 10, 6 -> */ {10, 6}, /* no alternatives */ + /* 11, 6 -> */ {-1,-1}, /* does not exist */ + /* 12, 6 -> */ {-1,-1}, /* does not exist */ +}; +static const MetamapEntry metamap_P[] = { + /* 0, 0 -> */ {0, 0}, /* no alternatives */ + /* 1, 0 -> */ {1, 0}, /* no alternatives */ + /* 2, 0 -> */ {2, 0}, /* no alternatives */ + /* 3, 0 -> */ {3, 0}, /* no alternatives */ + /* 4, 0 -> */ {3, 4}, + /* 5, 0 -> */ {2, 5}, + /* 6, 0 -> */ {2, 3}, + /* 7, 0 -> */ {8, 4}, + /* 8, 0 -> */ {9, 5}, + /* 9, 0 -> */ {9, 4}, + /* 10, 0 -> */ {4, 9}, + /* 11, 0 -> */ {4, 8}, + /* 12, 0 -> */ {6, 3}, + /* 0, 1 -> */ {0, 1}, /* no alternatives */ + /* 1, 1 -> */ {1, 1}, /* no alternatives */ + /* 2, 1 -> */ {2, 1}, /* no alternatives */ + /* 3, 1 -> */ {3, 1}, /* no alternatives */ + /* 4, 1 -> */ {2, 10}, + /* 5, 1 -> */ {3, 2}, + /* 6, 1 -> */ {2, 4}, + /* 7, 1 -> */ {8, 10}, + /* 8, 1 -> */ {9, 2}, + /* 9, 1 -> */ {9, 10}, + /* 10, 1 -> */ {7, 4}, + /* 11, 1 -> */ {8, 2}, + /* 12, 1 -> */ {6, 4}, + /* 0, 2 -> */ {0, 2}, /* no alternatives */ + /* 1, 2 -> */ {1, 2}, /* no alternatives */ + /* 2, 2 -> */ {2, 2}, /* no alternatives */ + /* 3, 2 -> */ {5, 1}, + /* 4, 2 -> */ {4, 2}, /* no alternatives */ + /* 5, 2 -> */ {8, 6}, + /* 6, 2 -> */ {6, 2}, /* no alternatives */ + /* 7, 2 -> */ {6, 7}, + /* 8, 2 -> */ {4, 6}, + /* 9, 2 -> */ {8, 1}, + /* 10, 2 -> */ {5, 7}, + /* 11, 2 -> */ {-1,-1}, /* does not exist */ + /* 12, 2 -> */ {-1,-1}, /* does not exist */ + /* 0, 3 -> */ {0, 3}, /* no alternatives */ + /* 1, 3 -> */ {1, 3}, /* no alternatives */ + /* 2, 3 -> */ {6, 0}, + /* 3, 3 -> */ {3, 3}, /* no alternatives */ + /* 4, 3 -> */ {4, 3}, /* no alternatives */ + /* 5, 3 -> */ {5, 8}, + /* 6, 3 -> */ {12, 0}, + /* 7, 3 -> */ {10, 0}, + /* 8, 3 -> */ {6, 8}, + /* 9, 3 -> */ {9, 3}, /* no alternatives */ + /* 10, 3 -> */ {8, 9}, + /* 11, 3 -> */ {-1,-1}, /* does not exist */ + /* 12, 3 -> */ {-1,-1}, /* does not exist */ + /* 0, 4 -> */ {0, 4}, /* no alternatives */ + /* 1, 4 -> */ {1, 4}, /* no alternatives */ + /* 2, 4 -> */ {6, 1}, + /* 3, 4 -> */ {4, 0}, + /* 4, 4 -> */ {4, 4}, /* no alternatives */ + /* 5, 4 -> */ {5, 6}, + /* 6, 4 -> */ {12, 1}, + /* 7, 4 -> */ {6, 9}, + /* 8, 4 -> */ {6, 6}, + /* 9, 4 -> */ {9, 0}, + /* 10, 4 -> */ {5, 9}, + /* 11, 4 -> */ {-1,-1}, /* does not exist */ + /* 12, 4 -> */ {-1,-1}, /* does not exist */ + /* 0, 5 -> */ {0, 5}, /* no alternatives */ + /* 1, 5 -> */ {1, 5}, /* no alternatives */ + /* 2, 5 -> */ {5, 0}, + /* 3, 5 -> */ {3, 5}, /* no alternatives */ + /* 4, 5 -> */ {8, 8}, + /* 5, 5 -> */ {5, 5}, /* no alternatives */ + /* 6, 5 -> */ {6, 5}, /* no alternatives */ + /* 7, 5 -> */ {7, 5}, /* no alternatives */ + /* 8, 5 -> */ {11, 0}, + /* 9, 5 -> */ {8, 0}, + /* 10, 5 -> */ {7, 6}, + /* 11, 5 -> */ {-1,-1}, /* does not exist */ + /* 12, 5 -> */ {-1,-1}, /* does not exist */ + /* 0, 6 -> */ {0, 6}, /* no alternatives */ + /* 1, 6 -> */ {1, 6}, /* no alternatives */ + /* 2, 6 -> */ {2, 6}, /* no alternatives */ + /* 3, 6 -> */ {3, 6}, /* no alternatives */ + /* 4, 6 -> */ {11, 1}, + /* 5, 6 -> */ {5, 4}, + /* 6, 6 -> */ {7, 0}, + /* 7, 6 -> */ {10, 5}, + /* 8, 6 -> */ {5, 2}, + /* 9, 6 -> */ {9, 6}, /* no alternatives */ + /* 10, 6 -> */ {10, 6}, /* no alternatives */ + /* 11, 6 -> */ {-1,-1}, /* does not exist */ + /* 12, 6 -> */ {-1,-1}, /* does not exist */ + /* 0, 7 -> */ {0, 7}, /* no alternatives */ + /* 1, 7 -> */ {1, 7}, /* no alternatives */ + /* 2, 7 -> */ {2, 7}, /* no alternatives */ + /* 3, 7 -> */ {3, 7}, /* no alternatives */ + /* 4, 7 -> */ {7, 1}, + /* 5, 7 -> */ {10, 2}, + /* 6, 7 -> */ {7, 2}, + /* 7, 7 -> */ {7, 7}, /* no alternatives */ + /* 8, 7 -> */ {4, 10}, + /* 9, 7 -> */ {9, 7}, /* no alternatives */ + /* 10, 7 -> */ {10, 7}, /* no alternatives */ + /* 11, 7 -> */ {-1,-1}, /* does not exist */ + /* 12, 7 -> */ {-1,-1}, /* does not exist */ + /* 0, 8 -> */ {0, 8}, /* no alternatives */ + /* 1, 8 -> */ {1, 8}, /* no alternatives */ + /* 2, 8 -> */ {2, 8}, /* no alternatives */ + /* 3, 8 -> */ {3, 8}, /* no alternatives */ + /* 4, 8 -> */ {8, 5}, + /* 5, 8 -> */ {5, 3}, + /* 6, 8 -> */ {8, 3}, + /* 7, 8 -> */ {7, 8}, /* no alternatives */ + /* 8, 8 -> */ {4, 5}, + /* 9, 8 -> */ {9, 8}, /* no alternatives */ + /* 10, 8 -> */ {10, 8}, /* no alternatives */ + /* 11, 8 -> */ {-1,-1}, /* does not exist */ + /* 12, 8 -> */ {-1,-1}, /* does not exist */ + /* 0, 9 -> */ {0, 9}, /* no alternatives */ + /* 1, 9 -> */ {1, 9}, /* no alternatives */ + /* 2, 9 -> */ {2, 9}, /* no alternatives */ + /* 3, 9 -> */ {3, 9}, /* no alternatives */ + /* 4, 9 -> */ {7, 3}, + /* 5, 9 -> */ {10, 4}, + /* 6, 9 -> */ {10, 1}, + /* 7, 9 -> */ {10, 10}, + /* 8, 9 -> */ {10, 3}, + /* 9, 9 -> */ {9, 9}, /* no alternatives */ + /* 10, 9 -> */ {10, 9}, /* no alternatives */ + /* 11, 9 -> */ {-1,-1}, /* does not exist */ + /* 12, 9 -> */ {-1,-1}, /* does not exist */ + /* 0, 10 -> */ {0, 10}, /* no alternatives */ + /* 1, 10 -> */ {1, 10}, /* no alternatives */ + /* 2, 10 -> */ {4, 1}, + /* 3, 10 -> */ {3, 10}, /* no alternatives */ + /* 4, 10 -> */ {8, 7}, + /* 5, 10 -> */ {5, 10}, /* no alternatives */ + /* 6, 10 -> */ {6, 10}, /* no alternatives */ + /* 7, 10 -> */ {7, 10}, /* no alternatives */ + /* 8, 10 -> */ {4, 7}, + /* 9, 10 -> */ {9, 1}, + /* 10, 10 -> */ {7, 9}, + /* 11, 10 -> */ {-1,-1}, /* does not exist */ + /* 12, 10 -> */ {-1,-1}, /* does not exist */ +}; +static const MetamapEntry metamap_F[] = { + /* 0, 0 -> */ {0, 0}, /* no alternatives */ + /* 1, 0 -> */ {1, 0}, /* no alternatives */ + /* 2, 0 -> */ {2, 0}, /* no alternatives */ + /* 3, 0 -> */ {3, 0}, /* no alternatives */ + /* 4, 0 -> */ {3, 3}, + /* 5, 0 -> */ {2, 4}, + /* 6, 0 -> */ {2, 2}, + /* 7, 0 -> */ {8, 3}, + /* 8, 0 -> */ {9, 4}, + /* 9, 0 -> */ {9, 3}, + /* 10, 0 -> */ {4, 9}, + /* 11, 0 -> */ {4, 8}, + /* 12, 0 -> */ {6, 2}, + /* 0, 1 -> */ {0, 1}, /* no alternatives */ + /* 1, 1 -> */ {1, 1}, /* no alternatives */ + /* 2, 1 -> */ {2, 1}, /* no alternatives */ + /* 3, 1 -> */ {3, 1}, /* no alternatives */ + /* 4, 1 -> */ {2, 10}, + /* 5, 1 -> */ {2, 6}, + /* 6, 1 -> */ {2, 3}, + /* 7, 1 -> */ {8, 10}, + /* 8, 1 -> */ {9, 6}, + /* 9, 1 -> */ {9, 10}, + /* 10, 1 -> */ {7, 3}, + /* 11, 1 -> */ {8, 6}, + /* 12, 1 -> */ {6, 3}, + /* 0, 2 -> */ {0, 2}, /* no alternatives */ + /* 1, 2 -> */ {1, 2}, /* no alternatives */ + /* 2, 2 -> */ {6, 0}, + /* 3, 2 -> */ {3, 2}, /* no alternatives */ + /* 4, 2 -> */ {4, 2}, /* no alternatives */ + /* 5, 2 -> */ {5, 8}, + /* 6, 2 -> */ {12, 0}, + /* 7, 2 -> */ {10, 0}, + /* 8, 2 -> */ {6, 8}, + /* 9, 2 -> */ {9, 2}, /* no alternatives */ + /* 10, 2 -> */ {8, 9}, + /* 11, 2 -> */ {-1,-1}, /* does not exist */ + /* 12, 2 -> */ {-1,-1}, /* does not exist */ + /* 0, 3 -> */ {0, 3}, /* no alternatives */ + /* 1, 3 -> */ {1, 3}, /* no alternatives */ + /* 2, 3 -> */ {6, 1}, + /* 3, 3 -> */ {4, 0}, + /* 4, 3 -> */ {4, 3}, /* no alternatives */ + /* 5, 3 -> */ {5, 5}, + /* 6, 3 -> */ {12, 1}, + /* 7, 3 -> */ {6, 9}, + /* 8, 3 -> */ {6, 5}, + /* 9, 3 -> */ {9, 0}, + /* 10, 3 -> */ {5, 9}, + /* 11, 3 -> */ {-1,-1}, /* does not exist */ + /* 12, 3 -> */ {-1,-1}, /* does not exist */ + /* 0, 4 -> */ {0, 4}, /* no alternatives */ + /* 1, 4 -> */ {1, 4}, /* no alternatives */ + /* 2, 4 -> */ {5, 0}, + /* 3, 4 -> */ {3, 4}, /* no alternatives */ + /* 4, 4 -> */ {8, 8}, + /* 5, 4 -> */ {5, 4}, /* no alternatives */ + /* 6, 4 -> */ {6, 4}, /* no alternatives */ + /* 7, 4 -> */ {7, 4}, /* no alternatives */ + /* 8, 4 -> */ {11, 0}, + /* 9, 4 -> */ {8, 0}, + /* 10, 4 -> */ {7, 5}, + /* 11, 4 -> */ {-1,-1}, /* does not exist */ + /* 12, 4 -> */ {-1,-1}, /* does not exist */ + /* 0, 5 -> */ {0, 5}, /* no alternatives */ + /* 1, 5 -> */ {1, 5}, /* no alternatives */ + /* 2, 5 -> */ {2, 5}, /* no alternatives */ + /* 3, 5 -> */ {3, 5}, /* no alternatives */ + /* 4, 5 -> */ {11, 1}, + /* 5, 5 -> */ {5, 3}, + /* 6, 5 -> */ {7, 0}, + /* 7, 5 -> */ {10, 4}, + /* 8, 5 -> */ {4, 6}, + /* 9, 5 -> */ {9, 5}, /* no alternatives */ + /* 10, 5 -> */ {10, 5}, /* no alternatives */ + /* 11, 5 -> */ {-1,-1}, /* does not exist */ + /* 12, 5 -> */ {-1,-1}, /* does not exist */ + /* 0, 6 -> */ {0, 6}, /* no alternatives */ + /* 1, 6 -> */ {1, 6}, /* no alternatives */ + /* 2, 6 -> */ {5, 1}, + /* 3, 6 -> */ {3, 6}, /* no alternatives */ + /* 4, 6 -> */ {8, 5}, + /* 5, 6 -> */ {5, 6}, /* no alternatives */ + /* 6, 6 -> */ {6, 6}, /* no alternatives */ + /* 7, 6 -> */ {7, 6}, /* no alternatives */ + /* 8, 6 -> */ {4, 5}, + /* 9, 6 -> */ {8, 1}, + /* 10, 6 -> */ {7, 7}, + /* 11, 6 -> */ {-1,-1}, /* does not exist */ + /* 12, 6 -> */ {-1,-1}, /* does not exist */ + /* 0, 7 -> */ {0, 7}, /* no alternatives */ + /* 1, 7 -> */ {1, 7}, /* no alternatives */ + /* 2, 7 -> */ {2, 7}, /* no alternatives */ + /* 3, 7 -> */ {3, 7}, /* no alternatives */ + /* 4, 7 -> */ {4, 7}, /* no alternatives */ + /* 5, 7 -> */ {4, 10}, + /* 6, 7 -> */ {7, 1}, + /* 7, 7 -> */ {10, 6}, + /* 8, 7 -> */ {8, 7}, /* no alternatives */ + /* 9, 7 -> */ {9, 7}, /* no alternatives */ + /* 10, 7 -> */ {10, 7}, /* no alternatives */ + /* 11, 7 -> */ {-1,-1}, /* does not exist */ + /* 12, 7 -> */ {-1,-1}, /* does not exist */ + /* 0, 8 -> */ {0, 8}, /* no alternatives */ + /* 1, 8 -> */ {1, 8}, /* no alternatives */ + /* 2, 8 -> */ {2, 8}, /* no alternatives */ + /* 3, 8 -> */ {3, 8}, /* no alternatives */ + /* 4, 8 -> */ {8, 4}, + /* 5, 8 -> */ {5, 2}, + /* 6, 8 -> */ {8, 2}, + /* 7, 8 -> */ {7, 8}, /* no alternatives */ + /* 8, 8 -> */ {4, 4}, + /* 9, 8 -> */ {9, 8}, /* no alternatives */ + /* 10, 8 -> */ {10, 8}, /* no alternatives */ + /* 11, 8 -> */ {-1,-1}, /* does not exist */ + /* 12, 8 -> */ {-1,-1}, /* does not exist */ + /* 0, 9 -> */ {0, 9}, /* no alternatives */ + /* 1, 9 -> */ {1, 9}, /* no alternatives */ + /* 2, 9 -> */ {2, 9}, /* no alternatives */ + /* 3, 9 -> */ {3, 9}, /* no alternatives */ + /* 4, 9 -> */ {7, 2}, + /* 5, 9 -> */ {10, 3}, + /* 6, 9 -> */ {10, 1}, + /* 7, 9 -> */ {10, 10}, + /* 8, 9 -> */ {10, 2}, + /* 9, 9 -> */ {9, 9}, /* no alternatives */ + /* 10, 9 -> */ {10, 9}, /* no alternatives */ + /* 11, 9 -> */ {-1,-1}, /* does not exist */ + /* 12, 9 -> */ {-1,-1}, /* does not exist */ + /* 0, 10 -> */ {0, 10}, /* no alternatives */ + /* 1, 10 -> */ {1, 10}, /* no alternatives */ + /* 2, 10 -> */ {4, 1}, + /* 3, 10 -> */ {3, 10}, /* no alternatives */ + /* 4, 10 -> */ {5, 7}, + /* 5, 10 -> */ {5, 10}, /* no alternatives */ + /* 6, 10 -> */ {6, 10}, /* no alternatives */ + /* 7, 10 -> */ {7, 10}, /* no alternatives */ + /* 8, 10 -> */ {6, 7}, + /* 9, 10 -> */ {9, 1}, + /* 10, 10 -> */ {7, 9}, + /* 11, 10 -> */ {-1,-1}, /* does not exist */ + /* 12, 10 -> */ {-1,-1}, /* does not exist */ +}; +static const MetamapEntry *const metamap[] = { + metamap_H, + metamap_T, + metamap_P, + metamap_F, +}; |