[Pkg-wmaker-commits] [wmbatppc] 01/35: Imported Upstream version 1.0
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Sat Aug 22 02:23:47 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch master
in repository wmbatppc.
commit 5db89b5d1b6664288c34e016928dc3a8f20a33cf
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date: Wed Dec 31 07:25:51 2014 -0600
Imported Upstream version 1.0
---
COPYING | 356 ++++++++++++++++++++++++++++++
Makefile | 35 +++
README | 65 ++++++
wmbatppc-master.xpm | 400 +++++++++++++++++++++++++++++++++
wmbatppc.1 | 31 +++
wmbatppc.c | 625 ++++++++++++++++++++++++++++++++++++++++++++++++++++
wmbatppc.h | 124 +++++++++++
wmgeneral.c | 481 ++++++++++++++++++++++++++++++++++++++++
wmgeneral.h | 59 +++++
xgbatppc-master.xpm | 440 ++++++++++++++++++++++++++++++++++++
10 files changed, 2616 insertions(+)
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..5804af6
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,356 @@
+This piece of code is under DMDZZ license (see news:fr.misc.bavardages.linux
+for details). That means you can do whatever you want with it.
+(print and eat it, cheat, destroy, scramble with bananas, offer it to
+your mother for christmas, re-code it with beautiful other 'schligouigouis' in
+the interface, and so on. You do not need to ask me for permission.
+If you find it useful or want imrovements, contact me at <titelou at free.fr>.
+I need a bit of chocolate to produce code, if you feel like feeding a
+coding geekette, my "in hard life" address is :
+ Carine Bournez
+ Bat. i Appt 234
+ 69621 Villeurbanne Cedex
+ FRANCE
+
+Anyway, wmbatppc uses 'wmgeneral', which is probably under GPL, so
+here is the GPL :
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c84eeac
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,35 @@
+#
+
+LIBDIR = -L/usr/X11R6/lib
+LIBS = -lXpm -lXext -lX11 -lm
+FLAGS = -O6
+OBJS = \
+ wmgeneral.o \
+
+default:all
+
+.c.o:
+ cc -I/usr/X11R6/share/include $(FLAGS) -c -Wall $< -o $*.o
+
+wmbatppc.o: wmbatppc.c wmbatppc-master.xpm
+ cc -I/usr/X11R6/share/include $(FLAGS) -c -Wall wmbatppc.c -o $*.o
+
+wmbatppc: $(OBJS) wmbatppc.o
+ cc $(FLAGS) -o wmbatppc $(OBJS) -lXext $(LIBDIR) $(LIBS) wmbatppc.o
+
+all:: wmbatppc
+
+clean::
+ rm -f *.o
+ rm -f wmbatppc
+ rm -f *~
+
+install:: wmbatppc
+ strip wmbatppc
+ cp -f wmbatppc /usr/local/bin/
+ chmod 755 /usr/local/bin/wmbatppc
+ chown root:root /usr/local/bin/wmbatppc
+ cp -f wmbatppc.1 /usr/local/man/man1
+ chmod 644 /usr/local/man/man1/wmbatppc.1
+ chown root:root /usr/local/man/man1/wmbatppc.1
+ @echo "wmbatppc Installation finished..."
diff --git a/README b/README
new file mode 100644
index 0000000..33b822c
--- /dev/null
+++ b/README
@@ -0,0 +1,65 @@
+wmbatppc
+Homepage: http://titelou.free.fr/wmbatppc
+
+Installation:
+=============
+
+Unzip the source tarball:
+
+ tar xvfz wmbatppc-1.0.tgz
+
+move on to the fresh source directory:
+
+ cd wmbatppc
+
+then
+ make
+
+and install the program and manpage by
+
+ make install
+
+
+Running wmbatppc:
+=================
+
+To launch wmbatppc, the command is just
+
+ wmbatppc
+ or
+ wmbatppc -w for WindowMaker/AfterStep/64*64 pix GUI
+
+ or
+ wmbatppc -x for (ximian) gnome app to swallow into the panel.
+
+Use the command line option '-r <time in milliseconds>' to control the
+frequency of sampling of the processes. Use -display and -geometry
+options in the usual way.
+
+
+Troubleshooting:
+================
+
+wmbatppc was tested with YellowDog Linux cs1.2 on a PowerBook 2000
+(Pismo) and one battery (both bays).
+
+If wmbatppc doesn't run, make sure that
+
+1) your machine has the appropriate keylargo :-)
+
+2) you have pmud daemon installed and running correctly on port 879.
+
+3) in some case, you may have to restart pmud just after make install,
+before launching wmbatppc. This occurs especially when upgrading wmbatppc.
+
+Please report any bugs you might find to
+
+ titelou at free.fr
+
+
+Acknowledgments:
+================
+
+Thanks to the authors of wmwave and gkrell-pmu for their code,
+to Steffen Reith for his packaging effort ;-)
+Thanks to jb for his debian packaging.
diff --git a/wmbatppc-master.xpm b/wmbatppc-master.xpm
new file mode 100644
index 0000000..aca023c
--- /dev/null
+++ b/wmbatppc-master.xpm
@@ -0,0 +1,400 @@
+/* XPM */
+static char * wmbatppc_master_xpm[] = {
+"240 200 197 2",
+" c #00000000FFFF",
+". c #202020202020",
+"X c #000000000000",
+"o c #FFFFFFFFFFFF",
+"O c #0000FFFF0000",
+"+ c #0101F1F10101",
+"@ c #0404DFDF0404",
+"# c #0707CDCD0707",
+"$ c #0909BCBC0909",
+"% c #0C0CAAAA0C0C",
+"& c #0E0E98980E0E",
+"* c #10108B8B1010",
+"= c #131379791313",
+"- c #15156B6B1515",
+"; c #161662621616",
+": c #171759591717",
+"> c #000049494141",
+", c #0202EDED0202",
+"< c #0505DBDB0505",
+"1 c #0707C9C90707",
+"2 c #0A0AB7B70A0A",
+"3 c #0C0CA5A50C0C",
+"4 c #0F0F93930F0F",
+"5 c #111182821111",
+"6 c #141470701414",
+"7 c #181851511818",
+"8 c #1A1A48481A1A",
+"9 c #0505D6D60505",
+"0 c #0808C5C50808",
+"q c #0A0AB3B30A0A",
+"w c #0D0DA1A10D0D",
+"e c #10108F8F1010",
+"r c #12127D7D1212",
+"t c #1C1C36361C1C",
+"y c #0303E8E80303",
+"u c #151567671515",
+"i c #181855551818",
+"p c #1A1A43431A1A",
+"a c #1D1D31311D1D",
+"s c #222222222222",
+"d c #FFFF00000000",
+"f c #FFFFFFFF0000",
+"g c #2020B2B2AEAE",
+"h c #96969A9A9696",
+"j c #5555FFFF5D5D",
+"k c #10107D7D7979",
+"l c #18188A8A8686",
+"z c #B6B603031717",
+"x c #B9B912121616",
+"c c #BEBE28281313",
+"v c #C3C33D3D1111",
+"b c #C8C853530F0F",
+"n c #CDCD68680C0C",
+"m c #D2D27D7D0A0A",
+"M c #D7D793930808",
+"N c #DCDCA8A80505",
+"B c #E1E1BEBE0303",
+"V c #E7E7DCDC0000",
+"C c #D2D2DDDD0000",
+"Z c #BDBDDEDE0000",
+"A c #A8A8E0E00000",
+"S c #9393E1E10000",
+"D c #7E7EE2E20000",
+"F c #6969E4E40000",
+"G c #7E7EE1E10000",
+"H c #7D7DE2E20000",
+"J c #7C7CE2E20000",
+"K c #7B7BE2E20000",
+"L c #7A7AE2E20000",
+"P c #7979E2E20000",
+"I c #7878E2E20000",
+"U c #7777E2E20000",
+"Y c #7676E2E20000",
+"T c #7575E2E20000",
+"R c #7474E2E20000",
+"E c #7373E2E20000",
+"W c #7272E3E30000",
+"Q c #7171E3E30000",
+"! c #7070E3E30000",
+"~ c #6F6FE3E30000",
+"^ c #6E6EE3E30000",
+"/ c #6D6DE3E30000",
+"( c #6C6CE3E30000",
+") c #6B6BE3E30000",
+"_ c #6A6AE3E30000",
+"` c #6969E3E30000",
+"' c #6868E4E40000",
+"] c #0000EAEA0000",
+"[ c #B9B915151616",
+"{ c #BEBE2A2A1313",
+"} c #C3C33F3F1111",
+"| c #C8C855550E0E",
+" . c #CDCD6A6A0C0C",
+".. c #D2D280800A0A",
+"X. c #D7D795950707",
+"o. c #DCDCAAAA0505",
+"O. c #E1E1C0C00303",
+"+. c #28283C3C3838",
+"@. c #66666666CCCC",
+"#. c #BABA17171515",
+"$. c #BFBF2C2C1313",
+"%. c #C4C442421111",
+"&. c #C9C957570E0E",
+"*. c #CECE6C6C0C0C",
+"=. c #D3D382820909",
+"-. c #D8D897970707",
+";. c #DDDDACAC0505",
+":. c #E2E2C2C20202",
+">. c #78787878F3F3",
+",. c #BABA19191515",
+"<. c #BFBF2E2E1313",
+"1. c #C4C444441010",
+"2. c #C9C959590E0E",
+"3. c #CECE6E6E0C0C",
+"4. c #D3D384840909",
+"5. c #D8D899990707",
+"6. c #DDDDAFAF0404",
+"7. c #E2E2C4C40202",
+"8. c #FFFF66663333",
+"9. c #99999999FFFF",
+"0. c #B6B606061717",
+"q. c #BBBB1B1B1515",
+"w. c #C0C030301313",
+"e. c #C5C546461010",
+"r. c #CACA5B5B0E0E",
+"t. c #CFCF71710B0B",
+"y. c #D4D486860909",
+"u. c #D9D99B9B0707",
+"i. c #DEDEB1B10404",
+"p. c #E3E3C6C60202",
+"a. c #BBBBBBBBBBBB",
+"s. c #82828282B3B3",
+"d. c #B6B608081717",
+"f. c #BBBB1D1D1515",
+"g. c #C0C033331212",
+"h. c #C5C548481010",
+"j. c #CACA5D5D0E0E",
+"k. c #CFCF73730B0B",
+"l. c #D4D488880909",
+"z. c #D9D99D9D0606",
+"x. c #DEDEB3B30404",
+"c. c #E3E3C8C80202",
+"v. c #FFFF5F5F3333",
+"b. c #7F7F7F7FFFFF",
+"n. c #00007D7D7171",
+"m. c #B6B604041818",
+"M. c #E8E8DCDC0000",
+"N. c #0000EBEB0000",
+"B. c #F7F7F3F3FFFF",
+"V. c #494949494949",
+"C. c #7A7A7A7A7A7A",
+"Z. c #BCBCBCBCBCBC",
+"A. c #00007F7F7171",
+"S. c #000099998888",
+"D. c #FFFF51514C4C",
+"F. c #FFFFFCFC5858",
+"G. c #0000B3B39F9F",
+"H. c #FFFF83837474",
+"J. c #FFFFF8F87E7E",
+"K. c #7474B3B39A9A",
+"L. c #FFFFBEBEA5A5",
+"P. c #FFFF74746B6B",
+"I. c #FDFDFFFFA8A8",
+"U. c #FFFFF9F93E3E",
+"Y. c #FFFFFFFF3D3D",
+"T. c #FFFF8A8A0A0A",
+"R. c #FFFF76761111",
+"E. c #1616FFFF8F8F",
+"W. c #FFFF93932D2D",
+"Q. c #FFFF80802A2A",
+"!. c #4141FFFF9E9E",
+"~. c #FFFFACAC5A5A",
+"^. c #FFFFA6A67E7E",
+"/. c #9292FFFF9F9F",
+"(. c #FFFFC3C38B8B",
+"). c #FFFFA7A74545",
+"_. c #FFFFD1D19898",
+"`. c #FFFF8E8E5757",
+"'. c #B2B2FFFFABAB",
+"]. c #7F7FFFFF8E8E",
+"[. c #6363FFFF9B9B",
+"{. c #4E4EFFFF8585",
+"}. c #A2A2FFFF1313",
+"|. c #5353FFFF4848",
+" X c #7C7CFFFF8F8F",
+".X c #B5B5FFFF3030",
+"XX c #6464FFFF5656",
+"oX c #9F9FFFFFA2A2",
+"OX c #BABAFFFF6B6B",
+"+X c #8484FFFF6C6C",
+"@X c #A9A9FFFFA4A4",
+"#X c #8D8DFFFF8B8B",
+"$X c #BBBBFFFF8989",
+"%X c #9C9CFFFF5656",
+"&X c #ABABFFFF7E7E",
+"*X c #7A7AFFFF4343",
+"=X c #9393FFFF8181",
+" . ",
+" . ",
+" X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X X X X X X X X X X X X . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + @ # $ % & * = - ; : . . . . . . . . . . . . ",
+" X . . . . . . . . . . o . . > > > . . . > > > . . . . . > > > . . . > > > . . . > > > . . o X . . . . . . . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O , < 1 2 3 4 5 6 ; 7 8 . . . . . . . . . . . . ",
+" X . . . . . . . . . . o . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o X . . > > . . . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O , 9 0 q w e r - : 8 t . . . . . . . . . . . . ",
+" X . . > > > . . . . . o . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o X . . > > > . . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O y 9 0 q w e = u i p a . . . . . . . . . . . . ",
+" X . > > . > s . . . . o . . > > > . . . > > > . . . . . > > > . . . > > > . . . > > > . . o X . . . > > > . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O , 9 0 q w e r - : 8 t a . . . . . . . . . . . . . . O O O O O O O O O O O O O O O O O O O O O . . . . d d d d d d d d d d d d d d d d d d d d d . . . . f f f f f f f f f f f f f f f f f f f f f . ",
+" X . . . . > > . . . . o . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o X . . . . > > > . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O , < 1 2 3 4 5 6 ; 7 8 p . . . . . . . . . . . . . O > . . . . . . . . . . . . . . . . . . . > O . . d > . . . . . . . . . . . . . . . . . . . > d . . f > . . . . . . . . . . . . . . . . . . . > f ",
+" X . . . . . > . . . . o . > . . . > . > . . . > . > . > . . . > . > . . . > . > . . . > . o X . . . . . > > > . . o . . . O . . . . . . . . . . . . . . . . . . . . . O . . d . . . . . . . . . . . . . . . . . . . . . d . . f . . . . . . . . . . . . . . . . . . . . . f ",
+" X . . . > > > > > . . o . . > > > . . . > > > . . > . . > > > . . . > > > . . . > > > . . o X . . . > > > > > > . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O . . . . > > > . . . > > > . . . g . . . . O . . d . . . . > > > . . . > > > . . . g . . . . d . . f . . . . > > > . . . > > > . . . g . . . . f ",
+" X . . > . . . . . > . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X . . . . > > . . . . o . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . O O O . > . > . . . > . > . . . > . g . g . g . O d d d . > . > . . . > . > . . . > . g . g . g . d f f f . > . > . . . > . > . . . > . g . g . g . f ",
+" X . . > . . . . . > . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X . . . . . > > . . . o . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . O O O . > . > . . . > . > . . . > . . g . g . . O d d d . > . > . . . > . > . . . > . . g . g . . d f f f . > . > . . . > . > . . . > . . g . g . . f ",
+" X . . > . . . . . > . o X . . . . . . > . . . o . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . O O O . . . . > > > . . . > > > . . . . g . . . O d d d . . . . > > > . . . > > > . . . . g . . . d f f f . . . . > > > . . . > > > . . . . g . . . f ",
+" X . . > > > > > > > . o X X X X X X X X X X X . . . . . . . > . . o . . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . O O O . > . > . . . > . > . . . > . . g . g . . O d d d . > . > . . . > . > . . . > . . g . g . . d f f f . > . > . . . > . > . . . > . . g . g . . f ",
+" X . . . > . . . > . . o X X X X > > > > > > > > > > X X X X X . . . . . . . . > . o . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . O O O . > . > . . . > . > . . . > . g . g . g . O d d d . > . > . . . > . > . . . > . g . g . g . d f f f . > . > . . . > . > . . . > . g . g . g . f ",
+" X . . . > . . . > . . o X X X > > > > > > > > > > > > > > > > > > X X X X . . . . . . . . . . o . . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . . O . . . . > > > . . . > > > . . . . . g . . O . . d . . . . > > > . . . > > > . . . . . g . . d . . f . . . . > > > . . . > > > . . . . . g . . f ",
+" X . . . . . . . . . . o X X > > > > > > > > > > > > > > > > > > > > > > > > X X X . . . . . . . . . . o . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . . O . . . . . . . . . . . . . . . . . . . . . O . . d . . . . . . . . . . . . . . . . . . . . . d . . f . . . . . . . . . . . . . . . . . . . . . f ",
+" X o o o o o o o o o o o X > > > > > > > > > > > > > > > > > > > > > > > > > > > > h X o o o o o o o o o o o . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . > . . > . . . . > . > . . . . > . . . O > . . . . . . . . . . . . . . . . . . . > O . . d > . . . . . . . . . . . . . . . . . . . > d . . f > . . . . . . . . . . . . . . . . . . . > f ",
+" X X > > > > > > > > > > o o o o o o o o o o > > > > > > > > > > h o . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . . . O O O O O O O O O O O O O O O O O O O O O . . . . d d d d d d d d d d d d d d d d d d d d d . . . . f f f f f f f f f f f f f f f f f f f f f . ",
+" X > > > > > > > > > o o o o o o > > > > > > > > > o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" X > > > > > > > > o o o o > > > > > > > > o . ",
+" X > > > > > > > o o o o > > > > > > > o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O O O O O O O O O O O O O O O O O O O O O . . . . d d d d d d d d d d d d d d d d d d d d d . . . . f f f f f f f f f f f f f f f f f f f f f . . . ",
+" X > > > > > > o o h > > > > > > > o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O > . . . . . . . . . . . . . . . . . . . > j . . d > . . . . . . . . . . . . . . . . . . . > d . . f > . . . . . . . . . . . . . . . . . . . > f . . ",
+" X > > > > > > o h X > > > > > > o . . . . g g g g . . . > > > > k . k g g g g l . k g g g g k . k > > > > k . k g g g g k . k g g g g l . k g g g g k . k g g g g l . k g g g g l . . . . . . O . . . . . . . . . . . . . . . . . . . . . O . . d . . . . . . . . . . . . . . . . . . . . . d . . f . . . . . . . . . . . . . . . . . . . . . f . . ",
+" X > > > > > > o X > > > > > > o . . . g . . . . g . > . . . . g . > . . . . g . > . . . . g . g . . . . g . g . . . . > . g . . . . > . > . . . . g . g . . . . g . g . . . . g . . g . . . O . . . . > > > . . . > > > . . . g . . . . O . . d . . . . > > > . . . > > > . . . g . . . . d . . f . . . . > > > . . . > > > . . . g . . . . f . . ",
+" X > > > > > o X > > > > > o . . . g . . . . g . > . . . . g . > . . . . g . > . . . . g . g . . . . g . g . . . . > . g . . . . > . > . . . . g . g . . . . g . g . . . . g . . g . . . O . > . > . . . > . > . . . > . g . g . g . O O O d . > . > . . . > . > . . . > . g . g . g . d d d f . > . > . . . > . > . . . > . g . g . g . f f f ",
+" X > > > > > o X > > > > > o . . . g . . . . g . > . . . . g . > . . . . g . > . . . . g . g . . . . g . g . . . . > . g . . . . > . > . . . . g . g . . . . g . g . . . . g . . . . . . O . > . > . . . > . > . . . > . . g . g . . O O O d . > . > . . . > . > . . . > . . g . g . . d d d f . > . > . . . > . > . . . > . . g . g . . f f f ",
+" X > > > > > o X > > > > > o . . . k > > > > k . . > > > > k . k g g g g k . k g g g g k . k g g g g k . k g g g g k . k g g g g k . . > > > > k . k g g g g k . k g g g g k . . . . . . O . . . . > > > . . . > > > . . . . g . . . O O O d . . . . > > > . . . > > > . . . . g . . . d d d f . . . . > > > . . . > > > . . . . g . . . f f f ",
+" X > > > > > o X > > > > > o . . . g . . . . g . > . . . . g . g . . . . > . > . . . . g . > . . . . g . > . . . . g . g . . . . g . > . . . . g . g . . . . g . > . . . . g . . . . . . O . > . > . . . > . > . . . > . . g . g . . O O O d . > . > . . . > . > . . . > . . g . g . . d d d f . > . > . . . > . > . . . > . . g . g . . f f f ",
+" X > > > > > o X > > > > > o . . . g . . . . g . > . . . . g . g . . . . > . > . . . . g . > . . . . g . > . . . . g . g . . . . g . > . . . . g . g . . . . g . > . . . . g . . g . . . O . > . > . . . > . > . . . > . g . g . g . O O O d . > . > . . . > . > . . . > . g . g . g . d d d f . > . > . . . > . > . . . > . g . g . g . f f f ",
+" X > > > > o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X > > > > o . . . g . . . . g . > . . . . g . g . . . . > . > . . . . g . > . . . . g . > . . . . g . g . . . . g . > . . . . g . g . . . . g . > . . . . g . . g . . . O . . . . > > > . . . > > > . . . . . g . . O . . d . . . . > > > . . . > > > . . . . . g . . d . . f . . . . > > > . . . > > > . . . . . g . . f . . ",
+" X > > > > o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X > > > > o . . . . g g g g . . . > > > > k . k g g g g k . k g g g g k . . > > > > k . k g g g g k . k g g g g k . . > > > > k . k g g g g k . k g g g g k . . . . . . O . . . . . . . . . . . . . . . . . . . . . O . . d . . . . . . . . . . . . . . . . . . . . . d . . f . . . . . . . . . . . . . . . . . . . . . f . . ",
+" X > > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > > o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O > . . . . . . . . . . . . . . . . . . . > O . . d > . . . . . . . . . . . . . . . . . . . > d . . f > . . . . . . . . . . . . . . . . . . . > f . . ",
+" X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X O O O O O O O O O O O O O O O O O O O O O . . . . d d d d d d d d d d d d d d d d d d d d d . . . . f f f f f f f f f f f f f f f f f f f f f . . . ",
+" X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > > o . ",
+" X > > > > > o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X > > > > > o . ",
+" X > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > o . z x c v b n m M N B V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
+" X > > > > o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X > > > > o . z [ { } | ...X.o.O.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X +.s s s s +.+.+.+.+.o X +.+.+.+.+.+.+.+.+.+.o X X X X @. at .@. at .@. at .@. at .@. at .X X X X ",
+" X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o . z #.$.%.&.*.=.-.;.:.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X s X X X s s +.+.+.+.o X +.+.+.+.s +.+.+.+.+.o X X X @. at .@. at .>.>.>.>.>.>.>.>.>.>. at .@. at .@.X X X ",
+" X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o . z ,.<.1.2.3.4.5.6.7.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X s X 8.8.X s +.+.+.+.o X +.+.X X X +.+.+.+.+.o X X @. at .@.>.>.>.>.9.9.9.9.9.9.9.9.9.9.>.>.>.>. at .@. at .X X ",
+" X > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > o . 0.q.w.e.r.t.y.u.i.p.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X s X 8.8.8.X s +.+.+.o X +.X X +.X s +.+.+.+.o X @. at .>.>.>.>.9.9.9.a.a.a.a.a.a.a.a.a.a.9.9.9.s.>.>.>.>. at .h ",
+" X > > > > o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X > > > > o . d.f.g.h.j.k.l.z.x.c.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] X +.X X 8.8.8.X s +.+.o X +.+.+.+.X X +.+.+.+.o X X @.>.s.s.9.9.9.a.a.a.o o o o o o o o o o a.a.a.9.9.>.>.>.>.9.h o ",
+" X > > > > o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X > > > > o . X +.+.s X 8.8.8.X +.+.o X +.+.+.+.+.X s +.+.+.o X @. at .>.s.s.9.9.a.a.o o o o o o a.a.9.9.s.s.s.9.a.o ",
+" . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.s X X X 8.8.8.X +.o X +.+.+.X X X X X +.+.o X @.>.s.s.9.9.a.a.o o o o a.a.9.>.>.s.9.a.o ",
+" . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.X 8.8.8.8.8.8.8.X o X +.+.X @.>.9.a.9.X +.o X @.>.s.s.9.a.a.o o o o 9.s.>.>.s.9.a.o ",
+" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.+.X 8.8.8.X X . +.o X +.+.X @.>.9.a.9.X s o X @.>.s.s.9.a.o o h 9.9.s.>.s.9.a.o ",
+" X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.+.+.X X 8.8.X . +.o X +.+.X @.>.9.a.9.X s o X @.>.s.s.9.a.o h >.>.>.s.s.9.a.o ",
+" X . . . . > > > > > > > > > > > > > > > > > > > > > . . . . > > > > > > > > > > > > > > > > > > > > > . . . . o . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.+.+.+.+.X 8.s . +.o X +.+.X X X X X X X s o X @.>.s.s.9.a.o X X @.>.>.s.9.a.o ",
+" X . . . > . . . . . . . . . . . . . . . . . . . . . > . . > . . . . . . . . . . . . . . . . . . . . . > . . . o . f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f X +.+.+.+.+.+.X 8.s s o X +.+.+.X s s s X s s o X @.>.9.9.a.o X @.>.s.9.a.o ",
+" X . . . > . . . . . . . . . . . . . . . . . . . . . > . . > . . . . . . . . . . . . . . . . . . . . . > . . . o . X +.+.+.+.+.+.+.X 8.s o X +.+.+.X s +.+.X s +.o X @.>.9.9.a.o X @.>.s.9.a.o ",
+" X . . . > . . . . > > > . . . > > > . . . > . . . . > . . > . . . . > > > . . . > > > . . . > . . . . > . . . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X +.+.+.+.+.+.+.+.+.. o X +.+.+.+.s +.+.+.s +.o X @.>.9.9.9.o X @.>.>.9.a.o ",
+" X . > > > . > . > . . . > . > . . . > . > . > . > . > . . > . > . > . . . > . > . . . > . > . > . > . > > > . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X o o o o o o o o o o o X o o o o o o o o o o o X @.>.9.9.a.o X @.>.s.9.a.o ",
+" X . > > > . > . > . . . > . > . . . > . . > . > . . > . . > . > . > . . . > . > . . . > . . > . > . . > > > . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X @. at .>.9.a.a. X @.>.9.9.a.o ",
+" X . > > > . . . . > > > . . . > > > . . . . > . . . > . . > . . . . > > > . . . > > > . . . . > . . . > > > . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X X X X X X X X X X X X X X X X X X X X X X X X X @.s.9.a.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X @.>.9.a.o ",
+" X . > > > . > . > . . . > . > . . . > . . > . > . . > . . > . > . > . . . > . > . . . > . . > . > . . > > > . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X . . . . . . . . . . o X . . . . . . . . . . o X @.s.9.a.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X @.>.9.a.o ",
+" X . > > > . > . > . . . > . > . . . > . > . > . > . > . . > . > . > . . . > . > . . . > . > . > . > . > > > . o . v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. X . . > > . . . . . . o X . . . . . . . . . . o X @.s.9.9.a.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X @.>.s.9.a.o ",
+" X . . . > . . . . > > > . . . > > > . . . . . > . . > . . > . . . . > > > . . . > > > . . . . . > . . > . . . o . X . . > > > . . . . . o X . . > > > . . . . . o X @.s.9.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X @.>.9.a.o ",
+" X . . . > . . . . . . . . . . . . . . . . . . . . . > . . > . . . . . . . . . . . . . . . . . . . . . > . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . > > > . . . . o X . > > . > s . . . . o X @.s.9.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X @.>.s.9.a.o ",
+" X . . . > . . . . . . . . . . . . . . . . . . . . . > . . > . . . . . . . . . . . . . . . . . . . . . > . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . . > > > . . . o X . . . . > > . . . . o X @.s.9.a.a.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X @.>.s.9.a.o ",
+" X . . . . > > > > > > > > > > > > > > > > > > > > > . . . . > > > > > > > > > > > > > > > > > > > > > . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . . . > > > . . o X . . . . . > . . . . o X @.s.9.a.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X @.>.9.a.o ",
+" X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . > > > > > > . o X . . . > > > > > . . o X @.s.9.a.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X @.>.9.a.o ",
+" X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . . > > . . . . o X . . > . . . . . > . o X @.s.9.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X @.>.9.a.o ",
+" . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X . . . . . > > . . . o X . . > . . . . . > . o X @.b.9.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X @.>.9.a.o ",
+" . X . . . . . . > . . . o X . . > . . . . . > . o X @.s.9.a.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X @.>.9.a.o ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X . . . . . . . > . . o X . . > > > > > > > . o X @.s.9.a.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X @.>.9.a.o ",
+". . g g g . . . > > > n.. n.g g g n.. n.g g g n.. n.> > > n.. n.g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . > . o X . . . > . . . > . . o X @.s.9.a.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X @.>.9.a.o ",
+". g . . . g . > . . . g . > . . . g . > . . . g . g . . . g . g . . . > . g . . . > . > . . . g . g . . . g . g . . . g . . . . . . . . . . . . g . . . . . . X X m.m.X X X X M.M.X X X X N.N.X X X X +.+.X X X . . . . . . . . . . o X . . . > . . . > . . o ",
+". g . . . g . > . . . g . > . . . g . > . . . g . g . . . g . g . . . > . g . . . > . > . . . g . g . . . g . g . . . g . . g . . . . g . . . . g . . . . . . X m.B.m.m.X X M.B.M.M.X X N.B.N.N.X X +.+.+.+.X X . . . . . . . . . . o X . . . . . . . . . . o ",
+". n.> > > n.. . > > > n.. n.g g g n.. . g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. . > > > n.. > g g g > . n.g g g n.. . n.. . . . n.. . . g . . . . . . . X m.m.m.m.X X M.M.M.M.X X N.N.N.N.X X +.+.+.+.X X o o o o o o o o o o o X o o o o o o o o o o o X X X X X X X X X X ",
+". g . . . g . > . . . g . g . . . > . > . . . g . > . . . g . > . . . g . g . . . g . > . . . g . g . . . g . > . . . g . . . . . . . . . . . g . . . . . . . X X m.m.X X X X M.M.X X X X N.N.X X X X +.+.X X X X X X > > > > > > > > > > X X X X ",
+". g . . . g . > . . . g . g . . . > . > . . . g . > . . . g . > . . . g . g . . . g . > . . . g . g . . . g . > . . . g . . g . . . . g . . g . . . . g . . . X X X X X X X X X X X X X X X X X X X X X X X X X X X > > > > > > > > > > > > > > > > > > X X X ",
+". . g g g . . . > > > g . n.g g g n.. n.g g g n.. . > > > n.. n.g g g n.. n.g g g n.. . > > > n.. n.g g g n.. n.g g g n.. . n.. . . . n.. . g . . . . n.. . . X X > > > > > > > > > > > > > > > > > > > > > > > > X X ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X > > > > > > > > > > > > > > > > > > > > > > > > > > > > h ",
+" X X > > > > > > > > > > o o o o o o o o o o > > > > > > > > > > h o ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X > > > > > > > > > o o o o o o > > > > > > > > > o ",
+". > g g g > . n.g g g . . n.g g g n.. n.g g g . . n.g g g n.. n.g g g n.. n.g g g n.. n.> > > n.. . > > > n.. . > > > n.. n.> > > n.. n.> > > . . g > > > g . n.g g g . . n.g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. n.g g g n.. n.> > > n.. n.> > > n.. n.> > > n.. n.> > > n.. n.> > > n.. n.g g g n.. . . . X > > > > > > > > o o o o > > > > > > > > o ",
+". g . . . g . g . . . g . g . . . > . g . . . g . g . . . > . g . . . > . g . . . > . g . . . g . > . . . g . > . . . g . g . . . g . g . . . > . g g . g g . g . . . g . g . . . g . g . . . g . g . . . g . g . . . g . g . . . > . > . g . > . g . . . g . g . . . g . g . . . g . g . . . g . g . . . g . > . . . g . . . . X > > > > > > > o o o o > > > > > > > o ",
+". g . . . g . g . . . g . g . . . > . g . . . g . g . . . > . g . . . > . g . . . > . g . . . g . > . . . g . > . . . g . g . . g > . g . . . > . g . g . g . g . . . g . g . . . g . g . . . g . g . . . g . g . . . g . g . . . > . > . g . > . g . . . g . g . . . g . g . . . g . > g . g > . g . . . g . > . . g > . . . . X > > > > > > o o h > > > > > > > o ",
+". n.g g g n.. n.g g g . . n.> > > . . n.> > > n.. n.g g g . . n.g g g . . n.> g g n.. n.g g g n.. . > > > n.. . > > > n.. n.g g > . . n.> > > . . n.> > > n.. n.> > > n.. n.> > > n.. n.g g g n.. n.g > > n.. n.g g g . . n.g g g n.. . > n.> . . n.> > > n.. n.> > > n.. n.> > > n.. . > g > . . n.g g g n.. . > g > . . . . . X > > > > > > o h X > > > > > > o ",
+". g . . . g . g . . . g . g . . . > . g . . . g . g . . . > . g . . . > . g . . . g . g . . . g . > . . . g . > . . . g . g . . g > . g . . . > . g . . . g . g . . . g . g . . . g . g . . . > . g . g . g . g . . . g . > . . . g . > . g . > . g . . . g . g . . . g . g . g . g . > g . g > . > . . . g . > g . . > . . . . X > > > > > > o X > > > > > > o ",
+". g . . . g . g . . . g . g . . . > . g . . . g . g . . . > . g . . . > . g . . . g . g . . . g . > . . . g . > . . . g . g . . . g . g . . . > . g . . . g . g . . . g . g . . . g . g . . . > . g . . g g . g . . . g . > . . . g . > . g . > . g . . . g . g . . . g . g g . g g . g . . . g . > . . . g . g . . . > . . . . X > > > > > o X > > > > > o ",
+". n.> > > n.. n.g g g . . n.g g g n.. g g g g . . n.g g g n.. g > > > . . n.g g g n.. n.> > > n.. . > > > g . n.g g g n.. n.> > > n.. n.g g g > . n.> > > n.. g > > > g . n.g g g n.. n.> > > . . n.g g g n.. n.> > > n.. n.g g g n.. . > n.> . . > g g g g . . g g g . . g > > > g . n.> > > g n.n.g g g n.. n.g g g n.. . . . X > > > > > o X > > > > > o ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X > > > > > o X > > > > > o ",
+" X > > > > > o X > > > > > o ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . X > > > > > o X > > > > > o ",
+" . . > > > . . . > > > . . . . . > > > . . . > > > . . . > > > . . o . . . > > > > > > > > > > > > > > > > > > > > > . . > > > > > > > > > > > > > > > > > > > > > . . . . X > > > > o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X > > > > o ",
+" . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o . . > > . . . . . . . . . . . . . . . . . . . > > > . . . . . . . . . . . . . . . . . . . . . > . . . X > > > > o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X > > > > o ",
+" . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o . . > . . . . . . . . . . . . . . . . . . . . . > > . . . . . . . . . . . . . . . . . . . . . > . . . X > > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > > o ",
+" . . > > > . . . > > > . . . . . > > > . . . > > > . . . > > > . . o . . > . . . . > > > . . . > > > . . . > . . . . > > . . . . > > > . . . > > > . . . > . . . . > . . . X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o ",
+" . > . . . > . > . . . > . . . > . . . > . > . . . > . > . . . > . o > > > . > . > . . . > . > . . . > . > . > . > . > > . > . > . . . > . > . . . > . > . > . > . > > > . X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > > o ",
+" . > . . . > . > . . . > . > . > . . . > . > . . . > . > . . . > . o > > > . > . > . . . > . > . . . > . . > . > . . > > . > . > . . . > . > . . . > . . > . > . . > > > . X > > > > > o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X > > > > > o ",
+" . . > > > . . . > > > . . > . . > > > . . . > > > . . . > > > . . o > > > . . . . > > > . . . > > > . . . . > . . . > > . . . . > > > . . . > > > . . . . > . . . > > > . X > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > o ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o > > > . > . > . . . > . > . . . > . . > . > . . > > . > . > . . . > . > . . . > . . > . > . . > > > . X > > > > o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X > > > > o ",
+" o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o > > > . > . > . . . > . > . . . > . > . > . > . > > . > . > . . . > . > . . . > . > . > . > . > > > . X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o ",
+" . . > . . . . > > > . . . > > > . . . . . > . . > > . . . . > > > . . . > > > . . . . . > . . > . . . X > > > > o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X > > > > o ",
+" . . > . . . . . . . . . . . . . . . . . . . . . > > . . . . . . . . . . . . . . . . . . . . . > . . . X > > > > o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X > > > > o ",
+"> n.g . . > > . . . . . . . . . . . . . . . . . . . > > > . . . . . . . . . . . . . . . . . . . . . > . . . X > > > > o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X > > > > o ",
+"V.C.Z. . . . > > > > > > > > > > > > > > > > > > > > > . . > > > > > > > > > > > > > > > > > > > > > . . . X > > > > o X +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.o X > > > > o ",
+" ",
+" ",
+" ",
+" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
+" X X X X A.A.A.A.A.A.A.A.A.A.X X X X X X X X d d d d d d d d d d X X X X X X X X f f f f f f f f f f X X X X ",
+" X X X A.A.A.A.S.S.S.S.S.S.S.S.S.S.A.A.A.A.X X X X X X d d d d D.D.D.D.D.D.D.D.D.D.d d d d X X X X X X f f f f F.F.F.F.F.F.F.F.F.F.f f f f X X X ",
+" X X A.A.A.S.S.S.S.G.G.G.G.G.G.G.G.G.G.S.S.S.S.A.A.A.X X X X d d d D.D.D.D.H.H.H.H.H.H.H.H.H.H.D.D.D.D.d d d X X X X f f f F.F.F.F.J.J.J.J.J.J.J.J.J.J.F.F.F.F.f f f X X ",
+" X A.A.S.S.S.S.K.K.K.a.a.a.a.a.a.a.a.a.a.K.K.K.S.A.A.A.A.A.K. X d d D.D.D.D.H.H.H.L.L.L.L.L.L.L.L.L.L.H.H.H.P.D.D.D.D.d h X f f F.F.F.F.J.J.J.I.I.I.I.I.I.I.I.I.I.J.J.J.U.F.F.F.F.f h ",
+" X X A.S.S.S.K.K.K.a.a.a.o o o o o o o o o o a.a.a.K.K.A.A.A.A.K.K.o X X d D.P.P.H.H.H.L.L.L.o o o o o o o o o o L.L.L.H.H.D.D.D.D.H.h o X X f F.U.U.J.J.J.I.I.I.o o o o o o o o o o I.I.I.U.U.F.F.F.F.J.h o ",
+" X A.A.S.S.S.K.K.a.a.o o o o o o a.a.K.K.A.A.A.K.a.o X d d D.P.P.H.H.L.L.o o o o o o L.L.H.H.P.d P.H.L.o X f f F.U.U.J.J.I.I.o o o o o o I.I.J.J.U.U.U.J.I.o ",
+" X A.S.S.S.K.K.a.a.o o o o a.a.K.A.A.S.K.a.o X d D.H.H.H.H.L.L.o o o o L.L.H.P.d P.L.L.o X f f U.U.J.J.I.I.o o o o I.I.J.F.F.U.J.o o ",
+" X A.S.S.S.K.a.a.o o o o K.S.A.A.K.K.a.o X d D.H.H.H.L.L.o o o o H.P.d d P.H.L.o X f F.U.U.J.I.I.o o o o J.U.F.F.U.I.I.o ",
+" X A.S.S.S.K.a.o o K.K.S.A.A.S.K.a.o X d D.H.H.H.L.o o h H.H.D.D.P.H.L.o X f F.U.U.U.I.o o h J.J.U.F.U.J.I.o ",
+" X A.A.S.S.K.a.o G.S.A.A.S.S.K.a.o X d D.H.H.H.L.o h D.D.d P.P.H.L.o X f F.U.U.J.I.I. h F.F.F.U.U.J.I.o ",
+" X A.S.S.S.K.a.o X X A.A.S.S.K.a.o X d D.H.H.H.L.o X X d D.D.P.H.L.o X f F.U.U.J.I.o X X f f f U.J.I.o ",
+" X A.S.G.G.a.o X A.A.S.K.a.o X d D.H.H.L.o X d D.P.H.L.o X f F.J.J.I.o X f f U.J.I.o ",
+" X A.G.G.G.a.o X A.G.S.K.a.o X d D.H.H.L.o X d D.P.H.L.o X f f J.J.I.o X f F.U.J.I.o ",
+" X A.S.G.G.G.o X A.S.S.K.a.o X d D.H.H.H.o X d D.D.L.L.o X f U.J.J.J.o X f F.F.J.I.o ",
+" X A.S.G.G.a.o X A.S.S.K.a.o X d D.H.H.L.o X d D.P.L.L.o X f U.J.J.I.o X f F.F.J.I.o ",
+" X A.A.S.G.a.a. X A.G.K.K.a.o X d d D.H.L.L. X d P.H.H.L.o X f f U.J.I.I. X f U.J.J.I.o ",
+" X A.S.K.K.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X A.S.K.a.o X d D.H.L.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X d D.H.L.o X f U.J.I.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X f F.J.I.o ",
+" X A.S.K.K.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X A.S.K.a.o X d D.H.L.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X d D.H.H.o X f U.J.I.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X f F.J.I.o ",
+" X A.S.K.K.K.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X A.S.G.K.a.o X d D.H.H.L.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X d D.H.H.L.o X f F.J.J.I.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X f F.U.J.I.o ",
+" X A.S.K.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X S.A.K.a.o X d D.H.L.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X d D.H.L.o X f F.J.I.I. X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X f F.J.I.o ",
+" X A.S.K.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X S.A.G.K.a.o X d D.H.L.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X d D.H.L.L.o X f F.J.I.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X f F.U.J.I.o ",
+" X A.S.K.a.a.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X S.A.G.K.a.o X d D.H.L.L.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X d D.H.H.L.o X f Y.J.I.I.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X f F.U.J.I.o ",
+" X A.S.K.a.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X A.S.K.a.o X d D.H.L.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X d H.H.L.o X f Y.J.I.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X f F.J.I.o ",
+" X A.S.K.a.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X A.S.K.a.o X d D.H.L.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X d D.H.L.o X f Y.J.I.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X f F.J.I.o ",
+" X A.S.K.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X A.S.K.a.o X d D.H.L.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X d D.H.L.o X f Y.J.I.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X f F.J.I.o ",
+" X A.G.K.a.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X A.S.K.a.o X d D.H.L.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X d D.H.L.o X f Y.J.I.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X f F.J.I.o ",
+" X A.s.K.a.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X A.S.K.a.o X d D.H.L.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X d D.H.L.o X f Y.J.I.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X f F.J.I.o ",
+" X A.s.K.a.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X A.S.K.a.o X d D.H.L.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X d D.H.L.o X f Y.J.I.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X f F.J.I.o ",
+" X A.s.K.a.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X A.S.K.a.o X d D.H.L.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X d D.H.L.o X f Y.J.I.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X f F.J.I.o ",
+" ",
+" ",
+" ",
+" ",
+" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
+" X X X X T.T.T.T.T.T.T.T.T.T.X X X X X X X X R.R.R.R.R.R.R.R.R.R.X X X X X X X X E.E.E.E.E.E.E.E.E.E.X X X X ",
+" X X X T.T.T.T.W.W.W.W.W.W.W.W.W.W.T.T.T.T.X X X X X X R.R.R.R.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.R.R.R.R.X X X X X X E.E.E.E.!.!.!.!.!.!.!.!.!.!.E.E.E.E.X X X ",
+" X X T.T.T.W.W.W.W.~.~.~.~.~.~.~.~.~.~.W.W.W.W.T.T.T.X X X X R.R.R.Q.Q.Q.Q.^.^.^.^.^.^.^.^.^.^.Q.Q.Q.Q.R.R.R.X X X X E.E.E.!.!.!.!././././././././././.!.!.!.!.E.E.E.X X ",
+" X T.T.W.W.W.W.~.~.~.(.(.(.(.(.(.(.(.(.(.~.~.~.).W.W.W.W.T.h X R.R.Q.Q.Q.Q.^.^.^._._._._._._._._._._.^.^.^.`.Q.Q.Q.Q.R.h X E.E.!.!.!.!./././.'.'.'.'.'.'.'.'.'.'./././.].!.!.!.!.E.h ",
+" X X T.W.W.W.~.~.~.(.(.(.o o o o o o o o o o (.(.(.~.~.W.W.W.W.~.h (. X X R.Q.`.`.^.^.^._._._.o o o o o o o o o o _._._.^.^.Q.Q.Q.Q.^.h o X X E.E.!.!./././.'.'.'.o o o o o o o o o o '.'.'././.!.!.!.!./.h o ",
+" X T.T.W.W.W.~.~.(.(.o o o o o o (.(.~.~.).).).~.(.o X R.R.Q.`.`.^.^._._.o o o o o o _._.^.^.`.`.`.^._.o X E.E.!.!.!././.'.'.o o o o o o '.'././.[.[.[./.'.o ",
+" X T.W.).).~.~.(.(.o o o o (.(.~.W.W.).~.(.o X R.Q.`.`.^.^._._.o o o o _._.^.Q.Q.`.^._.o X E.!.[.[././.'.'.o o o o a.a./.[.[.]./.'.o ",
+" X T.W.).).~.(.(.o o o o ~.).W.W.).~.(.o X R.Q.`.`.^._._.o o o o ^.`.Q.Q.`.`._.o X E.!.[.[./.'.'.o o '.'././.[.[.[./.'.o ",
+" X T.W.).).~.(.o o h ~.~.W.T.).~.(.o X R.Q.`.`.^._.o o h ^.^.Q.R.`.^._.o X E.!.[.[./.'.o o h /./.[.E.[./.'.o ",
+" X T.W.).).~.(.o h T.T.T.).).~.(.o X R.Q.`.`.^._.o h R.R.R.`.`.^._.o X E.!.[.[./.'.o h E.E.E.[.[./.'.o ",
+" X T.W.).).~.(.o X X T.W.W.).~.(.o X R.Q.`.`.^._.o X X R.Q.Q.`.^._.o X E.!.[.[./.'.o X X E.!.!.]./.'.o ",
+" X T.W.~.~.(.o X T.W.).~.(.o X R.Q.^.^._.o X R.Q.`.^._.o X E.!././.'.o X E.!.]./.'.o ",
+" X T.W.~.~.(.o X T.W.).~.(.o X R.Q.^.^._.o X R.Q.`.^._.o X E.!././.'.o X E.!.]./.'.o ",
+" X T.W.~.~.~.o X T.W.W.~.(.o X R.Q.^.^.^.o X R.Q.Q.^._.o X E.!./././.o X E.!.!./.'.o ",
+" X T.W.~.~.(.o X T.W.).~.(.o X R.Q.^.^._.o X R.Q.`.^._.o X E.!././.'.o X E.!.]./.'.o ",
+" X T.T.W.~.(.(. X T.).~.~.(.o X R.R.Q.^._._. X R.Q.^.^._.o X E.E.!./.'.'. X E.]././.'.o ",
+" X T.W.~.(.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X T.W.~.(.o X R.Q.^._.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X R.Q.^._.o X E.!./.'.o X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X E.!./.'.o ",
+" X T.W.~.(.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X T.W.~.(.o X R.Q.^._.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X R.Q.^._.o X E.!./.'.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X E.!./.'.o ",
+" X T.W.~.~.(.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X T.W.~.~.(.(. X R.Q.^.^._.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X R.Q.`.^._.o X E.!././.'.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X E.!.]./.'.o ",
+" X T.W.~.(.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X T.W.~.(.(. X R.Q.^._.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X R.Q.^._.o X E.!./.'.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X E.!./.'.o ",
+" X T.W.~.(.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X T.W.~.~.(.o X R.Q.^._.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X R.Q.`.^._.o X E.!./.'.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X E.!.]./.'.o ",
+" X T.W.~.(.(.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X T.W.~.~.(.o X R.Q.^._._.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X R.Q.`.^._.o X E.!./.'.'.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X E.!.]./.'.o ",
+" X T.W.~.(.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X T.~.~.(.o X R.Q.^._.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X R.Q.^._.o X E.!./.'.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X E.!./.'.o ",
+" X T.W.~.(.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X T.W.~.(.o X R.Q.^._.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X R.Q.^._.o X E.!./.'.o X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X E.!./.'.o ",
+" X T.W.~.(.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X T.W.~.(.o X R.Q.^._.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X R.Q.^._.o X E.!./.'.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X E.!./.'.o ",
+" X T.W.~.(.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X T.W.~.(.o X R.Q.^._.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X R.Q.^._.o X E.!./.'.o X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X E.!./.'.o ",
+" X T.W.~.(.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X T.W.~.(.o X R.Q.^._.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X R.Q.^._.o X E.!./.'.o X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X E.!./.'.o ",
+" X T.W.~.(.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X T.W.~.(.o X R.Q.^._.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X R.Q.^._.o X E.!./.'.o X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X E.!./.'.o ",
+" X T.W.~.(.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X T.W.~.(.o X R.Q.^._.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X R.Q.^._.o X E.!./.'.o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X E.!./.'.o ",
+" ",
+" ",
+" ",
+" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
+" X X X X {.{.{.{.{.{.{.{.{.{.X X X X X X X X }.}.}.}.}.}.}.}.}.}.X X X X X X X X |.|.|.|.|.|.|.|.|.|.X X X X ",
+" X X X {.{.{.{. X X X X X X X X X X{.{.{.{.X X X X X X }.}.}.}..X.X.X.X.X.X.X.X.X.X}.}.}.}.X X X X X X |.|.|.|.XXXXXXXXXXXXXXXXXXXX|.|.|.|.X X X ",
+" X X {.{.{. X X X XoXoXoXoXoXoXoXoXoXoX X X X X{.{.{.X X X X }.}.}..X.X.X.XOXOXOXOXOXOXOXOXOXOX.X.X.X.X}.}.}.X X X X |.|.|.XXXXXXXX+X+X+X+X+X+X+X+X+X+XXXXXXXXX|.|.|.X X ",
+" X {.{. X X X XoXoXoX at X@X at X@X at X@X at X@X at X@XoXoXoX#X X X X X{.h X @. at ..X.X.X.XOXOXOX$X$X$X$X$X$X$X$X$X$XOXOXOX%X.X.X.X.X}.h X |.|.XXXXXXXX+X+X+X&X&X&X&X&X&X&X&X&X&X+X+X+X*XXXXXXXXX|.h ",
+" X X {. X#X#XoXoXoX at X@X at Xo o o o o o o o o o @X at X@XoXoX X X X XoXh o X X }..X%X%XOXOXOX$X$X$Xo o o o o o o o o o $X$X$XOXOX.X.X.X.XOXh o X X |.XX*X*X+X+X+X&X&X&Xo o o o o o o o o o &X&X&X+X+XXXXXXXXX+Xh o ",
+" X {.{. X#X#XoXoX at X@Xo o o o o o @X at XoXoX=X=X=XoX at Xo X }.}..X%X%XOXOX$X$Xo o o o o o $X$XOXOX%X%X%XOXOXo X |.|.XX*X*X+X+X&X&Xo o o o o o &X&X+X+X*X*X*X+X&Xo ",
+" X {. X X XoXoX at X@Xo o o o @X at XoX=X=X=XoX at Xo X }..X%X%XOXOX$X$Xo o o o $X$XOX%X%X%XOX$Xo X |.XX*X*X+X+X&X&Xo o o o &X&X+X*X*X*X+X&Xo ",
+" X {. X X XoX at X@Xo o o o oX=X=X=X=XoX at Xo X }..X%X%XOX$X$Xo o o o OX%X%X%X%XOX$Xo X |.XX*X*X+X&X&Xo o o o +X*X*X*X*X+X&Xo ",
+" X {. X X XoX at Xo o h oXoX X{.=XoX at Xo X }..X%X%XOX$Xo o h OXOX.X}.%XOX$Xo X |.XX*X*X+X&Xo o h *X*X*X|.*X+X&Xo ",
+" X {. X X XoX at Xo h {.{.{.=X=XoX at Xo X }..X%X%XOX$Xo h }.}.}.%X%XOX$Xo X |.XX*X*X+X&Xo h |.|.|.*X*X+X&Xo ",
+" X {. X X XoX at Xo X X {. X X#XoX at Xo X }..X%X%XOX$Xo X X }..X.X%XOX$Xo X |.XX*X*X+X&Xo X X |.XXXX*X+X&Xo ",
+" X {. XoXoX at Xo X {. X#XoX at Xo X }..XOXOX$Xo X }..X%XOX$Xo X |.XX+X+X&Xo X |.XX*X+X&Xo ",
+" X {. XoXoX at Xo X {.{.#XoX at Xo X }..XOXOX$Xo X }..X%XOX$Xo X |.XX+X+X&Xo X |.XX*X+X&Xo ",
+" X {. XoXoXoXo X {. X XoX at Xo X }..XOXOXOXo X }.OXOXOX$Xo X |.XX+X+X+Xo X |.XXXX+X&Xo ",
+" X {. XoXoX at Xo X {. X#XoX at Xo X }..XOXOX$Xo X }.OX%XOX$Xo X |.XX+X+X&Xo X |.XX*X+X&Xo ",
+" X {.{. XoX at X@X X {. XoXoX at Xo X }.}..XOX$X$X X }..XOXOX$Xo X |.|.XX+X&X&X X |.XX+X+X&Xo ",
+" X {. XoX at Xo X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X {. XoX at Xo X }..XOX$Xo X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X }..XOX$Xo X |.XX+X&Xo X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X |.*X+X&Xo ",
+" X {. XoX at Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X {. XoX at Xo X }..XOX$Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X }..XOX$Xo X |.XX+X&Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X |.*X+X&Xo ",
+" X {. XoXoX at Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X {. X#XoX at Xo X }..XOXOX$Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X }..X%XOX$Xo X |.XX+X+X&Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X |.XX*X+X&Xo ",
+" X {. XoX at Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X {.#XoX at Xo X }..XOX$Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X }..XOX$Xo X |.XX+X&Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X XX*X+X&Xo ",
+" X {. XoX at Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X {.#X#XoX at Xo X }..XOX$Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X }..XOXOX$Xo X |.XX+X&Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X XXXX*X+X&Xo ",
+" X {. XoX at X@Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X {.#X#XoX at Xo X }..XOX$X$Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X }..XOXOX$Xo X |.XX+X&X&Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X XXXX*X+X&Xo ",
+" X {. XoX at Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X {.#XoX at Xo X }..XOX$Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X }..XOX$Xo X |.XX+X&Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X {.#XoX at Xo X }..XOX$Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X }..XOX$Xo X |.XX+X&Xo X . > . . . . > . > . . . . > . . . . . > . . . . > . > . . . . > . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X {.#XoX at Xo X }..XOX$Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X }..XOX$Xo X |.XX+X&Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X {.#XoX at Xo X }..XOX$Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X }..XOX$Xo X |.XX+X&Xo X . > . . . . > . > . . . . > . . g . . > . . . . > . > . . . . > . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X {.#XoX at Xo X }..XOX$Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X }..XOX$Xo X |.XX+X&Xo X . . > > > > . . . > > > > . . . . . . . > > > > . . . > > > > . . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X {.#XoX at Xo X }..XOX$Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X }..XOX$Xo X |.XX+X&Xo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o X |.XX+X&Xo ",
+" X {. XoX at Xo X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X {.#XoX at Xo X }..XOX$Xo X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X }..XOX$Xo X |.XX+X&Xo X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X |.XX+X&Xo ",
+" ",
+" "};
diff --git a/wmbatppc.1 b/wmbatppc.1
new file mode 100644
index 0000000..fe8f8ce
--- /dev/null
+++ b/wmbatppc.1
@@ -0,0 +1,31 @@
+.\" Man Page for WMBATPPC
+.\" groff -man -Tascii wmbatppc.1
+.\"
+.TH WMBATPPC 1 "NOVEMBER 2000" Linux "User Manuals"
+.SH NAME
+wmbatppc
+.SH SYNOPSIS
+.B wmbatppc
+[\-c command]
+.SH DESCRIPTION
+.B wmbatppc
+displays, as a WindowMaker dockapp, power management information
+on new PowerBooks (aka Pismo) and iBook.
+.SH OPTIONS
+
+.TP
+.I \-r time
+Sets the update interval (in milliseconds), default: 100
+.TP
+.I \-display display
+This option specifies the X server to contact; see X(1).
+
+
+.SH BUGS
+Please report any bugs you may find to:
+.TP
+.B titelou at free.fr
+.SH AUTHOR
+Lou <titelou at free.fr>
+.SH Homepage
+http://titelou.free.fr/
diff --git a/wmbatppc.c b/wmbatppc.c
new file mode 100644
index 0000000..c2bdcc1
--- /dev/null
+++ b/wmbatppc.c
@@ -0,0 +1,625 @@
+/*
+ * code file for wmbatppc
+ * by Lou
+ */
+
+
+#include "wmbatppc.h"
+
+#include "wmgeneral.h"
+
+#include "wmbatppc-master.xpm"
+
+#include "xgbatppc-master.xpm"
+
+pmud_info sys_pmu ;
+
+unsigned int wm = WMAKER ;
+
+char wmbatppc_mask_bits[64*64];
+char xgbatppc_mask_bits[24*176];
+int wmbatppc_mask_width = 64;
+int xgbatppc_mask_width= 176;
+int wmbatppc_mask_height = 64;
+int xgbatppc_mask_height = 24;
+
+coords jukeBoxImg[12] ;
+coords plugImg[2];
+coords chargImg[2];
+coords battImg[8];
+coords plugSize ;
+coords chargSize ;
+coords battSize ;
+coords voltIndSize ;
+coords voltIndImg ;
+coords timeleftIndSize ;
+coords timeleftIndImg ;
+coords jukeBoxSize[2] ;
+int jukeBoxParts ;
+int XOFFSET = 0;
+int YOFFSET = 0;
+interface gui ;
+
+int update_rate=100000;
+
+char *ProgName;
+
+time_t curtime;
+time_t prevtime;
+
+int mode = 0 ; // default: no info
+int screen = 0; // default: Quality screen is displayed
+
+void showGUIelement(coords img, coords size, coords dest){
+ copyXPMArea(img.x,img.y,size.x,size.y,dest.x,dest.y) ;
+}
+
+void updatePlug (int state){
+ showGUIelement(plugImg[state],plugSize,gui.plug);
+}
+
+void updateCharg (int state){
+ showGUIelement(chargImg[state],chargSize,gui.charg);
+}
+
+void drawBatteryState(int bat_side, int bat_state){
+ showGUIelement(battImg[bat_side*4+bat_state],battSize,gui.batt[bat_side]);
+}
+
+void initXIMGUIelements (){
+ int i = 0;
+ gui.voltage[V].x = 20 ;
+ gui.voltage[V].y = 6 ;
+ gui.voltage[MV].x = 34 ;
+ gui.voltage[MV].y = 6 ;
+ gui.symbols[COMMA].x = 32 ;
+ gui.symbols[COMMA].y = 11 ;
+ gui.percent[LEFT_BATTERY].x = 65 ;
+ gui.percent[LEFT_BATTERY].y = 6 ;
+ gui.percent[RIGHT_BATTERY].x = 91 ;
+ gui.percent[RIGHT_BATTERY].y = 6 ;
+ gui.timeleft[HOURS].x = 119 ;
+ gui.timeleft[HOURS].y = 6 ;
+ gui.timeleft[MINUTES].x = 137 ;
+ gui.timeleft[MINUTES].y = 6 ;
+ gui.jukeBox[0].x = 23 ;
+ gui.jukeBox[0].y = 1 ;
+ gui.jukeBox[1].x = 122 ;
+ gui.jukeBox[1].y = 1 ;
+ gui.batt[LEFT_BATTERY].x = 60 ;
+ gui.batt[LEFT_BATTERY].y = 4 ;
+ gui.batt[RIGHT_BATTERY].x = 87 ;
+ gui.batt[RIGHT_BATTERY].y = 4 ;
+ gui.plug.x = 3 ;
+ gui.plug.y = 2 ;
+ gui.charg.x = 158 ;
+ gui.charg.y = 2 ;
+ jukeBoxParts = 2 ;
+ jukeBoxSize[0].x = 28 ;
+ jukeBoxSize[0].y = 4 ;
+ jukeBoxSize[1].x = 28 ;
+ jukeBoxSize[1].y = 4 ;
+ for (i=0; i < 10;i++){
+ jukeBoxImg[i].x += 14 ;
+ }
+}
+
+void initWMGUIelements (){
+ gui.voltage[V].x = 15 ;
+ gui.voltage[V].y = 2 ;
+ gui.voltage[MV].x = 29 ;
+ gui.voltage[MV].y = 2 ;
+ gui.symbols[COMMA].x = 27 ;
+ gui.symbols[COMMA].y = 7 ;
+ gui.percent[LEFT_BATTERY].x = 11 ;
+ gui.percent[LEFT_BATTERY].y = 49 ;
+ gui.percent[RIGHT_BATTERY].x = 36 ;
+ gui.percent[RIGHT_BATTERY].y = 49 ;
+ gui.timeleft[HOURS].x = 15 ;
+ gui.timeleft[HOURS].y = 31 ;
+ gui.timeleft[MINUTES].x = 33 ;
+ gui.timeleft[MINUTES].y = 31 ;
+ gui.jukeBox[0].x = 4 ;
+ gui.jukeBox[0].y = 13 ;
+ gui.jukeBox[1].x = 0 ;
+ gui.jukeBox[1].y = 0 ;
+ gui.batt[LEFT_BATTERY].x = 6 ;
+ gui.batt[LEFT_BATTERY].y = 47 ;
+ gui.batt[RIGHT_BATTERY].x = 33 ;
+ gui.batt[RIGHT_BATTERY].y = 47 ;
+ gui.plug.x = 2 ;
+ gui.plug.y = 2 ;
+ gui.charg.x = 50 ;
+ gui.charg.y = 2 ;
+ jukeBoxParts = 1 ;
+ jukeBoxSize[0].x = 56 ;
+ jukeBoxSize[0].y = 30 ;
+ jukeBoxSize[1].x = 0 ;
+ jukeBoxSize[1].y = 0 ;
+}
+
+void initXPMelements(){
+ timeleftIndSize.x = 36 ;
+ timeleftIndSize.y = 13 ;
+ timeleftIndImg.x = 15;
+ timeleftIndImg.y = 29 + YOFFSET ;
+ voltIndSize.x = 34 ;
+ voltIndSize.y = 10 ;
+ voltIndImg.x = 2;
+ voltIndImg.y = 84 + YOFFSET;
+ battImg[LEFT_BATTERY*4+HIGH_BATT].x = 146 ;
+ battImg[LEFT_BATTERY*4+HIGH_BATT].y = 6 + YOFFSET ;
+ battImg[LEFT_BATTERY*4+LOW_BATT].x = 173 ;
+ battImg[LEFT_BATTERY*4+LOW_BATT].y = 6 + YOFFSET ;
+ battImg[LEFT_BATTERY*4+MED_BATT].x = 200 ;
+ battImg[LEFT_BATTERY*4+MED_BATT].y = 6 + YOFFSET ;
+ battImg[LEFT_BATTERY*4+NO_BATT].x = 108 ;
+ battImg[LEFT_BATTERY*4+NO_BATT].y = 85 + YOFFSET ;
+ battImg[RIGHT_BATTERY*4+HIGH_BATT].x = 146 ;
+ battImg[RIGHT_BATTERY*4+HIGH_BATT].y = 21 + YOFFSET ;
+ battImg[RIGHT_BATTERY*4+LOW_BATT].x = 173 ;
+ battImg[RIGHT_BATTERY*4+LOW_BATT].y = 21 + YOFFSET ;
+ battImg[RIGHT_BATTERY*4+MED_BATT].x = 200 ;
+ battImg[RIGHT_BATTERY*4+MED_BATT].y = 21 + YOFFSET ;
+ battImg[RIGHT_BATTERY*4+NO_BATT].x = 135 ;
+ battImg[RIGHT_BATTERY*4+NO_BATT].y = 85 + YOFFSET ;
+ battSize.x = 25 ;
+ battSize.y = 13 ;
+ plugSize.x = 12 ;
+ plugSize.y = 16 ;
+ chargSize.x = 12 ;
+ chargSize.y = 16 ;
+ plugImg[0].x = 158 ;
+ plugImg[0].y = 53 + YOFFSET ;
+ plugImg[1].x = 158 ;
+ plugImg[1].y = 36 + YOFFSET ;
+ chargImg[0].x = 134 ;
+ chargImg[0].y = 53 + YOFFSET ;
+ chargImg[1].x = 134 ;
+ chargImg[1].y = 36 + YOFFSET ;
+ jukeBoxImg[0].x = 173 ;
+ jukeBoxImg[0].y = 68 + YOFFSET ;
+ jukeBoxImg[1].x = 5 ;
+ jukeBoxImg[1].y = 101 + YOFFSET ;
+ jukeBoxImg[2].x = 126 ;
+ jukeBoxImg[2].y = 135 + YOFFSET ;
+ jukeBoxImg[3].x = 4 ;
+ jukeBoxImg[3].y = 168 + YOFFSET ;
+ jukeBoxImg[4].x = 127 ;
+ jukeBoxImg[4].y = 168 + YOFFSET ;
+ jukeBoxImg[5].x = 65 ;
+ jukeBoxImg[5].y = 168 + YOFFSET ;
+ jukeBoxImg[6].x = 127 ;
+ jukeBoxImg[6].y = 101 + YOFFSET ;
+ jukeBoxImg[7].x = 4 ;
+ jukeBoxImg[7].y = 135 + YOFFSET ;
+ jukeBoxImg[8].x = 65 ;
+ jukeBoxImg[8].y = 135 + YOFFSET ;
+ jukeBoxImg[9].x = 66 ;
+ jukeBoxImg[9].y = 101 + YOFFSET ;
+ jukeBoxImg[10].x = 173 ;
+ jukeBoxImg[10].y = 36 + YOFFSET ;
+}
+
+void initGUIelements(){
+ if (wm == WMAKER){
+ initXPMelements();
+ initWMGUIelements();
+ }
+ else
+ { YOFFSET = 30 ;
+ initXPMelements();
+ initXIMGUIelements();
+ }
+}
+
+void drawJukeBox (int state){
+ showGUIelement (jukeBoxImg[state],jukeBoxSize[0],gui.jukeBox[0]) ;
+ if (jukeBoxParts > 1)
+ showGUIelement (jukeBoxImg[state],jukeBoxSize[1],gui.jukeBox[1]) ;
+}
+
+int open_pmud_socket() {
+
+ int ret;
+ struct sockaddr_in sin ;
+ sin.sin_family = PF_INET ;
+ sin.sin_port = htons (PMUD_PORT) ;
+ sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK) ;
+
+ if ((ret = socket (PF_INET, SOCK_STREAM, 0)) >= 0) {
+ if (connect (ret, (struct sockaddr *) &sin, sizeof (sin)) >= 0) {
+ return ret;
+ } else {
+ close (ret);
+ }
+ }
+ return -1;
+}
+
+
+enum { KL_IBOOK, KL_PISMO, KL_UNKNOWN };
+
+static int keylargo_identify ()
+{
+ FILE *fd;
+ char buf[25];
+ if (!(fd = fopen ("/proc/device-tree/pci/mac-io/media-bay/compatible", "ro")))
+ return KL_IBOOK;
+ /* no media-bay. definately an iBook...
+ * or a Pismo running a kernel without OF-devtree support...
+ */
+ fscanf (fd, "%s", buf);
+ fclose (fd);
+ if (!strcmp ("keylargo-media-bay", buf)) // only the pismo should have one
+ return KL_PISMO; // has one, its a pismo
+ else
+ return KL_UNKNOWN;
+ /* has a media bay, IDs as a Keylargo, but not a
+ * "keylargo-media-bay.... what the...
+ */
+}
+
+void read_g3_pmu ()
+{ /* smart battery systems are the same */
+ unsigned char par;
+ int current, charge, maxcharge, ac_hold = -1;
+ char *b;
+ char c[150];
+ static int sock = -1;
+
+ if (sock < 0) {
+ if ((sock = open_pmud_socket ()) < 0) {
+ sys_pmu.time_left = -2;
+ return;
+ } else {
+ read (sock, c, 150);
+ }
+ }
+#ifdef PMUD_REFRESH
+ read (sock, c, 150);
+ shutdown (sock, SHUT_RDWR);
+ close (sock);
+ sock = -1;
+#else
+ write (sock, "\n", 1);
+ read (sock, c, 150);
+#endif
+ b = strtok (c, PMUD_INPUT_DELIM);
+ if (b[0] != 'S')
+ return;
+ sys_pmu.batt_state[LEFT_BATTERY] = NO_BATT ;
+ sys_pmu.batt_state[RIGHT_BATTERY] = NO_BATT ;
+
+ sys_pmu.time_left = 0;
+ for (par = 0; par < 2; par++) {
+ ac_hold = atoi (strtok (0, PMUD_INPUT_DELIM));
+ if (ac_hold % 10) {
+ sys_pmu.b[par].available = IS_BATT ;
+ sys_pmu.b[par].charging = (((ac_hold / 10) % 10) == 1);
+ charge = atoi (strtok (0, PMUD_INPUT_DELIM));
+ maxcharge = atoi (strtok (0, PMUD_INPUT_DELIM)) - 2 ;
+ sys_pmu.b[par].current = atoi (strtok (0, PMUD_INPUT_DELIM));
+ sys_pmu.b[par].voltage = atoi (strtok (0, PMUD_INPUT_DELIM));
+ sys_pmu.b[par].percentage = charge * 100 / maxcharge ;
+ sys_pmu.time_left += ((ac_hold / 100) ? maxcharge - charge : charge);
+ sys_pmu.batt_state[par] = IS_BATT ;
+ } else {
+ sys_pmu.b[par].available = NO_BATT ;
+ sys_pmu.b[par].percentage = 0;
+ sys_pmu.b[par].current = 0;
+ sys_pmu.b[par].voltage = 0.0;
+ sys_pmu.b[par].charging = 0;
+ }
+ }
+ sys_pmu.ac_connected = ac_hold / 100;
+ current = sys_pmu.b[LEFT_BATTERY].current + sys_pmu.b[RIGHT_BATTERY].current;
+ if (current < 0)
+ sys_pmu.time_left = sys_pmu.time_left * 3552 / (current * -60);
+ else if (sys_pmu.show_charge_time && (current > 0))
+ sys_pmu.time_left = sys_pmu.time_left * 3552 / (current * 60);
+ else
+ sys_pmu.time_left = -1;
+
+ sys_pmu.current = current ;
+}
+
+void DisplayBat(void) {
+
+ int keylargo ;
+ unsigned int par = 0 ;
+ int hour = 0 ;
+ int min = 0 ;
+ int volts = 0 ;
+ int millivolts = 0 ;
+ int i;
+ int state ;
+
+ sys_pmu.show_charge_time = 1 ;
+
+ keylargo = keylargo_identify() ; // TODO : use this detection
+
+ read_g3_pmu () ;
+
+ if (sys_pmu.time_left == -1)
+ drawJukeBox(0) ;
+ else
+ { state = (sys_pmu.current + 200) / 200 ;
+ if (state < 0)
+ state = state * -1 ;
+ if (state > 9)
+ state = 9 ;
+ drawJukeBox(state);
+ hour = sys_pmu.time_left / 60 ;
+ min = sys_pmu.time_left % 60 ;
+ // printf("%i,%d,%d\n",sys_pmu.time_left,hour,min);
+ BlitNum(hour,gui.timeleft[HOURS].x,gui.timeleft[HOURS].y,BIG,1);
+ BlitNum(min,gui.timeleft[MINUTES].x,gui.timeleft[MINUTES].y,BIG,1);
+ }
+
+ if (sys_pmu.ac_connected)
+ updatePlug(PLUGGED) ;
+ else
+ updatePlug(UNPLUGGED) ;
+
+ if (sys_pmu.b[LEFT_BATTERY].charging || sys_pmu.b[RIGHT_BATTERY].charging)
+ updateCharg(CHARGE) ;
+ else
+ updateCharg(NOCHARGE) ;
+
+ for (par=0; par<2; par++){
+ if (sys_pmu.b[par].available == NO_BATT){
+ drawBatteryState(par,NO_BATT) ;
+ }else {
+ if (sys_pmu.b[par].percentage > 70)
+ drawBatteryState(par,HIGH_BATT) ;
+ else if (sys_pmu.b[par].percentage > 25)
+ drawBatteryState(par,MED_BATT) ;
+ else if ((sys_pmu.b[par].percentage > 5) || (sys_pmu.b[par].charging) || (sys_pmu.b[1-par].percentage > 5))
+ drawBatteryState(par,LOW_BATT) ;
+ else
+ {
+ for (i=0; i<update_rate/50000; i++){
+ drawBatteryState(par,NO_BATT) ;
+ RedrawWindow() ;
+ usleep(200000) ;
+ drawBatteryState(par,LOW_BATT) ;
+ RedrawWindow() ;
+ }
+ }
+
+ if (sys_pmu.b[par].percentage == 100){
+ BlitNum(sys_pmu.b[par].percentage,gui.percent[par].x-6,gui.percent[par].y,SMALL,2) ;
+ } else {
+ BlitNum(sys_pmu.b[par].percentage,gui.percent[par].x,gui.percent[par].y,SMALL,1) ;
+ }
+
+ volts = sys_pmu.b[par].voltage / 1000 ;
+ millivolts = sys_pmu.b[par].voltage % 1000 ;
+ BlitNum(volts,gui.voltage[V].x,gui.voltage[V].y,SMALL,1) ;
+ BlitNum(millivolts,gui.voltage[MV].x,gui.voltage[MV].y,SMALL,0) ;
+ copyXPMArea(74,69+YOFFSET,2,3,gui.symbols[COMMA].x,gui.symbols[COMMA].y);
+ }
+ }
+
+ if (sys_pmu.b[LEFT_BATTERY].available == NO_BATT
+ && sys_pmu.b[RIGHT_BATTERY].available == NO_BATT)
+ copyXPMArea(voltIndImg.x,voltIndImg.y,voltIndSize.x,voltIndSize.y,gui.voltage[V].x,gui.voltage[V].y) ;
+}
+
+/* SIGCHLD handler */
+void sig_chld(int signo)
+{
+ waitpid((pid_t) -1, NULL, WNOHANG);
+ signal(SIGCHLD, sig_chld);
+}
+
+int main(int argc, char *argv[]) {
+ int i;
+
+ /* Parse Command Line */
+
+ signal(SIGCHLD, sig_chld);
+ ProgName = argv[0];
+ if (strlen(ProgName) >= 5)
+ ProgName += (strlen(ProgName) - 5);
+
+ for (i=1; i<argc; i++) {
+ char *arg = argv[i];
+
+ if (*arg=='-') {
+ switch (arg[1]) {
+ case 'd' :
+ if (strcmp(arg+1, "display")) {
+ usage();
+ exit(1);
+ }
+ break;
+ case 'g' :
+ if (strcmp(arg+1, "geometry")) {
+ usage();
+ exit(1);
+ }
+ break;
+ case 'v' :
+ printversion();
+ exit(0);
+ break;
+ case 'r':
+ if (argc > (i+1)) {
+ update_rate = (atoi(argv[i+1]) * 1000);
+ i++;
+ }
+ break;
+ case 'w':
+ wm = WMAKER ;
+ break;
+ case 'x':
+ wm = XIMIAN ;
+ break;
+ default:
+ usage();
+ exit(0);
+ break;
+ }
+ }
+ }
+
+ wmbatppc_routine(argc, argv);
+
+ return 0;
+}
+
+/*
+ * Main loop
+ */
+void wmbatppc_routine(int argc, char **argv) {
+ XEvent Event;
+ struct timeval tv={0,0};
+ struct timeval last={0,0};
+ int i ;
+
+ if (wm == WMAKER){
+ printf("window maker version \n");
+ createXBMfromXPM(wmbatppc_mask_bits, wmbatppc_master_xpm, wmbatppc_mask_width, wmbatppc_mask_height);
+ openXwindow(argc, argv, wmbatppc_master_xpm, wmbatppc_mask_bits, wmbatppc_mask_width, wmbatppc_mask_height);
+ } else {
+ printf("ximian gnome version \n");
+ createXBMfromXPM(xgbatppc_mask_bits, xgbatppc_master_xpm, xgbatppc_mask_width, xgbatppc_mask_height);
+ openXwindow(argc, argv, xgbatppc_master_xpm, xgbatppc_mask_bits, xgbatppc_mask_width, xgbatppc_mask_height);
+ }
+
+ RedrawWindow();
+
+ initGUIelements () ;
+
+ if (wm == WMAKER){
+ for (i=0;i<10;i++){
+ drawJukeBox(i) ;
+ updatePlug(UNPLUGGED) ;
+ updateCharg(NOCHARGE) ;
+ RedrawWindow() ;
+ usleep(100000) ;
+ }
+ for (i=9;i>=0;i--){
+ drawJukeBox(i) ;
+ updatePlug(UNPLUGGED) ;
+ updateCharg(NOCHARGE) ;
+ RedrawWindow() ;
+ usleep(100000) ;
+ }
+ }
+
+
+ while (1) {
+
+ curtime = time(0);
+
+ if (1) {
+ memcpy(&last, &tv, sizeof(tv));
+
+ /*
+ * Update display
+ */
+
+ DisplayBat();
+
+ RedrawWindow();
+ }
+
+ /*
+ * X Events
+ */
+ while (XPending(display)) {
+ XNextEvent(display, &Event);
+ switch (Event.type) {
+ case Expose:
+ RedrawWindow();
+ break;
+ case DestroyNotify:
+ XCloseDisplay(display);
+ exit(0);
+ case ButtonPress:
+ switch (screen) {
+ case 0: screen=1; break;
+ case 1: screen=0; break;
+ };
+ break;
+ }
+ }
+
+ usleep(update_rate);
+ }
+}
+
+/*
+ * Blits a string at given co-ordinates
+ */
+void BlitString(char *name, int x, int y, int is_big) {
+ int i;
+ int c;
+ int k;
+
+ k = x;
+
+ for (i=0; name[i]; i++){
+ c = toupper(name[i]);
+ if (c >= 'A' && c <= 'Z'){ // its a letter
+ c -= 'A';
+ copyXPMArea(c * 6, 74+YOFFSET, 6, 8, k, y);
+ k += 6;
+ } else {
+ if (c>='0' && c<='9'){ // its a number or symbol
+ c -= '0';
+ if (is_big == BIG){
+ copyXPMArea(68 + c * 7 , 22+YOFFSET, 7, 10, k, y);
+ k += 7 ;
+ } else {
+ copyXPMArea(c * 6, 64+YOFFSET, 6, 8, k, y);
+ k += 6;
+ }
+ } else {
+ copyXPMArea(1, 84+YOFFSET, 6, 8, k, y);
+ k += 6;
+ }
+ }
+ }
+}
+
+void BlitNum(int num, int x, int y, int is_big, int two_digits) {
+ char buf[1024];
+ int newx=x;
+ int temp=0 ;
+
+ if (two_digits == 1)
+ sprintf(buf, "%02i", num);
+ else {
+ if (two_digits == 2) {
+ temp = num - 100 ;
+ copyXPMArea(10, 64+YOFFSET, 2, 8, x+4, y); /* print the hundreds unit */
+ newx = x + 6 ;
+ sprintf(buf, "%02i", temp);
+ } else {
+ sprintf(buf, "%03i", num);
+ }
+ }
+ BlitString(buf, newx, y, is_big);
+}
+
+/*
+ * Usage
+ */
+void usage(void) {
+ fprintf(stderr, "\nwmbatppc - Lou <titelou at free.fr> http://titelou.free.fr\n\n");
+ fprintf(stderr, "usage:\n");
+ fprintf(stderr, " -display <display name>\n");
+ fprintf(stderr, " -r update rate in milliseconds (default:100)\n");
+ fprintf(stderr, "\n");
+}
+
+/*
+ * printversion
+ */
+void printversion(void) {
+ fprintf(stderr, "wmbatppc v%s\n", WMBATPPC_VERSION);
+}
diff --git a/wmbatppc.h b/wmbatppc.h
new file mode 100644
index 0000000..9c583d4
--- /dev/null
+++ b/wmbatppc.h
@@ -0,0 +1,124 @@
+/*
+ * Revision 0.2 24 Nov 2000 Lou
+ *
+ */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <dirent.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <math.h>
+#include <limits.h>
+#include <errno.h>
+#include <signal.h>
+
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+
+#include <netinet/in.h>
+#include <netdb.h>
+
+#include <X11/Xlib.h>
+#include <X11/xpm.h>
+#include <X11/extensions/shape.h>
+
+#define WMBATPPC_VERSION "0.1"
+
+#define LEFT_BATTERY 0
+#define RIGHT_BATTERY 1
+
+#define HIGH_BATT 0 // color green
+#define LOW_BATT 1 // color red
+#define MED_BATT 2 // color yellow
+
+#define NO_BATT 3
+#define IS_BATT 4
+
+#define NOCHARGE 0
+#define CHARGE 1
+#define UNPLUGGED 0
+#define PLUGGED 1
+
+#define LIMITED 0
+#define INFINITE 1
+
+#define SMALL 0
+#define BIG 1
+
+#define HOURS 0
+#define MINUTES 1
+
+#define V 0
+#define MV 1
+
+#define COMMA 0
+#define PERCENT 1
+
+#define WMAKER 10
+#define XIMIAN 20
+
+#define PMU_VERSION_KEYLARGO 12
+
+#define PMU_CONFIG_KEYWORD "pmu"
+#define PMU_STYLE_NAME "pmu"
+
+#define PMUD_INPUT_DELIM " \t\n{}"
+
+#define PMUD_HOST "localhost"
+#define PMUD_PORT 879
+#define PMUD_SERVICE "pmud"
+
+#define PMUD_REFRESH
+
+
+typedef struct {
+ int available;
+ int current;
+ int percentage;
+ int charging;
+ int voltage;
+} battery ;
+
+typedef struct {
+ int pmud_version ;
+ battery b [2] ;
+ int batt_state [2] ;
+ int time_left ;
+ int ac_connected ;
+ int show_charge_time ;
+ int current ;
+} pmud_info ;
+
+typedef struct {
+ int x ;
+ int y ;
+} coords ;
+
+typedef struct {
+ coords plug ;
+ coords charg ;
+ coords timeleft[2] ;
+ coords voltage[2] ;
+ coords batt[2] ;
+ coords percent[2] ;
+ coords jukeBox[2] ;
+ coords symbols[2] ;
+} interface ;
+
+void usage(void);
+void printversion(void);
+void BlitString(char *name, int x, int y, int is_big);
+void BlitNum(int num, int x, int y, int is_big, int two_digits);
+void wmbatppc_routine(int, char **);
+
+
diff --git a/wmgeneral.c b/wmgeneral.c
new file mode 100644
index 0000000..9834ea6
--- /dev/null
+++ b/wmgeneral.c
@@ -0,0 +1,481 @@
+/*
+ Best viewed with vim5, using ts=4
+
+ wmgeneral was taken from wmppp.
+
+ It has a lot of routines which most of the wm* programs use.
+
+ ------------------------------------------------------------
+
+ Author: Martijn Pieterse (pieterse at xs4all.nl)
+
+ ---
+ CHANGES:
+ ---
+ 14/09/1998 (Dave Clark, clarkd at skyia.com)
+ * Updated createXBMfromXPM routine
+ * Now supports >256 colors
+ 11/09/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * Removed a bug from parse_rcfile. You could
+ not use "start" in a command if a label was
+ also start.
+ * Changed the needed geometry string.
+ We don't use window size, and don't support
+ negative positions.
+ 03/09/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * Added parse_rcfile2
+ 02/09/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * Added -geometry support (untested)
+ 28/08/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * Added createXBMfromXPM routine
+ * Saves a lot of work with changing xpm's.
+ 02/05/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * changed the read_rc_file to parse_rcfile, as suggested by Marcelo E. Magallon
+ * debugged the parse_rc file.
+ 30/04/1998 (Martijn Pieterse, pieterse at xs4all.nl)
+ * Ripped similar code from all the wm* programs,
+ and put them in a single file.
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <stdarg.h>
+
+#include <X11/Xlib.h>
+#include <X11/xpm.h>
+#include <X11/extensions/shape.h>
+
+#include "wmgeneral.h"
+
+/*****************/
+/* X11 Variables */
+/*****************/
+
+Window Root;
+int screen;
+int x_fd;
+int d_depth;
+XSizeHints mysizehints;
+XWMHints mywmhints;
+Pixel back_pix, fore_pix;
+char *Geometry = "";
+Window iconwin, win;
+GC NormalGC;
+XpmIcon wmgen;
+Pixmap pixmask;
+
+/*****************/
+/* Mouse Regions */
+/*****************/
+
+typedef struct {
+ int enable;
+ int top;
+ int bottom;
+ int left;
+ int right;
+} MOUSE_REGION;
+
+MOUSE_REGION mouse_region[MAX_MOUSE_REGION];
+
+/***********************/
+/* Function Prototypes */
+/***********************/
+
+static void GetXPM(XpmIcon *, char **);
+static Pixel GetColor(char *);
+void RedrawWindow(void);
+void AddMouseRegion(int, int, int, int, int);
+int CheckMouseRegion(int, int);
+
+/*******************************************************************************\
+|* parse_rcfile
+\*******************************************************************************/
+
+void parse_rcfile(const char *filename, rckeys *keys) {
+
+ char *p,*q;
+ char temp[128];
+ char *tokens = " :\t\n";
+ FILE *fp;
+ int i,key;
+
+ fp = fopen(filename, "r");
+ if (fp) {
+ while (fgets(temp, 128, fp)) {
+ key = 0;
+ q = strdup(temp);
+ q = strtok(q, tokens);
+ while (key >= 0 && keys[key].label) {
+ if ((!strcmp(q, keys[key].label))) {
+ p = strstr(temp, keys[key].label);
+ p += strlen(keys[key].label);
+ p += strspn(p, tokens);
+ if ((i = strcspn(p, "#\n"))) p[i] = 0;
+ free(*keys[key].var);
+ *keys[key].var = strdup(p);
+ key = -1;
+ } else key++;
+ }
+ free(q);
+ }
+ fclose(fp);
+ }
+}
+
+/*******************************************************************************\
+|* parse_rcfile2
+\*******************************************************************************/
+
+void parse_rcfile2(const char *filename, rckeys2 *keys) {
+
+ char *p;
+ char temp[128];
+ char *tokens = " :\t\n";
+ FILE *fp;
+ int i,key;
+ char *family = NULL;
+
+ fp = fopen(filename, "r");
+ if (fp) {
+ while (fgets(temp, 128, fp)) {
+ key = 0;
+ while (key >= 0 && keys[key].label) {
+ if ((p = strstr(temp, keys[key].label))) {
+ p += strlen(keys[key].label);
+ p += strspn(p, tokens);
+ if ((i = strcspn(p, "#\n"))) p[i] = 0;
+ free(*keys[key].var);
+ *keys[key].var = strdup(p);
+ key = -1;
+ } else key++;
+ }
+ }
+ fclose(fp);
+ }
+ free(family);
+}
+
+
+/*******************************************************************************\
+|* GetXPM
+\*******************************************************************************/
+
+static void GetXPM(XpmIcon *wmgen, char *pixmap_bytes[]) {
+
+ XWindowAttributes attributes;
+ int err;
+
+ /* For the colormap */
+ XGetWindowAttributes(display, Root, &attributes);
+
+ wmgen->attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+
+ err = XpmCreatePixmapFromData(display, Root, pixmap_bytes, &(wmgen->pixmap),
+ &(wmgen->mask), &(wmgen->attributes));
+
+ if (err != XpmSuccess) {
+ fprintf(stderr, "Not enough free colorcells.\n");
+ exit(1);
+ }
+}
+
+/*******************************************************************************\
+|* GetColor
+\*******************************************************************************/
+
+static Pixel GetColor(char *name) {
+
+ XColor color;
+ XWindowAttributes attributes;
+
+ XGetWindowAttributes(display, Root, &attributes);
+
+ color.pixel = 0;
+ if (!XParseColor(display, attributes.colormap, name, &color)) {
+ fprintf(stderr, "wm.app: can't parse %s.\n", name);
+ } else if (!XAllocColor(display, attributes.colormap, &color)) {
+ fprintf(stderr, "wm.app: can't allocate %s.\n", name);
+ }
+ return color.pixel;
+}
+
+/*******************************************************************************\
+|* flush_expose
+\*******************************************************************************/
+
+static int flush_expose(Window w) {
+
+ XEvent dummy;
+ int i=0;
+
+ while (XCheckTypedWindowEvent(display, w, Expose, &dummy))
+ i++;
+
+ return i;
+}
+
+/*******************************************************************************\
+|* RedrawWindow
+\*******************************************************************************/
+
+void RedrawWindow(void) {
+
+ flush_expose(iconwin);
+ XCopyArea(display, wmgen.pixmap, iconwin, NormalGC,
+ 0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0);
+ flush_expose(win);
+ XCopyArea(display, wmgen.pixmap, win, NormalGC,
+ 0,0, wmgen.attributes.width, wmgen.attributes.height, 0,0);
+}
+
+/*******************************************************************************\
+|* RedrawWindowXY
+\*******************************************************************************/
+
+void RedrawWindowXY(int x, int y) {
+
+ flush_expose(iconwin);
+ XCopyArea(display, wmgen.pixmap, iconwin, NormalGC,
+ x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0);
+ flush_expose(win);
+ XCopyArea(display, wmgen.pixmap, win, NormalGC,
+ x,y, wmgen.attributes.width, wmgen.attributes.height, 0,0);
+}
+
+/*******************************************************************************\
+|* AddMouseRegion
+\*******************************************************************************/
+
+void AddMouseRegion(int index, int left, int top, int right, int bottom) {
+
+ if (index < MAX_MOUSE_REGION) {
+ mouse_region[index].enable = 1;
+ mouse_region[index].top = top;
+ mouse_region[index].left = left;
+ mouse_region[index].bottom = bottom;
+ mouse_region[index].right = right;
+ }
+}
+
+/*******************************************************************************\
+|* CheckMouseRegion
+\*******************************************************************************/
+
+int CheckMouseRegion(int x, int y) {
+
+ int i;
+ int found;
+
+ found = 0;
+
+ for (i=0; i<MAX_MOUSE_REGION && !found; i++) {
+ if (mouse_region[i].enable &&
+ x <= mouse_region[i].right &&
+ x >= mouse_region[i].left &&
+ y <= mouse_region[i].bottom &&
+ y >= mouse_region[i].top)
+ found = 1;
+ }
+ if (!found) return -1;
+ return (i-1);
+}
+
+/*******************************************************************************\
+|* createXBMfromXPM
+\*******************************************************************************/
+void createXBMfromXPM(char *xbm, char **xpm, int sx, int sy) {
+
+ int i,j,k;
+ int width, height, numcol, depth;
+ int zero=0;
+ unsigned char bwrite;
+ int bcount;
+ int curpixel;
+
+ sscanf(*xpm, "%d %d %d %d", &width, &height, &numcol, &depth);
+
+
+ for (k=0; k!=depth; k++) {
+ zero <<=8;
+ zero |= xpm[1][k];
+ }
+
+ for (i=numcol+1; i < numcol+sy+1; i++) {
+ bcount = 0;
+ bwrite = 0;
+ for (j=0; j<sx*depth; j+=depth) {
+ bwrite >>= 1;
+
+ curpixel=0;
+ for (k=0; k!=depth; k++) {
+ curpixel <<=8;
+ curpixel |= xpm[i][j+k];
+ }
+
+ if ( curpixel != zero ) {
+ bwrite += 128;
+ }
+ bcount++;
+ if (bcount == 8) {
+ *xbm = bwrite;
+ xbm++;
+ bcount = 0;
+ bwrite = 0;
+ }
+ }
+ }
+}
+
+/*******************************************************************************\
+|* copyXPMArea *|
+\*******************************************************************************/
+
+void copyXPMArea(int x, int y, int sx, int sy, int dx, int dy) {
+
+ XCopyArea(display, wmgen.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
+
+}
+
+/*******************************************************************************\
+|* copyXBMArea *|
+\*******************************************************************************/
+
+void copyXBMArea(int x, int y, int sx, int sy, int dx, int dy) {
+
+ XCopyArea(display, wmgen.mask, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
+}
+
+
+/*******************************************************************************\
+|* setMaskXY *|
+\*******************************************************************************/
+
+void setMaskXY(int x, int y) {
+
+ XShapeCombineMask(display, win, ShapeBounding, x, y, pixmask, ShapeSet);
+ XShapeCombineMask(display, iconwin, ShapeBounding, x, y, pixmask, ShapeSet);
+}
+
+/*******************************************************************************\
+|* openXwindow *|
+\*******************************************************************************/
+void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bits, int pixmask_width, int pixmask_height) {
+
+ unsigned int borderwidth = 1;
+ XClassHint classHint;
+ char *display_name = NULL;
+ char *wname = argv[0];
+ XTextProperty name;
+
+ XGCValues gcv;
+ unsigned long gcm;
+
+ char *geometry = NULL;
+
+ int dummy=0;
+ int i, wx, wy;
+
+ for (i=1; argv[i]; i++) {
+ if (!strcmp(argv[i], "-display")) {
+ display_name = argv[i+1];
+ i++;
+ }
+ if (!strcmp(argv[i], "-geometry")) {
+ geometry = argv[i+1];
+ i++;
+ }
+ }
+
+ if (!(display = XOpenDisplay(display_name))) {
+ fprintf(stderr, "%s: can't open display %s\n",
+ wname, XDisplayName(display_name));
+ exit(1);
+ }
+ screen = DefaultScreen(display);
+ Root = RootWindow(display, screen);
+ d_depth = DefaultDepth(display, screen);
+ x_fd = XConnectionNumber(display);
+
+ /* Convert XPM to XImage */
+ GetXPM(&wmgen, pixmap_bytes);
+
+ /* Create a window to hold the stuff */
+ mysizehints.flags = USSize | USPosition;
+ mysizehints.x = 0;
+ mysizehints.y = 0;
+
+ back_pix = GetColor("white");
+ fore_pix = GetColor("black");
+
+ XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints,
+ &mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy);
+
+ /* mysizehints.width = 64;
+ mysizehints.height = 64; */
+ mysizehints.width = pixmask_width;
+ mysizehints.height = pixmask_height;
+
+ win = XCreateSimpleWindow(display, Root, mysizehints.x, mysizehints.y,
+ mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
+
+ iconwin = XCreateSimpleWindow(display, win, mysizehints.x, mysizehints.y,
+ mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
+
+ /* Activate hints */
+ XSetWMNormalHints(display, win, &mysizehints);
+ classHint.res_name = wname;
+ classHint.res_class = wname;
+ XSetClassHint(display, win, &classHint);
+
+ XSelectInput(display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
+ XSelectInput(display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
+
+ if (XStringListToTextProperty(&wname, 1, &name) == 0) {
+ fprintf(stderr, "%s: can't allocate window name\n", wname);
+ exit(1);
+ }
+
+ XSetWMName(display, win, &name);
+
+ /* Create GC for drawing */
+
+ gcm = GCForeground | GCBackground | GCGraphicsExposures;
+ gcv.foreground = fore_pix;
+ gcv.background = back_pix;
+ gcv.graphics_exposures = 0;
+ NormalGC = XCreateGC(display, Root, gcm, &gcv);
+
+ /* ONLYSHAPE ON */
+
+ pixmask = XCreateBitmapFromData(display, win, pixmask_bits, pixmask_width, pixmask_height);
+
+ XShapeCombineMask(display, win, ShapeBounding, 0, 0, pixmask, ShapeSet);
+ XShapeCombineMask(display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet);
+
+ /* ONLYSHAPE OFF */
+
+ mywmhints.initial_state = WithdrawnState;
+ mywmhints.icon_window = iconwin;
+ mywmhints.icon_x = mysizehints.x;
+ mywmhints.icon_y = mysizehints.y;
+ mywmhints.window_group = win;
+ mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint;
+
+ XSetWMHints(display, win, &mywmhints);
+
+ XSetCommand(display, win, argv, argc);
+ XMapWindow(display, win);
+
+ if (geometry) {
+ if (sscanf(geometry, "+%d+%d", &wx, &wy) != 2) {
+ fprintf(stderr, "Bad geometry string.\n");
+ exit(1);
+ }
+ XMoveWindow(display, win, wx, wy);
+ }
+}
diff --git a/wmgeneral.h b/wmgeneral.h
new file mode 100644
index 0000000..e9d6ca6
--- /dev/null
+++ b/wmgeneral.h
@@ -0,0 +1,59 @@
+#ifndef WMGENERAL_H_INCLUDED
+#define WMGENERAL_H_INCLUDED
+
+ /***********/
+ /* Defines */
+/***********/
+
+#define MAX_MOUSE_REGION (16)
+
+ /************/
+ /* Typedefs */
+/************/
+
+typedef struct _rckeys rckeys;
+
+struct _rckeys {
+ const char *label;
+ char **var;
+};
+
+typedef struct _rckeys2 rckeys2;
+
+struct _rckeys2 {
+ const char *family;
+ const char *label;
+ char **var;
+};
+
+typedef struct {
+ Pixmap pixmap;
+ Pixmap mask;
+ XpmAttributes attributes;
+} XpmIcon;
+
+ /*******************/
+ /* Global variable */
+/*******************/
+
+Display *display;
+
+ /***********************/
+ /* Function Prototypes */
+/***********************/
+
+void AddMouseRegion(int index, int left, int top, int right, int bottom);
+int CheckMouseRegion(int x, int y);
+
+void openXwindow(int argc, char *argv[], char **, char *, int, int);
+void RedrawWindow(void);
+void RedrawWindowXY(int x, int y);
+
+void createXBMfromXPM(char *, char **, int, int);
+void copyXPMArea(int, int, int, int, int, int);
+void copyXBMArea(int, int, int, int, int, int);
+void setMaskXY(int, int);
+
+void parse_rcfile(const char *, rckeys *);
+
+#endif
diff --git a/xgbatppc-master.xpm b/xgbatppc-master.xpm
new file mode 100644
index 0000000..8ceed5d
--- /dev/null
+++ b/xgbatppc-master.xpm
@@ -0,0 +1,440 @@
+/* XPM */
+static char * xgbatppc_master_xpm[] = {
+"240 240 197 2",
+" c #00000000FFFF",
+". c #000000000000",
+"X c #000049494141",
+"o c #202020202020",
+"O c #FFFFFFFFFFFF",
+"+ c #96969A9A9696",
+"@ c #222222222222",
+"# c #2020B2B2AEAE",
+"$ c #0000FFFF0000",
+"% c #0101F1F10101",
+"& c #0404DFDF0404",
+"* c #0707CDCD0707",
+"= c #0909BCBC0909",
+"- c #0C0CAAAA0C0C",
+"; c #0E0E98980E0E",
+": c #10108B8B1010",
+"> c #131379791313",
+", c #15156B6B1515",
+"< c #161662621616",
+"1 c #171759591717",
+"2 c #0202EDED0202",
+"3 c #0505DBDB0505",
+"4 c #0707C9C90707",
+"5 c #0A0AB7B70A0A",
+"6 c #0C0CA5A50C0C",
+"7 c #0F0F93930F0F",
+"8 c #111182821111",
+"9 c #141470701414",
+"0 c #181851511818",
+"q c #1A1A48481A1A",
+"w c #0505D6D60505",
+"e c #0808C5C50808",
+"r c #0A0AB3B30A0A",
+"t c #0D0DA1A10D0D",
+"y c #10108F8F1010",
+"u c #12127D7D1212",
+"i c #1C1C36361C1C",
+"p c #0303E8E80303",
+"a c #151567671515",
+"s c #181855551818",
+"d c #1A1A43431A1A",
+"f c #1D1D31311D1D",
+"g c #FFFF00000000",
+"h c #FFFFFFFF0000",
+"j c #5555FFFF5D5D",
+"k c #10107D7D7979",
+"l c #18188A8A8686",
+"z c #B6B603031717",
+"x c #B9B912121616",
+"c c #BEBE28281313",
+"v c #C3C33D3D1111",
+"b c #C8C853530F0F",
+"n c #CDCD68680C0C",
+"m c #D2D27D7D0A0A",
+"M c #D7D793930808",
+"N c #DCDCA8A80505",
+"B c #E1E1BEBE0303",
+"V c #E7E7DCDC0000",
+"C c #D2D2DDDD0000",
+"Z c #BDBDDEDE0000",
+"A c #A8A8E0E00000",
+"S c #9393E1E10000",
+"D c #7E7EE2E20000",
+"F c #6969E4E40000",
+"G c #7E7EE1E10000",
+"H c #7D7DE2E20000",
+"J c #7C7CE2E20000",
+"K c #7B7BE2E20000",
+"L c #7A7AE2E20000",
+"P c #7979E2E20000",
+"I c #7878E2E20000",
+"U c #7777E2E20000",
+"Y c #7676E2E20000",
+"T c #7575E2E20000",
+"R c #7474E2E20000",
+"E c #7373E2E20000",
+"W c #7272E3E30000",
+"Q c #7171E3E30000",
+"! c #7070E3E30000",
+"~ c #6F6FE3E30000",
+"^ c #6E6EE3E30000",
+"/ c #6D6DE3E30000",
+"( c #6C6CE3E30000",
+") c #6B6BE3E30000",
+"_ c #6A6AE3E30000",
+"` c #6969E3E30000",
+"' c #6868E4E40000",
+"] c #0000EAEA0000",
+"[ c #B9B915151616",
+"{ c #BEBE2A2A1313",
+"} c #C3C33F3F1111",
+"| c #C8C855550E0E",
+" . c #CDCD6A6A0C0C",
+".. c #D2D280800A0A",
+"X. c #D7D795950707",
+"o. c #DCDCAAAA0505",
+"O. c #E1E1C0C00303",
+"+. c #28283C3C3838",
+"@. c #66666666CCCC",
+"#. c #BABA17171515",
+"$. c #BFBF2C2C1313",
+"%. c #C4C442421111",
+"&. c #C9C957570E0E",
+"*. c #CECE6C6C0C0C",
+"=. c #D3D382820909",
+"-. c #D8D897970707",
+";. c #DDDDACAC0505",
+":. c #E2E2C2C20202",
+">. c #78787878F3F3",
+",. c #BABA19191515",
+"<. c #BFBF2E2E1313",
+"1. c #C4C444441010",
+"2. c #C9C959590E0E",
+"3. c #CECE6E6E0C0C",
+"4. c #D3D384840909",
+"5. c #D8D899990707",
+"6. c #DDDDAFAF0404",
+"7. c #E2E2C4C40202",
+"8. c #FFFF66663333",
+"9. c #99999999FFFF",
+"0. c #B6B606061717",
+"q. c #BBBB1B1B1515",
+"w. c #C0C030301313",
+"e. c #C5C546461010",
+"r. c #CACA5B5B0E0E",
+"t. c #CFCF71710B0B",
+"y. c #D4D486860909",
+"u. c #D9D99B9B0707",
+"i. c #DEDEB1B10404",
+"p. c #E3E3C6C60202",
+"a. c #BBBBBBBBBBBB",
+"s. c #82828282B3B3",
+"d. c #B6B608081717",
+"f. c #BBBB1D1D1515",
+"g. c #C0C033331212",
+"h. c #C5C548481010",
+"j. c #CACA5D5D0E0E",
+"k. c #CFCF73730B0B",
+"l. c #D4D488880909",
+"z. c #D9D99D9D0606",
+"x. c #DEDEB3B30404",
+"c. c #E3E3C8C80202",
+"v. c #FFFF5F5F3333",
+"b. c #7F7F7F7FFFFF",
+"n. c #00007D7D7171",
+"m. c #B6B604041818",
+"M. c #E8E8DCDC0000",
+"N. c #0000EBEB0000",
+"B. c #F7F7F3F3FFFF",
+"V. c #494949494949",
+"C. c #7A7A7A7A7A7A",
+"Z. c #BCBCBCBCBCBC",
+"A. c #00007F7F7171",
+"S. c #000099998888",
+"D. c #FFFF51514C4C",
+"F. c #FFFFFCFC5858",
+"G. c #0000B3B39F9F",
+"H. c #FFFF83837474",
+"J. c #FFFFF8F87E7E",
+"K. c #7474B3B39A9A",
+"L. c #FFFFBEBEA5A5",
+"P. c #FFFF74746B6B",
+"I. c #FDFDFFFFA8A8",
+"U. c #FFFFF9F93E3E",
+"Y. c #FFFFFFFF3D3D",
+"T. c #FFFF8A8A0A0A",
+"R. c #FFFF76761111",
+"E. c #1616FFFF8F8F",
+"W. c #FFFF93932D2D",
+"Q. c #FFFF80802A2A",
+"!. c #4141FFFF9E9E",
+"~. c #FFFFACAC5A5A",
+"^. c #FFFFA6A67E7E",
+"/. c #9292FFFF9F9F",
+"(. c #FFFFC3C38B8B",
+"). c #FFFFA7A74545",
+"_. c #FFFFD1D19898",
+"`. c #FFFF8E8E5757",
+"'. c #B2B2FFFFABAB",
+"]. c #7F7FFFFF8E8E",
+"[. c #6363FFFF9B9B",
+"{. c #4E4EFFFF8585",
+"}. c #A2A2FFFF1313",
+"|. c #5353FFFF4848",
+" X c #7C7CFFFF8F8F",
+".X c #B5B5FFFF3030",
+"XX c #6464FFFF5656",
+"oX c #9F9FFFFFA2A2",
+"OX c #BABAFFFF6B6B",
+"+X c #8484FFFF6C6C",
+"@X c #A9A9FFFFA4A4",
+"#X c #8D8DFFFF8B8B",
+"$X c #BBBBFFFF8989",
+"%X c #9C9CFFFF5656",
+"&X c #ABABFFFF7E7E",
+"*X c #7A7AFFFF4343",
+"=X c #9393FFFF8181",
+" . ",
+" . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . . . . . . . . . . . . . X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X . . . . . . . . . . . . . . . . . ",
+" . o o o o o o o o o o O . . . X X X X X X X X X X X X X X X X X X . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . . . X X X X X X X X X X X X X X X X X X . . . . o o o o o o o o o o O . ",
+" . o o o o o o o o o o O . . X X X X X X X X X X X X X X X X X X X X X X X X . . . o o o o X X X X X X X X X X X X X X X X X X X X X o o o o X X X X X X X X X X X X X X X X X X X X X o o o o O . . X X X X X X X X X X X X X X X X X X X X X X X X . . . o o X X o o o o o o O . ",
+" . o o X X X o o o o o O . X X X X X X X X X X X X X X X X X X X X X X X X X X X X + . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o X X X o o o o o O . ",
+" . o X X o X @ o o o o O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . o o o X X X o o o o O . ",
+" . o o o o X X o o o o O . o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O . o o o X o o o o X X X o o o X X X o o o X o o o o X o o X o o o o X X X o o o X X X o o o X o o o o X o o o O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . o o o o X X X o o o O . ",
+" . o o o o o X o o o o O . o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o X X X o X o X o o o X o X o o o X o X o X o X o X o o X o X o X o o o X o X o o o X o X o X o X o X X X o O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . o o o o o X X X o o O . ",
+" . o o o X X X X X o o O . o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o X X X o X o X o o o X o X o o o X o o X o X o o X o o X o X o X o o o X o X o o o X o o X o X o o X X X o O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . o o o X X X X X X o O . ",
+" . o o X o o o o o X o O . o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O . o X X X o o o o X X X o o o X X X o o o o X o o o X o o X o o o o X X X o o o X X X o o o o X o o o X X X o O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . o o o o X X o o o o O . ",
+" . o o X o o o o o X o O . o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o X X X o X o X o o o X o X o o o X o o X o X o o X o o X o X o X o o o X o X o o o X o o X o X o o X X X o O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . o o o o o X X o o o O . ",
+" . o o X o o o o o X o O . o X o o o X o X o o o X o X o X o o o X o X o o o X o X o o o X o O . o X X X o X o X o o o X o X o o o X o X o X o X o X o o X o X o X o o o X o X o o o X o X o X o X o X X X o O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . o o o o o o X o o o O . ",
+" . o o X X X X X X X o O . o o X X X o o o X X X o o X o o X X X o o o X X X o o o X X X o o O . o o o X o o o o X X X o o o X X X o o o o o X o o X o o X o o o o X X X o o o X X X o o o o o X o o X o o o O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . o o o o o o o X o o O . ",
+" . o o o X o o o X o o O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . o o o o o o o o X o O . ",
+" . o o o X o o o X o o O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . o o o o o o o o o o O . ",
+" . o o o o o o o o o o O . o o o o X X X X X X X X X X X X X X X X X X X X X o o o o X X X X X X X X X X X X X X X X X X X X X o o o o O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . o o o o o o o o o o O . ",
+" . O O O O O O O O O O O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . O O O O O O O O O O O . ",
+" . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . ",
+" . ",
+" . ",
+" . ",
+" . ",
+" . ",
+" . ",
+" . ",
+" ",
+" ",
+" ",
+" ",
+" o ",
+" o ",
+" . . . . . . . . . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . . . . . . . . . . . . o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % & * = - ; : > , < 1 o o o o o o o o o o o o ",
+" . o o o o o o o o o o O o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O . o o o o o o o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2 3 4 5 6 7 8 9 < 0 q o o o o o o o o o o o o ",
+" . o o o o o o o o o o O o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o o X X o o o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2 w e r t y u , 1 q i o o o o o o o o o o o o ",
+" . o o X X X o o o o o O o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o o X X X o o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ p w e r t y > a s d f o o o o o o o o o o o o ",
+" . o X X o X @ o o o o O o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O . o o o X X X o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2 w e r t y u , 1 q i f o o o o o o o o o o o o o o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ o o o o g g g g g g g g g g g g g g g g g g g g g o o o o h h h h h h h h h h h h h h h h h h h h h o ",
+" . o o o o X X o o o o O o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O . o o o o X X X o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2 3 4 5 6 7 8 9 < 0 q d o o o o o o o o o o o o o $ X o o o o o o o o o o o o o o o o o o o X $ o o g X o o o o o o o o o o o o o o o o o o o X g o o h X o o o o o o o o o o o o o o o o o o o X h ",
+" . o o o o o X o o o o O o X o o o X o X o o o X o X o X o o o X o X o o o X o X o o o X o O . o o o o o X X X o o O o o o $ o o o o o o o o o o o o o o o o o o o o o $ o o g o o o o o o o o o o o o o o o o o o o o o g o o h o o o o o o o o o o o o o o o o o o o o o h ",
+" . o o o X X X X X o o O o o X X X o o o X X X o o X o o X X X o o o X X X o o o X X X o o O . o o o X X X X X X o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o o o o X X X o o o X X X o o o # o o o o $ o o g o o o o X X X o o o X X X o o o # o o o o g o o h o o o o X X X o o o X X X o o o # o o o o h ",
+" . o o X o o o o o X o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . o o o o X X o o o o O o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o $ $ $ o X o X o o o X o X o o o X o # o # o # o $ g g g o X o X o o o X o X o o o X o # o # o # o g h h h o X o X o o o X o X o o o X o # o # o # o h ",
+" . o o X o o o o o X o O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . o o o o o X X o o o O o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o $ $ $ o X o X o o o X o X o o o X o o # o # o o $ g g g o X o X o o o X o X o o o X o o # o # o o g h h h o X o X o o o X o X o o o X o o # o # o o h ",
+" . o o X o o o o o X o O . o o o o o o X o o o O o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o $ $ $ o o o o X X X o o o X X X o o o o # o o o $ g g g o o o o X X X o o o X X X o o o o # o o o g h h h o o o o X X X o o o X X X o o o o # o o o h ",
+" . o o X X X X X X X o O . . . . . . . . . . . o o o o o o o X o o O o o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o $ $ $ o X o X o o o X o X o o o X o o # o # o o $ g g g o X o X o o o X o X o o o X o o # o # o o g h h h o X o X o o o X o X o o o X o o # o # o o h ",
+" . o o o X o o o X o o O . . . . X X X X X X X X X X . . . . . o o o o o o o o X o O o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o $ $ $ o X o X o o o X o X o o o X o # o # o # o $ g g g o X o X o o o X o X o o o X o # o # o # o g h h h o X o X o o o X o X o o o X o # o # o # o h ",
+" . o o o X o o o X o o O . . . X X X X X X X X X X X X X X X X X X . . . . o o o o o o o o o o O o o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o o $ o o o o X X X o o o X X X o o o o o # o o $ o o g o o o o X X X o o o X X X o o o o o # o o g o o h o o o o X X X o o o X X X o o o o o # o o h ",
+" . o o o o o o o o o o O . . X X X X X X X X X X X X X X X X X X X X X X X X . . . o o o o o o o o o o O o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o o $ o o o o o o o o o o o o o o o o o o o o o $ o o g o o o o o o o o o o o o o o o o o o o o o g o o h o o o o o o o o o o o o o o o o o o o o o h ",
+" . O O O O O O O O O O O . X X X X X X X X X X X X X X X X X X X X X X X X X X X X + . O O O O O O O O O O O o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o X o o X o o o o X o X o o o o X o o o $ X o o o o o o o o o o o o o o o o o o o X $ o o g X o o o o o o o o o o o o o o o o o o o X g o o h X o o o o o o o o o o o o o o o o o o o X h ",
+" . . X X X X X X X X X X O O O O O O O O O O X X X X X X X X X X + O o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o o o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ o o o o g g g g g g g g g g g g g g g g g g g g g o o o o h h h h h h h h h h h h h h h h h h h h h o ",
+" . X X X X X X X X X O O O O O O X X X X X X X X X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ",
+" . X X X X X X X X O O O O X X X X X X X X O o ",
+" . X X X X X X X O O O O X X X X X X X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ o o o o g g g g g g g g g g g g g g g g g g g g g o o o o h h h h h h h h h h h h h h h h h h h h h o o o ",
+" . X X X X X X O O + X X X X X X X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ X o o o o o o o o o o o o o o o o o o o X j o o g X o o o o o o o o o o o o o o o o o o o X g o o h X o o o o o o o o o o o o o o o o o o o X h o o ",
+" . X X X X X X O + . X X X X X X O o o o o # # # # o o o X X X X k o k # # # # l o k # # # # k o k X X X X k o k # # # # k o k # # # # l o k # # # # k o k # # # # l o k # # # # l o o o o o o $ o o o o o o o o o o o o o o o o o o o o o $ o o g o o o o o o o o o o o o o o o o o o o o o g o o h o o o o o o o o o o o o o o o o o o o o o h o o ",
+" . X X X X X X O . X X X X X X O o o o # o o o o # o X o o o o # o X o o o o # o X o o o o # o # o o o o # o # o o o o X o # o o o o X o X o o o o # o # o o o o # o # o o o o # o o # o o o $ o o o o X X X o o o X X X o o o # o o o o $ o o g o o o o X X X o o o X X X o o o # o o o o g o o h o o o o X X X o o o X X X o o o # o o o o h o o ",
+" . X X X X X O . X X X X X O o o o # o o o o # o X o o o o # o X o o o o # o X o o o o # o # o o o o # o # o o o o X o # o o o o X o X o o o o # o # o o o o # o # o o o o # o o # o o o $ o X o X o o o X o X o o o X o # o # o # o $ $ $ g o X o X o o o X o X o o o X o # o # o # o g g g h o X o X o o o X o X o o o X o # o # o # o h h h ",
+" . X X X X X O . X X X X X O o o o # o o o o # o X o o o o # o X o o o o # o X o o o o # o # o o o o # o # o o o o X o # o o o o X o X o o o o # o # o o o o # o # o o o o # o o o o o o $ o X o X o o o X o X o o o X o o # o # o o $ $ $ g o X o X o o o X o X o o o X o o # o # o o g g g h o X o X o o o X o X o o o X o o # o # o o h h h ",
+" . X X X X X O . X X X X X O o o o k X X X X k o o X X X X k o k # # # # k o k # # # # k o k # # # # k o k # # # # k o k # # # # k o o X X X X k o k # # # # k o k # # # # k o o o o o o $ o o o o X X X o o o X X X o o o o # o o o $ $ $ g o o o o X X X o o o X X X o o o o # o o o g g g h o o o o X X X o o o X X X o o o o # o o o h h h ",
+" . X X X X X O . X X X X X O o o o # o o o o # o X o o o o # o # o o o o X o X o o o o # o X o o o o # o X o o o o # o # o o o o # o X o o o o # o # o o o o # o X o o o o # o o o o o o $ o X o X o o o X o X o o o X o o # o # o o $ $ $ g o X o X o o o X o X o o o X o o # o # o o g g g h o X o X o o o X o X o o o X o o # o # o o h h h ",
+" . X X X X X O . X X X X X O o o o # o o o o # o X o o o o # o # o o o o X o X o o o o # o X o o o o # o X o o o o # o # o o o o # o X o o o o # o # o o o o # o X o o o o # o o # o o o $ o X o X o o o X o X o o o X o # o # o # o $ $ $ g o X o X o o o X o X o o o X o # o # o # o g g g h o X o X o o o X o X o o o X o # o # o # o h h h ",
+" . X X X X O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X O o o o # o o o o # o X o o o o # o # o o o o X o X o o o o # o X o o o o # o X o o o o # o # o o o o # o X o o o o # o # o o o o # o X o o o o # o o # o o o $ o o o o X X X o o o X X X o o o o o # o o $ o o g o o o o X X X o o o X X X o o o o o # o o g o o h o o o o X X X o o o X X X o o o o o # o o h o o ",
+" . X X X X O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . X X X X O o o o o # # # # o o o X X X X k o k # # # # k o k # # # # k o o X X X X k o k # # # # k o k # # # # k o o X X X X k o k # # # # k o k # # # # k o o o o o o $ o o o o o o o o o o o o o o o o o o o o o $ o o g o o o o o o o o o o o o o o o o o o o o o g o o h o o o o o o o o o o o o o o o o o o o o o h o o ",
+" . X X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ X o o o o o o o o o o o o o o o o o o o X $ o o g X o o o o o o o o o o o o o o o o o o o X g o o h X o o o o o o o o o o o o o o o o o o o X h o o ",
+" . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ o o o o g g g g g g g g g g g g g g g g g g g g g o o o o h h h h h h h h h h h h h h h h h h h h h o o o ",
+" . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X X O o ",
+" . X X X X X O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . X X X X X O o ",
+" . X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X O o z x c v b n m M N B V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" . X X X X O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . X X X X O o z [ { } | ...X.o.O.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . +.@ @ @ @ +.+.+.+.+.O . +.+.+.+.+.+.+.+.+.+.O . . . . @. at .@. at .@. at .@. at .@. at .. . . . ",
+" . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O o z #.$.%.&.*.=.-.;.:.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . @ . . . @ @ +.+.+.+.O . +.+.+.+.@ +.+.+.+.+.O . . . @. at .@. at .>.>.>.>.>.>.>.>.>.>. at .@. at .@.. . . ",
+" . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O o z ,.<.1.2.3.4.5.6.7.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . @ . 8.8.. @ +.+.+.+.O . +.+.. . . +.+.+.+.+.O . . @. at .@.>.>.>.>.9.9.9.9.9.9.9.9.9.9.>.>.>.>. at .@. at .. . ",
+" . X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X O o 0.q.w.e.r.t.y.u.i.p.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . @ . 8.8.8.. @ +.+.+.O . +.. . +.. @ +.+.+.+.O . @. at .>.>.>.>.9.9.9.a.a.a.a.a.a.a.a.a.a.9.9.9.s.>.>.>.>. at .+ ",
+" . X X X X O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . X X X X O o d.f.g.h.j.k.l.z.x.c.V V V V V V C Z A S D F G G G H J K K L P P I U U Y T R R E W W Q ! ~ ~ ^ / / ( ) ) _ ` ' ' ' ] . +.. . 8.8.8.. @ +.+.O . +.+.+.+.. . +.+.+.+.O . . @.>.s.s.9.9.9.a.a.a.O O O O O O O O O O a.a.a.9.9.>.>.>.>.9.+ O ",
+" . X X X X O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . X X X X O o . +.+.@ . 8.8.8.. +.+.O . +.+.+.+.+.. @ +.+.+.O . @. at .>.s.s.9.9.a.a.O O O O O O a.a.9.9.s.s.s.9.a.O ",
+" o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.@ . . . 8.8.8.. +.O . +.+.+.. . . . . +.+.O . @.>.s.s.9.9.a.a.O O O O a.a.9.>.>.s.9.a.O ",
+" o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.. 8.8.8.8.8.8.8.. O . +.+.. @.>.9.a.9.. +.O . @.>.s.s.9.a.a.O O O O 9.s.>.>.s.9.a.O ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.+.. 8.8.8.. . o +.O . +.+.. @.>.9.a.9.. @ O . @.>.s.s.9.a.O O + 9.9.s.>.s.9.a.O ",
+" . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.+.+.. . 8.8.. o +.O . +.+.. @.>.9.a.9.. @ O . @.>.s.s.9.a.O + >.>.>.s.s.9.a.O ",
+" . o o o o X X X X X X X X X X X X X X X X X X X X X o o o o X X X X X X X X X X X X X X X X X X X X X o o o o O o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.+.+.+.+.. 8.@ o +.O . +.+.. . . . . . . @ O . @.>.s.s.9.a.O . . @.>.>.s.9.a.O ",
+" . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O o h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h . +.+.+.+.+.+.. 8.@ @ O . +.+.+.. @ @ @ . @ @ O . @.>.9.9.a.O . @.>.s.9.a.O ",
+" . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O o . +.+.+.+.+.+.+.. 8.@ O . +.+.+.. @ +.+.. @ +.O . @.>.9.9.a.O . @.>.s.9.a.O ",
+" . o o o X o o o o X X X o o o X X X o o o X o o o o X o o X o o o o X X X o o o X X X o o o X o o o o X o o o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . +.+.+.+.+.+.+.+.+.o O . +.+.+.+.@ +.+.+.@ +.O . @.>.9.9.9.O . @.>.>.9.a.O ",
+" . o X X X o X o X o o o X o X o o o X o X o X o X o X o o X o X o X o o o X o X o o o X o X o X o X o X X X o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . O O O O O O O O O O O . O O O O O O O O O O O . @.>.9.9.a.O . @.>.s.9.a.O ",
+" . o X X X o X o X o o o X o X o o o X o o X o X o o X o o X o X o X o o o X o X o o o X o o X o X o o X X X o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . @. at .>.9.a.a. . @.>.9.9.a.O ",
+" . o X X X o o o o X X X o o o X X X o o o o X o o o X o o X o o o o X X X o o o X X X o o o o X o o o X X X o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . . . . . . . . . . . . . . . . . . . . . . . . . @.s.9.a.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @.>.9.a.O ",
+" . o X X X o X o X o o o X o X o o o X o o X o X o o X o o X o X o X o o o X o X o o o X o o X o X o o X X X o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . o o o o o o o o o o O . o o o o o o o o o o O . @.s.9.a.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . @.>.9.a.O ",
+" . o X X X o X o X o o o X o X o o o X o X o X o X o X o o X o X o X o o o X o X o o o X o X o X o X o X X X o O o v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v. . o o X X o o o o o o O . o o o o o o o o o o O . @.s.9.9.a.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . @.>.s.9.a.O ",
+" . o o o X o o o o X X X o o o X X X o o o o o X o o X o o X o o o o X X X o o o X X X o o o o o X o o X o o o O o . o o X X X o o o o o O . o o X X X o o o o o O . @.s.9.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . @.>.9.a.O ",
+" . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o X X X o o o o O . o X X o X @ o o o o O . @.s.9.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . @.>.s.9.a.O ",
+" . o o o X o o o o o o o o o o o o o o o o o o o o o X o o X o o o o o o o o o o o o o o o o o o o o o X o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o o X X X o o o O . o o o o X X o o o o O . @.s.9.a.a.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . @.>.s.9.a.O ",
+" . o o o o X X X X X X X X X X X X X X X X X X X X X o o o o X X X X X X X X X X X X X X X X X X X X X o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o o o X X X o o O . o o o o o X o o o o O . @.s.9.a.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . @.>.9.a.O ",
+" . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o X X X X X X o O . o o o X X X X X o o O . @.s.9.a.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . @.>.9.a.O ",
+" . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o o X X o o o o O . o o X o o o o o X o O . @.s.9.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . @.>.9.a.O ",
+" o $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . o o o o o X X o o o O . o o X o o o o o X o O . @.b.9.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . @.>.9.a.O ",
+" o . o o o o o o X o o o O . o o X o o o o o X o O . @.s.9.a.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . @.>.9.a.O ",
+"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . o o o o o o o X o o O . o o X X X X X X X o O . @.s.9.a.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . @.>.9.a.O ",
+"o o # # # o o o X X X n.o n.# # # n.o n.# # # n.o n.X X X n.o n.# # # n.o n.# # # n.o n.# # # n.o n.# # # n.o n.# # # n.o o o o o o o o o o o o o o o o o o o . . . . . . . . . . . . . . . . . . . . . . . . . o o o o o o o o X o O . o o o X o o o X o o O . @.s.9.a.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . @.>.9.a.O ",
+"o # o o o # o X o o o # o X o o o # o X o o o # o # o o o # o # o o o X o # o o o X o X o o o # o # o o o # o # o o o # o o o o o o o o o o o o # o o o o o o . . m.m.. . . . M.M.. . . . N.N.. . . . +.+.. . . o o o o o o o o o o O . o o o X o o o X o o O ",
+"o # o o o # o X o o o # o X o o o # o X o o o # o # o o o # o # o o o X o # o o o X o X o o o # o # o o o # o # o o o # o o # o o o o # o o o o # o o o o o o . m.B.m.m.. . M.B.M.M.. . N.B.N.N.. . +.+.+.+.. . o o o o o o o o o o O . o o o o o o o o o o O ",
+"o n.X X X n.o o X X X n.o n.# # # n.o o # # # n.o n.# # # n.o n.# # # n.o n.# # # n.o o X X X n.o X # # # X o n.# # # n.o o n.o o o o n.o o o # o o o o o o o . m.m.m.m.. . M.M.M.M.. . N.N.N.N.. . +.+.+.+.. . O O O O O O O O O O O . O O O O O O O O O O O . . . . . . . . . . ",
+"o # o o o # o X o o o # o # o o o X o X o o o # o X o o o # o X o o o # o # o o o # o X o o o # o # o o o # o X o o o # o o o o o o o o o o o # o o o o o o o . . m.m.. . . . M.M.. . . . N.N.. . . . +.+.. . . . . . X X X X X X X X X X . . . . ",
+"o # o o o # o X o o o # o # o o o X o X o o o # o X o o o # o X o o o # o # o o o # o X o o o # o # o o o # o X o o o # o o # o o o o # o o # o o o o # o o o . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X . . . ",
+"o o # # # o o o X X X # o n.# # # n.o n.# # # n.o o X X X n.o n.# # # n.o n.# # # n.o o X X X n.o n.# # # n.o n.# # # n.o o n.o o o o n.o o # o o o o n.o o o . . X X X X X X X X X X X X X X X X X X X X X X X X . . ",
+"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . X X X X X X X X X X X X X X X X X X X X X X X X X X X X + ",
+" . . X X X X X X X X X X O O O O O O O O O O X X X X X X X X X X + O ",
+"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . X X X X X X X X X O O O O O O X X X X X X X X X O ",
+"o X # # # X o n.# # # o o n.# # # n.o n.# # # o o n.# # # n.o n.# # # n.o n.# # # n.o n.X X X n.o o X X X n.o o X X X n.o n.X X X n.o n.X X X o o # X X X # o n.# # # o o n.# # # n.o n.# # # n.o n.# # # n.o n.# # # n.o n.# # # n.o n.# # # n.o n.X X X n.o n.X X X n.o n.X X X n.o n.X X X n.o n.X X X n.o n.# # # n.o o o o . X X X X X X X X O O O O X X X X X X X X O ",
+"o # o o o # o # o o o # o # o o o X o # o o o # o # o o o X o # o o o X o # o o o X o # o o o # o X o o o # o X o o o # o # o o o # o # o o o X o # # o # # o # o o o # o # o o o # o # o o o # o # o o o # o # o o o # o # o o o X o X o # o X o # o o o # o # o o o # o # o o o # o # o o o # o # o o o # o X o o o # o o o o . X X X X X X X O O O O X X X X X X X O ",
+"o # o o o # o # o o o # o # o o o X o # o o o # o # o o o X o # o o o X o # o o o X o # o o o # o X o o o # o X o o o # o # o o # X o # o o o X o # o # o # o # o o o # o # o o o # o # o o o # o # o o o # o # o o o # o # o o o X o X o # o X o # o o o # o # o o o # o # o o o # o X # o # X o # o o o # o X o o # X o o o o . X X X X X X O O + X X X X X X X O ",
+"o n.# # # n.o n.# # # o o n.X X X o o n.X X X n.o n.# # # o o n.# # # o o n.X # # n.o n.# # # n.o o X X X n.o o X X X n.o n.# # X o o n.X X X o o n.X X X n.o n.X X X n.o n.X X X n.o n.# # # n.o n.# X X n.o n.# # # o o n.# # # n.o o X n.X o o n.X X X n.o n.X X X n.o n.X X X n.o o X # X o o n.# # # n.o o X # X o o o o o . X X X X X X O + . X X X X X X O ",
+"o # o o o # o # o o o # o # o o o X o # o o o # o # o o o X o # o o o X o # o o o # o # o o o # o X o o o # o X o o o # o # o o # X o # o o o X o # o o o # o # o o o # o # o o o # o # o o o X o # o # o # o # o o o # o X o o o # o X o # o X o # o o o # o # o o o # o # o # o # o X # o # X o X o o o # o X # o o X o o o o . X X X X X X O . X X X X X X O ",
+"o # o o o # o # o o o # o # o o o X o # o o o # o # o o o X o # o o o X o # o o o # o # o o o # o X o o o # o X o o o # o # o o o # o # o o o X o # o o o # o # o o o # o # o o o # o # o o o X o # o o # # o # o o o # o X o o o # o X o # o X o # o o o # o # o o o # o # # o # # o # o o o # o X o o o # o # o o o X o o o o . X X X X X O . X X X X X O ",
+"o n.X X X n.o n.# # # o o n.# # # n.o # # # # o o n.# # # n.o # X X X o o n.# # # n.o n.X X X n.o o X X X # o n.# # # n.o n.X X X n.o n.# # # X o n.X X X n.o # X X X # o n.# # # n.o n.X X X o o n.# # # n.o n.X X X n.o n.# # # n.o o X n.X o o X # # # # o o # # # o o # X X X # o n.X X X # n.n.# # # n.o n.# # # n.o o o o . X X X X X O . X X X X X O ",
+"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . X X X X X O . X X X X X O ",
+" . X X X X X O . X X X X X O ",
+" o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o . X X X X X O . X X X X X O ",
+" o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O o o o X X X X X X X X X X X X X X X X X X X X X o o X X X X X X X X X X X X X X X X X X X X X o o o o . X X X X O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X O ",
+" o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O o o X X o o o o o o o o o o o o o o o o o o o X X X o o o o o o o o o o o o o o o o o o o o o X o o o . X X X X O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . X X X X O ",
+" o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O o o X o o o o o o o o o o o o o o o o o o o o o X X o o o o o o o o o o o o o o o o o o o o o X o o o . X X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X X O ",
+" o o X X X o o o X X X o o o o o X X X o o o X X X o o o X X X o o O o o X o o o o X X X o o o X X X o o o X o o o o X X o o o o X X X o o o X X X o o o X o o o o X o o o . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O ",
+" o X o o o X o X o o o X o o o X o o o X o X o o o X o X o o o X o O X X X o X o X o o o X o X o o o X o X o X o X o X X o X o X o o o X o X o o o X o X o X o X o X X X o . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X X O ",
+" o X o o o X o X o o o X o X o X o o o X o X o o o X o X o o o X o O X X X o X o X o o o X o X o o o X o o X o X o o X X o X o X o o o X o X o o o X o o X o X o o X X X o . X X X X X O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . X X X X X O ",
+" o o X X X o o o X X X o o X o o X X X o o o X X X o o o X X X o o O X X X o o o o X X X o o o X X X o o o o X o o o X X o o o o X X X o o o X X X o o o o X o o o X X X o . X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X O ",
+" o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O X X X o X o X o o o X o X o o o X o o X o X o o X X o X o X o o o X o X o o o X o o X o X o o X X X o . X X X X O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . X X X X O ",
+" O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O X X X o X o X o o o X o X o o o X o X o X o X o X X o X o X o o o X o X o o o X o X o X o X o X X X o . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O ",
+" o o X o o o o X X X o o o X X X o o o o o X o o X X o o o o X X X o o o X X X o o o o o X o o X o o o . X X X X O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . X X X X O ",
+" o o X o o o o o o o o o o o o o o o o o o o o o X X o o o o o o o o o o o o o o o o o o o o o X o o o . X X X X O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . X X X X O ",
+"X n.# o o X X o o o o o o o o o o o o o o o o o o o X X X o o o o o o o o o o o o o o o o o o o o o X o o o . X X X X O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . X X X X O ",
+"V.C.Z. o o o X X X X X X X X X X X X X X X X X X X X X o o X X X X X X X X X X X X X X X X X X X X X o o o . X X X X O . +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.O . X X X X O ",
+" ",
+" ",
+" ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . A.A.A.A.A.A.A.A.A.A.. . . . . . . . g g g g g g g g g g . . . . . . . . h h h h h h h h h h . . . . ",
+" . . . A.A.A.A.S.S.S.S.S.S.S.S.S.S.A.A.A.A.. . . . . . g g g g D.D.D.D.D.D.D.D.D.D.g g g g . . . . . . h h h h F.F.F.F.F.F.F.F.F.F.h h h h . . . ",
+" . . A.A.A.S.S.S.S.G.G.G.G.G.G.G.G.G.G.S.S.S.S.A.A.A.. . . . g g g D.D.D.D.H.H.H.H.H.H.H.H.H.H.D.D.D.D.g g g . . . . h h h F.F.F.F.J.J.J.J.J.J.J.J.J.J.F.F.F.F.h h h . . ",
+" . A.A.S.S.S.S.K.K.K.a.a.a.a.a.a.a.a.a.a.K.K.K.S.A.A.A.A.A.K. . g g D.D.D.D.H.H.H.L.L.L.L.L.L.L.L.L.L.H.H.H.P.D.D.D.D.g + . h h F.F.F.F.J.J.J.I.I.I.I.I.I.I.I.I.I.J.J.J.U.F.F.F.F.h + ",
+" . . A.S.S.S.K.K.K.a.a.a.O O O O O O O O O O a.a.a.K.K.A.A.A.A.K.K.O . . g D.P.P.H.H.H.L.L.L.O O O O O O O O O O L.L.L.H.H.D.D.D.D.H.+ O . . h F.U.U.J.J.J.I.I.I.O O O O O O O O O O I.I.I.U.U.F.F.F.F.J.+ O ",
+" . A.A.S.S.S.K.K.a.a.O O O O O O a.a.K.K.A.A.A.K.a.O . g g D.P.P.H.H.L.L.O O O O O O L.L.H.H.P.g P.H.L.O . h h F.U.U.J.J.I.I.O O O O O O I.I.J.J.U.U.U.J.I.O ",
+" . A.S.S.S.K.K.a.a.O O O O a.a.K.A.A.S.K.a.O . g D.H.H.H.H.L.L.O O O O L.L.H.P.g P.L.L.O . h h U.U.J.J.I.I.O O O O I.I.J.F.F.U.J.O O ",
+" . A.S.S.S.K.a.a.O O O O K.S.A.A.K.K.a.O . g D.H.H.H.L.L.O O O O H.P.g g P.H.L.O . h F.U.U.J.I.I.O O O O J.U.F.F.U.I.I.O ",
+" . A.S.S.S.K.a.O O K.K.S.A.A.S.K.a.O . g D.H.H.H.L.O O + H.H.D.D.P.H.L.O . h F.U.U.U.I.O O + J.J.U.F.U.J.I.O ",
+" . A.A.S.S.K.a.O G.S.A.A.S.S.K.a.O . g D.H.H.H.L.O + D.D.g P.P.H.L.O . h F.U.U.J.I.I. + F.F.F.U.U.J.I.O ",
+" . A.S.S.S.K.a.O . . A.A.S.S.K.a.O . g D.H.H.H.L.O . . g D.D.P.H.L.O . h F.U.U.J.I.O . . h h h U.J.I.O ",
+" . A.S.G.G.a.O . A.A.S.K.a.O . g D.H.H.L.O . g D.P.H.L.O . h F.J.J.I.O . h h U.J.I.O ",
+" . A.G.G.G.a.O . A.G.S.K.a.O . g D.H.H.L.O . g D.P.H.L.O . h h J.J.I.O . h F.U.J.I.O ",
+" . A.S.G.G.G.O . A.S.S.K.a.O . g D.H.H.H.O . g D.D.L.L.O . h U.J.J.J.O . h F.F.J.I.O ",
+" . A.S.G.G.a.O . A.S.S.K.a.O . g D.H.H.L.O . g D.P.L.L.O . h U.J.J.I.O . h F.F.J.I.O ",
+" . A.A.S.G.a.a. . A.G.K.K.a.O . g g D.H.L.L. . g P.H.H.L.O . h h U.J.I.I. . h U.J.J.I.O ",
+" . A.S.K.K.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.S.K.a.O . g D.H.L.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g D.H.L.O . h U.J.I.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h F.J.I.O ",
+" . A.S.K.K.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . A.S.K.a.O . g D.H.L.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . g D.H.H.O . h U.J.I.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . h F.J.I.O ",
+" . A.S.K.K.K.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . A.S.G.K.a.O . g D.H.H.L.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . g D.H.H.L.O . h F.J.J.I.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . h F.U.J.I.O ",
+" . A.S.K.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . S.A.K.a.O . g D.H.L.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . g D.H.L.O . h F.J.I.I. . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . h F.J.I.O ",
+" . A.S.K.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . S.A.G.K.a.O . g D.H.L.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . g D.H.L.L.O . h F.J.I.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . h F.U.J.I.O ",
+" . A.S.K.a.a.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . S.A.G.K.a.O . g D.H.L.L.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . g D.H.H.L.O . h Y.J.I.I.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . h F.U.J.I.O ",
+" . A.S.K.a.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . A.S.K.a.O . g D.H.L.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . g H.H.L.O . h Y.J.I.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . h F.J.I.O ",
+" . A.S.K.a.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . A.S.K.a.O . g D.H.L.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . g D.H.L.O . h Y.J.I.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . h F.J.I.O ",
+" . A.S.K.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . A.S.K.a.O . g D.H.L.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . g D.H.L.O . h Y.J.I.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . h F.J.I.O ",
+" . A.G.K.a.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . A.S.K.a.O . g D.H.L.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . g D.H.L.O . h Y.J.I.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . h F.J.I.O ",
+" . A.s.K.a.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . A.S.K.a.O . g D.H.L.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . g D.H.L.O . h Y.J.I.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . h F.J.I.O ",
+" . A.s.K.a.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . A.S.K.a.O . g D.H.L.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . g D.H.L.O . h Y.J.I.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . h F.J.I.O ",
+" . A.s.K.a.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . A.S.K.a.O . g D.H.L.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . g D.H.L.O . h Y.J.I.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . h F.J.I.O ",
+" ",
+" ",
+" ",
+" ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . T.T.T.T.T.T.T.T.T.T.. . . . . . . . R.R.R.R.R.R.R.R.R.R.. . . . . . . . E.E.E.E.E.E.E.E.E.E.. . . . ",
+" . . . T.T.T.T.W.W.W.W.W.W.W.W.W.W.T.T.T.T.. . . . . . R.R.R.R.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.R.R.R.R.. . . . . . E.E.E.E.!.!.!.!.!.!.!.!.!.!.E.E.E.E.. . . ",
+" . . T.T.T.W.W.W.W.~.~.~.~.~.~.~.~.~.~.W.W.W.W.T.T.T.. . . . R.R.R.Q.Q.Q.Q.^.^.^.^.^.^.^.^.^.^.Q.Q.Q.Q.R.R.R.. . . . E.E.E.!.!.!.!././././././././././.!.!.!.!.E.E.E.. . ",
+" . T.T.W.W.W.W.~.~.~.(.(.(.(.(.(.(.(.(.(.~.~.~.).W.W.W.W.T.+ . R.R.Q.Q.Q.Q.^.^.^._._._._._._._._._._.^.^.^.`.Q.Q.Q.Q.R.+ . E.E.!.!.!.!./././.'.'.'.'.'.'.'.'.'.'./././.].!.!.!.!.E.+ ",
+" . . T.W.W.W.~.~.~.(.(.(.O O O O O O O O O O (.(.(.~.~.W.W.W.W.~.+ (. . . R.Q.`.`.^.^.^._._._.O O O O O O O O O O _._._.^.^.Q.Q.Q.Q.^.+ O . . E.E.!.!./././.'.'.'.O O O O O O O O O O '.'.'././.!.!.!.!./.+ O ",
+" . T.T.W.W.W.~.~.(.(.O O O O O O (.(.~.~.).).).~.(.O . R.R.Q.`.`.^.^._._.O O O O O O _._.^.^.`.`.`.^._.O . E.E.!.!.!././.'.'.O O O O O O '.'././.[.[.[./.'.O ",
+" . T.W.).).~.~.(.(.O O O O (.(.~.W.W.).~.(.O . R.Q.`.`.^.^._._.O O O O _._.^.Q.Q.`.^._.O . E.!.[.[././.'.'.O O O O a.a./.[.[.]./.'.O ",
+" . T.W.).).~.(.(.O O O O ~.).W.W.).~.(.O . R.Q.`.`.^._._.O O O O ^.`.Q.Q.`.`._.O . E.!.[.[./.'.'.O O '.'././.[.[.[./.'.O ",
+" . T.W.).).~.(.O O + ~.~.W.T.).~.(.O . R.Q.`.`.^._.O O + ^.^.Q.R.`.^._.O . E.!.[.[./.'.O O + /./.[.E.[./.'.O ",
+" . T.W.).).~.(.O + T.T.T.).).~.(.O . R.Q.`.`.^._.O + R.R.R.`.`.^._.O . E.!.[.[./.'.O + E.E.E.[.[./.'.O ",
+" . T.W.).).~.(.O . . T.W.W.).~.(.O . R.Q.`.`.^._.O . . R.Q.Q.`.^._.O . E.!.[.[./.'.O . . E.!.!.]./.'.O ",
+" . T.W.~.~.(.O . T.W.).~.(.O . R.Q.^.^._.O . R.Q.`.^._.O . E.!././.'.O . E.!.]./.'.O ",
+" . T.W.~.~.(.O . T.W.).~.(.O . R.Q.^.^._.O . R.Q.`.^._.O . E.!././.'.O . E.!.]./.'.O ",
+" . T.W.~.~.~.O . T.W.W.~.(.O . R.Q.^.^.^.O . R.Q.Q.^._.O . E.!./././.O . E.!.!./.'.O ",
+" . T.W.~.~.(.O . T.W.).~.(.O . R.Q.^.^._.O . R.Q.`.^._.O . E.!././.'.O . E.!.]./.'.O ",
+" . T.T.W.~.(.(. . T.).~.~.(.O . R.R.Q.^._._. . R.Q.^.^._.O . E.E.!./.'.'. . E.]././.'.O ",
+" . T.W.~.(.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T.W.~.(.O . R.Q.^._.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R.Q.^._.O . E.!./.'.O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E.!./.'.O ",
+" . T.W.~.(.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . T.W.~.(.O . R.Q.^._.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . R.Q.^._.O . E.!./.'.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . E.!./.'.O ",
+" . T.W.~.~.(.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . T.W.~.~.(.(. . R.Q.^.^._.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . R.Q.`.^._.O . E.!././.'.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . E.!.]./.'.O ",
+" . T.W.~.(.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . T.W.~.(.(. . R.Q.^._.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . R.Q.^._.O . E.!./.'.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . E.!./.'.O ",
+" . T.W.~.(.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . T.W.~.~.(.O . R.Q.^._.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . R.Q.`.^._.O . E.!./.'.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . E.!.]./.'.O ",
+" . T.W.~.(.(.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . T.W.~.~.(.O . R.Q.^._._.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . R.Q.`.^._.O . E.!./.'.'.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . E.!.]./.'.O ",
+" . T.W.~.(.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . T.~.~.(.O . R.Q.^._.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . R.Q.^._.O . E.!./.'.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . E.!./.'.O ",
+" . T.W.~.(.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . T.W.~.(.O . R.Q.^._.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . R.Q.^._.O . E.!./.'.O . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . E.!./.'.O ",
+" . T.W.~.(.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . T.W.~.(.O . R.Q.^._.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . R.Q.^._.O . E.!./.'.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . E.!./.'.O ",
+" . T.W.~.(.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . T.W.~.(.O . R.Q.^._.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . R.Q.^._.O . E.!./.'.O . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . E.!./.'.O ",
+" . T.W.~.(.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . T.W.~.(.O . R.Q.^._.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . R.Q.^._.O . E.!./.'.O . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . E.!./.'.O ",
+" . T.W.~.(.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . T.W.~.(.O . R.Q.^._.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . R.Q.^._.O . E.!./.'.O . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . E.!./.'.O ",
+" . T.W.~.(.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . T.W.~.(.O . R.Q.^._.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . R.Q.^._.O . E.!./.'.O . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . E.!./.'.O ",
+" ",
+" ",
+" ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . {.{.{.{.{.{.{.{.{.{.. . . . . . . . }.}.}.}.}.}.}.}.}.}.. . . . . . . . |.|.|.|.|.|.|.|.|.|.. . . . ",
+" . . . {.{.{.{. X X X X X X X X X X{.{.{.{.. . . . . . }.}.}.}..X.X.X.X.X.X.X.X.X.X}.}.}.}.. . . . . . |.|.|.|.XXXXXXXXXXXXXXXXXXXX|.|.|.|.. . . ",
+" . . {.{.{. X X X XoXoXoXoXoXoXoXoXoXoX X X X X{.{.{.. . . . }.}.}..X.X.X.XOXOXOXOXOXOXOXOXOXOX.X.X.X.X}.}.}.. . . . |.|.|.XXXXXXXX+X+X+X+X+X+X+X+X+X+XXXXXXXXX|.|.|.. . ",
+" . {.{. X X X XoXoXoX at X@X at X@X at X@X at X@X at X@XoXoXoX#X X X X X{.+ . @. at ..X.X.X.XOXOXOX$X$X$X$X$X$X$X$X$X$XOXOXOX%X.X.X.X.X}.+ . |.|.XXXXXXXX+X+X+X&X&X&X&X&X&X&X&X&X&X+X+X+X*XXXXXXXXX|.+ ",
+" . . {. X#X#XoXoXoX at X@X at XO O O O O O O O O O @X at X@XoXoX X X X XoX+ O . . }..X%X%XOXOXOX$X$X$XO O O O O O O O O O $X$X$XOXOX.X.X.X.XOX+ O . . |.XX*X*X+X+X+X&X&X&XO O O O O O O O O O &X&X&X+X+XXXXXXXXX+X+ O ",
+" . {.{. X#X#XoXoX at X@XO O O O O O @X at XoXoX=X=X=XoX at XO . }.}..X%X%XOXOX$X$XO O O O O O $X$XOXOX%X%X%XOXOXO . |.|.XX*X*X+X+X&X&XO O O O O O &X&X+X+X*X*X*X+X&XO ",
+" . {. X X XoXoX at X@XO O O O @X at XoX=X=X=XoX at XO . }..X%X%XOXOX$X$XO O O O $X$XOX%X%X%XOX$XO . |.XX*X*X+X+X&X&XO O O O &X&X+X*X*X*X+X&XO ",
+" . {. X X XoX at X@XO O O O oX=X=X=X=XoX at XO . }..X%X%XOX$X$XO O O O OX%X%X%X%XOX$XO . |.XX*X*X+X&X&XO O O O +X*X*X*X*X+X&XO ",
+" . {. X X XoX at XO O + oXoX X{.=XoX at XO . }..X%X%XOX$XO O + OXOX.X}.%XOX$XO . |.XX*X*X+X&XO O + *X*X*X|.*X+X&XO ",
+" . {. X X XoX at XO + {.{.{.=X=XoX at XO . }..X%X%XOX$XO + }.}.}.%X%XOX$XO . |.XX*X*X+X&XO + |.|.|.*X*X+X&XO ",
+" . {. X X XoX at XO . . {. X X#XoX at XO . }..X%X%XOX$XO . . }..X.X%XOX$XO . |.XX*X*X+X&XO . . |.XXXX*X+X&XO ",
+" . {. XoXoX at XO . {. X#XoX at XO . }..XOXOX$XO . }..X%XOX$XO . |.XX+X+X&XO . |.XX*X+X&XO ",
+" . {. XoXoX at XO . {.{.#XoX at XO . }..XOXOX$XO . }..X%XOX$XO . |.XX+X+X&XO . |.XX*X+X&XO ",
+" . {. XoXoXoXO . {. X XoX at XO . }..XOXOXOXO . }.OXOXOX$XO . |.XX+X+X+XO . |.XXXX+X&XO ",
+" . {. XoXoX at XO . {. X#XoX at XO . }..XOXOX$XO . }.OX%XOX$XO . |.XX+X+X&XO . |.XX*X+X&XO ",
+" . {.{. XoX at X@X . {. XoXoX at XO . }.}..XOX$X$X . }..XOXOX$XO . |.|.XX+X&X&X . |.XX+X+X&XO ",
+" . {. XoX at XO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . {. XoX at XO . }..XOX$XO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }..XOX$XO . |.XX+X&XO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |.*X+X&XO ",
+" . {. XoX at XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . {. XoX at XO . }..XOX$XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . }..XOX$XO . |.XX+X&XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . |.*X+X&XO ",
+" . {. XoXoX at XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . {. X#XoX at XO . }..XOXOX$XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . }..X%XOX$XO . |.XX+X+X&XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . |.XX*X+X&XO ",
+" . {. XoX at XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . {.#XoX at XO . }..XOX$XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . }..XOX$XO . |.XX+X&XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . XX*X+X&XO ",
+" . {. XoX at XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . {.#X#XoX at XO . }..XOX$XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . }..XOXOX$XO . |.XX+X&XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . XXXX*X+X&XO ",
+" . {. XoX at X@XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . {.#X#XoX at XO . }..XOX$X$XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . }..XOXOX$XO . |.XX+X&X&XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . XXXX*X+X&XO ",
+" . {. XoX at XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . {.#XoX at XO . }..XOX$XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . }..XOX$XO . |.XX+X&XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . |.XX+X&XO ",
+" . {. XoX at XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . {.#XoX at XO . }..XOX$XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . }..XOX$XO . |.XX+X&XO . o X o o o o X o X o o o o X o o o o o X o o o o X o X o o o o X o o O . |.XX+X&XO ",
+" . {. XoX at XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . {.#XoX at XO . }..XOX$XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . }..XOX$XO . |.XX+X&XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . |.XX+X&XO ",
+" . {. XoX at XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . {.#XoX at XO . }..XOX$XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . }..XOX$XO . |.XX+X&XO . o X o o o o X o X o o o o X o o # o o X o o o o X o X o o o o X o o O . |.XX+X&XO ",
+" . {. XoX at XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . {.#XoX at XO . }..XOX$XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . }..XOX$XO . |.XX+X&XO . o o X X X X o o o X X X X o o o o o o o X X X X o o o X X X X o o o O . |.XX+X&XO ",
+" . {. XoX at XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . {.#XoX at XO . }..XOX$XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . }..XOX$XO . |.XX+X&XO . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O . |.XX+X&XO ",
+" . {. XoX at XO . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . {.#XoX at XO . }..XOX$XO . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . }..XOX$XO . |.XX+X&XO . O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O . |.XX+X&XO ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmbatppc.git
More information about the Pkg-wmaker-commits
mailing list