summaryrefslogtreecommitdiff
path: root/fonts/chess/chess
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/chess/chess
Initial commit
Diffstat (limited to 'fonts/chess/chess')
-rw-r--r--fonts/chess/chess/changes12115
-rw-r--r--fonts/chess/chess/copyright20
-rw-r--r--fonts/chess/chess/doc/board.epsf692
-rw-r--r--fonts/chess/chess/doc/boards.ltx41
-rw-r--r--fonts/chess/chess/doc/dutch-tt.ltx99
-rw-r--r--fonts/chess/chess/doc/dutch-tt.tex88
-rw-r--r--fonts/chess/chess/doc/kasparov.ltx128
-rw-r--r--fonts/chess/chess/doc/schaakmaatje.ltx477
-rw-r--r--fonts/chess/chess/doc/symbols.ltx57
-rw-r--r--fonts/chess/chess/doc/symbols.tex51
-rw-r--r--fonts/chess/chess/doc/tal.ltx244
-rw-r--r--fonts/chess/chess/doc/tal.tex247
-rw-r--r--fonts/chess/chess/doc/tugboat.ltx630
-rw-r--r--fonts/chess/chess/doc/tuggame.ltx108
-rw-r--r--fonts/chess/chess/fonts/chess10.tfmbin0 -> 512 bytes
-rw-r--r--fonts/chess/chess/fonts/chess20.tfmbin0 -> 512 bytes
-rw-r--r--fonts/chess/chess/fonts/chess30.tfmbin0 -> 512 bytes
-rw-r--r--fonts/chess/chess/fonts/chessf10.tfmbin0 -> 512 bytes
-rw-r--r--fonts/chess/chess/fonts/chessfig10.tfmbin0 -> 249 bytes
-rw-r--r--fonts/chess/chess/inputs/2side.tex43
-rw-r--r--fonts/chess/chess/inputs/babel.sty229
-rw-r--r--fonts/chess/chess/inputs/babel.switch80
-rw-r--r--fonts/chess/chess/inputs/babel22.switch88
-rw-r--r--fonts/chess/chess/inputs/babel32.switch87
-rw-r--r--fonts/chess/chess/inputs/chess.sty576
-rw-r--r--fonts/chess/chess/inputs/dutch.sty159
-rw-r--r--fonts/chess/chess/inputs/english.sty116
-rw-r--r--fonts/chess/chess/inputs/french.sty99
-rw-r--r--fonts/chess/chess/inputs/latexhax.sty58
-rw-r--r--fonts/chess/chess/installation249
-rw-r--r--fonts/chess/chess/makefile124
-rw-r--r--fonts/chess/chess/mf/README15
-rw-r--r--fonts/chess/chess/mf/chess10.mf21
-rw-r--r--fonts/chess/chess/mf/chess20.mf21
-rw-r--r--fonts/chess/chess/mf/chess30.mf21
-rw-r--r--fonts/chess/chess/mf/chessbase.mf285
-rw-r--r--fonts/chess/chess/mf/chessdiag.Xmf74
-rw-r--r--fonts/chess/chess/mf/chessdiag.mf56
-rw-r--r--fonts/chess/chess/mf/chessf10.mf33
-rw-r--r--fonts/chess/chess/mf/chesspieces.mf197
-rw-r--r--fonts/chess/chess/mf/empty.mf11
-rw-r--r--fonts/chess/chess/readme99
42 files changed, 5738 insertions, 0 deletions
diff --git a/fonts/chess/chess/changes12 b/fonts/chess/chess/changes12
new file mode 100644
index 0000000000..de8b90126a
--- /dev/null
+++ b/fonts/chess/chess/changes12
@@ -0,0 +1,115 @@
+
+ Changes from version 1.1 to 1.2
+ -------------------------------
+
+1) Improved interface to plain TeX
+
+ It is now possible to `\input chess.sty' in plain TeX without having
+ to specify the category code for the `@'.
+
+2) Language support using the babel package from Johannes Braams
+
+ Babel offers facilities to dynamically change from language within one
+ document. The default language is english unless you specify
+ explicitly another language in your documentstyle, ex.:
+ (LaTeX:)
+ \documentstyle[....,english,dutch,chess]{article}
+ (plain TeX equivalent:)
+ \input english.sty
+ \input dutch.sty
+ \input chess.sty
+
+ The default language is dutch because it is the last defined document-
+ style. When chess.sty is processed dutch is defined as the current
+ language. So the chess macros use the dutch letters for chess pieces
+ (K=Koning, D=Dame, T=toren, L=loper, P=paard and I=pIon). Currently
+ four languages are built into chess.sty: english (default), german,
+ french and dutch but you can easily add another language by searching
+ the string FOREIGN in chess.sty and following the instructions in the
+ comments near that string. To work nicely with the babel system one
+ also should have a FOREIGN.sty language style (see babel documentation).
+ Here follow the letters for the chess pieces for the above mentioned
+ languages:
+
+ english german french dutch
+ ----------------------------------
+ Pawn Bauer Pion pIon
+ kNight Springer Cavalier Paard
+ Bishop L\"aufer Fou Loper
+ Rook T\"urm Tour Toren
+ Queen Dame Dame Dame
+ King K\"onig Roi Koning
+
+ It is not possible to change dynamically to another chess language. I
+ leave this as an exercise to the reader :-). For a complete example of
+ the usage of a language you can look at SchaakMaatje.ltx (dutch).
+
+3) \begin{nochess} ... \end{nochess}
+
+ In my previous versions I have introduced a chess-environment that
+ activated the `|' character. I needed this environment because LaTeX
+ uses the `|' character in the tabular environment in SchaakMaatje.ltx.
+ In stead of annoying everybody with this environment (you only need
+ it for very rare occasions) I provide now an nochess-environment
+ which does the opposite: protects the `|' character from being
+ activated by the chess macros. Within the nochess-environment you
+ can reactivate the `|' again with the chess-environment.
+ The chess-environment can also be used as an alternative for the
+ |....| pair.
+
+ IMPORTANT:
+ - remove \begin{chess} ... \end{chess} from your LaTeX-documents
+ using chess.sty version 1.0 or 1.1 (in plain TeX \chess ...
+ \endchess)
+ - add \begin{nochess} ... \end{nochess} if you need to make the
+ `|' characters inactive (in plain TeX: \nochess ... \endnochess)
+
+4) Some files renamed to serve MSDOS users.
+
+ We all suffer from the limitations created by MSDOS. The chess macros
+ used chessfig10 as the fontname for the figurine font. This name is
+ changed to chessf10. There are a lot more filenames that don't fit in
+ the 8+3 name space. Most of them does not give serious problems so I
+ have not made them MSDOS friendly (would be UNIX, VAX-VMS and AmigaDOS
+ unfriendly!). The chess macros can be used with emTeX.
+
+5) Handling of promotion improved
+ * Black promotion problem solved (plain TeX)
+ * comment allowed also with promotion
+ * if no promotion piece is provided a default Q(ueen) is supposed
+
+ The syntax of the argument for \ply and \move has been changed with
+ respect to promotion:
+ \ply [a-h][1-8][a-h][1-8]{{Q|R|B|N}comment}
+
+ (letters: Q (queen), R (rook), B (bishop) and N (knight) depend on
+ the chess language)
+
+ A promotion piece may be ommited (in that case a queen is supposed)
+ and comment is now also handled correctly.
+
+6) Small changes
+ - change {--} into \hbox{--} to prevent hyphenation within move
+ - \move's lined up on last row (or digit in case of castling)
+ - `en passant capture' bug solved
+
+7) Added a scanned EPSF picture (doc/board.epsf) of original font.
+
+8) Fixed Fisher's typo in example game Fisher-Tal (see comments in
+ doc/tal.tex and doc/tal.ltx).
+
+9) Added Informator symbols (see doc/Symbos.tex and doc/Symbols.ltx)
+ and a LaTeX example how to use them (see doc/Kasparov.ltx).
+
+10) Added updated version of TUGboat article.
+
+I would like to thank Jan Jaap Spreij (puls@cs.rug.nl) for reporting
+points 1, 3, 5 and 6 and for his contributions to chess.sty; John Saba
+(saba@cccit.arizona.edu) and Henry Thomas (hthomas@irisa.fr) for their
+help in improving the Informator symbols and Alex Lopez-Ortiz
+(alopez-o@maytag.uwaterloo.ca) for his help in finding the `Fisher
+typo'.
+
+Geldrop, Feb. 1992
+Piet Tutelaers
+internet: rcpt@urc.tue.nl
diff --git a/fonts/chess/chess/copyright b/fonts/chess/chess/copyright
new file mode 100644
index 0000000000..5695ddbcc5
--- /dev/null
+++ b/fonts/chess/chess/copyright
@@ -0,0 +1,20 @@
+These METAFONT programs and other files are freely distributable in the
+spirit of TeX. If you do so then PLEASE complete. Suggestions and
+improvements to one of the addresses below.
+
+Version: 1.2
+Date : Febr. 1992
+
+Author : Piet Tutelaers
+
+Address: Lambertushof 52 | Technische Universiteit Eindhoven
+ 5667 SG Geldrop | Rekencentrum RC 1.90
+ The Netherlands | 5612 AZ Eindhoven
+ | The Netherlands
+ |
+ (private address) | (at work)
+ |
+internet: | rcpt@urc.tue.nl
+----------------------------|---------------------------------------
+equipment: Amiga 1000 | UNIX with NCD terminal
+ AmigaTeX3.14 | UNIX TeX3.0
diff --git a/fonts/chess/chess/doc/board.epsf b/fonts/chess/chess/doc/board.epsf
new file mode 100644
index 0000000000..4ab58d1270
--- /dev/null
+++ b/fonts/chess/chess/doc/board.epsf
@@ -0,0 +1,692 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%BoundingBox:18 18 378 382
+%%EndComments
+/ld {load def} bind def
+/s /stroke ld /f /fill ld /m /moveto ld /l /lineto ld /c /curveto ld /rgb {255 div 3 1 roll 255 div 3 1 roll 255 div 3 1 roll setrgbcolor} def
+18 18 translate
+360.0000 363.7278 scale
+/picstr 85 string def
+680 683 1 [680 0 0 -683 0 683] {currentfile picstr readhexstring pop} image
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFDFE40000000000000000000000007FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF38003040000000000000000000000000000000000000000000000000000000000000000000007FFFFFFFFF
+FFFFFFFFE0E7FFFFFFFFE54DBF93F300E3A700000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFFFFFFFF
+FFFFFFFFC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFFFFFFFF
+FFFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFAE46FFFFF00007000004000000007FFFFFFFFF
+FFFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000F7FFFFFFFFFFFFFFFFFC3E1C081E3838003879FFFFFFFFFFFFFFFFFFFFCF9F9F9E1E3E787C607FFFFFFFFF
+FFFFFFFFC00000000800000000000000000000000000000C1FFDFFFFFFFFFFFFFC7879F0F1F3E1E1E7E3FFFFFFFFFFFFFFFFFFFC7E7C7CFE7879F8F0F3FFFFFFFFFFFFFFFFFFFF1F3F3E3E7C78F1F8E07FFFFFFFFF
+FFFFFFFFC1FFFFFFFFFFFFFFFFFDF1C1E3E3C3CF8F079F3FFFFFFFFFFFFFFFFFFCF3F3F1E3E7E3C7CFC7FFFFFFFFFFFFFFFFFFFCF878F9F8F0F3F1E1E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CF8F1F3F1E07FFFFFFFFF
+FFFFFFFFC1FFFFFFFFFFFFFFFFFFE3C3E7E7879F9F0F1F3FFFFFFFFFFFFFFFFFFDF3F3E3E7C787CFCF87FFFFFFFFFFFFFFFFFFF9F8F9F1F183E3E1E3E7FFFFFFFFFFFFFFFFFFFC7CFC7878F9F1E3E1E07FFFFFFFFF
+FFFFFFFF83FFFFFFFFFFFFFFFFFFC787CFCF0F1F3E3E3E7FFFFFFFFFFFFFFFFFFFE7E78FCF8F0F9F9F1FFFFFFFFFF1FFFFFFFFF3F3F3E3E203E7C7CFCFFFFFF7FFFFFFFFFFFFF8F9F8F1F1F3E7C7C7C07FFFFFFFFF
+FFFFFFFF83FFFFFFFFFFFFFFFFFFCF1F9F9E3E7E7CFC7CFFFFFFFFFF07FFFFFFFFCFCF1F9F901F3F3C3EFFFFFFFFF1FFFFFFFFF7C7E7CF8E01CF1F9F9FFFFFE1FF87FFFFFFFFF9F3E3F3E7C7CF8F0F807FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E7F3E3E7CF8F9F8F9FFFFFFFFFE01FFFFFFFF9F9E7F3F207E7E78FCFFFFFFFFF1FFFFFFFFFF9FCF9F1C001E3F3F3C7FFFE0FF07FFFFFFFFFBE7C7C7CF8F9F1E3F307FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7E3C3CFCF0F3F9F1FFFFFFFFFC01FFFFFFFF3E3E7E3E403E78F9FCFFFFFFFFF0FFFFFFFFFFBF9F9E3C003E7F3E7CFFFFE03F07FFFFFFFFFFE78FCFCF0F3F3E3E307FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFC7CF8787919E1E7E3E3FFFFFFFFFC01FFFFFFFE7C7CF078C01CE0F3F9FFFFFFFF801FFFFFFFFF3F3E3E78007CFE7CF9FFFFF01E07FFFFFFFFFFCF1F9F9E3E3E7CFC707FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F0E0F203C7CFC7CFFFFFFFFFFC00FFFFFFFCF8F9C031C001C067E3FFFFFFFF801FFFFFFFFEFE7C7CF800F9FCF1F3FFFFF00E03FFFFFFFFFF1E3F3E3C7C78F9F8F07FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3C3E06007CF9F8F1FFFFFFFFFFC01FFFFFFFDF3F38007C003800FC7FFFFFFFFF1FFFFFFFFFCF8F8F9F001F3F1E3E7FFFFF00003FFFFFFFFFE3CFC3C78F8E003F1E07FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE3C7E004079F9F3F3F7FFFFFFFFC01FFFFFFFDF3E78007C007800F8FFFFFFFFFF1FFFFFFFFF9F8F1F3F003E3E3E7C7FFFFF00003FFFFFFFFFC7CF0086001E007E3C07FFFFFFFFF
+FFFFFFFFC3FFF801F800FC00FFFFC78FC008073F3C3E7E7FFFFFFFFC01FFFFFFFFC7C7800F807F001E1FFFFFFFFFF1FFFFFFFFF3E3E3E7C307C7C7CFCFFFFFF00001FFFFFFFFF9F9C001E003C007C7C07FFFFFFFFF
+FFFFFFFFC3FFF001F800FC00FFFF9F3F8000027C78FCFCFFFFFFFFFE03FFFFFFFF8F8F001F20FF003C06FFFFFFFFF1FFFFFFFFF7C7C7CF8F078F1F9F1E7FFFF800000FFFFFFFFBF3C003C007800F0F807FFFFFFFFF
+FFFFFFFFC3FFF001F800FC00FFFE1E7F30000070F1F9F1FFFFFFFFFF03FFFFFFFF8C0E003E31FE407800FFFFFFFFF1FFFFFFFFFF9F8F9F18001E3F3F7CFFFFF007FC00FFFFFFFFE78007C007000E3F307FFFFFFFFF
+FFFFFFFFC3FFF001F8007C00FFFE3C7E30000030F3F9E1FFFFFFFFFF01FFFFFFFF0C0C403C71FC407000FFFFFFFFF0FFFFFFFFFF3F9F9E30003C7E7E7CFFFFF00FFFC03FFFFFFFCF80078002000C3E707FFFFFFFFF
+FFFFFFFFC3FFF000F0003000FFFCF8F870000001E7E3C3FFFFFFFFFC007FFFFFFE6800F078E0F8E0E000FFFFFFFFF07FFFFFFFFE7F3E3C000038FCFCF9FFFFE00000F81FFFFFFF8F000000000008FC707FFFFFFFFF
+FFFFFFFFC3FFF00000000000FFFDF1F0F00002000FC78FFFFFFFFFF0001FFFFFFCF801FC71E0E3E1C000FFFFFFFFC01FFFFFFFFCFC7C78000011F9F1F3FFFFC000000F07FFFFFE3E000000000001F9F07FFFFFFFFF
+FFFFFFFFC3FFF00000000000FFFFF3C3E001F1F01F1F1F7FFFFFFFE0000FFFFFFDF003C407C083C18800FFFFFFFF801FFFFFFFF9F8F9F0000003E1E3E7FFFF80000001C3FFFFFC3C400000000003F3E07FFFFFFFFF
+FFFFFFFFC3FFF00000000000FFFFE7C7C00000FC1E3F3F7FFFFFFFE00007FFFFFDE0038007C007818800FFFFFFFF8F8FFFFFFFF9F0F3F0000003E3C7CFFFFF80000001E3FFFFFC7CC00000000007C3C07FFFFFFFFF
+FFFFFFFFC3FFF00000000000FFFFCF8F8000001F0C3E7E7FFFFFFF000001FFFFFFC007880F801F013C01FFFFFFFF18CFFFFFFFF3C3E7E00000038F8F9FFFFF8080000039FFFFF9F9C000000007CFC7807FFFFFFFFF
+FFFFFFFFC3FFF0FFFFFFFFF8FFFF1F3F00000003C0FCFCFFFFFFFE0000007FFFFF880F181F003E007E03FFFFFFFF304FF00FFFFF87CFC00000001F9F3EFFFF0FC000001CFFFFFBF3C7FFFFFFFFCF0F107FFFFFFFFF
+FFFFFFFFC3FFF09FFFFFFFF1FFFE3E7E00000000E1F9E1FFFFFFF80000003FFFFF1E0C781C407C00F806FFFC007F206F8001FFFF9F9F800060003F3E7CFFFF1F0000000E3FFFFFC783FFFFB4E01C3E307FFFFFFFFF
+FFFFFFFFC3FFF80007F2A003FFFE3C7C00000000E1F1E3FFFFFFF80000003FFFFF3F847808407C00F00FFFFC001F206F00007FFF3F9F000060007E7E79FFFF1F000000063FFFFFCF80000000003C3E707FFFFFFFFF
+FFFFFFFFC3FFFE0000000007FFFCF8F80780000030C3C7FFFFFFF00070001FFFFE7980F000C03001E019FFF00803206C1FF03FFE7F3C000060003CF8F9FFFE3E000000031FFFFF9F380000000078FCF07FFFFFFFFF
+FFFFFFFFC3FFFF800000000FFFFDF1E00F80000018079FFFFFFFE00070000FFFFCF081F003C00301C017FFE1FFC02048F83E1FFCFC784000600011F1E3FFFC38000000038FFFFE3E7F00000020F1F9E07FFFFFFFFF
+FFFFFFFFC3FFFFE0FFFFF83FFFFFE3C21F8000001C1F3F7FFFFFE00070000FFFFDE3C1C007C00301882FFFC700F83041E0079FF9F8F1C007FF0003E7E7FFFC00000000018FFFFC7CF9C7FFFFE3E3E3E07FFFFFFFFF
+FFFFFFFFC3FFFFE3FFFFFCFFFFFFE7861F0000000C1E3E7FFFFFC00070000FFFFFE7C18007800F01983FFFC60078304380039FF9F1F3C007FF0003CFCFFFFC0000000001CFFFFC78F8E7FFFFE7E7C3C07FFFFFFFFF
+FFFFFFFFC3FFFFF9FFFFFCFFFFFFCF1C1C000000061C7CFFFFFFC000FF0007FFFFCFC00807001E00303FFF8C0006304700038FF3C7E78007FF000F9F9FFFF80000000000E7FFF9F1F1E0000007CF87807FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFF1E38000000000708F8FFFFFFC003FF0007FFFF9F803802001E00703CFF980003F0CE0001CFFF87CF800060000F3F3E7FF80000000000E7FFFBE3C7C00000079E1F107FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFE3C78000000000381E1FFFFFFC003F80007FFFF3E007800001C00E039FF980001F8F80000CFFF1F9F800060001E3E7CFFE0000000000073FFFFC787C00000073E3E387FFFFFFFFF
+FFFFE1FFC3FFFFF8000000FFFFFC3CF0000000000381E3FFFFFFC000780007FFFF3C007800001800E039FF980000F8F80000CFFF3F1F000060001E7E79FFE0000000000033FFFFCF0F800000063C7E787FFFFFFFFF
+FFFF80FFC3FFFFF8000000FFFFFCF9F00000000001C3C7FFFFFFC000380007FFFE78407000000000C063FF98000078F00000CFFE7E3C000060001CF8F3FFC0000000000033FFFF9F3F0000000079FCF07FFFFFFFFF
+FFFF007FC3FFFFF8000000FFFFFFF3C00000000001C39FFFFFFFC00038000FFFFCF1E00000000001C047FF9800003DE000009FFCFC784000600011E1E7FF80000000000013FFFE3E7E20000000F3F9E07FFFFFFFFF
+FFFF187FC3FFFFF8000000FFFFFFE7C00000000000E33F7FFFFFC00038000FFFFDE3E00000000000800FFF9800003FC000019FF9F8F1C000000003C7CFFF80000000000019FFFC7CF860000001E7E3C07FFFFFFFFF
+FFFF187FC3FFFFF8000000FFFFFFCF800000000000607E7FFFFFC00000000FFFFFC7C0000000000000BFFF9800001FC000039FF3C3E3E0000000278F9FFF00000000000019FFF9F9F0E0000007CFC7807FFFFFFFFF
+FFFF007FC3FFFFF8000000FFFFFF8F000000000000707CFFFFFFE00000000FFFFFCF80000000000000BEFFC800001F8000039FF3C7E7E00000006F9F9FFF00000000000019FFF9F1E1E00000078F87807FFFFFFFFF
+FFFF80FFC3FFFFF8000000FFFFFF1E00000000000030F1FFFFFFE00000001FFFFF9F00000000000000FCFFCC00000F8000073FFF8FCF90000000FF3F3C7F00000018000009FFFBE3C7E00000071E1F107FFFFFFFFF
+FFFF80FFC3FFFFF8000000FFFFFE3C00000000000039E3FFFFFFE00000001FFFFF3C20000000000001F9FFE400000F80001C3FFF3F9F10000000FE7E79FE180000F8000009FFFFC78F800000063C3E787FFFFFFFFF
+FFFF1C7FC3FFFFF8000000FFFFFCF800000000000039C7FFFFFFF00000003FFFFE7870000000000001F3FFE200000F80001C7FFE7F3C383FFFE1FCF0F1FE3C0003F000000DFFFF1F3F0000000478FCF07FFFFFFFFF
+FFFF1C7FC3FFFFF8000000FFFFFDF8000000300000398FFFFFFFF80000003FFFFC78F0000000000001E3FFF30000078000387FFC7E7C7CFFFFF1F8F1F3FE7C0007F000000DFFFE1E3F00000000F9F8F07FFFFFFFFF
+FFFF1C7FC3FFFFF8000000FFFFFFF0000000800000181F7FFFFFF801FFE0FFFFFCF3E000000000000187FFF1800007800021FFFCF8F8F4E00033E1E3E7FE70001FE000000CFFFE3C7C20000001F3F1E07FFFFFFFFF
+FFFF007FC3FFFFF8000000FFFFFFE43800030000001C3E7FFFFFFE1FEF71FFFFFFE7C00000000000001FFFF8400007800063FFF9E1F3F0000003C3CFCFFE0000FFC000000CFFFCF8F860000007E7E3C07FFFFFFFFF
+FFFF80FFC3FFFFF8000000FFFFFFCC78000E0000001C7CFFFFFFFF300001FFFFFFCF800000000000003EFFFC3000078000CFFFF3C7E7C00000010F9F9FFF0001FF8000000CFFF9F1E1E0000007CFC7807FFFFFFFFF
+FFFFC1FFC3FFFFF8000000FFFFFF9C78001C0000000C7CFFFFFFFE000000FFFFFF8F800000000000003EFFFC30000FFFC08FFFF787C7C00000001F9F1E7F0003FF0000000CFFFBF3C3E00000078F0F807FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFE1C70007C0000000CF1FFFFFFFE0000007FFFFF9F18000000000002FCFFFF0803FFFFFF1FFFFF8F8F886FFFE03F3E3CFF8007FF0000000CFFFFE7C7C00000071E3F307FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFC3C0000F80000000CE3FFFFFFFC003E007FFFFF3C3C000000000007F9FFFF803FC000073FFFFF3F1F39FF03F8FE7C79FFC00FFE0000000CFFFFCF9F800000063C7E787FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFDF80003F10000000607FFFFFFF80FFFF83FFFFE78FC001FFFFFC00FE3FFFFC5FC0000003FFFFE7E3C73800008FCF0F3FFE00FFC0000000CFFFF1F3F0000000079FCF87FFFFFFFFF
+FFFFFFFFC3FFFFF8000000FFFFFDF00003E2000000060FFFFFFFF83FFAFC3FFFFCF9F600FFFFFFFE0FC3FFFFE7E00000003FFFFCFC7C70000000F9F1F3FFF81FF80000000CFFFE1E7F000FFFE0F1F8F07FFFFFFFFF
+FFFFFFFFC3FFFFF87FFFF8FFFFFFE20007C4000000061F7FFFFFF8F800001FFFFDF3E31FFC00007F9F87FFFFF3000000003FFFF9F8F9F0000000E1E3E7FFFE3FF00000000CFFFE3CFC07FFFFE0F3F1E07FFFFFFFFF
+FFFFFFFFC3FFFFF1FFFFFC3FFFFFC700078C000000063E7FFFFFF80000001FFFFFE7C70C000000001E1FFFFFF000006E003FFFF3E1F3E0000001C7CFCFFFFFFFF00000000CFFFCF9F80000000047C3C07FFFFFFFFF
+FFFFFFFFC3FFFFE00000001FFFFF8F000F18000000067CFFFFFFF80000003FFFFFCF8F80000000003C3EFFFFF000FFFFFF3FFFF7C7E7CF00000F1F9F9FFFFFFFE00000000CFFF9F3E0000000000F87807FFFFFFFFF
+FFFFFFFFC3FFFF800000000FFFFF1E300E100000000678FFFFFFF8000000FFFFFF9F9E00000000003C7EFFFFF003FFFFFF3FFFFF87CFCFC0003F1F1F3E7FFFFFC00000000EFFFBF3C0000000000F0F187FFFFFFFFF
+FFFFFFFFC3FFFF0000000007FFFE3E671C300000000661FFFFFFFF80000FFFFFFF3E3E000000AC0039FCFFFFF07F8000013FFFFF1F9F9FF800FC3E3E7CFFFFFF800000000EFFFFE7843FFFFFFF9E3F387FFFFFFFFF
+FFFFFFFFC3FFFE1FFFFFFFE3FFFC78F8F8600000000643FFFFFFFFFC007FFFFFFE7C7CC0FFFFFFFE73F1FFFFFBF80000003FFFFF3F3E3C000018FC78F9FFFFFF000000000EFFFFCF187FFFFE001C7C787FFFFFFFFF
+FFFFFFFFC3FFFE1FFFFFFFE3FFFDF9F0F3C0000000060FFFFFFFFFFC003FFFFFFCF8F9E7FC0000FE47E3FFFFFB801FFFFE3FFFFE7E3C000000000070F3FFFFFF000000000CFFFF1E3C0000000011F8F07FFFFFFFFF
+FFFFFFFFC3FFFE0000000003FFFFF1E1E3C0000000061FFFFFFFFFF80003FFFFFCF1F3E38000000647C7FFFFF800FFFFFF3FFFFCFC00000000000001E7FFFFFF000000000EFFFE3E780000000011F9F07FFFFFFFFF
+FFFFFFFFC3FFFE0000000003FFFFE3C7E780000000063F7FFFFFF80000000003FDE3E780000000000F0FFFFFF83FE000033FFFF9F000000000000001C7FFFFFE000000000EFFFC7CF80000000003E3E07FFFFFFFFF
+FFFFFFFFC3FFFE0000000003FFFFCF8FCF80000000067E7FFFFC000000000000FFE7CF8007FFFFC01E3FFFFFF8FC0000003FFFF3C0000000000000008FFFFFFC000000000EFFF9F9F00000000003C7C07FFFFFFFFF
+FFFFFFFFC3FFFE0000000003FFFF9F3F9E00000000067CFFFFC00000000000003FCF9F07FFF7FFFF1C7E7FFFF9C00000007FFFF7C0000000000000001E7FFFFC000000000CFFFBF3C0000000D3000F987FFFFFFFFF
+FFFFFFFFC3FFFC0000000003FFFF1E3F3E000000000679FFFF800000000000003F9F9E0FF800007F087CFFFFF8800000007FFFFF80000000200000003E7FFFFC000000000CFFFBE3807FFFFFFF800F187FFFFFFFFF
+FFFFFFFFC3FFC07FFFFFFFE03FFE3C7E7C000000000663FFFE000000000000003F3E3C0E0000000081F8FFFFFC00000001FFFFFF00000000F00000007CFFFFFC000000000CFFFFC7007FFFFF80003E387FFFFFFFFF
+FFFFFFFFC3FFC07FFFFFFFE03FFC7CF878000000000647FFFC0000000C0000007E7878000000000003F1FFFFFF00000007FFFFFE38000003FC000000F9FFFFFC000000000CFFFFCF0000000000007C787FFFFFFFFF
+FFFFFFFFC3FFC000000000003FFDF9F1F000000000060FFFFE0000007F000000FCF8F1800000000017E3FFFFFFFC0007FFFFFFFC7C07FFFFFFFFFF01F3FFFFFFFFF0000000FFFF1E000000000000F8F07FFFFFFFFF
+FFFFFFFFC3FFC000000000003FFFF3E3E000000000061FFFFE000000FFFFFF00FCF1F380000000003FC7FFFFFFFFFDFFFFFFFFFCFE1FFFFEF3FFFFC1E7FFFFFFFFFFFFE800FFFE3E000000000001F9E07FFFFFFFFF
+FFFFFFFFC3FFC000000000003FFFE7C7C400000000003F7FFF0000EFFFFFFFF9FFE3E7F800000001FF8FFFFFFFFFFFFFFFFFFFF9F37FF3E1E3E7E3FFCFFFFFFFFFFFFFFFFFFFFC7C000000000003E3E07FFFFFFFFF
+FFFFFFFFC3FFC000000000007FFFCF9F8FFFFFD300007EFFFF83FFFFFFFFFFFFFFC7CFBFC00000BFFE3FFFFFFFFFFFFFFFFFFFF3C3E7E787C7CF8F9F9FFFFFFFFFFFFFFFFFFFF9F9FFFFFFFFFFFFC7C07FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F1E3E7C7CF9FDF9FFFFFFFFFFFFFFFFFFFF8F9F19FFFFFFFE3C7E7FFFFFFFFFFFFFFFFFFF87CFCF0F8F9F1F1F3E7FFFFFFFFFFFFFFFFFFBF3FFFFFFCF8F9F0F987FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E7F3E3C7CF0F1F9F1FFFFFFFFFFFFFFFFFFFF9F1E787FFFFFFC78FCFFFFFFFFFFFFFFFFFFFF8F8F8F1F9F1E3F3E3C7FFFFFFFFFFFFFFFFFFFE7C7C7C78F9F1E1F387FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3CFC7C78F9F1E3F3E3FFFFFFFFFFFFFFFFFFFF3C3CFC7879FCF8F9F9FFFFFFFFFFFFFFFFFFFF3F9F1E7F3F3CFE7E7DFFFFFFFFFFFFFFFFFFFFCF8F8F8F1F3E3C3E787FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCF9F8F9F1F3E3C7C7C7FFFFFFFFFFFFFFFFFFFE7879F8F0F1F9F1F3F3FFFFFFFFFFFFFFFFFFFE7F3C3CFE7C79FCF8F3FFFFFFFFFFFFFFFFFFFF8F3F9F1E7E7C78FCF87FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E1F3E3C7CF8F8F9FFFFFFFFFFFFFFFFFFFFCF1F3F1F3E3E3E7E7C7FFFFFFFFFFFFFFFFFFFCFC7879F8F8F3F1F1E3FFFFFFFFFFFFFFFFFFFE3E7F3C3CFCF8F9F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3C3E7E7878F9F0F9F7FFFFFFFFFFFFFFFFFFDF3F3E1E7E7E3CFCFC7FFFFFFFFFFFFFFFFFFF8F8F8F9F8F1F3E1E3E7FFFFFFFFFFFFFFFFFFFE3C7E7C7CF8F1F3F9E07FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7CFCF8F1F3E3F3E7FFFFFFFFFFFFFFFFFFDE7E7C7C7CF8F9F9F1FFFFFFFFFFFFFFFFFFFF9F1F3F3E1E1E7E3C7CFFFFFFFFFFFFFFFFFFFFCFCFCF9F9F9E3E7E3C07FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FDF9F3F7E7CFEFEFFFFFFFFFFFFEFF7F7FFFFEFFFDFFFFFFFFFFFFE7C7EFCF8FBFBE3F7F7FFFFFFFFFFFFFFFFFFBF7E7C7EFCFCFCF9F9FFFFFFFFFFFFFFFFF7C07FFFFFFFFF
+FFFFFFFFC3C7CFCF8F9FCF9FBF9FFFFFFFFFFFFFFFFFFFF3F9E3E7F3E3CFE7E7DFFFFFFFFFFFFFFFFFFFFCF9FCF9F1F3F3C7E7EFFFFFFFFFFFFFFFFFFFFEFCF8FCF9F1F1E0E0F7FFFFFFFFFFFFFFFFE83FFFFFFFFF
+FFFFFFFFC3C78FCF8F9F9F1F3FBFFFFFFFFFFFFFFFFFFFF3F3E3E7E7C7CFC7CF9FFFFFFFFFFFF7FFFFFFFCF1F9F9F3E7E7CFC7CFFFFFFFFFFFFFFFFFFFFCFCF1F9F9E1F1E3C0E7FFFFFFFFFFFFFFFFE03FFFFFFFFF
+FFFFFFFFC38F1F1F3F3F1E3E7E3FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8F9FCF1F3FFFFFFFFFFFF7FFFFFFF1E3F3E3E7CFCF9FCFDFFFFFFFFFFFFFFFFFFFF9F9E7F3F3C7E7E78FC7FFFFFFFFFFFFFFFFF87FFFFFFFFF
+FFFFFFFFC33E3E3E7E7C3CFCF87FFFFFFFFFFFFFFFFFFFCF8F8F9F1F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3C7E7C7CF9F1F3F9E3FFFFFFFFFFFFFFFFFFFF3E3CFE7C78FCF8F9F8FFFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC07C78FCFCF0F9F9E1F3FFFFFFFFFFFFFFFFFFDF1F3F3E3E7E7C3CFCFFFFFFFFFFFFFFFFFFFFC78F8F8F9F3E3E7E3C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F1F9F1F3F1FFFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC07CF8F8F9F1F1F1E3F3FFFFFFFFFFFFFFFFFFFE3E3E7C3E7C787CF8FBFFFFFFFFFFFFFFFFFF8F9F8F1F3F3C7CFC7CFFFFFFFFFFFFFFFFFFFFE78F9F8F1F3F1E1E7E3FFFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC0F9F3F1F3E3F3E7C7E7FFFFFFFFFFFFFFFFFFFC7C7CF8F8F8F1F9F1E3FFFFFFFFFFFFFFFFFF9F3E3E3E7C7CFDF8F9FFFFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3C7CFC7FFFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC3E3E7E3E7CFE7C79F8FFFFFFFFFFFFFFFFFFFF9F8F9F3F1F1E3F3E3C7FFFFFFFFFFFFFFFFFFFE7C7C7CF8F9F3E3F3EFFFFFFFFFFFFFFFFFFFBE7E7C7CFCF8F8F9F0FFFFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC3C7CFC78F9FCF8F3F9FFFFFFFFFFFFFFFFFFFF3F9F3E7F3C3CFE7C79FFFFFFFFFFFFFFFFFFFFCF9F8F9F0E3E7C7E7EFFFFFFFFF83FFFFFFFFFCFCF8F9F8F1F1F3E3F7FFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC3C79FCF8F1F9F1F3F1FFFFFFFFFFFFFFFFFFFE7F3E3CFE3078FC7CF9FFFFFFFFFFFFFFFFFFFFCF3F9F9E067E7CFCFCFFFFFFFFF00FFFFFFFFFCFDF1F9F0E1F3F3C3E7FFFFFFFFFFFFFFFFFC7FFFFFFFFF
+FFFFFFFFC31F3F1F3E1E3E3E7C3FFFFFFFFFF8FFFFFFFFCFE7C78FCC011F9F1F3FFFFFFFFFFFFFFFFFFFF1E7F3E3C00F8F9F9F1FFFFFFFFE007FFFFFFFF9FBE7F3C007E7E78FCFFFFFFFF81FFFFFFFFC7FFFFFFFFF
+FFFFFFFFC37E7C3E7C007CF8F87BFFFFFFFFC03FFFFFFFDF8F9F1F18003E3E3E7FFFFFFFFF81FFFFFFFFE3CFC7C7800F1E3F3E3FFFFFFFFC003FFFFFFFF3C7CFE7000FCF8F1F9FFFFFFFF007FFEFFFFC3FFFFFFFFF
+FFFFFFFFC0FCF0FCF80079F1E3F3FFFFFFFF801FFFFFFFFE1F3E3C30007C7CFCFFFFFFFFFF00FFFFFFFFCF9F8F9F00067E7C7C7FFFFFFFF8003FFFFFFFE78F9F8F000F1F1E3F3FFFFFFFE003FFFFFFFC3FFFFFFFFF
+FFFFFFFFC0FCF0F9F00071F3E3F7FFFFFFFF000FFFFFFFFC3E7E78700078F9F9FBFFFFFFFE007FFFFFFF9F9F0F3F0004FCFC7CFFFFFFFFF0001FFFFFFFCF8F1F0E000E1E3E7E3FFFFFFFC003FFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F9E7F3F00023E7C7C7FFFFFFFF000FFFFFFFF87CFCF0E00071F9F3E3FFFFFFF8001FFFFFFFBF3C3E7E0000F9F1F1FFFFFFFFF0001FFFFFFF9F3F3E3E00003CFCF87FFFFFFFC001FFFFFBFC3FFFFFFFFF
+FFFFFFFFC3E3C7E7C000078F9F8FFFFFFFFE0007FFFFFFF1F9F9F3E00067F3E7CFFFFFFFF8001FFFFFFFFE787CFC0001F3E3F3EFFFFFFFF0001FFFFFFFBE7E787C0000F9F9E1FFFFFFFFC001FFFFFBFC3FFFFFFFFF
+FFFFFFFFC3C78FCF80000F1F3F1FFFFFFFFE0007FFFFFFF3F3E3E7E0000FC7CF9FFFFFFFF8001FFFFFFFFCF1F9F80003E7CFC7CFFFFFFFF0003FFFFFFFFCF8F0F80001F3F3C3E7FFFFFF8001FFFFFFFC3FFFFFFFFF
+FFFFFFFFC39F1F1F00001E3E7E3FFFFFFFFE0007FFFFFFC7E7C7CFC0001F8F1F3FFFFFFFF8001FFFFFFFF1E3F3E30007CF9F8E1FFFFFFFF8003FFFFFFFF9F1E3F0000FE7E78FC7FFFFFF8001FFFFFFF83FFFFFFFFF
+FFFFFFFFC33F3F1E00001C7C7C7FFFFFFFFE0007FFFFFFCFC7879F80001F1F1E3FFFFFFFF8001FFFFFFFE3E7F3C300070F3F9E1FFFFFFFF8003FFFFFFFF3F3E7E2000FE7C79FCFFFFFFFC001FFFFFFF83FFFFFFFFF
+FFFFFFFFC27E787C700038F8F8FBFFFFFFFE000FFFFFFFDF8F1F3F10003E3E7C7FFFFFFFF8001FFFFFFFC7CFC787800E1E7E3C3FFFFFFFFC003FFFFFFFE7C7CFC7000FCF0F3F9FFFFFFFC001FFFFFFFC3FFFFFFFFF
+FFFFFFFFC0FCF0F8F00031F3E3F3FFFFFFFF000FFFFFFFFE1E3E7C3800F87CF8FBFFFFFFF8001FFFFFFF9F9F8F1F800C7CFC7CFFFFFFFFF0005FFFFFFFEF8F9F8F001E1E1E7E3FFFFFFFC003FFFFFFFC1FFFFFFFFF
+FFFFFFFFC1F9E3F1F80063E7C7E7FFFFFFFF000FFFFFFFFC7C7CF8C00071F9F1E3FFFFFFFC003FFFFFFFBF3E3E3C0000F9F0F9FFFFFFFFC0000FFFFFFFDF3F3F1E00103C7CFC7FFFFFFFE003FFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F3E7F3E800E7E78FCFFFFFFFFF801FFFFFFFF8FCFCF0000021F1F3E3FFFFFFFE007FFFFFFFBE3C7E780001F9E1F3FFFFFFFF800007FFFFFF9F3E3C3C00003CFCF87FFFFFFF8000FFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C3CFE780000F8F1F9FFFFFFFFE0001FFFFFFF3F9F1E0000007E7E7CFFFFFFFF0000FFFFFFFFC78FCE00001F3C3E7EFFFFFFF000003FFFFFFFC7C78F0000079F9E1F7FFFFFE00007FFFFFFC3FFFFFFFFF
+FFFFFFFFC3879F8F0000071E3F3FFFFFFFF800007FFFFFE7F3C3C000000FCF8F9FFFFFFFC00003FFFFFFFCF3F9C00000E78FCFCFFFFFFE000001FFFFFFF8F8F1E0000033F3C3E7FFFFFC00003FFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3F1E0000007C7C7FFFFFFFF000003FFFFFCFC787800000071F1F3FFFFFFF800001FFFFFFE1E7F38000000F1F9F1FFFFFFC000000FFFFFFF9F3E7C0000007E78FCFFFFFF800001FFFFFFC3FFFFFFFFF
+FFFFFFFFC33E3E3E000000FCFC7FFFFFFFF000003FFFFFCF878F900000021E1E7FFFFFFF800000FFFFFFE3E7E38000000F3F9E3FFFFFFC000000FFFFFFF3E3C7C0000007CF9FCFFFFFF000000FFFFFFC3FFFFFFFFF
+FFFFFFFFC07C78FC000000F9F1F3FFFFFFE000001FFFFFDF0F3F300000003C7CFFFFFFFF000000FFFFFFC7CF878000001E7E3C7FFFFFFC000000FFFFFFE7C78F8000000F1F3F9FFFFFF000000FFFFFFC3FFFFFFFFF
+FFFFFFFFC0FCF0F8000000F3E3E3FFFFFFE000001FFFFFFC7E7E60000000F8F9F3FFFFFF0000007FFFFF9F1F0F0000001CFC79FFFFFFFC000000FFFFFFCF9F1F0000000E3E7E3FFFFFE0000007FFFFFC3FFFFFFFFF
+FFFFFFFFC1F1E7F0000000E7CFC7FFFFFFC000001FFFFFF87CFCE0000001F1F3E3FFFFFE0000007FFFFFBF3C3E00000011F1F1FFFFFFFC000000FFFFFF9F3E3E0000000CFCFC7FFFFFE0000007FFFFFC3FFFFFFFFF
+FFFFFFFFC1E3E7E0000000C79FCFFFFFFFC000000FFFFFF8F8F9E0000001F3E3C7FFFFFE0000007FFFFFFE7C7C00000011E3F3F7FFFFFC000000FFFFFF9E7E7C00000008F8F0FFFFFFE0000007FFFFFC3FFFFFFFFF
+FFFF807FC3C7CFC00000000F3F9FFFFFFFC000000FFFFFF3F1F3E0000001E7E79FFFFFFE0000003FFFFFFCF8F800000003C7E7CFFFFFFC000000FFFFFFFCFCF800000001F1E3F7FFFFE0000007FFFFFC3FFFFFFFFF
+FFFF803FC38F9F080000001E7E3FFFFFFFC000001FFFFFE7E3C7C0000001CF8F3FFFFFFE0000003FFFFFF9F3F1800000079FCF8FFFFFFC000000FFFFFFF9F9F300000003E3C7E7FFFFE0000007FFFFFC3FFFFFFFFF
+FFFFFC7FC33E3E180000007CFC7FFFFFFFC000001FFFFFCF878F900000031E1E7FFFFFFE0000007FFFFFE3E7E38000000F3F9E1FFFFFFC000001FFFFFFF3C3E780000017C79FCFFFFFE000000FFFFFFC3FFFFFFFFF
+FFFFFC7FC23E7C38000000FCF87BFFFFFFC000001FFFFFDF8F9F100000021E3E7FFFFFFE0000007FFFFFE3C7C78000003F3F1E3FFFFFFE000001FFFFFFF3C3CFC00000178F1F8FFFFFF000000FFFFFFC3FFFFFFFFF
+FFFFF87FC0FC78FC000001F1E1F3FFFFFFE000001FFFFFFF1F3E380000043CFCFFFFFFFF0000007FFFFFCF8F8FC000007C7C3C7FFFFFFE000001FFFFFFE7879FA000001F1F3F1FFFFFF000000FFFFFFC3FFFFFFFFF
+FFFFF0FFC0F9F1F4000001E3C3E7FFFFFFE000003FFFFFFC7E7C7800000CF9F9E3FFFFFF0000007FFFFF9F1E1F200000F8F879FFFFFFFF000003FFFFFFCF1F3F2000003E3C7C3FFFFFF000001FFFFFFC3FFFFFFFFF
+FFFFF0FFC1E3E7E2000003E78FCFFFFFFFF000003FFFFFF8FCF8F6000019F3F3C3FFFFFF800000FFFFFFBE3C7E700001F1E1F3F7FFFFFF800007FFFFFF9E3E7C3000007CFCF8FFFFFFF800001FFFFFFC3FFFFFFFFF
+FFFFF0FFC3E3C7E20000038F9FCFFFFFFFF000007FFFFFF9F9F9E7000013F3E7C7FFFFFF800000FFFFFFFE7C7C780001F3E3F3E7FFFFFFC0000FFFFFFFBE7E78780000F8F9F0FFFFFFFC00003FFFFFFC3FFFFFFFFF
+FFFFE1FFC3C78FC70000071F3F1FFFFFFFF80000FFFFFFF3F3F3C780007FE7CF9FFFFFFFC00001FFFFFFFCF1F8FC0003E7C7C7CFFFFFFF000007FFFFFFFCFCF0FC0001F1F3E3F7FFFFFE00007FFFFFFC3FFFFFFFFF
+FFFFE1FFC38F1F1F80000E3E7C3FFFFFFFFC0001FFFFFFE7C7C78800000FCF0F3FFFFFFFE00003FFFFFFF1F3F1C00000879FCF9FFFFFFE000001FFFFFFF9F9E3F0000023E7C7C7FFFFFF00007FFFFFFC3FFFFFFFFF
+FFFFC3FFC32E3C3E0000007CF87FFFFFFFFC00007FFFFFCF878F000000061E1E7FFFFFFFC00003FFFFFFE3E7E30000000F3F9E3FFFFFFC000000FFFFFFF3C3C7E0000007CF9F8FFFFFF800001FFFFFFC3FFFFFFFFF
+FFFFC3FFC27E787C000000F8F0FBFFFFFFF800003FFFFFDF8F1F000000003E3C7FFFFFFF800001FFFFFFC3CFC70000001E3E3E3FFFFFF8000000FFFFFFF3C3CF8000000F8F1F9FFFFFF800000FFFFFFC3FFFFFFFFF
+FFFFC7FFC0FCF8F8000000F1E3F3FFFFFFE000001FFFFFFE3E3E000000003CF8FBFFFFFF000000FFFFFF8F9F8E0000001C7C7C7FFFFFF00000003FFFFFE7879F000000061E3F3FFFFFF0000007FFFFFC3FFFFFFFFF
+FFFFFFFFC1F9E3F000000063C7E7FFFFFFC000000FFFFFFC7C7C0000000039F9E3FFFFFE0000007FFFFFBF3E1C00000008F8F9FFFFFFE00000001FFFFFCF1F3C000000007C7C7FFFFFE0000001FFFFFC3FFFFFFFFF
+FFFFFFFFC3E3E7E0000000079FCFFFFFFF80000007FFFFF9F8F80000000023E3C7FFFFF00000003FFFFFFC3C7800000001E3F3E7FFFFC000000007FFFF9E3E7800000000F8F0FFFFFFC0000000FFFFFC3FFFFFFFFF
+FFFFFFFFC3C3CFE00000000F1F8FFFFFFF80000003FFFFF3F9F00000000003E7CFFFFFF00000001FFFFFFC787800000003C3E7E7FFFFC000000007FFFFBE7C7800000000F9F1FFFFFF80000000FFFFFC3FFFFFFFFF
+FFFFFFFFC3C79F800000000E3F1FFFFFFE00000001FFFFE7F3E200000000078F9FFFFFE00000000FFFFFFCF1F0000000038FCFCFFFFF8000000003FFFFFCF8F000000000F3E3E7FFFF800000007FFFFC3FFFFFFFFF
+FFFFFFFFC31F3F00000000047C3FFFFFFC00000001FFFFCFC784000000000F1F3FFFFF8000000007FFFFF1E3E0000000011F9F1FFFFF8000000001FFFFF9F1E000000000E7CFCFFFFF000000003FFFFC3FFFFFFFFF
+FFFFFFFFC27E780000000000F87BFFFFF8000000007FFFDF8F1C00000000063C7FFFFF8000000003FFFFC3C780000000003F3E3FFFFF0000000001FFFFF3C3C0000000000F1F8FBFFE000000003FFFFC3FFFFFFFFF
+FFFFFFFFC07C780000000001F0F3FFFFF8000000007FFFDF0F3C00000000047CFFFFFF0000000001FFFFC7CF80000000007E3C3FFFFF0000000001FFFFE7C780000000000F3F9FFFFC000000001FFFFC3FFFFFFFFF
+FFFFFFFFC0F8F00000000001E3E3FFFFF8000000003FFFFC3E780000000000F9F3FFFF0000000001FFFF9F9F00000000007C7CFFFFFE0000000000FFFFCF8F00000000001E7E3FFFF8000000001FFFFC3FFFFFFFFF
+FFFFFFFFC1F1E00000000001C7C7FFFFF0000000003FFFF87CF80000000001F3E3FFFE0000000001FFFFBE3C0000000000F0F1FFFFFC0000000000FFFF9F3E00000000001CFC7FFFF8000000001FFFFC3FFFFFFFFF
+FFFFFFFFC3C3C000000000011F8FFFFFF0000000001FFFF1F9F00000000003E7C7FFFE0000000000FFFFFE78000000000063E3E7FFFC0000000000FFFFBE7C000000000019F0FFFFF8000000000FFFFC3FFFFFFFFF
+FFFFFFFFC3C7C000000000001F9FFFFFE0000000000FFFE3F1E00000000003C78FFFFE0000000000FFFFFC78000000000043E7E7FFFC00000000007FFFFC7C000000000001E1F7FFF0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC38F9800000000003E3FFFFFE00000000007FFE7E3C000000000010F1FFFFE0000000000FFFFF87000000000001FCF8FFFFC00000000007FFFF8F8800000000003C3E7FFF0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC33F3000000000007C7FFFFFE00000000007FFCF878000000000001E3FFFFC00000000007FFFE3E600000000001F9F1FFFFC00000000007FFFF1E38000000000078FCFFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC07E700000000000F0F3FFFFE00000000007FFDF0F0000000000007C7FFFFC00000000007FFFC74E00000000003E3E3FFFFC00000000007FFFE3C700000000000F1F9FFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC07CF00000000000E1F3FFFFE00000000007FFFE1E000000000000FCFFFFFC00000000007FFFCF0E00000000007C3C7FFFF800000000007FFFE78700000000000F3F1FFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC0F9F00000000000C3E7FFFFE00000000007FFFC7E400000000001F9F3FFFC00000000007FFF9F1E00000000007879FFFFF800000000007FFFCF1F00000000000E7C3FFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC1F3E000000000000FCFFFFFE00000000003FFF0FCC00000000001F3C3FFFC00000000007FFFBE3C000000000061F3FFFFF800000000007FFF9E3E00000000000CFC7FFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC3C7C000000000001F9FFFFFC00000000003FFF3F9C00000000001E78FFFFC00000000007FFFFC78000000000043E7EFFFF800000000007FFFBC7C000000000001E1FFFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC3C78000000000003F1FFFFFC00000000003FFF3F3C00000000001C79FFFFC00000000007FFFFCF8000000000007E7CFFFF800000000007FFFFCFC000000000001E3F7FFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC39F1000000000007C3FFFFFC00000000003FFE7E7C000000000030F3FFFFC00000000007FFFF1F300000000001FCF9FFFFC0000000000FFFFF9F9000000000003C7E7FFE00000000007FFFC3FFFFFFFFF
+FFFFFFFFC33E300000000000F87FFFFFC00000000007FFCF8F9FFFFC0000023E7FFFFC00000000007FFFE3C7FFFFFFDC003F9E3FFFFFFFFFFFFFFFFFFFF3E3FFF4000000079FCFFFE0000000000FFFFC3FFFFFFFFF
+FFFFFFFFC07C700000000013E1F3FFFFC0000000FFFFFFDF1F3FFFFFFFFFFCFCFFFFFC00000000007FFFC78FDFFFFFFFFFFC3C7FFFFFFFFFFFFFFFFFFFE7C7FFFFFFFFFFFF3F9FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC0FCFEFFFFFFFFFFE3F3FFFFE00F7FFFFFFFFFFE3E3FFFFFFFFFFCF8FBFFFFFFFFFFFFEFFFFFCF9F8F1F3FFFFFFC7CFFFFFFFFFFFFFFFFFFFFE7879FFFFFFFFFFF3F1FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F1EFFFFFFFFFFFC7E7FFFFFFFFFFFFFFFFFFFC7C7CF8F8F8F1F9F1E3FFFFFFFFFFFFFFFFFFBF3E1E3E3C78F8F8F9FFFFFFFFFFFFFFFFFFFFCF1F3F1E3E3E3E3E7C7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3E3C7E7C78FC78F9FCFFFFFFFFFFFFFFFFFFFF9F8F9F1F1F3E3F3E3C7FFFFFFFFFFFFFFFFFFFE7C7C7C78F9F1E3F3FFFFFFFFFFFFFFFFFFFF9E3E7C3C7C787CFCF8FFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C78F870F9F0F1F3F9FFFFFFFFFFFFFFFFFFFF3F1E3E7E3E3CFE7C79FFFFFFFFFFFFFFFFFFFFCF9FCF8F1F3E3C7E7EFFFFFFFFFFFFFFFFFFFFC7CF8F8F8F1F9F9E3F7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3879F8F0F3E1F1E3F3FFFFFFFFFFFFFFFFFFFE7F3E3C7E7C78FCF8F9FFFFFFFFFFFFFFFFFFFFCF1F9F9E3E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCF8F0F9F9F1F1F3E3E7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3E1E3E7E3C7C7C7FFFFFFFFFFFFFFFFFFFCFC7C78F8F8F9F9F1F3FFFFFFFFFFFFFFFFFFFF1E3F3C3C7CF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F9E3F3F3E7E7E7CFC7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC27E7C3C7CF878F8F8FBFFFFFFFFFFFFFFFFFFDF8F9F1F1F1E3E3E3E7FFFFFFFFFFFFFFFFFFFE3CFE7C78F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3C3C7E7C78FCFCF9FCFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC0FCF8F8F9F1F1F1E3F3FFFFFFFFFFFFFFFFFFFE1F3E3E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFCF9F8F8F1F3E3E7C7C7FFFFFFFFFFFFFFFFFFFE7C78F8F0F9F9F1F3F1FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F9F3F9F3E3F3E3C7E7FFFFFFFFFFFFFFFFFFFC7E7C78FCFCF1F9F9F3FFFFFFFFFFFFFFFFFF9FBF1F3F3E7CFCFCF9FFFFFFFFFFFFFFFFFFFFCF9F1F1F1F3E3E3E7C3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F1E7F3F3C7E7E7CFE7FFFFFFFFFFFFFFFFFFFC7EFCF8FDFDF1FBFBF3EFFFFFDFFFFFFFFFFF3FBF7F7F7F7DFDFDF9FFFFFFFFFFFFFFFFFFFFDFBF3F1F7F7E3E7EFC7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1F3FBF3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCFCF1F9F9E3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7CF8FCFDF9F9FBF7FFFFFFFFFFFFFFFFFFBFBF1F3F3F7CFDFCFDC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F3C7CFCF9F3F9F1FFFFFFFFFFFFFFFFFFFF9F3E7F3F3CFE7E7DFCFFFFFFFFFFFFFFFFFFFF9FCF9F1F9FBE7F3F3C7FFFFFFFFFFFFFFFFFFBE7C7E7E7CF9F9F1F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCFCFC78F9F9F1E7E3E3FFFFFFFFFFFFFFFFFFFF3C7CFE7C79FCF8FBF9FFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3CFE7E7DFFFFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCF9F8F9F3F3E7E7C7C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFFE7F3F3EFE7E7CFCFCF9FFFFFFFFFFFFFFFFFFFFCF9FDF9F3F3E7C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E1F3F7E7CFCF879FBFFFFFFFFFFFFFFFFFFCF9F9F1F1F3E3E3E7E7FFFFFFFFFFFFFFFFFFFCFE7C7DFCF8F9FDF1F3FFFFFFFFFFFFFFFFFFFF1F3F3F3E7E7EF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7E7E78F9F9E1F3F3FFFFFFFFFFFFFFFFFFDF3F3E3E7E7E7CFCFC7FFFFFFFFFFFFFFFFFFFDF8F9FBF1F1F3E3E3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FCF9F1F3F3C3E7E7FFFFFFFFFFFFFFFFFFFE7E78FCFCF1F9F9F3FFFFFFFFFFFFFFFFFFFFBF1F3F7E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFCFCF8F8F9F9E3E7E3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF3F9F9F3E7E7C7E7CFFFFFFFFFFFFFFFFFFFFCFCF8FCF9F1F9F3E3F7FFFFFFFFFFFFFFFFFFBE3E7E7C7EFCF8FCFDFFFFFFFFFFFFFFFFFFFFDF9F8F9F3F3E7E7C7C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E7F3E3E7CFCF9FCF9FFFFFFFFFFFFFFFFFFFF9F9F3F9F3E3F3F7C7E7FFFFFFFFFFFFFFFFFFFC7CFCF8F8F9F1F9F3E7FFFFFFFFFFFFFFFFFFBF3F3F3E7E7CF8F8F9C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3CFE7C7CFDF1F3F9E3FFFFFFFFFFFFFFFFFFFF3F3E7F3E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFF9F9F9F3F3F3E7F3E3C7FFFFFFFFFFFFFFFFFFFE7C7E7EF8F9F9E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCFCF8F9F9FBE3E7E3C7FFFFFFFFFFFFFFFFFFFF7C7CFE78F9FCF9F3F9FFFFFFFFFFFFFFFFFFFF3F3F3E7F7E7CFE7CF9FFFFFFFFFFFFFFFFFFFFCF9FCFDF1F3F3C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F8F9F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C79FCF8F1F9F1F3F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C79FCF8F9FFFFFFFFFFFFFFFFFFFFCF9F9F9F3E7E7CFE7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E3E7E7C7CF9F8F9FBFFFFFFFFFFFFFFFFFFCF9F3F1F3F7E3E7E7C7FFFFFFFFFFFFFFFFFFFCFC7C79FCF8F3F9F1F3FFFFFFFFFFFFFFFFFFFF1E7F3F3E7CFCF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7C7CF8F9FBE3F3F7FFFFFFFFFFFFFFFFFFFF3E7E3E7E7C7CFCF8FFFFFFFFFFFFFFFFFFFF9F8F9F3F1F3E7E3E7E7FFFFFFFFFFFFFFFFFFFE3CFE7C7CF9F1F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9F9F9F3F3E7C7E7EFFFFFFFFFFFFFFFFFFFFE7CF8FCFDF1F9F9E3FFFFFFFFFFFFFFFFFFFFBE3F7E7C7E7CFC7CFCFFFFFFFFFFFFFFFFFFFFCF9F8F9F9F3E3E7E3C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F9F9E7E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F3F3E3F7FFFFFFFFFFFFFFFFFFBC7E7E78FCFCF8F9F9FFFFFFFFFFFFFFFFFFFF9F9F8F1F3F3E7CFC7CC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF3E7F3E3CFCFCF9F9F9FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7E7E7CFEFFFFFFFFFFFFFFFFFFFF8FCFCF1F9F9F1F3F3E7FFFFFFFFFFFFFFFFFFBF3E3E7E7E7CF9F8F9C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFC7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3E3EFE7C7CFCFCF9FDFFFFFFFFFFFFFFFFFFFF3F9F9E7F3F3E7E7E7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F8F9F3F3E7E7C7C7FFFFFFFFFFFFFFFFFFFE7C7DFCF8F9FDF1F3FBFFFFFFFFFFFFFFFFFFFE7F3E3EFE7C7CFEFCF9FFFFFFFFFFFFFFFFFFFFCF9F9F9F1F3F7C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF9F1F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE78F9F8F1F3F9F1E7F3FFFFFFFFFFFFFFFFFFFE7F3C7CFE78F9FCF8F3FFFFFFFFFFFFFFFFFFFFDF3F9F9E7E7E7CFCFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3C7E7E7C79F9F1F9FBFFFFFFFFFFFFFFFFFFCF3F3F1E7E7E3E7EFC7FFFFFFFFFFFFFFFFFFFCFCFCF9F8F8F3F1F1F7FFFFFFFFFFFFFFFFFFFF3E7F3E3EFCFCF9F9F83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE78FCFCF8F1F3E3F3E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCFCFCF9F8FFFFFFFFFFFFFFFFFFFF9F8F3F3F1F7E7E3E7CFFFFFFFFFFFFFFFFFFFFE3CFC7C79F9F1F3F1E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF3F9F9F3E7E7CFE7EFFFFFFFFFFFFFFFFFFFFCFCF8FDF9F1F9F3E3F7FFFFFFFFFFFFFFFFFFBE3E7E7C7EFCFCFCF9FFFFFFFFFFFFFFFFFFFFCF9F8F9FBF3E3E7C7C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F9F3E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFDF1F9F9E3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7EF8FCFCF1F9F9FFFFFFFFFFFFFFFFFFFF9F9F9F3F3F3EFCFC7CC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F3C7CFCF0F3FDF1FFFFFFFFFFFFFFFFFFFF9FBE7F3F3CFE7E7CFEFFFFFFFFFFFFFFFFFFFF8FCFDF1F9F9F3F3F3E7FFFFFFFFFFFFFFFFFFBF3E3E7E7C79F9F0F9C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F3E3FFFFFFFFFFFFFFFFFFFF3E7CFE7C79FCFCF9FDFFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8FBF3E3F3C37FFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C79FCF8F9F9F1F3F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C79FCFCF9FFFFFFFFFFFFFFFFFFFFCF1F9F9F3F3E7C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3F1F3F3E7CFCFC7DFBFFFFFFFFFFFFFFFFFFEF9F9F9F1F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7E7C7CFEF8F9FCF1F3FFFFFFFFFFFFFFFFFFFF9F3F9FBE7E7E7DFCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF7C7E7E78F9F9F1FBF3FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3EFCFC7FFFFFFFFFFFFFFFFFFFCF8F8F9F0F1F3F1E1E7FFFFFFFFFFFFFFFFFFFE3E7F3E3CFCF8F9F9F03FFFFFFFFF
+FFFFC07FC3FFFFFFFFFFFFFFFFFFEF8FCFCF9F3F3E3F7E7FFFFFFFFFFFFFFFFFFFE7E7CFCFCF8FDF9F1FFFFFFFFFFFFFFFFFFFF9F1F3F3F1E7E7E3C7CFFFFFFFFFFFFFFFFFFFFC7CFC7CF9F9F1F7F3E03FFFFFFFFF
+FFFF807FC3FFFFFFFFFFFFFFFFFFDF3F9F9E7E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF9F9F9F1F3F3E3F7FFFFFFFFFFFFFFFFFFFC7E7E7C7CFCF8FDF9FFFFFFFFFFFFFFFFFFFF9F9F8F1F3F3E7EFC3C03FFFFFFFFF
+FFFF8C7FC3FFFFFFFFFFFFFFFFFF9F3FBF3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCF9F1F9FBE3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7CF8FCF9F1F9F9F7FFFFFFFFFFFFFFFFFF9F9F1F3F3E3CFCFC78C3FFFFFFFFF
+FFFF8FFFC3FFFFFFFFFFFFFFFFFE3E7F7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F3E7F3F3EFE7E7DFCFFFFFFFFFFFFFFFFFFFF9FCF9F1F9F1E3F3F3E7FFFFFFFFFFFFFFFFFFFF3C7E7E7C79F9F1F9C3FFFFFFFFF
+FFFF80FFC3FFFFFFFFFFFFFFFFFCFCF8F8F9F9F3E7F3E3FFFFFFFFFFFFFFFFFFFF3C7CFE7C79FCF8FBF9FFFFFFFFFFFFFFFFFFFF3F9F3E7F3F3CFE7E7DFFFFFFFFFFFFFFFFFFFFE787CFCF8F3F3E3E3C3FFFFFFFFF
+FFFF807FC3FFFFFFFFFFFFFFFFFFF9F1F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE78F9F8F9F3F1F1E7F3FFFFFFFFFFFFFFFFFFFE7F3E7CFE7C79FCF8FBFFFFFFFFFFFFFFFFFFFFCFBF9F9F3E7E7CFE7C3FFFFFFFFF
+FFFF807FC3FFFFFFFFFFFFFFFFFFF3E3F3E7E7CFCFCF9FBFFFFFFFFFFFFFFFFFFEF9FBF1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFFEFE7C7CFCF8F9FCF1F3FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7E79FCF83FFFFFFFFF
+FFFF8E3FC3FFFFFFFFFFFFFFFFFFE7C7E7CF8F9F9E3F3F3FFFFFFFFFFFFFFFFFFFF3F7F3E7E7E7CFCFC7FFFFFFFFFFFFFFFFFFFDF8F8F9F1F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF8F3F9F03FFFFFFFFF
+FFFF8E3FC3FFFFFFFFFFFFFFFFFFCF9FCFDF1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E7CFCFCF9F9F9F1FFFFFFFFFFFFFFFFFFFFBF1F3F3E3E7E7E3CFCFFFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F3E03FFFFFFFFF
+FFFF8E3FC3FFFFFFFFFFFFFFFFFF9F3F9FBE7E7EFDFCFCFFFFFFFFFFFFFFFFFFFFCFCF9F9F9F3F3F3E3E7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF8F9F9FFFFFFFFFFFFFFFFFFFF9F9F8F3F3F3E7CFC7C43FFFFFFFFF
+FFFF8E7FC3FFFFFFFFFFFFFFFFFF1E7F3F3E7EFCF9FCF9FFFFFFFFFFFFFFFFFFFFDF9F3FBF3E3F3F3C7E7FFFFFFFFFFFFFFFFFFFC7EFCF8FCF9F1F9F9F7FFFFFFFFFFFFFFFFFF9FBF1F3F3E7CFCFC79C3FFFFFFFFF
+FFFFC07FC3FFFFFFFFFFFFFFFFFE3EFE7C7CF9F1F3F9F3FFFFFFFFFFFFFFFFFFFFBF3E7F3E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFF9FDF9F3F9F3E3F3F3E7FFFFFFFFFFFFFFFFFFFF3C7E7E78F9F9F1FBC3FFFFFFFFF
+FFFFC0FFC3FFFFFFFFFFFFFFFFFCF9F8F9F9F3E3E7E3C7FFFFFFFFFFFFFFFFFFFF7C7CFE78F9FCF8F3F9FFFFFFFFFFFFFFFFFFFF3FBF3E7F3F7CFE7E79FFFFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3F1F3F3E7CFCFC79FBFFFFFFFFFFFFFFFFFFEF8F9F9F9F3F1F1E7F3FFFFFFFFFFFFFFFFFFFE7F7C7CFC78F9FCF8F3FFFFFFFFFFFFFFFFFFFFCF3F9F9E7E7E7CFCFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E7F7E7C7CFDF8F9FBFFFFFFFFFFFFFFFFFFCF9F3F1F3F3E3E3E7E7FFFFFFFFFFFFFFFFFFFCFE7C7DFCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF9F3F3F3E7E7CF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7EFCF8F9F1E3F3F7FFFFFFFFFFFFFFFFFFFF3F7E3E7EFE7CFCFCFFFFFFFFFFFFFFFFFFFF9F8F9F9F1F3F3E3E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF0F3F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FDF9F3F3E3C7E7E7FFFFFFFFFFFFFFFFFFFE7CF8FCFDF1F9F9F3F7FFFFFFFFFFFFFFFFFFBF1F3F7E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFCFCF8F8F9F9E3E7E3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1F3F3F3E7E7CF9FCFCFFFFFFFFFFFFFFFFFFFFCFDF1F9FBE3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7CF8FCFCF1F9F9F7FFFFFFFFFFFFFFFFFF9F9F8F3F3F3CFCFC7CC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F3E3CFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7F3E7CFE7FFFFFFFFFFFFFFFFFFF8FCFCF8F9F9F1F9F3E7FFFFFFFFFFFFFFFFFFBF3F3F3E3E7CF8F8F9C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFE7C7DF9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFEFCF9FCFFFFFFFFFFFFFFFFFFFFBF9F9F3FBF3E7F3E7C7FFFFFFFFFFFFFFFFFFFE7C7E7C78F9F9E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F8F9FBF3E7E7C7C7FFFFFFFFFFFFFFFFFFFE7C7DFCF8F9FCF1F3F9FFFFFFFFFFFFFFFFFFFF7F3F3E7F7E7CFE7CF9FFFFFFFFFFFFFFFFFFFFCF9FCF8F1F3F3C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E3F3F7E7CFCFCF9FBFFFFFFFFFFFFFFFFFFCF9F9F1F1F3F1E3E7E3FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8F9FCF1F3FFFFFFFFFFFFFFFFFFFF9F3F9F1E7E7E7DFCFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3C7E7E7C7DF9F9FBF3FFFFFFFFFFFFFFFFFFCF3F3F1F3E7E3E7EFC7FFFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F9F1F3FFFFFFFFFFFFFFFFFFFF1F7F3E3E7CFCF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7CFCFCF8F3F3E3F3E7FFFFFFFFFFFFFFFFFFFE7E7E7EFCFCFCF9F8FFFFFFFFFFFFFFFFFFFF9F8F1F3F1F3E3E3E7E7FFFFFFFFFFFFFFFFFFFE3EFE7C7CE8F1F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF3F9F9F3E7E7CFE7CFFFFFFFFFFFFFFFFFFFFEFCF8FCF9F1F9F3E3F7FFFFFFFFFFFFFFFFFFBE3F3E7C7E7EFC7CFCFFFFFFFFFFFFFFFFFFFFCFCF8F8F9F1E3E7E3C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E7F3E3E7CFCF9FDF9FFFFFFFFFFFFFFFFFFFFDF9F3FBF3E7F3E7C7E7FFFFFFFFFFFFFFFFFFFC7CFCF8FCF9F1F9F9F7FFFFFFFFFFFFFFFFFF9FBF1F3F3E7CFCFC79C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3CFE7C7CF9F1F3F3E3FFFFFFFFFFFFFFFFFFFFBF3E7F7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFFF9FCF9F3FBF3E3F3F3C7FFFFFFFFFFFFFFFFFFFF7C7E7E78F9F9F1F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7E3E3FFFFFFFFFFFFFFFFFFFF3E7CFE7C7DFCF8F9F9FFFFFFFFFFFFFFFFFFFF3F9F9F7F3F3E7E7E7CFFFFFFFFFFFFFFFFFFFFE7C7C7CF8F9F9E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7CF9F8F8F3F9F1F3FBFFFFFFFFFFFFFFFFFFFE7F3E3CFE7E7CFCF8F9FFFFFFFFFFFFFFFFFFFFCF9F9F9F1F3E3C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E7E7E7C7CF9F8F9FBFFFFFFFFFFFFFFFFFFCFBF3F1F3F7E3E7E7C7FFFFFFFFFFFFFFFFFFFCFE7C79FCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7CF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7CFCFCF8F9F3E3F3F7FFFFFFFFFFFFFFFFFFFF7E7E7E7CFC7CFCF8FFFFFFFFFFFFFFFFFFFF9F8F9F3F1F3F7E3E3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FCFDF1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E7CFCFCF8F9F9F1FFFFFFFFFFFFFFFFFFFF9F1F3F3F1F7E7E3E7CFFFFFFFFFFFFFFFFFFFFC7CFC7C7DF9F1F3F3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFDF3F9F3E7E7E7DFCFCFFFFFFFFFFFFFFFFFFFFCFCF9F9F9F1F3F3E3F7FFFFFFFFFFFFFFFFFFFC7E7E7C7EFCF8FCF9FFFFFFFFFFFFFFFFFFFF9F9F8F9F9F3E7E7C7C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F3C3CFCF8F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7E7E7CFEFFFFFFFFFFFFFFFFFFFFCFCFCF8F9F9F1F9F3E7FFFFFFFFFFFFFFFFFFBF3E3F3F7E7CFCF879C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFC7C79F9F1E3F3E3FFFFFFFFFFFFFFFFFFFF3E3EFE7E7CFCFCF9FCFFFFFFFFFFFFFFFFFFFFBF9F9F3F3F3E7F3E7C7FFFFFFFFFFFFFFFFFFFE7C7E7CF8F9F9E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCFCF8F8F9F3E3E7E3C7FFFFFFFFFFFFFFFFFFFF7C7CFE7CF9FCF8F3F9FFFFFFFFFFFFFFFFFFFF3F9F3E7F3F3CFE7E7CFFFFFFFFFFFFFFFFFFFFE787CFCF8F3F3E3E3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF9F1F3F3F3CFCFC79FBFFFFFFFFFFFFFFFFFFEF8F9F8F9F3F1F1E7F3FFFFFFFFFFFFFFFFFFFE7F3C7CFE7C79FCF8FBFFFFFFFFFFFFFFFFFFFFCFBF9F9F3E7E7C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7E7E7C79F9F1F3F3FFFFFFFFFFFFFFFFFFFF3F3F1F7E7E3E7CFC7FFFFFFFFFFFFFFFFFFFCFC7CF9FCF8F3F9F1F7FFFFFFFFFFFFFFFFFFFF1F7F3E3E7CFCF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF8FCFCF8F3F3E3F7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8FCF9F9FFFFFFFFFFFFFFFFFFFF9F8FBF3F1F3E7E3E7E7FFFFFFFFFFFFFFFFFFFE3CFE7C7CF8F1F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FCF9F1E3E7C7E7EFFFFFFFFFFFFFFFFFFFFE7CF8FCFCF9F9F9F3FFFFFFFFFFFFFFFFFFFFBF1F3F3E3E7E7E3CFCFFFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F1F3E7C7EF9FCFDFFFFFFFFFFFFFFFFFFFFCFDF3F9F9F3F3F3E3F7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF8F9F9F7FFFFFFFFFFFFFFFFFF9F9F8FBF3F3E7CFC7CC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7E7C7CFCF9FFF9F1FFFFFFFFFFFFFFFFFFFF9FBE7F3F7CFE7E7DFCFFFFFFFFFFFFFFFFFFFF8FCFCF1F9F9F1F3F3E7FFFFFFFFFFFFFFFFFFBF3E3E7E7E7CF9F8F9C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFCFCF8F8F9F9F3E7E3E3FFFFFFFFFFFFFFFFFFFF3E7CFE7CF9FCF8F9F9FFFFFFFFFFFFFFFFFFFF3F9F9E7F3F3E7E7E7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFDF9F8F9FBF3E7E7E7C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFFF3F3F3E7F3E7CFE7E79FFFFFFFFFFFFFFFFFFFFC78FCFCF1F3F3E3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3F3F3F7E7CFDFFFDFBFFFFFFFFFFFFFFFFFFCF9FBF9F3F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7F7C7CFE7CF9FCF8F3FFFFFFFFFFFFFFFFFFFFDF3F9F9E7E7E7CFC7C3FFFFFFFFF
+FFFFFFFFC0FDF3F9FBF3F3F3E7F7FFFFFFFFFFFFFFFFFFFE7F7E7EFEFCFCFDFDFBFFFFFFFFFFFFFFFFFFDFDF8FBFBFBEFEFE7FFFFFFFFFFFFFFFFDF3F7FFFFFFFFFFFFFFFFFFFFBF7F3F3E7CFCF9FDF83FFFFFFFFF
+FFFFFFFFC1F9E7F3F3EFE7E7CFEFFFFFFFFFFFFFFFFFFFFCFEFCF8FDF9F1F9FBE3FFFFFFFFFFFFFFFFFF9F3F1F3F7E7CFCFCF9FFFFFFFFFFFFFFFFFFFFCF9FBF9F1F3F9F3E7F3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3F3E7F7E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFFDFCFDF1F9F9F3F3F3E3FFFFFFFFFFFFFFFFFFBF3E7E7E7C7DF9F9FBFFFFFFFFFFFFFFFFFFFFCFBF3F1F3F7E3E7E7E7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C7CFCF8F9FCF0F3F9FFFFFFFFFFFFFFFFFFFFFF9FBE7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE7CFCFCF8FBF3E3F3F7FFFFFFFFFFFFFFFFFFDF7E7E7E7EFC7CFCFC7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC38F1F0F1F3F1E3E7E3FFFFFFFFFFFFFFFFFFFE7FBE3CFE7C7DFCFCF9FFFFFFFFFFFFFFFFFFFFCF9F9F9F3F7E7CFE7CFFFFFFFFFFFFFFFFFFFFEFCF8FCFDF1F9F9F1F7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3F3E7E7E3EFCFC7FFFFFFFFFFFFFFFFFFFCFE7CFFFCF8F3F9F1F3FFFFFFFFFFFFFFFFFFFF1F3F3F3E7EFCF9FDF9FFFFFFFFFFFFFFFFFFFFDF9F3F9FBE3F3F3E7E7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC23E7E7E7CFC7CFCF8FBFFFFFFFFFFFFFFFFFFCFCF9FFFFF1F3F1F3E7FFFFFFFFFFFFFFFFFFFF3E7F3C7CFCF8F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7F3E7CFE7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC07CF8FCF9F1F9F9E1F3FFFFFFFFFFFFFFFFFFFF1F3F7FFE7E7E3EFCFFFFFFFFFFFFFFFFFFFFE7CFC7CF9F9F1F7F3E3FFFFFFFFFFFFFFFFFFFF3E3EFE7E7CFEFCF9FCFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC0F9F3F9F1E3F3F3C3E7FFFFFFFFFFFFFFFFFFFC7E7E7CFCFCF8F9F9FBFFFFFFFFFFFFFFFFFF9F9F8F9F3F3E7EFC7CFFFFFFFFFFFFFFFFFFFFE7C7DFCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F3E7F3E3CFE7E78FCFFFFFFFFFFFFFFFFFFFF8FCFCF8F9F9F1F3F3E3FFFFFFFFFFFFFFFFFFBF3E3E7E7E7CFDF8F9FFFFFFFFFFFFFFFFFFFFCF9F1F1F1F3F3E3E7E3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3E3EFE7E7CFCFCF9FCFFFFFFFFFFFFFFFFFFFF9FCF9F1F9F3E3F3F3C7FFFFFFFFFFFFFFFFFFFF3C7E7E7CF9F9F1F3F7FFFFFFFFFFFFFFFFFFCF3F3F1F3E7E3E7C7C7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C7DFCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFFF3FBF3E7F3F7CFE7E7DFFFFFFFFFFFFFFFFFFFFEF8FCFCF9F3F3E3F7E7FFFFFFFFFFFFFFFFFFDE7E7C7EFCFC7CF8F8FFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC39FBF1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFFE7F3C7CFE78F9FCF8FBFFFFFFFFFFFFFFFFFFFFCF3F9F9E7E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCFDF1F9F9E3F7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3E3E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F9F1F7FFFFFFFFFFFFFFFFFFFF3F7F3E3EFCFCF9F9F9FFFFFFFFFFFFFFFFFFFF9F9F3FBFBE3F3F3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC03E7C7C7CF87CFCF8FBFFFFFFFFFFFFFFFFFFDF8F9F9F1F1F3F3E3E7FFFFFFFFFFFFFFFFFFFE3E7F7C7CFCF9F3F9F1FFFFFFFFFFFFFFFFFFFF9FBE7F3F3E7E7E7CFE7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8F9F9F1F9F9E3F3FFFFFFFFFFFFFFFFFFFF1F3F7E2E7E7E3CFCFFFFFFFFFFFFFFFFFFFFCFCFC78F9F9F1E7E3E3FFFFFFFFFFFFFFFFFFFF3E3CFE7C7CFCFCF9FCFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7E3F3C7E7FFFFFFFFFFFFFFFFFFFC7E7E78F8FCF9F9F9F3FFFFFFFFFFFFFFFFFF9F9F9F3F3F3EFCFC7CFFFFFFFFFFFFFFFFFFFFE7C79FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3F3E7E3E7CFE7E79FCFFFFFFFFFFFFFFFFFFFF8FCFDF1F9F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3E7E7E7C7DF9F1F9FFFFFFFFFFFFFFFFFFFFCF9F3F1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3CFE7C79FCFCF9FDFFFFFFFFFFFFFFFFFFFF9F9F9F3F3F3E7F3F7C7FFFFFFFFFFFFFFFFFFFE7C7E7E78F9F9E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3E7CFC7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C79F8F8F3F9F1F3F9FFFFFFFFFFFFFFFFFFFF3F3F3E7F3F7CFE7EF9FFFFFFFFFFFFFFFFFFFFCF9FCFCF1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7EFCF8FCF9F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39F3F1F3E7E3E3E7E3FFFFFFFFFFFFFFFFFFFE7E7C7CFEF8F9FCF9F3FFFFFFFFFFFFFFFFFFFFDF3F9F9E7E7E7DFCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F9F3E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC23E7E3E7EFC7CFCFC79FFFFFFFFFFFFFFFFFFCF8F8F9F8F1F3F1F3E7FFFFFFFFFFFFFFFFFFFF3E7F3E3CFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F9F3F3F3E3F3E7C7E7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC03E7CFCFCF8FCF9F8FBFFFFFFFFFFFFFFFFFFDF8F9F3F1F3F3E3E7E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F3FFFFFFFFFFFFFFFFFFFF9F3E7F3F3C7E7E7CFCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF9F9F9F1F9F3E3F3FFFFFFFFFFFFFFFFFFFE3F3E7E7E7EFE7CFCFFFFFFFFFFFFFFFFFFFFCFDF8F8F9FBE3E7E3E7FFFFFFFFFFFFFFFFFFFF3C7CFE7C79FCF8F9F9FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F9F7F3F3E7F3E7C7E7FFFFFFFFFFFFFFFFFFFC7EFCF8FCFDF1F9F9F3FFFFFFFFFFFFFFFFFF9F9F1F3F3E3CFCFC7DFFFFFFFFFFFFFFFFFFFFE7CF9F8F8FBF9F1F3F1FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3E7E7C7CFC7CF9FCFFFFFFFFFFFFFFFFFFFF9FCF9F1F9FBE3F3F3E7FFFFFFFFFFFFFFFFFFFF3E7E7E7879F9F1F9F7FFFFFFFFFFFFFFFFFFCF3F3F1F3E7E3E3E7E7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7CFE78F9FCF8FBF9FFFFFFFFFFFFFFFFFFFF3F9F9F7F3F3E7F7E7CFFFFFFFFFFFFFFFFFFFFE7C7EFCF8F9FBE3F3F7FFFFFFFFFFFFFFFFFFDF3F3E3E7E7E3EFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F8F9F3F9F1F3F3FFFFFFFFFFFFFFFFFFFF7F3E3E7F7E7CFF7CF9FFFFFFFFFFFFFFFFFFFFCF9FCF9F1F3F7C7E7E7FFFFFFFFFFFFFFFFFFFE7E78FCFCF8FCF9F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3F1F7E7E3E7E7C7FFFFFFFFFFFFFFFFFFFCFE7C7DFCF8F9FDF1F3FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCFCF1F9F9F1FBF3E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC07E7C7CFCF87CFCF8F9FFFFFFFFFFFFFFFFFFDF8F9F9F1F3F3F3E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF9F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7F7E7C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC07E78FCFCF0F9F9F1F3FFFFFFFFFFFFFFFFFFDF8F3F3F1F7E7E3E7EFFFFFFFFFFFFFFFFFFFFE3EFE7C7CF9F1F3FBE3FFFFFFFFFFFFFFFFFFFFBF3E7F3E7CFE7E79FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF807FC0F8F1F9F9E1F3F3E3F3FFFFFFFFFFFFFFFFFFFE3E7E7C7E7CFCFCFDFBFFFFFFFFFFFFFFFFFFDF9F8F9F9F3E7E7E7C7FFFFFFFFFFFFFFFFFFFE7C7CFE78F9FCF8F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF8FFFC1F9E7F3F3CFE7E7CFE7FFFFFFFFFFFFFFFFFFFCFCFCF8F9F9F1F9FBE3FFFFFFFFFFFFFFFFFF9F3F3F3F7E7CFCFCF9FFFFFFFFFFFFFFFFFFFFCF8F9F8F1F3F1F1F3F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF80FFC3E3CFE7C79FCFCF9FCFFFFFFFFFFFFFFFFFFFFBF9F9F3FBF3E7F3F7C7FFFFFFFFFFFFFFFFFFFF7C7E7EF8F9F9F3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3E7C7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF807FC3C7CFC78F9FCF1F3F9FFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F1F3E3F3F7FFFFFFFFFFFFFFFFFFDF3E7E3E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF803FC38F9F8F1F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C78FCFCF9FFFFFFFFFFFFFFFFFFFFCF9F9F9F3F7E7CFE7EFFFFFFFFFFFFFFFFFFFFE7CF8FCFCF1F9F9F1F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF8E3FC33F3F3E7E7E3CFCFC7FFFFFFFFFFFFFFFFFFFCFC7C79FCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF1F7F3F3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCF9F1F9F9F3F3F3E3E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFF3FC07E78FCFCF8F9F9F8F9FFFFFFFFFFFFFFFFFFDF8F9F3F1F3E3E3E7E7FFFFFFFFFFFFFFFFFFFE3E7F7C7CFDF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F3E7F3F3CFE7E7CFEFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF8E3FC0FCF1F9F9F1FBF3E3F3FFFFFFFFFFFFFFFFFFFE3F7E7E7E7EFC7CFCFFFFFFFFFFFFFFFFFFFFCFDF8F9F9FBE3E7E3E3FFFFFFFFFFFFFFFFFFFF3C7CFE7C79FCFCF9FDFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF8E3FC0F9F3F9F1E3F3F3E3E7FFFFFFFFFFFFFFFFFFFC7E7E7CFCFCF8FDF9FBFFFFFFFFFFFFFFFFFF9F9F8F1F3F3E7C7C7C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF9F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC1F3E7F3E7CFE7E7CFCFFFFFFFFFFFFFFFFFFFFCFCFCF9F9F9F1FBF3E3FFFFFFFFFFFFFFFFFFBF3E3F3E7E7CF8F8F9FFFFFFFFFFFFFFFFFFFFCF9F9F1F1F3F1E3E7F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFE07FC3C7CFE78F9FCF8F9F9FFFFFFFFFFFFFFFFFFFF3F9F9F7F3F3E7F3E7CFFFFFFFFFFFFFFFFFFFFE7C7E7CF8F9F9E3F3F7FFFFFFFFFFFFFFFFFFDF3F3E3E7E7E3C7CFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F8F1F3F9F1E7F3FFFFFFFFFFFFFFFFFFFE7F3E3EFE7C7CFEFCF9FFFFFFFFFFFFFFFFFFFFCF9FDF9F1F3F3C7E7E7FFFFFFFFFFFFFFFFFFFE7E78FCFCF8FDF9F1FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39F1F1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFFE7F3C7CFE78F9FCF8F3FFFFFFFFFFFFFFFFFFFFDF3F9F9E3E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FDF9F1F9F9E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC03E7E3E7E7E7CFCFC79FFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F1F1E7FFFFFFFFFFFFFFFFFFFF3E7F3E3C7CFCF9F8F9FFFFFFFFFFFFFFFFFFFF9F9F3F9F3E3F3F3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE07CF8FCFCF1F9F9F1F3FFFFFFFFFFFFFFFFFFDF8F3F3F1F7E7E3E7E7FFFFFFFFFFFFFFFFFFFE7CFE7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3F3E7F3E7CFE7E79FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0F9F1F9F9F3F3F3E3F7FFFFFFFFFFFFFFFFFFFE7E7E7C7EFCFCFCF9FBFFFFFFFFFFFFFFFFFFCF9F8F9FBF3E7E7E7C7FFFFFFFFFFFFFFFFFFFE7C7CFE78F9FCF8FBF9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7F3E7C7E7FFFFFFFFFFFFFFFFFFFC7E7EF8FCFCF9F9F9F3FFFFFFFFFFFFFFFFFF9F9F1F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE7C79F8F8F9F9F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1E3C7E7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9E3F3F3E3FFFFFFFFFFFFFFFFFFFF3E7E7E7C7CF9F1F9F7FFFFFFFFFFFFFFFFFFCF9F3F1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3C7CFCF8F9F8F1F3F9FFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE7CFCFCF8F3F3E3F3E7FFFFFFFFFFFFFFFFFFDF3E7E3E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F1F1F3F1E3E7E3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C79FCF8F9FFFFFFFFFFFFFFFFFFFFCFBF8F9F3F7E7C7E7CFFFFFFFFFFFFFFFFFFFFC7CF8FCFCF1F9F9F1FBFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE31F3F1E3E7E3E7E7C3FFFFFFFFFFFFFFFFFFFE7E7C7CFC78F9FCF9F3FFFFFFFFFFFFFFFFFFFF9F3F8F9E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F9F9E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE23E7C3E7CFC7CFCF8F9FFFFFFFFFFFFFFFFFFCF8F8F9F8F1F3F1E3E7FFFFFFFFFFFFFFFFFFFF3E7F3E3CFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F9F3FBF3E3F3F7C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC07CF8FCFDF1F9F9E1F3FFFFFFFFFFFFFFFFFFFF1F3F3F1E7E7E3CFCFFFFFFFFFFFFFFFFFFFFC7CFC7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFE7E79FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0F9F1F9F3E3F3F3C3E7FFFFFFFFFFFFFFFFFFFC7E7E7C7CFCF8F9F9FBFFFFFFFFFFFFFFFFFFDF9F8F9F3F3E7E7C7C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF8F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9E7F3F3E7E7E7CFE7FFFFFFFFFFFFFFFFFFFC7E7CF8FCFCF1F9F9E3FFFFFFFFFFFFFFFFFF9FBF1F3F3F3CFCFC78FFFFFFFFFFFFFFFFFFFFE7CF9F8F8F1F9F1F3FBFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3C7E7C7DFCFCF9FCFFFFFFFFFFFFFFFFFFFF9FCF9F1F9F9E3F3F3C7FFFFFFFFFFFFFFFFFFFF3C7E7E7C79F9F1F1F7FFFFFFFFFFFFFFFFFFCF3F3F1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3C79FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFFF3F9F3E7F3F7CFE7E79FFFFFFFFFFFFFFFFFFFFE78FCFCF8F3F3E3E7E7FFFFFFFFFFFFFFFFFFDE3E7C7E7EFC7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE39F3F1F3F3E1E3E7E3FFFFFFFFFFFFFFFFFFFE7F3C7CFE7C79FCF8F3FFFFFFFFFFFFFFFFFFFFDFBF9F9F3E7E7CFC7CFFFFFFFFFFFFFFFFFFFFC7CF8FCF9F1F9F9F1F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE33F3F1E7E7E3E7E7C7FFFFFFFFFFFFFFFFFFFCFE7C7DFCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF9F3FBF3E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF1F9F9F1FBF3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE07E787C7CF8FCF9F8F9FFFFFFFFFFFFFFFFFFDF8F9FBF1F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF8F3F9F1FFFFFFFFFFFFFFFFFFFF9F9E7F3F3E7F7E7CFE7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8F8F9F1F9F3E3F3FFFFFFFFFFFFFFFFFFFF1F3F7E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFCFCF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7F3E7C7E7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF1F9F9F3FFFFFFFFFFFFFFFFFF9F9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9F8F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1FBE7F3E3CFE7E7CFCFFFFFFFFFFFFFFFFFFFFC7CFCF8FDF9F1F9F3E3FFFFFFFFFFFFFFFFFFBF1F3F3F3E7CFCF879FFFFFFFFFFFFFFFFFFFFEF8F9F8F9F3F1F1F3F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3C7CFE7C78FCF8F9F9FFFFFFFFFFFFFFFFFFFF9F9F9F3F9F3E3F3F7C7FFFFFFFFFFFFFFFFFFFE7C7E7E78F9F9E1F3F7FFFFFFFFFFFFFFFFFFDF3F3F1F7E7E3E7E7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3C79F8F8F3F9F1F3F3FFFFFFFFFFFFFFFFFFFF3FBF3E7F3E7CFE7EF9FFFFFFFFFFFFFFFFFFFFCF9FCF8F1F3F3E3E7E7FFFFFFFFFFFFFFFFFFFE7E7C7EFCFC7CF8F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3BF3F1F3E7E3E7E7E7FFFFFFFFFFFFFFFFFFFE7F7C7CFE78F9FCF9F3FFFFFFFFFFFFFFFFFFFF9F3F9F9E7E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FDF9F1F9F9E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3F3E7E7E3CFCFC7DFFFFFFFFFFFFFFFFFFCFC7C79FCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF1F3F3F3E7E7CF9FCF9FFFFFFFFFFFFFFFFFFFFCFCF1F9F9F1F3F3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE07E787CFCF8F9F9F0F9FFFFFFFFFFFFFFFFFFDF8F9F3F1F3F3E3E3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F9E7F3F3E7E7E7CFE7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE0FCF8F9F9F1F3F3E3F3FFFFFFFFFFFFFFFFFFFF3F3E7E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFCFCFCF8F9F9E3E7E3E3FFFFFFFFFFFFFFFFFFFF3E3CFE7C7CFCFCF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE1F9F7F3F3E7E3E7C7E7FFFFFFFFFFFFFFFFFFFC7E7CF8FCF9F1F9F9E3FFFFFFFFFFFFFFFFFFDF9F1F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE7C79FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE1F3E7F3E3CFE7E7CFCFFFFFFFFFFFFFFFFFFFFC7CFCF8FDF9F1F9F3E3FFFFFFFFFFFFFFFFFFFF3E3F3F7E7CFCF8F9FFFFFFFFFFFFFFFFFFFFCF8F9F8F1F3F1F1E7F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3C7CFE7879FCF8F9F9FFFFFFFFFFFFFFFFFFFF9F9F9F3F3F3E7F3E7CFFFFFFFFFFFFFFFFFFFFE7C7E7EF8F9F9E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3E7EFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE38F9F8F9F3F9F1F7F3FFFFFFFFFFFFFFFFFFFF3F3E3E7E7E7CFE7CF9FFFFFFFFFFFFFFFFFFFFCF8FCFDF1F3F3C7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8FCF8F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3BF3F1F7E7E3E7E7C7DFFFFFFFFFFFFFFFFFFE7E7C7CFEF8F9FDF1F3FFFFFFFFFFFFFFFFFFFFDF3F9FBE7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F9F9E3F3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE33F7F3E7E7E7CFCFC7DFFFFFFFFFFFFFFFFFFCFE7CF9FCF9FBF9F1F7FFFFFFFFFFFFFFFFFFFF9F7F3F3E7EFCF9FCF9FFFFFFFFFFFFFFFFFFFFCFDF1F9F9F1F3F3E3E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFFBF3F7F7F7CFDFCFDFBFFFFFFFFFFFFFFFFFFEF9FBF9FBF3FBF3F7F3FFFFFFFFFFFFFFFFFFFE7F7F7EFF7EFDFEFFFBFFFFFFFFFFEFF7F7FFEFDFBFDFFF7FFFFFFFFC3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFE7C7E7E78F9F9F1F3F3FFFFFFFFFFFFFFFFFFFF3F3F1F7E7E3EFEFC7FFFFFFFFFFFFFFFFFFFCFC7C7DFCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF1F3F3F3E7E7EF9FCFC3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3E7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8FCFDF8FFFFFFFFFFFFFFFFFFFFDF8F9FBF1F3F3E1E3E7FFFFFFFFFFFFFFFFFFFE3E7E3C7CFCF8F3F9F03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFCFBFDF9F3F3E7C7E7E7FFFFFFFFFFFFFFFFFFFE7EF8FCFCF1F9F9F1FFFFFFFFFFFFFFFFFFFF9F9F3F3F1E7E7E3E7CFFFFFFFFFFFFFFFFFFFFE3CFC7C7DF9F1F3F1E03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFF1F3F3F3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCFDF1F9F9E3F3F3E3F7FFFFFFFFFFFFFFFFFFFC7E7E7C7EFCF8FCF9FFEFFFFFFFFFFFFFFFFFCF9F8F9F3F3E7E7C7C43FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F7C7CFCF9F3F9F1FFFFFFFFFFFFFFFFFFFFBFBE7F3F3EFE7E7CFCFFFFFFFFFFFFFFFFFFFFC7CFCF8F8F9F1F9FBE3C3FFFFFFFFFFFFFFFFDF3F1E3E7E7CFCF8F9E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFEFCFCF8F9F9F3E7F3E3FFFFFFFFFFFFFFFFFFFF3E7CFE7C79FCFCF9FDFFFFFFFFFFFFFFFFFFFF9F9F9F3F3F3E7F3F7C7CFFFFFFFFFFFFFFFFFFE7C7E7C78F9F9E3F3E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF9F8FBFBF3E7E7E7C7FFFFFFFFFFFFFFFFFFFE7C7CFEF8F9FCF9F3F9FFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3CFE7E7CFCFFFFFFFFFFFFFFFFFFE7C78FCF8FBF3E3F3E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3F3F7F7E7CFCFCF9FBFFFFFFFFFFFFFFFFFFEF9F9F9F1F3F1E3E7F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C7DFCFCF9FFFFFFFFFFFFFFFFFFFFCFBF8F9F3F3E7CFE7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFE7C7E7EF8F9F9E3F3F3FFFFFFFFFFFFFFFFFFFF3F3E3E7E7E3CFCFC7FFFFFFFFFFFFFFFFFFFCFC7879FCF8FBF9F1F3FFFFFFFFFFFFFFFFFFFF1E3F1E3E7E7CF9FCF83FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFCF9FCF9F1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E78FCFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F8F9F3F1F3F3E3E3E7FFFFFFFFFFFFFFFFFFFE3E7E3C7CFCF1F3F9E03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFCF3F9F9F3F7E7CFE7CFFFFFFFFFFFFFFFFFFFFEFCF8FCFDF1F9F9F3F7FFFFFFFFFFFFFFFFFFDF1F3F3F1E7E7E3C7CFFFFFFFFFFFFFFFFFFFFC7CFC7879F9F1E3F3E03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFF1E7F3E3E7EFCF9FCF9FFFFFFFFFFFFFFFFFFFFDF9F3F9F3E3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7E7C7CFCF8FCF9F3FFFFFFFFFFFFFFFFFFDF9F8F1F1F3E7EFC7C63FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFE3CFE7C7CF9F1F3F9F3FFFFFFFFFFFFFFFFFFFFBF3E7F3E7CFE7E7DFCFFFFFFFFFFFFFFFFFFFF8FCFCF8F9F9F1F9F3E3FFFFFFFFFFFFFFFFFFFF3E3E3E3E7CFDF8F9E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF9F8F9F9FBE3E7E3E7FFFFFFFFFFFFFFFFFFFF7C7CFE7CF9FCF8FBF9FFFFFFFFFFFFFFFFFFFF3F9F9F3F3F3E7F3E7C7FFFFFFFFFFFFFFFFFFFE7C7C7C78F9FBE3F3E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF9F8FBF3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C7DFCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFFF3F9F3E7F3F3CFE7E78FFFFFFFFFFFFFFFFFFFFE78FCFCF0F3F3E3E3C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF3E3E7E7C7DF9F8F9FBFFFFFFFFFFFFFFFFFFEF9FBF1F1F3F1F3E7E3FFFFFFFFFFFFFFFFFFFE7F3C7CFE7879FCF8F1FFFFFFFFFFFFFFFFFFFFCF3F9F9E3E7E7CFE7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3F3FFFFFFFFFFFFFFFFFFFF3F7E3E7E7C3CFCFC7FFFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F9F1B7FFFFFFFFFFFFFFFFFFFF1E7F3E3E7CFCF9F8F83FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFCF9FDF9F3F3E7C7E7E7FFFFFFFFFFFFFFFFFFFE7EF8FCFCF0F9F9F1FFFFFFFFFFFFFFFFFFFFDF8F3F3F1F3E7E3E607FFFFFFFFFFFFFFFFFFFE3CFC7C7CF9F1F3F9E03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFF1F3F3F3E7E7EF9FCFCFFFFFFFFFFFFFFFFFFFFCF9F1F9F9E1F3F3E3F7FFFFFFFFFFFFFFFFFFFE3E7E7C7E7CFC7CF0FFFFFFFFFFFFFFFFFFFFCF9F8F9F1F3E3E7C3C43FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFE3E7F3E3CFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F1F3FBF3E3F7F3C7E7FFFFFFFFFFFFFFFFFFFC7E7EF8FCFCF8F9E1F3FFFFFFFFFFFFFFFFFFDF9F0F3F3F3E7CFC7CC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFC7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFE7E79FCFFFFFFFFFFFFFFFFFFFF8FCFCF1F9F9F1F3F3E3FFFFFFFFFFFFFFFFFFFF3C3E7E7C78F9F0F9E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF9F8F9F3F3E7E7C7C7FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF8F3F9FFFFFFFFFFFFFFFFFFFF3F9F9E7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE787CFCF8F3F3E3F3E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF3E3F3E7E7CFDF8F9FBFFFFFFFFFFFFFFFFFFEF9F9F1F1F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C7CFCFCF9FFFFFFFFFFFFFFFFFFFFCF1F9F9F3E7E7C7E7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF7C7E7E7CF9F9F1F9F3FFFFFFFFFFFFFFFFFFFF3F3F1F3E7E3E7E7C7FFFFFFFFFFFFFFFFFFFEFE7C7CFC78F9FCF0F3FFFFFFFFFFFFFFFFFFFF9F3F9FBE7E7E79FC7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFEF8FCFCF9F3F3E3F7E7FFFFFFFFFFFFFFFFFFFE7E7C7E7CFC7CFCF8FFFFFFFFFFFFFFFFFFFFDF8F9F9F8F1F3F1F1E7FFFFFFFFFFFFFFFFFFFE3E7F3E3CFCF8F3F8F03FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFDF3F9F9F7C7E7CFEFCFFFFFFFFFFFFFFFFFFFFCFCF8FCF9F1F9F9F3F7FFFFFFFFFFFFFFFFFFFF1F3F3F1E7E7E3E7CFFFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F1E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF3E7F3E3EFCF8F9F9F9FFFFFFFFFFFFFFFFFFFF9F9F3F9F3E3F3F3E7E7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF8F8F9FBFFFFFFFFFFFFFFFFFFDF9F8F1F3F3E7C7C3C63FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F7C7CFCF0F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F7F3F3E7E7E7CFE7FFFFFFFFFFFFFFFFFFFC7CFCF8FCFDF1F9F9E3FFFFFFFFFFFFFFFFFFDF3E1F3F3E7CFCFC39E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFEFCF8F8F9F9F3E7F3E3FFFFFFFFFFFFFFFFFFFF3E3EFE7C7CFEFCF9FCFFFFFFFFFFFFFFFFFFFF9FDF9F1F9F1E3F3F3E7FFFFFFFFFFFFFFFFFFFF3C7E7E78F9F9F073E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF9F1F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE7C79FCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFFF3FBF3E7F3F7CFE7E7DFFFFFFFFFFFFFFFFFFFFC78FCFCF1F3F3E2E3E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF3E7E7E7C7DF9F1F9FBFFFFFFFFFFFFFFFFFFCF9F3F1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFFE7F3C7CFE7CF9FCF8F9FFFFFFFFFFFFFFFFFFFF8F3F9F9E7E7E7CFC7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7E7EF8F9FBE3F3F3FFFFFFFFFFFFFFFFFFFF3F3F3F7E7E3E7CFC7FFFFFFFFFFFFFFFFFFFCFC7C79FCF8F9F9F1F3FFFFFFFFFFFFFFFFFFFF9F3F3F3E7E7C79FCFC3FFFFFFFFF
+FFFFF07FE3FFFFFFFFFFFFFFFFFFCF8FCF9F3F3F3C7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCF8FCFDF8FFFFFFFFFFFFFFFFFFFF9F8F9F9F1F1F3E1E3E7FFFFFFFFFFFFFFFFFFFE3E7E3C7CFCF0F339F03FFFFFFFFF
+FFFFF07FC3FFFFFFFFFFFFFFFFFF9F3F9FBE7E7E7DFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FDF9F1F9FBE3F7FFFFFFFFFFFFFFFFFFFF1F3F7E3E7E7E7CFCFFFFFFFFFFFFFFFFFFFFC7CF8F8F9F9E1E7E3E23FFFFFFFFF
+FFFFE07FE3FFFFFFFFFFFFFFFFFE3E7F3E7CFCF8FBF9F9FFFFFFFFFFFFFFFFFFFF9F9F3F3F3E7F3F7C7E7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF9F9F9F3FFFFFFFFFFFFFFFFFFDF9F0F3F3F3CFCFC7CE3FFFFFFFFF
+FFFFE07FC3FFFFFFFFFFFFFFFFFE3CFE7C7DF9F1F3F9E3FFFFFFFFFFFFFFFFFFFFBF3E7F3F3EFE7E7CFCFFFFFFFFFFFFFFFFFFFFCFCFCF8FCF9F1F9F3E3FFFFFFFFFFFFFFFFFFFF3E1F3E7C7CFCF879E3FFFFFFFFF
+FFFFC07FC3FFFFFFFFFFFFFFFFFEFDF8F9F9FBE3E7E3E7FFFFFFFFFFFFFFFFFFFF3C7CFE7C79FCFCF9FDFFFFFFFFFFFFFFFFFFFFBF9F9F3FBF3E3F3E7C7FFFFFFFFFFFFFFFFFFFE7C7E7EF8F9F9E1F3E3FFFFFFFFF
+FFFFCC7FC3FFFFFFFFFFFFFFFFFFF3F1F3F3E7CFCFC79FBFFFFFFFFFFFFFFFFFFEF8F9F8F8F3F871F3F3FFFFFFFFFFFFFFFFFFFF7F3F3E7F3E7CFE7EF9FFFFFFFFFFFFFFFFFFFFCF9FCF9F1F3F3C3E7E3FFFFFFFFF
+FFFF8C7FC3FFFFFFFFFFFFFFFFFFE7C7E7E78F9F9F1F1F3FFFFFFFFFFFFFFFFFFCF3F3F1F3E7E267E7C7FFFFFFFFFFFFFFFFFFFEFE7C7CFEF8F9FCF9F3FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7E79FCFC3FFFFFFFFF
+FFFF887FC3FFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3F3FFFFFFFFFFFFFFFFFFFF3F3E3E7E7E36FCFC7FFFFFFFFFFFFFFFFFFFCFC7CF9F8F8F1F9F1F3FFFFFFFFFFFFFFFFFFFF1E7F3E3E7CFCE9FCF83FFFFFFFFF
+FFFF803FC3FFFFFFFFFFFFFFFFFFCF9FDF9F3F3E7C7E7E7FFFFFFFFFFFFFFFFFFFE7E7CFCFCF9FDF9F9FFFFFFFFFFFFFFFFFFFFDF8FBF3F1F3F7E3E3E7FFFFFFFFFFFFFFFFFFFE3CFE7C7CF8F1E3F9E03FFFFFFFFF
+FFFF803FC3FFFFFFFFFFFFFFFFFF9F3FBF3E7EFCF9FCFDFFFFFFFFFFFFFFFFFFFFCFCF1F9F9F1FBF3E3F7FFFFFFFFFFFFFFFFFFFE3F7E7E3E7E7C7CFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F3E3E7E3C03FFFFFFFFF
+FFFFFC7FE3FFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F9E7FBF3E7F7E7CFE7FFFFFFFFFFFFFFFFFFFC7EFCF8FCFDF1F9F9F3FFFFFFFFFFFFFFFFFFDF1F1F3F3E3CFCFC78E3FFFFFFFFF
+FFFFFC7FE3FFFFFFFFFFFFFFFFFE7CFC7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFFBF3E7F3E7CFE7E79FCFFFFFFFFFFFFFFFFFFFF8FCFCF0F9F9F1F1F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7C7CF9F8F9E3FFFFFFFFF
+FFFFFC7FE3FFFFFFFFFFFFFFFFFFF9F8F9F3F3E7E7E7C7FFFFFFFFFFFFFFFFFFFE7C7CFE7CF9FCF8FBF9FFFFFFFFFFFFFFFFFFFF3F9F9F3F3F3E7E3E7CFFFFFFFFFFFFFFFFFFFFE7C7EFCF8F9F3E3F3E3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF3E3F3E7E7CFCF8F9FBFFFFFFFFFFFFFFFFFFEF8F9F8F1F3F9F1E7F3FFFFFFFFFFFFFFFFFFFE7F3E3E7E7E78FE7CF9FFFFFFFFFFFFFFFFFFFFCF1F9F9F3F3E7C7E7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFE7C7E7CF8F9FBF3F3F3FFFFFFFFFFFFFFFFFFFF3F3F1E7E7E3E7EFC7FFFFFFFFFFFFFFFFFFFCFC7C7CFCF8F9FDF1F3FFFFFFFFFFFFFFFFFFFF1E3F3F3E7E7CF9FCFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7CFCFCF8F3F3E3F3F7FFFFFFFFFFFFFFFFFFFF7E7E3E7E7E7CFCFC7FFFFFFFFFFFFFFFFFFFCF8F8F9F8F1F3F1F1E7FFFFFFFFFFFFFFFFFFFE1E7F3E3CFCF8F9F9F83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF3F9F9F7E7E7CFE7EFFFFFFFFFFFFFFFFFFFFE7CF8FCFCF9F9F9F1FFFFFFFFFFFFFFFFFFFFDF1F3F3F1E7E7E3E7EFFFFFFFFFFFFFFFFFFFFC3CFC7C79F9F1F3F1E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E7F3E3E7CFCF9FDFDFFFFFFFFFFFFFFFFFFFFCFDF1F9F9E3F3F3E3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7C7CFCFCF8FFFFFFFFFFFFFFFFFFFFCF9F8F9F3F3E7E7C7C63FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3CFE7C7CFDF1F3F9F3FFFFFFFFFFFFFFFFFFFF9F3E7F3F3CFE7E7CFEFFFFFFFFFFFFFFFFFFFFCFCFCF8FCF9F1F9FBE3FFFFFFFFFFFFFFFFFFBF3F3F3E7E7CFCFC79E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFC78F9F9F1F7F3E3FFFFFFFFFFFFFFFFFFFF3F3E7E7E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9E3F3F3E3FFFFFFFFFFFFFFFFFFFF3E7E7E7C78F9F8F9E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF9F8F3F3F3E7EFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF1F3F9FFFFFFFFFFFFFFFFFFFF3F9F9E7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFE78FCFCF8F9F3E3F3E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E3E7E7E7CF9F8F9FBFFFFFFFFFFFFFFFFFFEF9F9F1F1F3F1F3F7F3FFFFFFFFFFFFFFFFFFFE7F3E7CFE7C79FCF8F9FFFFFFFFFFFFFFFFFFFFCFBF9F9F3E3E7C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7CFCFCF8F9F3E3F3F7FFFFFFFFFFFFFFFFFFFF3F3F3E7E7E3EFCFC7FFFFFFFFFFFFFFFFFFFCFC7C79FCF8FBF9F1F3FFFFFFFFFFFFFFFFFFFF1E3F3E3E7E7CF9FCF83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FCFCF1F3F3E3E7E7FFFFFFFFFFFFFFFFFFFE7E7E7E7EFC7CFCFCFFFFFFFFFFFFFFFFFFFFCF8F9F9F9F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFC78F3F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F9F9E7F7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCF9F1F9F9E3F7FFFFFFFFFFFFFFFFFFDF1F3F3F3E7E7E3CFCFFFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E3F3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF3E7F3E3CFCFCFBFDF9FFFFFFFFFFFFFFFFFFFF9F9F3F9F3E3F3F3C7E7FFFFFFFFFFFFFFFFFFFC7E7E7CFCFCF8F9F9FBFFFFFFFFFFFFFFFFFF9F9F8FBF3F3E7CFC7CE3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE7CFC7C79F9F1F7F3E3FFFFFFFFFFFFFFFFFFFF3F3E7F3F7CFE7E7DFCFFFFFFFFFFFFFFFFFFFF8FCFCF9F9F9F1FBF3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFCF8F9E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFEFCF8F8F9FBF3E7F3E3FFFFFFFFFFFFFFFFFFFF3E7EFE7E7CFEFCF9FCFFFFFFFFFFFFFFFFFFFF9FDF9F1F9FBE3F3F3C7FFFFFFFFFFFFFFFFFFFF3C7E7E7879F9F1F1E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF9F1F3F3F7EFCFC7CFFFFFFFFFFFFFFFFFFFFE7C7DFCF8F9FDF1F3F9FFFFFFFFFFFFFFFFFFFF3FBF3E7F3F7CFE7E7CFFFFFFFFFFFFFFFFFFFFE78FCFCF0F3F3E3F3C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFF7C7E7E7C7DF9F9F9F3FFFFFFFFFFFFFFFFFFEF9FBF1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFFE7F7C7CFE7C79FCF8FBFFFFFFFFFFFFFFFFFFFFCF3F9F9E367E7CFC7C3FFFFFFFFF
+FFFFFFFFE3FFFFFFFFFFFFFFFFFFEF8FCFCF8FBF3E3F3F7FFFFFFFFFFFFFFFFFFFF3E7E3E7E7E7CFCFC7FFFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F9F1E3FFFFFFFFFFFFFFFFFFFF1E7F3E3C7CFCF9F8F83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCF9FDF9F1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCFCFCFDF8FFFFFFFFFFFFFFFFFFFFDF8F9F9F1F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF0F3F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF9F3F9FBE7E7E7DFCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F9FBE3F7FFFFFFFFFFFFFFFFFFFF3F3F7E3E7E7E3CFCFFFFFFFFFFFFFFFFFFFFC7CFCF8F9B9E1E7F3E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7F3E7CFCF9FBF9F9FFFFFFFFFFFFFFFFFFFF9F9F3FBF3E3F3F7C7E7FFFFFFFFFFFFFFFFFFFC7E7EF8FCFCF9F9F9F3FFFFFFFFFFFFFFFFFFDF9F9F3F3F3C7CFC7CE3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFEFCFC78F9F9F1F7F3E3FFFFFFFFFFFFFFFFFFFF3F3E7F7E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9F3F3F3E3FFFFFFFFFFFFFFFFFFFF3C3E7E7C7CF9F0F9E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFFDF8F9F9FBE3E7E7C7FFFFFFFFFFFFFFFFFFFF3E7CFE7C7DFCFCF9F9FFFFFFFFFFFFFFFFFFFFBF9F9F3F9F3E7F3F7C7FFFFFFFFFFFFFFFFFFFE7C7E7C68F9F9F1F3E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFFBF1F3F3E7CFCFCFDFBFFFFFFFFFFFFFFFFFFE7CF9FCF8FBF9F1F3FBFFFFFFFFFFFFFFFFFFFF7F3F3E7F7E7CFE7CF9FFFFFFFFFFFFFFFFFFFFCF8FCF9F1F3F3E3E7E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF7C7E7E78F9F9F3FBF3FFFFFFFFFFFFFFFFFFEFBF3F1F7F7E3E7E7C7FFFFFFFFFFFFFFFFFFFEFE7C7CFEF8F9FCF9F3FFFFFFFFFFFFFFFFFFFF9F3F9F9E7E7E79FCFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3F7E7FFFFFFFFFFFFFFFFFFFF7E7E7E7EFC7CFCFCFFFFFFFFFFFFFFFFFFFFDF8F9F9F8F1F3F1E3E7FFFFFFFFFFFFFFFFFFFE3E7F3E3CFCF8F1F9F03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFCFBF9F9F3F7F7C7E7EFFFFFFFFFFFFFFFFFFFFE7E7CFCFCF8FDF9F9FFFFFFFFFFFFFFFFFFFFDF8FBF3F1F3F7E3E7E7FFFFFFFFFFFFFFFFFFFE3CFE7C7CFDF1F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1F3FBF3E7E7EF9FCFDFFFFFFFFFFFFFFFFFFFFCFCF9F9F9F1FBF3E3F7FFFFFFFFFFFFFFFFFFFE3F7E7E7E7CFC7CFCFFFFFFFFFFFFFFFFFFFFCF9F8F9F1FBE3E7E3C23FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3E7E7C7CFCF9F3F9F3FFFFFFFFFFFFFFFFFFFF9F9F3F3F3E7F7E7CFE7FFFFFFFFFFFFFFFFFFFC7EFCF8FCF9F1F9F9F3FFFFFFFFFFFFFFFFFF9FBF1F3E3F7CFCFC78E3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFEFDFCFCF9FBF3F7F3E3FFFFFFFFFFFFFFFFFFFFBF7EFF7FFFFEFEFDFFFFFFFFFFFFFFFFFFFFFFBFDFDF3F9FBE3F3F3E7FFFFFFFFFFFFFFFFFFFF7C7E7E7CF9F9F1F1E3FFFFFFFFF
+FFFFFFFFC27E7C7CFCF8FCFDFDF9FFFFFFFFFFFFFFFFFFFFEFDFDFDFBFBFDFFF7FFFFFFFFFFFFFFFFFFFE3EFE7C7CFDF9F3F9F3FFFFFFFFFFFFFFFFFFFF9F9F7F3F7EFF7E7FFEFFFDFEFCF9FBFBE3F7E3FFFFFFFFF
+FFFFFFFFC07EF8FCFCF9F9F9F1FBFFFFFFFFFFFFFFFFFFDFCF9FBF9F9F3F9E3F7FFFFFFFFFFFFFFFFFFFC7CFC7CF9F9F1F7FBE3FFFFFFFFFFFFFFFFFFFFBF3E7F7F7CFE7E7DFCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FDF1F9F9F3F3F3E3F7FFFFFFFFFFFFFFFFFFFF1F3F3F3E7E7E3E7EFFFFFFFFFFFFFFFFFFFF9F9F8FBF3F3E7EFE7CFFFFFFFFFFFFFFFFFFFFE7C7CFE7CF9FCF8FBF9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1FBE7F3F3CFE7E7CFCFFFFFFFFFFFFFFFFFFFFC7E7E7CFCFCF8FDFDFBFFFFFFFFFFFFFFFFFFBF3E3F7E7E7CFDFCF9FFFFFFFFFFFFFFFFFFFFCF8F9F8F9F3F9F1F7F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E7CFE7C79FCF8F9F9FFFFFFFFFFFFFFFFFFFF8FCFCF9F9F9F1FBF3E3FFFFFFFFFFFFFFFFFFFE7C7EFCF8F9F3E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3E7C7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7CFEF8F9FCF1F3F9FFFFFFFFFFFFFFFFFFFFBFDF9F3F9FBE3F3F3E3FFFFFFFFFFFFFFFFFFFCF8FCFCF9F3F3E7F7E7FFFFFFFFFFFFFFFFFFDF3E7E3E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39F9F9F1F3F1E3E7E3FFFFFFFFFFFFFFFFFFFF3FBF3E7F3E7CFE7E7CFFFFFFFFFFFFFFFFFFFFDF3F9F9F7E7E7CFEFCFFFFFFFFFFFFFFFFFFFFE7CF8FCFCF9F9F9F1F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3E3E7E7E3EFCFC7DFFFFFFFFFFFFFFFFFFE7F7C7CFE78F9FCFCF9FFFFFFFFFFFFFFFFFFFF3E7F3E3E7CFCF9FDF9FFFFFFFFFFFFFFFFFFFFCF9F1F9F9E3F3F3E3E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC07E7CFCFCF8F9F9F1F9FFFFFFFFFFFFFFFFFFDFCF9F9F8F9F3F9F1F3FFFFFFFFFFFFFFFFFFFE7CFE7C7DF9F1F3FBE3FFFFFFFFFFFFFFFFFFFF9FBE7F3F3CFE7E7CFCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC07CF8FCF9F1F9F9E3F3FFFFFFFFFFFFFFFFFFDF8FBF3F1F1F3F3E3E7FFFFFFFFFFFFFFFFFFFCFCFC78F9F9E3E7F3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F9F3E3F3F3E7E7FFFFFFFFFFFFFFFFFFFE3F3E7E3E7E7E3CFCFFFFFFFFFFFFFFFFFFFF9F9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF0F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F3E7F3F7CFE7E79FCFFFFFFFFFFFFFFFFFFFFC7EFEF8FCFCF9F9F9FBFFFFFFFFFFFFFFFFFFFF3E7E7E7C79F9F9F9F7FFFFFFFFFFFFFFFFFFCF9F3F9F1F3F1F1E7F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7CFE78F9FCF8FBF9FFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9F3F3F3E3FFFFFFFFFFFFFFFFFFFE7C7CFCF8FBF3E3F3E7FFFFFFFFFFFFFFFFFFDF3F3E3E7E7E3CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7DFCF8FBF9F1F3F9FFFFFFFFFFFFFFFFFFFF3F9F9F3FBF3E7F3F7C7FFFFFFFFFFFFFFFFFFFCF9FCFDF1F3F3E7E7E7FFFFFFFFFFFFFFFFFFFE7E7E7E7CFC7CFCF8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39FBF1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFFE7F3E3EFF7E7CFE7E79FFFFFFFFFFFFFFFFFFFF9F3F9F9E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCFDF1F9F9F3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33E7E3E7E7E7CFCFC79FFFFFFFFFFFFFFFFFFEFE7C7CFCF8F9FCF8F3FFFFFFFFFFFFFFFFFFFE3E7F3E7CFCF8F3F9F9FFFFFFFFFFFFFFFFFFFF9F9F3F9F3E3F3F3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC07CF8FCFCF1F9F9F1F3FFFFFFFFFFFFFFFFFFFF8F9F1F1F1F3F1F3E7FFFFFFFFFFFFFFFFFFFC7CFC7CF9F9F1E7F3E3FFFFFFFFFFFFFFFFFFFF3F3E7F3E7CFE7E79FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8FDF9F1FBF3E3F3FFFFFFFFFFFFFFFFFFFF9F3F3F1F3E7E3E7E7FFFFFFFFFFFFFFFFFFFCFDF8F9F9F3E3E7E3C7FFFFFFFFFFFFFFFFFFFF3E3CFE7C7CFCFCF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7F7E7C7E7FFFFFFFFFFFFFFFFFFFE7E7E7C7E7CFC7CFCFFFFFFFFFFFFFFFFFFFF9F3F1F3F3E7CFCFC79FFFFFFFFFFFFFFFFFFFFE7C79FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3E7E7E7CFE7EF9FCFFFFFFFFFFFFFFFFFFFFCFCFCF8FCF9F1F9F9F3FFFFFFFFFFFFFFFFFFFF7C7E7E78F9F9F1F3F7FFFFFFFFFFFFFFFFFFCFBF3F1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7DFCF8F9FCF1F3F9FFFFFFFFFFFFFFFFFFFFBF9F9F3FBFBE3F3F3E3FFFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3E7E7FFFFFFFFFFFFFFFFFFDF7E7E3E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F8F8F3F9F1F3F3FFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3E7E3E7C7FFFFFFFFFFFFFFFFFFFCF9FDF9F3F3E7C7E7E7FFFFFFFFFFFFFFFFFFFE7E7CFCFCF8FCF9F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3F1F3E7E3E7E7C7FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C7CFEFCF9FFFFFFFFFFFFFFFFFFFF9F7F3F3E7E7CF9FCFCFFFFFFFFFFFFFFFFFFFFCFCF8FDF9F1F9F3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC27E7C7E7CFC7CFCF8F9FFFFFFFFFFFFFFFFFFCFC7CF9FCF8F9FDF1F3FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F3F3F3E7F3E7C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8FCF9F1F9F9E3F3FFFFFFFFFFFFFFFFFFFF8FBF3F1F3F3F3E3E7FFFFFFFFFFFFFFFFFFFCF8F8F8F9F9E3E7E3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF1F9F9F1FBF3E3F3FFFFFFFFFFFFFFFFFFFF1F3F7F3E7E7E3E7EFFFFFFFFFFFFFFFFFFFFDF9F8F9F3F3E7E7C7C7FFFFFFFFFFFFFFFFFFFF7C7CFE7C79FCF8F9F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F1E7F3F3E7F7E7CFE7FFFFFFFFFFFFFFFFFFFC7E7E7CFCFCF8FCFDFFFFFFFFFFFFFFFFFFFFBF3F3F3F7E7CFDF8F9FFFFFFFFFFFFFFFFFFFFEF8F9F8F8F3F9F1F3F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3EFE7C7CFCFCF9FDFFFFFFFFFFFFFFFFFFFF8FCFCF1F9F9F1F9F9E3FFFFFFFFFFFFFFFFFFFE7C7E7CF8F9F9E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1F3E7E3E7E7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C79FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFFF3F9F9F7F3F3E7F3F7C7FFFFFFFFFFFFFFFFFFFCF9FCFDF1F3F3C7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7E7CFC7CFCF8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F8F1F3F1F1E7F3FFFFFFFFFFFFFFFFFFFF3F3F3E7F3F7CFE7E7CFFFFFFFFFFFFFFFFFFFFCFBF9F9F3E7E7CFE7CFFFFFFFFFFFFFFFFFFFFE7EF8FCFCF8F9F9F1FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3F1F7E7E3E7CFC7DFFFFFFFFFFFFFFFFFFE7F7C7CFE7CF9FCFCF9FFFFFFFFFFFFFFFFFFFF1F7F3E3E7EFCF9FDFDFFFFFFFFFFFFFFFFFFFFCFDF1F9F9F1F3F3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFE0FFC27E7C7CFCF8FCF9F8F9FFFFFFFFFFFFFFFFFFCF8F8F9F8F8FBF9F1F3FFFFFFFFFFFFFFFFFFFE3EFE7C7CFDF1F3FBF3FFFFFFFFFFFFFFFFFFFF9FBE7F3F3E7F7E7CFE7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC0FCF8FDF9F1F9FBE3F3FFFFFFFFFFFFFFFFFFFF1F3F3F1F3E7E3E7E7FFFFFFFFFFFFFFFFFFFCFDF8F9F9F3E3E7E3E7FFFFFFFFFFFFFFFFFFFF3E7CFE7C7CFCFCF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC0F9F1F9F9E3F3F3E3E7FFFFFFFFFFFFFFFFFFFE3F7F7E3E7E7E3EFCFFFFFFFFFFFFFFFFFFFF9F9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFE78F9FCF8FBF9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFCE3FC1F3E7F3F3CFE7E7CFCFFFFFFFFFFFFFFFFFFFFC7E7EF8FCFCF8FDF9FBFFFFFFFFFFFFFFFFFFBF3E3F7E7C7CF9F8F9FFFFFFFFFFFFFFFFFFFFCF9F9F8F1F3F1F1F7F3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFE3FC3C3CFE7C79FCFCF9F9FFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9F1F9F3E3FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E7E7E3E7C7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFF03FC3879F8F8F3F9F1F3FBFFFFFFFFFFFFFFFFFFFF3F9FBE7F3F3E7F3E7C7FFFFFFFFFFFFFFFFFFFCF9F9F9F3F3E7C7E7E7FFFFFFFFFFFFFFFFFFFE7E7C7CFCF87CF9F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFF07FC38F9F9F1F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7F3F3E7F3E7CFE7E7CFFFFFFFFFFFFFFFFFFFFDF3F9F9E7E7E78FCFCFFFFFFFFFFFFFFFFFFFFEFCF8FCFCF1F9F9F1F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFF03FC33F3F3E7E7E3E7CFC7DFFFFFFFFFFFFFFFFFFCFE7C7CFEF8F9FCF8F9FFFFFFFFFFFFFFFFFFFF3E7F3E3EFCF0F9FDF9FFFFFFFFFFFFFFFFFFFFDF9F1F9F9E3F3F3E3E3FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFE3FC07C78FCFCF8F9F9F9F9FFFFFFFFFFFFFFFFFFDF8F9F9F8F1F3F1F1F3FFFFFFFFFFFFFFFFFFFE7CFC7C79F9F1F3F3E3FFFFFFFFFFFFFFFFFFFFBF3E7F3F3CFE7E7CFC7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFF3FC0FCF1F9F9F1F9F3E3F3FFFFFFFFFFFFFFFFFFFF1F3F3E3E7E7E3E7EFFFFFFFFFFFFFFFFFFFFDF9F8F9FBF3E7E7C7C7FFFFFFFFFFFFFFFFFFFF7C7CFE7C7DFCF8F9FC7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFCF3FC1F9F3F9F3E3F3F3C7E7FFFFFFFFFFFFFFFFFFFE3F7E7C3E7E7C7CFCFFFFFFFFFFFFFFFFFFFF9F9F0F3F3F3CFCFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFCF8F9FCF1F3F8FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFF863FC1F3E7F7F7CFE7E7DFCFFFFFFFFFFFFFFFFFFFFC7CFCF8FCFCF9F9F9F3FFFFFFFFFFFFFFFFFFBF3C7E7E7C79F9F1F9FFFFFFFFFFFFFFFFFFFFCF9FBF9F1F3F1E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFC03FC3C7CFE7879FCF8F9F9FFFFFFFFFFFFFFFFFFFF9F9F9F3F9F9F3F3F3E3FFFFFFFFFFFFFFFFFFFE78FCFCF8FBF3E3F3E7FFFFFFFFFFFFFFFFFF9F3F7E3E7E7E3C7CFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFE0FFC38F9F9F1F3F9F1E3F3FFFFFFFFFFFFFFFFFFFF7F3F3E7F3F3EFE7E7CFFFFFFFFFFFFFFFFFFFFCFBF9F9F3F7E7CFE7CFFFFFFFFFFFFFFFFFFFFE7E78FCFCF8FDF9F1FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39F3F1F3F3E3E3E7F3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7E7CFE7E79FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCF9F1F9F9E1F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3E3E7E7C7CFCFC7DFFFFFFFFFFFFFFFFFFCFC7C7DFCF8F9FCF9F3FFFFFFFFFFFFFFFFFFFE3E7F3E7CFCF8F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F3FBF3E3F3F3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8FCFCF8F9F9F1FBFFFFFFFFFFFFFFFFFFDF8F9FBF1F3F3F1F3E7FFFFFFFFFFFFFFFFFFFC7CFC78F9F9F1E7F3E3FFFFFFFFFFFFFFFFFFFF3F3E7F3E7CFE7E79FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FDF1F9F9F3F3F3E3F7FFFFFFFFFFFFFFFFFFFE3F3F7E3E7E7E3EFEFFFFFFFFFFFFFFFFFFFFDF9F8F3F3F3E7CFC7CFFFFFFFFFFFFFFFFFFFFE7C7CFE78F9FCF8F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7F3F3C7E7FFFFFFFFFFFFFFFFFFFC7E7E7C7CFCFC7CFCFFFFFFFFFFFFFFFFFFFF9FBF1F3F3E7CFCFC7DFFFFFFFFFFFFFFFFFFFFE7CF9FCF8F9F9F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3F3E7F7E7CFE7E79FCFFFFFFFFFFFFFFFFFFFF8FCFCF8FDF9F1F9F9F3FFFFFFFFFFFFFFFFFFFF7C7E7E78F9F9F1FBF7FFFFFFFFFFFFFFFFFFCF3F3F1F3F3E1E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7CFEF8F9FCF9F3F9FFFFFFFFFFFFFFFFFFFF3F9F9F3F9FBE3F3F3E7FFFFFFFFFFFFFFFFFFFEF8FCFCF1F3F3E3F7E7FFFFFFFFFFFFFFFFFF9F7E7E7E7E7C7CFCFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39F9F8F1F3F1F3E7F3FFFFFFFFFFFFFFFFFFFE7F3E3E7F3E7CFE7E7CFFFFFFFFFFFFFFFFFFFFDF3F9F9E7E7E7CFCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCFCF1F9F9F1FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3BF3F1F3E7E3E7E7E3FFFFFFFFFFFFFFFFFFFE7F3E7CFE7C7DFC7CF9FFFFFFFFFFFFFFFFFFFF9F3FBF3E7E7CF9FCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1F9F3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC37F7E7E7EFC7CFCFC79FFFFFFFFFFFFFFFFFFCFC7CF9FCF8F3F9F1F3FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F3F3F3E7F3E3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC07CF8FCFDF1F9F9F3FBFFFFFFFFFFFFFFFFFFDF8FBF3F1F3E3F3E1E7FFFFFFFFFFFFFFFFFFFCFCF8F8F9F9F3E7E3E3FFFFFFFFFFFFFFFFFFFF3E3E7E7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F9F3E3F3F3E3E7FFFFFFFFFFFFFFFFFFFE3F7E7E3E7C7C7CFCFFFFFFFFFFFFFFFFFFFFDF9F9F3F3F3EFCFC7CFFFFFFFFFFFFFFFFFFFFE7C78FCF8F9FCF1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F3E7F3E7EFE7E7DFCFFFFFFFFFFFFFFFFFFFFC7EFCF8FCFDF1F9F9F3FFFFFFFFFFFFFFFFFFBF3E7E7E7C7DF9F1F9F7FFFFFFFFFFFFFFFFFFCF9FBF1F3F3F1E3E7E3FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C3E7E7E7CFEFCF9FCFFFFFFFFFFFFFFFFFFFF8FCFCF8F9F9F1F9FBE3FFFFFFFFFFFFFFFFFFFE7C7E7CF8F9F9E3F3F7FFFFFFFFFFFFFFFFFFDF3F3F1E3E7E3E3E7C7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3C7DFCF8F9F8F1F3F9FFFFFFFFFFFFFFFFFFFF3F9F9F7F3F3E7F3F7C7FFFFFFFFFFFFFFFFFFFCF9FCF9F1F3F3C7E7E7FFFFFFFFFFFFFFFFFFBE7E7C7E7CFC7CFCF8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC39FBF1F3F3F3E3E7E3FFFFFFFFFFFFFFFFFFFE7F3E3EFE7E7CFE7CF9FFFFFFFFFFFFFFFFFFFF9F3F9F3E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8FCF9F1F9F9E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F7E3E7E7E7CFCFC7DFFFFFFFFFFFFFFFFFFCFC7C7DFCF8F9FCF1F3FFFFFFFFFFFFFFFFFFFE3E7F3C7CFCF8F3F9F1FFFFFFFFFFFFFFFFFFFF9F9F3FBF3E3F3F3C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC27E7C7CFCF8FCFDF8F9FFFFFFFFFFFFFFFFFFCF8F8F9F8F1F3F9F1F3FFFFFFFFFFFFFFFFFFFE3EFE7C7CF9F1F3F9E3FFFFFFFFFFFFFFFFFFFF9F3E7F3F3E7E7E7CFE7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF8F9F9F1F9FBE3F3FFFFFFFFFFFFFFFFFFFF1F3F3F1F7E7E3E7E7FFFFFFFFFFFFFFFFFFFCF9F8F9F9F3E7E7E3C7FFFFFFFFFFFFFFFFFFFF3C3CFE7C7CFCFCF9FCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC1F9F3F3F3E7F3F7C7E7FFFFFFFFFFFFFFFFFFFC7E7E7C7CFCFC7CFCFFFFFFFFFFFFFFFFFFFF9F3F1F3F3E7CFCFC79FFFFFFFFFFFFFFFFFFFFE7CF9F8F8F9F9F1F3F9FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC3E3E7E7E7CFE7CF9FCFFFFFFFFFFFFFFFFFFFF8FCFCF8FDF9F1F9F9F3FFFFFFFFFFFFFFFFFFBE7C7E7EF8F9F9F1F3F7FFFFFFFFFFFFFFFFFFDFBF3F1F3F3E3E3E7E3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C7CFE7C7CFCFCF9F9FFFFFFFFFFFFFFFFFFFF9FCFDF1F9F9F3F3F3E3FFFFFFFFFFFFFFFFFFFE7C7CFCF8F9F3E3F3F7FFFFFFFFFFFFFFFFFF9F3F3E3E7E7E3C7CFC7FFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC38F9F8F8FBF9F1F3FBFFFFFFFFFFFFFFFFFFFF3F9F3E7F3F3CFE7E7CFFFFFFFFFFFFFFFFFFFFCF9F9F9F3F3E7C7E7EFFFFFFFFFFFFFFFFFFFBE7E7CFCFCF8FCF9F8FFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC33F3F1F3F7E3E7E7C7FFFFFFFFFFFFFFFFFFFE7F7E7CFE7C7CFCFCF9FFFFFFFFFFFFFFFFFFFF1F3F3F3E7E7CF9DCFDFFFFFFFFFFFFFFFFFFFFCFCF1F9F9F1F9F3E3F7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC27E7C7E7EFC7CFCFCF9FFFFFFFFFFFFFFFFFFCFC78F9F8F8F3F9F1F3FFFFFFFFFFFFFFFFFFFE3E7E7C7CFCF1F3F9F1FFFFFFFFFFFFFFFFFFFF9F9E7F3F3E7F3E7C7E7FFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC27E78FCFCF8FDF9F1F9FFFFFFFFFFFFFFFFFFDF8F9F9F1F1F3F1F3E7FFFFFFFFFFFFFFFFFFFC7CFC7CF9F9F1F7F3E3FFFFFFFFFFFFFFFFFFFF3E3E7F3E3CFE7E7CFCFFFFFFFFFFFFFFFFFFE3FFFFFFFFF
+FFFFFFFFC0FCF1F9F9F1FBF3E3F3FFFFFFFFFFFFFFFFFFFE1F3F3E3E7E7E3EFCFFFFFFFFFFFFFFFFFFFF9F9F8FBF3F3E7C7C7C7FFFFFFFFFFFFFFFFFFFE7C7CFE78F9FCF8F1F8FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F9E7F3F3E7F7E7CFE7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF8F8F9FBFFFFFFFFFFFFFFFFFFBF3E3F7E7C7CF8F8F9FFFFFFFFFFFFFFFFFFFFCF8F9F8F0F3F1F1E3F3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3E3CFE7C7CFEFCF9FCFFFFFFFFFFFFFFFFFFFF8FCFCF1F9F9F1F9F3E3FFFFFFFFFFFFFFFFFFFE7C7EFCF8F9F1E3F3F7FFFFFFFFFFFFFFFFFF9F3F3F1E3E7E3E7E7C3E5FFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C7CFE78F9FCF8FBF9FFFFFFFFFFFFFFFFFFFF1F9F9F3F9FBE3F3F3E3FFFFFFFFFFFFFFFFFFFE78FCFCF8F3F3E3E3E7FFFFFFFFFFFFFFFFFF1E3E7E3E7E7C3CFCFC6FDFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC38F9F8F8F3F9F1E7F3FFFFFFFFFFFFFFFFFFFE3F3E3E7F3E3CFE7E7CFFFFFFFFFFFFFFFFFFFFDF3F9F9F3E7E7CFE7CFFFFFFFFFFFFFFFFFFFBC7CF8FCFCF8F9F9F1FFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3F3F7E7E3E7EFC7FFFFFFFFFFFFFFDFFDFC7E7C7CFE78F9FCF8F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFDFDF9F9F9F1FBFBE3FFFFFFFFFFFFFFFE7FFC3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3FBF3F7F7CFCFCF1F9FFFFFFFFFDFBFFF9F3E78F9F8F8F3F9F9FFF3FFFFFFFFFFFFFFFFFFFE7F3E3E7E3E7CFC7CF9FFFFFFFFFFFFFFFFFFFFC78FCFCF0F3F3E3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF3E3F7E7C7CFCF071FBFFFFFFFFFFFFFFFFFFCF9F9F1F1F3F1F3E7E3FFFFFFFFFFFFFFFFFFFE7F3E3CFE7C78FCF8F1FFFFFFFFFFFFFFFFFFFFCF9F8F9F0E3E3C3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE7C7E7CF8F9F1E1C1F3FFFFFFFFFFFFFFFFFFDF3F3E1E7E7E3EFEFC7FFFFFFFFFFFFFFFFFFFCFC7879F8F8F3F1F1E3FFFFFFFFFFFFFFFFFFFF1F3F1E3E3C7C78FCB83FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFC79FCF9F1F3F3C783E7FFFFFFFFFFFFFFFFFFFE7E787CFCF8F9F9F1FFFFFFFFFFFFFFFFFFFF9F8F1F3F1F3E3E3E7C7FFFFFFFFFFFFFFFFFFFE3E7E3C7CF8F0F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF0F3F9F3E7C7CF9F87CFFFFFFFFFFFFFFFFFFFFCFCF0F9F9F1F3F3E3E7FFFFFFFFFFFFFFFFFFBE3E3E7C3E7CF878F8FFFFFFFFFFFFFFFFFFFFC7CF878F9F1E1E7E3C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFF1E3F3E3C7CF8F9F8F9FFFFFFFFFFFFFFFFFFFF9F9F3F9F1E3F3F3C7E7FFFFFFFFFFFFFFFFFFFC7E7E78FCFCF0F9F9FFFFFFFFFFFFFFFFFFFF8F9F8F1F1F3E3E7C3C03FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFE3CFE7C78F9F1F3F1E3FFFFFFFFFFFFFFFFFFFFBF3E7F3E3CFE7E7CFCFFFFFFFFFFFFFFFFFFFF8FCFCF0F9F9E1F3F3E7FFFFFFFFFFFFFFFFFF9F3E1F3E3C7CFCF079C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFEF9F8F9F1F3E3E7C3C7FFFFFFFFFFFFFFFFFFFE3C7CFC78F9FCF8F1F9FFFFFFFFFFFFFFFFFFFF3F9F9E3F3F3C7E7E7CFFFFFFFFFFFFFFFFFFFFE7C7C7C78F9F9E1F3C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFF1F1F3E3C1CFCF879FBFFFFFFFFFFFFFFFFFFC78F9F8F0F3F1F1E7F3FFFFFFFFFFFFFFFFFFFE7F3E3C7E3C78FCF8F1FFFFFFFFF87FFFFFFFFFC78F8F8F0F3E3C3E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFE3E3E7E7801F8F0F3F3FFFFFFFFFFFFFFFFFFCF9F3F1F1F3E1E3E7C3FFFFFFFFFFFFFFFFFFFE7E7C7CFE0079F8F0F3FFFFFFFFF01FFFFFFFFF8F1F9F9E1E3E787C7C3FFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFC7C7C7CF801F3E3F3E3FFFFFFFFFFFFFFFFFFDF3E3E3E7C7C3CFCF87FFFFFFFFE07FFFFFFFFCF878F9F800F3F1E1E7FFFFFFFF800FFFFFFFFE1E3F3E3C7C7CF9FCF03FFFFFFFFF
+FFFFFFFFC3FFFFFFF03FFFFFFFFFCF9F9F9F070E7C7E7C7FFFFFFFFE03FFFFFFFFE7CF8FCC030F9F9E1F7FFFFFFFC01FFFFFFFF9F0F3F3E03867E3C7CFFFFFFFFF8FCFFFFFFFFC3C7C7C78F8F1F3F1E03FFFFFFFFF
+FFFFFFFFC3FFFFFFC00FFFFFFFFF1F3F3E3E0FC0F9FCFCFFFFFFFFF801FFFFFFFFCF9F1F98001F3F3E3E7FFFFFFF8F8FFFFFFFFFC3E7E7C0FE0F8F8F9FFFFFFFFF1FE7FFFFFFFCF8F8F8F1F1E3E7C3C03FFFFFFFFF
+FFFFFFFFC3FFFFFF810FFFFFFFFE3E7F3C3C1FC0F1F9F9FFFFFFFFF871FFFFFFFF9F9F3F10F03F3E7C7E7FFFFFFF1F8FFFFFFFFFC7C7C780FF0F1F9F9FFFFFFFFF3FE3FFFFFFF9F9F8F1F063E7C7C7C43FFFFFFFFF
+FFFFFFFFC3FFFFFF8FC7FFFFFFFE3CFC78783FE1E3F3E3FFFFFFFFF3FCFFFFFFFF3E3E7E33FCFE7CF9FCFFFFFFFF3FCFFFFFFFFF8FCF8F01FF1E3F3F3C7FFFFFFF3FE3FFFFFFFBF3E3E3E0078F8F0F9C3FFFFFFFFF
+FFFFFFFFC7FFFFFF1FE3FFFFFFFFF9F8F1F07FE3C7C7C7FFFFFFFFF3FC7FFFFFFE7C78FC67FC7CF1F3F9FFFFFFFF7FE7FFFFFFFF3F1F1E71FF9CFE7E78FFFFFFFF7FF3FFFFFFFFE7C7C7C0071F1E3F3C3FFFFFFFFF
+FFFFFFFFC7FFFFFF3FF1FFFFFFFFF3E3E3E27FE38F879FBFFFFFFFE7FE7FFFFFFCF8F9F1E7FE71E3E7E3FFFFFFFE7FE7FFFFFFFE7E3C3CF1FFB9FCF0F1FFFFFFFF3FE3FFFFFFFFCF9F8F8FC23E3C7E7C3FFFFFFFFF
+FFFFFFFFC3FFFFFF3FF1FFFFFFFFE3C7E7E77FE39F1F1F3FFFFFFFE7FE7FFFFFFCF9F3F1E7FE63E3E7C3FFFFFFFE7FE7FFFFFFFC7C7C7CF1FFB9F8F1F3FFFFFFFF3FE7FFFFFFFF8F1F9F0FE27E78FC783FFFFFFFFF
+FFFFFFFFC7FFFFFF3FF1FFFFFFFFE78FCFCF3FE73E3F3E7FFFFFFFE7FE7FFFFFFDE3E7C3C7FE07CFCF87FFFFFFFF7FE7FFFFFFF8F8F8F9F1FF33E1E3E7FFFFFFFF1FE7FFFFFFFE1E3F3C1FF0F8F9F8F03FFFFFFFFF
+FFFFFFFFC3FFFFFF1FF1FFFFFFFFCF1F9F9E1FCE7CFE7CFFFFFFFFE7FE7FFFFFFFC7CF8F87FC1F9F9E3F7FFFFFFF3FEFFFFFFFF9F1F3F3E8FF07C3CFCFFFFFFFFF8FCFFFFFFFFC3C7C781FF0F1F3F1E03FFFFFFFFF
+FFFFFFFFC3FFFFFF1FE3FFFFFFFF1E3F3E3C8788F9FCF9FFFFFFFFF3FCFFFFFFFF8F8F1F13FC3F3F3C3E7FFFFFFF3FCFFFFFFFFFC7E7E784784F0F9F9FFFFFFFFF079FFFFFFFFCF8F8F03FF1E3E7C3C03FFFFFFFFF
+FFFFFFFFC3FFFFFF8FE7FFFFFFFE3E7F3C7C8700F3F9F1FFFFFFFFF3FCFFFFFFFF9F9E3F13FC7E7E7C7E7FFFFFFF9F8FFFFFFFFFC7C7CF86384F1F9F1EFFFFFFFE0783FFFFFFF9F1F0F11FF3C7CFC7843FFFFFFFFF
+FFFFFFFFC3FFFFFF87CFFFFFFFFE7CFC78780701E7F3E3FFFFFFFFF9F8FFFFFFFF3E3E7E30F1FC7CF9F8FFFFFFFFCF1FFFFFFFFF9F8F9F00380E3E3E3CFFFFFFF83F807FFFFFFBF3C3E39FF38F9F0F1C3FFFFFFFFF
+FFFFFFFFC3FFFFFF838FFFFFFFFFF9F0F3F01FE04FC7C7FFFFFFFFE0F07FFFFFFE7C78FC407018F1F3F9FFFFFFF85F03FFFFFFFF3F1F3E01FF00FE7C79FFFFFFF1FFFC3FFFFFFFE787C79FE31F3E3E3C3FFFFFFFFF
+FFFFFFFFC3FFFFFC07807FFFFFFFF3C3E3E1FFFC0F8F9FBFFFFFFF00F81FFFFFFCF8F1F080FC01E3E7E3FFFFFFF0FFE1FFFFFFFE7E3C7C0FFFE1FCF0F3FFFFFFE3FFFF1FFFFFFFCF1F8FCFC63E3C7C7C3FFFFFFFFF
+FFFFFFFFC3FFFFFC3FC03FFFFFFFE3C7E7C3FFFE1F1F1F3FFFFFFF03FE1FFFFFFCF3F3F107FE03E7CFC7FFFFFFE1FFF0FFFFFFFCFC7C783FFFF1F9F1F3FFFFFFE7FFFF9FFFFFFF8F3F9F07847E78FC7C3FFFFFFFFF
+FFFFFFFFC3FFFFF0FFFE1FFFFFFFC78FCFC7FFFF1C3E3E7FFFFFFC1FFF8FFFFFFDE7E7C23FFFC3CF8F8FFFFFFFC7FFFCFFFFFFF9F8F9F07FFFF9E1E3E7FFFFFFEFFFFFCFFFFFFE1E7F3C070078F1F8F03FFFFFFFFF
+FFFFFFFFC7FFFFF3FFFF8FFFFFFF8F3F9F07FFFF9CFC7CFFFFFFF8FFFFC7FFFFFFCFCF8E7FFFF19F9E3F7FFFFF8FFFFE7FFFFFFBF1F3F0FFFFF8C3CFCFFFFFFFCFFFFFCFFFFFFC3CFC780FC061E3F1E03FFFFFFFFF
+FFFFFFFFC7FFFFE7FFFFCFFFFFFE1E7F3C0FFFFF91F8F9FFFFFFF0FFFFE3FFFFFF9F9F1CFFFFF83E3C7E7FFFFF9FFFFE3FFFFFFFC7E7E0FFFFFC0F9F9FFFFFFFCFFFFFEFFFFFF8F9F8F0FFFC03C7C3C03FFFFFFFFF
+FFFFF0FFC7FFFFE7FFFFCFFFFFFE3E7E3C0FFFFF83F9F1FFFFFFF1FFFFE1FFFFFF9F9E38FFFFFC7E7CFE7FFFFFBFFFFF3FFFFFFFC7CFC9FFFFFC1F1F3EFFFFFFCFFFFFEFFFFFF9F9F0F3FFFE07CFC7843FFFFFFFFF
+FFFFC03FC7FFFFEFFFFFE7FFFFFEF8F8784FFFFFC7E3E3FFFFFFF3FFFFF1FFFFFF3E3C78FFFFFCFCFBF9FFFFFFBFFFFF1FFFFFFF9F9F99FFFFFC3E3E7CFFFFFFCFFFFFEFFFFFFBF3C3E7FFFF0F9F0F1C3FFFFFFFFF
+FFFFC03FC7FFFFCFFFFFE7FFFFFFF1F0F3CFFFFFCFC78FFFFFFFF3FFFFF1FFFFFE7C78F1FFFFFCF1F7F1FFFFFFBFFFFF1FFFFFFF3F3E39FFFFFCFC7C79FFFFFFCFFFFFEFFFFFFFE787C7FFFF9F3E3E3C3FFFFFFFFF
+FFFFCE3FC7FFFFCFFFFFE7FFFFFFF3C3E7CFFFFF9F0F9F3FFFFFF7FFFFF1FFFFFCF9FBF1FFFFFCE3E7C3FFFFFFBFFFFF1FFFFFFE7E7C79FFFFFCF8F1F3FFFFFFEFFFFFCFFFFFFFCF1F8FFFFF8E7C7C7C3FFFFFFFFF
+FFFFCF3FC7FFFFCFFFFFE7FFFFFFE7C7C7CFFFFF9E1F3F3FFFFFF7FFFFF1FFFFFCF3F3F1FFFFFCE7CFC7FFFFFFBFFFFF1FFFFFFCFC7C79FFFFFCF1F1E3FFFFFFEFFFFFCFFFFFFF0F3F0FFFFFCC78FCF83FFFFFFFFF
+FFFFFE3FC7FFFFEFFFFFE7FFFFFFCF9FCF8FFFFF9C3E7E7FFFFFF3FFFFF1FFFFFFE7E7C0FFFFFC9F9F0FFFFFFFBFFFFF3FFFFFF9F8F1F0FFFFFDE3E7C7FFFFFFE7FFFFDFFFFFFE1E7E0FFFFFC0F1F9E03FFFFFFFFF
+FFFFFE3FC3FFFFEFFFFFE7FFFFFF9F3F1F27FFFF38FCFCFFFFFFF3FFFFF3FFFFFFCFCF8CFFFFFD1F3E3F7FFFFF9FFFFE3FFFFFFBE3F3E0FFFFF987CF8FFFFFFFF3FFFF1FFFFFFC7CFC4FFFFFC1E3E3C03FFFFFFFFF
+FFFFF87FC7FFFFE7FFFFCFFFFFFE3E7E3C23FFFF31F9F1FFFFFFF9FFFFE3FFFFFF9F9E3EFFFFF93E7C7E7FFFFFC7FFFE7FFFFFFFC7E7C67FFFF31F9F1FFFFFFFF9FFFC3FFFFFF9F9F0CFFFFFC7C7C7803FFFFFFFFF
+FFFFF0FFC7FFFFF3FFFFCFFFFFFE7CF87871FFF863E3E3FFFFFFF8FFFFCFFFFFFF3E3E7E7FFFE27CF9FCFFFFFFE3FFFCFFFFFFFF9F8F9F0FFFC63F3E3CFFFFFFFC7FE0FFFFFFFBF3C3CFFFFF9F8F0F9C3FFFFFFFFF
+FFFFE0FFC7FFFFF3FFFF9FFFFFFEF9F8F8F87FF0E7C3C3FFFFFFF87FFFCFFFFFFF3C7CFE3FFFE2F8F1F9FFFFFFE1FFF8FFFFFFFF3F9F9F03FF867E7E7CFFFFFFFC3FE1FFFFFFFBE3C7CFFFFF9F9E1F1C3FFFFFFFFF
+FFFFC1FFC7FFFFF8FFFE1FFFFFFFF1F1F3E43FE18F879FBFFFFFFE1FFF1FFFFFFE78F9F90FFF07F1E3F3FFFFFFF87FE3FFFFFFFE7F3E3CC1FF0CFCF8F9FFFFFFF87FE0FFFFFFFFC78FC7FFFF9F3C3E3C3FFFFFFFFF
+FFFFC01FC7FFFFFC3FF07FFFFFFFE3C7E7C07FE01E1F3F3FFFFFFF07FC3FFFFFFCF3F3F1C7FE1FEFCFC7FFFFFFFC7FE7FFFFFFFCFC7C7801FF81F9F1F3FFFFFFF1FFFC1FFFFFFF8F3F93FFFF3E78FC7C3FFFFFFFFF
+FFFFC01FC7FFFFFC3FE0FFFFFFFFCF8FCF81FFF83C3E7E7FFFFFFF83FE3FFFFFFDE7E7C387FE13CF9F8FFFFFFFE1FFF1FFFFFFF9F8F9F01FFFE1E3E3C7FFFFFFC7FFFF8FFFFFFE1E7F30FFFC78F1F8F03FFFFFFFFF
+FFFFC03FC7FFFFF87FF07FFFFFFFCF1F9F83FFFE3C7E7C7FFFFFFF07FE0FFFFFFFE7E78F0FFF039F9F1FFFFFFFC3FFF8FFFFFFF9F9F3F01FFFF1C3C7CFFFFFFF8FFFFFC7FFFFFE3C7E387FF870F3F9E03FFFFFFFFF
+FFFFFFFFC3FFFFF1FFFE1FFFFFFF1E3F3E0FFFFF09FCF8FFFFFFF81FFF87FFFFFFCFCF0E3FFFE13F3E3F7FFFFF87FFFC3FFFFFFBE7E7E0FFFFF80F8F9FFFFFFF1FFFFFE3FFFFFC78F87C3FF1E1E7E3C03FFFFFFFFF
+FFFFFFFFC3FFFFC7FFFF87FFFFFE3C7E7C1FFFFFC3F9F1FFFFFFF0FFFFE1FFFFFF9F9E307FFFF87E7CFCFFFFFF3FFFFF1FFFFFFFC7CFC1FFFFFE1F1F3EFFFFFC7FFFFFF3FFFFF9F1F0F03FF0C7CFC7843FFFFFFFFF
+FFFFFFFFC7FFFF0FFFFFE3FFFFFEF8F8F83FFFFFE3E3C3FFFFFFE7FFFFF87FFFFF3E3C61FFFFFE78F9F9FFFFFE7FFFFFCFFFFFFF3F9F87FFFFFF1E3E7CFFFFF8FFFFFFF9FFFFFBE3C3E1FFFC0F9F0F1C3FFFFFFFFF
+FFFFFFFFC7FFFF1FFFFFE3FFFFFFF9F8F07FFFFFE3C7C7FFFFFFC7FFFFFC3FFFFE7C7CC3FFFFFE31F3F9FFFFFCFFFFFFE7FFFFFF3F9F07FFFFFF0E7E78FFFFF9FFFFFFFDFFFFFFE7C7C3FFFE1F1E3F3C3FFFFFFFFF
+FFFFFFFFC7FFFC3FFFFFF9FFFFFFF3E1F07FFFFFF18F9FBFFFFF8FFFFFFE1FFFFCF8F98FFFFFFF01E7F3FFFFFDFFFFFFF3FFFFFE7F3C0FFFFFFFC0F8F3FFFFF3FFFFFFFCFFFFFFCF8F8FFFFF8E3C3E7C3FFFFFFFFF
+FFFFFFFFC7FFF8FFFFFFFCFFFFFFE7C7C1FFFFFFF83F3F3FFFFF9FFFFFFF9FFFFDF3F30FFFFFFF87CFC7FFFFF9FFFFFFF3FFFFFCFC781FFFFFFFE1F1F3FFFFE7FFFFFFFE7FFFFF9F3F1FFFFFC478FCF83FFFFFFFFF
+FFFFFFFFC7FFF9FFFFFFFC7FFFFFCF8F83FFFFFFFC3E7E7FFFFF3FFFFFFFCFFFFFE7E73FFFFFFFCF9F0FFFFFF3FFFFFFF9FFFFF9F8F11FFFFFFFE1E7C7FFFFEFFFFFFFFE3FFFFE3E7E3FFFFFE0F1F9F03FFFFFFFFF
+FFFFFFFFC7FFF1FFFFFFFE7FFFFFCF1F83FFFFFFFC7E7CFFFFFE3FFFFFFFC7FFFFE7C77FFFFFFFCF9E1FFFFFF3FFFFFFF9FFFFFBF1F33FFFFFFFF1CFCFFFFFEFFFFFFFFF3FFFFE3C7C3FFFFFE0F3F1E03FFFFFFFFF
+FFFFFFFFC7FFF7FFFFFFFE1FFFFF1E7F07FFFFFFFC3CF9FFFFFE7FFFFFFFE7FFFFCF8E7FFFFFFFE73C7E7FFFE7FFFFFFFCFFFFFFC7E63FFFFFFFF99F9FFFFFCFFFFFFFFF1FFFFCF8F87FFFFFF1E7C3C03FFFFFFFFF
+FFFFFFFFC7FFE7FFFFFFFF1FFFFE3CFC27FFFFFFFE39E3FFFFFCFFFFFFFFF3FFFF9F1CFFFFFFFFE07CFCFFFFC7FFFFFFFCFFFFFF8FCE7FFFFFFFFC3F3EFFFFDFFFFFFFFF9FFFF9F1E0FFFFFFF8CF878C3FFFFFFFFF
+FFFFFFFFC3FFEFFFFFFFFF9FFFFEF9F8CFFFFFFFFE03C7FFFFFCFFFFFFFFF3FFFF3C7CFFFFFFFFF0F1F9FFFFCFFFFFFFFE7FFFFF3F9C7FFFFFFFFC3E7CFFFFDFFFFFFFFF9FFFFBE3C1FFFFFFFE1E1F1C3FFFFFFFFF
+FFFFFFFFC3FFCFFFFFFFFF8FFFFFF9F8CFFFFFFFFE07CFFFFFFCFFFFFFFFF3FFFE7C78FFFFFFFFF1F3F9FFFF8FFFFFFFFE7FFFFF3F1C7FFFFFFFFC7E79FFFF9FFFFFFFFFDFFFFFE7C3FFFFFFFE1E3F3C3FFFFFFFFF
+FFFFFFFFC3FFCFFFFFFFFFCFFFFFF3E3CFFFFFFFFF0F9FBFFFF9FFFFFFFFF9FFFCF8F9FFFFFFFFF1E7E3FFFF8FFFFFFFFE7FFFFE7F3C7FFFFFFFFCF0F3FFFF9FFFFFFFFFCFFFFFCF07FFFFFFFE3C7E7C3FFFFFFFFF
+FFFFFFFFC7FFDFFFFFFFFFCFFFFFE7C7CFFFFFFFFF0F3F7FFFF9FFFFFFFFF9FFFDF3F1FFFFFFFFF9CFC7FFFF9FFFFFFFFF7FFFFCFC78FFFFFFFFFEE1E7FFFFBFFFFFFFFFCFFFFF1E07FFFFFFFF39FCF83FFFFFFFFF
+FFFFFFFFC7FFDFFFFFFFFFE7FFFFCF9F8FFFFFFFFF8E7E7FFFF9FFFFFFFFF9FFFFE7E1FFFFFFFFF89F1FFFFF9FFFFFFFFF7FFFF9F8F0FFFFFFFFFEC7C7FFFFBFFFFFFFFFCFFFFE3E0FFFFFFFFF33F9E03FFFFFFFFF
+FFFFFFFFC3FFDFFFFFFFFFE7FFFF8F3F8FFFFFFFFF8C7CFFFFF9FFFFFFFFF9FFFFC7C1FFFFFFFFFC9E3F7FFF9FFFFFFFFF7FFFFBF1F0FFFFFFFFFECFCFFFFFBFFFFFFFFFCFFFFC3C0FFFFFFFFF23F1E03FFFFFFFFF
+FFFFFFFFC3FF9FFFFFFFFFE7FFFE1E7F1FFFFFFFFF88F9FFFFFBFFFFFFFFF9FFFF8F99FFFFFFFFFC3C7E7FFF9FFFFFFFFF7FFFFFC7E1FFFFFFFFFE1F9FFFFFBFFFFFFFFFCFFFF8F89FFFFFFFFF87C3C03FFFFFFFFF
+FFFFFFFFC3FF9FFFFFFFFFE7FFFE3CFC1FFFFFFFFF81E3FFFFFBFFFFFFFFFDFFFF9E3BFFFFFFFFFC79FCFFFFBFFFFFFFFF7FFFFF8FC9FFFFFFFFFE3F3CFFFFBFFFFFFFFFCFFFF9F19FFFFFFFFF8F878C3FFFFFFFFF
+FFFFFFFFC7FF9FFFFFFFFFE7FFFEF9F88FFFFFFFFF83C7FFFFF3FFFFFFFFFDFFFF3C7BFFFFFFFFFCF3F9FFFFBFFFFFFFFF7FFFFF3F99FFFFFFFFFE3E7CFFFF9FFFFFFFFFCFFFFBE39FFFFFFFFF9F1F1C3FFFFFFFFF
+FFFFFFFFC7FF9FFFFFFFFFE7FFFFF9F88FFFFFFFFF87CFFFFFF3FFFFFFFFFDFFFE787BFFFFFFFFFCF3F9FFFFBFFFFFFFFF7FFFFF3F19FFFFFFFFFEFC79FFFF80000FFFFFCFFFFFE79FFFFFFFFF9E3F3C3FFFFFFFFF
+FFFFFFFFC7FF9FFFFFFFFFE7FFFFF3C780000000000F9FBFFFF3FFFFFFFFFDFFFCF8F3FFFFFFFFFCE7E3FFFF9FFFFFFFFF7FFFFE7E380C00000000F0F3FFFF80000000000FFFFFCF3FFFFFFFFF9C7E7C3FFFFFFFFF
+FFFFFFFFC7FF9FFFFFFFFFE7FFFFE787C0000000000F3E7FFFF3FFFFFFFFFDFFFDF3E1FFFFFFEC00CFC7FFFF80000000007FFFFCF8780000000000E1E7FFFFFFFFFFFFFFFFFFFF1E3FFFFFFFFF99FCF83FFFFFFFFF
+FFFFFFFFC7FF800000000007FFFFCF1FFFFFFFFFFFFE7C7FFFF80000000001FFFFE7C000000000009F1FFFFFFFFFF800007FFFF9B0F3FFFFFFFFFFC7CFFFFFFFFFFFFFFFFFFFFE3E3FFFFFFFFF93F9E03FFFFFFFFF
+FFFFFFFFC7FF800000000007FFFF8F3FBFFFFFFFFFFCFCFFFFF80000000001FFFFC7C000000000011E3F7FFFFFFFFFFFFFFFFFFBE1F7FFFFFFFFFFCFCFFFFFFFFFFFFFFFFFFFFC3C3FFFFFFFFF83F1E03FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFE1E7E3C3CFCF8F1F9F1FFFFFFFFFFFFFFFFFFFF9F9FFFFFFFFFFF3C7E7FFFFFFFFFFFFFFFFFFFC7E7CF8FCFCF1F9F9FFFFFFFFFFFFFFFFFFFF8F880000002FF87C3C03FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFE7CFC7878F9F1E3F3E3FFFFFFFFFFFFFFFFFFFF1E3FFFFFFFFEFC79FCFFFFFFFFFFFFFFFFFFFF8FCF8F1F9F1E1F3F3EFFFFFFFFFFFFFFFFFFF9F380000000000F878C3FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFFF9F8F1F1F3E3E7C3C7FFFFFFFFFFFFFFFFFFFE3C7CFC7879FCF0F3F9FFFFFFFFFFFFFFFFFFFF3F9F1E7F3F3C7E7E78FFFFFFFFFFFFFFFFFFFBE3FFFFFFFFFFFE1F3C3FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFFF9F1F3F3F3C7CFC7CFFFFFFFFFFFFFFFFFFFFE7878F8F8F9F9F1F3F3FFFFFFFFFFFFFFFFFFFE3F3E3E7E3E7CFC7CF9FFFFFFFFFFFFFFFFFFFFE7FFFFFFFFFFFE3E3C3FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFFF3C7E7E7C78F9F1F1F3FFFFFFFFFFFFFFFFFF8F1F1F1F1E3E3E3E7C7FFFFFFFFFFFFFFFFFFFC7E7C7CFC78F9FCF0F3FFFFFFFFFFFFFFFFFFFFCF1F8F9E3E3E7CFE7C3FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFFC78FCFCF8F1F3E3F3F7FDFFFFFFFFFFFFFFFFCE3E3C3E7C7C7CFCF8FFFFFFFFFFFFFFFFFFFFCF8F8F9F0F1F3F1E1E7FFFFFFFFFFFFFFFFFFFE1E3F3E3C7C7C79F8F83FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFF8F3F9F9F3E3E7CFE7CFFFFFFFFFFFFFFFFFFFFC7CF8FCF8F1F9F9E3FFFFFFFFFFFFFFFFFFFF9F1F3F3E1E7E7E3CFCFFFFFFFFFFFFFFFFFFFFE3C7E7C7CF8F1F3F9E03FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFF1F3F9F1E7E7E79FCFCFFFFFFFFFFFFFFFFFFFFCFCF8F9F9F1FBF3E3F7FFFFFFFFFFFFFFFFFFBE3E7E7E3E7C787CFDFFFFFFFFFFFFFFFFFFFFC3CFC7879F9F1E3F3E03FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFE3E7F3C7CFCF0F1F9F1FFFFFFFFFFFFFFFFFFFF9F9F3FBF3E7F7F7CFEFFFFFFFFFFFFFFFFFFFFE7E7EFCFEFFFDFDFFFBEFEFCFEFFFDFFFFFFFDFDF8F9FBFBF7FFF7E43FFFFFFFFF
+FFFFFFFFC7FFFFFFFFFFFFFFFFFC7EFFFCFFFDFFFFFFFFEFE7CFDFE80F9FCF9F3FFFFFFFFFFFFFFFFFFFF9F3F9F9E7E7E7DFCFCFFFFFFFFFFFFFFFFFFFFCFCF8F8F9F1F9F9E1FFFFFFFFFFFFFFFFFFFC1FFFFFFFFF
+FFFFFFFFC27E7C7EFCFC7CF9F8F9FFFFFFFFFFFFFFFFFFCF878F9F800F3F9F1F3FFFFFFFFFFFFFFFFFFFE3E7F3E3C7CF8F9F9F1FFFFFFFFFFFFFFFFFFFF9F9E3F1F3E3F3F3C3E7FFFFFFFFFFFFFFFFFC1FFFFFFFFF
+FFFFFFFFC27E78FCFCF8FCF9F1F9EFFFFFFFFFFFFFFFFFDF8F9F1F01073E1E3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7CF8F1F3F9E1FFFFFFFFFFFFFFFFFFFF1F3E7F3F3C7E3E7C7E7FFFFFFFFFFFFFFFFFC1FFFFFFFFF
+FFFFFFFFC0FCF0F9F9F1F1F3E3F3FFFFFFFFFFFFFFFFFFFE1F3E3E03C67C3CFCFFFFFFFFFFFFFFFFFFFFCFCF8F8F911E3E7E3C3FFFFFFFFFC7FFFFFFFFE3C7C7E707CFC7CF9FCE7FFFFFFFFFFFFFFFF03FFFFFFFFF
+FFFFFFFFC1F9E3F3F3E7E1E7CFE7FFFFFFFF1FFFFFFFFFFC7E7EF8E7E0F0F9F9F3FFFFFFFFFFFFFFFFFF9F9F1F3F303CFCFC7CFFFFFFFFFF80FFFFFFFFC787878E0F9F8F1F3F9E7FFFFFFFFFFFFFFFE03FFFFFFFFF
+FFFFFFFFC3E3CFE7C78FCFCF9FCFFFFFE3FF0FFFFFFFFFF8FCFCF1F3E1F1F3F3E3FFFFFFFF03FFFFFFFFBE3C3E7E7079F9F1F1FFFFFFFFFF187FFFFFFF8F3F021C1E3E1E3E7E3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C7CFE7879FCF0F3F9FFFFFE1FE0FFFFFFFFFF1F9F9F3F3C3E3F3E3C7FFFFFFFF03FFFFFFFFFE7C7E7C7079F1E3F3F7FFFFFFFF3C7FFFFFFF9F3E001C1E7E3E7C7C7FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC38F9A03080118003F3FFFFFE07C07FFFFFFFFE3F3F3E7F08BCFE7E79FFFFF03FE31FF8FFFFFFCF9F8F88013E3C7E7E7FFFFFFFF3E7FFFFFFF3E7C10381CF87CF8F8FFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC33F3000300038007C7FFFFFF01C87FFFFFFFFC3E7C7CFC81F9FCF0F3FFFFE01FE79FE03FFFFF9F3F1F10007E79FCFCFFFFFFFFF7E7FFFFFFFFCF8D83989F1F9F1E3F7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC27E600079E079F8F8F9FFFFF381C7FFFFFFFFCF8F8F9F081F3F1E1E7F7FFE78FE79FE71FFFFE1E7F3C3F1EF8F1F9F1FFFFFFFFF3C7FFFFFFFF9F1CE0181E3F3E3C7E7FFF807FFF9FFFFFFFC3FFFFFFFFF
+FFFFFFFFC07C73F0FBF0F9F9F1F3FFFFF3C1E3FFFFFFFFDF8F1F3F00063E3E3E7F7FFCFCFE79FE71FFFFE3C7E7C7F1FF1F3F1E3FFFFFFFFF387FFFFFFFF1E3CF0383C7E7E7CFC7FFF803F801F807FFFC3FFFFFFFFF
+FFFFFFFFC0F8F7F1F3F1F1F9E3E3FFFFF3E1E03FFFFFFFFC3E3E7C01807C7CFCFF7FFCFCFF33FCF1FFFFCF9F8F8F913E3E7C3C7FFFFFFFFF80FFFFFFFFE3C7CF83800FCF8F9F8FFFF803F000F003FFFC3FFFFFFFFF
+FFFFFFFFC1F1E7F003F001F9CFCFFFFFF1E3F001FFFFFFF87C7CF807F0F1F9F9E3FFFEFCFF87FEF1FFFF9F3E1F3E303CFCF879FFFFFFFFFFC3FFFFFFFFCF8F8E07C00F1F1F3F1FFFF9F3F3F8F1F3FFFC3FFFFFFFFF
+FFFFFFFFC3C7C7F003F001F99F8FFFFFF187F3007FFFFFF8F8F9F01FF863F3F3C7E07E30FF87FE61F83FBE3C7E7E7079F9E1F3F7FFFFFFFF80FFFFFFFF8F3F001FC6003E3E7C3FFFF9F3F3F9F1F3FFFC3FFFFFFFFF
+FFFFFFFFC3C787F803F803F93F9FFFFFF00FF3E03FFFFFF1F9F1E01FFC03E3E7C7E03E01FF87FE03F01FFE787C7CF0F1F1E3F3E7FFFFFFFF007FFFFFFF1F3E00FFE7803C7CFC7FFFF9F3F3F9F1F7FFFC3FFFFFFFFF
+FFFFFFFFC38F07FFFFFFFFF87E3FFFFFE03FFFFE1FFFFFE7F3E3C0FFFF0FC7CF9FCE3F83FF87FF0FF10FFCF1F8F9E0E3E3C7E7E7FFFFFFFE183FFFFFFF3E7C13FFFFF038F9F0FFFFF1F003F801F7FFFC3FFFFFFFFF
+FFFFFFFFC33E33FFFFFFFFF8FC7FFFFFC47FFFFF8FFFFFCFC7C783FFFF8F8F1F3FCF9FC1FF87FF1FE7C7F1E3F1E3C007C79FCF8FFFFFFFF07E1FFFFFFFFCF83FFFFFFE01F3E3F7FFF1FC07F801F7FFFC3FFFFFFFFF
+FFFFFFFFC07C700000000001F0FBFFFFCFFFFFFFC7FFFFDF8F9F07FFFFC21E3E7FCF9F81FFA7FF1FE7C7E3C7E3C7800F0F3F9E1FFFFFFF81FF87FFFFFFF9F03FFFFFFF83E7C7E7FFF1FFFFFFFFF7FFFC3FFFFFFFFF
+FFFFFFFFC0FCF0000001FF83E3E3FFFF9FFFFFFFE3FFFFFE3F3E0FFE7FE03CFCFFCF3F88FFB7FE1FE7C7CF8F878F1F8E1E7E3C3FFFFFFF0FFFE3FFFFFFF3C27FFFFFFFE38F9F8FFFF1FFFFFFFFF7FFFC3FFFFFFFFF
+FFFFFFFFC1F9F03FFFFFFF87C7E7FFFF9FFFFFFFF1FFFFFC7E7E1FFE7FF07CF8FFC43F88FF37FE1FF38F9F9F0F1F3F8E3C7C7C7FFFFFFE0FFFE1FFFFFFE7C678FFFFFFE30F1F9FFFF00F7FFFFFF7FFFC3FFFFFFFFF
+FFFFFFFFC3E3EC1FFFFFFF0F9FCFFFFFBC3FFFFFF8FFFFF87CFC3FFE7FF071F1E3E07F8CFF33FEDFF01FBF3C003E3FCCF87879FFFFFFFC7FFFF8FFFFFFCF8C41FFFFFFF01E3E3FFFF00000000007FFFC3FFFFFFFFF
+FFFFFFFFC3C7CF0FFFFFFE3F1F9FFFFF307FFFFFFC7FFFF1F9F83FFE7FF863E3C7F83F8EFF33FEDFF87FFE78003C78C1C001F3F7FFFFFCFFE7FC7FFFFF9F3C83FFFFFFF87C7C7FFFF87FFFFC0007FFFC3FFFFFFFFF
+FFFFFFFFC78F9FE0000000FE3F3FFFFF307FFFFFFC3FFFE3F3E27FF07FFC07C79FF83F8E7F73FCDFF1FFFCE000007FC00001E7E7FFFFF9FFE7FE1FFFFF3E7887FFFFFFFC78F0FFFFFF1FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC31F3FF0000001FE7E3FFFFF20FFFFFFFE3FFFE7F3C27FE003FE0F8F1FF81F8E7F73FCDFF1FFF8E1FE007FC00780C7CFFFFFF1FFE7FF1FFFFF3C7887FFFFFFFC79E1FFFFFF8FFFFFFF1FFFFC3FFFFFFFFF
+FFFFFFFFC23E7C70FFFFF9FCFC7BFFFE21FFFFFFFE0FFFCFC7867FE003FE1F1E3FFC9F8F7F73FDDFE1FFF1C7FF803FC07FF00F9FFFFFF3FFE7FF0FFFFFF8F1FFFFFDFFFE33C3E7FFFFE2FFF7FE7FFFFC3FFFFFFFFF
+FFFFFFFFC07CF8FBFFFFF9F9F1F3FFFC7FFFFCFFFF87FFDF0F1E7FFE7FFE3E3C7FFCCF8F3E7BF9DFE9FFE38FFFF03FC1FFFC1E3FFFFFF3FFC7FFC7FFFFF1E3FFFFF9FFFF078FC7FFFFF0000001FFFFFC3FFFFFFFFF
+FFFFFFFFC0F9F1F3FFFFF9F3C3E7FFF8FFFFFCFFFFC7FFFC3E7E7FFE7FFE3CF8FFFC4F8F3E7BF3DFCBFF8E1FFFFC3F83FFFF1C7FFFFFE7FE007FE3FFFFE7C3FFFFF1FFFF0F1F8FFFFFFBFFFFF1FFFFFC3FFFFFFFFF
+FFFFFFFFC1F9E3F3FFFFF9E7C7E7FFF8FFFFFCFFFFC7FFFC7E7C7FFE7FFE38F9F3FC6F8F3E7BF3DFCBFF9E1FFFFC1F87FFFF1CFFFFFFE7FE007FE3FFFFE787FFFFF1FFFF0F3F9FFFFFF3FFFFF1FFFFFC3FFFFFFFFF
+FFFFFE7FC3E3E7E3FFFFF9CF9FCFFFF9FFFFF8FFFFC3FFF8FCF87FFE7FFE31F3E3FC678FBC7BE3DF9BFF3E1FFFFE1F8FFFFF91FFFFFFE7FFC7FFE3FFFFCF07FFFFF3FFFF8E7E3FFFFFF3FFFFF1FFFFFC3FFFFFFFFF
+FFFFF07FC3878FC3FFFFF91F3F9FFFF3FFFFF9FFFFE3FFF3F9F07FFFFFFE67E7CFFC738F9CFBE3DFB3FFFE3FFFFF1F0FFFFF83F7FFFFE7FFE7FFE3FFFF1E0FFFFFE3FFFFCCFC7FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFE07FC31F1F0BFFFFF83E7E3FFFE7FFFFF9FFFFF3FFE7F3C33FFFFFFCC78F9FFE738F98F9E7DF33FFFC3FFFFF8F1FFFFF87CFFFFFE7FFEFFFE3FFFF3C1FFFFFC7FFFFE1F0FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFE07FC33F3F1BFFFFF87E7C7FFFC7FFFFF3FFFFF1FFE7E3C73FFFFFF88F0F3FFE7B8FD8F9E7DF37FFF03FFFFF8F1FFFFF8FCFFFFFE7FFE7FFE3FFFF7C3FFFFFC7FFFFE1E1FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFEC7FC27E7C7BFFFFF8F8F8FBFFCFFFFFF3FFFFF9FFCF878F1FFFFFF19E1E7FFE798FC8F9CFDE77FFE13FFFFFC63FFFFF9F1FFFFFE7FFEFFFE7FFFFF83FFFFF8FFFFFE3C7E7FFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFC7FC0FCF8FBFFFFF9F1E3F3FF9FFFFFE3FFFFF9FF9F0F3F9FFFFFF13C7CFFFF7C8FC0F99FDE77FFC3BFFFFFC43FFFFF9E3FFFFFF3FFFFFFC7FFFFF07FFFFF07FFFFE79FCFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC1F9F3F3FFFFF9E3C7E7FFBFFFFF81FFFFF8FFFC3E7ECFFFFFE278F9FFFF3C8FE0FC1FCCF7FF9F9FFFFFE07FFFFF9C7FFFFFF3FFFFFF8FFFFFE07FFFFE07FFFFE73F9FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC1F1E7F3FFFFF9E7CFC7FF3FFFFF01FFFFFCFFFC7C7CC7FCBFE7F9F9F7FF3C0FE0FC1FCCF7FF9F9FFFFFE07FFFFF38FFFFFFF1FFFFFF9FFFFFC47FFFFC47FFFFF33F1FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC3C3CFE3FFFFF98F9FCFFF3FFFFE19FFFFFCFFF8FCF8E000000FF3F3C7FF3E0FE1FC1FC8E7FF3E4FFFFFE07FFFFE31FFFFFFF9FFFFFF1FFFFFCCFFFFF0E7FFFFF07C3FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC3879F83FFFFF81F3F9FFE7FFFF8F9FFFFFCFFF3F9F1E003C01FE7E78FFFBE0EE00C3FC1EFFFFC4FFFFFF0FFFFFC63E7FFFFFCFFFFFE3FFFFF188FFF87C7FFFFF0F87FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC31F3F1BFFFFFC3E7E3FFE63FFE1F1FFFFFC7FE7F3C3C7FFFF9FCF8F9FFFBF08000001C1EFFFFCE7FFFFF0FFFFFC47CFFFFFFC7F83FE7FFFFF380FFE1F87FFFFF1E1FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC33F3E1BFFFFFC7CFC7FFE43FFC3F3FFFFFE7FC7E7C787FFFF9F8F0F3FFFBF00000000C3EFFFF9E7FFFFF0FFFFF84FCFFFFFFE30001CFFFFFF780FF83C87FFFFF1E3FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC27E7C7BFFFFF8F8F8FBFE43FF8FF3FFFFFE7FCF8F8F0FFFFFCE1E1E7FFF9F0000F80007EFFFE3F3FFFFF0FFFFE19F1FFFFFFF000000FFFFFFF87FF0F38FFFFFF3C7E7FFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFE7FC0FCF8FBFFFFFDF1E3F3FC07FE3FE3FFFFFE7FFF1F3F0F8003CC3C7CFFFF9003FFFFFF004FFFC7D1FFFFF0FFFFE3BE3FFFFFFF3FFFF8FFFFFFF0FEE3E31FFFFFF39FCFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC1F9F3F3FFFFFDE3C7E7FE3FFC7F87FFFFFE7FFC7E7E00000000F8F9FFFF801FFFFFFFC00FFF9F987FFFF07FFFC63C7FFFFFFE7FFFFCFFFFFFE0FC478E3FFFFFFB3F9FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC1F1E7F3FFFFFDE7CFC7FE7FF8FF87FFFFFE7FFC7C7CC004F001F9F1E7FF80FFFFFFFFFF0FFF9F1C7FFF0003FF9C78FFFFFFFE7FFFFCFFFFFFC4F8CF0E7FFFFFFA3E3FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC3C3CFE3FFFFF88F9F8FFE3F99FF0FFFFFFE7FF9F8F987FFFF81F3F3C7FFC7FFFFFFFFFF9FFF3E3C3F8000000F18F1FFFFFFFEFFFFFE7FFFFF8E788E1C7FFFFFF87C3FFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC3879F800000001F3F1FFF1F33FF1FFFFFFE7FF3F1F38FFFFFE3E7E78FFFE7FFFFFFFFFF1FFFFC7B0801FF8F0023E3E7FFFFFC8000067FFFFF1F011878FFFFFFF8F8FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC31F3F000000001E7C3FFF8427FE7FFFFFFE7FE7E3C7C07FFF07CF8F1FFFF3F8000001FF3FFFF8F380FFFFFFFC47C7CFFFFFFC037F803FFFFF3D8130F1FFFFFFF9E1FFFFFFF3FFFFF3FFFFFC3FFFFFFFFF
+FFFFFFFFC33F3E03E7FFFE1CFC7FFFC027FC7FFFFFFF7FCFC7C7E007F00F8F1F3FFFF3000000003E7FFFF1E383FFFFFFFE5FCFCFFFFFFC1FFFF03FFFFFFCC031E3FFFFFFF9E3EFFFFFE0000003FFFFFC3FFFFFFFFF
+FFFFFFFFC27C780FFFFFFF01F0FBFFF007FCFFFFFFFF7FDF8F9F7E00007E1E3E7FFFF8001FFFE000FFFFE3E7CFFFFFFFFE1F9E1FFFFFFCFFFFFE1FFFFFF9F863E7FFFFFFF9C7CFFFFFC0000001FFFFFC3FFFFFFFFF
+FFFFFFFFC0F8F00FFFF9FA03E3F3FFFF0FF9FFFFFFFF7FFE1E3E3FE387FC3CFCFFFFFCFFFFFFFFE1FFFFC78F87FFE01FFE7E3E3FFFFFFC3FFFFC3FFFFFE3CFC7C7FFFFFFF91F8FFFFF8FFFFFF8FFFFFC3FFFFFFFFF
+FFFFFFFFC1F1E00000000003C7E7FFFFFFF1FFFFFFFF3FFC7E7C78C3C3F0F9F9FFFFFCFFFFFFFFF1FFFF9F9F07E000000E7C7CFFFFFFFE00FF80FFFFFFE7879F0FFFFFFFF83F1FFFFF1FFFFFFE3FFFFC3FFFFFFFFF
+FFFFFFFFC3E3E000000000038FCFFFFFFFF3FFFFFFFF3FF87CFC7007E061F1F1E7FFFCFFFFFFFFF1FFFF9F3E27000000027879FFFFFFFF800003FFFFFFCF8F1F1FFFFFFFF87E3FFFFE3FFFFFFF1FFFFC3FFFFFFFFF
+FFFFFFFFC3C7CC7FFFFFFFE71F9FFFFFFFE3FFFFFFFF3FF1F8C0000FF80001E3C7FFFCFFE000FFF1FFFFFE7C6003FFFF0061F3FFFFFFFFFE003FFFFFFF9F3F3E1FFFFFFFF8FC7FFFFC000000001FFFFC3FFFFFFFFF
+FFFFFFFFC38F9C7FFFFFFFE23F3FFFFFFFC7FFFFFFFF3FE3F000007FFE0000079FFFFE0000000033FFFFFCF8E1FFFFFFFC43E7E7FFFFFFFE7F3FFFFFFF1E7E787FFFFFFFF9F0FFFFFC716400001FFFFC3FFFFFFFFF
+FFFFFFFFC33F3C7FFFFFFFE07C7FFFFFFFCFFFFFFFFF3FC7C007FFFE7FFFF8073FFFFE001FFF8003FFFFF9F3F7F800007E0FC7CFFFFFFFE07F1FFFFFFF7CFCF0FFFFFFFFF9E3FFFFFC7FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC23E3C7FFFFFFFE0FC7FFFFFFF8FFFFFFFFF3FCFC07FFFFC3FFFFF023FFFFE0FFFFFFF03FFFFF1E3F7C000000E1FCF8FFFFFFF80EF8FFFFFFFF8F8F0FFFFFFFFF9C3E7FFFC7FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC07C787FFFFFFFE021F3FFFFFF9FFFFFFFFF3F9F83FFFFF80FFFFFF07FFFFE7FFFFFFFE1FFFFE3C7E0007FFA003F9E1FFFE00001E7C00003FFF1F1E0FFFFFFFFF98FCFFFFC7FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC0F8C0000000000003E3FFFFFF9FFFFFFFFF3FFE07FFFF0180000FF0FFFFFCFE000003F1FFFFCF8F807FFFFFF87E3C3FFF00007FC7F00000FFE3C7C0FFFFFFFFF91F9FFFFC7FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC1F1C000000005FC0FC7FFFFFF1FFFFFFFFF3FF873800007F00001E7F7FFFC0000000000FFFF9F1F03FFFFFFFEFC78FFFC0FFFFFC3FFFFFC3FE78781FFFFFFFFF83E3FFF807FFFFFFF9FFFFC3FFFFFFFFF
+FFFFFFFFC3E3C7FFFFFFFFFF1FCFFFFFFF1FFFFFFFFF3FF8F800001FFC800047E7FFF8000FFE0000FFFFBF3E13FFFFFFFCF8F9FFFC3FFFFF81FFFFFE3FCF9F11FFFFFFFFF87C3FFF800000000001FFFC3FFFFFFFFF
+FFFFFFFFC3C79FFFFFFFFFFE1F9FFFFFFF3FFFFFFFFE7FF3F83FFFFFFFFFFE0FCFFFF87FFFFFFFC07FFFFE7C78FFFFFFE1E3F3F7F87FFFFE187FFFFF9F9F3E3003FFFFFFF8F87FFF1FE000000001FFFC3FFFFFFFFF
+FFFFFFFFC39F0000000000003E3FFFFFFF00000000007FE7F5FFFFE7C7DFFF9F9FFFF8FFFFFFFFF87FFFFCF9FE00FFE003C3E7E7FE7F00007E0000FF3E3E7C700000000001E1FFFF3FFFFFFFFFF9FFFC3FFFFFFFFF
+FFFFFFFFC33F0000000FF7FFFC7FFFFFFFFFFFEBF480FFC7C7C78F878F9F8FFF3FFFFC3FFFFFFFE0FFFFF1F3F7E00000FF9FCFCFFF200003FF8000067F7CF8FFFDF1200003C3E7FF02EFFFFFFFF9FFFC3FFFFFFFFF
+FFFFFFFFC23E3FFFFFFFFFFFFC7BFFFFFFFFFFFFFFFFFFCF878F9F0F0F3F1EFE7FFFFE03FFFFFF81FFFFF1E7F3FE000FFF1F8F8FFF00FFFFFFFFFF807FF8F9FFFFFFFFFFFFC7E7FF800000000001FFFC3FFFFFFFFF
+FFFFFFFFC07CFFFFFFFFFFFFE1F3FFFFFFFFFFFFFFFFFFDF0F3F3F1E3E7E3E7C7FFFFF800000000FFFFFE3C7C7FFFFFFFF3F1E1FFF8FFFFFFFFFFFF0FFF1E3E7E7FFFFFFFF9FCFFF800000000001FFFC3FFFFFFFFF
+FFFFFFFFC0F9E1F9F1E3F3F3C3E7FFFFFFFFFFFFFFFFFFFE3E7E7C7C7CF878F8FFFFFFFF000001FFFFFFCF8F8F8FFFFE3E7C3C3FFFFFFFFFFFFFFFFFFFE3C7CFC78F1F8F0F3F9FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC1F3E7F3E3CFE7E78FCFFFFFFFFFFFFFFFFFFFF87CFCF8F8F9F1F9F1E7FFFFFFFFFFFFFFFFFF9F1F1F3E3E3CFCF878FFFFFFFFFFFFFFFFFFFFC78F9F0F1F3E1E3E7C3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3E3C7E7C7CFC7CF9FCFFFFFFFFFFFFFFFFFFFF8F8F8F1F9F9E1F3F3E7FFFFFFFFFFFFFFFFFFBF3C3E3E7C78F8F0F9FFFFFFFFFFFFFFFFFFFFCF1F1F1E3E3E3C7C7C3FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC3C78FCF8F9F8F1F3F9FFFFFFFFFFFFFFFFFFFF3F9F1E7F3E3C7E7E7CFFFFFFFFFFFFFFFFFFFFE787C7CF8F9F1E3F3E7FFFFFFFFFFFFFFFFFF1E3E3C3C7C7878F8F87FFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC31F1F0F1F3E1E3E7E3FFFFFFFFFFFFFFFFFFFE3E3C3CFE7878FCF8F9FFFFFFFFFFFFFFFFFFFFCF1F8F9F1E3E3C7E7C7FFFFFFFFFFFFFFFFFE3C7C78F8F8F1F1F1E1FFFFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC01E3C1E3C7C3C7C787FFFFFFFFFFFFFFFFFFFC787878F870F1F0F0E3FFFFFFFFFFFFFFFFFFFF1E3F1E1E3C7878FC78FFFFFFFFFFFFFFFFFFFF8F8E0F1F1E1E1E1C3C7FFFFFFFFFFFFFFFFFC3FFFFFFFFF
+FFFFFFFFC0000004001018382021FFFFFFFFFFFFFFFFFF8000030E02060200001FFFFFFFFFFFFFFFFFFFC08060C0C00100000207FFFFFFFFFFFFFFFFFFF0600000000080000007FFFFFFFFFFFFFFFFC03FFFFFFFFF
+FFFFFFFFC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003FFFFFFFFF
+FFFFFFFFC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003FFFFFFFFF
+FFFFFFFFC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003FFFFFFFFF
+FFFFFFFFC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003FFFFFFFFF
+FFFFFFFFF0FFE00000000000000006000381EBFFFFA0C3FFFF47F92C29FFC20EAC0000000000000000000000000000000000001E00000000000000000000000000000000000001C003000000000000007FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFF01FFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFFC07FFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFC47FFFFFFFFFFFFFFFF007FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFF807FFFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFC01FFFFFFFFFFFFFFFFF10FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFCE3FFFFFFFFFFFFFFFF0E7FFFFFFFFFFFFFFFF18FFFFFFFFFFFFFFFF8E3FFFFFFFFFFFFFFFF8C3FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFC71FFFFFFFFFFFFFFFFE387FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFF0E7FFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF8E3FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFC71FFFFFFFFFFFFFFFFF38FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFF0E7FFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF8E3FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFC71FFFFFFFFFFFFFFFFF38FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFCE3FFFFFFFFFFFFFFFF0E7FFFFFFFFFFFFFFFF38FFFFFFFFFFFFFFFF8E3FFFFFFFFFFFFFFFF8E7FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFC71FFFFFFFFFFFFFFFFE38FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFCC3FFFFFFFFFFFFFFFF0C7FFFFFFFFFFFFFFFF18FFFFFFFFFFFFFFFF843FFFFFFFFFFFFFFFF8C3FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFC01FFFFFFFFFFFFFFFFE38FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFC07FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFF38FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFF81FFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFFC07FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC71FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
diff --git a/fonts/chess/chess/doc/boards.ltx b/fonts/chess/chess/doc/boards.ltx
new file mode 100644
index 0000000000..f267bc9e74
--- /dev/null
+++ b/fonts/chess/chess/doc/boards.ltx
@@ -0,0 +1,41 @@
+\documentstyle[a4wide,chess]{article}
+\begin{document}
+{\font\Chess=chess10
+\board{rnbqkbnr}
+ {pppppppp}
+ { * * * *}
+ {* * * * }
+ { * * * *}
+ {* * * * }
+ {PPPPPPPP}
+ {RNBQKBNR}
+$$\showboard$$
+\centerline{{\tt chess10}}\smallskip}
+
+{\font\Chess=chess20
+\board{rnbqkbnr}
+ {pppppppp}
+ { * * * *}
+ {* * * * }
+ { * * * *}
+ {* * * * }
+ {PPPPPPPP}
+ {RNBQKBNR}
+$$\showboard$$
+\centerline{{\tt chess20}}\smallskip}
+
+{\font\Chess=chess30
+\board{rnbqkbnr}
+ {pppppppp}
+ { * * * *}
+ {* * * * }
+ { * * * *}
+ {* * * * }
+ {PPPPPPPP}
+ {RNBQKBNR}
+$$\showboard$$
+\centerline{{\tt chess30}}\smallskip}
+
+\end{document}
+
+
diff --git a/fonts/chess/chess/doc/dutch-tt.ltx b/fonts/chess/chess/doc/dutch-tt.ltx
new file mode 100644
index 0000000000..9dcee979ff
--- /dev/null
+++ b/fonts/chess/chess/doc/dutch-tt.ltx
@@ -0,0 +1,99 @@
+%
+% dutch-tt.ltx
+% ----------------
+% A LaTeX test for the chess.sty style in combination with dutch.
+% Author : Piet Tutelaers (internet: rcpt@urc.tue.nl)
+% Version: 1.2 (11 Jun 1991)
+%
+\documentstyle[twocolumn,dutch,chess]{article}
+\tracinglostchars=1
+\begin{document}
+
+\subsection*{Torture test for \verb|chess.sty|}
+
+\newgame
+
+Let's play the first moves of Mestel's opening:
+\move e2e4 c7c6
+\move e4e5 d7d5
+\move g1f3 d8d6
+\ply e5d6
+
+This capture is not longer treated as an `enpassant' Queen capture (thanks
+Jonathan).
+
+$$\showboard$$
+
+Check if language support for Dutch is working:
+\board{tpldklpt}
+ {iiiiiiii}
+ { * * * *}
+ {* * * * }
+ { * * * *}
+ {* * * * }
+ {IIIIIIII}
+ {TPLDKLPT}
+
+$$\showboard$$
+
+\begin{position}
+\White(Ke1,Th1,h7,b2)
+\Black(Ke8,Ta8,a5,c2)
+\global\movecount=50
+\global\Whitefalse
+\end{position}
+
+$$\showboard$$
+
+The castling test:
+\ply e8c8!?
+\ply e1g1
+
+Both players have castled.
+\ply c8e8?
+\ply g1e1?
+
+They move back their kings... Chess.sty does not check the
+validity of moves.
+\ply e8c8
+\ply e1g1??
+
+But now these moves are not typeset as castling moves because the kings have
+moved.
+
+And now the `en passant' test:
+\ply a5a4
+\move b2b4+ a4b3ep
+
+A short analysis test: |54. b3+ a*b3| and White looses his pawn.
+Better seems |54.Pf7 but not 54.Pg6 because then 54:Tg8!|.
+And the promotion test (comment thanks to Jaap Sprey!):
+\move h7h8 c2c1L!?
+
+$$\showboard$$
+
+Activation of analysis mode does not work inside arguments of macros but
+you can group them around the macro!
+
+|\centerline{55.Pf3 Pc6}|
+
+Sometimes you want to use the {\tt \char124} character for other
+purposes than to trigger the analysis mode. Use then the {\tt nochess}
+environment. Within this environment you can reactivate the analysis
+mode with the {\tt chess} environment.
+
+\begin{nochess}
+\begin{tabular}{|c|}
+no analysis mode!
+\end{tabular}
+
+\begin{chess}
+\centerline{55.Pf3 Pc6}
+\end{chess}
+
+|55.Pf3 Pc6|
+\end{nochess}
+
+|KRQDRTBLFPCS| that's it!
+\end{document}
+
diff --git a/fonts/chess/chess/doc/dutch-tt.tex b/fonts/chess/chess/doc/dutch-tt.tex
new file mode 100644
index 0000000000..fd8e7d1565
--- /dev/null
+++ b/fonts/chess/chess/doc/dutch-tt.tex
@@ -0,0 +1,88 @@
+%
+% dutch-tt.tex
+% ----------------
+% A plain TeX torture test for the chess.sty style in combination with
+% dutch.sty.
+% Author : Piet Tutelaers (internet: rcpt@urc.tue.nl)
+% Version: 1.2 (June 1991)
+%
+\input dutch.sty
+\input chess.sty
+
+\tracinglostchars=1
+
+{\bf Torture test for {\tt chess.sty}}
+
+Check if language support for Dutch is working:
+\board{tpldklpt}
+ {iiiiiiii}
+ { * * * *}
+ {* * * * }
+ { * * * *}
+ {* * * * }
+ {IIIIIIII}
+ {TPLDKLPT}
+
+$$\showboard$$
+
+Let's define a position:
+\position
+\White(Ke1,Th1,h7,b2)
+\Black(Ke8,Ta8,a5,c2)
+\global\movecount=50
+\global\Whitefalse
+\endposition
+
+$$\showboard$$
+
+The castling test:
+\ply e8c8!?
+\ply e1g1
+
+Both players have castled.
+\ply c8e8?
+\ply g1e1?
+
+They move back their kings... Chess.sty does not check the
+validity of moves.
+\ply e8c8
+\ply e1g1??
+
+But now these moves are not typeset as castling moves because the kings have
+moved.
+
+And now the `en passant' test:
+\ply a5a4
+\move b2b4+ a4b3ep
+
+A short analysis test: |54. b3+ a*b3| and White looses his pawn.
+Better seems |54.Pf7 but not 54.Pg6 because then 54:Tg8!|.
+And the promotion test (comment thanks to Jaap Sprey!):
+
+\move h7h8 c2c1L!?
+
+$$\showboard$$
+
+Activation of analysis mode does not work inside arguments of macros but
+you can group them around the macro!
+
+|\centerline{55.Pf3 Pc6}|
+
+Sometimes you want to use the {\tt \char124} character for other
+purposes than to trigger the analysis mode. Use then the {\tt nochess}
+environment. Within this environment you can reactivate the analysis
+mode with the {\tt chess} environment.
+
+\nochess
+|55.Pf3 Pc6|
+
+\chess
+\centerline{55.Pf3 Pc6}
+\endchess
+
+|55.Pf3 Pc6|
+\endnochess
+
+|KRQDRTBLFPCS| that's it!
+\bye
+
diff --git a/fonts/chess/chess/doc/kasparov.ltx b/fonts/chess/chess/doc/kasparov.ltx
new file mode 100644
index 0000000000..5b2f1f3e6c
--- /dev/null
+++ b/fonts/chess/chess/doc/kasparov.ltx
@@ -0,0 +1,128 @@
+\documentstyle[a4wide,chess,12pt]{article}
+
+% Redefine chess.sty to get similar layout as in Informator
+\makeatletter
+\gdef\@dots{\ldots}
+\resetat
+
+% Some macros to improve readability...
+\newenvironment{mainline}[2]{\bf\newcommand{\result}{#1}%
+ \newcommand{\commentator}{#2}\begin{chess}}%
+ {\end{chess}\finito{\result}{\commentator}}
+\newenvironment{variation}{[\begingroup\rm\ignorespaces}%
+ {\endgroup]\ignorespaces}
+\newenvironment{diagram}{\begin{nochess}}{$$\showboard$$\end{nochess}}
+\newcommand{\finito}[2]{{\bf\hfill#1\hfill[#2]\par}}
+
+\setlength{\parindent}{0pt}
+
+\begin{document}
+\twocolumn[
+\begin{center}
+{\Large\bf Best game award 1990}\\
+\vspace{.3cm}
+{\small(From: \v{S}ahovski Informator~51--1991)}
+\end{center}
+Next game was selected by a jury consisting of a selection of
+the editorial board of Chess Informant as the best game of 1990.
+\vspace{.5cm}
+]
+
+{\bf 50/388 \hfill C~92}\\
+\centerline{\sc Kasparov 2800 -- An.~Karpov 2730}\\
+\centerline{New York/Lyon (m/2) 1990}\\
+\begin{mainline}{1~:~0}{Kasparov}
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. 0-0 Be7 6. Re1 b5 7.
+Bb3 d6 8. c3 0-0 9. h3 Bb7 10. d4 Re8 11. Nbd2 Bf8 12. a4 h6 13.
+Bc2 ed4 14. cd4 Nb4 15. Bb1 ba4 16. Ra4 a5 17. Ra3 Ra6 18. Nh2 g6
+\begin{diagram}
+\board{ * qrbk*}
+ {*bp *p* }
+ {r* p npp}
+ {p * * * }
+ { n PP* *}
+ {R * * *P}
+ { P N PPN}
+ {*BBQR K }
+\end{diagram}%
+19. f3! \novelty
+ \begin{variation}
+ 19. f4 \see~47/435; 19. Ng4 \see~47/434
+ \end{variation}
+Qd7?!
+ \begin{variation}
+ 19: c5 20. d5\wbetter; 19: Bg7 20. Nc4 Qa8 21. d5 Rd8\unclear
+ \end{variation}
+20. Nc4 Qb5 21. Rc3! Bc8
+ \begin{variation}
+ 21: d5 22. Na3 \withidea e5\wupperhand;
+ 21: Rc6 22. Na3 Qb6 23. Be3\wupperhand
+ \end{variation}
+22. Be3 c6?!
+ \begin{variation}
+ 22: Qb8!? \withidea d5
+ \end{variation}
+23. Qc1
+ \begin{variation}
+ \withidea Na3; 23. Qd2!?
+ \end{variation}
+Kh7 24. Ng4! Ng8?!
+ \begin{variation}
+ 24: Bg4 25 hg4 d5 26. Na3\wupperhand;
+ 24: Ng4 25 hg4 d5
+ (25: Be6 26. Na3 Qb8 27. Kf2 Bg7 28. Qd2)
+ 26. Ne5 de4
+ (26: Be6 27. Kf2 de4 28.Bh6 Bh6 29. Rh1\wdecisive)
+ 27. Nf7
+ {\sl a)} 27: Nd5 28. Bh6\wdecisive;
+ {\sl b)} 27: ef3 28. gf3
+ (28. Bh6? Re1 29. Qe1 Qe2; 28. Ne5? c5!)
+ Nd5 29. Bh6 Re1 30. Qe1 Qb2 31. Bf8 Qc3 32. Qh4 Kg8
+ 33. Qh8 Kf7 34. Bg6!\wdecisive;
+ {\sl c)} 27: Nd3 28. Bd3 ed3 29. Ne5\wdecisive
+ \end{variation}
+\begin{diagram}
+\board{ *b*rbn*}
+ {* * *p*k}
+ {r*pp *pp}
+ {pq* * * }
+ { nNPP*N*}
+ {* R BP*P}
+ { P * *P*}
+ {*BQ R K }
+\end{diagram}
+25. Bh6!
+ \begin{variation}
+ 25. Bf4\wupperhand
+ \end{variation}
+Bh6 26. Nh6 Nh6 27. Nd6 Qb6 28. Ne8
+ \begin{variation}
+ 28. Rc5!? Rd8 29. e5\wupperhand\withattack
+ \end{variation}
+Qd4 29. Kh1 Qd8 Rd1! Qe8 31. Qg5 Ra7
+ \begin{variation}
+ 31: Bd7 32. f4 f5 33. Rc5!\wdecisive
+ \end{variation}
+32. Rd8 Qe6 33. f4 Ba6
+ \begin{variation}
+ 33: Rd7 34. f5 gf5 35. ef5 Qe1 36. Kh2 Qe5 37. Rg3\wdecisive;
+ 33: f6 34. Qc5! Rd7 35. Rd7 Qd7 36. Qa5\wdecisive
+ \end{variation}
+34. f5 Qe7 35. Qd2! Qe5
+ \begin{variation}
+ 35: Nd5 36. fg6 fg6 37. ed5 Qd8 38. Bg6!\wdecisive;
+ 33: Rd7 34. f5 gf5 35. ef5 Qe1 36. Kh2 Qe5 37. Rg3\wdecisive;
+ 35: Ng8 36. Qd4 Rc7 37. e5 Nd5 38. fg6 fg6 39. Bg6! Kg7 40. Rd5 cd5
+ 41. Rg3\wdecisive
+ \end{variation}
+36. Qf2 Qe7
+ \begin{variation}
+ 36: Re7 37. Rc5\wdecisive
+ \end{variation}
+37. Qd4 Ng8 38. e5 Nd5 39. fg6 fg6 40. Rc6 Qd8 41. Qa7
+ \begin{variation}
+ 41. Rg6 Kh8 42. Qa7\wdecisive
+ \end{variation}
+Nde7 42. Ra6 Qd1 43. Qg1 Qd2 44. Qf1
+\end{mainline}
+\end{document}
diff --git a/fonts/chess/chess/doc/schaakmaatje.ltx b/fonts/chess/chess/doc/schaakmaatje.ltx
new file mode 100644
index 0000000000..b4c5283a11
--- /dev/null
+++ b/fonts/chess/chess/doc/schaakmaatje.ltx
@@ -0,0 +1,477 @@
+% File: SchaakMaatje.ltx
+% Purpose: chess magazine for our chess club: Schaakclub Geldrop.
+% Demonstrates the usage of te Dutch language and the nochess
+% environment (needed for the first table). Contains a chess
+% challenge at the very end (game of Max Euwe against the young
+% Bobby Fisher).
+% Version: 1.2 (June 1991)
+% Author: Piet Tutelaers (internet: rcpt@urc.tue.nl)
+%
+\documentstyle[a4wide,fancyheadings,dutch,chess]{article}
+
+%
+% TeX macros
+%
+
+\def\h{\leavevmode
+ \raise.5ex\hbox{\the\scriptfont0 1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 2}}
+
+\def\d{\vrule height7.5pt width15pt depth2.5pt}
+\def\S{$\sum$}
+\def\remise{\h--\h}
+
+\def\G#1{$G_{#1}$}
+
+%
+% LaTeX macros
+%
+
+\thispagestyle{empty}
+\begin{document}
+\begin{nochess} % put the environment outside the twocolumn option!
+\twocolumn[
+{\hfil\Huge Schaakmaatje\hfil\par}
+\vspace{1cm}
+\begin{tabular}{|l|l|l|ll|l|} \hline
+\multicolumn{6}{|c|}{Schaakclub Geldrop--{\bf SCG}} \\ \hline
+Voorzitter &Paul van Heuven &Schoutstr 22 &5663 EZ &Geldrop &040--852191 \\ \hline
+Secr/penningm &Sjim Jonkmans &Adm Byrdstr 26 &5665 HE &Geldrop &040--851630 \\\hline
+Wedstrijdleider &Hans van Keulen &Nieuwendijk 31 &5591 JJ &Heeze &04907--5266 \\ \hline
+Redakteur &Piet Tutelaers &Lambertushof 52&5667 SG &Geldrop &040--854670 \\\hline
+\end{tabular}
+\par
+\vspace{1cm}
+{\hfill{}12${}^e$ Jaargang nr. 225, 9 januari 1990}
+\vspace{1cm}
+]
+\end{nochess}
+
+\pagestyle{fancy}
+\lhead{Schaakmaatje}\rhead{{}12${}^e$ Jaargang nr. 225}
+\subsection*{Van de redaktie}
+Helaas verschijnt deze aflevering niet op de geplande 19 december (sorry
+Sjim), maar daar waren zoals je weet enkele redenen voor. Maar niet
+getreurd, dit nummer staat weer barstens vol met schaaknieuws.
+
+Naast de zeer gewaardeerde H(aHa)--lijn, heb ik een wat serieuzere
+bijdrage voor de leden toegevoegd. Het betreft een partij tussen
+niemand minder dan Max Euwe en Bobby Fisher. Euwe kan het aanstormend
+talent Fisher hier nog de baas. De partij is in de vorm van een
+schaaktest gegoten. Voor elke zet kun je punten verdienen. Aan het
+eind kun je je eigen zetten vergelijken met de zet die gespeeld is, of
+die gespeeld had kunnen worden. Ik ben zeer benieuwd wat jullie
+puntentotaal is! Laat horen of je zo'n schaaktest leuk vindt, wie weet
+komen er dan nog meer. (Meer gegevens vind je bovenaan op pagina~5.)
+
+\subsection*{Bavaria tournooi}
+We spelen dit jaar weer mee met het Bavaria tournooi. Onze tegenstanders
+in de A2 groep zijn: SCAR~1 (Aarle--Rixtel), De Combinatie~2 (Asten),
+Deurnese SC en En Passant (Veghel). Hoewel ons spelers potentieel enorm
+is toegenomen, wil ik toch proberen zoveel mogelijk mensen mee te laten
+spelen. Dus het motto blijft voorlopig: ``Meedoen is belangrijker dan
+winnen''. De Bavaria ronden zijn gepland op:
+
+\begin{tabbing}
+di\hspace{.3cm} \= 16--1 \hspace{.3cm}\= SCG vrij \\
+ma \> 12--2 \> En Passant --- SCG \\
+di \> 13--3 \> SCG --- Deurnese SC \\
+do \> 05--4 \> SCAR~1 -- SCG \\
+di \> 24--4 \> SCG --- De Combinatie 2 \\
+\end{tabbing}
+
+\subsection*{De H(aha)--lijn --13--}
+De dertiende aflevering, als dit maar goed gaat \ldots. Niet dat ik
+bijgelovig ben, maar er bestaat nog zoiets als de Wet van Murphy. U
+weet wel, alles wat fout kan gaan, gaat ook fout. Ik schrijf deze
+bijdrage voor het Schaakmaatje 225, waarvoor als verschijningsdatum 19
+december 1989 is voorzien. Maar of dat lukt?? Ik zal de goden maar niet
+verzoeken met opmerkingen als: ``In deze laatste bijdrage van het jaar
+\ldots.'' of ``Voor de komende feestdagen de volgende opgaven...''.
+Ach, het doet er ook allemaal niet zoveel toe, wanneer jullie dit onder
+ogen krijgen. Als je er maar plezier aan beleeft. Eerst de oplossingen
+van de vorige keer.
+
+\subsubsection*{Oplossing \G{22}}
+Niet echt moeilijk. |1.: Dh3+; 2. K*h3, Lf1 mat| of |2. Kf2 (of Kg1), Df1|
+ mat, of |2. Kh1, Df1+; 3. Lg1, D*f3| mat. Toen ik deze oplossing overtikte
+uit mijn schriftje met problemen zat ik met een scheef oog naar het diagram
+te kijken. Wat? |3. Lg1|? Waar komt die in hemelsnaam vandaan? Wel, om de
+waarheid te zeggen van e3. In het diagram van de vorige keer was ik de witte
+loper van e3 vergeten. Foei toch. Maar gelukkig bleef het probleem oplosbaar.
+
+\subsubsection*{Oplossing \G{23}}
+De tweeling. Stand a, met de toren op a1 is niet moeilijk. |1. 0-0-0|
+geeft mat in \'e\'en zet. De stand is mogelijk. De koning kan van c4 gekomen
+zijn na |Lb1-a2+|. Stand b, met de |T| op b1 i.p.v. a1 is onmogelijk met wit aan
+zet. (Probeer maar eens de laatste zet van zwart te vinden.) Dus Zwart is aan
+zet en na |K*c2| wordt zwart met |Dd2| matgezet. Oorspronkelijk stond er in mijn
+tekst: ``Stand b, met de witte toren op b''. Een collega van mij kon geen
+oplossing vinden met de toren van a1 op b1 en zette vervolgens de toren van
+e4 op b1 en vond toen een oplossing. Probeer het maar eens.
+
+\board{ * * *k*}
+ {* * * l }
+ { * * * *}
+ {* * *T*T}
+ { * * *T*}
+ {* * * * }
+ { * * *K*}
+ {* * * * }
+\subsubsection*{Opgave \G{24}}
+Hoe we mat met twee torens moeten geven weten we allemaal. Maar
+met drie? Wit (aan zet) geeft mat in drie zetten.
+%\begin{dia}
+\vspace{.2cm}
+$$\showboard$$
+\centerline{Diagram 1: Opgave \G{24}}
+%\caption{Opgave \G{24}}
+%\end{dia}
+
+\board{ * *d* *}
+ {* * * * }
+ { * *t* *}
+ {DIP k * }
+ { * * * *}
+ {* * K * }
+ { * * * *}
+ {* * * * }
+\subsubsection*{Opgave \G{25}}
+Bij schaakproblemen is het meestal van belang wat er gaat
+gebeuren. In deze opgave gaat het erom wat er is gebeurd. Als
+wit zijn laatste zet terug mocht nemen zou hij mat in \'e\'en zet kunnen geven.
+Het terugnemen van een zet is natuurlijk niet regelementair, maar voor de rest
+wordt er strikt volgens de regels gespeeld.
+
+Deze laatste opgave staat (o.a) in het boekje van L\'eon Vi\'e: ``Denk
+mee met L\'eon Vi\'e''. Als toegift geef ik een aardig probleempje dat,
+zij het in een iets andere vorm, eveneens in dat boekje is vermeld:
+
+\subsubsection*{Opgave \G{26}}
+Van een volkomen regulier verlopen schaakpartij is alleen gegeven dat na
+de spectaculaire opening |1. f2-f3(!)| een even spectaculair slot
+volgt. Na de vierde (!!) zet van Zwart staat de witte koning mat op h4.
+De vraag luidt: Hoe zag die complete schaakpartij eruit??
+
+\centerline{(Sjim)}
+
+%\begin{dia}
+\vspace{.2cm}
+$$\showboard$$
+\centerline{Diagram 2: Opgave \G{25}}
+%\caption{Opgave \G{25}}
+%\end{dia}
+
+\subsection*{Van de wedstrijdleider}
+
+\subsubsection*{Competitie}
+De leiding in de competitie wordt op dit ogenblik gedeeld door George van de
+Wall, Leen schoenmeijer en Ad Weekers. Dit zijn namen die tot nu toe niet
+allen in de bovenste regionen van onze clubcompetitie te vinden waren.
+De clubkampioen en de nummer twee van vorig jaar doen het op het ogenblik
+slechts matig. Misschien is een verklaring hiervoor dat sterkere spelers nu
+meer dan vorig jaar tegen spelers van hetzelfde niveau worden opgesteld.
+Leo hovestadt, een nieuw lid, doet het zeer goed met 3 punten uit drie
+partijen.
+
+\subsubsection*{Elo}
+De Elo competitie wordt aangevoerd door George van de Wall met 55
+winstpunten, maar hij wordt op korte afstand gevolgd door Leen Schoenmeijer
+en Leo Hovestadt. Er is in de Elo lijst nu een zekere mate van stabilisatie
+te zien.
+
+\subsubsection*{Snelschaak}
+Hier gaat het nieuwe lid Leo Hovestadt ruimschoots voorop met 21 punten uit
+drie snelschaakronden. Teun van Loopik en Jack Tinnemans lopen erachteraan.
+
+\subsubsection*{Gongwedstrijd}
+Op 28 November is de jaarlijkse gongwedstrijd gehouden ter ere van de
+verjaardag van de goed heiligman. Er zijn drie prijzen verloot aan het einde
+van deze wedstrijd. De uitslag van deze dag luidde:
+
+\begin{tabbing}
+Agnes van der Waalsss \= 999 \kill
+Piet Tutelaers \> 8,5 \\
+Nico Hazewindus \> 8,0 \\
+Cees Buthker \> 7,0 \\
+Marco Kessels \> 6,5 \\
+George van de Wall \> 6,5 \\
+Hans van Keulen \> 5,0 \\
+Teun van Loopik \> 5,0 \\
+Jack Tinnemans \> 5,0 \\
+Hans Naus \> 4,5 \\
+Piet Bell \> 4,0 \\
+Sjim Jonkmans \> 4,0 \\
+Olaf van Mol \> 3,5 \\
+Leen Schoenmeijer \> 3,5 \\
+Geert Bogers \> 3,0 \\
+Jacques Zwaard \> 3,0 \\
+Paul van Heuven \> 3,0 \\
+\end{tabbing}
+
+\centerline{(Hans)}
+
+\subsection*{Stand interne competitie}
+\begin{tabbing}
+Agnes van der Waalsss \= 99 \= 99 \= 99 \= 99,0 \kill
+George van de Wall \> 5 \> 1 \> 0 \> 5,5 \\
+Leen Schoenmeijer \> 5 \> 1 \> 3 \> 5,5 \\
+Ad Weekers \> 4 \> 3 \> 3 \> 5,5 \\
+Paul van Heuven \> 4 \> 1 \> 2 \> 4,5 \\
+Hans Naus \> 3 \> 2 \> 2 \> 4,0 \\
+Hans van Keulen \> 4 \> 0 \> 3 \> 4,0 \\
+Teun van Loopik \> 2 \> 4 \> 4 \> 4,0 \\
+Sjack Tinnemans \> 3 \> 1 \> 1 \> 3,5 \\
+Marco Kessels \> 2 \> 3 \> 1 \> 3,5 \\
+Ben van de Heuvel \> 2 \> 3 \> 4 \> 3,5 \\
+Leo Hovestadt \> 3 \> 0 \> 0 \> 3,0 \\
+Kees van Hooidonk \> 2 \> 2 \> 2 \> 3,0 \\
+Olaf van Mol \> 2 \> 2 \> 4 \> 3,0 \\
+Agnes van der Waals \> 1 \> 3 \> 1 \> 2,5 \\
+Geert Bogers \> 2 \> 0 \> 1 \> 2,0 \\
+Piet Tutelaers \> 2 \> 0 \> 1 \> 2,0 \\
+Jacques Zwaard \> 1 \> 2 \> 1 \> 2,0 \\
+Sjim Jonkmans \> 1 \> 2 \> 2 \> 2,0 \\
+Cees B\"uthker \> 0 \> 4 \> 2 \> 2,0 \\
+Piet Bell \> 1 \> 2 \> 3 \> 2,0 \\
+Karel Snijders \> 1 \> 0 \> 0 \> 1,0 \\
+Hanny Dielissen \> 1 \> 0 \> 1 \> 1,0 \\
+Guus van der Waals \> 0 \> 0 \> 0 \> 0,0 \\
+Jan Toorenspits \> 0 \> 0 \> 1 \> 0,0 \\
+Remko van Dam \> 0 \> 0 \> 9 \> 0,0 \\
+\end{tabbing}
+
+\subsection*{Stand snelschaken}
+\begin{tabbing}
+Agnes van der Waalsss \= 999 \kill
+Leo Hovestadt \> 21 \\
+Teun van Loopik \> 13 \\
+Sjack Tinnemans \> 11 \\
+Sjim Jonkmans \> 7 \\
+Piet Tutelaers \> 6 \\
+George van de Wall \> 4 \\
+Hans van Keulen \> 3 \\
+Piet Bell \> 2 \\
+Agnes van der Waals \> 1 \\
+Olaf van Mol \> 1 \\
+Ben van de Heuvel \> 1 \\
+Cees B\"uthker \> 1 \\
+\end{tabbing}
+
+\subsection*{Elo rating stand}
+\begin{tabbing}
+Agnes van der Waalsss \= 999999 \= 999999 \= +9999 \kill
+ \> oud \> nieuw \> verschil \\
+George van de Wall \> 1700 \> 1755 \> +55 \\
+Paul van Heuven \> 1714 \> 1709 \> -5 \\
+Marco Kessels \> 1656 \> 1658 \> +2 \\
+Sjack Tinnemans \> 1595 \> 1630 \> +35 \\
+Piet Tutelaers \> 1596 \> 1620 \> +24 \\
+Sjim Jonkmans \> 1626 \> 1610 \> -16 \\
+Cees B\"uthker \> 1629 \> 1592 \> -37 \\
+Leo Hovestadt \> 1500 \> 1543 \> +43 \\
+Piet Bell \> 1526 \> 1515 \> -11 \\
+Leen Schoenmeijer \> 1467 \> 1509 \> +42 \\
+Agnes van der Waals \> 1477 \> 1483 \> +6 \\
+Ben van de Heuvel \> 1510 \> 1480 \> -30 \\
+Teun van Loopik \> 1485 \> 1461 \> -24 \\
+Kees van Hooidonk \> 1458 \> 1451 \> -7 \\
+Jacques Zwaard \> 1442 \> 1438 \> -4 \\
+Jan Toorenspits \> 1432 \> 1413 \> -19 \\
+Geert Bogers \> 1400 \> 1410 \> +10 \\
+Ad Weekers \> 1386 \> 1407 \> +21 \\
+Hans van Keulen \> 1383 \> 1402 \> +19 \\
+Hans Naus \> 1368 \> 1401 \> +33 \\
+Hanny Dielissen \> 1400 \> 1400 \> +0 \\
+Olaf van Mol \> 1395 \> 1366 \> -29 \\
+Guus van der Waals \> 1325 \> 1325 \> +0 \\
+Karel Snijders \> 1258 \> 1280 \> +22 \\
+Remko van Dam \> 1400 \> 1270 \>-130 \\
+\end{tabbing}
+
+\subsection*{Uitslagen snelschaakronden}
+\begin{tabbing}
+Agnes van der Waalsss \= 999 \kill
+{\sl 19 december 1989} \\
+Jack Tinnemans \> 9 \\
+Leo Hovestadt \> 6 \\
+George van de Wall \> 3 \\
+Teun van Loopik \> 1 \\
+Piet Bell \> 1 \\
+\end{tabbing}
+
+\onecolumn
+
+\subsection*{Gespeelde partijen}
+\begin{tabbing}
+Agnes van der Waalsss \= Agnes van der Waalssss \= \remise \kill
+\hspace*{2.5cm}{\sl 7 november 1989} \\
+Agnes van der Waals\> Piet Bell \> \remise \\
+Olaf van Mol \> Remko van Dam \> 1 -- 0 \\
+Teun van Loopik \> Hans van Keulen \> 1 -- 0 \\
+Marco Kessels \> Leen Schoenmeijer \> 1 -- 0 \\
+George van de Wall \> Piet Tutelaers \> 1 -- 0 \\
+Cees Buthker \> Paul van Heuven \> 0 -- 1 \\
+Geert Bogers \> Hans Naus \> 0 -- 1 \\
+Ad Weekers \> Ben van de Heuvel \> 0 -- 1 \\[.5cm]
+\hspace*{2.5cm}{\sl 14 november 1989}\\[.2cm]
+Ad Weekers \> Teun van Loopik \> \remise \\
+Leen Schoenmeijer \> Cees Buthker \> \remise \\
+Piet Tutelaers \> Piet Bell \> 1 -- 0 \\
+Sjim Jonkmans \> Ben van de Heuvel \> 1 -- 0 \\
+Remko van Dam \> Hans van Keulen \> 0 -- 1 \\
+Olaf van Mol \> Geert Bogers \> 0 -- 1 \\[.5cm]
+\hspace*{2.5cm}{\sl 21 november 1989}\\[.2cm]
+Sjim Jonkmans \> Cees Buthker \> \remise \\
+Ad Weekers \> Olaf van Mol \> \remise \\
+Leen Schoenmeijer \> Ben van de Heuvel \> 1 -- 0 \\
+George van de Wall \> Piet Bell \> 1 -- 0 \\
+Remko van Dam \> Geert Bogers \> 0 -- 1 \\
+Jacques Zwaard \> Hans Naus \> 0 -- 1 \\
+Teun van Loopik \> Leo Hovestadt \> 0 -- 1 \\[.5cm]
+\hspace*{2.5cm}{\sl 12 december 1989}\\[.2cm]
+Hans Naus \> Ben van de Heuvel \> \remise \\
+Piet Bell \> Cees Buthker \> \remise \\
+Ad Weekers \> Remko van Dam \> 1 -- 0 \\
+Jack Tinnemans \> Leen Schoenmeijer \> 1 -- 0 \\
+Teun van Loopik \> Paul van Heuven \> 0 -- 1 \\
+Marco Kessels \> Piet Tutelaers \> 0 -- 1 \\
+\end{tabbing}
+
+
+\parindent=0pt
+
+\twocolumn[
+{\hfil\Huge Schaaktest\hfil\par}
+\par
+\vspace{1cm}
+Je kunt je speelsterkte testen door de volgende partij na te spelen tot
+en met zet 11 van Zwart. Hierna schrijft je de zetten op die Max
+Euwe volgens jou had moeten spelen. Om het eerlijk te spelen, moet je wel
+de zetten links onderaan de pagina met een stuk karton bedekken.
+Telkens als je een zet bedacht hebt, schrijf je die op in de kolom ``Uw
+keuze voor Wit''. Het karton waarmee de echte zetten bedekt zijn, kan nu
+een regel opgeschoven worden. Er moeten in totaal tien zetten gespeeld
+worden. Als alle zetten gespeeld zijn, bepaal je de behaalde punten.
+Meestal staat het puntentotaal in de kolom ``Punten'', linksonder. Soms
+vallen er ook nog punten te verdienen als je een andere zet hebt gekozen
+dan de zet die in de partij gespeeld werd. Deze vindt je op de volgende
+pagina. Veel plezier! (Piet)
+\vspace{1cm}
+]
+
+Wit: Dr.~Max~Euwe / Zwart: Bobby Fisher\par
+New York 1957.
+
+{\sl Geweigerd Damegambiet}
+
+\newgame
+\move d2d4 g8f6
+\move c2c4 e7e6
+\move b1c3 d7d5
+\move c4d5 e6d5
+\move c1g5 f8b4
+\move e2e3 h7h6
+\move g5h4 c7c5
+
+(Een enigzins riskante opzet.)
+
+\move f1d3 b8c6
+\move g1e2 c5d4
+
+(Na |9: 0-0 10 0-0| gaat |10: c*d4| niet goed meer wegens |11 L*f6, D*f6|
+|12 P*d5|.
+
+Met |9: c4| kon Zwart het spel een geheel andere wending geven,
+maar hij houdt dan moeilijkheden met de dekking van d5. B.v. |10 Lc2, 0-0|
+|11 0-0, Le6 12 Pf4|.)
+
+\vfill
+
+\begin{tabular}{lcrc}
+&{\sl Wit}&\multicolumn{1}{c}{\sl Punten}& {\sl Zwart}\\[2ex]
+12.&|Ld3-c2| & 20 & |Lb4-e7| \\
+13.&|Pe2-f4| & 15 & |Dd8-b6| \\
+14.&|Lh4*f6| & 8 & |Le7*f6| \\
+15.&|Dd1-d3| & 6 & |Tf8-d8| \\
+16.&|Dd3-h7+|& 4 & |Kg8-f8| \\
+17.&|Ta1-e1| & 13 & |Pc6-b4| \\
+18.&|a2-a3| & 20 & |Pb4*c2| \\
+19.&|Pc3*d5| & 10 & |Td8*d5| \\
+20.&|Pf4*d5| & 4 & Zwart geeft op\\\cline{3-3}
+ & &100 \\
+\end{tabular}
+\newpage
+
+\move e3d4 e8g8
+\move e1g1 c8e6
+\medskip
+$$\showboard$$
+\smallskip
+\centerline{\sl De lezer heeft Wit.}
+
+\vfill
+
+\begin{tabular}{ccc}
+\sl Uw keuze voor Wit &\hspace{.5cm}& \sl Behaalde punten \\[2ex]
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+ && \\\cline{1-1}\cline{3-3}
+\multicolumn{1}{r}{\bf Uw score} && \\\cline{3-3}
+\end{tabular}
+
+\onecolumn
+
+{\em Opmerkingen\/}:
+
+\begin{tabular}{lp{12cm}}
+|12. Ld3-c2|& Met de duidelijke bedoeling Zwart door |13 Dd3| voor een
+voldongen feit te stellen. Positioneel bevredigend is ook |12 Tc1| -- {\bf
+6 punten}.\\
+
+|12.: Lb4-e7|& Om |13 Dd3| te beantwoorden met |13: Pb4|.\\
+
+|13. Pe2-f4| & Rustiger en voldoende om voordeel te handhaven was |13 a3|
+-- {\bf 6 punten}.\\
+
+|13.: Dd8-b6| & Het enige was hier |13: g5 14 P*e6, f*e6 15 Lg3, Db6| en
+Zwart kan nog tegenstand bieden.\\
+
+|15. Dd1-d3| & |15 Pc*d5| levert wegens |15: D*d4| niets op.\\
+
+|15.: Tf8-d8| & Op |15: g6| volgt niet |16 P*e6| wegens |16: Pb4|,
+maar |16 P*g6 (16: Pb4 17 Pe7+)|.\\
+
+|16. Dd3-h7+| & In de partij geschiedde |16 Tae1| -- {\bf 4 punten} --
+|Pb4 17 Dh7+|, hetgeen op hetzelfde neerkomt.\\
+
+|17. Ta1-e1| & Iets minder sterk is |17 Tfe1| --{\bf 8 punten}--, omdat
+onder bepaalde omstandigheden het slaan op b2 verwarring kan stichten
+(zie de opmerking bij de volgende zet onder 3). Met de tekstzet dreigt
+|18 P*d5|.\\
+
+|17.: Pc6-b4|& Andere mogelijkheden:\\
+& 1) |17: P*d4 of L*d4 18 Pc*d5| enz.\\
+& 2) |17: D*d4 18 T*e6!|\\
+& 3) |17: D*b2 18 Pc*d5, g5 19 T*e6!|\\
+& 4) |17: Pe7 18 Dh8+, Pg8 19 Lh7, Dc6 20 Pf*d5!, T*d5 21 D*g8+|.\\
+& 5) |17: g5 18 T*e6, f*e6 19 P*e6+, Ke8 20 Lg6 mat|.\\
+
+|18. a2-a3| & Verjaagt het paard, waarna Wit op d5 kan inslaan. Iets
+langzamer, maar ook voldoende voor de winst was |18 Lf5|--{\bf 15 punten}.\\
+
+|18.: Pb4*c2| & Op |18: D*d4| beslist weer |19 T*e6|.\\
+
+|19. Pc3*d5| & |19 Pf*d5|--{\bf 10 punten}--komt op hetzelfde neer.\\
+
+|20. Pf4*d5| & Zwart geeft het op, daar zowel |21 P*b6| als |21 Dh8|
+mat dreigt.
+\end{tabular}
+
+\end{document}
diff --git a/fonts/chess/chess/doc/symbols.ltx b/fonts/chess/chess/doc/symbols.ltx
new file mode 100644
index 0000000000..3809851047
--- /dev/null
+++ b/fonts/chess/chess/doc/symbols.ltx
@@ -0,0 +1,57 @@
+\documentstyle[a4wide,chess,11pt]{article}
+%\documentstyle[chess,11pt]{article}
+%\topmargin -.5in
+%\textheight 8.5in
+
+\begin{document}
+\section*{Informant Code System}
+The following symbols are used in the Informant:
+\begin{tabbing}
+\hspace{2.5cm} \= \hspace{4cm} \= \kill
+\bf symbol \> \bf (La)TeX \> \bf meaning \\[.1cm]
+\hspace{0.5cm} \= \hspace{2cm} \= \hspace{4cm} \= \kill
+\> \wbetter \> \verb+\wbetter+ \> White stands slightly better \\
+\> \bbetter \> \verb+\bbetter+ \> Black stands slightly better \\
+\> \wupperhand \> \verb+\wupperhand+ \> White has the upper hand \\
+\> \bupperhand \> \verb+\bupperhand+ \> Black has the upper hand \\
+\> \wdecisive \> \verb+\wdecisive+ \> White has a decisive advantage \\
+\> \bdecisive \> \verb+\bdecisive+ \> Black has a decisive advantage \\
+\> \equal \> \verb+\equal+ \> even \\
+\> \unclear \> \verb+\unclear+ \> unclear \\
+\> \compensation \> \verb+\compensation+ \> with compensation for the material \\
+\> \devadvantage \> \verb+\devadvantage+ \> development advantage \\
+\> \moreroom \> \verb+\moreroom+ \> greater board room \\
+\> \withattack \> \verb+\withattack+ \> with attack \\
+\> \withinit \> \verb+\withinit+ \> with initiative \\
+\> \counterplay \> \verb+\counterplay+ \> with counter-play \\
+\> \zugzwang \> \verb+\zugzwang+ \> zugzwang \\
+\> \mate \> \verb+\mate+ \> mate \\
+\> \withidea \> \verb+\withidea+ \> with the idea \\
+\> \onlymove \> \verb+\onlymove+ \> only move \\
+\> \betteris \> \verb+\betteris+ \> better is \\
+\> \file \> \verb+\file+ \> file \\
+\> \diagonal \> \verb+\diagonal+ \> diagonal \\
+\> \centre \> \verb+\centre+ \> center \\
+\> \kside \> \verb+\kside+ \> King's side \\
+\> \qside \> \verb+\qside+ \> Queen's side \\
+\> \weakpt \> \verb+\weakpt+ \> weak point \\
+\> \ending \> \verb+\ending+ \> ending \\
+\> \bishoppair \> \verb+\bishoppair+ \> pair of bishops \\
+\> \opposbishops \> \verb+\opposbishops+ \> bishops of opposite color \\
+\> \samebishops \> \verb+\samebishops+ \> bishops of the same color \\
+\> \unitedpawns \> \verb+\unitedpawns+ \> united pawns \\
+\> \seppawns \> \verb+\seppawns+ \> separated pawns \\
+\> \doublepawns \> \verb+\doublepawns+ \> double pawns \\
+\> \passedpawn \> \verb+\passedpawn+ \> passed pawn \\
+\> \morepawns \> \verb+\morepawns+ \> advantage in number of pawns \\
+\> \timelimit \> \verb+\timelimt+ \> time \\
+\> \novelty \> \verb+\novelty+ \> novelty \\
+\> \comment \> \verb+\comment+ \> editorial comment \\
+\> \various \> \verb+\various+ \> various moves \\
+\> \with \> \verb+\with+ \> with \\
+\> \without \> \verb+\without+ \> without \\
+\> \etc \> \verb+\etc+ \> etc. \\
+\> \see \> \verb+\see+ \> see
+\end{tabbing}
+\end{document}
+
diff --git a/fonts/chess/chess/doc/symbols.tex b/fonts/chess/chess/doc/symbols.tex
new file mode 100644
index 0000000000..21e860f659
--- /dev/null
+++ b/fonts/chess/chess/doc/symbols.tex
@@ -0,0 +1,51 @@
+\input chess.sty
+\def\verb#1{{\tt\char '134 #1}}
+{\bf Informant Code System}\par
+The following symbols are used in the Informant:
+\settabs\+\hbox to 2.5cm{}&\hbox to 4cm{}&\cr
+\+\bf symbol & \bf (La)TeX & \bf meaning\cr
+\settabs\+\hbox to 0.5cm{}&\hbox to 2.5cm{}&\hbox to 4cm{}&\quad&\cr
+\+& \wbetter & \verb{wbetter} & White stands slightly better \cr
+\+& \bbetter & \verb{bbetter} & Black stands slightly better \cr
+\+& \wupperhand & \verb{wupperhand} & White has the upper hand \cr
+\+& \bupperhand & \verb{bupperhand} & Black has the upper hand \cr
+\+& \wdecisive & \verb{wdecisive} & White has a decisive advantage \cr
+\+& \bdecisive & \verb{bdecisive} & Black has a decisive advantage \cr
+\+& \equal & \verb{equal} & even \cr
+\+& \unclear & \verb{unclear} & unclear \cr
+\+& \compensation & \verb{compensation} & with compensation for the material \cr
+\+& \devadvantage & \verb{devadvantage} & development advantage \cr
+\+& \moreroom & \verb{moreroom} & greater board room \cr
+\+& \withattack & \verb{withattack} & with attack \cr
+\+& \withinit & \verb{withinit} & with initiative \cr
+\+& \counterplay & \verb{counterplay} & with counter-play \cr
+\+& \zugzwang & \verb{zugzwang} & zugzwang \cr
+\+& \mate & \verb{mate} & mate \cr
+\+& \withidea & \verb{withidea} & with the idea \cr
+\+& \onlymove & \verb{onlymove} & only move \cr
+\+& \betteris & \verb{betteris} & better is \cr
+\+& \file & \verb{file} & file \cr
+\+& \diagonal & \verb{diagonal} & diagonal \cr
+\+& \centre & \verb{centre} & center \cr
+\+& \kside & \verb{kside} & King's side \cr
+\+& \qside & \verb{qside} & Queen's side \cr
+\+& \weakpt & \verb{weakpt} & weak point \cr
+\+& \ending & \verb{ending} & ending \cr
+\+& \bishoppair & \verb{bishoppair} & pair of bishops \cr
+\+& \opposbishops & \verb{opposbishops} & bishops of opposite color \cr
+\+& \samebishops & \verb{samebishops} & bishops of the same color \cr
+\+& \unitedpawns & \verb{unitedpawns} & united pawns \cr
+\+& \seppawns & \verb{seppawns} & separated pawns \cr
+\+& \doublepawns & \verb{doublepawns} & double pawns \cr
+\+& \passedpawn & \verb{passedpawn} & passed pawn \cr
+\+& \morepawns & \verb{morepawns} & advantage in number of pawns \cr
+\+& \timelimit & \verb{timelimit} & time \cr
+\+& \novelty & \verb{novelty} & novelty \cr
+\+& \comment & \verb{comment} & editorial comment \cr
+\+& \various & \verb{various} & various moves \cr
+\+& \with & \verb{with} & with \cr
+\+& \without & \verb{without} & without \cr
+\+& \etc & \verb{etc} & etc. \cr
+\+& \see & \verb{see} & see\cr
+
+\bye
diff --git a/fonts/chess/chess/doc/tal.ltx b/fonts/chess/chess/doc/tal.ltx
new file mode 100644
index 0000000000..b67ab93616
--- /dev/null
+++ b/fonts/chess/chess/doc/tal.ltx
@@ -0,0 +1,244 @@
+% File: tal.ltx
+% Version 1.2: Febr. 1992
+
+% Changes from version 1.1
+% A number of typos corrected. When I replayed this game I discovered a
+% winning position for Fisher (after move 50 ... B-R8 in Fisher's book:
+% My 60 Memorable Games). But this turned out to be a typo from Fisher
+% that was corrected in his later book (Bobby Fisher: Fisher's chess games;
+% Oxford chess books, 1980, IBN 0-19-217566-1). The typo was copied also
+% in Bijl (Die Gesammelte Partien, pp. 177) and Euwe (Fisher en zijn
+% voorgangers, pp 280).
+
+\documentstyle[a4wide,chess,twocolumn]{article}
+\font\sc=cmcsc10
+
+\begin{document}
+\subsection*{Fischer -- Tal}
+\centerline{Candidates' Tournament 1959}\medskip
+{\sl A very near miss\smallskip
+
+This is one of the four games that Fisher lost to Tal who, in winning
+this tournament, earned the right to meet and trounce Botvinnik for the
+world championship.
+
+In jest the whimsical Tal signed Fisher's name, in addition to his own,
+when asked for an autograph. ``Why not?'' he quipped; ``I've beaten
+Bobby so often |:| that gives me the right to sign for him!''
+
+A carefull reading of Fisher's notes will reveal a clear echo of the
+strong emotions that engulfed him during this tense encounter. He misses
+a win in the opening and several draws along the way, demonstrating
+dramatically how a continuously advantageous position can abruptly be
+turned into defeat by seemingly insignificant miscalculations.}
+
+{\sc Sicilian Defense}\medskip
+
+\newgame
+\move e2e4 c7c5
+\move g1f3 d7d6
+\move d2d4 c5d4
+\move f3d4 g8f6
+\move b1c3 a7a6
+\move f1c4 e7e6
+\ply c4b3
+
+I had no better luck against Blackstone, in an exhibition game at Davis,
+California, 1964, with |7. 0-0, Be7; 8. Bb3, Qc7; 9. f4, b5; 10. f5, b4;
+11. f*e6!? (11. Nce2, e5; 12. Nf3, Bb7| is bad for White), |b*c3; 12. e*f7+,
+Kf8; 13. Bg5, Ng4!| and Black should win.
+
+\ply b7b5!
+
+This reaction must be prompt!
+
+In our first lap game here Tal played the weaker |7.: Be7?; 8. f4, 0-0|
+(for |8.: b5| see the note to Black's 8th move); |9. Qf3, Qc7 and now
+10. f5! (instead of 10. 0-0?, b5; 11. f5, b4!; 12. Na4, e5; 13. Ne2,
+Bb7| and Black stands better), |e5 (not 10.: Nc6; 11. Be3 with a bind);
+11. Nde2, b5; 12. a3, Bb7; 13. g4| with a strong attack.
+
+\move f2f4!? b5b4!
+Indirectly undermining White's center.
+
+\move c3a4 f6e4
+\move e1g1 g7g6?
+Correct is |10.: Bb7|.
+
+\ply f4f5!
+This riposte caught Tal completely unaware. Black's king trapped in the
+center, will soon be subject to mayhem.
+
+\ply g6f5
+Not |11.: e*f5; 12. Bd5, Ra7; 13. N*f5!, g*f5; 14. Qd4|.
+
+\ply d4f5!
+Panov, with typical iron curtain ``objectivity'', commented in the
+Soviet tournament bulletins: ``Almost all game Fischer played in Tal
+style. But all his trouble was in vain because Tal did not defend in
+Fischer style---instead he found the one and only saving
+counterchance!''
+
+$$\showboard$$
+
+\ply h8g8
+Woozy, Tal stumbles into a dubious defense. Better is |12.: d5 (not 12.:
+e*f5?; 13. Qd5, Ra7; 14. Qd4 spearing a rook); 13. Nh6, B*h6; 14. B*h6|.
+
+\ply b3d5!
+A shot!
+
+\ply a8a7
+``|13.: e*d5; 14. Q*d5, B*f5; 15. R*f5, Ra7; 16. Qe4+; Re7; 17. Q*b4,
+Re2; 18. Bg5!, R*g5; 19. R*g5, Q*g5; 20. Q*b8+ wins|'' ({\sc PANOV}).
+
+\ply d5e4?
+Correct is |14. Be3!, Nc5; 15. Qh5!, Rg6 (if 15.: N*a4, 16. B*a7, e*d5;
+17. Rae1+); 16. Rae1!| and White's every piece is bearing down on Black's
+king ({\sc KEVITZ}).
+
+\ply e6f5
+\ply e4f5
+Probably it's better to avoid exchanges with |15. Bd5 or Bf3|.
+
+\ply a7e7!
+A unique way of shielding the K-file.
+
+\move f5c8 d8c8
+\ply c1f4?
+The right move is simply |17. c3! (not 17. Q*d6?, R*g2+; 18. K*g2, Re2+;
+19. Kf3, B*d6; 20. K*e2, Q*c2+ wins), and if : Qc6; 18. Rf2|.
+
+\ply c8c6!
+\move d1f3 c6a4
+Such a surprise that I didn't dare believe my eyes! I had expected |18.:
+Q*f3; 19. R*f3, Re2; 20. Rf2, R*f2; 21. K*f2| and White has a slight
+edge after a3 because of Black's disconnected pawns.
+
+\move f4d6 a4c6!
+Tal finds a inspired defense.
+
+\move d6b8 c6b6+
+White remains a clear pawn ahead after |20.: Q*f3; 21. R*f3, Bg7; 22. c3|.
+
+\move g1h1 b6b8
+The crowd was shouting and whistling with each move. Later I was
+informed that many sport fans were in the audience. Maybe some soccer
+match had been canceled. As a consequence chess was the main attraction
+that day in Belgrade.
+
+\ply f3c6+
+Many annotators believed that |22. Rae1| was the winning move. Tal
+himself confessed he thougt Black was lost after that. But |22.: Kd8!|
+holds in all lines (not |22.: Rg6?; 23. Q*f7+, Kd7; 24. Rd1+!, Rd6; 25.
+R*d6+, K*d6; 26. Rf6+!| wins). I've studied this position for ages, it
+seems, and the best I can find is |23. Rd1+, Kc7! (23.: Kc8?; 24. Qc6+
+wins); 24. Qf4+ (if 24. Rd4, Qb7!), Kb7; 25. Rd6, Qc7; 26. Q*b4+, Kc8;
+27. R*a6, Qb7!; 28. Q*b7+, K*b7; 29. Raf6, Rg7|=.
+
+\ply e7d7
+\ply a1e1+
+Black holds after |23. Rad1, Bd6; 24. R*f7 (if 24. Rf6, Rg6; 25. Rd*d6?,
+Q*d6!), Qc7,| etc. And on |23. R*f7, Qd6|.
+
+\ply f8e7
+Finally Tal ``develops'' his bishop. Not |23.: Kd8; 24. R*f7!, Be7; 25.
+Rf*e7, R*e7; 26. Rd1+| wins.
+
+\move f1f7 e8f7
+\move c6e6+ f7f8!
+I thought he had to go to g7, whereupon |26. Q*d7| wins easily.
+
+$$\showboard$$
+
+\ply e6d7
+Not |26. Rf1+, Kg7; 27. Rf7+, Kh8; and if 28. Q*d7, Rd8; 29. Qg4, Qe5|
+wins.
+
+\ply b8d6
+\move d7b7 g8g6
+Within a handful of moves the game has changed its complexion. Now
+it is White who must fight for a draw!
+
+\ply c2c3!
+Black's extra piece means less with each pawn that's exchanged.
+
+\ply a6a5
+On |28.: b*c3; 29. Qc8+, Bd8; 30. Q*c3|=.
+
+\ply b7c8+
+On the wrong track. Right is |29. c*b4!, Q*b4 (if 29.: a*b4; 30. a3!,
+b*a3; 31. b*a3, Q*a3 draws); 30. Qf3+, Kg7; 31. Qe2| draws, since Black
+can't possibly build up a winning K-side attack and his own king is to
+exposed.
+
+\ply f8g7
+\move c8c4 e7d8
+\move c3b4 a5b4
+On |31.: Q*b4; 32. Qe2| White should draw with best play.
+
+\ply g2g3?
+Creating loosing chances. I don't see how Black can make any progress
+after |32. Qe4|. If |32.: Bc7; 33. Qe7+, Kg8; 34. Qe8+, Qf8; 35. Qe4|,
+etc.
+
+\ply d6c6+
+\move e1e4 c6c4
+\move e4c4 g6b6!
+I overlooked this. Now Black has winning chances. I had planned on a
+draw after |34.: Be7?; 35. a3!| dissolving Black's b--pawn (|35.: b3 is
+answerred by 36. Rc7 followed by Rb7|).
+
+\move h1g2 g7f6
+\move g2f3 f6e5
+\ply f3e3
+|37. a3| is met as always, by b3. Once White can eliminate Black's
+b--pawn it's a theoretical draw.
+
+\ply d8g5+
+\move e3e2 e5d5
+\move e2d3 g5f6
+White might be able to draw this ending, but it's an ugly defensive chore.
+
+\ply c4c2?
+Too passive. I wanted to avoid immobilizing my Q--pawns with |40. b3|
+but it's the best hope now. On |40.: Be7; 41. Rd4+| preserves drawing
+chances.
+
+$$\showboard$$
+
+\ply f6e5
+\move c2e2 b6f6
+\move e2c2 f6f3+
+\move d3e2 f3f7
+\move e2d3 e5d4!
+Little by little Tal inches his way in.
+
+\ply a2a3
+On |45. b3, Rf3+; 46. Ke2, Rf2+; 47. Qd3, R*c2; 48. Ke4| wins.
+
+\ply b4b3
+\ply c2c8
+Equally hopeless is |46. Re2 (or 46. Rd2, Rf3+; 47. Ke2, Rf2+), Rf3+;
+47. Kd2, B*b2| etc.
+
+\ply d4b2
+\move c8d8+ d5c6
+\move d8b8 f7f3+
+\move d3c4 f3c3+
+\move c4b4 c6c7 % c6c7 and b8b5 missing in Fisher's book!
+(Here the author omits |50: Kc7; 51. Rb5| but overlooked that he could
+win the game {(\it pt})!)
+
+\move b8b5 b2a1
+\move a3a4 b3b2!
+
+$$\showboard$$
+
+White resigns.
+
+If |53. K*c3, b1Q+!|
+
+From: {\sl My 60 Memorable Games}, by Bobby Fischer; Faber and Faber,
+London. 1969. {\sc ISBN} 0 571 09312 4
+\end{document}
diff --git a/fonts/chess/chess/doc/tal.tex b/fonts/chess/chess/doc/tal.tex
new file mode 100644
index 0000000000..d439ae7375
--- /dev/null
+++ b/fonts/chess/chess/doc/tal.tex
@@ -0,0 +1,247 @@
+% File: tal.tex
+% Version 1.2: Febr. 1992
+
+% Changes from version 1.1
+% A number of typos corrected. When I replayed this game I discovered a
+% winning position for Fisher (after move 50 ... B-R8 in Fisher's book:
+% My 60 Memorable Games). But this turned out to be a typo from Fisher
+% that was corrected in his later book (Bobby Fisher: Fisher's chess games;
+% Oxford chess books, 1980, IBN 0-19-217566-1). The typo was copied also
+% in Bijl (Die Gesammelte Partien, pp. 177) and Euwe (Fisher en zijn
+% voorgangers, pp 280).
+
+\input chess.sty
+\hsize=6.2truein
+\parindent=0pt
+\overfullrule=0pt
+\input 2side
+\gutter{20pt}
+\font\sc=cmcsc10
+
+{\bf Fischer -- Tal}\smallskip
+Candidates' Tournament 1959\medskip
+{\sl A very near miss\smallskip
+This is one of the four games that Fisher lost to Tal who, in winning
+this tournament, earned the right to meet and trounce Botvinnik for the
+world championship.
+
+In jest the whimsical Tal signed Fisher's name, in addition to his own,
+when asked for an autograph. ``Why not?'' he quipped; ``I've beaten
+Bobby so often |:| that gives me the right to sign for him!''
+
+A carefull reading of Fisher's notes will reveal a clear echo of the
+strong emotions that engulfed him during this tense encounter. He misses
+a win in the opening and several draws along the way, demonstrating
+dramatically how a continuously advantageous position can abruptly be
+turned into defeat by seemingly insignificant miscalculations.}
+
+{\sc Sicilian Defense}\medskip
+
+\newgame
+\move e2e4 c7c5
+\move g1f3 d7d6
+\move d2d4 c5d4
+\move f3d4 g8f6
+\move b1c3 a7a6
+\move f1c4 e7e6
+\ply c4b3
+
+I had no better luck against Blackstone, in an exhibition game at Davis,
+California, 1964, with |7. 0-0, Be7; 8. Bb3, Qc7; 9. f4, b5; 10. f5, b4;
+11. f*e6!? (11. Nce2, e5; 12. Nf3, Bb7| is bad for White), |b*c3; 12. e*f7+,
+Kf8; 13. Bg5, Ng4!| and Black should win.
+
+\ply b7b5!
+
+This reaction must be prompt!
+
+In our first lap game here Tal played the weaker |7.: Be7?; 8. f4, 0-0|
+(for |8.: b5| see the note to Black's 8th move); |9. Qf3, Qc7 and now
+10. f5! (instead of 10. 0-0?, b5; 11. f5, b4!; 12. Na4, e5; 13. Ne2,
+Bb7| and Black stands better), |e5 (not 10.: Nc6; 11. Be3 with a bind);
+11. Nde2, b5; 12. a3, Bb7; 13. g4| with a strong attack.
+
+\move f2f4!? b5b4!
+Indirectly undermining White's center.
+
+\move c3a4 f6e4
+\move e1g1 g7g6?
+Correct is |10.: Bb7|.
+
+\ply f4f5!
+This riposte caught Tal completely unaware. Black's king trapped in the
+center, will soon be subject to mayhem.
+
+\ply g6f5
+Not |11.: e*f5; 12. Bd5, Ra7; 13. N*f5!, g*f5; 14. Qd4|.
+
+\ply d4f5!
+Panov, with typical iron curtain ``objectivity'', commented in the
+Soviet tournament bulletins: ``Almost all game Fischer played in Tal
+style. But all his trouble was in vain because Tal did not defend in
+Fischer style---instead he found the one and only saving
+counterchance!''
+
+$$\showboard$$
+
+\ply h8g8
+Woozy, Tal stumbles into a dubious defense. Better is |12.: d5 (not 12.:
+e*f5?; 13. Qd5, Ra7; 14. Qd4 spearing a rook); 13. Nh6, B*h6; 14. B*h6|.
+
+\ply b3d5!
+A shot!
+
+\ply a8a7
+``|13.: e*d5; 14. Q*d5, B*f5; 15. R*f5, Ra7; 16. Qe4+; Re7; 17. Q*b4,
+Re2; 18. Bg5!, R*g5; 19. R*g5, Q*g5; 20. Q*b8+ wins|'' ({\sc PANOV}).
+
+\ply d5e4?
+Correct is |14. Be3!, Nc5; 15. Qh5!, Rg6 (if 15.: N*a4, 16. B*a7, e*d5;
+17. Rae1+); 16. Rae1!| and White's every piece is bearing down on Black's
+king ({\sc KEVITZ}).
+
+\ply e6f5
+\ply e4f5
+Probably it's better to avoid exchanges with |15. Bd5 or Bf3|.
+
+\ply a7e7!
+A unique way of shielding the K-file.
+
+\move f5c8 d8c8
+\ply c1f4?
+The right move is simply |17. c3! (not 17. Q*d6?, R*g2+; 18. K*g2, Re2+;
+19. Kf3, B*d6; 20. K*e2, Q*c2+ wins), and if : Qc6; 18. Rf2|.
+
+\ply c8c6!
+\move d1f3 c6a4
+Such a surprise that I didn't dare believe my eyes! I had expected |18.:
+Q*f3; 19. R*f3, Re2; 20. Rf2, R*f2; 21. K*f2| and White has a slight
+edge after a3 because of Black's disconnected pawns.
+
+\move f4d6 a4c6!
+Tal finds a inspired defense.
+
+\move d6b8 c6b6+
+White remains a clear pawn ahead after |20.: Q*f3; 21. R*f3, Bg7; 22. c3|.
+
+\move g1h1 b6b8
+The crowd was shouting and whistling with each move. Later I was
+informed that many sport fans were in the audience. Maybe some soccer
+match had been canceled. As a consequence chess was the main attraction
+that day in Belgrade.
+
+\ply f3c6+
+Many annotators believed that |22. Rae1| was the winning move. Tal
+himself confessed he thougt Black was lost after that. But |22.: Kd8!|
+holds in all lines (not |22.: Rg6?; 23. Q*f7+, Kd7; 24. Rd1+!, Rd6; 25.
+R*d6+, K*d6; 26. Rf6+!| wins). I've studied this position for ages, it
+seems, and the best I can find is |23. Rd1+, Kc7! (23.: Kc8?; 24. Qc6+
+wins); 24. Qf4+ (if 24. Rd4, Qb7!), Kb7; 25. Rd6, Qc7; 26. Q*b4+, Kc8;
+27. R*a6, Qb7!; 28, Q*b7+, K*b7; 29. Raf6, Rg7|=.
+
+\ply e7d7
+\ply a1e1+
+Black holds after |23. Rad1, Bd6; 24. R*f7 (if 24. Rf6, Rg6; 25. R1*d6?,
+Q*d6!), Qc7,| etc. And on |23. R*f7, Qd6|.
+
+\ply f8e7
+Finally Tal ``develops'' his bishop. Not |23.: Kd8; 24. R*f7!, Be7; 25.
+Rf*e7, R*e7; 26. Rd1+| wins.
+
+\move f1f7 e8f7
+\move c6e6+ f7f8!
+I thought he had to go to g7, whereupon |26. Q*d7| wins easily.
+
+$$\showboard$$
+
+\ply e6d7
+Not |26. Rf1+, Kg7; 27. Rf7+, Kh8; and if 28. Q*d7, Rd8; 29. Qg4, Qe5|
+wins.
+
+\ply b8d6
+\move d7b7 g8g6
+Within a handful of moves the game has changed its complexion. Now
+it is White who must fight for a draw!
+
+\ply c2c3!
+Black's extra piece means less with each pawn that's exchanged.
+
+\ply a6a5
+On |28.: b*c3; 29. Qc8+, Bd8; 30. Q*c3|=.
+
+\ply b7c8+
+On the wrong track. Right is |29. c*b4!, Q*b4 (if 29.: a*b4; 30. a3!,
+b*a3; 31. b*a3, Q*a3 draws); 30. Qf3+, Kg7; 31. Qe2| draws, since Black
+can't possibly build up a winning K-side attack and his own king is to
+exposed.
+
+\ply f8g7
+\move c8c4 e7d8
+\move c3b4 a5b4
+On |31.: Q*b4; 32. Qe2| White should draw with best play.
+
+\ply g2g3?
+Creating loosing chances. I don't see how Black can make any progress
+after |32. Qe4|. If |32.: Bc7; 33. Qe7+, Kg8; 34. Qe8+, Qf8; 35. Qe4|,
+etc.
+
+\ply d6c6+
+\move e1e4 c6c4
+\move e4c4 g6b6!
+I overlooked this. Now Black has winning chances. I had planned on a
+draw after |34.: Be7?; 35. a3!| dissolving Black's b--pawn (|35.: b3 is
+answerred by 36. Rc7 followed by Rb7|).
+
+\move h1g2 g7f6
+\move g2f3 f6e5
+\ply f3e3
+|37. a3| is met as always, by b3. Once White can eliminate Black's
+b--pawn it's a theoretical draw.
+
+\ply d8g5+
+\move e3e2 e5d5
+\move e2d3 g5f6
+White might be able to draw this ending, but it's an ugly defensive chore.
+
+\ply c4c2?
+Too passive. I wanted to avoid immobilizing my Q--pawns with |40. b3|
+but it's the best hope now. On |40.: Be7; 41. Rd4+| preserves drawing
+chances.
+
+$$\showboard$$
+
+\ply f6e5
+\move c2e2 b6f6
+\move e2c2 f6f3+
+\move d3e2 f3f7
+\move e2d3 e5d4!
+Little by little Tal inches his way in.
+
+\ply a2a3
+On |45. b3, Rf3+; 46. Ke2, Rf2+; 47. Qd3, R*c2; 48. Ke4| wins.
+
+\ply b4b3
+\ply c2c8
+Equally hopeless is |46. Re2 (or 46. Rd2, Rf3+; 47. Ke2, Rf2+), Rf3+;
+47. Kd2, B*b2| etc.
+
+\ply d4b2
+\move c8d8+ d5c6
+\move d8b8 f7f3+
+\move d3c4 f3c3+
+\move c4b4 c6c7 % c6c7 and b8b5 missing in Fisher's book!
+(Here the author omits |50: Kc7; 51. Rb5| but overlooked that he could
+win the game {(\it pt})!)
+
+\move b8b5 b2a1
+\move a3a4 b3b2!
+
+$$\showboard$$
+
+White resigns.
+
+If |53. K*c3, b1Q+!|
+
+From: {\sl My 60 Memorable Games}, by Bobby Fischer; Faber and Faber,
+London. 1969. {\sc ISBN} 0 571 09312 4
+\bye
diff --git a/fonts/chess/chess/doc/tugboat.ltx b/fonts/chess/chess/doc/tugboat.ltx
new file mode 100644
index 0000000000..cbead02b47
--- /dev/null
+++ b/fonts/chess/chess/doc/tugboat.ltx
@@ -0,0 +1,630 @@
+%
+% TUGboat.ltx
+% -----------
+% LaTeX source of TUGboat article
+% Author : Piet Tutelaers (internet: rcpt@urc.tue.nl)
+% Version: 1.2 (Dec 1991)
+% Documents new features from chess.sty version 1.2 and reflects
+% changes. See header of chess.sty for a complete list.
+
+\documentstyle[chess,ltugboat]{article}
+\title{A Font and a Style for Typesetting Chess using \LaTeX\ or \TeX}
+\author{Piet Tutelaers}
+\address{Computer Center\\
+Eindhoven University of Technology\\
+\POBox 513\\
+5600 MB Eindhoven, NL}
+\netaddress[\network{internet}]{rcpt@urc.tue.nl}
+
+\begin{document}
+\maketitle
+
+\noindent
+The Berkeley Font Catalogue~\cite{Berkeley} demonstrates how a chess font
+in combination with troff can be used to typeset chess diagrams. This
+article has inspired me to build a chess font with \MF\ from the nice
+font, see diagram~1, I once bought from Schaakhuis De Haan (Arnhem,
+The Netherlands).
+\begin{figure}
+\input{epsf.sty}
+\epsfxsize=7cm
+$$\epsffile{board.epsf}$$
+\centerline{Diagram~1: Original font}
+\centerline{(original size of board $9\times 9$ cm)}
+\end{figure}
+This `font' consists of a set of chess boards and separate sets of
+chess pieces. The pieces have to be pasted on the board after pulling
+them from a sheet of paper. This nowadays is still common practice
+for publishers. Before I used \MF\ I made enlargements of the
+pieces on graph-paper using my stereo microscope for which I have a
+drawing prism. This graph-paper makes it easy to read the coordinates
+of points that need to be given to \MF. For the development of the
+font I have used Amiga\MF\ which has graphical support. The design
+of the chess style has been done with Amiga\TeX. Both programs run
+comfortably on my private Amiga1000 with 2.5 Megabytes of internal
+memory.
+
+A chess font consists of 26 characters, with one character for the empty
+light square and one for the empty dark square. For each chess piece
+(Pawn, kNight, Bishop, Rook, Queen, King) there are four characters to
+represent that piece (White, Black) on both squares (light, dark). The
+troff chess font has also extra characters for the border of the board.
+These borders are added by the chess diagram macros as horizontal and
+vertical rules in my approach. Table~1 shows all characters from font
+{\tt chess10} (the size of a square being 10 points).
+\begin{table}
+\begin{flushleft}\tt
+\newfont{\CH}{chess10}
+\begin{tabular}{cccccccccc}
+P & \CH P & O & \CH O & p & \CH p & o & \CH o & 0 & \CH 0 \\
+N & \CH N & M & \CH M & n & \CH n & m & \CH m & Z & \CH Z \\
+B & \CH B & A & \CH A & b & \CH b & a & \CH a \\
+R & \CH R & S & \CH S & r & \CH r & s & \CH s \\
+Q & \CH Q & L & \CH L & q & \CH q & l & \CH l \\
+K & \CH K & J & \CH J & k & \CH k & j & \CH j
+\end{tabular}
+\end{flushleft}
+\caption{Character encodings of {\tt chess10}}
+\end{table}
+
+There is an extra font {\tt chessf10} that contains only the so-called
+chess figurines (King, Queen, Rook, Bishop, kNight). With this font the
+move 25.~N5|*|g3, in short algebraic notation, can be typeset as |25. N5*g3|.
+Next to {\tt chess10} there are {\tt chess20} and {\tt chess30}. The 20-point
+version is used in the chess style because the diagrams made with
+it fit nicely in a twocolumn A4 page. But it would be easy to make
+another size font by changing only one parameter.
+
+The king has given me the biggest trouble to {\manual META}fy. If you
+compare the original font with my {\manual META}imitation, you will see
+a few differences. For one thing, the chess board has no labels for
+rows and lines. These can be added to the diagram macros if desired.
+The pieces in the original font use shadings to get a better contrast
+with the dark squares. The rest of the differences have to be ascribed
+to my insufficient knowledge of \MF.
+
+I have long hesitated to publish my {\manual META}copies of the chess
+font in \TUB. I have seriously tried to find the designer or owner of
+the original font. According to the Dutch firm that has taken over
+Schaakhuis De Haan, I could safely publish them because the fonts are
+not sold any longer. I hope this article helps in finding the designer
+of this very nice chess font and that he is not upset with my {\manual
+META}copy of it.
+
+Having a nice set of chess fonts is one thing; typesetting chess using
+them is another thing. When I accepted the editorship of our
+`Schaakmaatje', as my chess club `Schaakclub Geldrop' calls its
+chess magazine, I used \TeX\ and some macros to typeset chess diagrams.
+After giving the \LaTeX\ course at our Computer Center, I definitely
+wanted to move to this macro set. Especially the many available styles,
+and the need to have a simple macro for typesetting tables, makes
+\LaTeX\ a lot simpler to use.
+
+\begin{position}
+\White(Kc2,Bf8,Nb4,b3,g7)
+\Black(Ka3,b6)
+\end{position}
+
+\begin{figure}
+$$\showboard$$
+\centerline{Diagram~2: White mates in three moves}
+\end{figure}
+
+\subsubsection*{Chess playing macros}
+When some macros to play chess in \TeX{} appeared in \TUB~\cite{Appelt},
+I used the ideas presented to make my own chess style. As a typical
+example of an annotated chess game I have used a part of the game Fisher
+played against Tal during the Candidates' Tournament of 1959. In this
+tournament the sixteen aged Fisher lost four times from Tal who by
+winning this tournament earned the right to meet Botvinnik for the world
+championship. The game shows a real fight between two very offensive
+players. The game itself is annotated by Fisher. Both the input
+and the output are included on page~\pageref{chessgame}.
+
+To typeset the main line with automatic updating of the chess position,
+{\tt chess.sty} has the macro \verb+\newgame+, which starts a new game, and
+the environment {\tt position}, to set up a position other than the
+initial one. The chess position after the 25th move in the game
+Fisher--Tal (see diagram~3 on page~\pageref{chessgame}) is defined with:
+\begin{quote}\small
+\begin{verbatim}
+\begin{position}
+\White(Kh1,Qe6,Re1,a2,b2,c2,g2,h2)
+\Black(Kf8,Qb8,Rd7,Rg8,Be7,a6,b4,h7)
+\global\Whitetrue\global\movecount=25
+\end{position}
+\end{verbatim}
+\end{quote}%
+\noindent
+\verb+\Whitetrue+ gives the turn to White; \verb+\Whitefalse+ gives it
+to Black. Setting the move counter is achieved with
+\verb+\movecount=25+. The \verb+\global+ is needed because both
+commands are used inside an environment.
+
+{\samepage
+There exists another macro \verb+\board+ for defining a chess position in
+case automatic updating is not wanted. This macro is used for the mate in
+three problem (see diagram~2):
+\begin{quote}\small
+\begin{verbatim}
+\board{ * * B *}
+ {* * * P }
+ { p * * *}
+ {* * * * }
+ { N * * *}
+ {kP* * * }
+ { *K* * *}
+ {* * * * }
+\end{verbatim}
+\end{quote}}
+\begin{nochess} % prevent the `|' to become active!
+\noindent
+Notice that the user of {\tt chess.sty} doesn't need to know the character
+encodings from table~1! He only needs to know the abbreviations of pieces
+(uppercase for White and lowercase for Black) and that empty squares are
+represented by a \verb*+ + (light) or a \verb+*+ (dark).
+
+To show the board in either case, one needs to call the macro
+\verb+\showboard+ or \verb+$$\showboard$$+ if the board should be centered.
+
+To automatically update a position defined by the {\tt position}
+environment there are two macros: \verb+\ply+ and \verb+\move+. If
+White's move is not followed by some analysis, the macro \verb+\move+
+can be used. Otherwise the move has to be broken down into two plies
+(half moves) with \verb+\ply+. The argument(s) of \verb+\ply+ and
+\verb+\move+ contain the from square followed by the to square of the
+moving piece, or the King in case of castling. A square is represented
+as a column \verb+[a-h]+ followed by the row \verb+[1-8]+. In
+correspondence chess a similar notation is used except for the columns
+which are also denoted as decimals \verb+[1-8]+. I think that using
+letters is less confusing and reflects the way at least in Europe
+chess players think.
+
+If a pawn arrives at its final destination, it becomes a Queen, Rook,
+Bishop or kNight \verb+{Q|R|B|N}+. If the promotion piece is omitted a
+default Queen is taken. Moves can also be commented with things like
+\verb+!+~for good moves, \verb+??+~for exceptional bad moves, and so
+on. So the syntax, in a free style of Extended Backus Naur Form, of an
+argument for both \verb+\ply+ and \verb+\move+ can be described as:
+\begin{quote}\small
+\begin{verbatim}
+[a-h][1-8][a-h][1-8]{{Q|R|B|N}comment}
+\end{verbatim}
+\end{quote}
+\end{nochess}
+\noindent
+The translation of this move representation to long algebraic notation
+is carried out by the `invisible' macro \verb+\@ply+. For example:
+\verb+\@ply g1f3+ will result in |Ng1-f3| in case square f3 is empty
+or |Ng1*f3| in case of a capture, \verb+\@ply e1c1+ will result in
+|0-0-0|.
+
+To update and query the chess board, represented by 64 macros
+(\verb+\a1+, \verb+\a2+,\dots\verb+\h8+), \verb+\@ply+ uses the
+private macros \verb+\@set+ and \verb+\@get+. The value of a square
+can either be empty (letter \verb+E+), a White piece (\verb+Q+,
+\verb+R+, \verb+B+, \verb+N+, \verb+P+) or a Black piece (\verb+q+,
+\verb+r+, \verb+b+, \verb+n+, \verb+p+). To update the chess position
+\verb+\@ply g1f3+ does a \verb+\@set[g1](E)+ to make the square g1
+empty and a \verb+\@set[f3](N)+ to move the kNight to f3. The macro
+\verb+\@ply+ handles castling and the special pawn moves en passant
+capture and promotion. Because of its length the macro \verb+\@ply+
+is not included. Basically, it is just a set of nested conditionals
+to cover all cases. Instead the macros \verb+\@set+ and \verb+\@get+,
+that might be of interest to other \TeX\ applications, are included
+here, together with \verb+\@showchar+ (the macro that maps a square
+value to the correct character encoding using \verb+\@get+) and
+\verb+\@emptyboard+ (a macro for clearing the chess board using
+\verb+\@set+).
+
+{\small
+\begin{verbatim}
+\def\@set[#1#2](#3){
+ %arguments: [a-h1-8](<letter>)
+ \expandafter
+ \xdef\csname#1#2\endcsname{#3}}
+
+\def\@get#1[#2#3]{%arguments:\cs[a-h1-8]
+ \edef#1{\csname#2#3\endcsname}}
+
+\newcount\@c % column
+\newcount\@r % row
+\newcount\@sum % row+column
+
+\def\@col{\ifcase\@c\or a\or b\or c\or
+ d\or e\or f\or g\or h\fi}
+\def\@showchar{
+ \@get\piece[\@col\the\@r]
+ \if\piece E \ifodd\@sum 0\else Z\fi\else
+ \if\piece P \ifodd\@sum P\else O\fi\else
+ \if\piece p \ifodd\@sum p\else o\fi\else
+ \if\piece R \ifodd\@sum R\else S\fi\else
+ \if\piece B \ifodd\@sum B\else A\fi\else
+ \if\piece N \ifodd\@sum N\else M\fi\else
+ \if\piece r \ifodd\@sum r\else s\fi\else
+ \if\piece b \ifodd\@sum b\else a\fi\else
+ \if\piece n \ifodd\@sum n\else m\fi\else
+ \if\piece K \ifodd\@sum K\else J\fi\else
+ \if\piece Q \ifodd\@sum Q\else L\fi\else
+ \if\piece k \ifodd\@sum k\else j\fi\else
+ \if\piece q \ifodd\@sum q\else l\fi\else
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% inner loop needs extra { ... }
+
+\def\@emptyboard{
+ \@r=1
+ \loop
+ {\@c=1
+ \loop
+ \@set[\@col\the\@r](E)
+ \ifnum\@c<8 \advance\@c by1
+ \repeat}
+ \ifnum\@r<8 \advance\@r by 1
+ \repeat
+}
+\end{verbatim}}
+
+\begin{nochess} % prevent the `|' to become active!
+\subsubsection*{Analysis mode}
+In order to save space tournament bulletins often prefer short algebraic
+notation. In this notation the from square of a piece is omitted. If a
+move otherwise would be ambigious, because another piece can reach the
+same destination, the letter of the column or the number of the row from
+the originating square is added. The short and long algebraic notation
+is also used in analysis mode when we annotate moves from the main line
+or a variation. To make the typesetting of these move notations easy
+and compact, I have introduced a pair of \verb+|+\ldots\verb+|+ to
+activate the algebraic notation. Unfortunately this character pair can
+not be used within arguments of macros. But you can of course use the
+pair outside the macro like \verb+|\centerline{25. Kf8!}|+. Or if you
+prefer you can use the {\tt chess}-environment instead. Because \LaTeX\
+uses this character in the {\tt tabular} environment to draw vertical
+rules I have made an environment {\tt nochess} that can be used to
+prevent that the \verb+|+ character will activate the analysing mode.
+Within the {\tt nochess} environment you can use the environment {\tt
+chess} to get analysis mode again. Here follow some examples to show
+how short and long algebraic notation can be generated in analysing
+mode:
+\begin{tabular}{ll}
+\multicolumn{1}{c}{\bf input} & \multicolumn{1}{c}{\bf output} \\[.2pt]
+\verb^|21. Nf3-e5??, 0-0!|^ & \begin{chess}21. Nf3-e5??, 0-0!\end{chess} \\
+\verb^|21.: Ke8*f8|^ & \begin{chess}21.: Ke8*f8 \end{chess} \\
+\verb^|21. Nfe5, K*f8|^ & \begin{chess}21. Nfe5, K*f8 \end{chess} \\
+\verb^|21.: f8Q+|^ & \begin{chess}21.: f8Q+ \end{chess}
+\end{tabular}
+\end{nochess}
+\noindent
+In the analysing mode some characters have a special meaning. The
+`\verb+*+' becomes a `|*|' to denote a capture, the `\verb+-+' is
+mapped to `|-|' and the `\verb+:+' is used as an abbreviation for
+`|:|' as one need if the analysis starts with a Black move.
+
+The chess macros have also support for different languages thanks to the
+possibilities of the babel package from Johannes Braams~\cite{Braams}.
+This package can be used within plain \TeX\ and \LaTeX\ in \TeX3.0 or in
+older versions. The names of the chess pieces can be choosen according
+to their Dutch abbreviations by specifying the language {\tt dutch}
+before the {\tt chess} style:
+\begin{quote}\small
+\begin{verbatim}
+\documentstyle[dutch,chess]{...}
+\end{verbatim}
+\end{quote}
+\noindent
+In Dutch the letters K (`koning'), D (`dame'), T (`toren'), L (`loper')
+and P (`paard') are used to denote the king, queen, rook, bishop and
+knight respectivally. These letters are used in the macros \verb+\move+
+and \verb+\ply+, only if you provide a promotion piece, within the
+analysis mode and in the {\tt position} environment. In the
+\verb+\board+ macro we use the same letters to denote the White pieces
+and the corresponding lowercase letters to indicate the Black piece. In
+this macro we need also a letter to represent the pawn. Because both
+`pion' (pawn) and `paard' (knight) start with a `p' I have choosen the
+letter `I' for the `pIon'.
+
+Hopefully the examples above and the extract of the game Fisher--Tal on
+page~\pageref{chessgame} are further self explaining.
+
+% Redefine chess.sty to get similar layout as in Informator
+\makeatletter
+\def\@dots{\ldots}
+\resetat
+%
+\subsubsection*{Tournament style}
+To illustrate the tournament style I have included the complete
+example game of Fisher against Tal from~\cite{Fisher} in the style
+that is used in the Chess Informant~\cite{informant}. In this book
+special symbols are used for often used chess terminology.
+Table~\ref{symbols} shows the list of the symbols I needed in the
+Fisher game. In ~\cite{Fisher} the moves |50: Kc7 51. Rb5| are
+omitted. But this is corrected in his later book~\cite{Fisher80}.
+
+\begin{table}\small
+\begin{tabular}{lll}
+ & \bf (La)TeX & \bf meaning \\[.1cm]
+\wbetter & \verb+\wbetter+ & White stands slightly better \\
+\bbetter & \verb+\bbetter+ & Black stands slightly better \\
+\wupperhand & \verb+\wupperhand+ & White has the upper hand \\
+\bupperhand & \verb+\bupperhand+ & Black has the upper hand \\
+\wdecisive & \verb+\wdecisive+ & White has a decisive advantage \\
+\bdecisive & \verb+\bdecisive+ & Black has a decisive advantage \\
+\withattack & \verb+\withattack+ & with attack \\
+\betteris & \verb+\betteris+ & better is \\
+\seppawns & \verb+\seppawns+ & separated pawns
+\end{tabular}
+\caption{Informant symbols}\label{symbols}
+\end{table}
+% Some macros to improve readability...
+\newenvironment{mainline}[2]{\bf\newcommand{\result}{#1}%
+ \newcommand{\commentator}{#2}\begin{chess}}%
+ {\end{chess}\finito{\result}{\commentator}}
+\newenvironment{variation}{[\begingroup\rm\ignorespaces}%
+ {\endgroup]\ignorespaces}
+\newcommand{\finito}[2]{{\bf\hfill#1\hfill[#2]\par}}
+%
+\centerline{\sc Bobby Fisher -- Mikhail Tal}
+\smallskip
+\centerline{Belgrade (ct/27) 1959}
+\smallskip
+%
+\begin{mainline}{0~:~1}{Fisher}
+1. e4 c5
+2. Nf3 d6
+3. d4 cd4
+4. Nd4 Nf6
+5. Nc3 a6
+6. Bc4 e6
+7. Bb3
+ \begin{variation}
+ 7. 0-0 Be7 8. Bb3 Qc7 9. f4 b5 10. f5 b4 11. fe6!? (11. Nce2 e5 12.
+ Nf3 Bb7\bbetter) bc3 12. ef7 Kf8 13 Bg5 Ng4!\bupperhand
+ \end{variation}
+ b5!
+ \begin{variation}
+ 7: Be7? 8. f4 0-0 9. Qf3 Qc7 10. f5! (10. 0-0? b5 11. f5 b4! 12. Na4
+ e5 13. Ne2 Bb7\bbetter) e5 11. Nde2 b5 12. a3 Bb7 13.
+ g4\wupperhand\withattack
+ \end{variation}
+8. f4!? b4!
+9. Na4 Ne4
+10. 0-0 g6?
+ \begin{variation}
+ \betteris 10: Bb7
+ \end{variation}
+11. f5! gf5
+ \begin{variation}
+ 11: ef5? 12. Bd5 Ra7 13. Nf5! gf5 14. Qd4
+ \end{variation}
+12. Nf5! Rg8
+ \begin{variation}
+ \betteris 12: d5 13. Nh6 Bh6 14. Bh6;
+ 12: ef5? 13. Qd5 Ra7 14. Qd4
+ \end{variation}
+13. Bd5! Ra7
+ \begin{variation}
+ 13: ed5 14. Qd5 Bf5 15. Rf5 Ra7 16. Qe4 Re7 17. Qb4 Re2 18. Bg5! Rg5
+ 19. Rg5 Qg5 20. Rb8\wdecisive \nochess PANOV \endnochess
+ \end{variation}
+14. Be4?
+ \begin{variation}
+ \betteris 14. Be3! Nc5 15. Qh5! Rg6 (15: Na4 16 Ba7 ed5 17 Rae1)
+ 16. Rae1! \nochess KEVITZ\endnochess
+ \end{variation}
+ ef5
+15. Bf5 Re7!
+16. Bc8 Qc8
+17. Bf4?
+ \begin{variation}
+ \betteris 17. c3! Qc6 18. Rf2;
+ 17. Qd6? Rg2 18. Kg2 Re2 19. Kf3 Bd6 20. Ke2 Qc2\bdecisive
+ \end{variation}
+ Qc6!
+18. Qf3 Qa4
+ \begin{variation}
+ 18: Qf3 19. Rf3 Re2 20. Rf2 Rf2 21. Kf2\wbetter\seppawns
+ \end{variation}
+19. Bd6 Qc6!
+20. Bb8 Qb6
+ \begin{variation}
+ 20: Qf3? 21. Rf3 Bg7 22. c3\wdecisive
+ \end{variation}
+21. Kh1 Qb8
+22. Qc6
+ \begin{variation}
+ 22. Rae1 Kd8! 23. Rd1 Kc7! (23: Kc8? 24. Qc6\wdecisive) 24. Qf4
+ (24. Rd4 Qb7!) Kb7 25. Rd6 Qc7 26. Qb4 Kc8 27. Ra6 Qb7! 28. Qb7 Kb7
+ 29. Raf6 Rg7\equal;
+ 22: Rg6? 23. Qf7 Kd7 24. Rd1! Rd6 25. Rd6 Kd6 26. Rf6!\wdecisive
+ \end{variation}
+ Rd7
+23. Rae1
+ \begin{variation}
+ 23. Rad1 Bd6 24. Rf7 (24. Rf6 Rg6 25. Rdd6 Qd6!) Qc7;
+ 23. Rf7 Qd6
+ \end{variation}
+ Be7
+ \begin{variation}
+ 23: Kd8? 24. Rf7! Be7 25. Rfe7 Re7 26. Rd1\wdecisive
+ \end{variation}
+24. Rf7 Kf7
+25. Qe6 Kf8!
+ \begin{variation}
+ 25: Kg7? 26. Qd7\wdecisive
+ \end{variation}
+26. Qd7
+ \begin{variation}
+ 26. Rf1? Kg7 27. Rf7 Kh8 (28. Qd7 Rd8 29. Qg4 Qe5\bdecisive)
+ \end{variation}
+ Qd6
+27. Qb7 Rg6
+28. c3! a5
+ \begin{variation}
+ 28: bc3 29. Qc8 Bd8 30. Qc3\equal
+ \end{variation}
+29. Qc8
+ \begin{variation}
+ \betteris 29. cb4! Qb4 (29: ab4 30. a3! ba3 31. ba3 Qa3\equal)
+ 30. Qf3 Kg7 31. Qe2\equal
+ \end{variation}
+ Kg7
+30. Qc4 Bd8
+31. cb4 ab4
+ \begin{variation}
+ 31: Qb4 32. Qe2\equal
+ \end{variation}
+32. g3?
+ \begin{variation}
+ 32. Qe4 (32: Bc7 33. Qe7 Kg8 34. Qe8 Qf8 35. Qe4)
+ \end{variation}
+ Qc6
+33. Re4 Qc4
+34. Rc4 Rb6!
+ \begin{variation}
+ 34: Be7? 35. a3!
+ \end{variation}
+35. Kg2 Bf6
+36. Kf3 Ke5
+37. Ke3 Bg5
+38. Ke2 Kd5
+39. Kd3 Bf6
+40. Rc2? Be5
+41. Re2 Rf6
+42. Rc2 Rf3
+43. Ke2 Rf7
+44. Kd3 Bd4!
+45. a3
+ \begin{variation}
+ 45. b3? Rf3 46. Ke2 Rf2 47. Qd3 Rc2 48. Kc2 Ke5\wdecisive
+ \end{variation}
+ b3
+46. Rc8
+ \begin{variation}
+ 46. Re2 Rf3 47. Kd2 Bb2;
+ 46. Rd2 Rf3 47. Ke2 Rf2
+ \end{variation}
+ Bb2
+47. Rd8 Kc6
+48. Rb8 Rf3
+49. Kc4 Rc3
+50. Kb4 Kc7 % The Black move and the next White move were forgotten in
+51. Rb5 Ba1 % Fisher's book ``My 60 Memorable Games'' and patiently copied
+52. a4 b2! % by some other authors (Bijl and Euwe)
+ \begin{variation}
+ 53. Kc3 b1Q!
+ \end{variation}
+\end{mainline}
+\smallskip
+\noindent
+The \LaTeX\ input of the above game looks like:
+{\small
+\begin{verbatim}
+% Some macros to improve readability...
+\newcommand{\finito}[2]{%
+ {\bf\hfill#1\hfill[#2]\par}}
+\newenvironment{mainline}[2]{\bf
+ \newcommand{\result}{#1}%
+ \newcommand{\commentator}{#2}%
+ \begin{chess}}%
+ {\end{chess}\finito{\result}%
+ {\commentator}}
+\newenvironment{variation}{[\begingroup
+ \rm\ignorespaces}%
+ {\endgroup]\ignorespaces}
+...
+\begin{mainline}{0~:~1}{Fisher}
+1. e4 c5 2. Nf3 d6 3. d4 cd4
+4. Nd4 Nf6 5. Nc3 a6 6. Bc4 e6
+...
+13. Bd5! Ra7
+ \begin{variation}
+ 13: ed5 14. Qd5 Bf5 15. Rf5 Ra7
+ 16. Qe4 Re7 17. Qb4 Re2
+ 18. Bg5! Rg5 19. Rg5 Qg5
+ 20. Rb8\wdecisive
+ \nochess PANOV \endnochess
+ \end{variation}
+14. Be4?
+...
+\end{mainline}
+\end{verbatim}}
+\smallskip
+\noindent
+The mainline is typeset in boldface and the variations in roman. When we
+need to typeset a name we have to avoid the analysis mode by using the
+{\tt nochess} environment. The {\tt nochess} environment can be used in
+\LaTeX\ style (\verb+\begin{nochess}+\ldots\verb+\end{nochess}+) or in
+the shorter \TeX\ style (\verb+\nochess+\ldots\verb+\endnochess+).
+
+\subsubsection*{Using plain \TeX}
+To use {\tt chess.sty} in plain \TeX\ you need the following line
+for including the chess macros:
+\begin{quote}\small
+\begin{verbatim}
+\input chess.sty
+\end{verbatim}
+\end{quote}
+
+\noindent
+The {\tt nochess} and {\tt position} environments from {\tt chess.sty}
+should be replaced by \verb+\nochess+ \ldots \verb+\endnochess+ and
+\verb+\position+ \ldots \verb+\endposition+ pairs.
+
+\subsubsection*{Further wishes}
+The chess font and the chess style form a good basis for publishing
+about chess as is demonstrated by~\cite{Anjo,Rix}. But there are
+still some wishes to make the writing really enjoyable. My first wish
+would be a program with a chess board interface on which I can set up
+a position, play a variation and add text to the computer generated
+chess moves, go back to the main line, play another variation, and so
+on. I have seen a X11-based chess interface using hyperbuttons which
+provides a good starting point to make such a program!
+
+Surely the chess style can be improved and other style conventions
+added. If anybody does so, please let he send me his improvements.
+
+\subsubsection*{Availability}
+This article, the chess fonts and the corresponding style file with the
+complete game of Fisher against Tal and other examples can be retrieved
+(files {\tt chess.tar.Z} and {\tt chess.README}) from the file server
+{\tt sol.cs.ruu.nl (131.211.80.5)} via anonymous ftp from the
+directory {\tt TEX}.
+
+\subsubsection*{Acknowledgements}
+I would like to thank Victor Eijkhout for his help and criticism he
+gave me to improve both the chess style and the readability of this
+article. My thanks go also to Hugo van der Wolf for polishing my
+English, and to the {\tt UseNet} users who have sent me bugreports and
+have reported inconveniences present in version 1.0. Most of them are
+solved and will be made available in version 1.2.
+
+\begin{thebibliography}{9}
+\bibitem{Anjo}
+{\em Tournooimagazine van de Halve Finale Ned. Kam\-pioen\-schap Schaken},
+ed. by Anjo Anjowierden, Enschede. 1990.
+\bibitem{Appelt}
+{\em Typesetting Chess}, by Wolfgang Appelt, \tubissue{9}{3}, December 1988.
+\bibitem{Berkeley}
+{\em Berkeley Font Catalogue}, Ultrix--32 Supplementary Documents,
+Digital Equipment Corporation, Merrimack, New Hamshire, 1984.
+\bibitem{Braams}
+{\em Babel, a multilingual style-option system for use
+with \LaTeX's standard document styles}, by Johannes Braams,
+\tubissue{12}{2}, June 1991.
+\bibitem{Fisher}
+{\em My 60 Memorable Games}, by Bobby Fischer,
+Faber and Faber, London. 1969. ISBN 0-571-09312-4
+\bibitem{Fisher80}
+{\em Fisher's Chess Games}, by Bobby Fischer,
+Oxford University Press, Oxford. 1980. ISBN 0-19-217566-1
+\bibitem{informant}
+{\em Chess Informant 51}, ed. by Aleksandar Ma\-ta\-novi\'c,
+\v{S}ahovski Informator, Belgrade. 1991. ISBN 86-7297-024-1
+\bibitem{Rix}
+{\em Dragon, The Bulletin of the Cambridge University Chess Club}, ed.
+by Steve Rix and John Wilson, December 1991. Cambridge.
+\end{thebibliography}
+
+\makesignature
+\input{TUGgame.ltx}
+\end{document}
diff --git a/fonts/chess/chess/doc/tuggame.ltx b/fonts/chess/chess/doc/tuggame.ltx
new file mode 100644
index 0000000000..f1f355ef38
--- /dev/null
+++ b/fonts/chess/chess/doc/tuggame.ltx
@@ -0,0 +1,108 @@
+%
+% TUGgame.ltx
+% -----------
+% LaTeX source of example in TUGboat article (part of the game Fisher
+% lost against Tal), input'ted by TUGboat.ltx.
+% Author : Piet Tutelaers (internet: rcpt@urc.tue.nl)
+% Version: 1.2 ( 8 Jun 1991)
+% Reflects changes in chess.sty version 1.2
+% Version: 1.1 (30 Nov 1990)
+% Improvements over version 1.0:
+% - two typos corrected, thanks Hugo
+
+\clearpage
+\label{chessgame}
+\parindent=0pt
+\subsubsection*{Example of the LaTeX-input and output of an annotated
+chess game using {\tt chess.sty}}
+\begin{nochess} % prevent the `|' to become active!
+\begin{verbatim}
+\begin{position}
+\White(Kh1,Qe6,Re1,a2,b2,c2,g2,h2)
+\Black(Kf8,Qb8,Rd7,Rg8,Be7,a6,b4,h7)
+\global\Whitetrue\global\movecount=25
+\end{position}
+\begin{figure}
+\centerline{Diagram~3: Fisher--Tal
+ after 25.~\ldots, {\Fig K}f8!}
+$$\showboard$$
+\end{figure}
+
+(See diagram~3.)
+
+\ply e6d7
+Not |26. Rf1+, Kg7; 27. Rf7+, Kh8;
+and if 28. Q*d7, Rd8; 29. Qg4, Qe5|
+wins.
+
+\ply b8d6
+\move d7b7 g8g6
+Within a handful of moves the game
+has changed its complexion. Now it
+is White who must fight for a draw!
+
+\ply c2c3!
+Black's extra piece means less with
+each pawn that's exchanged.
+
+\ply a6a5
+On |28.: b*c3; 29. Qc8+, Bd8;
+30. Q*c3|=.
+
+\ply b7c8+
+On the wrong track. Right is
+|29. c*b4!, Q*b4 (if 29.: a*b4;
+30. a3!, b*a3; 31. b*a3, Q*a3 draws);
+30. Qf3+, Kg7; 31. Qe2| draws, since
+Black can't possibly build up a
+winning K-side attack and his own
+king is to exposed.
+
+\ply f8g7
+\move c8c4 e7d8
+\move c3b4 a5b4
+On |31.: Q*b4; 32. Qe2| White should
+draw with best play.
+$$\showboard$$
+\end{verbatim}
+\end{nochess}
+
+\begin{position}
+\White(Kh1,Qe6,Re1,a2,b2,c2,g2,h2)
+\Black(Kf8,Qb8,Rd7,Rg8,Be7,a6,b4,h7)
+\global\Whitetrue\global\movecount=25
+\end{position}
+
+\begin{figure}
+\centerline{Diagram~3: Fisher--Tal after 25.~\ldots, {\Fig K}f8!}
+$$\showboard$$
+\end{figure}
+
+(See diagram~3.)
+
+\ply e6d7
+Not |26. Rf1+, Kg7; 27. Rf7+, Kh8; and if 28. Q*d7, Rd8; 29. Qg4, Qe5|
+wins.
+
+\ply b8d6
+\move d7b7 g8g6
+Within a handful of moves the game has changed its complexion. Now
+it is White who must fight for a draw!
+
+\ply c2c3!
+Black's extra piece means less with each pawn that's exchanged.
+
+\ply a6a5
+On |28.: b*c3; 29. Qc8+, Bd8; 30. Q*c3|=.
+
+\ply b7c8+
+On the wrong track. Right is |29. c*b4!, Q*b4 (if 29.: a*b4; 30. a3!,
+b*a3; 31. b*a3, Q*a3 draws); 30. Qf3+, Kg7; 31. Qe2| draws, since Black
+can't possibly build up a winning K-side attack and his own king is to
+exposed.
+
+\ply f8g7
+\move c8c4 e7d8
+\move c3b4 a5b4
+On |31.: Q*b4; 32. Qe2| White should draw with best play.
+$$\showboard$$
diff --git a/fonts/chess/chess/fonts/chess10.tfm b/fonts/chess/chess/fonts/chess10.tfm
new file mode 100644
index 0000000000..7230effcb8
--- /dev/null
+++ b/fonts/chess/chess/fonts/chess10.tfm
Binary files differ
diff --git a/fonts/chess/chess/fonts/chess20.tfm b/fonts/chess/chess/fonts/chess20.tfm
new file mode 100644
index 0000000000..4ec5f87759
--- /dev/null
+++ b/fonts/chess/chess/fonts/chess20.tfm
Binary files differ
diff --git a/fonts/chess/chess/fonts/chess30.tfm b/fonts/chess/chess/fonts/chess30.tfm
new file mode 100644
index 0000000000..7765d6ed65
--- /dev/null
+++ b/fonts/chess/chess/fonts/chess30.tfm
Binary files differ
diff --git a/fonts/chess/chess/fonts/chessf10.tfm b/fonts/chess/chess/fonts/chessf10.tfm
new file mode 100644
index 0000000000..67050fd195
--- /dev/null
+++ b/fonts/chess/chess/fonts/chessf10.tfm
Binary files differ
diff --git a/fonts/chess/chess/fonts/chessfig10.tfm b/fonts/chess/chess/fonts/chessfig10.tfm
new file mode 100644
index 0000000000..0e72d9ca14
--- /dev/null
+++ b/fonts/chess/chess/fonts/chessfig10.tfm
Binary files differ
diff --git a/fonts/chess/chess/inputs/2side.tex b/fonts/chess/chess/inputs/2side.tex
new file mode 100644
index 0000000000..0b5e6d80ca
--- /dev/null
+++ b/fonts/chess/chess/inputs/2side.tex
@@ -0,0 +1,43 @@
+%
+% This is a 2-side format for TeX. Simply
+%
+% \input 2side
+% \gutter{5pt}
+%
+% You want to have set your hsize, vsize, hoffset, and voffset
+% (and magnification) *before* inputting this file.
+%
+% You can also say `\top{...}' and the `...' will be placed at
+% the top of the page, and the columns will be reduced
+% proportionally. This is useful for the title of the document,
+% and any comments you might want to put later in the document.
+% Note that if you put this command after the first half of the
+% page has been `shipped', it will be postponed until the next
+% page.
+%
+\newdimen\fullsize\fullsize=\hsize
+\newdimen\realvsize\realvsize=\vsize
+\def\gutter#1{\global\advance\hsize by-#1 \global\divide\hsize by 2}%
+\def\makefootline{\baselineskip24pt\hbox to\fullsize{\the\footline}}%
+\let\lr=L \newbox\leftcolumn
+\let\ntop=\relax
+\output={\if L\lr
+ \global\setbox\leftcolumn=\columnbox \global\let\lr=R
+ \else\global\let\lr=L\doubleformat\global\fi
+ \ifnum\outputpenalty>-20000\else\dosupereject\fi
+ \global\let\ntop=\relax}%
+\def\doubleformat{\shipout\vbox{\hbox{\box\topbox}%
+ \hbox to\fullsize{\box\leftcolumn\hfil\columnbox}%
+ \makefootline}%
+ \global\vsize=\realvsize\ntop
+ \advancepageno}%
+\def\columnbox{\leftline{\pagebody}}%
+\newbox\topbox
+\def\top#1{\if L\lr\message{Setting...}
+ {\hsize=\fullsize\global\setbox\topbox=\vbox{#1}%
+ \global\vsize=\realvsize
+ \global\advance\vsize by-\ht\topbox
+ \global\advance\vsize by-\baselineskip}%
+ \else\global\def\ntop{\top{#1}}\message{Saving...}%
+ \fi}%
+\def\bye{\vfill\eject\if R\lr\null\vfill\eject\fi\end}%
diff --git a/fonts/chess/chess/inputs/babel.sty b/fonts/chess/chess/inputs/babel.sty
new file mode 100644
index 0000000000..07fbe3d814
--- /dev/null
+++ b/fonts/chess/chess/inputs/babel.sty
@@ -0,0 +1,229 @@
+%%
+%% This is file `babel.sty', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% babel.doc
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{babel.doc}
+\let\thisfilename\filename
+\def\fileversion{babel-3.0b}
+\def\filedate{6 juni 1991}
+\def\docdate{6 juni 1991}
+%% \CheckSum{5282}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\wlog{Style option `babel' version \fileversion\space <\filedate>}
+\wlog{English documentation dated <\docdate>}
+\@ifundefined{iflanguage}{\input babel.switch\relax}{\relax}
+\let\babel@core@loaded\relax
+{\def\format{plain}
+\ifx\fmtname\format
+ \aftergroup\endinput
+\fi}
+\@ifundefined{doc@style}%
+ {\def\doc@style{0}%
+ \@ifundefined{opening}%
+ {\@ifundefined{chapter}%
+ {\def\doc@style{1}}%
+ {\def\doc@style{2}}%
+ }{\def\doc@style{3}}%
+ }{\relax}%
+\newif\if@restonecol
+\@ifundefined{figurename}{\def\fnum@figure{\figurename{} \thefigure}}{}
+\@ifundefined{tablename}{\def\fnum@table{\tablename{} \thetable}}{}
+\ifcase \doc@style\relax
+\or
+\@ifundefined{contentsname}%
+ {\def\tableofcontents{\section*{\contentsname%
+ \@mkboth{\uppercase\expandafter{\contentsname}}%
+ {\uppercase\expandafter{\contentsname}}}%
+ \@starttoc{toc}}}{}%
+
+\@ifundefined{listfigurename}%
+ {\def\listoffigures{\section*{\listfigurename\@mkboth%
+ {\uppercase\expandafter{\listfigurename}}%
+ {\uppercase\expandafter{\listfigurename}}}\@starttoc{lof}}}{}%
+
+\@ifundefined{listtablename}%
+ {\def\listoftables{\section*{\listtablename\@mkboth%
+ {\uppercase\expandafter{\listtablename}}%
+ {\uppercase\expandafter{\listtablename}}}\@starttoc{lot}}}{}%
+\@ifundefined{refname}%
+ {\def\thebibliography#1{\section*{\refname%
+ \@mkboth{\uppercase\expandafter{\refname}}%
+ {\uppercase\expandafter{\refname}}}%
+ \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}
+ \leftmargin\labelwidth%
+ \advance\leftmargin\labelsep%
+ \usecounter{enumi}}%
+ \def\newblock{\hskip 0.11em plus 0.33em minus 0.07em}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=1000\relax}}{}%
+
+\@ifundefined{indexname}%
+ {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi%
+ \columnseprule \z@%
+ \columnsep 35pt\twocolumn[\section*{\indexname}]%
+ \@mkboth{\uppercase\expandafter{\indexname}}%
+ {\uppercase\expandafter{\indexname}}\thispagestyle{plain}%
+ \parindent\z@ \parskip\z@ plus 0.3pt\relax\let\item\@idxitem}}{}%
+\@ifundefined{abstractname}%
+ {\def\abstract{\if@twocolumn%
+ \section*{\abstractname}%
+ \else \small%
+ \begin{center}%
+ {\bf \abstractname\vspace{-0.5em}\vspace{0pt}}%
+ \end{center}%
+ \quotation%
+ \fi}}{}%
+\@ifundefined{partname}%
+{\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \addcontentsline{toc}{part}{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \Large \bf \partname{} \thepart % THEN Print 'Part' and
+ \par \nobreak % number in \Large boldface.
+ \fi % FI
+ \huge \bf % Select \huge boldface.
+ #2\markboth{}{}\par } % Print title and set heading marks null.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+}{}%
+\or
+\@ifundefined{contentsname}%
+ {\def\tableofcontents{\@restonecolfalse%
+ \if@twocolumn\@restonecoltrue\onecolumn%
+ \fi\chapter*{\contentsname%
+ \@mkboth{\uppercase\expandafter{\contentsname}}%
+ {\uppercase\expandafter{\contentsname}}}%
+ \@starttoc{toc}\if@restonecol\twocolumn\fi}}{}%
+
+\@ifundefined{listfigurename}
+ {\def\listoffigures{\@restonecolfalse%
+ \if@twocolumn\@restonecoltrue\onecolumn%
+ \fi\chapter*{\listfigurename%
+ \@mkboth{\uppercase\expandafter{\listfigurename}}%
+ {\uppercase\expandafter{\listfigurename}}}%
+ \@starttoc{lof}\if@restonecol\twocolumn\fi}}{}%
+
+\@ifundefined{listtablename}
+ {\def\listoftables{\@restonecolfalse%
+ \if@twocolumn\@restonecoltrue\onecolumn%
+ \fi\chapter*{\listtablename%
+ \@mkboth{\uppercase\expandafter{\listtablename}}%
+ {\uppercase\expandafter{\listtablename}}}%
+ \@starttoc{lot}\if@restonecol\twocolumn\fi}}{}%
+\@ifundefined{bibname}
+ {\def\thebibliography#1{\chapter*{\bibname%
+ \@mkboth{\uppercase\expandafter{\bibname}}%
+ {\uppercase\expandafter{\bibname}}}%
+ \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}%
+ \leftmargin\labelwidth \advance\leftmargin\labelsep%
+ \usecounter{enumi}}%
+ \def\newblock{\hskip 0.11em plus 0.33em minus 0.07em}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=1000\relax}}{}%
+
+\@ifundefined{indexname}
+ {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi%
+ \columnseprule \z@%
+ \columnsep 35pt\twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\uppercase\expandafter{\indexname}}%
+ {\uppercase\expandafter{\indexname}}%
+ \thispagestyle{plain}\parindent\z@%
+ \parskip\z@ plus 0.3pt\relax\let\item\@idxitem}}{}%
+\@ifundefined{abstractname}
+ {\def\abstract{\titlepage%
+ \null\vfil%
+ \begin{center}%
+ {\bf \abstractname}%
+ \end{center}}}{}%
+\@ifundefined{chaptername}{\def\@chapapp{\chaptername}}{}
+
+\@ifundefined{appendixname}
+ {\def\appendix{\par%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \def\@chapapp{\appendixname}%
+ \def\thechapter{\Alph{chapter}}}}{}%
+
+\@ifundefined{partname}
+ {\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax% IF secnumdepth > -2
+ \refstepcounter{part} % THEN step part counter
+ \addcontentsline{toc}{part}{\thepart% add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ \markboth{}{}
+ {\centering % %% added 19 Jan 88
+ \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \huge\bf \partname{} \thepart % THEN Print 'Part' and number
+ \par % in \huge bold.
+ \vskip 20pt \fi % Add space before title.
+ \Huge \bf % FI
+ #1\par}\@endpart}}{} % Print Title in \Huge bold.
+\or
+\@ifundefined{ccname}%
+ {\def\cc#1{\par\noindent%
+ \parbox[t]{\textwidth}%
+ {\@hangfrom{\rm \ccname : }\ignorespaces #1\strut}\par}}{}%
+
+\@ifundefined{enclname}%
+ {\def\encl#1{\par\noindent%
+ \parbox[t]{\textwidth}%
+ {\@hangfrom{\rm \enclname : }\ignorespaces #1\strut}\par}}{}%
+\@ifundefined{headtoname}
+ {\def\ps@headings{%
+ \def\@oddhead{\sl \headtoname{} \ignorespaces\toname \hfil%
+ \@date \hfil \headpagename{} \thepage}%
+ \def\@oddfoot{}}}{}%
+\fi
+\endinput
+%%
+%% End of file `babel.sty'.
diff --git a/fonts/chess/chess/inputs/babel.switch b/fonts/chess/chess/inputs/babel.switch
new file mode 100644
index 0000000000..01c833b0aa
--- /dev/null
+++ b/fonts/chess/chess/inputs/babel.switch
@@ -0,0 +1,80 @@
+%%
+%% This is file `babel.switch', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% hyphen.doc
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{hyphen.doc}
+\def\fileversion{hyphen-1.0c}
+\def\filedate{6 juni 91}
+\def\docdate{29 may 91}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\countdef\last@language 19
+\def\addlanguage{\alloc@9\language\chardef\@cclvi}
+\def\adddialect#1#2{%
+ \global\chardef#1#2
+ \wlog{\string#1 = a dialect from \string\language#2}}
+\def\iflanguage#1#2#3{\@bsphack%
+ \@ifundefined{l@#1}
+ {\@nolanerr{#1}}
+ {\ifnum\language=\expandafter\csname l@#1\endcsname\relax #2
+ \else#3\fi}\@esphack}
+\def\selectlanguage{\protect\p@selectlanguage}
+\def\p@selectlanguage#1{\@bsphack\@ifundefined{l@#1}{\@nolanerr{#1}}%
+ {\language=\expandafter\csname l@#1\endcsname\relax
+ \originalTeX
+ \expandafter\csname captions#1\endcsname
+ \expandafter\csname date#1\endcsname
+ \expandafter\csname extras#1\endcsname
+ \def\originalTeX{\expandafter\csname noextras#1\endcsname}%
+ \@esphack}}%
+\def\@nolanerr#1{\errhelp{Your command will be ignored,^^J
+type <return> to proceed}
+\errmessage{You haven't defined the language #1 yet}}
+
+\endinput
+%%
+%% End of file `babel.switch'.
diff --git a/fonts/chess/chess/inputs/babel22.switch b/fonts/chess/chess/inputs/babel22.switch
new file mode 100644
index 0000000000..7d690f7fed
--- /dev/null
+++ b/fonts/chess/chess/inputs/babel22.switch
@@ -0,0 +1,88 @@
+%%
+%% This is file `babel22.switch', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% hyphen.doc (with modules: `TeX2,lplain2')
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{hyphen.doc}
+\def\fileversion{hyphen-1.0c}
+\def\filedate{6 juni 91}
+\def\docdate{29 may 91}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\newcount\language
+\newcount\last@language
+\def\addlanguage#1{%
+ \global\advance\last@language by \@ne
+ \ifnum\last@language < \@cclvi
+ \else
+ \errmessage{No room for a new \string\language!}
+ \fi
+ \global\chardef#1\last@language
+ \wlog{\string#1 = \string\language\the\last@language}}
+\def\adddialect#1#2{%
+ \global\chardef#1#2
+ \wlog{\string#1 = a dialect from \string\language#2}}
+\def\iflanguage#1#2#3{\@bsphack%
+ \@ifundefined{l@#1}
+ {\@nolanerr{#1}}
+ {\ifnum\language=\expandafter\csname l@#1\endcsname\relax #2
+ \else#3\fi}\@esphack}
+\def\selectlanguage{\protect\p@selectlanguage}
+\def\p@selectlanguage#1{\@bsphack\@ifundefined{l@#1}{\@nolanerr{#1}}%
+ {\language=\expandafter\csname l@#1\endcsname\relax
+ \originalTeX
+ \expandafter\csname captions#1\endcsname
+ \expandafter\csname date#1\endcsname
+ \expandafter\csname extras#1\endcsname
+ \def\originalTeX{\expandafter\csname noextras#1\endcsname}%
+ \@esphack}}%
+\def\@nolanerr#1{\errhelp{Your command will be ignored,^^J
+type <return> to proceed}
+\errmessage{You haven't defined the language #1 yet}}
+
+\endinput
+%%
+%% End of file `babel22.switch'.
diff --git a/fonts/chess/chess/inputs/babel32.switch b/fonts/chess/chess/inputs/babel32.switch
new file mode 100644
index 0000000000..5090f444cf
--- /dev/null
+++ b/fonts/chess/chess/inputs/babel32.switch
@@ -0,0 +1,87 @@
+%%
+%% This is file `babel32.switch', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% hyphen.doc (with modules: `lplain2')
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{hyphen.doc}
+\def\fileversion{hyphen-1.0c}
+\def\filedate{6 juni 91}
+\def\docdate{29 may 91}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\newcount\last@language
+\def\addlanguage#1{%
+ \global\advance\last@language by \@ne
+ \ifnum\last@language < \@cclvi
+ \else
+ \errmessage{No room for a new \string\language!}
+ \fi
+ \global\chardef#1\last@language
+ \wlog{\string#1 = \string\language\the\last@language}}
+\def\adddialect#1#2{%
+ \global\chardef#1#2
+ \wlog{\string#1 = a dialect from \string\language#2}}
+\def\iflanguage#1#2#3{\@bsphack%
+ \@ifundefined{l@#1}
+ {\@nolanerr{#1}}
+ {\ifnum\language=\expandafter\csname l@#1\endcsname\relax #2
+ \else#3\fi}\@esphack}
+\def\selectlanguage{\protect\p@selectlanguage}
+\def\p@selectlanguage#1{\@bsphack\@ifundefined{l@#1}{\@nolanerr{#1}}%
+ {\language=\expandafter\csname l@#1\endcsname\relax
+ \originalTeX
+ \expandafter\csname captions#1\endcsname
+ \expandafter\csname date#1\endcsname
+ \expandafter\csname extras#1\endcsname
+ \def\originalTeX{\expandafter\csname noextras#1\endcsname}%
+ \@esphack}}%
+\def\@nolanerr#1{\errhelp{Your command will be ignored,^^J
+type <return> to proceed}
+\errmessage{You haven't defined the language #1 yet}}
+
+\endinput
+%%
+%% End of file `babel32.switch'.
diff --git a/fonts/chess/chess/inputs/chess.sty b/fonts/chess/chess/inputs/chess.sty
new file mode 100644
index 0000000000..c13c39c70f
--- /dev/null
+++ b/fonts/chess/chess/inputs/chess.sty
@@ -0,0 +1,576 @@
+%
+% chess.sty
+% ---------
+% Style file for writing about chess games
+% Author : Piet Tutelaers (internet: rcpt@urc.tue.nl)
+% Version: 1.2 (Febr. 1992)
+% Improvements over version 1.1
+% - added `\v{S}ahovski Informator' symbols
+% -`en passant capture' bug fixed (reported by Jonathan Mestel)
+% -change {--} into \hbox{--} to prevent hyphenation within move
+% -\move's lined up on last row (or digit in case of castling)
+% -handling of promotion improved
+% * Black promotion problem solved (plain TeX)
+% * comment allowed also with promotion
+% * if no promotion piece is provided a default Q(ueen) is supposed
+% Thanks to: Jan Jaap Spreij (puls@cs.rug.nl)
+% -improved interface to plain TeX
+% -language support using the babel package from Johannes Braams
+% (currently support for english, dutch, german and french but you
+% can add an extra language `foreign' by:
+% 1. creating `foreign.sty' for cooperating with `babel'
+% 2. search for FOREIGN and follow the instructions in the comments)
+% - \begin{nochess} ... \end{nochess}
+% -chessfig10 renamed to chessf10 (service to MSDOS users)
+% Version: 1.1 (17 Nov 1990)
+% Improvements over version 1.0:
+% -TeX code cleaned up (thanks to TeX-wizzard Victor Eijkhout)
+% -moving a King does not generate a castling move when this
+% King already moved
+% -renamed internal macro `\\' because LaTeX uses that
+% -better hooks for foreign languages (look for lines marked with
+% %%FOREIGN%%)
+% Torture test:
+% If you change something in the chess.sty style check if everything
+% else is still working with torture-test.ltx (LaTeX) or
+% torture-test.tex (plain TeX).
+% Known problems:
+% -The analysis mode can not be used within arguments of macros
+% not: \centerline{|21.N5*f3|} but: |\centerline{21.N5*f3}|
+% Version: 1.0 (5 Jan 1990)
+%
+
+%
+% Macro specific initialisations
+%
+{\def\format{plain}
+\ifx\fmtname\format
+ \ifcat/@ \gdef\makeatletter{\catcode`@=11\relax}
+ \gdef\resetat{\catcode`@=12\relax}
+ \else\let\makeatletter\relax\let\resetat\relax\fi
+ \gdef\mbox#1{\leavevmode\hbox{#1}}
+ \gdef\Box{\vbox{\hrule height .1pt\hbox{\vrule width .1pt\kern3pt
+ \vbox{\kern6pt}\kern3pt\vrule width .1pt}\hrule height .1pt}}
+ \global\font\sc=cmcsc10
+\else
+ \gdef\line#1{\hbox to \textwidth{#1}}
+\fi}
+
+\makeatletter
+
+%
+% Do we have language support? Otherwise take default language!
+%
+\ifx\undefined\babel@core@loaded\input english.sty\fi
+
+
+\def\@set[#1#2](#3){%arguments: [a-h1-8](<letter>)
+ \expandafter\xdef\csname#1#2\endcsname{#3}}
+
+\def\@get#1[#2#3]{%arguments:\cs[a-h1-8]
+ \edef#1{\csname#2#3\endcsname}}
+
+\font\Chess=chess20
+
+\newcount\@c % column
+\newcount\@r % row
+\newcount\@sum % row+column
+
+\def\@col{\ifcase\@c\or a\or b\or c\or d\or e\or f\or g\or h\fi}
+
+\def\@showchar{
+ \@get\piece[\@col\the\@r]
+ \if\piece E \ifodd\@sum 0\else Z\fi\else
+ \if\piece P \ifodd\@sum P\else O\fi\else
+ \if\piece p \ifodd\@sum p\else o\fi\else
+ \if\piece R \ifodd\@sum R\else S\fi\else
+ \if\piece B \ifodd\@sum B\else A\fi\else
+ \if\piece N \ifodd\@sum N\else M\fi\else
+ \if\piece r \ifodd\@sum r\else s\fi\else
+ \if\piece b \ifodd\@sum b\else a\fi\else
+ \if\piece n \ifodd\@sum n\else m\fi\else
+ \if\piece K \ifodd\@sum K\else J\fi\else
+ \if\piece Q \ifodd\@sum Q\else L\fi\else
+ \if\piece k \ifodd\@sum k\else j\fi\else
+ \if\piece q \ifodd\@sum q\else l\fi\else
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+\def\@showrow#1{
+ \@r=#1\@c=1
+ \@sum=\@r\advance\@sum by\@c
+ \loop
+ \@showchar
+ \ifnum\@c<8 \advance\@c by1\advance\@sum by1
+ \repeat
+}
+
+\def\showboard{
+\vbox{\offinterlineskip
+ \hrule height1pt
+ \hbox{\vrule width1pt\Chess
+ \vbox{\hbox{\@showrow8}
+ \hbox{\@showrow7}
+ \hbox{\@showrow6}
+ \hbox{\@showrow5}
+ \hbox{\@showrow4}
+ \hbox{\@showrow3}
+ \hbox{\@showrow2}
+ \hbox{\@showrow1}}%
+ \vrule width1pt}
+ \hrule height1pt}
+}
+
+% inner loop needs extra { ... }
+
+\def\@emptyboard{
+ \@r=1
+ \loop
+ {\@c=1
+ \loop
+ \@set[\@col\the\@r](E)
+ \ifnum\@c<8 \advance\@c by1
+ \repeat}
+ \ifnum\@r<8 \advance\@r by 1
+ \repeat
+}
+
+\def\@initboard{
+% empty squares
+ \@r=3
+ \loop
+ {\@c=1
+ \loop
+ \@set[\@col\the\@r](E)
+ \ifnum\@c<8 \advance\@c by1
+ \repeat}
+ \ifnum\@r<6 \advance\@r by 1
+ \repeat
+% pawns
+ \@c=1
+ \loop
+ \@set[\@col2](P)\@set[\@col7](p)
+ \ifnum\@c<8 \advance\@c by1
+ \repeat
+% pieces
+ \@set[a1](R)\@set[h1](R)
+ \@set[a8](r)\@set[h8](r)
+ \@set[b1](N)\@set[g1](N)
+ \@set[b8](n)\@set[g8](n)
+ \@set[c1](B)\@set[f1](B)
+ \@set[c8](b)\@set[f8](b)
+ \@set[d1](Q)\@set[e1](K)
+ \@set[d8](q)\@set[e8](k)
+}
+
+%
+% The next part defines a user friendly notation for chess moves.
+% Some examples: |21. Nf3-e5, Ke8*f8 22. 0-0-0+, Bh8*a1|
+% : |21.: Ke8*f8 22. Bh8*a1, 0-0|
+% : |21 Nfe5 K*f8 22 0-0-0! B*a1|
+% : |21: K*f8 22 B*a1 0-0|
+%
+
+\font\Fig=chessf10
+
+\gdef\@king{{\Fig K}}
+\gdef\@queen{{\Fig Q}}
+\gdef\@rook{{\Fig R}}
+\gdef\@bishop{{\Fig B}}
+\gdef\@knight{{\Fig N}}
+\gdef\@dash{\hbox{--}}
+\gdef\@capt{$\times$}
+\gdef\@dots{~$\ldots$,}
+\gdef\@dot{\char46 }
+
+%
+% Make character codes for pieces depending on current language.
+% (I cann't derive the Black values from the White using `\lowercase'!)
+%
+
+\def\define@White@pieces#1#2#3#4#5#6{% define character codes for White pieces
+ \chardef\king@=`#1 \def\uc@king{#1}
+ \chardef\queen@=`#2 \def\uc@queen{#2}
+ \chardef\rook@=`#3 \def\uc@rook{#3}
+ \chardef\bishop@=`#4\def\uc@bishop{#4}
+ \chardef\knight@=`#5\def\uc@knight{#5}
+ \chardef\pawn@=`#6 \def\uc@pawn{#6}}
+\def\define@Black@pieces#1#2#3#4#5#6{% and now the Black pieces
+ \def\lc@king{#1}\def\lc@queen{#2}\def\lc@rook{#3}
+ \def\lc@bishop{#4}\def\lc@knight{#5}\def\lc@pawn{#6}}
+\def\activate@pieces{% make them active
+ \catcode\king@=\active\catcode\queen@=\active\catcode\rook@=\active%
+ \catcode\bishop@=\active\catcode\knight@=\active}
+\def\deactivate@pieces{% make them inactive
+ \catcode\king@=11\catcode\queen@=11\catcode\rook@=11%
+ \catcode\bishop@=11\catcode\knight@=11}
+\def\ifcurrentlanguage#1#2{%if language defined then compare with \language
+ \expandafter\ifx\csname l@#1\endcsname\relax%
+ \else\ifnum\language=\expandafter\csname l@#1\endcsname\relax#2\fi\fi}
+\def\select@pieces{% select pieces depending on language
+ \ifcurrentlanguage{english}{%
+ \define@White@pieces{K}{Q}{R}{B}{N}{P}
+ \define@Black@pieces{k}{q}{r}{b}{n}{p}}
+ \ifcurrentlanguage{dutch}{%
+ \define@White@pieces{K}{D}{T}{L}{P}{I}
+ \define@Black@pieces{k}{d}{t}{l}{p}{i}}
+ \ifcurrentlanguage{german}{%
+ \define@White@pieces{K}{D}{T}{L}{S}{B}
+ \define@Black@pieces{k}{d}{t}{l}{s}{b}}
+ \ifcurrentlanguage{french}{%
+ \define@White@pieces{R}{D}{T}{F}{C}{P}
+ \define@Black@pieces{r}{d}{t}{f}{c}{p}}
+% Define here your language and choose an unique set of uppercase letters
+% for the White pieces (KING, QUEEN, etc.) and the corresponding lowercase
+% letters for the Black pieces (king, queen, etc.).
+% \ifcurrentlanguage{FOREIGN}{%
+% \define@White@pieces{KING}{QUEEN}{ROOK}{BISHOP}{KNIGHT}{PAWN}
+% \define@Black@pieces{king}{queen}{rook}{bishop}{knight}{pawn}}
+ }
+\def\let@pieces#1#2#3#4#5{% let character codes be macros
+ \let#1=\@king\let#2=\@queen\let#3=\@rook%
+ \let#4=\@bishop\let#5=\@knight}
+
+\catcode`|=\active\select@pieces
+{\catcode`:=\active\catcode`.=\active\catcode`*=\active\catcode`-=\active
+ \activate@pieces
+ \gdef\trigger@pieces{
+ \catcode`:=\active\catcode`.=\active\catcode`*=\active\catcode`-=\active
+ \activate@pieces
+ % I would like to say ``\let\king@=\@king'' but how?
+ \ifcurrentlanguage{english}{\let@pieces{K}{Q}{R}{B}{N}}%
+ \ifcurrentlanguage{dutch}{\let@pieces{K}{D}{T}{L}{P}}%
+ \ifcurrentlanguage{german}{\let@pieces{K}{D}{T}{L}{S}}%
+ \ifcurrentlanguage{french}{\let@pieces{R}{D}{T}{F}{C}}%
+% Fill in your language and the uppercase letters for KING, QUEEN, etc.
+% \ifcurrentlanguage{FOREIGN}{\let@pieces{KING}{QUEEN}{ROOK}{BISHOP}{KNIGHT}}%
+% Your language will be activated by FOREIGN.sty.
+ \let-=\@dash\let*=\@capt\let:=\@dots\let.=\@dot}%
+ \gdef\@notation{\begingroup\let|=\endgroup\trigger@pieces}%
+%
+% Provide a `nochess' environment in which the `|' character becomes
+% inactive for situations where the `|' is already in use (like in
+% the LaTeX `tabular' environment for example).
+%
+ \gdef\nochess{\begingroup\let|=\relax\catcode`\|=12\relax
+ \catcode`:=12 \catcode`.=12 \catcode`*=12 \catcode`-=12
+ \deactivate@pieces\let\endnochess=\endgroup}
+ \gdef\chess{\begingroup\let\endchess=\endgroup\trigger@pieces}
+}
+\let|=\@notation
+
+%
+% Next part provides a ply (half move) generator
+%
+
+\newif\ifWhite \newif\ifFigure \newif\ifcapture
+
+%
+% next newif's needed for castling
+%
+\newif\ifKnotmoved \newif\ifknotmoved
+\newif\ifcastling \newif\ifoo
+
+%
+% Globals for special pawn moves (en passant capture and promotion)
+%
+
+\newif\ifenpassant \newif\ifpromotion
+
+\def\@color#1{ % Color of a piece 0: none, -1: black, 1: white
+ \if #1E0\else
+ \ifnum`#1=\uccode`#11\else-1\fi\fi}
+
+%
+% No checking is done for validity of moves, only legal moves behave well!!
+%
+
+\def\@ply#1#2#3#4#5 {% Syntax: [a-h][1-8][a-h][1-8]{Q|R|B|N}{Comment}
+ \@get\piece[#1#2]\@get\capture[#3#4]\Figuretrue
+ \if\capture E\capturefalse\else\capturetrue\fi
+ \ifWhite
+ \if\piece P\Figurefalse
+ \if#46
+ \if\eprow#3\capturetrue\enpassanttrue\fi
+ \xdef\eprow{x}%
+ \else
+ \xdef\eprow{x}%
+ \if#22
+ \if#44\xdef\eprow{#3}\fi
+ \else
+ \if#48\promotiontrue\fi
+ \fi
+ \fi
+ \else\xdef\eprow{x}
+ \if\piece K% check for possible castling
+ \ifKnotmoved
+ \if#3g\if#41\castlingtrue\ootrue\fi
+ \else\if#3c\if#41\castlingtrue\oofalse\fi\fi
+ \fi
+ \global\Knotmovedfalse
+ \fi
+ \fi
+ \fi
+ \ifcastling
+ \@set[#1#2](E)\@set[#3#4](K)%
+ \ifoo 0\@dash0\rlap{#5}\@set[f1](R)\@set[h1](E)%
+ \else 0\@dash0\@dash0\rlap{#5}\@set[d1](R)\@set[a1](E)\fi
+ \castlingfalse
+ \else
+ \ifFigure{\Fig\piece}\fi
+ #1#2\ifcapture\@capt\else\@dash\fi#3#4%
+ \rlap{\ifpromotion\expandafter\promovendus#5XYZ\else#5\fi}%
+ \@set[#1#2](E)%
+ \ifpromotion\@set[#3#4](\PROM)\else\@set[#3#4](\piece)\fi
+ \ifenpassant\@set[#3#2](E)\enpassantfalse\fi
+ \fi
+ \global\Whitefalse
+ \else % ``same'' for Black
+ \if\piece p\Figurefalse
+ \if#43
+ \if\eprow#3\capturetrue\enpassanttrue\fi
+ \xdef\eprow{x}%
+ \else
+ \xdef\eprow{x}%
+ \if#27
+ \if#45\xdef\eprow{#3}\fi
+ \else
+ \if#41\promotiontrue\fi
+ \fi
+ \fi
+ \else\xdef\eprow{x}
+ \if\piece k
+ \ifknotmoved
+ \if#3g\if#48\castlingtrue\ootrue\fi
+ \else\if#3c\if#48\castlingtrue\oofalse\fi\fi
+ \fi
+ \global\knotmovedfalse
+ \fi
+ \fi
+ \fi
+ \ifcastling
+ \@set[#1#2](E)\@set[#3#4](k)%
+ \ifoo 0\@dash0\rlap{#5}\@set[f8](r)\@set[h8](E)%
+ \else 0\@dash0\@dash0\rlap{#5}\@set[d8](r)\@set[a8](E)\fi%
+ \castlingfalse
+ \else
+ \ifFigure{\Fig\if\piece rR\else\if\piece bB\else\if\piece nN\else
+ \if\piece qQ\else K\fi\fi\fi\fi}\fi
+ #1#2\ifcapture\@capt\else\@dash\fi#3#4%
+ \rlap{\ifpromotion\expandafter\promovendus#5XYZ\else#5\fi}%
+ \@set[#1#2](E)%
+ \ifpromotion\@set[#3#4](\prom)\else\@set[#3#4](\piece)\fi
+ \ifenpassant\@set[#3#2](E)\enpassantfalse\fi
+ \fi
+ \global\Whitetrue
+ \fi}
+
+%
+% Promovendus: treat first char of argument as promotion piece if queen,
+% rook, knight or bishop; otherwise consider it as comment and take queen
+% as default promotion. Leave in \PROM White promoting piece (Q|R|B|N)
+% and in \prom Black's version (q|r|b|n).
+%
+
+\def\promovendus#1#2Z{%
+ \if#1X\def\C{}\gdef\PROM{Q}\gdef\prom{q}%
+ \else
+ \ifnum`#1=\queen@ \gdef\PROM{Q}\gdef\prom{q}\def\C{\@comment#2}\else
+ \ifnum`#1=\rook@ \gdef\PROM{R}\gdef\prom{r}\def\C{\@comment#2}\else
+ \ifnum`#1=\bishop@\gdef\PROM{B}\gdef\prom{b}\def\C{\@comment#2}\else
+ \ifnum`#1=\knight@\gdef\PROM{N}\gdef\prom{n}\def\C{\@comment#2}\else
+ \gdef\PROM{Q}\gdef\prom{q}\def\C{\comment#1#2}%
+ \fi\fi\fi\fi\fi%
+ {\Fig\PROM}{\C}}
+\def\@comment#1XY{#1}
+
+\newcount\movecount \movecount=0
+
+\def\showmove#1#2{\par
+ \line{\strut\hbox to1cm{\hfil\the\movecount.}%
+ \hbox to2.8cm{\hfil#1}\hbox to2.8cm{\hfil#2}\hfil}\par}
+
+\def\move#1 #2 {
+ \advance\movecount by 1
+ \showmove{\@ply#1 }{\@ply#2 }}
+
+\def\ply#1 {
+ \ifWhite
+ \advance\movecount by 1
+ \showmove{\@ply#1 }{}
+ \else
+ \showmove{$\ldots$}{\@ply#1 }
+ \fi}
+
+\def\newgame{\vskip0pt\movecount=0 \@initboard
+ \Whitetrue\castlingfalse\xdef\eprow{x}
+ \Knotmovedtrue\knotmovedtrue
+ \promotionfalse\enpassantfalse}
+
+\def\@dolist{\afterassignment\@dodolist\let\@@next= } % Answer 11.5 TeXbook
+\def\@dodolist{\ifx\@@next\@endlist \let\@@next\relax % adapted to generate
+ \else \@nextitem\let\@@next\@dolist \fi % chess diagrams
+ \@@next}
+
+\def\@endlist{\@endlist}
+
+\def\@nextitem{%
+ \if\@@next\space \@set[\@col\the\@r](E)\else
+ \if\@@next * \@set[\@col\the\@r](E)\else
+ \if\@@next\uc@pawn \@set[\@col\the\@r](P)\else
+ \if\@@next\lc@pawn \@set[\@col\the\@r](p)\else
+ \if\@@next\uc@rook \@set[\@col\the\@r](R)\else
+ \if\@@next\lc@rook \@set[\@col\the\@r](r)\else
+ \if\@@next\uc@bishop \@set[\@col\the\@r](B)\else
+ \if\@@next\lc@bishop \@set[\@col\the\@r](b)\else
+ \if\@@next\uc@knight \@set[\@col\the\@r](N)\else
+ \if\@@next\lc@knight \@set[\@col\the\@r](n)\else
+ \if\@@next\uc@queen \@set[\@col\the\@r](Q)\else
+ \if\@@next\lc@queen \@set[\@col\the\@r](q)\else
+ \if\@@next\uc@king \@set[\@col\the\@r](K)\else
+ \if\@@next\lc@king \@set[\@col\the\@r](k)\else
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \advance\@c by1}
+
+\def\@initrow#1#2{\@r=#1\@c=1\@dolist#2\@endlist}
+
+%
+% For setting up a position
+%
+\def\board#1#2#3#4#5#6#7#8{
+ \@initrow8{#1}
+ \@initrow7{#2}
+ \@initrow6{#3}
+ \@initrow5{#4}
+ \@initrow4{#5}
+ \@initrow3{#6}
+ \@initrow2{#7}
+ \@initrow1{#8}}
+
+%
+% Next macros for defining chess position (thanks to Victor Eijkhout)
+%
+\def\White(#1){\def\match{xxx}\xWhite#1,xxx,}
+\def\xWhite#1,{\def\temp{#1}
+ \ifx\temp\match \else \WhitePieceOrPawn#1XY \expandafter\xWhite \fi}
+\def\WhitePieceOrPawn#1#2#3#4Y{%
+ \if#3X \@set[#1#2](P)
+ \else\ifnum`#1=\king@ \@set[#2#3](K)\else % King
+ \ifnum`#1=\queen@ \@set[#2#3](Q)\else % Queen
+ \ifnum`#1=\rook@ \@set[#2#3](R)\else % Rook
+ \ifnum`#1=\bishop@\@set[#2#3](B)\else % Bishop
+ \ifnum`#1=\knight@\@set[#2#3](N)\else % kNight
+ \fi\fi\fi\fi\fi
+ \fi}
+
+\def\Black(#1){\def\match{xxx}\xBlack#1,xxx,}
+\def\xBlack#1,{\def\temp{#1}
+ \ifx\temp\match \else \BlackPieceOrPawn#1XY \expandafter\xBlack \fi}
+\def\BlackPieceOrPawn#1#2#3#4Y{
+ \if#3X\@set[#1#2](p)
+ \else\ifnum`#1=\king@ \@set[#2#3](k)\else % King
+ \ifnum`#1=\queen@ \@set[#2#3](q)\else % Queen
+ \ifnum`#1=\rook@ \@set[#2#3](r)\else % Rook
+ \ifnum`#1=\bishop@\@set[#2#3](b)\else % Bishop
+ \ifnum`#1=\knight@\@set[#2#3](n)\else % kNight
+ \fi\fi\fi\fi\fi
+ \fi}
+
+\def\position{\begingroup%
+ \@emptyboard\movecount=0\xdef\eprow{x}
+ \global\Whitetrue\global\castlingfalse
+ \global\Knotmovedtrue\global\knotmovedtrue
+ \global\promotionfalse\global\enpassantfalse}
+\def\endposition{\endgroup}
+
+% And now we define most symbols that are used in `\v{S}ahovski Informator'
+% (Chess Informant). For a complete list see Informant#51 (1991) pp 10-12.
+% If you add symbols realize that the macros should be usable by plain TeX
+% and LaTeX and that the (La)TeX names should be suggestive and clear!
+% But don't use uppercase letters or existing names (center)!
+% Thanks go to John Saba (saba@ccit.arizona.edu) and Henry Thomas
+% (hthomas@irisa.fr) for their help in defining next symbols.
+\font\symbolten=cmsy10 \font\smrm=cmr6 \font\symbolsix=cmsy6
+\def\wbetter{\mbox{\baselineskip0pt$\vcenter{\vbox{\hbox{+}\hbox{=}}}$}}
+\def\bbetter{\mbox{\baselineskip0pt
+ $\vcenter{\vbox{\hbox{=}\kern-.3ex\hbox{+}}}$}}
+\def\wupperhand{\mbox{$\pm$}}
+\def\bupperhand{\mbox{$\mp$}}
+\def\wdecisive{\mbox{$+\hbox{}-$}}
+\def\bdecisive{\mbox{$-\hbox{}+$}}
+\def\equal{=}
+\def\unclear{\mbox{$\infty$}}
+\def\compensation{\mbox{\baselineskip0pt$\vcenter{\vbox{%
+ \hbox{\kern.056em\vbox{\hrule width0.89em\kern0.35ex\hrule width0.89em}}
+ \kern.2ex\hbox{$\infty$}}}$}}
+% next symbol should be build using METAFONT
+\def\devadvantage{{\symbolten\char'015}\kern-4.8pt
+ \vrule width 2.4pt height6pt depth-5.6pt
+ \vrule width .4pt height8pt depth-5.6pt\kern2.4pt}
+\def\moreroom{{\symbolten\char'015}}
+\def\withattack{$\rightarrow$}
+\def\withinit{$\uparrow$}
+\def\counterplay{\hbox{\baselineskip0pt%
+ $\vcenter{\vbox{\hbox{$\leftarrow$}\hbox{$\rightarrow$}}}$}}
+\def\zugzwang{$\odot$}
+\def\mate{\kern.4pt\mbox{%
+ \vrule width2ex height1.18ex depth-1.1ex\kern-2ex
+ \vrule width2ex height.52ex depth-.44ex\kern-1.381ex
+ \vrule width.08ex height1.8ex depth.2ex\kern0.615ex
+ \vrule width.08ex height1.8ex depth.2ex\kern0.406ex}\kern.4pt}
+\def\withidea{$\triangle$}
+\def\onlymove{$\Box$}
+\def\betteris{\mbox{\baselineskip0pt
+ $\vcenter{\vbox{\hbox{$\frown$}\kern-0.35ex\hrule width0.95em}}$}}
+\def\file{$\Leftrightarrow$}
+% next symbol should be build using METAFONT
+\def\diagonal{$\nearrow$}
+\def\centre{$\Box$\kern-.6em\raise.54ex\hbox{\smrm\char'053}}
+\def\kside{$\gg$}
+\def\qside{$\ll$}
+\def\weakpt{$\times$}
+\def\ending{$\perp$}
+% John Saba's method:
+\def\blackbox{\vrule height .8ex width 1.2ex depth 0ex}
+\def\whitebox{\vbox{\hrule height .1pt\hbox{\vrule width .1pt\kern.6ex
+ \vbox{\kern.8ex}\kern.6ex\vrule width .1pt}\hrule height .1pt}}
+\def\bishoppair{\whitebox\kern-2pt\raise1.8pt\hbox{\whitebox}}
+\def\opposbishops{\whitebox\kern-2pt\raise1.8pt\hbox{\blackbox}}
+\def\samebishops{\blackbox\kern-2pt\raise1.8pt\hbox{\blackbox}}
+% My method
+%\def\bishoppair{\setbox0=\hbox{%
+% \vrule width1.4ex height1ex depth-.92ex\kern-1.4ex
+% \vrule width1.4ex height.08ex depth0pt\kern-1.4ex
+% \vrule width.08ex height1ex depth0ex\kern1.24ex
+% \vrule width.08ex height1ex depth0ex}%
+% \kern.4pt\mbox{\copy0\kern-.6ex\raise0.56ex\box0}\kern.4pt}
+%\def\opposbishops{\kern.4pt\mbox{%
+% \vrule width1.4ex height1ex depth-.92ex\kern-1.4ex
+% \vrule width1.4ex height.08ex depth0pt\kern-1.4ex
+% \vrule width.08ex height1ex depth0ex\kern1.24ex
+% \vrule width.08ex height1ex depth0ex\kern-.6ex
+% \vrule width1.4ex height1.56ex depth-0.56ex}\kern.4pt }
+%\def\samebishops{\kern.4pt\mbox{%
+% \vrule width1.4ex height1ex depth0ex\kern-.6ex
+% \vrule width1.4ex height1.56ex depth-0.56ex}\kern.4pt}
+\def\unitedpawns{$\circ\kern-.05em\circ$}
+\def\seppawns{$\circ\kern-.3em\cdot\kern-.35em\cdot\kern-.1em\circ$}
+\def\doublepawns{\mbox{\baselineskip0pt
+ $\vcenter{\vbox{\hbox{$\circ$}\vskip.8pt\hbox{$\circ$}}}$}}
+% Next symbol still not perfect ...
+\def\passedpawn{\mbox{\baselineskip0pt
+ $\vcenter{\vbox{\hbox{\kern0.14em\symbolsix\char'042}\hbox{$\circ$}}}$}}
+\def\morepawns{$>$}
+\def\timelimit{$\oplus$}
+\def\novelty{{\sc N}}
+\def\comment{{\sc RR}}
+\def\various{{\sc R}}
+\def\without{\kern.4pt\mbox{%
+ \vrule width 1ex height.08ex depth0ex\kern-0.08ex
+ \vrule width0.08ex height1.5ex depth0ex}\kern.4pt}
+\def\with{\kern.4pt\mbox{%
+ \vrule width 0.08ex height1.5ex depth0ex\kern-0.08ex
+ \vrule width 1ex height.08ex depth0ex}\kern.4pt}
+\def\etc{$\parallel$}
+\def\see{\kern.4pt\mbox{\vrule width 1em height.54ex depth-.46ex}\kern.4pt}
+
+\resetat
diff --git a/fonts/chess/chess/inputs/dutch.sty b/fonts/chess/chess/inputs/dutch.sty
new file mode 100644
index 0000000000..9686ee736f
--- /dev/null
+++ b/fonts/chess/chess/inputs/dutch.sty
@@ -0,0 +1,159 @@
+%%
+%% This is file `dutch.sty', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% dutch.doc
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{dutch.doc}
+\def\fileversion{dutch-3.2}
+\def\filedate{2 july 1991}
+\def\docdate{6 june 1991}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+{\def\format{plain}
+\ifx\fmtname\format
+ \expandafter\ifx\csname @ifundefined\endcsname\relax
+ \gdef\next{latexhax.sty}
+ \aftergroup\input\aftergroup\next
+ \fi
+\fi}
+\ifnum\the\catcode`\@=12\relax \makeatletter\let\resetat\makeatother
+ \else\let\resetat\relax\fi
+\@ifundefined{captionsdutch}{}{\endinput}
+\wlog{Style option `Dutch' version \fileversion\space<\filedate>}
+\wlog{English documentation <\docdate>}
+\ifx\undefined\babel@core@loaded\input babel.sty\fi
+\ifx\undefined\originalTeX\else\originalTeX\fi
+\def\captionsdutch{%
+\def\refname{Referenties}%
+\def\abstractname{Samenvatting}%
+\def\bibname{Bibliografie}%
+\def\chaptername{Hoofdstuk}%
+\def\appendixname{Bijlage}%
+\def\contentsname{Inhoudsopgave}%
+\def\listfigurename{Lijst van figuren}%
+\def\listtablename{Lijst van tabellen}%
+\def\indexname{Index}%
+\def\figurename{Figuur}%
+\def\tablename{Tabel}%
+\def\partname{Deel}%
+\def\enclname{Bijlage(n)}%
+\def\ccname{Ter attentie van}%
+\def\headtoname{Aan}%
+\def\headpagename{Pagina}}
+\def\datedutch{%
+\def\today{\number\day~\ifcase\month\or
+ januari\or februari\or maart\or april\or mei\or juni\or juli\or
+ augustus\or september\or oktober\or november\or december\fi
+ \space \number\year}}
+\begingroup \catcode`\"\active
+\gdef\extrasdutch{%
+ \let\original@dospecials\dospecials%
+ \let\original@sanitize\@sanitize%
+ \let\original@dieresis\"%
+ \let\original@dq="%
+ \let\original@active@dq\active@dq%
+ \edef\original@xcode{\catcode`\noexpand\"=\the\catcode`\"\relax}
+ \let\dospecials\dutch@dospecials%
+ \let\@sanitize\dutch@sanitize%
+ \catcode`\"\active%
+ \def"{\protect\active@dq}%
+ \let\active@dq\dutch@active@dq%
+ \def\"{\protect\@umlaut}%
+}
+\endgroup
+\begingroup\catcode`\"=\active
+\gdef\noextrasdutch{%
+ \catcode`\"12%
+ \original@xcode
+ \let"\original@dq
+ \let\active@dq\original@active@dq
+ \let\"\original@dieresis%
+ \let\dospecials\original@dospecials%
+ \let\@sanitize\original@sanitize%
+}\endgroup
+\begingroup
+\def\do{\noexpand\do\noexpand}%
+\xdef\dutch@dospecials{\dospecials\do\"}%
+\expandafter\ifx\csname @sanitize\endcsname\relax \else
+ \def\@makeother{\noexpand\@makeother\noexpand}%
+ \xdef\dutch@sanitize{\@sanitize\@makeother\"}%
+\fi
+\endgroup
+\def\allowhyphens{\penalty\@M \hskip\z@skip}
+\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}%
+ \dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@%
+ \setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@}
+\def\dlqq{\protect\@dlqq}
+\def\@dlqq{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else%
+ \let\@SF\empty \fi \leavevmode%
+ \set@low@box{''}\box\z@\kern-.04em\allowhyphens\@SF\relax}}
+\def\drqq{\protect\@drqq}
+\def\@drqq{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else%
+ \let\@SF\empty \fi ''\@SF\relax}}
+\begingroup \catcode`\"12
+ \gdef\dq{"}
+\endgroup
+\let\dieresis\"
+\def\@umlaut#1{\allowhyphens\discretionary{-}{#1}{\dieresis #1}\allowhyphens}
+\def\dutch@active@dq#1{%
+ \if\string#1`\dlqq{}%
+\else\if\string#1'\drqq{}%
+\else\if\string#1-\allowhyphens-\allowhyphens%
+\else\if\string#1|\discretionary{-}{}{\kern.03em}%
+\else\if\string#1i\allowhyphens\discretionary{-}{i}{\dieresis\i}\allowhyphens%
+\else\if\string#1j\allowhyphens\discretionary{-}{j}{\dieresis\j}\allowhyphens%
+\else\if\string#1y\allowhyphens i\kern-0.06\p@ j\allowhpyhens%
+\else\if\string#1Y\allowhyphens I\kern-0.05\p@ J\allowhpyhens%
+\else \@umlaut{#1}\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens}
+\@ifundefined{l@dutch}{\adddialect\l@dutch0}{}
+\@ifundefined{originalTeX}{\let\originalTeX\relax}{}
+\selectlanguage{dutch}
+\resetat
+
+\endinput
+%%
+%% End of file `dutch.sty'.
diff --git a/fonts/chess/chess/inputs/english.sty b/fonts/chess/chess/inputs/english.sty
new file mode 100644
index 0000000000..9dcef61d35
--- /dev/null
+++ b/fonts/chess/chess/inputs/english.sty
@@ -0,0 +1,116 @@
+%%
+%% This is file `english.sty', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% english.doc
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{english.doc}
+\def\fileversion{english-3.0b}
+\def\filedate{6 june 1991}
+\def\docdate{6 june 1991}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+{\def\format{plain}
+\ifx\fmtname\format
+ \expandafter\ifx\csname @ifundefined\endcsname\relax
+ \gdef\next{latexhax.sty}
+ \aftergroup\input\aftergroup\next
+ \fi
+\fi}
+\ifnum\the\catcode`\@=12\relax \makeatletter\let\resetat\makeatother
+ \else\let\resetat\relax\fi
+\@ifundefined{captionsenglish}{}{\endinput}
+\wlog{Style option `English' version \fileversion\space<\filedate>}
+\wlog{English documentation <\docdate>}
+\ifx\undefined\babel@core@loaded\input babel.sty\fi
+\ifx\undefined\originalTeX\else\originalTeX\fi
+\def\captionsenglish{%
+\def\refname{References}%
+\def\abstractname{Abstract}%
+\def\bibname{Bibliography}%
+\def\chaptername{Chapter}%
+\def\appendixname{Appendix}%
+\def\contentsname{Contents}%
+\def\listfigurename{List of Figures}%
+\def\listtablename{List of Tables}%
+\def\indexname{Index}%
+\def\figurename{Figure}%
+\def\tablename{Table}%
+\def\partname{Part}%
+\def\enclname{encl}%
+\def\ccname{cc}%
+\def\headtoname{To}%
+\def\headpagename{Page}}
+\def\dateenglish{%
+\def\today{\ifcase\day\or
+ 1st\or 2nd\or 3rd\or 4th\or 5th\or
+ 6th\or 7th\or 8th\or 9th\or 10th\or
+ 11th\or 12th\or 13th\or 14th\or 15th\or
+ 16th\or 17th\or 18th\or 19th\or 20th\or
+ 21st\or 22nd\or 23rd\or 24th\or 25th\or
+ 26th\or 27th\or 28th\or 29th\or 30th\or
+ 31st\fi~\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space \number\year}}
+\def\dateamerican{%
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}}
+\def\extrasenglish{}
+\def\noextrasenglish{}
+\@ifundefined{l@english}{\adddialect\l@english0}{}
+\adddialect\l@american\l@english
+\let\captionsamerican\captionsenglish
+\let\extrasamerican\extrasenglish
+\let\noextrasamerican\noextrasenglish
+\@ifundefined{originalTeX}{\let\originalTeX\relax}{}
+\selectlanguage{english}
+\resetat
+
+\endinput
+%%
+%% End of file `english.sty'.
diff --git a/fonts/chess/chess/inputs/french.sty b/fonts/chess/chess/inputs/french.sty
new file mode 100644
index 0000000000..1d096fedbf
--- /dev/null
+++ b/fonts/chess/chess/inputs/french.sty
@@ -0,0 +1,99 @@
+%%
+%% This is file `french.sty' generated
+%% on <1991/5/21> with the docstrip utility (v1.1l test).
+%%
+%% The original source file was `french.doc'.
+%%
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\filename{french.doc}
+\def\fileversion{3.0}
+\def\filedate{23 april 1991}
+\def\docdate{23 april 1991}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+{\def\format{plain}
+\ifx\fmtname\format
+ \expandafter\ifx\csname @ifundefined\endcsname\relax
+ \gdef\next{latexhax.sty}
+ \aftergroup\input\aftergroup\next
+ \fi
+\fi}
+\ifcat/@ \makeatletter\let\resetat\makeatother
+ \else\let\resetat\relax\fi
+\@ifundefined{captionsfrench}{}{\endinput}
+\wlog{Style option `French' version \fileversion\space<\filedate>}
+\wlog{English documentation <\docdate>}
+\ifx\undefined\babel@core@loaded\input babel.sty\fi
+\def\captionsfrench{%
+\gdef\refname{R\'ef\'erences}%
+\gdef\abstractname{R\'esum\'e}%
+\gdef\bibname{Bibliographie}%
+\gdef\chaptername{Chapitre}%
+\gdef\appendixname{Annexe}%
+\gdef\contentsname{Table des mati\`eres}%
+\gdef\listfigurename{Liste des figures}%
+\gdef\listtablename{Liste des tableaux}%
+\gdef\indexname{Index}%
+\gdef\figurename{Figure}%
+\gdef\tablename{Tableau}%
+\gdef\partname{Partie}%
+\gdef\enclname{P.~J.}%
+\gdef\ccname{Copie \`a}%
+\gdef\headtoname{A}
+\gdef\headpagename{Page}}%
+\def\datefrench{%
+\gdef\today{\ifnum\day=1\relax 1\/$^{\rm er}$\else
+ \number\day\fi \space\ifcase\month\or
+ janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\'ecembre\fi
+ \space\number\year}}
+\def\extrasfrench{}
+\def\noextrasfrench{}
+\@ifundefined{l@french}{\adddialect\l@french0}{}
+\@ifundefined{originalTeX}{\let\originalTeX\relax}{}
+\setlanguage{french}
+\resetat
+
+\endinput
+%%
+%% End of file `french.sty'.
diff --git a/fonts/chess/chess/inputs/latexhax.sty b/fonts/chess/chess/inputs/latexhax.sty
new file mode 100644
index 0000000000..0a9a24c4a3
--- /dev/null
+++ b/fonts/chess/chess/inputs/latexhax.sty
@@ -0,0 +1,58 @@
+%%
+%% This is file `latexhax.sty', generated
+%% on <1991/7/5> with the docstrip utility (2.0i).
+%%
+%% The original source files were:
+%%
+%% latexhax.doc
+%%
+%% Copyright (C) 1989, 1990, 1991
+%% by Johanes Braams. All rights reserved.
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy this file
+%% to a file with a different name and then change the copy.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
+%% to take money for the distribution or use of this file (or a changed
+%% version) except for a nominal charge for copying etc.
+%%
+%% You are allowed to distribute this file under the condition that it is
+%% distributed together with all files mentioned below.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% J. Braams
+%% PTT Research, dr Neher Laboratorium
+%% P.O. box 421
+%% 2260 AK Leidschendam
+%% The Netherlands
+%% Internet: <JL_Braams@pttrnl.nl>
+%%
+\def\makeatletter{\catcode`\@=11\relax}
+\def\makeatother{\catcode`\@=12\relax}
+\ifcat/@
+ \makeatletter\let\resetat\makeatother
+\else
+ \let\resetat\relax
+\fi
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname#1\endcsname\relax%
+ #2\else#3\fi}
+\newwrite\@unused
+\def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}
+\let\protect\relax
+\newdimen\@savsk
+\newcount\@savsf
+\def\@bsphack{\@savsk\lastskip
+ \ifhmode\@savsf\spacefactor\fi}
+\def\@esphack{\relax\ifhmode\spacefactor\@savsf
+ {}\ifdim \@savsk >\z@ \ignorespaces
+ \fi \fi}
+\resetat
+
+\endinput
+%%
+%% End of file `latexhax.sty'.
diff --git a/fonts/chess/chess/installation b/fonts/chess/chess/installation
new file mode 100644
index 0000000000..786978419b
--- /dev/null
+++ b/fonts/chess/chess/installation
@@ -0,0 +1,249 @@
+
+ Installation of the chess macros
+ --------------------------------
+
+If you are already using the chess1.1 package then proceed with
+`Upgrading to 1.2' otherwise proceed with `Installation of the fonts and
+the chess-style'.
+
+1. Upgrading to 1.2
+-------------------
+To use version 1.2 of the chess macros you must:
+ - install the babel package
+ - install the new chess.sty file
+ - rename font chessfig10 into chessf10 (both the tfm-file and the pk-file)
+ - read the CHANGES12 file.
+
+1.1 Install the babel package
+-----------------------------
+I have included only those parts of the babel-3.0b package that are used by
+the chess macros and example files. You can get the complete babel-package
+from one of the following sources:
+ bitnet:
+ * LISTSERV@HEARN.BITNET (Europe)
+ To get a list of all available files send the following
+ message:
+ get tex-nl filelist
+ To get the babel package send the message (you will need
+ `uudecode' and `zoo' in order to unpack the archive):
+ send babel zoouue
+ * ymir.claremont.edu (USA)
+ internet: sol.cs.ruu.nl (Europe)
+ via anonymous ftp
+ from TEX/NTG/babel.zoo
+
+In order to use the new chess macros you will need:
+ babel.switch
+ chess12/inputs/babel[22|33].switch
+ chess12/inputs/babel.sty
+ chess12/inputs/latexhax.sty
+ chess12/inputs/english.sty
+ chess12/inputs/dutch.sty
+[ chess12/inputs/german.sty
+ chess12/inputs/french.sty
+ chess12/inputs/YOUR-LANGUAGE.sty ]
+
+Babel.switch is the file that handles language switching. If you use an
+old version of TeX (pre 3.0) then you have to use babel22.switch otherwise
+you will need babel33.switch. Only in the last case you will have full
+language support. Install the above files by copying them to a directory
+which is in your TEXINPUTS path. Copy either babel22.switch or
+babel33.switch as babel.switch to the same directory.
+
+1.2 Install the new chess.sty file
+----------------------------------
+Copy chess12/inputs/chess.sty to a directory which is in your TEXINPUTS path.
+
+1.3 Rename font chessfig10 into chessf10
+----------------------------------------
+Rename your chessfig10.tfm into chessf10.tfm and your chessfig10.300pk
+into chessf10.300pk. This change is a service for our MSDOS users
+(including the TUGboat editors).
+
+You are ready to use the new macros. Read the file CHANGES12 to know
+what changes might be of importance to you.
+
+
+2. Installing the fonts and the chess-style
+-------------------------------------------
+Lots of people have a laserprinter with a Canon Engine (300dpi, write
+black). For those people I have included the pkfonts and the tfm-files.
+Installation of the chess-style and chessfonts, in this case, consists of
+the following steps (otherwise proceed with 3.):
+
+Installation of the chess macros should be very simple. The package consists
+of four different parts:
+ A) style files:
+ chess12/inputs/chess.sty (chess)
+ chess12/inputs/babel22.switch (babel)
+ chess12/inputs/babel33.switch (babel)
+ chess12/inputs/babel.sty (babel)
+ chess12/inputs/latexhax.sty (babel)
+ chess12/inputs/english.sty (babel)
+ chess12/inputs/dutch.sty (babel)
+ [ chess12/inputs/a4.sty (optional)
+ chess12/inputs/a4wide.sty (optional)
+ chess12/inputs/fancyheadings.sty (optional)
+ chess12/inputs/2side.tex (optional) ]
+
+ These files consists of the chess macros and part of the babel
+ package (see 1.2 how the full package can be obtained). Find out
+ where your style (.sty) files are kept. (If you don't have
+ permission to put the files on that place then you can put them
+ where you like. But in this case you have to add that place to the
+ TEXINPUTS search path so that TeX and LaTeX can locate them. Try to
+ find out how that works for your system.)
+
+ If you use an old version of TeX (before 3.0) then you must copy
+ babel22.switch otherwise babel33.switch as babel.switch to the
+ place you have choosen. The rest of the files can be copied
+ straight away. If you have already babel then you only need to
+ copy chess.sty. The files between [ ... ] are optional. I have
+ included them for completeness because they are used somewhere
+ in the example files.
+
+===> step a) install chess and babel style files
+ [eventually adapt your TEXINPUTS search path]
+
+ B) TeX font metric files:
+ chess12/fonts/chess20.tfm (chess)
+ chess12/fonts/chessf10.tfm (chess)
+ [ chess12/fonts/chess10.tfm (chess)
+ chess12/fonts/chess30.tfm (chess) ]
+
+ This part is needed by TeX and LaTeX too because they contain the
+ metrics and kerning information of the fonts. Put the files in the
+ same directory as where the other .tfm files are kept. (If you
+ don't have permission to put the files there then you can put them
+ where you like. But in this case you have to add that place to the
+ TEXFONTS search path so that TeX and LaTeX can locate them. Try to
+ find out how that works for your system.)
+
+ The files between [ ... ] are not used by the chess.sty macros. If
+ you want to use them you may copy them also to the destination you
+ have choosen. The file chess12/doc/boards.ltx shows how you can use
+ them in LaTeX.
+
+===> step b) install .tfm files
+ [eventually adapt your TEXFONTS search path]
+
+ C) TeX packed font files:
+ chess12/pkfonts/chess20.300pk (chess)
+ chess12/pkfonts/chessf10.300pk (chess)
+ [ chess12/pkfonts/chess10.300pk (chess)
+ chess12/pkfonts/chess30.300pk (chess) ]
+
+ This is perhaps the most cumbersome step in the installation. Not
+ because it is really difficult but because there are so many
+ different printers, previewers and drivers. Not to speak of the
+ bloody limit of the three character extension of MSDOS.
+
+ Try to find out how and where the pk-files are kept on your system
+ (if you use the old fashioned pxl or gf-files you are really out of
+ date!). If your system keeps the pk-files in directories ordered
+ by fontsize the above fonts have perhaps to be renamed into:
+ /usr/local/lib/tex/pkfonts/chess20.300pk (UNIX)
+ TEX_ROOT:[fonts.300]chess20.pk (VAX-VMS/DECUS-TeX)
+ TeX:pk/300/chess20.300pk (??AmigaTeX??)
+ emtex\pixel.lj\300dpi\chess20.pk (emTeX)
+
+ If you don't have permission to put the files on the place where the
+ other pk-files are kept then you can put them where you like. But in
+ this case you have to add that place to the search path of your
+ favourite driver (TEXPKS for the PostScript driver `dvips' available on
+ almost every system--recommended!) and previewer (XDVIFONTS for
+ xdvi, this previewer runs on X-based terminals). Try to find out how
+ that works on your system.
+
+===> step c) install pk-files
+ [eventually adapt your driver and previewer search paths]
+
+ D) Documentation and example files
+ chess12/doc/boards.ltx LaTeX source demonstrating the 3 chess fonts
+ chess12/doc/TUGboat.ltx TUGboat article (LaTeX main-source)
+ chess12/doc/TUGgame.ltx TUGboat article (LaTeX inputted-source)
+ chess12/doc/tal.ltx Fisher vs. Tal (LaTeX source)
+ chess12/doc/tal.tex Fisher vs. Tal (TeX source)
+ chess12/doc/Symbols.tex Informator symbols (TeX-version)
+ chess12/doc/Symbols.ltx Informator symbols (LaTeX-version)
+ chess12/doc/Kasparov.ltx Informator style example
+ chess12/doc/SchaakMaatje.ltx our chess club magazine (Dutch!)
+ chess12/doc/dutch-tt.ltx dutch LaTeX torture test
+ chess12/doc/dutch-tt.tex dutch TeX torture test
+
+===> step d) print documentation
+ [eventually adapt your TEXINPUTS search path so chess12/inputs
+ is temporary included]
+
+ You are now ready to use the chess macros. Print the documentation
+ available in chess12/doc. The main documentation consists of the
+ article (TUGboat.ltx and TUGgame.ltx) that will appear in TUGboat
+ and the complete game of Fisher against Tal (tal.ltx and tal.tex).
+ For testing the chessfonts on your printer or previewer I have
+ included boards.ltx with its dvi-file and its PostScript output (.ps).
+ For those who are not afraid to read Dutch there is a SchaakMaatje.ltx
+ the magazine I made for our chess club. This example shows how the
+ language support for Dutch is used.
+ For testing new versions of chess.sty you may use the torture tests.
+
+3. Generating the fonts.
+------------------------
+To generate the chess fonts you need METAFONT (the actual program needed
+is `mf').
+
+To install font <font> (ex. chess20) you must:
+ a) generate `<font>.tfm' and `<font>.<dpi>gf' (<dpi> is
+ a number depending on the resolution of your output device: 100 for
+ the AmigaTeX previewer, 300 for most popular laserprinters):
+
+ mf "\mode:=<mode>; mag:=magstep(<magstep>); input <font>"
+
+ Here <mode> should be:
+ localfont if METAFONT is installed properly and localfont has been
+ set to the parameters needed for your local printer
+ amiga if you want to generate fonts for the AmigaTeX previewer.
+
+ Anyway <mode> should have a value that guarantees that you use the
+ optimal settings when METAFONT generates fonts for YOUR printer or
+ previewer.
+
+ Here <magstep> should be a suitable value to generate the wanted
+ magnification. Zero (0) generates a true sized font, 1 a font that
+ is 1.2 times and -1 a font that is 1/1.2 times magnified. Normally
+ you do need only true sized fonts (<magstep>=0) but with the
+ AmigaTeX previewer it is handy to have magsteps -0.5, 0 and 1.
+
+ b) Although some printer drivers accept gf-files and pxl-files, pk-files
+ are preferred because they occupy less disk space. To convert from
+ gf to pk format you need the program `gftopk':
+
+ gftopk <font>.<dpi>gf
+
+ c) Proceed with 2.
+
+4. Other remarks
+-----------------
+If you use xdvi (UNIX and VAX-VMS) as previewer, as I do on my NCD16
+terminal at work, you don't need extra previewer fonts. To get nice
+chessdiagrams with this previewer you need to set the density (S) to 33.
+
+To get optimal convenience with the previewer of your AmigaTeX, in case
+you don't have a hard disk as I do, you can make an extra font disk (ex.
+Black.Myfonts), thanks to the unique font cashing scheme implemented by
+Tomas Rokicki. Consult your AmigaTeX manual.
+
+The chessdiag.mf METAFONT source in chess12/mf draws a `mate in three
+problem' on the screen if your `mf' has graphical support. To draw on
+the screen you need the following command:
+ mf "\mode=localfont; mag=magstep(2); screenchars; input chessdiag"
+
+If you like to make a nice T-shirt or magnified chessboard, try:
+ mf "\mode=proof; mag=magstep(0); input chess20"
+ gftodvi chess20.2600gf
+ dvips chess20
+
+Success!
+
+Geldrop, Oct 1991
+Piet Tutelaers
+internet: rcpt@urc.tue.nl
diff --git a/fonts/chess/chess/makefile b/fonts/chess/chess/makefile
new file mode 100644
index 0000000000..bf1ff04223
--- /dev/null
+++ b/fonts/chess/chess/makefile
@@ -0,0 +1,124 @@
+# File: Makefile
+# Purpose: automatic generation of documentation and installation
+# of the fonts (at least on UNIX)
+# Author: Piet Tutelaers (internet: rcpt@urc.tue.nl)
+# Version: Febr. 1992
+#
+
+SHELL = /bin/sh
+
+#
+# Next definitions should point to the place where the .sty files are
+# stored (INPUTS) and where the .tfm files are (FONTS)
+#
+INPUTS = /usr/local/lib/tex30/inputs
+FONTS = /usr/local/lib/tex30/fonts:/usr/local/lib/tex30/PSfonts:
+
+#
+# Next definitions should point to the place where the .sty files are
+# installed (DESTINPUTS), the .tfm files (DESTFONTS) and the 300pk
+# files (DESTPK)
+DESTTEX=/usr/local/lib/tex30
+DESTINPUTS= $(DESTTEX)/inputs
+DESTFONTS = $(DESTTEX)/fonts
+DESTPK = $(DESTTEX)/pkfonts
+
+MFCHESSBASE= mf/chesspieces.mf mf/chessbase.mf
+CHESSMACROS= chess20.300pk chessf10.300pk inputs/chess.sty
+
+.SUFFIXES: .dvi .ps .300gf .300pk
+
+all: fonts doc
+
+doc: TUGboat.ps Symbols.ps tal.ps Kasparov.ps
+ @echo "You can send the PostScript files to the printer"
+
+fonts: chess10.300pk chess20.300pk chess30.300pk chessf10.300pk
+
+TUGboat.dvi: doc/TUGboat.ltx doc/TUGgame.ltx $(CHESSMACROS)
+ (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
+ TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
+ latex "\batchmode\input TUGboat.ltx" \
+ latex "\batchmode\input TUGboat.ltx")
+
+Symbols.dvi: doc/Symbols.ltx $(CHESSMACROS)
+ (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
+ TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
+ latex "\batchmode\input Symbols.ltx")
+
+tal.dvi: doc/tal.ltx $(CHESSMACROS)
+ (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
+ TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
+ latex "\batchmode\input tal.ltx")
+
+Kasparov.dvi: doc/Kasparov.ltx $(CHESSMACROS)
+ (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
+ TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
+ latex "\batchmode\input Kasparov.ltx")
+
+.dvi.ps:
+ (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
+ dvips -o $*.ps $<)
+
+.300gf.300pk:
+ gftopk $<
+
+chess10.tfm chess10.300gf: mf/chess10.mf $(MFCHESSBASE)
+ (MFINPUTS=mf; export MFINPUTS; \
+ mf "\mode:=localfont; input chess10")
+
+chess20.tfm chess20.300gf: mf/chess20.mf $(MFCHESSBASE)
+ (MFINPUTS=mf; export MFINPUTS; \
+ mf "\mode:=localfont; input chess20")
+
+chess30.tfm chess30.300gf: mf/chess30.mf $(MFCHESSBASE)
+ (MFINPUTS=mf; export MFINPUTS; \
+ mf "\mode:=localfont; input chess30")
+
+chessf10.tfm chessf10.300gf: mf/chessf10.mf $(MFCHESSBASE)
+ (MFINPUTS=mf; export MFINPUTS; \
+ mf "\mode:=localfont; input chessf10")
+
+install: fonts inputs/chess.sty
+ install -m 644 chess20.300pk $(DESTPK)
+ install -m 644 chessf10.300pk $(DESTPK)
+ install -m 644 chess20.tfm $(DESTFONTS)
+ install -m 644 chessf10.tfm $(DESTFONTS)
+ (cd inputs; install -c -m 644 chess.sty $(DESTINPUTS))
+
+clean:
+ rm -f *gf *pk *.ps *.dvi *.aux *.log *.tfm
+
+SOURCES = README \
+ CHANGES12 \
+ CopyRight \
+ INSTALLATION \
+ Makefile \
+ doc/TUGboat.ltx \
+ doc/TUGgame.ltx \
+ doc/boards.ltx \
+ doc/tal.ltx \
+ doc/tal.tex \
+ doc/Kasparov.ltx \
+ doc/Symbols.ltx \
+ doc/Symbols.tex \
+ doc/dutch-tt.tex \
+ doc/dutch-tt.ltx \
+ doc/SchaakMaatje.ltx \
+ inputs/chess.sty \
+ mf/README \
+ mf/chessf10.mf \
+ mf/chessdiag.mf \
+ mf/chess20.mf \
+ mf/chessbase.mf \
+ mf/chesspieces.mf \
+ mf/chess30.mf \
+ mf/chessdiag.Xmf \
+ mf/chess10.mf
+
+printsources:
+ enscript -pchess12.ps $(SOURCES)
+ @echo "You can send the chess12.ps to the printer"
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+TUGboat.dvi: chess10.300pk chess20.300pk chessf10.300pk
diff --git a/fonts/chess/chess/mf/README b/fonts/chess/chess/mf/README
new file mode 100644
index 0000000000..1f1dce9ad7
--- /dev/null
+++ b/fonts/chess/chess/mf/README
@@ -0,0 +1,15 @@
+Instructions on how to install the chess fonts can be found in the file
+chess12/INSTALLATION.
+
+The file chessdiag.mf allows to create the ``Mate in three'' problem
+in a separate window if your version of METAFONT supports it (it should
+do that!). There are two versions of this file:
+ chessdiag.mf
+ chessdiag.Xmf
+
+The last one can be used to draw the board in a X-window. Here is how:
+ - setenv DISPLAY your_server:0
+ - mf "\mode:=localfont; mag:=magstep(0); screenchars; input chessdiag.Xmf"
+
+Oct. 1991
+Piet Tutelaers (rcpt@urc.tue.nl)
diff --git a/fonts/chess/chess/mf/chess10.mf b/fonts/chess/chess/mf/chess10.mf
new file mode 100644
index 0000000000..50edaa81d3
--- /dev/null
+++ b/fonts/chess/chess/mf/chess10.mf
@@ -0,0 +1,21 @@
+% This is `chess10.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 10 points chess font.
+% A complete chess diagram is 80 X 80 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/fonts/chess/chess/mf/chess20.mf b/fonts/chess/chess/mf/chess20.mf
new file mode 100644
index 0000000000..8e5894a670
--- /dev/null
+++ b/fonts/chess/chess/mf/chess20.mf
@@ -0,0 +1,21 @@
+% This is `chess20.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 20 points chess font.
+% A complete chess diagram is 160 X 160 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=20pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/fonts/chess/chess/mf/chess30.mf b/fonts/chess/chess/mf/chess30.mf
new file mode 100644
index 0000000000..21c227ce08
--- /dev/null
+++ b/fonts/chess/chess/mf/chess30.mf
@@ -0,0 +1,21 @@
+% This is `chess30.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 30 points chess font.
+% A complete chess diagram is 240 X 240 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=30pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/fonts/chess/chess/mf/chessbase.mf b/fonts/chess/chess/mf/chessbase.mf
new file mode 100644
index 0000000000..9aaa7f8674
--- /dev/null
+++ b/fonts/chess/chess/mf/chessbase.mf
@@ -0,0 +1,285 @@
+% This is `chessbase.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% In this file all pieces are defined.
+% The points defining a piece are all in the unitsquare
+% (0,0)--(0,1)--(1,1)--cycle.
+
+def dark_square(expr D) =
+ clearit; L:=min(D/4, 9); delta:=1/L;
+ pickup fine_pen;
+ for i=1 upto min(D/4,9):
+ draw (0,delta*i*D)--(D-delta*i*D,D);
+ draw (delta*i*D,0)--(D,D-delta*i*D);
+ endfor;
+ draw (0,0)--(D,D);
+ enddef;
+
+def erase_square(expr D, col, row) =
+ currentpicture:=board;
+ erase fill (0,0)--(0,1)--(1,1)--(1,0)--cycle scaled D shifted(col*D, row*D);
+ board:=currentpicture;
+ enddef;
+
+def empty_board(expr D) =
+ picture board; path border;
+ border = ((0,0)--(1,0)--(1,1)--(0,1)--cycle);
+ dark_square(D); board:=nullpicture;
+ for i=0 upto M-1:
+ for j=0 upto M-1:
+ if not odd(i+j): addto board also currentpicture shifted (D*i,D*j) fi;
+ endfor
+ endfor;
+ clearit;
+ pickup border_pen;
+ draw border scaled (M*D);
+ addto board also currentpicture;
+ currentpicture:=board;
+ enddef;
+
+def reflect(text t) =
+ forsuffixes $=t: z$'=z$ reflectedabout (z1,z2); endfor;
+ enddef;
+
+def opr(suffix $) = (x$+thick#/d#, y$) enddef; % one point right
+def opl(suffix $) = (x$-thick#/d#, y$) enddef; % one point left
+def opu(suffix $) = (x$, y$+thick#/d#) enddef; % one point up
+def opd(suffix $) = (x$, y$-thick#/d#) enddef; % one point down
+
+vardef K(expr D, col, row) =
+ clearxy;
+ path cross_bar, crown, crown_top, crown_left, crown_right, crown_lower,
+ crown_top_inner, crown_left_inner, crown_right_inner;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thick_pen;
+% draw cross
+ z1=(.5,.96); z2=(.5,.8); z11=(.42,.9); reflect(11);
+ cutdraw (z1--z2) moved; cutdraw (z11--z11') moved;
+% top part of crown
+ z3=(.5,.38); z21=(.475,.5); z22=(.45,.575); z23=(.45,.775);
+ reflect(21,22,23);
+ crown_top= ((z3..z21..z22..z23..z2..z23'..z22'..z21'..z3) & cycle);
+% left and right part
+ z31=z21; z32=z22; z33=(.32,.67); z34=(.13,.69); z35=(.07,.55);
+ z36=(.13,.45); z37=(.2,.34);
+ reflect(31, 32, 33, 34, 35, 36, 37);
+ crown_left=(z3..z31..z33..z34..z35..z36..z37);
+ crown_right=(z37'..z36'..z35'..z34'..z33'..z31'..z3);
+% lower part of the crown
+ z6=(.5,.095); z61=(.27,.12); z62=(.2,.15); z63=(.21,.23);
+ reflect(61, 62, 63);
+ crown_lower= ((z37--z63) & (z63--z62) & (z62..z61..z6..z61'..z62') &
+ (z62'--z63') & (z63'--z37') & (z37'..z3..z37) & cycle);
+% draw contour of crown
+ pickup thin_pen;
+ crown= crown_left & z37..z3..z37' & crown_right & cycle;
+ if background=dark: erase fill crown moved;
+ erase fill crown_top moved;
+ erase fill crown_lower moved;fi;
+ draw crown moved; draw crown_top moved;
+ if color=black:
+ z121=(.5,.5); z123=(.45,.675); z102=(.5,.77);
+ reflect(123);
+ crown_top_inner = (z121{curl 0}..z123..z102..z123'..{curl 0}z121 & cycle);
+ z131=(.45,.5); z133=(.32,.64); z134=(.13,.66); z135=(.10,.55);
+ z136=(.16,.45); z137=(.22,.36); z103=(.475,.4);
+ crown_left_inner= ((z103..z131..z133..z134..z135..z136..z137)
+ & (z137..{right}z103) & cycle);
+ crown_right_inner=crown_left_inner reflectedabout (z1,z2);
+ fill crown_top_inner moved;
+ fill crown_left_inner moved;
+ fill crown_right_inner moved;
+ fill crown_lower moved;
+ else: draw crown_lower moved;
+ fi;
+% draw inner parts
+ z4=(.5,.28); z5=(.5,.21);
+ if color=white:
+ draw (z37..z3..z37') moved;
+ draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ else: pickup thick_pen;
+ erase draw (opr(37)..z3..opl(37')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef Q(expr D, col, row) =
+ clearxy;
+ path crown_top, crown, crown_lower;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of crown
+ z1=(.5,.92); z2=(.5,.5); z11=(.42,.46); z12=(.275,.88);
+ z13=(.25,.44); z14=(.075,.8); z15=(.125,.4);
+ reflect(11,12,13,14,15);
+ crown_top = (z15'--z14'--z13'--z12'--z11'--z1--z11--z12--z13--z14--z15);
+% lower part of the crown
+ z6=(.5,.0775); z61=(.25,.1); z62=(.2,.125); z63=(.24,y62+1/3(y15-y62));
+ z64=(.2,y62+2/3(y15-y62));
+ reflect(61,62,63,64);
+ crown_lower= ((z15--z64) & (z64--z63) & (z63--z62) &
+ (z62..z61..z6..z61'..z62') & (z62'--z63') & (z63'--z64') &
+ (z64'--z15'));
+% draw contour of crown
+ crown= (crown_top & crown_lower & cycle);
+ if background=dark:
+ if color=white: erase fill crown moved; fi; fi;
+ if color=white: draw crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ erase fill (fullcircle scaled .1 shifted z$) moved;
+ draw (fullcircle scaled .1 shifted z$) moved; endfor;
+ else: fill crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ fill (fullcircle scaled .1 shifted z$) moved; endfor; fi;
+% draw inner parts
+ z3=(.5,y5+(y64-y62)); z4=(.5,y5+(y63-y62)); z5=(.5,.18);
+ if color=white: draw (z64..z3..z64') moved; draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ z21=z11; z22=(.325,.475); z23=z13; z24=(.175,.44); z25=z15;
+ reflect(21,22,23,24,25);
+ draw ((z2..z21..z22) & (z22..z23..z24) & (z24--z25)) moved;
+ draw ((z2..z21'..z22') & (z22'..z23'..z24') & (z24'--z25')) moved;
+ else: pickup thick_pen;
+ erase draw (opr(64)..z3..opl(64')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef R(expr D, col, row) =
+ clearxy;
+ path rook;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of rook
+ z1=(.5,.86); y15=y14=y11=y1; x15=x16=.21; x19=x20=.225; y13=y12=.8;
+ y16=.725; y17=.65; y18=.35; y19=.26; y20=y21=.175; y22=.1;
+ x22=x21=.175; x17=x18=.31; x13=x14=.325; x11=x12=.43; z2=(.5,.1);
+ reflect(11,12,13,14,15,16,17,18,19,20,21,22);
+ rook = (z11--z12--z13--z14--z15--z16--z17--z18--z19--z20--z21--z22--z22'
+ --z21'--z20'--z19'--z18'--z17'--z16'--z15'--z14'--z13'--z12'--z11'--cycle);
+% draw contour of rook
+ if background=dark:
+ if color=white: erase fill rook moved; fi; fi;
+ if color=white: draw rook moved; else: fill rook moved; fi;
+% draw inner parts
+ if color=white: draw (z16--z16') moved; draw (z17--z17') moved;
+ draw (z18--z18') moved; draw (z19--z19') moved;
+ draw (z20--z20') moved;
+ else: pickup thick_pen;
+ erase draw (opr(16)--opl(16')) moved;
+ erase draw (opr(17)--opl(17')) moved;
+ erase draw (opr(18)--opl(18')) moved;
+ erase draw (opr(19)--opl(19')) moved;
+ erase draw (opr(20)--opl(20')) moved; fi;
+ enddef;
+
+vardef N(expr D, col, row) =
+ clearxy;
+ path knight, ear, eye, nose, mouth, neck;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the knight's contour
+ z1=(.5,.82); z2=(.5,.075); z11=(.45,.93); z12=(.375,.85); z13=(.25,.925);
+ z14=(.26,.8); z15=(.22,.75); z16=(.18,.7); z17=(.18,.66); z18=(.07,.42);
+ z19=(.07,.36); z20=(.14,.3); z21=(.17,.3); z22=(.175,.275); z23=(.225,.28);
+ z24=(.29,.38); z25=(.41,.46); z26=(.49,.51); z27=(.435,.295); z28=(.32,.165);
+ z29=(.31,y2); z30=(.93,y2); z31=(.87,.5); z32=(.7,.78);
+ knight = ((z1--z11--z12--z13--z14) &
+ (z14..z15..z16..z17..z18..z19..z20..z21) &
+ (z21..z22..z23..z24..z25..z26) &
+ (z26..z27..z28..z29) & (z29--z30) &
+ (z30..z31..z32..z1) &cycle);
+% draw contour of knight
+ if color=white: erase fill knight moved;
+ draw knight moved;
+ else: fill knight moved; fi;
+% draw inner parts
+ z4=(.22,.62); z41=(.25,.67); z42=(.29,.705); z43=(.31,.7); z44=(.3,.68);
+ eye = (z4..z41..z42..z43 & z43..z44..z4 & cycle);
+ z5=(.1,.36); z51=(.1,.39); z52=(.135,.43); z53=(.15,.4); z54=(.13,.38);
+ nose = (z5..z51..z52..z53..z54..z5 &cycle);
+ if color=white: z21'=(.2,.34); draw (z21'--z21) moved; %mouth
+ z26'=(.54,.63); draw (z26'..z26{z24-z26}) moved; %neck
+ draw (z12--z14) moved; % ear
+ fill eye moved; fill nose moved;
+ else: erase fill eye moved; erase fill nose moved; fi;
+ z30'=z30 + (-thick#/d#,thick#/d#); pickup thick_pen
+ erase draw (opd(1)..opd(32)..opl(31)..z30') moved; % mane
+ enddef;
+
+vardef B(expr D, col, row) =
+ clearxy;
+ path top, hat, brim, mitre, stole;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the top circle
+ z1=(.5,.85); z2=(.5,.8);
+ top = (fullcircle scaled .1 shifted z1);
+ if color=white: erase fill top moved; draw top moved;
+ else: fill top moved; fi;
+% the hat
+ z3=(.5,.43); z21=(.27,.57); z31=(.35,.4); reflect(21,31);
+ hat = (z31'..z21'..z2{(-1,1)}) & (z2{(-1,-1)}..z21..z31);
+% the brim
+ z4=(.5,.33); z5=(.5,.23);
+ z41=(.32,.28); reflect(41);
+ brim = ((z31--z41) & (z41..z5..z41') & (z41'--z31'));
+% the stole
+ z6=(.5,.15); z7=(.5,.3); z61=(.44,.12); z62=(.25,.1); z63=(.15,.05);
+ z64=(.09,.11); z65=(.25,.18); z66=(.44,.2);
+ reflect(61,62,63,64,65,66);
+ stole = ((z7..z66..z65..z64) & (z64--z63) & (z63..z62..z61..z6) &
+ (z6..z61'..z62'..z63') & (z63'--z64') & (z64'..z65'..z66'..z7) &cycle);
+% the mitre
+ mitre = (hat & brim & cycle);
+ if background=dark:
+ if color=white: erase fill mitre moved;
+ erase fill stole moved; fi; fi;
+ if color=black: fill mitre moved; fill stole moved;
+ else: draw mitre moved; draw stole moved;
+ erase fill mitre moved; draw mitre moved; fi;
+
+% inner parts of mitre
+ center:=.59; width:=.065;
+ if color=white: draw (z31..z3..z31') moved; draw (z41..z4..z41') moved;
+ draw ((.5,center-width)--(.5,center+width)) moved;
+ draw ((.5-width,center)--(.5+width,center)) moved;
+ else: pickup thick_pen;
+ erase cutdraw (opr(31)..z3..opl(31')) moved;
+ erase cutdraw (opr(41)..z4..opl(41')) moved;
+ erase cutdraw ((.5,center-width)--(.5,center+width)) moved;
+ erase cutdraw ((.5-width,center)--(.5+width,center)) moved;
+ fi;
+ enddef;
+
+vardef p(expr D, col, row) =
+ clearxy;
+ path pawn;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the pawn's contour
+ z1=(.5,.9); z2=(.5,.1); z11=(.41,.85); z12=(.46,.73); z13=(.32,.6);
+ z14=(.41,.46); z15=(.3,.4); z16=(.2,.1);
+ reflect(11,12,13,14,15,16);
+ pawn = ((z12'..z11'..z1..z11..z12) &
+ (z12..z13..z14) &
+ (z14..z15..z16) &
+ (z16--z16') &
+ (z16'..z15'..z14') &
+ (z14'..z13'..z12') & cycle);
+
+% draw contour of pawn
+ if background=dark:
+ if color=white: erase fill pawn moved; fi; fi;
+ if color=black: fill pawn moved;
+ else: draw pawn moved; fi;
+ enddef;
diff --git a/fonts/chess/chess/mf/chessdiag.Xmf b/fonts/chess/chess/mf/chessdiag.Xmf
new file mode 100644
index 0000000000..1023accfcb
--- /dev/null
+++ b/fonts/chess/chess/mf/chessdiag.Xmf
@@ -0,0 +1,74 @@
+% This is `chessdiag.mf' version 1.2 as of 10/91
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% file generates a complete chess diagram in a X-window
+
+% most versions of METAFONT have memorylimits so generating a complete
+% diagram of 160 X 160 points for a 300 DPI printer is not possible
+
+mode_setup;
+input chessbase;
+
+def draw_pieces(text piece_list) =
+ string piece, location;
+ for p=piece_list:
+ l:=length p;
+ exitunless (l=2) or (l=3);
+ if l=2: piece:="p"; i:=0;
+ else: piece:=substring(0,1) of p; i:=1; fi;
+ column:=ASCII substring(i,i+1) of p - ASCII "a";
+ row:=ASCII substring(i+1,i+2) of p - ASCII "1";
+ if not odd(column+row): background:=dark; else: background:=light; fi;
+ scantokens piece(d, column,row);
+ endfor;
+ enddef;
+
+def w(text piece_list) =
+ color:=white;
+ empty_board(d); draw_pieces(piece_list);
+ enddef;
+
+def b(text piece_list) =
+ color:=black;
+ draw_pieces(piece_list);
+ enddef;
+
+M=8; % number of squares
+d#:=100pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+define_whole_pixels(d);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+% put here the wanted diagram (ex.: mate in three problem)
+
+w("Kc2","Nb4","Bf8","b3","g7");
+b("Ka3","b6");
+
+% Next function draws the picture on the screen (Showit is derived from
+% showit in plain.mf). The value of screen_rows is redefined because
+% otherwise the MF-picture will be truncated. To fit the picture in a
+% X-window the next geometry definition in ~/.Xdefaults is assumed:
+%
+% Metafont*geometry: 500x500+200+200
+%
+% This geometry together with the offset (-40, 460) in the line
+% furtheron did the job on my NCD16 X-terminal! Perhaps you need to fiddle
+% with the constants to get it right for your display.
+screen_rows:=500;
+def Openit = openwindow currentwindow
+ from origin to (screen_rows,screen_cols) at (-40,460) enddef;
+ def Showit = Openit; let Showit=Showit_; Showit enddef; % first time only
+ def Showit_ = display currentpicture inwindow currentwindow enddef;
+
+Showit;
+
+message("White mates in three moves. Do you see how?");
+StopMe;
+
+end;
+
diff --git a/fonts/chess/chess/mf/chessdiag.mf b/fonts/chess/chess/mf/chessdiag.mf
new file mode 100644
index 0000000000..2d1cb3eeeb
--- /dev/null
+++ b/fonts/chess/chess/mf/chessdiag.mf
@@ -0,0 +1,56 @@
+% This is `chessdiag.mf' version 1.1 as of 11/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% file generates a complete chess diagram
+
+% most versions of METAFONT have memorylimits so generating a complete
+% diagram of 160 X 160 points for a 300 DPI printer is not possible
+
+mode_setup;
+input chessbase;
+
+def draw_pieces(text piece_list) =
+ string piece, location;
+ for p=piece_list:
+ l:=length p;
+ exitunless (l=2) or (l=3);
+ if l=2: piece:="p"; i:=0;
+ else: piece:=substring(0,1) of p; i:=1; fi;
+ column:=ASCII substring(i,i+1) of p - ASCII "a";
+ row:=ASCII substring(i+1,i+2) of p - ASCII "1";
+ if not odd(column+row): background:=dark; else: background:=light; fi;
+ scantokens piece(d, column,row);
+ endfor;
+ enddef;
+
+def w(text piece_list) =
+ color:=white;
+ empty_board(d); draw_pieces(piece_list);
+ enddef;
+
+def b(text piece_list) =
+ color:=black;
+ draw_pieces(piece_list);
+ enddef;
+
+M=8; % number of squares
+d#:=100pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+define_whole_pixels(d);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+% put here the wanted diagram (ex.: mate in three problem)
+
+w("Kc2","Nb4","Bf8","b3","g7");
+b("Ka3","b6");
+showit;
+
+message("White mates in three moves. Do you see how?");
+StopMe;
+
+end;
diff --git a/fonts/chess/chess/mf/chessf10.mf b/fonts/chess/chess/mf/chessf10.mf
new file mode 100644
index 0000000000..2a4c826954
--- /dev/null
+++ b/fonts/chess/chess/mf/chessf10.mf
@@ -0,0 +1,33 @@
+% This is `chessf10.mf' version 1.2 as of 6/91
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+input chessbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, .8d#, .2d#);
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+thin#:=1/3pt#; thick#:=5/6pt#; define_blacker_pixels(thin, thick);
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+figurine("K");
+figurine("Q");
+figurine("R");
+figurine("B");
+figurine("N");
+figurine("p");
+
+end;
diff --git a/fonts/chess/chess/mf/chesspieces.mf b/fonts/chess/chess/mf/chesspieces.mf
new file mode 100644
index 0000000000..31ccf6d677
--- /dev/null
+++ b/fonts/chess/chess/mf/chesspieces.mf
@@ -0,0 +1,197 @@
+% This is `chesspieces.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% this file generates the final chess font
+
+background:=light; color:=white;
+
+beginchar("0", d#, d#, 0); "0: light square";
+endchar;
+
+background:=dark;
+
+beginchar("Z", d#, d#, 0); "Z: dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("K", d#, d#, 0); "K: white king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("k", d#, d#, 0); "k: black king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("J", d#, d#, 0); "J: white king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("j", d#, d#, 0); "j: black king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("Q", d#, d#, 0); "Q: white queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("q", d#, d#, 0); "q: black queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("L", d#, d#, 0); "L: white queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("l", d#, d#, 0); "l: black queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("R", d#, d#, 0); "R: white rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("r", d#, d#, 0); "r: black rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("S", d#, d#, 0); "S: white rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("s", d#, d#, 0); "s: black rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("B", d#, d#, 0); "B: white bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("b", d#, d#, 0); "b: black bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("A", d#, d#, 0); "A: white bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("a", d#, d#, 0); "a: black bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("N", d#, d#, 0); "N: white knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("n", d#, d#, 0); "n: black knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("M", d#, d#, 0); "M: white knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("m", d#, d#, 0); "m: black knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("P", d#, d#, 0); "P: white pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("p", d#, d#, 0); "p: black pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("O", d#, d#, 0); "O: white pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("o", d#, d#, 0); "o: black pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
diff --git a/fonts/chess/chess/mf/empty.mf b/fonts/chess/chess/mf/empty.mf
new file mode 100644
index 0000000000..747b495eb2
--- /dev/null
+++ b/fonts/chess/chess/mf/empty.mf
@@ -0,0 +1,11 @@
+% font with empty `a' to test if mode_def exists
+
+font_identifier:="NOTHING"; font_size 10pt#;
+
+mode_setup; % font_setup;
+
+beginchar("a",10pt#,10pt#,0);
+show pixels_per_inch;
+endchar;
+
+bye
diff --git a/fonts/chess/chess/readme b/fonts/chess/chess/readme
new file mode 100644
index 0000000000..8742deaa43
--- /dev/null
+++ b/fonts/chess/chess/readme
@@ -0,0 +1,99 @@
+
+
+ Chess fonts and a chess style
+ -----------------------------
+ (Version 1.2 / Febr. 1992)
+
+This is version 1.2 of my chessmacros for typesetting chess with LaTeX
+and/or TeX. This new version contains an improved chess style file
+(chess.sty) complete with documentation and example files. The
+documentation is the article as it will appear in TUGboat. You will
+also find examples of complete chess games and a list of all available
+Informator symbols in the directory `doc':
+ - TUGboat.ltx TUGboat article (tugboat macros not included
+ - TUGgame.ltx in this package)
+ - tal.ltx Tal-Fisher in LaTeX
+ - tal.tex Tal-Fisher in TeX
+ - Kasparov.ltx Kasparov-Karpov in Informator style
+ - Symbols.ltx Informator symbols in LaTeX
+ - Symbols.tex Informator symbols in TeX
+ - SchaakMaatje.ltx example of chess magazine (Dutch!)
+
+File CHANGES12 contains a summary of the differences between this
+version and version 1.1. The main differences are:
+ a) improved plain TeX interface
+ b) language support using the babel package from Johannes Braams
+ c) nochess-environment replaces chess-environment
+ d) font chessfig10 renamed into chessf10 (MSDOS)
+ e) handling of promotion improved
+ f) `en passant capture' bug solved
+ g) added Informator symbols
+Note that b), c) and d) makes this version incompatible with the older
+versions. Read the file INSTALLATION how to upgrade from 1.1 to 1.2.
+
+For UNIX people I have added a Makefile:
+ - make (generates the fonts and the documentation)
+ --> change `localfont' into whatever your mode is (ex.: imagen)
+ if localfont is not properly set at your system. The command:
+ mf "\mode=localfont; input chess20"
+ should generate a font suitable for your local printer.
+ --> if you don't use a PostScript printer or don't use dvips
+ you have to adapt the Makefile to your local situation
+
+ - make install (installs the fonts and the style: check the path's!).
+
+Have a lot of chess writing and playing fun!
+
+Piet Tutelaers
+rcpt@urc.tue.nl
+
+Here is an overview of the files in chess12.tar.Z (and chess12.zoo):
+--------------------------------------------------------------------
+chess12/CopyRight my name and copyright notice
+chess12/README this file
+chess12/CHANGES12 Changes from version 1.1 to 1.2
+chess12/INSTALLATION installation instructions
+chess12/Makefile Makefile for UNIX
+chess12/doc/board.epsf Original font (in EPSF format)
+chess12/doc/boards.ltx LaTeX source demonstrating the 3 chess fonts
+chess12/doc/dutch-tt.ltx dutch torture test for chess.sty in LaTeX
+chess12/doc/dutch-tt.tex dutch torture test for chess.sty in plain TeX
+chess12/doc/Kasparov.ltx Kasparov-Karpov in Informator style
+chess12/doc/SchaakMaatje.ltx our chess club magazine (Dutch!)
+chess12/doc/Symbols.ltx Informator symbols (LaTeX)
+chess12/doc/Symbols.tex Informator symbols (TeX)
+chess12/doc/tal.ltx Fisher vs. Tal (LaTeX source)
+chess12/doc/tal.tex Fisher vs. Tal (TeX source)
+chess12/doc/TUGboat.ltx TUGboat article (LaTeX main-source)
+chess12/doc/TUGgame.ltx TUGboat article (LaTeX inputted-source)
+chess12/fonts/chess10.tfm TeX font metric files
+chess12/fonts/chess20.tfm ...
+chess12/fonts/chess30.tfm ...
+chess12/fonts/chessf10.tfm ...
+chess12/inputs/babel.sty Part of the Babel-3.0b package
+chess12/inputs/babel32.switch ...
+chess12/inputs/babel22.switch ...
+chess12/inputs/babel.switch ...
+chess12/inputs/dutch.sty ...
+chess12/inputs/english.sty ...
+chess12/inputs/french.sty ...
+chess12/inputs/german.sty ...
+chess12/inputs/2side.tex used by tal.tex to produce twocolumn output
+chess12/inputs/a4.sty style for A4 paper
+chess12/inputs/a4wide.sty style for a A4 paper with narrow margins
+chess12/inputs/chess.sty Chess style
+chess12/inputs/epsf.sty Style file for `Encapsulated PostScript'
+chess12/inputs/fancyheadings.sty used in SchaakMaatje.ltx
+chess12/mf/README Explains chessdiag.Xmf
+chess12/mf/chess10.mf METAFONT sources
+chess12/mf/chess20.mf ...
+chess12/mf/chess30.mf ...
+chess12/mf/chessbase.mf ...
+chess12/mf/chessdiag.mf ...
+chess12/mf/chessdiag.Xmf ... (X-window version)
+chess12/mf/chessf10.mf ...
+chess12/mf/chesspieces.mf ...
+chess12/pkfonts/chess10.300pk ready to go Canon engine fonts
+chess12/pkfonts/chess20.300pk ...
+chess12/pkfonts/chess30.300pk ...
+chess12/pkfonts/chessf10.300pk ...