diff options
author | Otto Wyss <otto.wyss@orpatec.ch> | 2004-11-03 21:25:36 +0000 |
---|---|---|
committer | Otto Wyss <otto.wyss@orpatec.ch> | 2004-11-03 21:25:36 +0000 |
commit | b6c21f25b6b19dd464a151dbbeabcfb99a4e1118 (patch) | |
tree | 3a6ef7fc38e3df046f84d78b3f8f56d5e48ba6c2 | |
download | fbtest-b6c21f25b6b19dd464a151dbbeabcfb99a4e1118.tar.gz |
Moved up from base
68 files changed, 21743 insertions, 0 deletions
@@ -0,0 +1,341 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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..b628bd8 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ + +TOPDIR = . + +TARGET = $(CROSS_COMPILE)fbtest + +OBJS += drawops/drawops.o fonts/fonts.o images/images.o visops/visops.o \ + tests/tests.o + +SUBDIRS = drawops pnmtohex fonts images visops tests + +include $(TOPDIR)/Rules.make + diff --git a/Rules.make b/Rules.make new file mode 100644 index 0000000..d8ed6a0 --- /dev/null +++ b/Rules.make @@ -0,0 +1,60 @@ + +CC = $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)ld +HOSTCC = gcc + +IFLAGS = -I$(TOPDIR)/include +#DFLAGS = -g +OFLAGS = -O3 -fomit-frame-pointer +CFLAGS = -Wall -Werror $(IFLAGS) $(DFLAGS) $(OFLAGS) + +SRCS += $(wildcard *.c) +OBJS += $(subst .c,.o,$(SRCS)) +HDRS += $(wildcard *.h) +HDRS += $(wildcard $(TOPDIR)/include/*.h) + +.PHONY: all all_rec clean clean_rec + + +all: .depend all_rec $(TARGET) $(O_TARGET) $(HOST_TARGET) + +all_rec: +ifdef SUBDIRS + for i in $(SUBDIRS); do make -C $$i all; done +endif + +$(TARGET): $(OBJS) + $(CC) -o $(TARGET) $(filter $(OBJS), $^) $(LIBS) + +$(O_TARGET): $(OBJS) + $(LD) -r -o $(O_TARGET) $(filter $(OBJS), $^) + +$(HOST_TARGET): $(SRCS) + $(HOSTCC) -o $(HOST_TARGET) $(CFLAGS) $(SRCS) $(LIBS) + + +clean:: clean_rec + $(RM) $(TARGET) $(HOST_TARGET) $(OBJS) .depend + +clean_rec: +ifdef SUBDIRS + for i in $(SUBDIRS); do make -C $$i clean; done +endif + + +%.o: %.c + $(CC) -c $(CFLAGS) -o $@ $< + + +ifeq ($(HOST_TARGET),) +.depend: $(SRCS) $(HDRS) + $(CC) -M $(CFLAGS) $(SRCS) > .depend +else +.depend: $(SRCS) $(HDRS) + $(HOSTCC) -M $(CFLAGS) $(SRCS) > .depend +endif + +ifneq ($(wildcard .depend),) +include .depend +endif + @@ -0,0 +1,173 @@ + +/* + * CLUT manipulation + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <string.h> + +#include "types.h" +#include "visual.h" +#include "util.h" + + + /* + * Monochrome + */ + +const rgba_t clut_mono[2] = { + { 0x0000, 0x0000, 0x0000, 0xffff }, + { 0xffff, 0xffff, 0xffff, 0xffff } +}; + + + /* + * Linux console palette + */ + +const rgba_t clut_console[16] = { + { 0x0000, 0x0000, 0x0000, 0xffff }, + { 0x0000, 0x0000, 0xaaaa, 0xffff }, + { 0x0000, 0xaaaa, 0x0000, 0xffff }, + { 0x0000, 0xaaaa, 0xaaaa, 0xffff }, + { 0xaaaa, 0x0000, 0x0000, 0xffff }, + { 0xaaaa, 0x0000, 0xaaaa, 0xffff }, + { 0xaaaa, 0x5555, 0x0000, 0xffff }, + { 0xaaaa, 0xaaaa, 0xaaaa, 0xffff }, + { 0x5555, 0x5555, 0x5555, 0xffff }, + { 0x5555, 0x5555, 0xffff, 0xffff }, + { 0x5555, 0xffff, 0x5555, 0xffff }, + { 0x5555, 0xffff, 0xffff, 0xffff }, + { 0xffff, 0x5555, 0x5555, 0xffff }, + { 0xffff, 0x5555, 0xffff, 0xffff }, + { 0xffff, 0xffff, 0x5555, 0xffff }, + { 0xffff, 0xffff, 0xffff, 0xffff } +}; + + + /* + * VGA palette + */ + +const rgba_t clut_vga[16] = { + { 0x0000, 0x0000, 0x0000, 0xffff }, + { 0x8080, 0x0000, 0x0000, 0xffff }, + { 0x0000, 0x8080, 0x0000, 0xffff }, + { 0x8080, 0x8080, 0x0000, 0xffff }, + { 0x0000, 0x0000, 0x8080, 0xffff }, + { 0x8080, 0x0000, 0x8080, 0xffff }, + { 0x0000, 0x8080, 0x8080, 0xffff }, + { 0xc0c0, 0xc0c0, 0xc0c0, 0xffff }, + { 0x8080, 0x8080, 0x8080, 0xffff }, + { 0xffff, 0x0000, 0x0000, 0xffff }, + { 0x0000, 0xffff, 0x0000, 0xffff }, + { 0xffff, 0xffff, 0x0000, 0xffff }, + { 0x0000, 0x0000, 0xffff, 0xffff }, + { 0xffff, 0x0000, 0xffff, 0xffff }, + { 0x0000, 0xffff, 0xffff, 0xffff }, + { 0xffff, 0xffff, 0xffff, 0xffff }, +}; + + + /* + * 4 Extra Windows colors + */ + +const rgba_t clut_windows[4] = { + { 0xc0c0, 0xdcdc, 0xc0c0, 0xffff }, + { 0xa6a6, 0xcaca, 0xf0f0, 0xffff }, + { 0xffff, 0xfbfb, 0xf0f0, 0xffff }, + { 0xa0a0, 0xa0a0, 0xa4a4, 0xffff }, +}; + + + /* + * Create a color cube + */ + +void clut_create_rgbcube(rgba_t *clut, u32 rlen, u32 glen, u32 blen) +{ + u32 r, g, b; + u16 red, green, blue; + + Debug("clut_create_rgbcube(): RGB %dx%dx%d\n", rlen, glen, blen); + for (r = 0; r < rlen; r++) { + red = EXPAND_TO_16BIT(r, rlen-1); + for (g = 0; g < glen; g++) { + green = EXPAND_TO_16BIT(g, glen-1); + for (b = 0; b < blen; b++) { + blue = EXPAND_TO_16BIT(b, blen-1); + clut->r = red; + clut->g = green; + clut->b = blue; + clut->a = 0xffff; + clut++; + } + } + } +} + + + /* + * Create a linear ramp + */ + +void clut_create_linear(rgba_t *clut, u32 len) +{ + u32 i; + u16 gray; + + Debug("clut_create_linear(): GRAY %d\n", len); + for (i = 0; i < len; i++) { + gray = EXPAND_TO_16BIT(i, len-1); + clut->r = gray; + clut->g = gray; + clut->b = gray; + clut->a = 0xffff; + clut++; + } +} + + + /* + * Create a `useful' palette + */ + +void clut_init_nice(void) +{ + if (idx_len >= 512) { + clut_create_rgbcube(clut, 8, 8, 8); + } else if (idx_len >= 256) { + memcpy(clut, clut_console, sizeof(clut_console)); + /* FIXME: skip colors that are already present */ + clut_create_rgbcube(clut+16, 6, 6, 6); + /* FIXME: skip colors that are already present */ + clut_create_linear(clut+232, 24); + } else if (idx_len >= 128) { + memcpy(clut, clut_console, sizeof(clut_console)); + /* FIXME: skip colors that are already present */ + clut_create_rgbcube(clut+16, 4, 4, 4); + /* FIXME: skip colors that are already present */ + clut_create_linear(clut+80, 48); + } else if (idx_len >= 64) { + clut_create_rgbcube(clut, 4, 4, 4); + } else if (idx_len >= 32) { + clut_create_rgbcube(clut, 3, 3, 3); + /* FIXME: still 3 entries left */ + } else if (idx_len >= 16) { + memcpy(clut, clut_console, sizeof(clut_console)); + } else if (idx_len >= 8) { + memcpy(clut, clut_console, 8*sizeof(rgba_t)); + } else if (idx_len >= 4) { + clut_create_linear(clut, 4); + } else if (idx_len >= 2) { + memcpy(clut, clut_mono, sizeof(clut_mono)); + } + + clut_update(); +} @@ -0,0 +1,895 @@ + +/* + * Color manipulation + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "color.h" + + + /* + * Relative weight RGB versus alpha + */ + +#define RGB_WEIGHT 4 + + + /* + * X11 colors from rgb.txt + */ + +const rgba_t c_snow = { 0xffff, 0xfafa, 0xfafa, 0xffff }; +const rgba_t c_ghost_white = { 0xf8f8, 0xf8f8, 0xffff, 0xffff }; +const rgba_t c_GhostWhite = { 0xf8f8, 0xf8f8, 0xffff, 0xffff }; +const rgba_t c_white_smoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff }; +const rgba_t c_WhiteSmoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff }; +const rgba_t c_gainsboro = { 0xdcdc, 0xdcdc, 0xdcdc, 0xffff }; +const rgba_t c_floral_white = { 0xffff, 0xfafa, 0xf0f0, 0xffff }; +const rgba_t c_FloralWhite = { 0xffff, 0xfafa, 0xf0f0, 0xffff }; +const rgba_t c_old_lace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff }; +const rgba_t c_OldLace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff }; +const rgba_t c_linen = { 0xfafa, 0xf0f0, 0xe6e6, 0xffff }; +const rgba_t c_antique_white = { 0xfafa, 0xebeb, 0xd7d7, 0xffff }; +const rgba_t c_AntiqueWhite = { 0xfafa, 0xebeb, 0xd7d7, 0xffff }; +const rgba_t c_papaya_whip = { 0xffff, 0xefef, 0xd5d5, 0xffff }; +const rgba_t c_PapayaWhip = { 0xffff, 0xefef, 0xd5d5, 0xffff }; +const rgba_t c_blanched_almond = { 0xffff, 0xebeb, 0xcdcd, 0xffff }; +const rgba_t c_BlanchedAlmond = { 0xffff, 0xebeb, 0xcdcd, 0xffff }; +const rgba_t c_bisque = { 0xffff, 0xe4e4, 0xc4c4, 0xffff }; +const rgba_t c_peach_puff = { 0xffff, 0xdada, 0xb9b9, 0xffff }; +const rgba_t c_PeachPuff = { 0xffff, 0xdada, 0xb9b9, 0xffff }; +const rgba_t c_navajo_white = { 0xffff, 0xdede, 0xadad, 0xffff }; +const rgba_t c_NavajoWhite = { 0xffff, 0xdede, 0xadad, 0xffff }; +const rgba_t c_moccasin = { 0xffff, 0xe4e4, 0xb5b5, 0xffff }; +const rgba_t c_cornsilk = { 0xffff, 0xf8f8, 0xdcdc, 0xffff }; +const rgba_t c_ivory = { 0xffff, 0xffff, 0xf0f0, 0xffff }; +const rgba_t c_lemon_chiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff }; +const rgba_t c_LemonChiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff }; +const rgba_t c_seashell = { 0xffff, 0xf5f5, 0xeeee, 0xffff }; +const rgba_t c_honeydew = { 0xf0f0, 0xffff, 0xf0f0, 0xffff }; +const rgba_t c_mint_cream = { 0xf5f5, 0xffff, 0xfafa, 0xffff }; +const rgba_t c_MintCream = { 0xf5f5, 0xffff, 0xfafa, 0xffff }; +const rgba_t c_azure = { 0xf0f0, 0xffff, 0xffff, 0xffff }; +const rgba_t c_alice_blue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff }; +const rgba_t c_AliceBlue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff }; +const rgba_t c_lavender = { 0xe6e6, 0xe6e6, 0xfafa, 0xffff }; +const rgba_t c_lavender_blush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff }; +const rgba_t c_LavenderBlush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff }; +const rgba_t c_misty_rose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff }; +const rgba_t c_MistyRose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff }; +const rgba_t c_white = { 0xffff, 0xffff, 0xffff, 0xffff }; +const rgba_t c_black = { 0x0000, 0x0000, 0x0000, 0xffff }; +const rgba_t c_dark_slate_gray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_DarkSlateGray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_dark_slate_grey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_DarkSlateGrey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_dim_gray = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_DimGray = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_dim_grey = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_DimGrey = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_slate_gray = { 0x7070, 0x8080, 0x9090, 0xffff }; +const rgba_t c_SlateGray = { 0x7070, 0x8080, 0x9090, 0xffff }; +const rgba_t c_slate_grey = { 0x7070, 0x8080, 0x9090, 0xffff }; +const rgba_t c_SlateGrey = { 0x7070, 0x8080, 0x9090, 0xffff }; +const rgba_t c_light_slate_gray = { 0x7777, 0x8888, 0x9999, 0xffff }; +const rgba_t c_LightSlateGray = { 0x7777, 0x8888, 0x9999, 0xffff }; +const rgba_t c_light_slate_grey = { 0x7777, 0x8888, 0x9999, 0xffff }; +const rgba_t c_LightSlateGrey = { 0x7777, 0x8888, 0x9999, 0xffff }; +const rgba_t c_gray = { 0xbebe, 0xbebe, 0xbebe, 0xffff }; +const rgba_t c_grey = { 0xbebe, 0xbebe, 0xbebe, 0xffff }; +const rgba_t c_light_grey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff }; +const rgba_t c_LightGrey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff }; +const rgba_t c_light_gray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff }; +const rgba_t c_LightGray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff }; +const rgba_t c_midnight_blue = { 0x1919, 0x1919, 0x7070, 0xffff }; +const rgba_t c_MidnightBlue = { 0x1919, 0x1919, 0x7070, 0xffff }; +const rgba_t c_navy = { 0x0000, 0x0000, 0x8080, 0xffff }; +const rgba_t c_navy_blue = { 0x0000, 0x0000, 0x8080, 0xffff }; +const rgba_t c_NavyBlue = { 0x0000, 0x0000, 0x8080, 0xffff }; +const rgba_t c_cornflower_blue = { 0x6464, 0x9595, 0xeded, 0xffff }; +const rgba_t c_CornflowerBlue = { 0x6464, 0x9595, 0xeded, 0xffff }; +const rgba_t c_dark_slate_blue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff }; +const rgba_t c_DarkSlateBlue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff }; +const rgba_t c_slate_blue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff }; +const rgba_t c_SlateBlue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff }; +const rgba_t c_medium_slate_blue = { 0x7b7b, 0x6868, 0xeeee, 0xffff }; +const rgba_t c_MediumSlateBlue = { 0x7b7b, 0x6868, 0xeeee, 0xffff }; +const rgba_t c_light_slate_blue = { 0x8484, 0x7070, 0xffff, 0xffff }; +const rgba_t c_LightSlateBlue = { 0x8484, 0x7070, 0xffff, 0xffff }; +const rgba_t c_medium_blue = { 0x0000, 0x0000, 0xcdcd, 0xffff }; +const rgba_t c_MediumBlue = { 0x0000, 0x0000, 0xcdcd, 0xffff }; +const rgba_t c_royal_blue = { 0x4141, 0x6969, 0xe1e1, 0xffff }; +const rgba_t c_RoyalBlue = { 0x4141, 0x6969, 0xe1e1, 0xffff }; +const rgba_t c_blue = { 0x0000, 0x0000, 0xffff, 0xffff }; +const rgba_t c_dodger_blue = { 0x1e1e, 0x9090, 0xffff, 0xffff }; +const rgba_t c_DodgerBlue = { 0x1e1e, 0x9090, 0xffff, 0xffff }; +const rgba_t c_deep_sky_blue = { 0x0000, 0xbfbf, 0xffff, 0xffff }; +const rgba_t c_DeepSkyBlue = { 0x0000, 0xbfbf, 0xffff, 0xffff }; +const rgba_t c_sky_blue = { 0x8787, 0xcece, 0xebeb, 0xffff }; +const rgba_t c_SkyBlue = { 0x8787, 0xcece, 0xebeb, 0xffff }; +const rgba_t c_light_sky_blue = { 0x8787, 0xcece, 0xfafa, 0xffff }; +const rgba_t c_LightSkyBlue = { 0x8787, 0xcece, 0xfafa, 0xffff }; +const rgba_t c_steel_blue = { 0x4646, 0x8282, 0xb4b4, 0xffff }; +const rgba_t c_SteelBlue = { 0x4646, 0x8282, 0xb4b4, 0xffff }; +const rgba_t c_light_steel_blue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff }; +const rgba_t c_LightSteelBlue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff }; +const rgba_t c_light_blue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff }; +const rgba_t c_LightBlue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff }; +const rgba_t c_powder_blue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff }; +const rgba_t c_PowderBlue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff }; +const rgba_t c_pale_turquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_PaleTurquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_dark_turquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff }; +const rgba_t c_DarkTurquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff }; +const rgba_t c_medium_turquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff }; +const rgba_t c_MediumTurquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff }; +const rgba_t c_turquoise = { 0x4040, 0xe0e0, 0xd0d0, 0xffff }; +const rgba_t c_cyan = { 0x0000, 0xffff, 0xffff, 0xffff }; +const rgba_t c_light_cyan = { 0xe0e0, 0xffff, 0xffff, 0xffff }; +const rgba_t c_LightCyan = { 0xe0e0, 0xffff, 0xffff, 0xffff }; +const rgba_t c_cadet_blue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff }; +const rgba_t c_CadetBlue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff }; +const rgba_t c_medium_aquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff }; +const rgba_t c_MediumAquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff }; +const rgba_t c_aquamarine = { 0x7f7f, 0xffff, 0xd4d4, 0xffff }; +const rgba_t c_dark_green = { 0x0000, 0x6464, 0x0000, 0xffff }; +const rgba_t c_DarkGreen = { 0x0000, 0x6464, 0x0000, 0xffff }; +const rgba_t c_dark_olive_green = { 0x5555, 0x6b6b, 0x2f2f, 0xffff }; +const rgba_t c_DarkOliveGreen = { 0x5555, 0x6b6b, 0x2f2f, 0xffff }; +const rgba_t c_dark_sea_green = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff }; +const rgba_t c_DarkSeaGreen = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff }; +const rgba_t c_sea_green = { 0x2e2e, 0x8b8b, 0x5757, 0xffff }; +const rgba_t c_SeaGreen = { 0x2e2e, 0x8b8b, 0x5757, 0xffff }; +const rgba_t c_medium_sea_green = { 0x3c3c, 0xb3b3, 0x7171, 0xffff }; +const rgba_t c_MediumSeaGreen = { 0x3c3c, 0xb3b3, 0x7171, 0xffff }; +const rgba_t c_light_sea_green = { 0x2020, 0xb2b2, 0xaaaa, 0xffff }; +const rgba_t c_LightSeaGreen = { 0x2020, 0xb2b2, 0xaaaa, 0xffff }; +const rgba_t c_pale_green = { 0x9898, 0xfbfb, 0x9898, 0xffff }; +const rgba_t c_PaleGreen = { 0x9898, 0xfbfb, 0x9898, 0xffff }; +const rgba_t c_spring_green = { 0x0000, 0xffff, 0x7f7f, 0xffff }; +const rgba_t c_SpringGreen = { 0x0000, 0xffff, 0x7f7f, 0xffff }; +const rgba_t c_lawn_green = { 0x7c7c, 0xfcfc, 0x0000, 0xffff }; +const rgba_t c_LawnGreen = { 0x7c7c, 0xfcfc, 0x0000, 0xffff }; +const rgba_t c_green = { 0x0000, 0xffff, 0x0000, 0xffff }; +const rgba_t c_chartreuse = { 0x7f7f, 0xffff, 0x0000, 0xffff }; +const rgba_t c_medium_spring_green = { 0x0000, 0xfafa, 0x9a9a, 0xffff }; +const rgba_t c_MediumSpringGreen = { 0x0000, 0xfafa, 0x9a9a, 0xffff }; +const rgba_t c_green_yellow = { 0xadad, 0xffff, 0x2f2f, 0xffff }; +const rgba_t c_GreenYellow = { 0xadad, 0xffff, 0x2f2f, 0xffff }; +const rgba_t c_lime_green = { 0x3232, 0xcdcd, 0x3232, 0xffff }; +const rgba_t c_LimeGreen = { 0x3232, 0xcdcd, 0x3232, 0xffff }; +const rgba_t c_yellow_green = { 0x9a9a, 0xcdcd, 0x3232, 0xffff }; +const rgba_t c_YellowGreen = { 0x9a9a, 0xcdcd, 0x3232, 0xffff }; +const rgba_t c_forest_green = { 0x2222, 0x8b8b, 0x2222, 0xffff }; +const rgba_t c_ForestGreen = { 0x2222, 0x8b8b, 0x2222, 0xffff }; +const rgba_t c_olive_drab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff }; +const rgba_t c_OliveDrab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff }; +const rgba_t c_dark_khaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff }; +const rgba_t c_DarkKhaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff }; +const rgba_t c_khaki = { 0xf0f0, 0xe6e6, 0x8c8c, 0xffff }; +const rgba_t c_pale_goldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff }; +const rgba_t c_PaleGoldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff }; +const rgba_t c_light_goldenrod_yellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff }; +const rgba_t c_LightGoldenrodYellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff }; +const rgba_t c_light_yellow = { 0xffff, 0xffff, 0xe0e0, 0xffff }; +const rgba_t c_LightYellow = { 0xffff, 0xffff, 0xe0e0, 0xffff }; +const rgba_t c_yellow = { 0xffff, 0xffff, 0x0000, 0xffff }; +const rgba_t c_gold = { 0xffff, 0xd7d7, 0x0000, 0xffff }; +const rgba_t c_light_goldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff }; +const rgba_t c_LightGoldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff }; +const rgba_t c_goldenrod = { 0xdada, 0xa5a5, 0x2020, 0xffff }; +const rgba_t c_dark_goldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff }; +const rgba_t c_DarkGoldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff }; +const rgba_t c_rosy_brown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff }; +const rgba_t c_RosyBrown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff }; +const rgba_t c_indian_red = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff }; +const rgba_t c_IndianRed = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff }; +const rgba_t c_saddle_brown = { 0x8b8b, 0x4545, 0x1313, 0xffff }; +const rgba_t c_SaddleBrown = { 0x8b8b, 0x4545, 0x1313, 0xffff }; +const rgba_t c_sienna = { 0xa0a0, 0x5252, 0x2d2d, 0xffff }; +const rgba_t c_peru = { 0xcdcd, 0x8585, 0x3f3f, 0xffff }; +const rgba_t c_burlywood = { 0xdede, 0xb8b8, 0x8787, 0xffff }; +const rgba_t c_beige = { 0xf5f5, 0xf5f5, 0xdcdc, 0xffff }; +const rgba_t c_wheat = { 0xf5f5, 0xdede, 0xb3b3, 0xffff }; +const rgba_t c_sandy_brown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff }; +const rgba_t c_SandyBrown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff }; +const rgba_t c_tan = { 0xd2d2, 0xb4b4, 0x8c8c, 0xffff }; +const rgba_t c_chocolate = { 0xd2d2, 0x6969, 0x1e1e, 0xffff }; +const rgba_t c_firebrick = { 0xb2b2, 0x2222, 0x2222, 0xffff }; +const rgba_t c_brown = { 0xa5a5, 0x2a2a, 0x2a2a, 0xffff }; +const rgba_t c_dark_salmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff }; +const rgba_t c_DarkSalmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff }; +const rgba_t c_salmon = { 0xfafa, 0x8080, 0x7272, 0xffff }; +const rgba_t c_light_salmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff }; +const rgba_t c_LightSalmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff }; +const rgba_t c_orange = { 0xffff, 0xa5a5, 0x0000, 0xffff }; +const rgba_t c_dark_orange = { 0xffff, 0x8c8c, 0x0000, 0xffff }; +const rgba_t c_DarkOrange = { 0xffff, 0x8c8c, 0x0000, 0xffff }; +const rgba_t c_coral = { 0xffff, 0x7f7f, 0x5050, 0xffff }; +const rgba_t c_light_coral = { 0xf0f0, 0x8080, 0x8080, 0xffff }; +const rgba_t c_LightCoral = { 0xf0f0, 0x8080, 0x8080, 0xffff }; +const rgba_t c_tomato = { 0xffff, 0x6363, 0x4747, 0xffff }; +const rgba_t c_orange_red = { 0xffff, 0x4545, 0x0000, 0xffff }; +const rgba_t c_OrangeRed = { 0xffff, 0x4545, 0x0000, 0xffff }; +const rgba_t c_red = { 0xffff, 0x0000, 0x0000, 0xffff }; +const rgba_t c_hot_pink = { 0xffff, 0x6969, 0xb4b4, 0xffff }; +const rgba_t c_HotPink = { 0xffff, 0x6969, 0xb4b4, 0xffff }; +const rgba_t c_deep_pink = { 0xffff, 0x1414, 0x9393, 0xffff }; +const rgba_t c_DeepPink = { 0xffff, 0x1414, 0x9393, 0xffff }; +const rgba_t c_pink = { 0xffff, 0xc0c0, 0xcbcb, 0xffff }; +const rgba_t c_light_pink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff }; +const rgba_t c_LightPink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff }; +const rgba_t c_pale_violet_red = { 0xdbdb, 0x7070, 0x9393, 0xffff }; +const rgba_t c_PaleVioletRed = { 0xdbdb, 0x7070, 0x9393, 0xffff }; +const rgba_t c_maroon = { 0xb0b0, 0x3030, 0x6060, 0xffff }; +const rgba_t c_medium_violet_red = { 0xc7c7, 0x1515, 0x8585, 0xffff }; +const rgba_t c_MediumVioletRed = { 0xc7c7, 0x1515, 0x8585, 0xffff }; +const rgba_t c_violet_red = { 0xd0d0, 0x2020, 0x9090, 0xffff }; +const rgba_t c_VioletRed = { 0xd0d0, 0x2020, 0x9090, 0xffff }; +const rgba_t c_magenta = { 0xffff, 0x0000, 0xffff, 0xffff }; +const rgba_t c_violet = { 0xeeee, 0x8282, 0xeeee, 0xffff }; +const rgba_t c_plum = { 0xdddd, 0xa0a0, 0xdddd, 0xffff }; +const rgba_t c_orchid = { 0xdada, 0x7070, 0xd6d6, 0xffff }; +const rgba_t c_medium_orchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff }; +const rgba_t c_MediumOrchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff }; +const rgba_t c_dark_orchid = { 0x9999, 0x3232, 0xcccc, 0xffff }; +const rgba_t c_DarkOrchid = { 0x9999, 0x3232, 0xcccc, 0xffff }; +const rgba_t c_dark_violet = { 0x9494, 0x0000, 0xd3d3, 0xffff }; +const rgba_t c_DarkViolet = { 0x9494, 0x0000, 0xd3d3, 0xffff }; +const rgba_t c_blue_violet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff }; +const rgba_t c_BlueViolet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff }; +const rgba_t c_purple = { 0xa0a0, 0x2020, 0xf0f0, 0xffff }; +const rgba_t c_medium_purple = { 0x9393, 0x7070, 0xdbdb, 0xffff }; +const rgba_t c_MediumPurple = { 0x9393, 0x7070, 0xdbdb, 0xffff }; +const rgba_t c_thistle = { 0xd8d8, 0xbfbf, 0xd8d8, 0xffff }; +const rgba_t c_snow1 = { 0xffff, 0xfafa, 0xfafa, 0xffff }; +const rgba_t c_snow2 = { 0xeeee, 0xe9e9, 0xe9e9, 0xffff }; +const rgba_t c_snow3 = { 0xcdcd, 0xc9c9, 0xc9c9, 0xffff }; +const rgba_t c_snow4 = { 0x8b8b, 0x8989, 0x8989, 0xffff }; +const rgba_t c_seashell1 = { 0xffff, 0xf5f5, 0xeeee, 0xffff }; +const rgba_t c_seashell2 = { 0xeeee, 0xe5e5, 0xdede, 0xffff }; +const rgba_t c_seashell3 = { 0xcdcd, 0xc5c5, 0xbfbf, 0xffff }; +const rgba_t c_seashell4 = { 0x8b8b, 0x8686, 0x8282, 0xffff }; +const rgba_t c_AntiqueWhite1 = { 0xffff, 0xefef, 0xdbdb, 0xffff }; +const rgba_t c_AntiqueWhite2 = { 0xeeee, 0xdfdf, 0xcccc, 0xffff }; +const rgba_t c_AntiqueWhite3 = { 0xcdcd, 0xc0c0, 0xb0b0, 0xffff }; +const rgba_t c_AntiqueWhite4 = { 0x8b8b, 0x8383, 0x7878, 0xffff }; +const rgba_t c_bisque1 = { 0xffff, 0xe4e4, 0xc4c4, 0xffff }; +const rgba_t c_bisque2 = { 0xeeee, 0xd5d5, 0xb7b7, 0xffff }; +const rgba_t c_bisque3 = { 0xcdcd, 0xb7b7, 0x9e9e, 0xffff }; +const rgba_t c_bisque4 = { 0x8b8b, 0x7d7d, 0x6b6b, 0xffff }; +const rgba_t c_PeachPuff1 = { 0xffff, 0xdada, 0xb9b9, 0xffff }; +const rgba_t c_PeachPuff2 = { 0xeeee, 0xcbcb, 0xadad, 0xffff }; +const rgba_t c_PeachPuff3 = { 0xcdcd, 0xafaf, 0x9595, 0xffff }; +const rgba_t c_PeachPuff4 = { 0x8b8b, 0x7777, 0x6565, 0xffff }; +const rgba_t c_NavajoWhite1 = { 0xffff, 0xdede, 0xadad, 0xffff }; +const rgba_t c_NavajoWhite2 = { 0xeeee, 0xcfcf, 0xa1a1, 0xffff }; +const rgba_t c_NavajoWhite3 = { 0xcdcd, 0xb3b3, 0x8b8b, 0xffff }; +const rgba_t c_NavajoWhite4 = { 0x8b8b, 0x7979, 0x5e5e, 0xffff }; +const rgba_t c_LemonChiffon1 = { 0xffff, 0xfafa, 0xcdcd, 0xffff }; +const rgba_t c_LemonChiffon2 = { 0xeeee, 0xe9e9, 0xbfbf, 0xffff }; +const rgba_t c_LemonChiffon3 = { 0xcdcd, 0xc9c9, 0xa5a5, 0xffff }; +const rgba_t c_LemonChiffon4 = { 0x8b8b, 0x8989, 0x7070, 0xffff }; +const rgba_t c_cornsilk1 = { 0xffff, 0xf8f8, 0xdcdc, 0xffff }; +const rgba_t c_cornsilk2 = { 0xeeee, 0xe8e8, 0xcdcd, 0xffff }; +const rgba_t c_cornsilk3 = { 0xcdcd, 0xc8c8, 0xb1b1, 0xffff }; +const rgba_t c_cornsilk4 = { 0x8b8b, 0x8888, 0x7878, 0xffff }; +const rgba_t c_ivory1 = { 0xffff, 0xffff, 0xf0f0, 0xffff }; +const rgba_t c_ivory2 = { 0xeeee, 0xeeee, 0xe0e0, 0xffff }; +const rgba_t c_ivory3 = { 0xcdcd, 0xcdcd, 0xc1c1, 0xffff }; +const rgba_t c_ivory4 = { 0x8b8b, 0x8b8b, 0x8383, 0xffff }; +const rgba_t c_honeydew1 = { 0xf0f0, 0xffff, 0xf0f0, 0xffff }; +const rgba_t c_honeydew2 = { 0xe0e0, 0xeeee, 0xe0e0, 0xffff }; +const rgba_t c_honeydew3 = { 0xc1c1, 0xcdcd, 0xc1c1, 0xffff }; +const rgba_t c_honeydew4 = { 0x8383, 0x8b8b, 0x8383, 0xffff }; +const rgba_t c_LavenderBlush1 = { 0xffff, 0xf0f0, 0xf5f5, 0xffff }; +const rgba_t c_LavenderBlush2 = { 0xeeee, 0xe0e0, 0xe5e5, 0xffff }; +const rgba_t c_LavenderBlush3 = { 0xcdcd, 0xc1c1, 0xc5c5, 0xffff }; +const rgba_t c_LavenderBlush4 = { 0x8b8b, 0x8383, 0x8686, 0xffff }; +const rgba_t c_MistyRose1 = { 0xffff, 0xe4e4, 0xe1e1, 0xffff }; +const rgba_t c_MistyRose2 = { 0xeeee, 0xd5d5, 0xd2d2, 0xffff }; +const rgba_t c_MistyRose3 = { 0xcdcd, 0xb7b7, 0xb5b5, 0xffff }; +const rgba_t c_MistyRose4 = { 0x8b8b, 0x7d7d, 0x7b7b, 0xffff }; +const rgba_t c_azure1 = { 0xf0f0, 0xffff, 0xffff, 0xffff }; +const rgba_t c_azure2 = { 0xe0e0, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_azure3 = { 0xc1c1, 0xcdcd, 0xcdcd, 0xffff }; +const rgba_t c_azure4 = { 0x8383, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_SlateBlue1 = { 0x8383, 0x6f6f, 0xffff, 0xffff }; +const rgba_t c_SlateBlue2 = { 0x7a7a, 0x6767, 0xeeee, 0xffff }; +const rgba_t c_SlateBlue3 = { 0x6969, 0x5959, 0xcdcd, 0xffff }; +const rgba_t c_SlateBlue4 = { 0x4747, 0x3c3c, 0x8b8b, 0xffff }; +const rgba_t c_RoyalBlue1 = { 0x4848, 0x7676, 0xffff, 0xffff }; +const rgba_t c_RoyalBlue2 = { 0x4343, 0x6e6e, 0xeeee, 0xffff }; +const rgba_t c_RoyalBlue3 = { 0x3a3a, 0x5f5f, 0xcdcd, 0xffff }; +const rgba_t c_RoyalBlue4 = { 0x2727, 0x4040, 0x8b8b, 0xffff }; +const rgba_t c_blue1 = { 0x0000, 0x0000, 0xffff, 0xffff }; +const rgba_t c_blue2 = { 0x0000, 0x0000, 0xeeee, 0xffff }; +const rgba_t c_blue3 = { 0x0000, 0x0000, 0xcdcd, 0xffff }; +const rgba_t c_blue4 = { 0x0000, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_DodgerBlue1 = { 0x1e1e, 0x9090, 0xffff, 0xffff }; +const rgba_t c_DodgerBlue2 = { 0x1c1c, 0x8686, 0xeeee, 0xffff }; +const rgba_t c_DodgerBlue3 = { 0x1818, 0x7474, 0xcdcd, 0xffff }; +const rgba_t c_DodgerBlue4 = { 0x1010, 0x4e4e, 0x8b8b, 0xffff }; +const rgba_t c_SteelBlue1 = { 0x6363, 0xb8b8, 0xffff, 0xffff }; +const rgba_t c_SteelBlue2 = { 0x5c5c, 0xacac, 0xeeee, 0xffff }; +const rgba_t c_SteelBlue3 = { 0x4f4f, 0x9494, 0xcdcd, 0xffff }; +const rgba_t c_SteelBlue4 = { 0x3636, 0x6464, 0x8b8b, 0xffff }; +const rgba_t c_DeepSkyBlue1 = { 0x0000, 0xbfbf, 0xffff, 0xffff }; +const rgba_t c_DeepSkyBlue2 = { 0x0000, 0xb2b2, 0xeeee, 0xffff }; +const rgba_t c_DeepSkyBlue3 = { 0x0000, 0x9a9a, 0xcdcd, 0xffff }; +const rgba_t c_DeepSkyBlue4 = { 0x0000, 0x6868, 0x8b8b, 0xffff }; +const rgba_t c_SkyBlue1 = { 0x8787, 0xcece, 0xffff, 0xffff }; +const rgba_t c_SkyBlue2 = { 0x7e7e, 0xc0c0, 0xeeee, 0xffff }; +const rgba_t c_SkyBlue3 = { 0x6c6c, 0xa6a6, 0xcdcd, 0xffff }; +const rgba_t c_SkyBlue4 = { 0x4a4a, 0x7070, 0x8b8b, 0xffff }; +const rgba_t c_LightSkyBlue1 = { 0xb0b0, 0xe2e2, 0xffff, 0xffff }; +const rgba_t c_LightSkyBlue2 = { 0xa4a4, 0xd3d3, 0xeeee, 0xffff }; +const rgba_t c_LightSkyBlue3 = { 0x8d8d, 0xb6b6, 0xcdcd, 0xffff }; +const rgba_t c_LightSkyBlue4 = { 0x6060, 0x7b7b, 0x8b8b, 0xffff }; +const rgba_t c_SlateGray1 = { 0xc6c6, 0xe2e2, 0xffff, 0xffff }; +const rgba_t c_SlateGray2 = { 0xb9b9, 0xd3d3, 0xeeee, 0xffff }; +const rgba_t c_SlateGray3 = { 0x9f9f, 0xb6b6, 0xcdcd, 0xffff }; +const rgba_t c_SlateGray4 = { 0x6c6c, 0x7b7b, 0x8b8b, 0xffff }; +const rgba_t c_LightSteelBlue1 = { 0xcaca, 0xe1e1, 0xffff, 0xffff }; +const rgba_t c_LightSteelBlue2 = { 0xbcbc, 0xd2d2, 0xeeee, 0xffff }; +const rgba_t c_LightSteelBlue3 = { 0xa2a2, 0xb5b5, 0xcdcd, 0xffff }; +const rgba_t c_LightSteelBlue4 = { 0x6e6e, 0x7b7b, 0x8b8b, 0xffff }; +const rgba_t c_LightBlue1 = { 0xbfbf, 0xefef, 0xffff, 0xffff }; +const rgba_t c_LightBlue2 = { 0xb2b2, 0xdfdf, 0xeeee, 0xffff }; +const rgba_t c_LightBlue3 = { 0x9a9a, 0xc0c0, 0xcdcd, 0xffff }; +const rgba_t c_LightBlue4 = { 0x6868, 0x8383, 0x8b8b, 0xffff }; +const rgba_t c_LightCyan1 = { 0xe0e0, 0xffff, 0xffff, 0xffff }; +const rgba_t c_LightCyan2 = { 0xd1d1, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_LightCyan3 = { 0xb4b4, 0xcdcd, 0xcdcd, 0xffff }; +const rgba_t c_LightCyan4 = { 0x7a7a, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_PaleTurquoise1 = { 0xbbbb, 0xffff, 0xffff, 0xffff }; +const rgba_t c_PaleTurquoise2 = { 0xaeae, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_PaleTurquoise3 = { 0x9696, 0xcdcd, 0xcdcd, 0xffff }; +const rgba_t c_PaleTurquoise4 = { 0x6666, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_CadetBlue1 = { 0x9898, 0xf5f5, 0xffff, 0xffff }; +const rgba_t c_CadetBlue2 = { 0x8e8e, 0xe5e5, 0xeeee, 0xffff }; +const rgba_t c_CadetBlue3 = { 0x7a7a, 0xc5c5, 0xcdcd, 0xffff }; +const rgba_t c_CadetBlue4 = { 0x5353, 0x8686, 0x8b8b, 0xffff }; +const rgba_t c_turquoise1 = { 0x0000, 0xf5f5, 0xffff, 0xffff }; +const rgba_t c_turquoise2 = { 0x0000, 0xe5e5, 0xeeee, 0xffff }; +const rgba_t c_turquoise3 = { 0x0000, 0xc5c5, 0xcdcd, 0xffff }; +const rgba_t c_turquoise4 = { 0x0000, 0x8686, 0x8b8b, 0xffff }; +const rgba_t c_cyan1 = { 0x0000, 0xffff, 0xffff, 0xffff }; +const rgba_t c_cyan2 = { 0x0000, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_cyan3 = { 0x0000, 0xcdcd, 0xcdcd, 0xffff }; +const rgba_t c_cyan4 = { 0x0000, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_DarkSlateGray1 = { 0x9797, 0xffff, 0xffff, 0xffff }; +const rgba_t c_DarkSlateGray2 = { 0x8d8d, 0xeeee, 0xeeee, 0xffff }; +const rgba_t c_DarkSlateGray3 = { 0x7979, 0xcdcd, 0xcdcd, 0xffff }; +const rgba_t c_DarkSlateGray4 = { 0x5252, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_aquamarine1 = { 0x7f7f, 0xffff, 0xd4d4, 0xffff }; +const rgba_t c_aquamarine2 = { 0x7676, 0xeeee, 0xc6c6, 0xffff }; +const rgba_t c_aquamarine3 = { 0x6666, 0xcdcd, 0xaaaa, 0xffff }; +const rgba_t c_aquamarine4 = { 0x4545, 0x8b8b, 0x7474, 0xffff }; +const rgba_t c_DarkSeaGreen1 = { 0xc1c1, 0xffff, 0xc1c1, 0xffff }; +const rgba_t c_DarkSeaGreen2 = { 0xb4b4, 0xeeee, 0xb4b4, 0xffff }; +const rgba_t c_DarkSeaGreen3 = { 0x9b9b, 0xcdcd, 0x9b9b, 0xffff }; +const rgba_t c_DarkSeaGreen4 = { 0x6969, 0x8b8b, 0x6969, 0xffff }; +const rgba_t c_SeaGreen1 = { 0x5454, 0xffff, 0x9f9f, 0xffff }; +const rgba_t c_SeaGreen2 = { 0x4e4e, 0xeeee, 0x9494, 0xffff }; +const rgba_t c_SeaGreen3 = { 0x4343, 0xcdcd, 0x8080, 0xffff }; +const rgba_t c_SeaGreen4 = { 0x2e2e, 0x8b8b, 0x5757, 0xffff }; +const rgba_t c_PaleGreen1 = { 0x9a9a, 0xffff, 0x9a9a, 0xffff }; +const rgba_t c_PaleGreen2 = { 0x9090, 0xeeee, 0x9090, 0xffff }; +const rgba_t c_PaleGreen3 = { 0x7c7c, 0xcdcd, 0x7c7c, 0xffff }; +const rgba_t c_PaleGreen4 = { 0x5454, 0x8b8b, 0x5454, 0xffff }; +const rgba_t c_SpringGreen1 = { 0x0000, 0xffff, 0x7f7f, 0xffff }; +const rgba_t c_SpringGreen2 = { 0x0000, 0xeeee, 0x7676, 0xffff }; +const rgba_t c_SpringGreen3 = { 0x0000, 0xcdcd, 0x6666, 0xffff }; +const rgba_t c_SpringGreen4 = { 0x0000, 0x8b8b, 0x4545, 0xffff }; +const rgba_t c_green1 = { 0x0000, 0xffff, 0x0000, 0xffff }; +const rgba_t c_green2 = { 0x0000, 0xeeee, 0x0000, 0xffff }; +const rgba_t c_green3 = { 0x0000, 0xcdcd, 0x0000, 0xffff }; +const rgba_t c_green4 = { 0x0000, 0x8b8b, 0x0000, 0xffff }; +const rgba_t c_chartreuse1 = { 0x7f7f, 0xffff, 0x0000, 0xffff }; +const rgba_t c_chartreuse2 = { 0x7676, 0xeeee, 0x0000, 0xffff }; +const rgba_t c_chartreuse3 = { 0x6666, 0xcdcd, 0x0000, 0xffff }; +const rgba_t c_chartreuse4 = { 0x4545, 0x8b8b, 0x0000, 0xffff }; +const rgba_t c_OliveDrab1 = { 0xc0c0, 0xffff, 0x3e3e, 0xffff }; +const rgba_t c_OliveDrab2 = { 0xb3b3, 0xeeee, 0x3a3a, 0xffff }; +const rgba_t c_OliveDrab3 = { 0x9a9a, 0xcdcd, 0x3232, 0xffff }; +const rgba_t c_OliveDrab4 = { 0x6969, 0x8b8b, 0x2222, 0xffff }; +const rgba_t c_DarkOliveGreen1 = { 0xcaca, 0xffff, 0x7070, 0xffff }; +const rgba_t c_DarkOliveGreen2 = { 0xbcbc, 0xeeee, 0x6868, 0xffff }; +const rgba_t c_DarkOliveGreen3 = { 0xa2a2, 0xcdcd, 0x5a5a, 0xffff }; +const rgba_t c_DarkOliveGreen4 = { 0x6e6e, 0x8b8b, 0x3d3d, 0xffff }; +const rgba_t c_khaki1 = { 0xffff, 0xf6f6, 0x8f8f, 0xffff }; +const rgba_t c_khaki2 = { 0xeeee, 0xe6e6, 0x8585, 0xffff }; +const rgba_t c_khaki3 = { 0xcdcd, 0xc6c6, 0x7373, 0xffff }; +const rgba_t c_khaki4 = { 0x8b8b, 0x8686, 0x4e4e, 0xffff }; +const rgba_t c_LightGoldenrod1 = { 0xffff, 0xecec, 0x8b8b, 0xffff }; +const rgba_t c_LightGoldenrod2 = { 0xeeee, 0xdcdc, 0x8282, 0xffff }; +const rgba_t c_LightGoldenrod3 = { 0xcdcd, 0xbebe, 0x7070, 0xffff }; +const rgba_t c_LightGoldenrod4 = { 0x8b8b, 0x8181, 0x4c4c, 0xffff }; +const rgba_t c_LightYellow1 = { 0xffff, 0xffff, 0xe0e0, 0xffff }; +const rgba_t c_LightYellow2 = { 0xeeee, 0xeeee, 0xd1d1, 0xffff }; +const rgba_t c_LightYellow3 = { 0xcdcd, 0xcdcd, 0xb4b4, 0xffff }; +const rgba_t c_LightYellow4 = { 0x8b8b, 0x8b8b, 0x7a7a, 0xffff }; +const rgba_t c_yellow1 = { 0xffff, 0xffff, 0x0000, 0xffff }; +const rgba_t c_yellow2 = { 0xeeee, 0xeeee, 0x0000, 0xffff }; +const rgba_t c_yellow3 = { 0xcdcd, 0xcdcd, 0x0000, 0xffff }; +const rgba_t c_yellow4 = { 0x8b8b, 0x8b8b, 0x0000, 0xffff }; +const rgba_t c_gold1 = { 0xffff, 0xd7d7, 0x0000, 0xffff }; +const rgba_t c_gold2 = { 0xeeee, 0xc9c9, 0x0000, 0xffff }; +const rgba_t c_gold3 = { 0xcdcd, 0xadad, 0x0000, 0xffff }; +const rgba_t c_gold4 = { 0x8b8b, 0x7575, 0x0000, 0xffff }; +const rgba_t c_goldenrod1 = { 0xffff, 0xc1c1, 0x2525, 0xffff }; +const rgba_t c_goldenrod2 = { 0xeeee, 0xb4b4, 0x2222, 0xffff }; +const rgba_t c_goldenrod3 = { 0xcdcd, 0x9b9b, 0x1d1d, 0xffff }; +const rgba_t c_goldenrod4 = { 0x8b8b, 0x6969, 0x1414, 0xffff }; +const rgba_t c_DarkGoldenrod1 = { 0xffff, 0xb9b9, 0x0f0f, 0xffff }; +const rgba_t c_DarkGoldenrod2 = { 0xeeee, 0xadad, 0x0e0e, 0xffff }; +const rgba_t c_DarkGoldenrod3 = { 0xcdcd, 0x9595, 0x0c0c, 0xffff }; +const rgba_t c_DarkGoldenrod4 = { 0x8b8b, 0x6565, 0x0808, 0xffff }; +const rgba_t c_RosyBrown1 = { 0xffff, 0xc1c1, 0xc1c1, 0xffff }; +const rgba_t c_RosyBrown2 = { 0xeeee, 0xb4b4, 0xb4b4, 0xffff }; +const rgba_t c_RosyBrown3 = { 0xcdcd, 0x9b9b, 0x9b9b, 0xffff }; +const rgba_t c_RosyBrown4 = { 0x8b8b, 0x6969, 0x6969, 0xffff }; +const rgba_t c_IndianRed1 = { 0xffff, 0x6a6a, 0x6a6a, 0xffff }; +const rgba_t c_IndianRed2 = { 0xeeee, 0x6363, 0x6363, 0xffff }; +const rgba_t c_IndianRed3 = { 0xcdcd, 0x5555, 0x5555, 0xffff }; +const rgba_t c_IndianRed4 = { 0x8b8b, 0x3a3a, 0x3a3a, 0xffff }; +const rgba_t c_sienna1 = { 0xffff, 0x8282, 0x4747, 0xffff }; +const rgba_t c_sienna2 = { 0xeeee, 0x7979, 0x4242, 0xffff }; +const rgba_t c_sienna3 = { 0xcdcd, 0x6868, 0x3939, 0xffff }; +const rgba_t c_sienna4 = { 0x8b8b, 0x4747, 0x2626, 0xffff }; +const rgba_t c_burlywood1 = { 0xffff, 0xd3d3, 0x9b9b, 0xffff }; +const rgba_t c_burlywood2 = { 0xeeee, 0xc5c5, 0x9191, 0xffff }; +const rgba_t c_burlywood3 = { 0xcdcd, 0xaaaa, 0x7d7d, 0xffff }; +const rgba_t c_burlywood4 = { 0x8b8b, 0x7373, 0x5555, 0xffff }; +const rgba_t c_wheat1 = { 0xffff, 0xe7e7, 0xbaba, 0xffff }; +const rgba_t c_wheat2 = { 0xeeee, 0xd8d8, 0xaeae, 0xffff }; +const rgba_t c_wheat3 = { 0xcdcd, 0xbaba, 0x9696, 0xffff }; +const rgba_t c_wheat4 = { 0x8b8b, 0x7e7e, 0x6666, 0xffff }; +const rgba_t c_tan1 = { 0xffff, 0xa5a5, 0x4f4f, 0xffff }; +const rgba_t c_tan2 = { 0xeeee, 0x9a9a, 0x4949, 0xffff }; +const rgba_t c_tan3 = { 0xcdcd, 0x8585, 0x3f3f, 0xffff }; +const rgba_t c_tan4 = { 0x8b8b, 0x5a5a, 0x2b2b, 0xffff }; +const rgba_t c_chocolate1 = { 0xffff, 0x7f7f, 0x2424, 0xffff }; +const rgba_t c_chocolate2 = { 0xeeee, 0x7676, 0x2121, 0xffff }; +const rgba_t c_chocolate3 = { 0xcdcd, 0x6666, 0x1d1d, 0xffff }; +const rgba_t c_chocolate4 = { 0x8b8b, 0x4545, 0x1313, 0xffff }; +const rgba_t c_firebrick1 = { 0xffff, 0x3030, 0x3030, 0xffff }; +const rgba_t c_firebrick2 = { 0xeeee, 0x2c2c, 0x2c2c, 0xffff }; +const rgba_t c_firebrick3 = { 0xcdcd, 0x2626, 0x2626, 0xffff }; +const rgba_t c_firebrick4 = { 0x8b8b, 0x1a1a, 0x1a1a, 0xffff }; +const rgba_t c_brown1 = { 0xffff, 0x4040, 0x4040, 0xffff }; +const rgba_t c_brown2 = { 0xeeee, 0x3b3b, 0x3b3b, 0xffff }; +const rgba_t c_brown3 = { 0xcdcd, 0x3333, 0x3333, 0xffff }; +const rgba_t c_brown4 = { 0x8b8b, 0x2323, 0x2323, 0xffff }; +const rgba_t c_salmon1 = { 0xffff, 0x8c8c, 0x6969, 0xffff }; +const rgba_t c_salmon2 = { 0xeeee, 0x8282, 0x6262, 0xffff }; +const rgba_t c_salmon3 = { 0xcdcd, 0x7070, 0x5454, 0xffff }; +const rgba_t c_salmon4 = { 0x8b8b, 0x4c4c, 0x3939, 0xffff }; +const rgba_t c_LightSalmon1 = { 0xffff, 0xa0a0, 0x7a7a, 0xffff }; +const rgba_t c_LightSalmon2 = { 0xeeee, 0x9595, 0x7272, 0xffff }; +const rgba_t c_LightSalmon3 = { 0xcdcd, 0x8181, 0x6262, 0xffff }; +const rgba_t c_LightSalmon4 = { 0x8b8b, 0x5757, 0x4242, 0xffff }; +const rgba_t c_orange1 = { 0xffff, 0xa5a5, 0x0000, 0xffff }; +const rgba_t c_orange2 = { 0xeeee, 0x9a9a, 0x0000, 0xffff }; +const rgba_t c_orange3 = { 0xcdcd, 0x8585, 0x0000, 0xffff }; +const rgba_t c_orange4 = { 0x8b8b, 0x5a5a, 0x0000, 0xffff }; +const rgba_t c_DarkOrange1 = { 0xffff, 0x7f7f, 0x0000, 0xffff }; +const rgba_t c_DarkOrange2 = { 0xeeee, 0x7676, 0x0000, 0xffff }; +const rgba_t c_DarkOrange3 = { 0xcdcd, 0x6666, 0x0000, 0xffff }; +const rgba_t c_DarkOrange4 = { 0x8b8b, 0x4545, 0x0000, 0xffff }; +const rgba_t c_coral1 = { 0xffff, 0x7272, 0x5656, 0xffff }; +const rgba_t c_coral2 = { 0xeeee, 0x6a6a, 0x5050, 0xffff }; +const rgba_t c_coral3 = { 0xcdcd, 0x5b5b, 0x4545, 0xffff }; +const rgba_t c_coral4 = { 0x8b8b, 0x3e3e, 0x2f2f, 0xffff }; +const rgba_t c_tomato1 = { 0xffff, 0x6363, 0x4747, 0xffff }; +const rgba_t c_tomato2 = { 0xeeee, 0x5c5c, 0x4242, 0xffff }; +const rgba_t c_tomato3 = { 0xcdcd, 0x4f4f, 0x3939, 0xffff }; +const rgba_t c_tomato4 = { 0x8b8b, 0x3636, 0x2626, 0xffff }; +const rgba_t c_OrangeRed1 = { 0xffff, 0x4545, 0x0000, 0xffff }; +const rgba_t c_OrangeRed2 = { 0xeeee, 0x4040, 0x0000, 0xffff }; +const rgba_t c_OrangeRed3 = { 0xcdcd, 0x3737, 0x0000, 0xffff }; +const rgba_t c_OrangeRed4 = { 0x8b8b, 0x2525, 0x0000, 0xffff }; +const rgba_t c_red1 = { 0xffff, 0x0000, 0x0000, 0xffff }; +const rgba_t c_red2 = { 0xeeee, 0x0000, 0x0000, 0xffff }; +const rgba_t c_red3 = { 0xcdcd, 0x0000, 0x0000, 0xffff }; +const rgba_t c_red4 = { 0x8b8b, 0x0000, 0x0000, 0xffff }; +const rgba_t c_DeepPink1 = { 0xffff, 0x1414, 0x9393, 0xffff }; +const rgba_t c_DeepPink2 = { 0xeeee, 0x1212, 0x8989, 0xffff }; +const rgba_t c_DeepPink3 = { 0xcdcd, 0x1010, 0x7676, 0xffff }; +const rgba_t c_DeepPink4 = { 0x8b8b, 0x0a0a, 0x5050, 0xffff }; +const rgba_t c_HotPink1 = { 0xffff, 0x6e6e, 0xb4b4, 0xffff }; +const rgba_t c_HotPink2 = { 0xeeee, 0x6a6a, 0xa7a7, 0xffff }; +const rgba_t c_HotPink3 = { 0xcdcd, 0x6060, 0x9090, 0xffff }; +const rgba_t c_HotPink4 = { 0x8b8b, 0x3a3a, 0x6262, 0xffff }; +const rgba_t c_pink1 = { 0xffff, 0xb5b5, 0xc5c5, 0xffff }; +const rgba_t c_pink2 = { 0xeeee, 0xa9a9, 0xb8b8, 0xffff }; +const rgba_t c_pink3 = { 0xcdcd, 0x9191, 0x9e9e, 0xffff }; +const rgba_t c_pink4 = { 0x8b8b, 0x6363, 0x6c6c, 0xffff }; +const rgba_t c_LightPink1 = { 0xffff, 0xaeae, 0xb9b9, 0xffff }; +const rgba_t c_LightPink2 = { 0xeeee, 0xa2a2, 0xadad, 0xffff }; +const rgba_t c_LightPink3 = { 0xcdcd, 0x8c8c, 0x9595, 0xffff }; +const rgba_t c_LightPink4 = { 0x8b8b, 0x5f5f, 0x6565, 0xffff }; +const rgba_t c_PaleVioletRed1 = { 0xffff, 0x8282, 0xabab, 0xffff }; +const rgba_t c_PaleVioletRed2 = { 0xeeee, 0x7979, 0x9f9f, 0xffff }; +const rgba_t c_PaleVioletRed3 = { 0xcdcd, 0x6868, 0x8989, 0xffff }; +const rgba_t c_PaleVioletRed4 = { 0x8b8b, 0x4747, 0x5d5d, 0xffff }; +const rgba_t c_maroon1 = { 0xffff, 0x3434, 0xb3b3, 0xffff }; +const rgba_t c_maroon2 = { 0xeeee, 0x3030, 0xa7a7, 0xffff }; +const rgba_t c_maroon3 = { 0xcdcd, 0x2929, 0x9090, 0xffff }; +const rgba_t c_maroon4 = { 0x8b8b, 0x1c1c, 0x6262, 0xffff }; +const rgba_t c_VioletRed1 = { 0xffff, 0x3e3e, 0x9696, 0xffff }; +const rgba_t c_VioletRed2 = { 0xeeee, 0x3a3a, 0x8c8c, 0xffff }; +const rgba_t c_VioletRed3 = { 0xcdcd, 0x3232, 0x7878, 0xffff }; +const rgba_t c_VioletRed4 = { 0x8b8b, 0x2222, 0x5252, 0xffff }; +const rgba_t c_magenta1 = { 0xffff, 0x0000, 0xffff, 0xffff }; +const rgba_t c_magenta2 = { 0xeeee, 0x0000, 0xeeee, 0xffff }; +const rgba_t c_magenta3 = { 0xcdcd, 0x0000, 0xcdcd, 0xffff }; +const rgba_t c_magenta4 = { 0x8b8b, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_orchid1 = { 0xffff, 0x8383, 0xfafa, 0xffff }; +const rgba_t c_orchid2 = { 0xeeee, 0x7a7a, 0xe9e9, 0xffff }; +const rgba_t c_orchid3 = { 0xcdcd, 0x6969, 0xc9c9, 0xffff }; +const rgba_t c_orchid4 = { 0x8b8b, 0x4747, 0x8989, 0xffff }; +const rgba_t c_plum1 = { 0xffff, 0xbbbb, 0xffff, 0xffff }; +const rgba_t c_plum2 = { 0xeeee, 0xaeae, 0xeeee, 0xffff }; +const rgba_t c_plum3 = { 0xcdcd, 0x9696, 0xcdcd, 0xffff }; +const rgba_t c_plum4 = { 0x8b8b, 0x6666, 0x8b8b, 0xffff }; +const rgba_t c_MediumOrchid1 = { 0xe0e0, 0x6666, 0xffff, 0xffff }; +const rgba_t c_MediumOrchid2 = { 0xd1d1, 0x5f5f, 0xeeee, 0xffff }; +const rgba_t c_MediumOrchid3 = { 0xb4b4, 0x5252, 0xcdcd, 0xffff }; +const rgba_t c_MediumOrchid4 = { 0x7a7a, 0x3737, 0x8b8b, 0xffff }; +const rgba_t c_DarkOrchid1 = { 0xbfbf, 0x3e3e, 0xffff, 0xffff }; +const rgba_t c_DarkOrchid2 = { 0xb2b2, 0x3a3a, 0xeeee, 0xffff }; +const rgba_t c_DarkOrchid3 = { 0x9a9a, 0x3232, 0xcdcd, 0xffff }; +const rgba_t c_DarkOrchid4 = { 0x6868, 0x2222, 0x8b8b, 0xffff }; +const rgba_t c_purple1 = { 0x9b9b, 0x3030, 0xffff, 0xffff }; +const rgba_t c_purple2 = { 0x9191, 0x2c2c, 0xeeee, 0xffff }; +const rgba_t c_purple3 = { 0x7d7d, 0x2626, 0xcdcd, 0xffff }; +const rgba_t c_purple4 = { 0x5555, 0x1a1a, 0x8b8b, 0xffff }; +const rgba_t c_MediumPurple1 = { 0xabab, 0x8282, 0xffff, 0xffff }; +const rgba_t c_MediumPurple2 = { 0x9f9f, 0x7979, 0xeeee, 0xffff }; +const rgba_t c_MediumPurple3 = { 0x8989, 0x6868, 0xcdcd, 0xffff }; +const rgba_t c_MediumPurple4 = { 0x5d5d, 0x4747, 0x8b8b, 0xffff }; +const rgba_t c_thistle1 = { 0xffff, 0xe1e1, 0xffff, 0xffff }; +const rgba_t c_thistle2 = { 0xeeee, 0xd2d2, 0xeeee, 0xffff }; +const rgba_t c_thistle3 = { 0xcdcd, 0xb5b5, 0xcdcd, 0xffff }; +const rgba_t c_thistle4 = { 0x8b8b, 0x7b7b, 0x8b8b, 0xffff }; +const rgba_t c_gray0 = { 0x0000, 0x0000, 0x0000, 0xffff }; +const rgba_t c_grey0 = { 0x0000, 0x0000, 0x0000, 0xffff }; +const rgba_t c_gray1 = { 0x0303, 0x0303, 0x0303, 0xffff }; +const rgba_t c_grey1 = { 0x0303, 0x0303, 0x0303, 0xffff }; +const rgba_t c_gray2 = { 0x0505, 0x0505, 0x0505, 0xffff }; +const rgba_t c_grey2 = { 0x0505, 0x0505, 0x0505, 0xffff }; +const rgba_t c_gray3 = { 0x0808, 0x0808, 0x0808, 0xffff }; +const rgba_t c_grey3 = { 0x0808, 0x0808, 0x0808, 0xffff }; +const rgba_t c_gray4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff }; +const rgba_t c_grey4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff }; +const rgba_t c_gray5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff }; +const rgba_t c_grey5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff }; +const rgba_t c_gray6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff }; +const rgba_t c_grey6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff }; +const rgba_t c_gray7 = { 0x1212, 0x1212, 0x1212, 0xffff }; +const rgba_t c_grey7 = { 0x1212, 0x1212, 0x1212, 0xffff }; +const rgba_t c_gray8 = { 0x1414, 0x1414, 0x1414, 0xffff }; +const rgba_t c_grey8 = { 0x1414, 0x1414, 0x1414, 0xffff }; +const rgba_t c_gray9 = { 0x1717, 0x1717, 0x1717, 0xffff }; +const rgba_t c_grey9 = { 0x1717, 0x1717, 0x1717, 0xffff }; +const rgba_t c_gray10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff }; +const rgba_t c_grey10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff }; +const rgba_t c_gray11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff }; +const rgba_t c_grey11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff }; +const rgba_t c_gray12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff }; +const rgba_t c_grey12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff }; +const rgba_t c_gray13 = { 0x2121, 0x2121, 0x2121, 0xffff }; +const rgba_t c_grey13 = { 0x2121, 0x2121, 0x2121, 0xffff }; +const rgba_t c_gray14 = { 0x2424, 0x2424, 0x2424, 0xffff }; +const rgba_t c_grey14 = { 0x2424, 0x2424, 0x2424, 0xffff }; +const rgba_t c_gray15 = { 0x2626, 0x2626, 0x2626, 0xffff }; +const rgba_t c_grey15 = { 0x2626, 0x2626, 0x2626, 0xffff }; +const rgba_t c_gray16 = { 0x2929, 0x2929, 0x2929, 0xffff }; +const rgba_t c_grey16 = { 0x2929, 0x2929, 0x2929, 0xffff }; +const rgba_t c_gray17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff }; +const rgba_t c_grey17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff }; +const rgba_t c_gray18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff }; +const rgba_t c_grey18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff }; +const rgba_t c_gray19 = { 0x3030, 0x3030, 0x3030, 0xffff }; +const rgba_t c_grey19 = { 0x3030, 0x3030, 0x3030, 0xffff }; +const rgba_t c_gray20 = { 0x3333, 0x3333, 0x3333, 0xffff }; +const rgba_t c_grey20 = { 0x3333, 0x3333, 0x3333, 0xffff }; +const rgba_t c_gray21 = { 0x3636, 0x3636, 0x3636, 0xffff }; +const rgba_t c_grey21 = { 0x3636, 0x3636, 0x3636, 0xffff }; +const rgba_t c_gray22 = { 0x3838, 0x3838, 0x3838, 0xffff }; +const rgba_t c_grey22 = { 0x3838, 0x3838, 0x3838, 0xffff }; +const rgba_t c_gray23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff }; +const rgba_t c_grey23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff }; +const rgba_t c_gray24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff }; +const rgba_t c_grey24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff }; +const rgba_t c_gray25 = { 0x4040, 0x4040, 0x4040, 0xffff }; +const rgba_t c_grey25 = { 0x4040, 0x4040, 0x4040, 0xffff }; +const rgba_t c_gray26 = { 0x4242, 0x4242, 0x4242, 0xffff }; +const rgba_t c_grey26 = { 0x4242, 0x4242, 0x4242, 0xffff }; +const rgba_t c_gray27 = { 0x4545, 0x4545, 0x4545, 0xffff }; +const rgba_t c_grey27 = { 0x4545, 0x4545, 0x4545, 0xffff }; +const rgba_t c_gray28 = { 0x4747, 0x4747, 0x4747, 0xffff }; +const rgba_t c_grey28 = { 0x4747, 0x4747, 0x4747, 0xffff }; +const rgba_t c_gray29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff }; +const rgba_t c_grey29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff }; +const rgba_t c_gray30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff }; +const rgba_t c_grey30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff }; +const rgba_t c_gray31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_grey31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff }; +const rgba_t c_gray32 = { 0x5252, 0x5252, 0x5252, 0xffff }; +const rgba_t c_grey32 = { 0x5252, 0x5252, 0x5252, 0xffff }; +const rgba_t c_gray33 = { 0x5454, 0x5454, 0x5454, 0xffff }; +const rgba_t c_grey33 = { 0x5454, 0x5454, 0x5454, 0xffff }; +const rgba_t c_gray34 = { 0x5757, 0x5757, 0x5757, 0xffff }; +const rgba_t c_grey34 = { 0x5757, 0x5757, 0x5757, 0xffff }; +const rgba_t c_gray35 = { 0x5959, 0x5959, 0x5959, 0xffff }; +const rgba_t c_grey35 = { 0x5959, 0x5959, 0x5959, 0xffff }; +const rgba_t c_gray36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff }; +const rgba_t c_grey36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff }; +const rgba_t c_gray37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff }; +const rgba_t c_grey37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff }; +const rgba_t c_gray38 = { 0x6161, 0x6161, 0x6161, 0xffff }; +const rgba_t c_grey38 = { 0x6161, 0x6161, 0x6161, 0xffff }; +const rgba_t c_gray39 = { 0x6363, 0x6363, 0x6363, 0xffff }; +const rgba_t c_grey39 = { 0x6363, 0x6363, 0x6363, 0xffff }; +const rgba_t c_gray40 = { 0x6666, 0x6666, 0x6666, 0xffff }; +const rgba_t c_grey40 = { 0x6666, 0x6666, 0x6666, 0xffff }; +const rgba_t c_gray41 = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_grey41 = { 0x6969, 0x6969, 0x6969, 0xffff }; +const rgba_t c_gray42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff }; +const rgba_t c_grey42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff }; +const rgba_t c_gray43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff }; +const rgba_t c_grey43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff }; +const rgba_t c_gray44 = { 0x7070, 0x7070, 0x7070, 0xffff }; +const rgba_t c_grey44 = { 0x7070, 0x7070, 0x7070, 0xffff }; +const rgba_t c_gray45 = { 0x7373, 0x7373, 0x7373, 0xffff }; +const rgba_t c_grey45 = { 0x7373, 0x7373, 0x7373, 0xffff }; +const rgba_t c_gray46 = { 0x7575, 0x7575, 0x7575, 0xffff }; +const rgba_t c_grey46 = { 0x7575, 0x7575, 0x7575, 0xffff }; +const rgba_t c_gray47 = { 0x7878, 0x7878, 0x7878, 0xffff }; +const rgba_t c_grey47 = { 0x7878, 0x7878, 0x7878, 0xffff }; +const rgba_t c_gray48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff }; +const rgba_t c_grey48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff }; +const rgba_t c_gray49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff }; +const rgba_t c_grey49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff }; +const rgba_t c_gray50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff }; +const rgba_t c_grey50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff }; +const rgba_t c_gray51 = { 0x8282, 0x8282, 0x8282, 0xffff }; +const rgba_t c_grey51 = { 0x8282, 0x8282, 0x8282, 0xffff }; +const rgba_t c_gray52 = { 0x8585, 0x8585, 0x8585, 0xffff }; +const rgba_t c_grey52 = { 0x8585, 0x8585, 0x8585, 0xffff }; +const rgba_t c_gray53 = { 0x8787, 0x8787, 0x8787, 0xffff }; +const rgba_t c_grey53 = { 0x8787, 0x8787, 0x8787, 0xffff }; +const rgba_t c_gray54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff }; +const rgba_t c_grey54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff }; +const rgba_t c_gray55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff }; +const rgba_t c_grey55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff }; +const rgba_t c_gray56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff }; +const rgba_t c_grey56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff }; +const rgba_t c_gray57 = { 0x9191, 0x9191, 0x9191, 0xffff }; +const rgba_t c_grey57 = { 0x9191, 0x9191, 0x9191, 0xffff }; +const rgba_t c_gray58 = { 0x9494, 0x9494, 0x9494, 0xffff }; +const rgba_t c_grey58 = { 0x9494, 0x9494, 0x9494, 0xffff }; +const rgba_t c_gray59 = { 0x9696, 0x9696, 0x9696, 0xffff }; +const rgba_t c_grey59 = { 0x9696, 0x9696, 0x9696, 0xffff }; +const rgba_t c_gray60 = { 0x9999, 0x9999, 0x9999, 0xffff }; +const rgba_t c_grey60 = { 0x9999, 0x9999, 0x9999, 0xffff }; +const rgba_t c_gray61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff }; +const rgba_t c_grey61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff }; +const rgba_t c_gray62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff }; +const rgba_t c_grey62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff }; +const rgba_t c_gray63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff }; +const rgba_t c_grey63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff }; +const rgba_t c_gray64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff }; +const rgba_t c_grey64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff }; +const rgba_t c_gray65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff }; +const rgba_t c_grey65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff }; +const rgba_t c_gray66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff }; +const rgba_t c_grey66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff }; +const rgba_t c_gray67 = { 0xabab, 0xabab, 0xabab, 0xffff }; +const rgba_t c_grey67 = { 0xabab, 0xabab, 0xabab, 0xffff }; +const rgba_t c_gray68 = { 0xadad, 0xadad, 0xadad, 0xffff }; +const rgba_t c_grey68 = { 0xadad, 0xadad, 0xadad, 0xffff }; +const rgba_t c_gray69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff }; +const rgba_t c_grey69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff }; +const rgba_t c_gray70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff }; +const rgba_t c_grey70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff }; +const rgba_t c_gray71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff }; +const rgba_t c_grey71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff }; +const rgba_t c_gray72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff }; +const rgba_t c_grey72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff }; +const rgba_t c_gray73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff }; +const rgba_t c_grey73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff }; +const rgba_t c_gray74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff }; +const rgba_t c_grey74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff }; +const rgba_t c_gray75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff }; +const rgba_t c_grey75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff }; +const rgba_t c_gray76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff }; +const rgba_t c_grey76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff }; +const rgba_t c_gray77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff }; +const rgba_t c_grey77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff }; +const rgba_t c_gray78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff }; +const rgba_t c_grey78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff }; +const rgba_t c_gray79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff }; +const rgba_t c_grey79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff }; +const rgba_t c_gray80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff }; +const rgba_t c_grey80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff }; +const rgba_t c_gray81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff }; +const rgba_t c_grey81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff }; +const rgba_t c_gray82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff }; +const rgba_t c_grey82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff }; +const rgba_t c_gray83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff }; +const rgba_t c_grey83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff }; +const rgba_t c_gray84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff }; +const rgba_t c_grey84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff }; +const rgba_t c_gray85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff }; +const rgba_t c_grey85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff }; +const rgba_t c_gray86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff }; +const rgba_t c_grey86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff }; +const rgba_t c_gray87 = { 0xdede, 0xdede, 0xdede, 0xffff }; +const rgba_t c_grey87 = { 0xdede, 0xdede, 0xdede, 0xffff }; +const rgba_t c_gray88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff }; +const rgba_t c_grey88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff }; +const rgba_t c_gray89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff }; +const rgba_t c_grey89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff }; +const rgba_t c_gray90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff }; +const rgba_t c_grey90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff }; +const rgba_t c_gray91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff }; +const rgba_t c_grey91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff }; +const rgba_t c_gray92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff }; +const rgba_t c_grey92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff }; +const rgba_t c_gray93 = { 0xeded, 0xeded, 0xeded, 0xffff }; +const rgba_t c_grey93 = { 0xeded, 0xeded, 0xeded, 0xffff }; +const rgba_t c_gray94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff }; +const rgba_t c_grey94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff }; +const rgba_t c_gray95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff }; +const rgba_t c_grey95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff }; +const rgba_t c_gray96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff }; +const rgba_t c_grey96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff }; +const rgba_t c_gray97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff }; +const rgba_t c_grey97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff }; +const rgba_t c_gray98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff }; +const rgba_t c_grey98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff }; +const rgba_t c_gray99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff }; +const rgba_t c_grey99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff }; +const rgba_t c_gray100 = { 0xffff, 0xffff, 0xffff, 0xffff }; +const rgba_t c_grey100 = { 0xffff, 0xffff, 0xffff, 0xffff }; +const rgba_t c_dark_grey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff }; +const rgba_t c_DarkGrey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff }; +const rgba_t c_dark_gray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff }; +const rgba_t c_DarkGray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff }; +const rgba_t c_dark_blue = { 0x0000, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_DarkBlue = { 0x0000, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_dark_cyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_DarkCyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff }; +const rgba_t c_dark_magenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_DarkMagenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff }; +const rgba_t c_dark_red = { 0x8b8b, 0x0000, 0x0000, 0xffff }; +const rgba_t c_DarkRed = { 0x8b8b, 0x0000, 0x0000, 0xffff }; +const rgba_t c_light_green = { 0x9090, 0xeeee, 0x9090, 0xffff }; +const rgba_t c_LightGreen = { 0x9090, 0xeeee, 0x9090, 0xffff }; + + + /* + * Calculate a weighted difference between two colors + */ + +u32 color_error(const rgba_t *a, const rgba_t *b) +{ + u32 error = abs(a->r-b->r)+abs(a->g-b->g)+abs(a->b-b->b); + return RGB_WEIGHT*error+abs(a->a-b->a); +} + + + /* + * Add two colors: a = b+c + */ + +void color_add(rgba_t *a, const rgba_t *b, const rgba_t *c) +{ + a->r = b->r+c->r; + a->g = b->g+c->g; + a->b = b->b+c->b; + a->a = b->a+c->a; +} + + + /* + * Subtract two colors: a = b-c + */ + +void color_sub(rgba_t *a, const rgba_t *b, const rgba_t *c) +{ + a->r = b->r-c->r; + a->g = b->g-c->g; + a->b = b->b-c->b; + a->a = b->a-c->a; +} + + + /* + * Find the index of the closest color in a CLUT + */ + +u32 color_find(const rgba_t *color, const rgba_t *clut, u32 clut_size) +{ + u32 idx, best_idx, error, best_error; + + best_idx = 0; + best_error = color_error(&clut[0], color); + for (idx = 1; idx < clut_size; idx++) { + error = color_error(&clut[idx], color); + if (error < best_error) { + best_idx = idx; + best_error = error; + } + } + return best_idx; +} + + + /* + * RGB/YUV conversions + */ + +/* Fast saturation from Imlib2 */ +#define SATURATE_BOTH(out, in) \ + do { \ + unsigned int tmp = (in); \ + out = (tmp | (-(tmp >> 8))) & (~(tmp >> 9)); \ + } while (0) + +void yuva_to_rgba(const yuva_t *yuva, rgba_t *rgba) +{ + u8 y, u, v, r, g, b; + + /* The actual conversion is done in 8 bit */ + y = yuva->y >> 8; + u = yuva->u >> 8; + v = yuva->v >> 8; + + /* YUV to RGB */ + SATURATE_BOTH(r, (298*(y-16)+409*(v-128))/256); + SATURATE_BOTH(g, (298*(y-16)-100*(u-128)-208*(v-128))/256); + SATURATE_BOTH(b, (298*(y-16)+516*(u-128))/256); + + /* Expand to 16 bit */ + rgba->r = (r << 8) | r; + rgba->g = (g << 8) | g; + rgba->b = (b << 8) | b; + + rgba->a = yuva->a; +} + +void rgba_to_yuva(const rgba_t *rgba, yuva_t *yuva) +{ + int r, g, b, y, u, v; + + /* The actual conversion is done in 8 bit */ + r = rgba->r >> 8; + g = rgba->g >> 8; + b = rgba->b >> 8; + + /* RGB to YUV */ + SATURATE_BOTH(y, ((66*r+129*g+25*b)/256)+16); + SATURATE_BOTH(u, (128*256-38*r-74*g+112*b)/256); + SATURATE_BOTH(v, (128*256+112*r-94*g-18*b)/256); + + /* Expand to 16 bit */ + yuva->y = (y << 8) | y; + yuva->u = (u << 8) | u; + yuva->v = (v << 8) | v; + + yuva->a = rgba->a; +} + diff --git a/colormap.c b/colormap.c new file mode 100644 index 0000000..2bc4404 --- /dev/null +++ b/colormap.c @@ -0,0 +1,85 @@ + +/* + * Colormap manipulation + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> +#include <string.h> + +#include "types.h" +#include "color.h" +#include "colormap.h" +#include "fb.h" + + + /* + * Clear the colormap + */ + +#define CLEAR_COMPONENT(name) \ + do { \ + memset(fb_cmap.name, 0, fb_cmap.len*sizeof(u16)); \ + } while (0) + +void cmap_clear(void) +{ + CLEAR_COMPONENT(red); + CLEAR_COMPONENT(green); + CLEAR_COMPONENT(blue); + if (fb_cmap.transp) + CLEAR_COMPONENT(transp); +} + +#undef CLEAR_COMPONENT + + + /* + * Initialization + */ + +#define ALLOC_COMPONENT(name, len) \ + do { \ + fb_cmap.name = malloc(len*sizeof(u16)); \ + } while (0) + +void cmap_init(u32 len) +{ + ALLOC_COMPONENT(red, len); + ALLOC_COMPONENT(green, len); + ALLOC_COMPONENT(blue, len); + ALLOC_COMPONENT(transp, len); + fb_cmap.start = 0; + fb_cmap.len = len; +} + +#undef ALLOC_COMPONENT + + + /* + * Clean up + */ + +#define FREE_COMPONENT(name) \ + do { \ + free(fb_cmap.name); \ + fb_cmap.name = NULL; \ + } while (0) + +void cmap_cleanup(void) +{ + FREE_COMPONENT(red); + FREE_COMPONENT(green); + FREE_COMPONENT(blue); + FREE_COMPONENT(transp); + fb_cmap.start = 0; + fb_cmap.len = 0; +} + +#undef FREE_COMPONENT + diff --git a/console.c b/console.c new file mode 100644 index 0000000..0ed858e --- /dev/null +++ b/console.c @@ -0,0 +1,226 @@ + +/* + * Simple text console + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdarg.h> +#include <stdio.h> + +#include "types.h" +#include "font.h" +#include "console.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "clut.h" +#include "util.h" + + +#define PRINTF_BUFFER_SIZE 1024 +#define BITMAP_SIZE 1024 + +static char printf_buffer[PRINTF_BUFFER_SIZE]; + +static const struct font *con_font; +static unsigned int con_pitch, con_charsize; +static unsigned int con_cols, con_rows; +static unsigned int con_x, con_y; +static pixel_t con_fgcolor, con_bgcolor; + +static unsigned char bitmap[BITMAP_SIZE]; +static unsigned int bitmap_width, bitmap_pitch, bitmap_max_width; +static unsigned int bitmap_x; + +static void con_flush(void) +{ + if (bitmap_width) { + expand_bitmap(bitmap_x*con_font->width, con_y*con_font->height, + bitmap_width, con_font->height, (const u8 *)bitmap, + bitmap_pitch, con_bgcolor, con_fgcolor); + bitmap_width = 0; + } +} + +static void con_clear(void) +{ + con_flush(); + fill_rect(0, 0, con_cols*con_font->width, con_rows*con_font->height, + con_bgcolor); +} + +static void con_reset(void) +{ + con_flush(); + + con_x = 0; + con_y = 0; + con_fgcolor = idx_pixel[7]; + con_bgcolor = idx_pixel[0]; + + con_clear(); +} + + +static void con_scrollup(void) +{ + con_flush(); + copy_rect(0, 0, con_cols*con_font->width, (con_rows-1)*con_font->height, + 0, con_font->height); + fill_rect(0, (con_rows-1)*con_font->height, con_cols*con_font->width, + con_font->height, con_bgcolor); +} + + +void con_init(const struct font *font) +{ + int i; + + fill_rect(0, 0, fb_var.xres, fb_var.yres, 0); + + con_font = font; + con_pitch = (font->width+7)/8; + con_charsize = con_pitch*font->height; + + con_cols = fb_var.xres/font->width; + con_rows = fb_var.yres/font->height; + + for (i = 0; i < 16; i++) + clut[i] = clut_console[i]; + clut_update(); + + bitmap_pitch = (sizeof(bitmap)/(font->height*sizeof(unsigned long)))* + sizeof(unsigned long); + bitmap_max_width = bitmap_pitch*8; + bitmap_width = 0; + bitmap_x = 0; + + con_reset(); +} + +static void con_newline(void) +{ + con_flush(); + con_x = 0; + con_y++; + if (con_y == con_rows) { + con_y--; + con_scrollup(); + } +} + +static void con_store_char(unsigned char c) +{ + const unsigned char *src; + unsigned char *dst; + int y; + + if (bitmap_width+con_font->width > bitmap_max_width) + con_flush(); + if (!bitmap_width) + bitmap_x = con_x; + src = con_font->data+c*con_charsize; + switch (con_font->width) { + case 4: + dst = bitmap+bitmap_width/8; + if (bitmap_width & 4) { + for (y = 0; y < con_font->height; y++) { + *dst |= *src++ & 0x0f; + dst += bitmap_pitch; + } + } else { + for (y = 0; y < con_font->height; y++) { + *dst = *src++ & 0xf0; + dst += bitmap_pitch; + } + } + break; + + case 8: + dst = bitmap+bitmap_width/8; + for (y = 0; y < con_font->height; y++) { + *dst = *src++; + dst += bitmap_pitch; + } + break; + + case 12: + dst = bitmap+bitmap_width/8; + if (bitmap_width & 4) { + for (y = 0; y < con_font->height; y++) { + unsigned char d = *src++; + dst[0] |= d >> 4; + dst[1] = d << 4 | *src++ >> 4; + dst += bitmap_pitch; + } + } else { + for (y = 0; y < con_font->height; y++) { + dst[0] = *src++; + dst[1] = *src++ & 0xf0; + dst += bitmap_pitch; + } + } + break; + + case 16: + dst = bitmap+bitmap_width/8; + for (y = 0; y < con_font->height; y++) { + dst[0] = *src++; + dst[1] = *src++; + dst += bitmap_pitch; + } + break; + + default: + Fatal("Fontwidth %d is not yet supported\n", con_font->width); + } + bitmap_width += con_font->width; +} + +static void con_do_putc(unsigned char c) +{ + switch (c) { + case '\n': + con_newline(); + break; + + default: + con_store_char(c); + con_x++; + if (con_x == con_cols) + con_newline(); + break; + } +} + +void con_putc(char c) +{ + con_do_putc(c); + con_flush(); +} + +void con_puts(const char *s) +{ + unsigned char c; + + while ((c = *s++)) + con_do_putc(c); + con_flush(); +} + + +void con_printf(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vsnprintf(printf_buffer, sizeof(printf_buffer), fmt, ap); + va_end(ap); + con_puts(printf_buffer); +} + diff --git a/drawops/Makefile b/drawops/Makefile new file mode 100644 index 0000000..dc9ec21 --- /dev/null +++ b/drawops/Makefile @@ -0,0 +1,7 @@ + +TOPDIR = .. + +O_TARGET = drawops.o + +include $(TOPDIR)/Rules.make + diff --git a/drawops/bitstream.c b/drawops/bitstream.c new file mode 100644 index 0000000..b3e0933 --- /dev/null +++ b/drawops/bitstream.c @@ -0,0 +1,564 @@ + +/* + * Bitstream operations + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "bitstream.h" +#include "fb.h" + + + /* + * Compose two values, using a bitmask as decision value + * This is equivalent to (a & mask) | (b & ~mask) + */ + +static inline unsigned long comp(unsigned long a, unsigned long b, + unsigned long mask) +{ + return ((a ^ b) & mask) ^ b; +} + + + /* + * Unaligned forward bit copy using 32-bit or 64-bit memory accesses + */ + +void bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src, + int src_idx, u32 n) +{ + unsigned long first, last; + int shift = dst_idx-src_idx, left, right; + unsigned long d0, d1; + int m; + + if (!n) + return; + + shift = dst_idx-src_idx; + first = ~0UL >> dst_idx; + last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG)); + + if (!shift) { + // Same alignment for source and dest + + if (dst_idx+n <= BITS_PER_LONG) { + // Single word + if (last) + first &= last; + *dst = comp(*src, *dst, first); + } else { + // Multiple destination words + // Leading bits + if (first) { + *dst = comp(*src, *dst, first); + dst++; + src++; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + n /= BITS_PER_LONG; + while (n >= 8) { + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + n -= 8; + } + while (n--) + *dst++ = *src++; + + // Trailing bits + if (last) + *dst = comp(*src, *dst, last); + } + } else { + // Different alignment for source and dest + + right = shift & (BITS_PER_LONG-1); + left = -shift & (BITS_PER_LONG-1); + + if (dst_idx+n <= BITS_PER_LONG) { + // Single destination word + if (last) + first &= last; + if (shift > 0) { + // Single source word + *dst = comp(*src >> right, *dst, first); + } else if (src_idx+n <= BITS_PER_LONG) { + // Single source word + *dst = comp(*src << left, *dst, first); + } else { + // 2 source words + d0 = *src++; + d1 = *src; + *dst = comp(d0 << left | d1 >> right, *dst, first); + } + } else { + // Multiple destination words + d0 = *src++; + // Leading bits + if (shift > 0) { + // Single source word + *dst = comp(d0 >> right, *dst, first); + dst++; + n -= BITS_PER_LONG-dst_idx; + } else { + // 2 source words + d1 = *src++; + *dst = comp(d0 << left | d1 >> right, *dst, first); + d0 = d1; + dst++; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + m = n % BITS_PER_LONG; + n /= BITS_PER_LONG; + while (n >= 4) { + d1 = *src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = *src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = *src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = *src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + n -= 4; + } + while (n--) { + d1 = *src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + } + + // Trailing bits + if (last) { + if (m <= right) { + // Single source word + *dst = comp(d0 << left, *dst, last); + } else { + // 2 source words + d1 = *src; + *dst = comp(d0 << left | d1 >> right, *dst, last); + } + } + } + } +} + + + /* + * Unaligned reverse bit copy using 32-bit or 64-bit memory accesses + */ + +void bitcpy_rev(unsigned long *dst, int dst_idx, const unsigned long *src, + int src_idx, u32 n) +{ + unsigned long first, last; + int shift = dst_idx-src_idx, left, right; + unsigned long d0, d1; + int m; + + if (!n) + return; + + dst += (n-1)/BITS_PER_LONG; + src += (n-1)/BITS_PER_LONG; + if ((n-1) % BITS_PER_LONG) { + dst_idx += (n-1) % BITS_PER_LONG; + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= BITS_PER_LONG-1; + src_idx += (n-1) % BITS_PER_LONG; + src += src_idx >> SHIFT_PER_LONG; + src_idx &= BITS_PER_LONG-1; + } + + shift = dst_idx-src_idx; + first = ~0UL << (BITS_PER_LONG-1-dst_idx); + last = ~(~0UL << (BITS_PER_LONG-1-((dst_idx-n) % BITS_PER_LONG))); + + if (!shift) { + // Same alignment for source and dest + + if ((unsigned long)dst_idx+1 >= n) { + // Single word + if (last) + first &= last; + *dst = comp(*src, *dst, first); + } else { + // Multiple destination words + // Leading bits + if (first) { + *dst = comp(*src, *dst, first); + dst--; + src--; + n -= dst_idx+1; + } + + // Main chunk + n /= BITS_PER_LONG; + while (n >= 8) { + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + *dst-- = *src--; + n -= 8; + } + while (n--) + *dst-- = *src--; + + // Trailing bits + if (last) + *dst = comp(*src, *dst, last); + } + } else { + // Different alignment for source and dest + + right = shift & (BITS_PER_LONG-1); + left = -shift & (BITS_PER_LONG-1); + + if ((unsigned long)dst_idx+1 >= n) { + // Single destination word + if (last) + first &= last; + if (shift < 0) { + // Single source word + *dst = comp(*src << left, *dst, first); + } else if (1+(unsigned long)src_idx >= n) { + // Single source word + *dst = comp(*src >> right, *dst, first); + } else { + // 2 source words + d0 = *src--; + d1 = *src; + *dst = comp(d0 >> right | d1 << left, *dst, first); + } + } else { + // Multiple destination words + d0 = *src--; + // Leading bits + if (shift < 0) { + // Single source word + *dst = comp(d0 << left, *dst, first); + dst--; + n -= dst_idx+1; + } else { + // 2 source words + d1 = *src--; + *dst = comp(d0 >> right | d1 << left, *dst, first); + d0 = d1; + dst--; + n -= dst_idx+1; + } + + // Main chunk + m = n % BITS_PER_LONG; + n /= BITS_PER_LONG; + while (n >= 4) { + d1 = *src--; + *dst-- = d0 >> right | d1 << left; + d0 = d1; + d1 = *src--; + *dst-- = d0 >> right | d1 << left; + d0 = d1; + d1 = *src--; + *dst-- = d0 >> right | d1 << left; + d0 = d1; + d1 = *src--; + *dst-- = d0 >> right | d1 << left; + d0 = d1; + n -= 4; + } + while (n--) { + d1 = *src--; + *dst-- = d0 >> right | d1 << left; + d0 = d1; + } + + // Trailing bits + if (last) { + if (m <= left) { + // Single source word + *dst = comp(d0 >> right, *dst, last); + } else { + // 2 source words + d1 = *src; + *dst = comp(d0 >> right | d1 << left, *dst, last); + } + } + } + } +} + + + /* + * Unaligned forward inverting bit copy using 32-bit or 64-bit memory + * accesses + */ + +void bitcpy_not(unsigned long *dst, int dst_idx, const unsigned long *src, + int src_idx, u32 n) +{ + unsigned long first, last; + int shift = dst_idx-src_idx, left, right; + unsigned long d0, d1; + int m; + + if (!n) + return; + + shift = dst_idx-src_idx; + first = ~0UL >> dst_idx; + last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG)); + + if (!shift) { + // Same alignment for source and dest + + if (dst_idx+n <= BITS_PER_LONG) { + // Single word + if (last) + first &= last; + *dst = comp(~*src, *dst, first); + } else { + // Multiple destination words + // Leading bits + if (first) { + *dst = comp(~*src, *dst, first); + dst++; + src++; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + n /= BITS_PER_LONG; + while (n >= 8) { + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + *dst++ = ~*src++; + n -= 8; + } + while (n--) + *dst++ = ~*src++; + + // Trailing bits + if (last) + *dst = comp(~*src, *dst, last); + } + } else { + // Different alignment for source and dest + + right = shift & (BITS_PER_LONG-1); + left = -shift & (BITS_PER_LONG-1); + + if (dst_idx+n <= BITS_PER_LONG) { + // Single destination word + if (last) + first &= last; + if (shift > 0) { + // Single source word + *dst = comp(~*src >> right, *dst, first); + } else if (src_idx+n <= BITS_PER_LONG) { + // Single source word + *dst = comp(~*src << left, *dst, first); + } else { + // 2 source words + d0 = ~*src++; + d1 = ~*src; + *dst = comp(d0 << left | d1 >> right, *dst, first); + } + } else { + // Multiple destination words + d0 = ~*src++; + // Leading bits + if (shift > 0) { + // Single source word + *dst = comp(d0 >> right, *dst, first); + dst++; + n -= BITS_PER_LONG-dst_idx; + } else { + // 2 source words + d1 = ~*src++; + *dst = comp(d0 << left | d1 >> right, *dst, first); + d0 = d1; + dst++; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + m = n % BITS_PER_LONG; + n /= BITS_PER_LONG; + while (n >= 4) { + d1 = ~*src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = ~*src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = ~*src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + d1 = ~*src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + n -= 4; + } + while (n--) { + d1 = ~*src++; + *dst++ = d0 << left | d1 >> right; + d0 = d1; + } + + // Trailing bits + if (last) { + if (m <= right) { + // Single source word + *dst = comp(d0 << left, *dst, last); + } else { + // 2 source words + d1 = ~*src; + *dst = comp(d0 << left | d1 >> right, *dst, last); + } + } + } + } +} + + + /* + * Unaligned 32-bit pattern fill using 32/64-bit memory accesses + */ + +void bitfill32(unsigned long *dst, int dst_idx, u32 pat, u32 n) +{ + unsigned long val = pat; + unsigned long first, last; + + if (!n) + return; + +#if BITS_PER_LONG == 64 + val |= val << 32; +#endif + + first = ~0UL >> dst_idx; + last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG)); + + if (dst_idx+n <= BITS_PER_LONG) { + // Single word + if (last) + first &= last; + *dst = comp(val, *dst, first); + } else { + // Multiple destination words + // Leading bits + if (first) { + *dst = comp(val, *dst, first); + dst++; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + n /= BITS_PER_LONG; + while (n >= 8) { + *dst++ = val; + *dst++ = val; + *dst++ = val; + *dst++ = val; + *dst++ = val; + *dst++ = val; + *dst++ = val; + *dst++ = val; + n -= 8; + } + while (n--) + *dst++ = val; + + // Trailing bits + if (last) + *dst = comp(val, *dst, last); + } +} + + + /* + * Unaligned generic pattern fill using 32/64-bit memory accesses + * The pattern must have been expanded to a full 32/64-bit value + * Left/right are the appropriate shifts to convert to the pattern to be + * used for the next 32/64-bit word + */ + +void bitfill(unsigned long *dst, int dst_idx, unsigned long pat, int left, + int right, u32 n) +{ + unsigned long first, last; + + if (!n) + return; + + first = ~0UL >> dst_idx; + last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG)); + + if (dst_idx+n <= BITS_PER_LONG) { + // Single word + if (last) + first &= last; + *dst = comp(pat, *dst, first); + } else { + // Multiple destination words + // Leading bits + if (first) { + *dst = comp(pat, *dst, first); + dst++; + pat = pat << left | pat >> right; + n -= BITS_PER_LONG-dst_idx; + } + + // Main chunk + n /= BITS_PER_LONG; + while (n >= 4) { + *dst++ = pat; + pat = pat << left | pat >> right; + *dst++ = pat; + pat = pat << left | pat >> right; + *dst++ = pat; + pat = pat << left | pat >> right; + *dst++ = pat; + pat = pat << left | pat >> right; + n -= 4; + } + while (n--) { + *dst++ = pat; + pat = pat << left | pat >> right; + } + + // Trailing bits + if (last) + *dst = comp(pat, *dst, last); + } +} + diff --git a/drawops/cfb.c b/drawops/cfb.c new file mode 100644 index 0000000..ab13e0c --- /dev/null +++ b/drawops/cfb.c @@ -0,0 +1,198 @@ +/* + * Generic low-level drawing operations for a cfb frame buffer + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "bitstream.h" +#include "fb.h" + + +#define EXP1(x) 0xffffffffU*x +#define EXP2(x) 0x55555555U*x +#define EXP4(x) 0x11111111U*0x ## x + +static const u32 bpp1tab[2] = { + EXP1(0), EXP1(1) +}; + +static const u32 bpp2tab[4] = { + EXP2(0), EXP2(1), EXP2(2), EXP2(3) +}; + +static const u32 bpp4tab[16] = { + EXP4(0), EXP4(1), EXP4(2), EXP4(3), EXP4(4), EXP4(5), EXP4(6), EXP4(7), + EXP4(8), EXP4(9), EXP4(a), EXP4(b), EXP4(c), EXP4(d), EXP4(e), EXP4(f) +}; + + +static u32 next_line; + +int cfb_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel > 32) + return 0; + + next_line = + fb_fix.line_length ? fb_fix.line_length + : fb_var.xres_virtual*8/fb_var.bits_per_pixel; + return 1; +} + + + /* + * Expand a pixel value to a 32-bit pattern + */ + +static inline u32 pixel_to_pat32(pixel_t pixel) +{ + u32 pat = pixel; + + switch (fb_var.bits_per_pixel) { + case 1: + pat = bpp1tab[pat]; + break; + + case 2: + pat = bpp2tab[pat]; + break; + + case 4: + pat = bpp4tab[pat]; + break; + + case 8: + pat |= pat << 8; + // Fall through + case 16: + pat |= pat << 16; + // Fall through + case 32: + break; + } + return pat; +} + + + /* + * Expand a pixel value to a generic 32/64-bit pattern and rotate it to + * the correct start position + */ + +static inline unsigned long pixel_to_pat(pixel_t pixel, int left) +{ + unsigned long pat = pixel; + u32 bpp = fb_var.bits_per_pixel; + int i; + + /* expand pixel value */ + for (i = bpp; i < BITS_PER_LONG; i *= 2) + pat |= pat << i; + + /* rotate pattern to correct start position */ + pat = pat << left | pat >> (bpp-left); + return pat; +} + + +void cfb_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel) +{ + unsigned long *dst; + int dst_idx, left; + u32 bpp = fb_var.bits_per_pixel; + + dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += y*next_line*8+x*bpp; + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + /* FIXME For now we support 1-32 bpp only */ + left = BITS_PER_LONG % bpp; + if (!left) { + u32 pat = pixel_to_pat32(pixel); + bitfill32(dst, dst_idx, pat, length*bpp); + } else { + unsigned long pat = pixel_to_pat(pixel, (left-dst_idx) % bpp); + bitfill(dst, dst_idx, pat, left, bpp-left, length*bpp); + } +} + +void cfb_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel) +{ + unsigned long *dst; + int dst_idx, left; + u32 bpp = fb_var.bits_per_pixel; + + dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += y*next_line*8+x*bpp; + /* FIXME For now we support 1-32 bpp only */ + left = BITS_PER_LONG % bpp; + if (!left) { + u32 pat = pixel_to_pat32(pixel); + while (height--) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + bitfill32(dst, dst_idx, pat, width*bpp); + dst_idx += next_line*8; + } + } else { + unsigned long pat = pixel_to_pat(pixel, (left-dst_idx) % bpp); + int right = bpp-left; + int r; + while (height--) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + bitfill(dst, dst_idx, pat, left, right, width*bpp); + r = (next_line*8) % bpp; + pat = pat << (bpp-r) | pat >> r; + dst_idx += next_line*8; + } + } +} + +void cfb_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy) +{ + unsigned long *dst, *src; + int dst_idx, src_idx; + u32 bpp = fb_var.bits_per_pixel; + int rev_copy = 0; + + if (dy > sy || (dy == sy && dx > sx)) { + dy += height; + sy += height; + rev_copy = 1; + } + dst = src = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = src_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += dy*next_line*8+dx*bpp; + src_idx += sy*next_line*8+sx*bpp; + if (rev_copy) { + while (height--) { + dst_idx -= next_line*8; + src_idx -= next_line*8; + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + src += src_idx >> SHIFT_PER_LONG; + src_idx &= (BITS_PER_LONG-1); + bitcpy_rev(dst, dst_idx, src, src_idx, width*bpp); + } + } else { + while (height--) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + src += src_idx >> SHIFT_PER_LONG; + src_idx &= (BITS_PER_LONG-1); + bitcpy(dst, dst_idx, src, src_idx, width*bpp); + dst_idx += next_line*8; + src_idx += next_line*8; + } + } +} + diff --git a/drawops/cfb16.c b/drawops/cfb16.c new file mode 100644 index 0000000..fde1854 --- /dev/null +++ b/drawops/cfb16.c @@ -0,0 +1,50 @@ + +/* + * Low-level drawing operations for a cfb16 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" + + +static u16 *screen; +static u32 screen_width; + +static int cfb16_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 16) + return 0; + + screen = (u16 *)fb; + screen_width = fb_fix.line_length ? fb_fix.line_length/2 + : fb_var.xres_virtual; + return cfb_init(); +} + +static void cfb16_setpixel(u32 x, u32 y, pixel_t pixel) +{ + screen[y*screen_width+x] = pixel; +} + +static pixel_t cfb16_getpixel(u32 x, u32 y) +{ + return screen[y*screen_width+x]; +} + +const struct drawops cfb16_drawops = { + .name = "cfb16 (16 bpp packed pixels)", + .init = cfb16_init, + .set_pixel = cfb16_setpixel, + .get_pixel = cfb16_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/cfb2.c b/drawops/cfb2.c new file mode 100644 index 0000000..e3c92f7 --- /dev/null +++ b/drawops/cfb2.c @@ -0,0 +1,54 @@ + +/* + * Low-level drawing operations for a cfb2 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" +#include "util.h" + + +static u8 *screen; +static u32 screen_width; + +static int cfb2_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 2) + return 0; + + screen = fb; + screen_width = fb_fix.line_length ? fb_fix.line_length + : fb_var.xres_virtual/4; + return cfb_init(); +} + +static void cfb2_setpixel(u32 x, u32 y, pixel_t pixel) +{ + int shift = 2*(3- (x & 3)); + u8 *p = &screen[y*screen_width+x/4]; + u8 mask = 3 << shift; + *p = pixel << shift | (*p & ~mask); +} + +static pixel_t cfb2_getpixel(u32 x, u32 y) +{ + return (screen[y*screen_width+x/4] >> (2*(3- (x & 3)))) & 15; +} + +const struct drawops cfb2_drawops = { + .name = "cfb2 (2 bpp packed pixels)", + .init = cfb2_init, + .set_pixel = cfb2_setpixel, + .get_pixel = cfb2_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/cfb24.c b/drawops/cfb24.c new file mode 100644 index 0000000..161456b --- /dev/null +++ b/drawops/cfb24.c @@ -0,0 +1,58 @@ + +/* + * Low-level drawing operations for a cfb24 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" + + +static u8 *screen; +static u32 screen_width; + +static int cfb24_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 24) + return 0; + + screen = fb; + screen_width = fb_fix.line_length ? fb_fix.line_length + : fb_var.xres_virtual*3; + return cfb_init(); +} + +static void cfb24_setpixel(u32 x, u32 y, pixel_t pixel) +{ + u8 *dst; + + dst = &screen[y*screen_width+x*3]; + dst[0] = (pixel >> 16) & 0xff; + dst[1] = (pixel >> 8) & 0xff; + dst[2] = pixel & 0xff; +} + +static pixel_t cfb24_getpixel(u32 x, u32 y) +{ + const u8 *src; + + src = &screen[y*screen_width+x*3]; + return (src[0] << 16) | (src[1] << 8) | src[2]; +} + +const struct drawops cfb24_drawops = { + .name = "cfb24 (24 bpp packed pixels)", + .init = cfb24_init, + .set_pixel = cfb24_setpixel, + .get_pixel = cfb24_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/cfb32.c b/drawops/cfb32.c new file mode 100644 index 0000000..75ceeea --- /dev/null +++ b/drawops/cfb32.c @@ -0,0 +1,50 @@ + +/* + * Low-level drawing operations for a cfb32 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" + + +static u32 *screen; +static u32 screen_width; + +static int cfb32_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 32) + return 0; + + screen = (u32 *)fb; + screen_width = fb_fix.line_length ? fb_fix.line_length/4 + : fb_var.xres_virtual; + return cfb_init(); +} + +static void cfb32_setpixel(u32 x, u32 y, pixel_t pixel) +{ + screen[y*screen_width+x] = pixel; +} + +static pixel_t cfb32_getpixel(u32 x, u32 y) +{ + return screen[y*screen_width+x]; +} + +const struct drawops cfb32_drawops = { + .name = "cfb32 (32 bpp packed pixels)", + .init = cfb32_init, + .set_pixel = cfb32_setpixel, + .get_pixel = cfb32_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/cfb4.c b/drawops/cfb4.c new file mode 100644 index 0000000..42db2ba --- /dev/null +++ b/drawops/cfb4.c @@ -0,0 +1,56 @@ + +/* + * Low-level drawing operations for a cfb4 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" +#include "util.h" + + +static u8 *screen; +static u32 screen_width; + +static int cfb4_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 4) + return 0; + + screen = fb; + screen_width = fb_fix.line_length ? fb_fix.line_length + : fb_var.xres_virtual/2; + return cfb_init(); +} + +static void cfb4_setpixel(u32 x, u32 y, pixel_t pixel) +{ + u8 *p = &screen[y*screen_width+x/2]; + if (x & 1) + *p = pixel | (*p & 0xf0); + else + *p = (pixel << 4) | (*p & 0x0f); +} + +static pixel_t cfb4_getpixel(u32 x, u32 y) +{ + u8 d = screen[y*screen_width+x/2]; + return (x & 1) ? (d & 0x0f) : (d >> 4); +} + +const struct drawops cfb4_drawops = { + .name = "cfb4 (4 bpp packed pixels)", + .init = cfb4_init, + .set_pixel = cfb4_setpixel, + .get_pixel = cfb4_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/cfb8.c b/drawops/cfb8.c new file mode 100644 index 0000000..98faad5 --- /dev/null +++ b/drawops/cfb8.c @@ -0,0 +1,50 @@ + +/* + * Low-level drawing operations for a cfb8 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" + + +static u8 *screen; +static u32 screen_width; + +static int cfb8_init(void) +{ + if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 8) + return 0; + + screen = fb; + screen_width = fb_fix.line_length ? fb_fix.line_length + : fb_var.xres_virtual; + return cfb_init(); +} + +static void cfb8_setpixel(u32 x, u32 y, pixel_t pixel) +{ + screen[y*screen_width+x] = pixel; +} + +static pixel_t cfb8_getpixel(u32 x, u32 y) +{ + return screen[y*screen_width+x]; +} + +const struct drawops cfb8_drawops = { + .name = "cfb8 (8 bpp packed pixels)", + .init = cfb8_init, + .set_pixel = cfb8_setpixel, + .get_pixel = cfb8_getpixel, + .draw_hline = cfb_draw_hline, + .fill_rect = cfb_fill_rect, + .copy_rect = cfb_copy_rect, +}; + diff --git a/drawops/generic.c b/drawops/generic.c new file mode 100644 index 0000000..b2543b8 --- /dev/null +++ b/drawops/generic.c @@ -0,0 +1,536 @@ +/* + * Generic drawing operations + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" +#include "util.h" + + + /* + * Draw a horizontal line + */ + +void generic_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel) +{ + while (length--) + set_pixel(x++, y, pixel); +} + + + /* + * Draw a vertical line + */ + +void generic_draw_vline(u32 x, u32 y, u32 length, pixel_t pixel) +{ + while (length--) + set_pixel(x, y++, pixel); +} + + + /* + * Draw a rectangle + */ + +void generic_draw_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel) +{ + draw_hline(x, y, width, pixel); + if (height >= 1) { + if (height >= 2) { + draw_vline(x, y+1, height-2, pixel); + if (width >= 1) + draw_vline(x+width-1, y+1, height-2, pixel); + } + draw_hline(x, y+height-1, width, pixel); + } +} + + + /* + * Draw a filled rectangle + */ + +void generic_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel) +{ + while (height--) + draw_hline(x, y++, width, pixel); +} + + + /* + * Draw a line using the Bresenham algorithm for lines + */ + +void generic_draw_line(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel) +{ + int dx, dy, sx, sy, e; + + dx = x2-x1; + dy = y2-y1; + if (dy == 0) { + if (dx < 0) { + dx = -dx; + x1 = x2; + } + draw_hline(x1, y1, dx+1, pixel); + } else if (dx == 0) { + if (dy < 0) { + dy = -dy; + y1 = y2; + } + draw_vline(x1, y1, dy+1, pixel); + } else { + if (dy < 0) { + dy = -dy; + sy = -1; + } else { + sy = 1; + } + if (dx < 0) { + dx = -dx; + sx = -1; + } else { + sx = 1; + } + if (dx > dy) { + e = -dx/2; + set_pixel(x1, y1, pixel); + while (x1 != x2) { + e += dy; + if (e >= 0) { + y1 += sy; + e -= dx; + } + x1 += sx; + set_pixel(x1, y1, pixel); + } + } else { + e = -dy/2; + set_pixel(x1, y1, pixel); + while (y1 != y2) { + e += dx; + if (e >= 0) { + x1 += sx; + e -= dy; + } + y1 += sy; + set_pixel(x1, y1, pixel); + } + } + } +} + + + /* + * Monochrome bitmap expansion + */ + +void generic_expand_bitmap(u32 x, u32 y, u32 width, u32 height, const u8 *data, + u32 pitch, pixel_t pixel0, pixel_t pixel1) +{ + u32 w, x0; + const u8 *data0; + int i; + u8 bits; + + while (height--) { + w = width; + x0 = x; + data0 = data; + while (w > 7) { + bits = *data0++; + for (i = 0; i < 8; i++, bits <<= 1) + set_pixel(x0++, y, bits & 0x80 ? pixel1 : pixel0); + w -= 8; + } + if (w > 0) { + bits = *data0++; + while (w-- > 0) { + set_pixel(x0++, y, bits & 0x80 ? pixel1 : pixel0); + bits <<= 1; + } + } + y++; + data += pitch; + } +} + + + /* + * Draw a pixmap + */ + +void generic_draw_pixmap(u32 x, u32 y, u32 width, u32 height, + const pixel_t *pixmap) +{ + u32 w, x0; + + while (height--) { + for (w = width, x0 = x; w > 0; w--) + set_pixel(x0++, y, *pixmap++); + y++; + } +} + + + /* + * Draw a circle using the differential version of the midpoint algorithm + * + * Cfr. Computer Graphics: Principles and Practices, Second Edition in C, + * Foley et al., 1997, p. 87 + */ + +static void draw_circle_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel) +{ + if (x == 0) { + set_pixel(cx, cy-y, pixel); + set_pixel(cx-y, cy, pixel); + set_pixel(cx+y, cy, pixel); + set_pixel(cx, cy+y, pixel); + } else { + set_pixel(cx-x, cy-y, pixel); + set_pixel(cx+x, cy-y, pixel); + set_pixel(cx-x, cy+y, pixel); + set_pixel(cx+x, cy+y, pixel); + if (x < y) { + set_pixel(cx-y, cy-x, pixel); + set_pixel(cx+y, cy-x, pixel); + set_pixel(cx-y, cy+x, pixel); + set_pixel(cx+y, cy+x, pixel); + } + } +} + +void generic_draw_circle(u32 x, u32 y, u32 r, pixel_t pixel) +{ + u32 x1 = 0; + u32 y1 = r; + int d = 1-r; + int de = 3; + int dse = -2*r+5; + + do { + draw_circle_points(x, y, x1, y1, pixel); + if (d < 0) { // Select E + d += de; + de += 2; + dse += 2; + } else { // Select SE + d += dse; + de += 2; + dse += 4; + y1--; + } + x1++; + } while (x1 <= y1); +} + + + /* + * Draw a filled circle + */ + +static void fill_circle_points_x(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel) +{ + if (x == 0) { + set_pixel(cx, cy-y, pixel); + set_pixel(cx, cy+y, pixel); + } else { + draw_hline(cx-x, cy-y, 2*x+1, pixel); + draw_hline(cx-x, cy+y, 2*x+1, pixel); + } +} + +static void fill_circle_points_y(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel) +{ + if (x == 0) + draw_hline(cx-y, cy, 2*y+1, pixel); + else { + draw_hline(cx-y, cy-x, 2*y+1, pixel); + draw_hline(cx-y, cy+x, 2*y+1, pixel); + } +} + +void generic_fill_circle(u32 x, u32 y, u32 r, pixel_t pixel) +{ + u32 x1 = 0; + u32 y1 = r; + int d = 1-r; + int de = 3; + int dse = -2*r+5; + + do { + fill_circle_points_y(x, y, x1, y1, pixel); + if (d < 0) { // Select E + d += de; + de += 2; + dse += 2; + } else { // Select SE + d += dse; + de += 2; + dse += 4; + if (x1 != y1) + fill_circle_points_x(x, y, x1, y1, pixel); + y1--; + } + x1++; + } while (x1 <= y1); +} + + + /* + * Draw an ellipse using a differential version of the Bresenham algorithm + * for ellipses + */ + +static void draw_ellipse_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel) +{ + if (x == 0) { + set_pixel(cx, cy-y, pixel); + set_pixel(cx, cy+y, pixel); + } else if (0 == y) { + set_pixel(cx-x, cy, pixel); + set_pixel(cx+x, cy, pixel); + } else { + set_pixel(cx-x, cy-y, pixel); + set_pixel(cx+x, cy-y, pixel); + set_pixel(cx-x, cy+y, pixel); + set_pixel(cx+x, cy+y, pixel); + } +} + +void generic_draw_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel) +{ + if (a == b) + draw_circle(x, y, a, pixel); + else { + u32 a2 = a*a; + u32 b2 = b*b; + if (a <= b) { + u32 x1 = 0; + u32 y1 = b; + int S = a2*(1-2*b)+2*b2; + int T = b2-2*a2*(2*b-1); + int dT1 = 4*b2; + int dS1 = dT1+2*b2; + int dS2 = -4*a2*(b-1); + int dT2 = dS2+2*a2; + + draw_ellipse_points(x, y, x1, y1, pixel); + do { + if (S < 0) { + S += dS1; + T += dT1; + dS1 += 4*b2; + dT1 += 4*b2; + x1++; + } else if (T < 0) { + S += dS1+dS2; + T += dT1+dT2; + dS1 += 4*b2; + dT1 += 4*b2; + dS2 += 4*a2; + dT2 += 4*a2; + x1++; + y1--; + } else { + S += dS2; + T += dT2; + dS2 += 4*a2; + dT2 += 4*a2; + y1--; + } + draw_ellipse_points(x, y, x1, y1, pixel); + } while (y1 > 0); + } else { + u32 x1 = a; + u32 y1 = 0; + int S = b2*(1-2*a)+2*a2; + int T = a2-2*b2*(2*a-1); + int dT1 = 4*a2; + int dS1 = dT1+2*a2; + int dS2 = -4*b2*(a-1); + int dT2 = dS2+2*b2; + + draw_ellipse_points(x, y, x1, y1, pixel); + do { + if (S < 0) { + S += dS1; + T += dT1; + dS1 += 4*a2; + dT1 += 4*a2; + y1++; + } else if (T < 0) { + S += dS1+dS2; + T += dT1+dT2; + dS1 += 4*a2; + dT1 += 4*a2; + dS2 += 4*b2; + dT2 += 4*b2; + x1--; + y1++; + } else { + S += dS2; + T += dT2; + dS2 += 4*b2; + dT2 += 4*b2; + x1--; + } + draw_ellipse_points(x, y, x1, y1, pixel); + } while (x1 > 0); + } + } +} + + + /* + * Draw a filled ellipse + */ + +static void fill_ellipse_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel) +{ + if (x == 0) { + set_pixel(cx, cy-y, pixel); + set_pixel(cx, cy+y, pixel); + } else if (y == 0) { + draw_hline(cx-x, cy, 2*x+1, pixel); + } else { + draw_hline(cx-x, cy-y, 2*x+1, pixel); + draw_hline(cx-x, cy+y, 2*x+1, pixel); + } +} + +void generic_fill_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel) +{ + if (a == b) + fill_circle(x, y, a, pixel); + else { + u32 a2 = a*a; + u32 b2 = b*b; + if (a <= b) { + u32 x1 = 0; + u32 y1 = b; + int S = a2*(1-2*b)+2*b2; + int T = b2-2*a2*(2*b-1); + int dT1 = 4*b2; + int dS1 = dT1+2*b2; + int dS2 = -4*a2*(b-1); + int dT2 = dS2+2*a2; + + while (1) { + if (S < 0) { + S += dS1; + T += dT1; + dS1 += 4*b2; + dT1 += 4*b2; + x1++; + } else if (T < 0) { + fill_ellipse_points(x, y, x1, y1, pixel); + if (y1 == 0) + break; + S += dS1+dS2; + T += dT1+dT2; + dS1 += 4*b2; + dT1 += 4*b2; + dS2 += 4*a2; + dT2 += 4*a2; + x1++; + y1--; + } else { + fill_ellipse_points(x, y, x1, y1, pixel); + if (y1 == 0) + break; + S += dS2; + T += dT2; + dS2 += 4*a2; + dT2 += 4*a2; + y1--; + } + } + } else { + u32 x1 = a; + u32 y1 = 0; + int S = b2*(1-2*a)+2*a2; + int T = a2-2*b2*(2*a-1); + int dT1 = 4*a2; + int dS1 = dT1+2*a2; + int dS2 = -4*b2*(a-1); + int dT2 = dS2+2*b2; + + fill_ellipse_points(x, y, x1, y1, pixel); + do { + if (S < 0) { + S += dS1; + T += dT1; + dS1 += 4*a2; + dT1 += 4*a2; + y1++; + fill_ellipse_points(x, y, x1, y1, pixel); + } else if (T < 0) { + S += dS1+dS2; + T += dT1+dT2; + dS1 += 4*a2; + dT1 += 4*a2; + dS2 += 4*b2; + dT2 += 4*b2; + x1--; + if (x1 < 0) + break; + y1++; + fill_ellipse_points(x, y, x1, y1, pixel); + } else { + S += dS2; + T += dT2; + dS2 += 4*b2; + dT2 += 4*b2; + x1--; + } + } while (x1 > 0); + } + } +} + + + /* + * Copy a rectangular area + */ + +void generic_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy) +{ + u32 w, dx0, sx0; + + if (dy > sy || (dy == sy && dx > sx)) { + dx += width; + dy += height; + sx += width; + sy += height; + while (height--) { + dy--; + sy--; + for (w = width, dx0 = dx, sx0 = sx; w > 0; w--) { + dx0--; + sx0--; + set_pixel(dx0, dy, get_pixel(sx0, sy)); + } + } + } else { + while (height--) { + for (w = width, dx0 = dx, sx0 = sx; w > 0; w--) { + set_pixel(dx0, dy, get_pixel(sx0, sy)); + dx0++; + sx0++; + } + dy++; + sy++; + } + } +} + diff --git a/drawops/init.c b/drawops/init.c new file mode 100644 index 0000000..09f5627 --- /dev/null +++ b/drawops/init.c @@ -0,0 +1,76 @@ + +/* + * Low-level drawing operations initialization + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "util.h" + + + /* + * Supported frame buffer formats + */ + +static const struct drawops *all_drawops[] = { + &cfb2_drawops, + &cfb4_drawops, + &cfb8_drawops, + &cfb16_drawops, + &cfb24_drawops, + &cfb32_drawops, + &planar_drawops, + &iplan2_drawops, + NULL +}; + + + /* + * Current drawing operations + */ + +struct drawops drawops; + + + /* + * Initialization + */ + +#define PRESENT_OR_SET_GENERIC(op) \ + if (!drawops.op) \ + drawops.op = generic_ ## op; + +void drawops_init(void) +{ + int i; + + for (i = 0; all_drawops[i]; i++) + if (all_drawops[i]->init()) { + drawops = *all_drawops[i]; + PRESENT_OR_SET_GENERIC(draw_hline); + PRESENT_OR_SET_GENERIC(draw_vline); + PRESENT_OR_SET_GENERIC(draw_rect); + PRESENT_OR_SET_GENERIC(fill_rect); + PRESENT_OR_SET_GENERIC(draw_line); + PRESENT_OR_SET_GENERIC(expand_bitmap); + PRESENT_OR_SET_GENERIC(draw_pixmap); + PRESENT_OR_SET_GENERIC(draw_circle); + PRESENT_OR_SET_GENERIC(fill_circle); + PRESENT_OR_SET_GENERIC(draw_ellipse); + PRESENT_OR_SET_GENERIC(fill_ellipse); + PRESENT_OR_SET_GENERIC(copy_rect); + Message("Using drawops %s\n", drawops.name); + return; + } + + Fatal("No drawing operations available for this frame buffer mode\n"); +} + +#undef PRESENT_OR_SET_GENERIC + diff --git a/drawops/iplan2.c b/drawops/iplan2.c new file mode 100644 index 0000000..e02006e --- /dev/null +++ b/drawops/iplan2.c @@ -0,0 +1,70 @@ + +/* + * Low-level drawing operations for an iplan2 frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "fb.h" +#include "util.h" + + +static u8 *screen; +static u32 next_line; + +static int iplan2_init(void) +{ + if (fb_fix.type != FB_TYPE_INTERLEAVED_PLANES || fb_fix.type_aux != 2) + return 0; + + screen = fb; + next_line = fb_fix.line_length + ? fb_fix.line_length + : fb_var.bits_per_pixel*fb_var.xres_virtual/8; + return 1; +} + +static void iplan2_setpixel(u32 x, u32 y, pixel_t pixel) +{ + u16 *p = (u16 *)(screen+y*next_line+fb_var.bits_per_pixel*(x & -16)); + u16 mask = 0x8000 >> (x & 15); + int i = fb_var.bits_per_pixel; + while (1) { + if (pixel & 1) + *p++ |= mask; + else + *p++ &= ~mask; + if (!--i) + break; + pixel >>= 1; + } +} + +static pixel_t iplan2_getpixel(u32 x, u32 y) +{ + pixel_t pixel = 0, bit = 1; + u16 *p = (u16 *)(screen+y*next_line+fb_var.bits_per_pixel*(x & -16)); + u16 mask = 0x8000 >> (x & 15); + int i = fb_var.bits_per_pixel; + while (1) { + if (*p++ & mask) + pixel |= bit; + if (!--i) + return pixel; + bit <<= 1; + } +} + +const struct drawops iplan2_drawops = { + .name = "iplan2 (Atari interleaved bitplanes)", + .init = iplan2_init, + .set_pixel = iplan2_setpixel, + .get_pixel = iplan2_getpixel, +}; + diff --git a/drawops/planar.c b/drawops/planar.c new file mode 100644 index 0000000..0a10b2c --- /dev/null +++ b/drawops/planar.c @@ -0,0 +1,264 @@ + +/* + * Low-level drawing operations for a planar frame buffer + * + * This driver supports 3 pixel formats: + * - monochrome packed pixels (mfb) + * - normal bitplanes (afb) + * - interleaved bitplanes (ilbm) + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "drawops.h" +#include "bitstream.h" +#include "fb.h" + + +static u8 *screen; +static u32 next_line; +static u32 next_plane; + +static int planar_init(void) +{ + u32 len; + + len = fb_fix.line_length ? fb_fix.line_length : fb_var.xres_virtual/8; + switch (fb_fix.type) { + case FB_TYPE_PACKED_PIXELS: + if (fb_var.bits_per_pixel != 1) + return 0; + /* mfb */ + next_line = len; + break; + + case FB_TYPE_PLANES: + /* afb */ + next_line = len; + next_plane = len*fb_var.yres_virtual; + break; + + case FB_TYPE_INTERLEAVED_PLANES: + if (fb_fix.type_aux != len) + return 0; + /* ilbm */ + next_line = len*fb_var.yres_virtual; + next_plane = len; + break; + + default: + return 0; + break; + } + screen = fb; + return 1; +} + +static void planar_setpixel(u32 x, u32 y, pixel_t pixel) +{ + u8 *p, mask; + int i; + + p = screen+y*next_line+(x/8); + mask = 0x80 >> (x & 7); + i = fb_var.bits_per_pixel; + while (1) { + if (pixel & 1) + *p |= mask; + else + *p &= ~mask; + if (!--i) + break; + pixel >>= 1; + p += next_plane; + } +} + +static pixel_t planar_getpixel(u32 x, u32 y) +{ + pixel_t pixel = 0, bit = 1; + u8 *p, mask; + int i; + + p = screen+y*next_line+(x/8); + mask = 0x80 >> (x & 7); + i = fb_var.bits_per_pixel; + while (1) { + if (*p & mask) + pixel |= bit; + if (!--i) + return pixel; + bit <<= 1; + p += next_plane; + } +} + +static inline void fill_one_line(unsigned long *dst, int dst_idx, u32 n, + pixel_t pixel) +{ + int i = fb_var.bits_per_pixel; + while (1) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + bitfill32(dst, dst_idx, pixel & 1 ? ~0 : 0, n); + if (!--i) + break; + pixel >>= 1; + dst_idx += next_plane*8; + } +} + +static void planar_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel) +{ + unsigned long *dst; + int dst_idx; + + dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += y*next_line*8+x; + fill_one_line(dst, dst_idx, length, pixel); +} + +static void planar_fill_rect(u32 x, u32 y, u32 width, u32 height, + pixel_t pixel) +{ + unsigned long *dst; + int dst_idx; + + dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += y*next_line*8+x; + while (height--) { + fill_one_line(dst, dst_idx, width, pixel); + dst_idx += next_line*8; + } +} + +static inline void expand_one_line(unsigned long *dst, int dst_idx, u32 n, + const u8 *data, pixel_t pixel0, + pixel_t pixel1) +{ + const unsigned long *src; + int src_idx, i; + + i = fb_var.bits_per_pixel; + while (1) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + if ((pixel0 ^ pixel1) & 1) { + src = (unsigned long *)((unsigned long)data & ~(BYTES_PER_LONG-1)); + src_idx = ((unsigned long)data & (BYTES_PER_LONG-1))*8; + if (pixel1 & 1) + bitcpy(dst, dst_idx, src, src_idx, n); + else + bitcpy_not(dst, dst_idx, src, src_idx, n); + /* set or clear */ + } else + bitfill32(dst, dst_idx, pixel1 & 1 ? ~0 : 0, n); + if (!--i) + break; + pixel0 >>= 1; + pixel1 >>= 1; + dst_idx += next_plane*8; + } +} + +static void planar_expand_bitmap(u32 x, u32 y, u32 width, u32 height, + const u8 *data, u32 pitch, pixel_t pixel0, + pixel_t pixel1) +{ + unsigned long *dst; + int dst_idx; + + dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += y*next_line*8+x; + while (height--) { + expand_one_line(dst, dst_idx, width, data, pixel0, pixel1); + dst_idx += next_line*8; + data += pitch; + } +} + + +static inline void copy_one_line(unsigned long *dst, int dst_idx, + unsigned long *src, int src_idx, u32 n) +{ + int i = fb_var.bits_per_pixel; + while (1) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + src += src_idx >> SHIFT_PER_LONG; + src_idx &= (BITS_PER_LONG-1); + bitcpy(dst, dst_idx, src, src_idx, n); + if (!--i) + break; + dst_idx += next_plane*8; + src_idx += next_plane*8; + } +} + +static inline void copy_one_line_rev(unsigned long *dst, int dst_idx, + unsigned long *src, int src_idx, u32 n) +{ + int i = fb_var.bits_per_pixel; + while (1) { + dst += dst_idx >> SHIFT_PER_LONG; + dst_idx &= (BITS_PER_LONG-1); + src += src_idx >> SHIFT_PER_LONG; + src_idx &= (BITS_PER_LONG-1); + bitcpy_rev(dst, dst_idx, src, src_idx, n); + if (!--i) + break; + dst_idx += next_plane*8; + src_idx += next_plane*8; + } +} + +static void planar_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, + u32 sy) +{ + unsigned long *dst, *src; + int dst_idx, src_idx; + int rev_copy = 0; + + if (dy > sy || (dy == sy && dx > sx)) { + dy += height; + sy += height; + rev_copy = 1; + } + dst = src = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1)); + dst_idx = src_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8; + dst_idx += dy*next_line*8+dx; + src_idx += sy*next_line*8+sx; + if (rev_copy) { + while (height--) { + dst_idx -= next_line*8; + src_idx -= next_line*8; + copy_one_line_rev(dst, dst_idx, src, src_idx, width); + } + } else { + while (height--) { + copy_one_line(dst, dst_idx, src, src_idx, width); + dst_idx += next_line*8; + src_idx += next_line*8; + } + } +} + +const struct drawops planar_drawops = { + .name = "planar (monochrome and (interleaved) bitplanes)", + .init = planar_init, + .set_pixel = planar_setpixel, + .get_pixel = planar_getpixel, + .draw_hline = planar_draw_hline, + .fill_rect = planar_fill_rect, + .expand_bitmap = planar_expand_bitmap, + .copy_rect = planar_copy_rect, +}; + @@ -0,0 +1,498 @@ + +/* + * Frame buffer control + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <errno.h> +#include <fcntl.h> +#include <string.h> +#include <stdlib.h> +#include <sys/ioctl.h> +#include <sys/mman.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +#include <asm/page.h> + +#include "types.h" +#include "fb.h" +#include "util.h" +#include "colormap.h" + + +static int fb_fd = -1; + +struct fb_fix_screeninfo fb_fix; +struct fb_var_screeninfo fb_var; +struct fb_cmap fb_cmap; + +static unsigned long fb_start; +static u32 fb_len, fb_offset; +u8 *fb; + + + /* + * Saved frame buffer device state + */ + +static struct fb_var_screeninfo saved_var; +static struct fb_fix_screeninfo saved_fix; +static struct fb_cmap saved_cmap; +static u16 *saved_red, *saved_green, *saved_blue, *saved_transp; +static u8 *saved_fb; + + +static void fix_validate(void); +static void var_validate(void); +static void var_validate_change(const struct fb_var_screeninfo *old, + int error); +static void cmap_validate(void); +static void cmap_validate_change(const struct fb_cmap *old, int error); +static void fb_dump_cmap(void); + + + /* + * Open the frame buffer device + */ + +void fb_open(void) +{ + Debug("fb_open()\n"); + if ((fb_fd = open(Opt_Fbdev, O_RDWR)) == -1) { + Fatal("open %s: %s\n", Opt_Fbdev, strerror(errno)); + } +} + + + /* + * Close the frame buffer device + */ + +void fb_close(void) +{ + Debug("fb_close()\n"); + if (fb_fd != -1) { + close(fb_fd); + fb_fd = -1; + } +} + + + /* + * Get the fixed information about a frame buffer + */ + +int fb_get_fix(void) +{ + Debug("fb_get_fix()\n"); + if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) { + Fatal("ioctl FBIOGET_FSCREENINFO: %s\n", strerror(errno)); + } + fix_validate(); + return 1; +} + + + /* + * Get the variable information about a frame buffer + */ + +int fb_get_var(void) +{ + Debug("fb_get_var()\n"); + if (ioctl(fb_fd, FBIOGET_VSCREENINFO, &fb_var) == -1) { + Fatal("ioctl FBIOGET_VSCREENINFO: %s\n", strerror(errno)); + } + var_validate(); + return 1; +} + + + /* + * Set the variable information about a frame buffer + */ + +int fb_set_var(void) +{ + struct fb_var_screeninfo var = fb_var; + int error; + + Debug("fb_set_var()\n"); + error = ioctl(fb_fd, FBIOPUT_VSCREENINFO, &fb_var); + var_validate_change(&var, error); + if (error == -1) { + Fatal("ioctl FBIOPUT_VSCREENINFO: %s\n", strerror(errno)); + } + return 1; +} + + + /* + * Get the colormap + */ + +int fb_get_cmap(void) +{ + Debug("fb_get_cmap()\n"); + if (ioctl(fb_fd, FBIOGETCMAP, &fb_cmap) == -1) { + Fatal("ioctl FBIOGETCMAP: %s\n", strerror(errno)); + } + cmap_validate(); + if (Opt_Debug) + fb_dump_cmap(); + return 1; +} + + + /* + * Set the colormap + */ + +int fb_set_cmap(void) +{ + struct fb_cmap cmap = fb_cmap; + int error; + + Debug("fb_set_cmap()\n"); + if (Opt_Debug) + fb_dump_cmap(); + error = ioctl(fb_fd, FBIOPUTCMAP, &fb_cmap); + cmap_validate_change(&cmap, error); + if (error == -1) { + Fatal("ioctl FBIOPUTCMAP: %s\n", strerror(errno)); + } + return 1; +} + + + /* + * Map the frame buffer + */ + +void fb_map(void) +{ + caddr_t addr; + + Debug("fb_map()\n"); + fb_start = (unsigned long)fb_fix.smem_start & PAGE_MASK; + fb_offset = (unsigned long)fb_fix.smem_start & ~PAGE_MASK; + fb_len = (fb_offset+fb_fix.smem_len+~PAGE_MASK) & PAGE_MASK; + Debug("fb_start = %lx, fb_offset = %x, fb_len = %x\n", fb_start, fb_offset, + fb_len); + addr = mmap(NULL, fb_len, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0); + if (addr == (caddr_t)-1) + Fatal("mmap smem: %s\n", strerror(errno)); + fb = addr+fb_offset; +} + + + /* + * Unmap the frame buffer + */ + +void fb_unmap(void) +{ + Debug("fb_unmap()\n"); + if (munmap((caddr_t)((unsigned long)fb & PAGE_MASK), fb_len) == -1) + Fatal("munmap smem: %s\n", strerror(errno)); +} + + + /* + * Save the frame buffer contents + */ + +void fb_save(void) +{ + Debug("fb_save()\n"); + if (!(saved_fb = malloc(fb_fix.smem_len))) + Fatal("malloc %d: %s\n", fb_fix.smem_len, strerror(errno)); + memcpy(saved_fb, fb, fb_fix.smem_len); +} + + + /* + * Restore the frame buffer contents + */ + +void fb_restore(void) +{ + Debug("fb_restore()\n"); + memcpy(fb, saved_fb, fb_fix.smem_len); + free(saved_fb); +} + + + /* + * Clear the frame buffer + * + * We can't use memset(), because on PPC it uses dcbz, which is not + * allowed on non-cacheable memory :-( + */ + +void fb_clear(void) +{ + int size = fb_fix.smem_len/sizeof(u32); + u32 *p = (u32 *)fb; + + Debug("fb_clear()\n"); + while (size--) + *p++ = 0; +} + + + /* + * Validate the fixed information about a frame buffer + */ + +static void fix_validate(void) +{ + /* FIXME: check for impossible values */ +} + + + /* + * Validate the variable information about a frame buffer + */ + +static void var_validate(void) +{ + /* FIXME: check for impossible values */ +} + + + /* + * Validate a change of the variable information about a frame buffer + */ + +#define CHECK_CHANGE(x) \ + do { \ + if (fb_var.x != old->x) { \ + if (error == -1) \ + Error(#x "changed from %u to %u\n", old->x, fb_var.x); \ + else \ + Warning(#x "changed from %u to %u\n", old->x, fb_var.x);\ + } \ + } while (0) + +#define CHECK_ROUNDING(x) \ + do { \ + if (fb_var.x < old->x) \ + Error(#x " was rounded down\n"); \ + } while (0) + +#define CHECK_CHANGE_AND_ROUNDING(x) \ + do { \ + CHECK_CHANGE(x); \ + if (error != -1) \ + CHECK_ROUNDING(x); \ + } while (0) + +static void var_validate_change(const struct fb_var_screeninfo *old, int error) +{ + CHECK_CHANGE_AND_ROUNDING(xres); + CHECK_CHANGE_AND_ROUNDING(yres); + CHECK_CHANGE_AND_ROUNDING(xres_virtual); + CHECK_CHANGE_AND_ROUNDING(yres_virtual); + CHECK_CHANGE_AND_ROUNDING(xoffset); + CHECK_CHANGE_AND_ROUNDING(yoffset); + CHECK_CHANGE_AND_ROUNDING(bits_per_pixel); + CHECK_CHANGE(grayscale); + CHECK_CHANGE_AND_ROUNDING(red.offset); + CHECK_CHANGE_AND_ROUNDING(red.length); + CHECK_CHANGE(red.msb_right); + CHECK_CHANGE_AND_ROUNDING(green.offset); + CHECK_CHANGE_AND_ROUNDING(green.length); + CHECK_CHANGE_AND_ROUNDING(green.length); + CHECK_CHANGE(green.msb_right); + CHECK_CHANGE_AND_ROUNDING(blue.offset); + CHECK_CHANGE_AND_ROUNDING(blue.length); + CHECK_CHANGE_AND_ROUNDING(blue.length); + CHECK_CHANGE(blue.msb_right); + CHECK_CHANGE_AND_ROUNDING(transp.offset); + CHECK_CHANGE_AND_ROUNDING(transp.length); + CHECK_CHANGE_AND_ROUNDING(transp.length); + CHECK_CHANGE(transp.msb_right); + CHECK_CHANGE(nonstd); + CHECK_CHANGE(activate); + CHECK_CHANGE_AND_ROUNDING(height); + CHECK_CHANGE_AND_ROUNDING(width); + CHECK_CHANGE(accel_flags); + CHECK_CHANGE_AND_ROUNDING(pixclock); + CHECK_CHANGE_AND_ROUNDING(left_margin); + CHECK_CHANGE_AND_ROUNDING(right_margin); + CHECK_CHANGE_AND_ROUNDING(upper_margin); + CHECK_CHANGE_AND_ROUNDING(lower_margin); + CHECK_CHANGE_AND_ROUNDING(hsync_len); + CHECK_CHANGE_AND_ROUNDING(vsync_len); + CHECK_CHANGE(sync); + CHECK_CHANGE(vmode); + CHECK_CHANGE(reserved[0]); + CHECK_CHANGE(reserved[1]); + CHECK_CHANGE(reserved[2]); + CHECK_CHANGE(reserved[3]); + CHECK_CHANGE(reserved[4]); + CHECK_CHANGE(reserved[5]); + + var_validate(); +} + +#undef CHECK_CHANGE +#undef CHECK_ROUNDING +#undef CHECK_CHANGE_AND_ROUNDING + + + /* + * Validate the colormap + */ + +static void cmap_validate(void) +{ + /* FIXME */ +} + + + /* + * Validate a change of the colormap + */ + +static void cmap_validate_change(const struct fb_cmap *old, int error) +{ + /* FIXME */ + + cmap_validate(); +} + + + /* + * Validate the variable and fixed information about a frame buffer + */ + +static void var_fix_validate(void) +{ + /* FIXME: check for impossible combinations */ +} + + + /* + * Initialization + */ + +#define ALLOC_AND_SAVE_COMPONENT(name) \ + do { \ + if (!(saved_ ## name = malloc(fb_cmap.len*sizeof(u16)))) \ + Fatal("malloc %d: %s\n", fb_cmap.len*sizeof(u16), \ + strerror(errno)); \ + memcpy(saved_ ## name, fb_cmap.name, fb_cmap.len*sizeof(u16)); \ + } while (0) + +void fb_init(void) +{ + Debug("fb_init()\n"); + fb_open(); + fb_get_var(); + saved_var = fb_var; + if (fb_var.xoffset || fb_var.yoffset || fb_var.accel_flags) { + fb_var.xoffset = 0; + fb_var.yoffset = 0; + fb_var.accel_flags = 0; + fb_set_var(); + } + fb_get_fix(); + var_fix_validate(); + saved_fix = fb_fix; + switch (fb_fix.visual) { + case FB_VISUAL_MONO01: + case FB_VISUAL_MONO10: + case FB_VISUAL_TRUECOLOR: + /* no colormap */ + break; + + case FB_VISUAL_PSEUDOCOLOR: + case FB_VISUAL_STATIC_PSEUDOCOLOR: + cmap_init(1<<fb_var.bits_per_pixel); + break; + + case FB_VISUAL_DIRECTCOLOR: + cmap_init(1<<(max(max(fb_var.red.length, fb_var.green.length), + max(fb_var.blue.length, fb_var.transp.length)))); + break; + } + if (fb_cmap.len) { + fb_get_cmap(); + saved_cmap = fb_cmap; + ALLOC_AND_SAVE_COMPONENT(red); + ALLOC_AND_SAVE_COMPONENT(green); + ALLOC_AND_SAVE_COMPONENT(blue); + if (fb_cmap.transp) + ALLOC_AND_SAVE_COMPONENT(transp); + } + fb_map(); + fb_save(); + fb_clear(); +} + +#undef ALLOC_AND_SAVE_COMPONENT + + + /* + * Clean up + */ + +#define RESTORE_AND_FREE_COMPONENT(name) \ + do { \ + memcpy(fb_cmap.name, saved_ ## name, fb_cmap.len*sizeof(u16)); \ + free(saved_ ## name); \ + } while (0) + +void fb_cleanup(void) +{ + Debug("fb_cleanup()\n"); + if (saved_fb) + fb_restore(); + if (fb) + fb_unmap(); + if (fb_fd != -1) { + if (saved_cmap.len) { + fb_cmap = saved_cmap; + RESTORE_AND_FREE_COMPONENT(red); + RESTORE_AND_FREE_COMPONENT(green); + RESTORE_AND_FREE_COMPONENT(blue); + if (fb_cmap.transp) + RESTORE_AND_FREE_COMPONENT(transp); + fb_set_cmap(); + } + fb_var = saved_var; + fb_set_var(); + fb_get_var(); + /* FIXME: compare fb_var with saved_var */ + fb_get_fix(); + /* FIXME: compare fb_fix with saved_fix */ + fb_close(); + } +} + +#undef RESTORE_AND_FREE_COMPONENT + + + /* + * Dump the colormap + */ + +static void fb_dump_cmap(void) +{ + int i; + + Debug("Colormap start = %d len = %d\n", fb_cmap.start, fb_cmap.len); + for (i = 0; i < fb_cmap.len; i++) + Debug("%4d: R %04x G %04x B %04x A %04x\n", i, fb_cmap.red[i], + fb_cmap.green[i], fb_cmap.blue[i], fb_cmap.transp[i]); +} + diff --git a/fonts/Makefile b/fonts/Makefile new file mode 100644 index 0000000..738a9f5 --- /dev/null +++ b/fonts/Makefile @@ -0,0 +1,7 @@ + +TOPDIR = .. + +O_TARGET = fonts.o + +include $(TOPDIR)/Rules.make + diff --git a/fonts/pearl8x8.c b/fonts/pearl8x8.c new file mode 100644 index 0000000..e3ecfb2 --- /dev/null +++ b/fonts/pearl8x8.c @@ -0,0 +1,2585 @@ +/**********************************************/ +/* */ +/* Font file generated by cpi2fnt */ +/* ------------------------------ */ +/* Combined with the alpha-numeric */ +/* portion of Greg Harp's old PEARL */ +/* font (from earlier versions of */ +/* linux-m86k) by John Shifflett */ +/* */ +/**********************************************/ + +#include "font.h" + +static const unsigned char fontdata_pearl8x8[]; + +const struct font pearl8x8 = { + width: 8, + height: 8, + data: fontdata_pearl8x8 +}; + +static const unsigned char fontdata_pearl8x8[2048] = { + + /* 0 0x00 '^@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 1 0x01 '^A' */ + 0x7e, /* 01111110 */ + 0x81, /* 10000001 */ + 0xa5, /* 10100101 */ + 0x81, /* 10000001 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0x81, /* 10000001 */ + 0x7e, /* 01111110 */ + + /* 2 0x02 '^B' */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xdb, /* 11011011 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + + /* 3 0x03 '^C' */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 4 0x04 '^D' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 5 0x05 '^E' */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 6 0x06 '^F' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 7 0x07 '^G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 8 0x08 '^H' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xe7, /* 11100111 */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 9 0x09 '^I' */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x42, /* 01000010 */ + 0x42, /* 01000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 10 0x0a '^J' */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0x99, /* 10011001 */ + 0xbd, /* 10111101 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0xc3, /* 11000011 */ + 0xff, /* 11111111 */ + + /* 11 0x0b '^K' */ + 0x0f, /* 00001111 */ + 0x07, /* 00000111 */ + 0x0f, /* 00001111 */ + 0x7d, /* 01111101 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + + /* 12 0x0c '^L' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + + /* 13 0x0d '^M' */ + 0x3f, /* 00111111 */ + 0x33, /* 00110011 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x70, /* 01110000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + + /* 14 0x0e '^N' */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x67, /* 01100111 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + + /* 15 0x0f '^O' */ + 0x18, /* 00011000 */ + 0xdb, /* 11011011 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0x3c, /* 00111100 */ + 0xdb, /* 11011011 */ + 0x18, /* 00011000 */ + + /* 16 0x10 '^P' */ + 0x80, /* 10000000 */ + 0xe0, /* 11100000 */ + 0xf8, /* 11111000 */ + 0xfe, /* 11111110 */ + 0xf8, /* 11111000 */ + 0xe0, /* 11100000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + + /* 17 0x11 '^Q' */ + 0x02, /* 00000010 */ + 0x0e, /* 00001110 */ + 0x3e, /* 00111110 */ + 0xfe, /* 11111110 */ + 0x3e, /* 00111110 */ + 0x0e, /* 00001110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + + /* 18 0x12 '^R' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + + /* 19 0x13 '^S' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 20 0x14 '^T' */ + 0x7f, /* 01111111 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7b, /* 01111011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x00, /* 00000000 */ + + /* 21 0x15 '^U' */ + 0x3e, /* 00111110 */ + 0x61, /* 01100001 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x86, /* 10000110 */ + 0x7c, /* 01111100 */ + + /* 22 0x16 '^V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 23 0x17 '^W' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + + /* 24 0x18 '^X' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 25 0x19 '^Y' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 26 0x1a '^Z' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 27 0x1b '^[' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 28 0x1c '^\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 29 0x1d '^]' */ + 0x00, /* 00000000 */ + 0x24, /* 00100100 */ + 0x66, /* 01100110 */ + 0xff, /* 11111111 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 30 0x1e '^^' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 31 0x1f '^_' */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 32 0x20 ' ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 33 0x21 '!' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 34 0x22 '"' */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 35 0x23 '#' */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 36 0x24 '$' */ + 0x18, /* 00011000 */ + 0x3e, /* 00111110 */ + 0x60, /* 01100000 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 37 0x25 '%' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 38 0x26 '&' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x68, /* 01101000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 39 0x27 ''' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 40 0x28 '(' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 41 0x29 ')' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 42 0x2a '*' */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0xff, /* 11111111 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 43 0x2b '+' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 44 0x2c ',' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 45 0x2d '-' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 46 0x2e '.' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 47 0x2f '/' */ + 0x03, /* 00000011 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 48 0x30 '0' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xfe, /* 11111110 */ + 0xf6, /* 11110110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 49 0x31 '1' */ + 0x18, /* 00011000 */ + 0x78, /* 01111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 50 0x32 '2' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 51 0x33 '3' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x1c, /* 00011100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 52 0x34 '4' */ + 0x1c, /* 00011100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 53 0x35 '5' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 54 0x36 '6' */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 55 0x37 '7' */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + + /* 56 0x38 '8' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 57 0x39 '9' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 58 0x3a ':' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 59 0x3b ';' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 60 0x3c '<' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 61 0x3d '=' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 62 0x3e '>' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 63 0x3f '?' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 64 0x40 '@' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 65 0x41 'A' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 66 0x42 'B' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 67 0x43 'C' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 68 0x44 'D' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 69 0x45 'E' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 70 0x46 'F' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 71 0x47 'G' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 72 0x48 'H' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 73 0x49 'I' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 74 0x4a 'J' */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 75 0x4b 'K' */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xf0, /* 11110000 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 76 0x4c 'L' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 77 0x4d 'M' */ + 0x82, /* 10000010 */ + 0xc6, /* 11000110 */ + 0xee, /* 11101110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 78 0x4e 'N' */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 79 0x4f 'O' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 80 0x50 'P' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 81 0x51 'Q' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + + /* 82 0x52 'R' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 83 0x53 'S' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 84 0x54 'T' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 85 0x55 'U' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 86 0x56 'V' */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 87 0x57 'W' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0xee, /* 11101110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 88 0x58 'X' */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc3, /* 11000011 */ + 0x00, /* 00000000 */ + + /* 89 0x59 'Y' */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 90 0x5a 'Z' */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 91 0x5b '[' */ + 0x3c, /* 00111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 92 0x5c '\' */ + 0xc0, /* 11000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x03, /* 00000011 */ + 0x00, /* 00000000 */ + + /* 93 0x5d ']' */ + 0x3c, /* 00111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 94 0x5e '^' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 95 0x5f '_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + + /* 96 0x60 '`' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 97 0x61 'a' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 98 0x62 'b' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 99 0x63 'c' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 100 0x64 'd' */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 101 0x65 'e' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 102 0x66 'f' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + + /* 103 0x67 'g' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x7c, /* 01111100 */ + + /* 104 0x68 'h' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 105 0x69 'i' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 106 0x6a 'j' */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + + /* 107 0x6b 'k' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xf0, /* 11110000 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + + /* 108 0x6c 'l' */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 109 0x6d 'm' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 110 0x6e 'n' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 111 0x6f 'o' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 112 0x70 'p' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + + /* 113 0x71 'q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + + /* 114 0x72 'r' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 115 0x73 's' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 116 0x74 't' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x7c, /* 01111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x36, /* 00110110 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + + /* 117 0x75 'u' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 118 0x76 'v' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 119 0x77 'w' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 120 0x78 'x' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 121 0x79 'y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + + /* 122 0x7a 'z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 123 0x7b '{' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + + /* 124 0x7c '|' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 125 0x7d '}' */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 126 0x7e '~' */ + 0x72, /* 01110010 */ + 0x9c, /* 10011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 127 0x7f '' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 128 0x80 '€' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + + /* 129 0x81 '' */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 130 0x82 '‚' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 131 0x83 'ƒ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 132 0x84 '„' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 133 0x85 '…' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 134 0x86 '†' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 135 0x87 '‡' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + + /* 136 0x88 'ˆ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 137 0x89 '‰' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 138 0x8a 'Š' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 139 0x8b '‹' */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 140 0x8c 'Œ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 141 0x8d '' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 142 0x8e 'Ž' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 143 0x8f '' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 144 0x90 '' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 145 0x91 '‘' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 146 0x92 '’' */ + 0x3e, /* 00111110 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 147 0x93 '“' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 148 0x94 '”' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 149 0x95 '•' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 150 0x96 '–' */ + 0x78, /* 01111000 */ + 0x84, /* 10000100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 151 0x97 '—' */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 152 0x98 '˜' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + + /* 153 0x99 '™' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 154 0x9a 'š' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 155 0x9b '›' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 156 0x9c 'œ' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x64, /* 01100100 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 157 0x9d '' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 158 0x9e 'ž' */ + 0xf8, /* 11111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xfa, /* 11111010 */ + 0xc6, /* 11000110 */ + 0xcf, /* 11001111 */ + 0xc6, /* 11000110 */ + 0xc7, /* 11000111 */ + + /* 159 0x9f 'Ÿ' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 160 0xa0 ' ' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 161 0xa1 '¡' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 162 0xa2 '¢' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 163 0xa3 '£' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 164 0xa4 '¤' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 165 0xa5 '¥' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 166 0xa6 '¦' */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 167 0xa7 '§' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 168 0xa8 '¨' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x63, /* 01100011 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + + /* 169 0xa9 '©' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 170 0xaa 'ª' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 171 0xab '«' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7e, /* 01111110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x0f, /* 00001111 */ + + /* 172 0xac '¬' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7a, /* 01111010 */ + 0x36, /* 00110110 */ + 0x6a, /* 01101010 */ + 0xdf, /* 11011111 */ + 0x06, /* 00000110 */ + + /* 173 0xad '' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 174 0xae '®' */ + 0x00, /* 00000000 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 175 0xaf '¯' */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 176 0xb0 '°' */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + + /* 177 0xb1 '±' */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + + /* 178 0xb2 '²' */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + + /* 179 0xb3 '³' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 180 0xb4 '´' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 181 0xb5 'µ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 182 0xb6 '¶' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 183 0xb7 '·' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 184 0xb8 '¸' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 185 0xb9 '¹' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 186 0xba 'º' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 187 0xbb '»' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 188 0xbc '¼' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 189 0xbd '½' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 190 0xbe '¾' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 191 0xbf '¿' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 192 0xc0 'À' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 193 0xc1 'Á' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 194 0xc2 'Â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 195 0xc3 'Ã' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 196 0xc4 'Ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 197 0xc5 'Å' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 198 0xc6 'Æ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 199 0xc7 'Ç' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 200 0xc8 'È' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 201 0xc9 'É' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 202 0xca 'Ê' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 203 0xcb 'Ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 204 0xcc 'Ì' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 205 0xcd 'Í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 206 0xce 'Î' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 207 0xcf 'Ï' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 208 0xd0 'Ð' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 209 0xd1 'Ñ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 210 0xd2 'Ò' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 211 0xd3 'Ó' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 212 0xd4 'Ô' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 213 0xd5 'Õ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 214 0xd6 'Ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 215 0xd7 '×' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 216 0xd8 'Ø' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 217 0xd9 'Ù' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 218 0xda 'Ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 219 0xdb 'Û' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 220 0xdc 'Ü' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 221 0xdd 'Ý' */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + + /* 222 0xde 'Þ' */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + + /* 223 0xdf 'ß' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 224 0xe0 'à' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xc8, /* 11001000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 225 0xe1 'á' */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + + /* 226 0xe2 'â' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 227 0xe3 'ã' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 228 0xe4 'ä' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 229 0xe5 'å' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 230 0xe6 'æ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0xc0, /* 11000000 */ + + /* 231 0xe7 'ç' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 232 0xe8 'è' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + + /* 233 0xe9 'é' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 234 0xea 'ê' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xee, /* 11101110 */ + 0x00, /* 00000000 */ + + /* 235 0xeb 'ë' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x3e, /* 00111110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 236 0xec 'ì' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 237 0xed 'í' */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + + /* 238 0xee 'î' */ + 0x1e, /* 00011110 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 239 0xef 'ï' */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 240 0xf0 'ð' */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 241 0xf1 'ñ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 242 0xf2 'ò' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 243 0xf3 'ó' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 244 0xf4 'ô' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 245 0xf5 'õ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + + /* 246 0xf6 'ö' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 247 0xf7 '÷' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 248 0xf8 'ø' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 249 0xf9 'ù' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 250 0xfa 'ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 251 0xfb 'û' */ + 0x0f, /* 00001111 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xec, /* 11101100 */ + 0x6c, /* 01101100 */ + 0x3c, /* 00111100 */ + 0x1c, /* 00011100 */ + + /* 252 0xfc 'ü' */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 253 0xfd 'ý' */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 254 0xfe 'þ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 255 0xff 'ÿ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + +}; + diff --git a/fonts/sun12x22.c b/fonts/sun12x22.c new file mode 100644 index 0000000..b282287 --- /dev/null +++ b/fonts/sun12x22.c @@ -0,0 +1,6214 @@ + +#include "font.h" + +static const unsigned char fontdata_sun12x22[]; + +const struct font sun12x22 = { + width: 12, + height: 22, + data: fontdata_sun12x22 +}; + +static const unsigned char fontdata_sun12x22[11264] = { + + /* 0 0x00 '^@' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 1 0x01 '^A' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 2 0x02 '^B' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 3 0x03 '^C' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 4 0x04 '^D' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 5 0x05 '^E' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 6 0x06 '^F' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 7 0x07 '^G' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 8 0x08 '^H' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 9 0x09 '^I' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 10 0x0a '^J' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 11 0x0b '^K' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 12 0x0c '^L' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 13 0x0d '^M' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 14 0x0e '^N' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 15 0x0f '^O' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 16 0x10 '^P' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 17 0x11 '^Q' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 18 0x12 '^R' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 19 0x13 '^S' */ + 0x00, 0x00, /* 000000000000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 20 0x14 '^T' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0xf0, /* 000111111111 */ + 0x3c, 0xc0, /* 001111001100 */ + 0x7c, 0xc0, /* 011111001100 */ + 0x7c, 0xc0, /* 011111001100 */ + 0x7c, 0xc0, /* 011111001100 */ + 0x3c, 0xc0, /* 001111001100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x1c, 0xe0, /* 000111001110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 21 0x15 '^U' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 22 0x16 '^V' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 23 0x17 '^W' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 24 0x18 '^X' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 25 0x19 '^Y' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 26 0x1a '^Z' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 27 0x1b '^[' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 28 0x1c '^\' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 29 0x1d '^]' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 30 0x1e '^^' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 31 0x1f '^_' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 32 0x20 ' ' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 33 0x21 '!' */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 34 0x22 '"' */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 35 0x23 '#' */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x30, /* 000000110011 */ + 0x03, 0x30, /* 000000110011 */ + 0x03, 0x30, /* 000000110011 */ + 0x06, 0x60, /* 000001100110 */ + 0x1f, 0xf0, /* 000111111111 */ + 0x1f, 0xf0, /* 000111111111 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x33, 0x00, /* 001100110000 */ + 0x66, 0x00, /* 011001100000 */ + 0x66, 0x00, /* 011001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 36 0x24 '$' */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x66, 0xe0, /* 011001101110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x00, /* 011001100000 */ + 0x3e, 0x00, /* 001111100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x07, 0xc0, /* 000001111100 */ + 0x06, 0x60, /* 000001100110 */ + 0x06, 0x60, /* 000001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x3f, 0x80, /* 001111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 37 0x25 '%' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x38, 0xc0, /* 001110001100 */ + 0x4c, 0xc0, /* 010011001100 */ + 0x45, 0x80, /* 010001011000 */ + 0x65, 0x80, /* 011001011000 */ + 0x3b, 0x00, /* 001110110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0d, 0xc0, /* 000011011100 */ + 0x1a, 0x60, /* 000110100110 */ + 0x1a, 0x20, /* 000110100010 */ + 0x33, 0x20, /* 001100110010 */ + 0x31, 0xc0, /* 001100011100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 38 0x26 '&' */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x18, 0xc0, /* 000110001100 */ + 0x18, 0xc0, /* 000110001100 */ + 0x0f, 0x80, /* 000011111000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x3e, 0x00, /* 001111100000 */ + 0x77, 0x00, /* 011101110000 */ + 0x63, 0x60, /* 011000110110 */ + 0x61, 0xe0, /* 011000011110 */ + 0x61, 0xc0, /* 011000011100 */ + 0x61, 0x80, /* 011000011000 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 39 0x27 ''' */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 40 0x28 '(' */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x01, 0x80, /* 000000011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 41 0x29 ')' */ + 0x00, 0x00, /* 000000000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 42 0x2a '*' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x66, 0x60, /* 011001100110 */ + 0x76, 0xe0, /* 011101101110 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x76, 0xe0, /* 011101101110 */ + 0x66, 0x60, /* 011001100110 */ + 0x06, 0x00, /* 000001100000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 43 0x2b '+' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 44 0x2c ',' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 45 0x2d '-' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 46 0x2e '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 47 0x2f '/' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 48 0x30 '0' */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0x80, /* 000100011000 */ + 0x10, 0xc0, /* 000100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0x80, /* 001100001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 49 0x31 '1' */ + 0x00, 0x00, /* 000000000000 */ + 0x02, 0x00, /* 000000100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x36, 0x00, /* 001101100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 50 0x32 '2' */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x61, 0xc0, /* 011000011100 */ + 0x40, 0xc0, /* 010000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 51 0x33 '3' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x1f, 0xc0, /* 000111111100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x40, 0x60, /* 010000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0xe0, /* 000000001110 */ + 0x07, 0xc0, /* 000001111100 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x00, 0xe0, /* 000000001110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0x60, 0x40, /* 011000000100 */ + 0x3f, 0x80, /* 001111111000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 52 0x34 '4' */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x80, /* 000000111000 */ + 0x03, 0x80, /* 000000111000 */ + 0x05, 0x80, /* 000001011000 */ + 0x05, 0x80, /* 000001011000 */ + 0x09, 0x80, /* 000010011000 */ + 0x09, 0x80, /* 000010011000 */ + 0x11, 0x80, /* 000100011000 */ + 0x11, 0x80, /* 000100011000 */ + 0x21, 0x80, /* 001000011000 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 53 0x35 '5' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x10, 0x00, /* 000100000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x20, 0x00, /* 001000000000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x31, 0xc0, /* 001100011100 */ + 0x00, 0xe0, /* 000000001110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 54 0x36 '6' */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x67, 0x80, /* 011001111000 */ + 0x6f, 0xc0, /* 011011111100 */ + 0x70, 0xe0, /* 011100001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x3f, 0x80, /* 001111111000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 55 0x37 '7' */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0xe0, /* 000111111110 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x60, 0x40, /* 011000000100 */ + 0x00, 0x40, /* 000000000100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0x80, /* 000000001000 */ + 0x00, 0x80, /* 000000001000 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x00, /* 000000010000 */ + 0x01, 0x00, /* 000000010000 */ + 0x03, 0x00, /* 000000110000 */ + 0x02, 0x00, /* 000000100000 */ + 0x02, 0x00, /* 000000100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x04, 0x00, /* 000001000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 56 0x38 '8' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x11, 0x80, /* 000100011000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x11, 0x80, /* 000100011000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x18, 0x80, /* 000110001000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 57 0x39 '9' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0xe0, /* 011100001110 */ + 0x3f, 0x60, /* 001111110110 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x01, 0x80, /* 000000011000 */ + 0x07, 0x00, /* 000001110000 */ + 0x3c, 0x00, /* 001111000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 58 0x3a ':' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 59 0x3b ';' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 60 0x3c '<' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x60, /* 000000000110 */ + 0x01, 0xc0, /* 000000011100 */ + 0x07, 0x00, /* 000001110000 */ + 0x1c, 0x00, /* 000111000000 */ + 0x70, 0x00, /* 011100000000 */ + 0x70, 0x00, /* 011100000000 */ + 0x1c, 0x00, /* 000111000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x01, 0xc0, /* 000000011100 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 61 0x3d '=' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 62 0x3e '>' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x38, 0x00, /* 001110000000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x03, 0x80, /* 000000111000 */ + 0x00, 0xe0, /* 000000001110 */ + 0x00, 0xe0, /* 000000001110 */ + 0x03, 0x80, /* 000000111000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x38, 0x00, /* 001110000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 63 0x3f '?' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x39, 0xc0, /* 001110011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 64 0x40 '@' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x30, 0x60, /* 001100000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x67, 0x20, /* 011001110010 */ + 0x6f, 0xa0, /* 011011111010 */ + 0x6c, 0xa0, /* 011011001010 */ + 0x6c, 0xa0, /* 011011001010 */ + 0x67, 0xe0, /* 011001111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x0f, 0xe0, /* 000011111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 65 0x41 'A' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x09, 0x00, /* 000010010000 */ + 0x11, 0x80, /* 000100011000 */ + 0x11, 0x80, /* 000100011000 */ + 0x10, 0x80, /* 000100001000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x20, 0x40, /* 001000000100 */ + 0x40, 0x60, /* 010000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0xf0, /* 111000001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 66 0x42 'B' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x00, /* 111111110000 */ + 0x60, 0x80, /* 011000001000 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x61, 0x80, /* 011000011000 */ + 0x7f, 0x80, /* 011111111000 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0xc0, /* 011000001100 */ + 0xff, 0x80, /* 111111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 67 0x43 'C' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x10, 0x60, /* 000100000110 */ + 0x20, 0x20, /* 001000000010 */ + 0x20, 0x00, /* 001000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x20, 0x00, /* 001000000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x18, 0x40, /* 000110000100 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 68 0x44 'D' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x00, /* 111111110000 */ + 0x61, 0xc0, /* 011000011100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x40, /* 011000000100 */ + 0x61, 0x80, /* 011000011000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 69 0x45 'E' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x80, /* 001100001000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x30, 0x80, /* 001100001000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x30, 0x20, /* 001100000010 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 70 0x46 'F' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x80, /* 001100001000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x30, 0x80, /* 001100001000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 71 0x47 'G' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x10, 0x60, /* 000100000110 */ + 0x20, 0x20, /* 001000000010 */ + 0x20, 0x00, /* 001000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x61, 0xf0, /* 011000011111 */ + 0x60, 0x60, /* 011000000110 */ + 0x20, 0x60, /* 001000000110 */ + 0x30, 0x60, /* 001100000110 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 72 0x48 'H' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0xf0, /* 111100001111 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0xf0, 0xf0, /* 111100001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 73 0x49 'I' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 74 0x4a 'J' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x04, 0x00, /* 000001000000 */ + 0x38, 0x00, /* 001110000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 75 0x4b 'K' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0xe0, /* 111100001110 */ + 0x61, 0x80, /* 011000011000 */ + 0x63, 0x00, /* 011000110000 */ + 0x66, 0x00, /* 011001100000 */ + 0x6c, 0x00, /* 011011000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x7c, 0x00, /* 011111000000 */ + 0x6e, 0x00, /* 011011100000 */ + 0x67, 0x00, /* 011001110000 */ + 0x63, 0x80, /* 011000111000 */ + 0x61, 0xc0, /* 011000011100 */ + 0x60, 0xe0, /* 011000001110 */ + 0xf0, 0x70, /* 111100000111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 76 0x4c 'L' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x30, 0x20, /* 001100000010 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 77 0x4d 'M' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xe0, 0x70, /* 111000000111 */ + 0x60, 0xe0, /* 011000001110 */ + 0x70, 0xe0, /* 011100001110 */ + 0x70, 0xe0, /* 011100001110 */ + 0x70, 0xe0, /* 011100001110 */ + 0x59, 0x60, /* 010110010110 */ + 0x59, 0x60, /* 010110010110 */ + 0x59, 0x60, /* 010110010110 */ + 0x4d, 0x60, /* 010011010110 */ + 0x4e, 0x60, /* 010011100110 */ + 0x4e, 0x60, /* 010011100110 */ + 0x44, 0x60, /* 010001000110 */ + 0x44, 0x60, /* 010001000110 */ + 0xe4, 0xf0, /* 111001001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 78 0x4e 'N' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xc0, 0x70, /* 110000000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x70, 0x20, /* 011100000010 */ + 0x78, 0x20, /* 011110000010 */ + 0x58, 0x20, /* 010110000010 */ + 0x4c, 0x20, /* 010011000010 */ + 0x46, 0x20, /* 010001100010 */ + 0x47, 0x20, /* 010001110010 */ + 0x43, 0x20, /* 010000110010 */ + 0x41, 0xa0, /* 010000011010 */ + 0x40, 0xe0, /* 010000001110 */ + 0x40, 0xe0, /* 010000001110 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0x30, /* 111000000011 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 79 0x4f 'O' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x20, 0x60, /* 001000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x20, 0x40, /* 001000000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 80 0x50 'P' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0x80, /* 011111111000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0x60, /* 001100000110 */ + 0x30, 0x60, /* 001100000110 */ + 0x30, 0x60, /* 001100000110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x37, 0x80, /* 001101111000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 81 0x51 'Q' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x20, 0x60, /* 001000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x30, 0x40, /* 001100000100 */ + 0x38, 0x40, /* 001110000100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x23, 0x90, /* 001000111001 */ + 0x01, 0xe0, /* 000000011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 82 0x52 'R' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x00, /* 111111110000 */ + 0x61, 0x80, /* 011000011000 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0x80, /* 011000001000 */ + 0x7f, 0x00, /* 011111110000 */ + 0x7c, 0x00, /* 011111000000 */ + 0x6e, 0x00, /* 011011100000 */ + 0x67, 0x00, /* 011001110000 */ + 0x63, 0x80, /* 011000111000 */ + 0x61, 0xc0, /* 011000011100 */ + 0x60, 0xe0, /* 011000001110 */ + 0xf0, 0x70, /* 111100000111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 83 0x53 'S' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0xe0, /* 000111111110 */ + 0x30, 0x60, /* 001100000110 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x70, 0x00, /* 011100000000 */ + 0x3c, 0x00, /* 001111000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x07, 0x80, /* 000001111000 */ + 0x01, 0xc0, /* 000000011100 */ + 0x00, 0xe0, /* 000000001110 */ + 0x40, 0x60, /* 010000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0x60, 0xc0, /* 011000001100 */ + 0x7f, 0x80, /* 011111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 84 0x54 'T' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x46, 0x20, /* 010001100010 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 85 0x55 'U' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0x70, /* 111100000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x70, 0x40, /* 011100000100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 86 0x56 'V' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xe0, 0xe0, /* 111000001110 */ + 0x60, 0x40, /* 011000000100 */ + 0x30, 0x80, /* 001100001000 */ + 0x30, 0x80, /* 001100001000 */ + 0x30, 0x80, /* 001100001000 */ + 0x19, 0x00, /* 000110010000 */ + 0x19, 0x00, /* 000110010000 */ + 0x19, 0x00, /* 000110010000 */ + 0x0a, 0x00, /* 000010100000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x04, 0x00, /* 000001000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 87 0x57 'W' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xfe, 0xf0, /* 111111101111 */ + 0x66, 0x20, /* 011001100010 */ + 0x66, 0x20, /* 011001100010 */ + 0x66, 0x20, /* 011001100010 */ + 0x76, 0x20, /* 011101100010 */ + 0x77, 0x40, /* 011101110100 */ + 0x33, 0x40, /* 001100110100 */ + 0x37, 0x40, /* 001101110100 */ + 0x3b, 0xc0, /* 001110111100 */ + 0x3b, 0x80, /* 001110111000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 88 0x58 'X' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0x70, /* 111100000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x30, 0x40, /* 001100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x11, 0x80, /* 000100011000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0xf0, /* 111000001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 89 0x59 'Y' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0x70, /* 111100000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 90 0x5a 'Z' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x20, 0xc0, /* 001000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x20, /* 000110000010 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 91 0x5b '[' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 92 0x5c '\' */ + 0x00, 0x00, /* 000000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x01, 0x80, /* 000000011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 93 0x5d ']' */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 94 0x5e '^' */ + 0x00, 0x00, /* 000000000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x1b, 0x00, /* 000110110000 */ + 0x31, 0x80, /* 001100011000 */ + 0x60, 0xc0, /* 011000001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 95 0x5f '_' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 96 0x60 '`' */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x00, /* 000000010000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0x80, /* 000001111000 */ + 0x07, 0x80, /* 000001111000 */ + 0x03, 0x00, /* 000000110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 97 0x61 'a' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 98 0x62 'b' */ + 0x00, 0x00, /* 000000000000 */ + 0x20, 0x00, /* 001000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0xe0, 0x00, /* 111000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x67, 0x80, /* 011001111000 */ + 0x6f, 0xc0, /* 011011111100 */ + 0x70, 0xe0, /* 011100001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x60, /* 011100000110 */ + 0x78, 0xc0, /* 011110001100 */ + 0x4f, 0x80, /* 010011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 99 0x63 'c' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x31, 0xc0, /* 001100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x70, 0x40, /* 011100000100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 100 0x64 'd' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0xe0, /* 000000001110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x0f, 0x60, /* 000011110110 */ + 0x31, 0xe0, /* 001100011110 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0xe0, /* 011100001110 */ + 0x39, 0x60, /* 001110010110 */ + 0x1e, 0x70, /* 000111100111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 101 0x65 'e' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 102 0x66 'f' */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x80, /* 000000111000 */ + 0x04, 0xc0, /* 000001001100 */ + 0x04, 0xc0, /* 000001001100 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 103 0x67 'g' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x20, /* 000111110010 */ + 0x31, 0xe0, /* 001100011110 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x60, 0xc0, /* 011000001100 */ + 0x31, 0x80, /* 001100011000 */ + 0x3f, 0x00, /* 001111110000 */ + 0x60, 0x00, /* 011000000000 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x3f, 0xe0, /* 001111111110 */ + 0x20, 0x60, /* 001000000110 */ + 0x40, 0x20, /* 010000000010 */ + 0x40, 0x20, /* 010000000010 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x3f, 0x80, /* 001111111000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 104 0x68 'h' */ + 0x00, 0x00, /* 000000000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x70, 0x00, /* 011100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x37, 0x80, /* 001101111000 */ + 0x39, 0xc0, /* 001110011100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x79, 0xe0, /* 011110011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 105 0x69 'i' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 106 0x6a 'j' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0xc0, /* 000000111100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 107 0x6b 'k' */ + 0x00, 0x00, /* 000000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0xe0, 0x00, /* 111000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x61, 0xc0, /* 011000011100 */ + 0x63, 0x00, /* 011000110000 */ + 0x66, 0x00, /* 011001100000 */ + 0x7c, 0x00, /* 011111000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x7c, 0x00, /* 011111000000 */ + 0x6e, 0x00, /* 011011100000 */ + 0x67, 0x00, /* 011001110000 */ + 0x63, 0x80, /* 011000111000 */ + 0xf1, 0xe0, /* 111100011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 108 0x6c 'l' */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 109 0x6d 'm' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xdd, 0xc0, /* 110111011100 */ + 0x6e, 0xe0, /* 011011101110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0x66, 0x60, /* 011001100110 */ + 0xef, 0x70, /* 111011110111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 110 0x6e 'n' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x27, 0x80, /* 001001111000 */ + 0x79, 0xc0, /* 011110011100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x79, 0xe0, /* 011110011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 111 0x6f 'o' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 112 0x70 'p' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xef, 0x80, /* 111011111000 */ + 0x71, 0xc0, /* 011100011100 */ + 0x60, 0xe0, /* 011000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x40, /* 011000000100 */ + 0x70, 0x80, /* 011100001000 */ + 0x7f, 0x00, /* 011111110000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0xf0, 0x00, /* 111100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 113 0x71 'q' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x20, /* 000011110010 */ + 0x11, 0xe0, /* 000100011110 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x60, /* 011100000110 */ + 0x38, 0xe0, /* 001110001110 */ + 0x1f, 0xe0, /* 000111111110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0x60, /* 000000000110 */ + 0x00, 0xf0, /* 000000001111 */ + 0x00, 0x00, /* 000000000000 */ + + /* 114 0x72 'r' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x73, 0x80, /* 011100111000 */ + 0x34, 0xc0, /* 001101001100 */ + 0x38, 0xc0, /* 001110001100 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 115 0x73 's' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0xc0, /* 000111111100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0x40, /* 001100000100 */ + 0x38, 0x00, /* 001110000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x07, 0x80, /* 000001111000 */ + 0x01, 0xc0, /* 000000011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x3f, 0x80, /* 001111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 116 0x74 't' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x7f, 0xc0, /* 011111111100 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0c, 0x20, /* 000011000010 */ + 0x0e, 0x40, /* 000011100100 */ + 0x07, 0x80, /* 000001111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 117 0x75 'u' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x79, 0xe0, /* 011110011110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 118 0x76 'v' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0x70, /* 111100000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 119 0x77 'w' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x70, /* 111111110111 */ + 0x66, 0x20, /* 011001100010 */ + 0x66, 0x20, /* 011001100010 */ + 0x66, 0x20, /* 011001100010 */ + 0x37, 0x40, /* 001101110100 */ + 0x3b, 0x40, /* 001110110100 */ + 0x3b, 0x40, /* 001110110100 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 120 0x78 'x' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf8, 0xf0, /* 111110001111 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1d, 0x00, /* 000111010000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0b, 0x80, /* 000010111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0xf1, 0xf0, /* 111100011111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 121 0x79 'y' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0xf0, /* 111100001111 */ + 0x60, 0x20, /* 011000000010 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x04, 0x00, /* 000001000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x08, 0x00, /* 000010000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x70, 0x00, /* 011100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 122 0x7a 'z' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0xe0, /* 011000001110 */ + 0x41, 0xc0, /* 010000011100 */ + 0x03, 0x80, /* 000000111000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x1c, 0x00, /* 000111000000 */ + 0x38, 0x20, /* 001110000010 */ + 0x70, 0x60, /* 011100000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 123 0x7b '{' */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x80, /* 000000111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x38, 0x00, /* 001110000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x80, /* 000000111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 124 0x7c '|' */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 125 0x7d '}' */ + 0x00, 0x00, /* 000000000000 */ + 0x1c, 0x00, /* 000111000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x01, 0xc0, /* 000000011100 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1c, 0x00, /* 000111000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 126 0x7e '~' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1c, 0x20, /* 000111000010 */ + 0x3e, 0x60, /* 001111100110 */ + 0x67, 0xc0, /* 011001111100 */ + 0x43, 0x80, /* 010000111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 127 0x7f '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 128 0x80 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xc0, /* 000011111100 */ + 0x10, 0x60, /* 000100000110 */ + 0x20, 0x20, /* 001000000010 */ + 0x20, 0x00, /* 001000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x20, 0x00, /* 001000000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x18, 0x40, /* 000110000100 */ + 0x0f, 0x80, /* 000011111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x01, 0x80, /* 000000011000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 129 0x81 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x79, 0xe0, /* 011110011110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 130 0x82 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 131 0x83 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x02, 0x00, /* 000000100000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 132 0x84 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 133 0x85 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 134 0x86 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x07, 0x00, /* 000001110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 135 0x87 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x31, 0xc0, /* 001100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x70, 0x40, /* 011100000100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x01, 0x80, /* 000000011000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 136 0x88 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x02, 0x00, /* 000000100000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 137 0x89 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 138 0x8a '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x60, 0x00, /* 011000000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x18, 0x60, /* 000110000110 */ + 0x0f, 0x80, /* 000011111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 139 0x8b '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 140 0x8c '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x1b, 0x00, /* 000110110000 */ + 0x31, 0x80, /* 001100011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 141 0x8d '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 142 0x8e '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x04, 0x00, /* 000001000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x11, 0x80, /* 000100011000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0xf0, /* 111000001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 143 0x8f '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x04, 0x00, /* 000001000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x11, 0x80, /* 000100011000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x60, 0x60, /* 011000000110 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0xf0, /* 111000001111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 144 0x90 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x08, 0x00, /* 000010000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x30, 0x20, /* 001100000010 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x80, /* 001100001000 */ + 0x3f, 0x80, /* 001111111000 */ + 0x30, 0x80, /* 001100001000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x20, /* 001100000010 */ + 0x30, 0x20, /* 001100000010 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 145 0x91 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3d, 0xe0, /* 001111011110 */ + 0x66, 0x30, /* 011001100011 */ + 0x46, 0x30, /* 010001100011 */ + 0x06, 0x30, /* 000001100011 */ + 0x3f, 0xf0, /* 001111111111 */ + 0x66, 0x00, /* 011001100000 */ + 0xc6, 0x00, /* 110001100000 */ + 0xc6, 0x00, /* 110001100000 */ + 0xe7, 0x30, /* 111001110011 */ + 0x7d, 0xe0, /* 011111011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 146 0x92 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0xf0, /* 000000111111 */ + 0x07, 0x10, /* 000001110001 */ + 0x07, 0x10, /* 000001110001 */ + 0x0b, 0x00, /* 000010110000 */ + 0x0b, 0x00, /* 000010110000 */ + 0x0b, 0x20, /* 000010110010 */ + 0x13, 0xe0, /* 000100111110 */ + 0x13, 0x20, /* 000100110010 */ + 0x3f, 0x00, /* 001111110000 */ + 0x23, 0x00, /* 001000110000 */ + 0x23, 0x00, /* 001000110000 */ + 0x43, 0x10, /* 010000110001 */ + 0x43, 0x10, /* 010000110001 */ + 0xe7, 0xf0, /* 111001111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 147 0x93 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x02, 0x00, /* 000000100000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 148 0x94 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 149 0x95 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x03, 0x00, /* 000000110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 150 0x96 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x02, 0x00, /* 000000100000 */ + 0x07, 0x00, /* 000001110000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x79, 0xe0, /* 011110011110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 151 0x97 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x79, 0xe0, /* 011110011110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 152 0x98 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xf0, 0xf0, /* 111100001111 */ + 0x60, 0x20, /* 011000000010 */ + 0x30, 0x40, /* 001100000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x18, 0x80, /* 000110001000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x0d, 0x00, /* 000011010000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x04, 0x00, /* 000001000000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x08, 0x00, /* 000010000000 */ + 0x78, 0x00, /* 011110000000 */ + 0x70, 0x00, /* 011100000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 153 0x99 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xc0, /* 001000001100 */ + 0x20, 0x60, /* 001000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x20, 0x40, /* 001000000100 */ + 0x30, 0x40, /* 001100000100 */ + 0x18, 0x80, /* 000110001000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 154 0x9a '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0xe0, 0x30, /* 111000000011 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x60, 0x20, /* 011000000010 */ + 0x70, 0x40, /* 011100000100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 155 0x9b '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x36, 0xc0, /* 001101101100 */ + 0x26, 0xc0, /* 001001101100 */ + 0x66, 0x00, /* 011001100000 */ + 0x66, 0x00, /* 011001100000 */ + 0x66, 0x00, /* 011001100000 */ + 0x66, 0x00, /* 011001100000 */ + 0x76, 0x40, /* 011101100100 */ + 0x36, 0xc0, /* 001101101100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 156 0x9c '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x18, 0xc0, /* 000110001100 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x7e, 0x00, /* 011111100000 */ + 0x7e, 0x00, /* 011111100000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x3e, 0x20, /* 001111100010 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x61, 0xc0, /* 011000011100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 157 0x9d '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 158 0x9e '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 159 0x9f '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 160 0xa0 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x18, 0xc0, /* 000110001100 */ + 0x10, 0xc0, /* 000100001100 */ + 0x03, 0xc0, /* 000000111100 */ + 0x1c, 0xc0, /* 000111001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0xe0, /* 000111101110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 161 0xa1 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1e, 0x00, /* 000111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 162 0xa2 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x80, /* 000011111000 */ + 0x11, 0xc0, /* 000100011100 */ + 0x20, 0xe0, /* 001000001110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x60, 0x60, /* 011000000110 */ + 0x70, 0x40, /* 011100000100 */ + 0x38, 0x80, /* 001110001000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 163 0xa3 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x01, 0x80, /* 000000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x79, 0xe0, /* 011110011110 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1e, 0x60, /* 000111100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 164 0xa4 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x1c, 0x40, /* 000111000100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x23, 0x80, /* 001000111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x27, 0x80, /* 001001111000 */ + 0x79, 0xc0, /* 011110011100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x79, 0xe0, /* 011110011110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 165 0xa5 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x1c, 0x40, /* 000111000100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x23, 0x80, /* 001000111000 */ + 0xc0, 0x70, /* 110000000111 */ + 0x60, 0x20, /* 011000000010 */ + 0x70, 0x20, /* 011100000010 */ + 0x78, 0x20, /* 011110000010 */ + 0x5c, 0x20, /* 010111000010 */ + 0x4e, 0x20, /* 010011100010 */ + 0x47, 0x20, /* 010001110010 */ + 0x43, 0xa0, /* 010000111010 */ + 0x41, 0xe0, /* 010000011110 */ + 0x40, 0xe0, /* 010000001110 */ + 0x40, 0x60, /* 010000000110 */ + 0xe0, 0x30, /* 111000000011 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 166 0xa6 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x1f, 0x00, /* 000111110000 */ + 0x31, 0x80, /* 001100011000 */ + 0x01, 0x80, /* 000000011000 */ + 0x07, 0x80, /* 000001111000 */ + 0x19, 0x80, /* 000110011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x31, 0x80, /* 001100011000 */ + 0x33, 0x80, /* 001100111000 */ + 0x1d, 0xc0, /* 000111011100 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 167 0xa7 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0x00, /* 000001110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x10, 0xc0, /* 000100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0x80, /* 001100001000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0e, 0x00, /* 000011100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 168 0xa8 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x03, 0x00, /* 000000110000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x00, /* 000110000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x40, /* 001100000100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x1f, 0x80, /* 000111111000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 169 0xa9 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 170 0xaa '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0xc0, /* 000000001100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 171 0xab '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x10, 0x40, /* 000100000100 */ + 0x10, 0x80, /* 000100001000 */ + 0x11, 0x00, /* 000100010000 */ + 0x3a, 0x00, /* 001110100000 */ + 0x05, 0xc0, /* 000001011100 */ + 0x0a, 0x20, /* 000010100010 */ + 0x10, 0x20, /* 000100000010 */ + 0x20, 0xc0, /* 001000001100 */ + 0x41, 0x00, /* 010000010000 */ + 0x02, 0x00, /* 000000100000 */ + 0x03, 0xe0, /* 000000111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 172 0xac '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x10, 0x00, /* 000100000000 */ + 0x10, 0x40, /* 000100000100 */ + 0x10, 0x80, /* 000100001000 */ + 0x11, 0x00, /* 000100010000 */ + 0x3a, 0x40, /* 001110100100 */ + 0x04, 0xc0, /* 000001001100 */ + 0x09, 0x40, /* 000010010100 */ + 0x12, 0x40, /* 000100100100 */ + 0x24, 0x40, /* 001001000100 */ + 0x47, 0xe0, /* 010001111110 */ + 0x00, 0x40, /* 000000000100 */ + 0x00, 0x40, /* 000000000100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 173 0xad '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 174 0xae '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x60, /* 000001100110 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x19, 0x80, /* 000110011000 */ + 0x33, 0x00, /* 001100110000 */ + 0x66, 0x00, /* 011001100000 */ + 0x33, 0x00, /* 001100110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x06, 0x60, /* 000001100110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 175 0xaf '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x66, 0x00, /* 011001100000 */ + 0x33, 0x00, /* 001100110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x06, 0x60, /* 000001100110 */ + 0x0c, 0xc0, /* 000011001100 */ + 0x19, 0x80, /* 000110011000 */ + 0x33, 0x00, /* 001100110000 */ + 0x66, 0x00, /* 011001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 176 0xb0 '.' */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + 0x61, 0x80, /* 011000011000 */ + 0x20, 0x80, /* 001000001000 */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + 0x61, 0x80, /* 011000011000 */ + 0x20, 0x80, /* 001000001000 */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + 0x61, 0x80, /* 011000011000 */ + 0x20, 0x80, /* 001000001000 */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + 0x61, 0x80, /* 011000011000 */ + 0x20, 0x80, /* 001000001000 */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + 0x61, 0x80, /* 011000011000 */ + 0x20, 0x80, /* 001000001000 */ + 0x0c, 0x30, /* 000011000011 */ + 0x08, 0x20, /* 000010000010 */ + + /* 177 0xb1 '.' */ + 0x77, 0x70, /* 011101110111 */ + 0x22, 0x20, /* 001000100010 */ + 0x88, 0x80, /* 100010001000 */ + 0xdd, 0xd0, /* 110111011101 */ + 0x88, 0x80, /* 100010001000 */ + 0x22, 0x20, /* 001000100010 */ + 0x77, 0x70, /* 011101110111 */ + 0x22, 0x20, /* 001000100010 */ + 0x88, 0x80, /* 100010001000 */ + 0xdd, 0xd0, /* 110111011101 */ + 0x88, 0x80, /* 100010001000 */ + 0x22, 0x20, /* 001000100010 */ + 0x77, 0x70, /* 011101110111 */ + 0x22, 0x20, /* 001000100010 */ + 0x88, 0x80, /* 100010001000 */ + 0xdd, 0xd0, /* 110111011101 */ + 0x88, 0x80, /* 100010001000 */ + 0x22, 0x20, /* 001000100010 */ + 0x77, 0x70, /* 011101110111 */ + 0x22, 0x20, /* 001000100010 */ + 0x88, 0x80, /* 100010001000 */ + 0xdd, 0xd0, /* 110111011101 */ + + /* 178 0xb2 '.' */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + 0x9e, 0x70, /* 100111100111 */ + 0xdf, 0x70, /* 110111110111 */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + 0x9e, 0x70, /* 100111100111 */ + 0xdf, 0x70, /* 110111110111 */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + 0x9e, 0x70, /* 100111100111 */ + 0xdf, 0x70, /* 110111110111 */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + 0x9e, 0x70, /* 100111100111 */ + 0xdf, 0x70, /* 110111110111 */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + 0x9e, 0x70, /* 100111100111 */ + 0xdf, 0x70, /* 110111110111 */ + 0xf3, 0xc0, /* 111100111100 */ + 0xf7, 0xd0, /* 111101111101 */ + + /* 179 0xb3 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 180 0xb4 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 181 0xb5 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 182 0xb6 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 183 0xb7 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x80, /* 111111111000 */ + 0xff, 0x80, /* 111111111000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 184 0xb8 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 185 0xb9 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0x01, 0x80, /* 000000011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 186 0xba '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 187 0xbb '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0x80, /* 111111111000 */ + 0xff, 0x80, /* 111111111000 */ + 0x01, 0x80, /* 000000011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 188 0xbc '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0xfd, 0x80, /* 111111011000 */ + 0x01, 0x80, /* 000000011000 */ + 0xff, 0x80, /* 111111111000 */ + 0xff, 0x80, /* 111111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 189 0xbd '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xff, 0x80, /* 111111111000 */ + 0xff, 0x80, /* 111111111000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 190 0xbe '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 191 0xbf '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 192 0xc0 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 193 0xc1 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 194 0xc2 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 195 0xc3 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 196 0xc4 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 197 0xc5 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 198 0xc6 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 199 0xc7 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 200 0xc8 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 201 0xc9 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 202 0xca '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xfd, 0xf0, /* 111111011111 */ + 0xfd, 0xf0, /* 111111011111 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 203 0xcb '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0xfd, 0xf0, /* 111111011111 */ + 0xfd, 0xf0, /* 111111011111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 204 0xcc '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0c, 0x00, /* 000011000000 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0xf0, /* 000011011111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 205 0xcd '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 206 0xce '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xfd, 0xf0, /* 111111011111 */ + 0xfd, 0xf0, /* 111111011111 */ + 0x00, 0x00, /* 000000000000 */ + 0xfd, 0xf0, /* 111111011111 */ + 0xfd, 0xf0, /* 111111011111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 207 0xcf '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 208 0xd0 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 209 0xd1 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 210 0xd2 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 211 0xd3 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 212 0xd4 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 213 0xd5 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 214 0xd6 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0f, 0xf0, /* 000011111111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 215 0xd7 '.' */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + 0x0d, 0x80, /* 000011011000 */ + + /* 216 0xd8 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x06, 0x00, /* 000001100000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 217 0xd9 '.' */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0xfe, 0x00, /* 111111100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 218 0xda '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x07, 0xf0, /* 000001111111 */ + 0x07, 0xf0, /* 000001111111 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + + /* 219 0xdb '.' */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + + /* 220 0xdc '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + + /* 221 0xdd '.' */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + 0xfc, 0x00, /* 111111000000 */ + + /* 222 0xde '.' */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + 0x03, 0xf0, /* 000000111111 */ + + /* 223 0xdf '.' */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0xff, 0xf0, /* 111111111111 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 224 0xe0 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 225 0xe1 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x31, 0x80, /* 001100011000 */ + 0x37, 0x80, /* 001101111000 */ + 0x31, 0x80, /* 001100011000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x31, 0x80, /* 001100011000 */ + 0x77, 0x00, /* 011101110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 226 0xe2 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 227 0xe3 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 228 0xe4 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 229 0xe5 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 230 0xe6 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x30, 0xc0, /* 001100001100 */ + 0x39, 0xc0, /* 001110011100 */ + 0x36, 0xe0, /* 001101101110 */ + 0x30, 0x00, /* 001100000000 */ + 0x30, 0x00, /* 001100000000 */ + 0x60, 0x00, /* 011000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 231 0xe7 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 232 0xe8 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 233 0xe9 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 234 0xea '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 235 0xeb '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 236 0xec '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 237 0xed '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 238 0xee '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 239 0xef '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 240 0xf0 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 241 0xf1 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 242 0xf2 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 243 0xf3 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 244 0xf4 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 245 0xf5 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 246 0xf6 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x7f, 0xe0, /* 011111111110 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 247 0xf7 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 248 0xf8 '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x19, 0x80, /* 000110011000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 249 0xf9 '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 250 0xfa '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 251 0xfb '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 252 0xfc '.' */ + /* FIXME */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 253 0xfd '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x0f, 0x00, /* 000011110000 */ + 0x1f, 0x80, /* 000111111000 */ + 0x31, 0x80, /* 001100011000 */ + 0x21, 0x80, /* 001000011000 */ + 0x03, 0x00, /* 000000110000 */ + 0x06, 0x00, /* 000001100000 */ + 0x0c, 0x00, /* 000011000000 */ + 0x18, 0x40, /* 000110000100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 254 0xfe '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x3f, 0xc0, /* 001111111100 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + + /* 255 0xff '.' */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + 0x00, 0x00, /* 000000000000 */ + +}; + diff --git a/fonts/vga8x16.c b/fonts/vga8x16.c new file mode 100644 index 0000000..5257552 --- /dev/null +++ b/fonts/vga8x16.c @@ -0,0 +1,4628 @@ +/**********************************************/ +/* */ +/* Font file generated by cpi2fnt */ +/* */ +/**********************************************/ + +#include "font.h" + +static const unsigned char fontdata_vga8x16[]; + +const struct font vga8x16 = { + width: 8, + height: 16, + data: fontdata_vga8x16 +}; + +static const unsigned char fontdata_vga8x16[4096] = { + + /* 0 0x00 '^@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 1 0x01 '^A' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x81, /* 10000001 */ + 0xa5, /* 10100101 */ + 0x81, /* 10000001 */ + 0x81, /* 10000001 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0x81, /* 10000001 */ + 0x81, /* 10000001 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 2 0x02 '^B' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xdb, /* 11011011 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 3 0x03 '^C' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 4 0x04 '^D' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 5 0x05 '^E' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 6 0x06 '^F' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 7 0x07 '^G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 8 0x08 '^H' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xe7, /* 11100111 */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 9 0x09 '^I' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x42, /* 01000010 */ + 0x42, /* 01000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 10 0x0a '^J' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0x99, /* 10011001 */ + 0xbd, /* 10111101 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0xc3, /* 11000011 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 11 0x0b '^K' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x0e, /* 00001110 */ + 0x1a, /* 00011010 */ + 0x32, /* 00110010 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 12 0x0c '^L' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 13 0x0d '^M' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x33, /* 00110011 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x70, /* 01110000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 14 0x0e '^N' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x67, /* 01100111 */ + 0xe7, /* 11100111 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 15 0x0f '^O' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xdb, /* 11011011 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0x3c, /* 00111100 */ + 0xdb, /* 11011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 16 0x10 '^P' */ + 0x00, /* 00000000 */ + 0x80, /* 10000000 */ + 0xc0, /* 11000000 */ + 0xe0, /* 11100000 */ + 0xf0, /* 11110000 */ + 0xf8, /* 11111000 */ + 0xfe, /* 11111110 */ + 0xf8, /* 11111000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + 0xc0, /* 11000000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 17 0x11 '^Q' */ + 0x00, /* 00000000 */ + 0x02, /* 00000010 */ + 0x06, /* 00000110 */ + 0x0e, /* 00001110 */ + 0x1e, /* 00011110 */ + 0x3e, /* 00111110 */ + 0xfe, /* 11111110 */ + 0x3e, /* 00111110 */ + 0x1e, /* 00011110 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 18 0x12 '^R' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 19 0x13 '^S' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 20 0x14 '^T' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7f, /* 01111111 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7b, /* 01111011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 21 0x15 '^U' */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 22 0x16 '^V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 23 0x17 '^W' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 24 0x18 '^X' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 25 0x19 '^Y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 26 0x1a '^Z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 27 0x1b '^[' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 28 0x1c '^\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 29 0x1d '^]' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x28, /* 00101000 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x28, /* 00101000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 30 0x1e '^^' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 31 0x1f '^_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 32 0x20 ' ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 33 0x21 '!' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 34 0x22 '"' */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 35 0x23 '#' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 36 0x24 '$' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x86, /* 10000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 37 0x25 '%' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc2, /* 11000010 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0x86, /* 10000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 38 0x26 '&' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 39 0x27 ''' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 40 0x28 '(' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 41 0x29 ')' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 42 0x2a '*' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0xff, /* 11111111 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 43 0x2b '+' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 44 0x2c ',' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 45 0x2d '-' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 46 0x2e '.' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 47 0x2f '/' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x02, /* 00000010 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 48 0x30 '0' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 49 0x31 '1' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x38, /* 00111000 */ + 0x78, /* 01111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 50 0x32 '2' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 51 0x33 '3' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 52 0x34 '4' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x1c, /* 00011100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 53 0x35 '5' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 54 0x36 '6' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 55 0x37 '7' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 56 0x38 '8' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 57 0x39 '9' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 58 0x3a ':' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 59 0x3b ';' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 60 0x3c '<' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 61 0x3d '=' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 62 0x3e '>' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 63 0x3f '?' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 64 0x40 '@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xdc, /* 11011100 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 65 0x41 'A' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 66 0x42 'B' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 67 0x43 'C' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc2, /* 11000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 68 0x44 'D' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 69 0x45 'E' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x60, /* 01100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 70 0x46 'F' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 71 0x47 'G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xde, /* 11011110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x66, /* 01100110 */ + 0x3a, /* 00111010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 72 0x48 'H' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 73 0x49 'I' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 74 0x4a 'J' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 75 0x4b 'K' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe6, /* 11100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 76 0x4c 'L' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 77 0x4d 'M' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xee, /* 11101110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 78 0x4e 'N' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xfe, /* 11111110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 79 0x4f 'O' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 80 0x50 'P' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 81 0x51 'Q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xde, /* 11011110 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 82 0x52 'R' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 83 0x53 'S' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 84 0x54 'T' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x5a, /* 01011010 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 85 0x55 'U' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 86 0x56 'V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 87 0x57 'W' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0xee, /* 11101110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 88 0x58 'X' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 89 0x59 'Y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 90 0x5a 'Z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x86, /* 10000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc2, /* 11000010 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 91 0x5b '[' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 92 0x5c '\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x80, /* 10000000 */ + 0xc0, /* 11000000 */ + 0xe0, /* 11100000 */ + 0x70, /* 01110000 */ + 0x38, /* 00111000 */ + 0x1c, /* 00011100 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 93 0x5d ']' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 94 0x5e '^' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 95 0x5f '_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 96 0x60 '`' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 97 0x61 'a' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 98 0x62 'b' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 99 0x63 'c' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 100 0x64 'd' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 101 0x65 'e' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 102 0x66 'f' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x36, /* 00110110 */ + 0x32, /* 00110010 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 103 0x67 'g' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 104 0x68 'h' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x6c, /* 01101100 */ + 0x76, /* 01110110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 105 0x69 'i' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 106 0x6a 'j' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 107 0x6b 'k' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 108 0x6c 'l' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 109 0x6d 'm' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 110 0x6e 'n' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 111 0x6f 'o' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 112 0x70 'p' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 113 0x71 'q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 114 0x72 'r' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x66, /* 01100110 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 115 0x73 's' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 116 0x74 't' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0xfc, /* 11111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x36, /* 00110110 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 117 0x75 'u' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 118 0x76 'v' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 119 0x77 'w' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 120 0x78 'x' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 121 0x79 'y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + + /* 122 0x7a 'z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 123 0x7b '{' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 124 0x7c '|' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 125 0x7d '}' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 126 0x7e '~' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 127 0x7f '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 128 0x80 '€' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc2, /* 11000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 129 0x81 '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 130 0x82 '‚' */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 131 0x83 'ƒ' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 132 0x84 '„' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 133 0x85 '…' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 134 0x86 '†' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 135 0x87 '‡' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 136 0x88 'ˆ' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 137 0x89 '‰' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 138 0x8a 'Š' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 139 0x8b '‹' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 140 0x8c 'Œ' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 141 0x8d '' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 142 0x8e 'Ž' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 143 0x8f '' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 144 0x90 '' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 145 0x91 '‘' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x6e, /* 01101110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 146 0x92 '’' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3e, /* 00111110 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 147 0x93 '“' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 148 0x94 '”' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 149 0x95 '•' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 150 0x96 '–' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 151 0x97 '—' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 152 0x98 '˜' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 153 0x99 '™' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 154 0x9a 'š' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 155 0x9b '›' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 156 0x9c 'œ' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x64, /* 01100100 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xe6, /* 11100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 157 0x9d '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 158 0x9e 'ž' */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xf8, /* 11111000 */ + 0xc4, /* 11000100 */ + 0xcc, /* 11001100 */ + 0xde, /* 11011110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 159 0x9f 'Ÿ' */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 160 0xa0 ' ' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 161 0xa1 '¡' */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 162 0xa2 '¢' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 163 0xa3 '£' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 164 0xa4 '¤' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 165 0xa5 '¥' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xfe, /* 11111110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 166 0xa6 '¦' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 167 0xa7 '§' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 168 0xa8 '¨' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 169 0xa9 '©' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 170 0xaa 'ª' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 171 0xab '«' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0xe0, /* 11100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xdc, /* 11011100 */ + 0x86, /* 10000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 172 0xac '¬' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0xe0, /* 11100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xce, /* 11001110 */ + 0x9a, /* 10011010 */ + 0x3f, /* 00111111 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 173 0xad '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 174 0xae '®' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x36, /* 00110110 */ + 0x6c, /* 01101100 */ + 0xd8, /* 11011000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 175 0xaf '¯' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xd8, /* 11011000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x6c, /* 01101100 */ + 0xd8, /* 11011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 176 0xb0 '°' */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + + /* 177 0xb1 '±' */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + + /* 178 0xb2 '²' */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + + /* 179 0xb3 '³' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 180 0xb4 '´' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 181 0xb5 'µ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 182 0xb6 '¶' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 183 0xb7 '·' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 184 0xb8 '¸' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 185 0xb9 '¹' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 186 0xba 'º' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 187 0xbb '»' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 188 0xbc '¼' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 189 0xbd '½' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 190 0xbe '¾' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 191 0xbf '¿' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 192 0xc0 'À' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 193 0xc1 'Á' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 194 0xc2 'Â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 195 0xc3 'Ã' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 196 0xc4 'Ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 197 0xc5 'Å' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 198 0xc6 'Æ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 199 0xc7 'Ç' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 200 0xc8 'È' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 201 0xc9 'É' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 202 0xca 'Ê' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 203 0xcb 'Ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 204 0xcc 'Ì' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 205 0xcd 'Í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 206 0xce 'Î' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 207 0xcf 'Ï' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 208 0xd0 'Ð' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 209 0xd1 'Ñ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 210 0xd2 'Ò' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 211 0xd3 'Ó' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 212 0xd4 'Ô' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 213 0xd5 'Õ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 214 0xd6 'Ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 215 0xd7 '×' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 216 0xd8 'Ø' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 217 0xd9 'Ù' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 218 0xda 'Ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 219 0xdb 'Û' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 220 0xdc 'Ü' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 221 0xdd 'Ý' */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + + /* 222 0xde 'Þ' */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + + /* 223 0xdf 'ß' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 224 0xe0 'à' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 225 0xe1 'á' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 226 0xe2 'â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 227 0xe3 'ã' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 228 0xe4 'ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 229 0xe5 'å' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 230 0xe6 'æ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 231 0xe7 'ç' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 232 0xe8 'è' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 233 0xe9 'é' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 234 0xea 'ê' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xee, /* 11101110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 235 0xeb 'ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x3e, /* 00111110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 236 0xec 'ì' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 237 0xed 'í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x03, /* 00000011 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xf3, /* 11110011 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 238 0xee 'î' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 239 0xef 'ï' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 240 0xf0 'ð' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 241 0xf1 'ñ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 242 0xf2 'ò' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 243 0xf3 'ó' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 244 0xf4 'ô' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 245 0xf5 'õ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 246 0xf6 'ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 247 0xf7 '÷' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 248 0xf8 'ø' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 249 0xf9 'ù' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 250 0xfa 'ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 251 0xfb 'û' */ + 0x00, /* 00000000 */ + 0x0f, /* 00001111 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xec, /* 11101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3c, /* 00111100 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 252 0xfc 'ü' */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 253 0xfd 'ý' */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x32, /* 00110010 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 254 0xfe 'þ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 255 0xff 'ÿ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + +}; + diff --git a/images/Makefile b/images/Makefile new file mode 100644 index 0000000..0883c46 --- /dev/null +++ b/images/Makefile @@ -0,0 +1,24 @@ + +TOPDIR = .. + +O_TARGET = images.o + +SRCS += penguin.c + +include $(TOPDIR)/Rules.make + +%.c: %.pbm + ../pnmtohex/pnmtohex $< $* > $@ + +%.c: %.pgm + ../pnmtohex/pnmtohex $< $* > $@ + +%.c: %.ppm + ../pnmtohex/pnmtohex $< $* > $@ + +%.c: %.pnm + ../pnmtohex/pnmtohex $< $* > $@ + +clean:: + $(RM) $(SRCS) + diff --git a/images/penguin.ppm b/images/penguin.ppm Binary files differnew file mode 100644 index 0000000..6b7b577 --- /dev/null +++ b/images/penguin.ppm diff --git a/include/bitstream.h b/include/bitstream.h new file mode 100644 index 0000000..c717b2e --- /dev/null +++ b/include/bitstream.h @@ -0,0 +1,38 @@ + +/* + * Bitstream operations + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Forward and reverse copy + */ + +extern void bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src, + int src_idx, u32 n); +extern void bitcpy_rev(unsigned long *dst, int dst_idx, + const unsigned long *src, int src_idx, u32 n); + + + /* + * Forward inverting copy + */ + +extern void bitcpy_not(unsigned long *dst, int dst_idx, + const unsigned long *src, int src_idx, u32 n); + + + /* + * Pattern fill + */ + +extern void bitfill32(unsigned long *dst, int dst_idx, u32 pat, u32 n); +extern void bitfill(unsigned long *dst, int dst_idx, unsigned long pat, + int left, int right, u32 n); + diff --git a/include/clut.h b/include/clut.h new file mode 100644 index 0000000..7b55497 --- /dev/null +++ b/include/clut.h @@ -0,0 +1,21 @@ + +/* + * CLUT manipulation + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + +extern const rgba_t clut_mono[2]; +extern const rgba_t clut_console[16]; +extern const rgba_t clut_vga[16]; +extern const rgba_t clut_windows[4]; + +extern void clut_create_rgbcube(rgba_t *clut, u32 rlen, u32 glen, u32 blen); +extern void clut_create_linear(rgba_t *clut, u32 len); +extern void clut_init_nice(void); + diff --git a/include/color.h b/include/color.h new file mode 100644 index 0000000..a438de7 --- /dev/null +++ b/include/color.h @@ -0,0 +1,783 @@ + +/* + * Color manipulation + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + +extern u32 color_error(const rgba_t *a, const rgba_t *b); +extern void color_add(rgba_t *a, const rgba_t *b, const rgba_t *c); +extern void color_sub(rgba_t *a, const rgba_t *b, const rgba_t *c); +extern u32 color_find(const rgba_t *color, const rgba_t *clut, u32 clutsize); + + + /* + * RGB/YUV conversions + */ + +extern void yuva_to_rgba(const yuva_t *yuva, rgba_t *rgba); +extern void rgba_to_yuva(const rgba_t *rgba, yuva_t *yuva); + + + /* + * X11 colors from rgb.txt + */ + +extern const rgba_t c_snow; +extern const rgba_t c_ghost_white; +extern const rgba_t c_GhostWhite; +extern const rgba_t c_white_smoke; +extern const rgba_t c_WhiteSmoke; +extern const rgba_t c_gainsboro; +extern const rgba_t c_floral_white; +extern const rgba_t c_FloralWhite; +extern const rgba_t c_old_lace; +extern const rgba_t c_OldLace; +extern const rgba_t c_linen; +extern const rgba_t c_antique_white; +extern const rgba_t c_AntiqueWhite; +extern const rgba_t c_papaya_whip; +extern const rgba_t c_PapayaWhip; +extern const rgba_t c_blanched_almond; +extern const rgba_t c_BlanchedAlmond; +extern const rgba_t c_bisque; +extern const rgba_t c_peach_puff; +extern const rgba_t c_PeachPuff; +extern const rgba_t c_navajo_white; +extern const rgba_t c_NavajoWhite; +extern const rgba_t c_moccasin; +extern const rgba_t c_cornsilk; +extern const rgba_t c_ivory; +extern const rgba_t c_lemon_chiffon; +extern const rgba_t c_LemonChiffon; +extern const rgba_t c_seashell; +extern const rgba_t c_honeydew; +extern const rgba_t c_mint_cream; +extern const rgba_t c_MintCream; +extern const rgba_t c_azure; +extern const rgba_t c_alice_blue; +extern const rgba_t c_AliceBlue; +extern const rgba_t c_lavender; +extern const rgba_t c_lavender_blush; +extern const rgba_t c_LavenderBlush; +extern const rgba_t c_misty_rose; +extern const rgba_t c_MistyRose; +extern const rgba_t c_white; +extern const rgba_t c_black; +extern const rgba_t c_dark_slate_gray; +extern const rgba_t c_DarkSlateGray; +extern const rgba_t c_dark_slate_grey; +extern const rgba_t c_DarkSlateGrey; +extern const rgba_t c_dim_gray; +extern const rgba_t c_DimGray; +extern const rgba_t c_dim_grey; +extern const rgba_t c_DimGrey; +extern const rgba_t c_slate_gray; +extern const rgba_t c_SlateGray; +extern const rgba_t c_slate_grey; +extern const rgba_t c_SlateGrey; +extern const rgba_t c_light_slate_gray; +extern const rgba_t c_LightSlateGray; +extern const rgba_t c_light_slate_grey; +extern const rgba_t c_LightSlateGrey; +extern const rgba_t c_gray; +extern const rgba_t c_grey; +extern const rgba_t c_light_grey; +extern const rgba_t c_LightGrey; +extern const rgba_t c_light_gray; +extern const rgba_t c_LightGray; +extern const rgba_t c_midnight_blue; +extern const rgba_t c_MidnightBlue; +extern const rgba_t c_navy; +extern const rgba_t c_navy_blue; +extern const rgba_t c_NavyBlue; +extern const rgba_t c_cornflower_blue; +extern const rgba_t c_CornflowerBlue; +extern const rgba_t c_dark_slate_blue; +extern const rgba_t c_DarkSlateBlue; +extern const rgba_t c_slate_blue; +extern const rgba_t c_SlateBlue; +extern const rgba_t c_medium_slate_blue; +extern const rgba_t c_MediumSlateBlue; +extern const rgba_t c_light_slate_blue; +extern const rgba_t c_LightSlateBlue; +extern const rgba_t c_medium_blue; +extern const rgba_t c_MediumBlue; +extern const rgba_t c_royal_blue; +extern const rgba_t c_RoyalBlue; +extern const rgba_t c_blue; +extern const rgba_t c_dodger_blue; +extern const rgba_t c_DodgerBlue; +extern const rgba_t c_deep_sky_blue; +extern const rgba_t c_DeepSkyBlue; +extern const rgba_t c_sky_blue; +extern const rgba_t c_SkyBlue; +extern const rgba_t c_light_sky_blue; +extern const rgba_t c_LightSkyBlue; +extern const rgba_t c_steel_blue; +extern const rgba_t c_SteelBlue; +extern const rgba_t c_light_steel_blue; +extern const rgba_t c_LightSteelBlue; +extern const rgba_t c_light_blue; +extern const rgba_t c_LightBlue; +extern const rgba_t c_powder_blue; +extern const rgba_t c_PowderBlue; +extern const rgba_t c_pale_turquoise; +extern const rgba_t c_PaleTurquoise; +extern const rgba_t c_dark_turquoise; +extern const rgba_t c_DarkTurquoise; +extern const rgba_t c_medium_turquoise; +extern const rgba_t c_MediumTurquoise; +extern const rgba_t c_turquoise; +extern const rgba_t c_cyan; +extern const rgba_t c_light_cyan; +extern const rgba_t c_LightCyan; +extern const rgba_t c_cadet_blue; +extern const rgba_t c_CadetBlue; +extern const rgba_t c_medium_aquamarine; +extern const rgba_t c_MediumAquamarine; +extern const rgba_t c_aquamarine; +extern const rgba_t c_dark_green; +extern const rgba_t c_DarkGreen; +extern const rgba_t c_dark_olive_green; +extern const rgba_t c_DarkOliveGreen; +extern const rgba_t c_dark_sea_green; +extern const rgba_t c_DarkSeaGreen; +extern const rgba_t c_sea_green; +extern const rgba_t c_SeaGreen; +extern const rgba_t c_medium_sea_green; +extern const rgba_t c_MediumSeaGreen; +extern const rgba_t c_light_sea_green; +extern const rgba_t c_LightSeaGreen; +extern const rgba_t c_pale_green; +extern const rgba_t c_PaleGreen; +extern const rgba_t c_spring_green; +extern const rgba_t c_SpringGreen; +extern const rgba_t c_lawn_green; +extern const rgba_t c_LawnGreen; +extern const rgba_t c_green; +extern const rgba_t c_chartreuse; +extern const rgba_t c_medium_spring_green; +extern const rgba_t c_MediumSpringGreen; +extern const rgba_t c_green_yellow; +extern const rgba_t c_GreenYellow; +extern const rgba_t c_lime_green; +extern const rgba_t c_LimeGreen; +extern const rgba_t c_yellow_green; +extern const rgba_t c_YellowGreen; +extern const rgba_t c_forest_green; +extern const rgba_t c_ForestGreen; +extern const rgba_t c_olive_drab; +extern const rgba_t c_OliveDrab; +extern const rgba_t c_dark_khaki; +extern const rgba_t c_DarkKhaki; +extern const rgba_t c_khaki; +extern const rgba_t c_pale_goldenrod; +extern const rgba_t c_PaleGoldenrod; +extern const rgba_t c_light_goldenrod_yellow; +extern const rgba_t c_LightGoldenrodYellow; +extern const rgba_t c_light_yellow; +extern const rgba_t c_LightYellow; +extern const rgba_t c_yellow; +extern const rgba_t c_gold; +extern const rgba_t c_light_goldenrod; +extern const rgba_t c_LightGoldenrod; +extern const rgba_t c_goldenrod; +extern const rgba_t c_dark_goldenrod; +extern const rgba_t c_DarkGoldenrod; +extern const rgba_t c_rosy_brown; +extern const rgba_t c_RosyBrown; +extern const rgba_t c_indian_red; +extern const rgba_t c_IndianRed; +extern const rgba_t c_saddle_brown; +extern const rgba_t c_SaddleBrown; +extern const rgba_t c_sienna; +extern const rgba_t c_peru; +extern const rgba_t c_burlywood; +extern const rgba_t c_beige; +extern const rgba_t c_wheat; +extern const rgba_t c_sandy_brown; +extern const rgba_t c_SandyBrown; +extern const rgba_t c_tan; +extern const rgba_t c_chocolate; +extern const rgba_t c_firebrick; +extern const rgba_t c_brown; +extern const rgba_t c_dark_salmon; +extern const rgba_t c_DarkSalmon; +extern const rgba_t c_salmon; +extern const rgba_t c_light_salmon; +extern const rgba_t c_LightSalmon; +extern const rgba_t c_orange; +extern const rgba_t c_dark_orange; +extern const rgba_t c_DarkOrange; +extern const rgba_t c_coral; +extern const rgba_t c_light_coral; +extern const rgba_t c_LightCoral; +extern const rgba_t c_tomato; +extern const rgba_t c_orange_red; +extern const rgba_t c_OrangeRed; +extern const rgba_t c_red; +extern const rgba_t c_hot_pink; +extern const rgba_t c_HotPink; +extern const rgba_t c_deep_pink; +extern const rgba_t c_DeepPink; +extern const rgba_t c_pink; +extern const rgba_t c_light_pink; +extern const rgba_t c_LightPink; +extern const rgba_t c_pale_violet_red; +extern const rgba_t c_PaleVioletRed; +extern const rgba_t c_maroon; +extern const rgba_t c_medium_violet_red; +extern const rgba_t c_MediumVioletRed; +extern const rgba_t c_violet_red; +extern const rgba_t c_VioletRed; +extern const rgba_t c_magenta; +extern const rgba_t c_violet; +extern const rgba_t c_plum; +extern const rgba_t c_orchid; +extern const rgba_t c_medium_orchid; +extern const rgba_t c_MediumOrchid; +extern const rgba_t c_dark_orchid; +extern const rgba_t c_DarkOrchid; +extern const rgba_t c_dark_violet; +extern const rgba_t c_DarkViolet; +extern const rgba_t c_blue_violet; +extern const rgba_t c_BlueViolet; +extern const rgba_t c_purple; +extern const rgba_t c_medium_purple; +extern const rgba_t c_MediumPurple; +extern const rgba_t c_thistle; +extern const rgba_t c_snow1; +extern const rgba_t c_snow2; +extern const rgba_t c_snow3; +extern const rgba_t c_snow4; +extern const rgba_t c_seashell1; +extern const rgba_t c_seashell2; +extern const rgba_t c_seashell3; +extern const rgba_t c_seashell4; +extern const rgba_t c_AntiqueWhite1; +extern const rgba_t c_AntiqueWhite2; +extern const rgba_t c_AntiqueWhite3; +extern const rgba_t c_AntiqueWhite4; +extern const rgba_t c_bisque1; +extern const rgba_t c_bisque2; +extern const rgba_t c_bisque3; +extern const rgba_t c_bisque4; +extern const rgba_t c_PeachPuff1; +extern const rgba_t c_PeachPuff2; +extern const rgba_t c_PeachPuff3; +extern const rgba_t c_PeachPuff4; +extern const rgba_t c_NavajoWhite1; +extern const rgba_t c_NavajoWhite2; +extern const rgba_t c_NavajoWhite3; +extern const rgba_t c_NavajoWhite4; +extern const rgba_t c_LemonChiffon1; +extern const rgba_t c_LemonChiffon2; +extern const rgba_t c_LemonChiffon3; +extern const rgba_t c_LemonChiffon4; +extern const rgba_t c_cornsilk1; +extern const rgba_t c_cornsilk2; +extern const rgba_t c_cornsilk3; +extern const rgba_t c_cornsilk4; +extern const rgba_t c_ivory1; +extern const rgba_t c_ivory2; +extern const rgba_t c_ivory3; +extern const rgba_t c_ivory4; +extern const rgba_t c_honeydew1; +extern const rgba_t c_honeydew2; +extern const rgba_t c_honeydew3; +extern const rgba_t c_honeydew4; +extern const rgba_t c_LavenderBlush1; +extern const rgba_t c_LavenderBlush2; +extern const rgba_t c_LavenderBlush3; +extern const rgba_t c_LavenderBlush4; +extern const rgba_t c_MistyRose1; +extern const rgba_t c_MistyRose2; +extern const rgba_t c_MistyRose3; +extern const rgba_t c_MistyRose4; +extern const rgba_t c_azure1; +extern const rgba_t c_azure2; +extern const rgba_t c_azure3; +extern const rgba_t c_azure4; +extern const rgba_t c_SlateBlue1; +extern const rgba_t c_SlateBlue2; +extern const rgba_t c_SlateBlue3; +extern const rgba_t c_SlateBlue4; +extern const rgba_t c_RoyalBlue1; +extern const rgba_t c_RoyalBlue2; +extern const rgba_t c_RoyalBlue3; +extern const rgba_t c_RoyalBlue4; +extern const rgba_t c_blue1; +extern const rgba_t c_blue2; +extern const rgba_t c_blue3; +extern const rgba_t c_blue4; +extern const rgba_t c_DodgerBlue1; +extern const rgba_t c_DodgerBlue2; +extern const rgba_t c_DodgerBlue3; +extern const rgba_t c_DodgerBlue4; +extern const rgba_t c_SteelBlue1; +extern const rgba_t c_SteelBlue2; +extern const rgba_t c_SteelBlue3; +extern const rgba_t c_SteelBlue4; +extern const rgba_t c_DeepSkyBlue1; +extern const rgba_t c_DeepSkyBlue2; +extern const rgba_t c_DeepSkyBlue3; +extern const rgba_t c_DeepSkyBlue4; +extern const rgba_t c_SkyBlue1; +extern const rgba_t c_SkyBlue2; +extern const rgba_t c_SkyBlue3; +extern const rgba_t c_SkyBlue4; +extern const rgba_t c_LightSkyBlue1; +extern const rgba_t c_LightSkyBlue2; +extern const rgba_t c_LightSkyBlue3; +extern const rgba_t c_LightSkyBlue4; +extern const rgba_t c_SlateGray1; +extern const rgba_t c_SlateGray2; +extern const rgba_t c_SlateGray3; +extern const rgba_t c_SlateGray4; +extern const rgba_t c_LightSteelBlue1; +extern const rgba_t c_LightSteelBlue2; +extern const rgba_t c_LightSteelBlue3; +extern const rgba_t c_LightSteelBlue4; +extern const rgba_t c_LightBlue1; +extern const rgba_t c_LightBlue2; +extern const rgba_t c_LightBlue3; +extern const rgba_t c_LightBlue4; +extern const rgba_t c_LightCyan1; +extern const rgba_t c_LightCyan2; +extern const rgba_t c_LightCyan3; +extern const rgba_t c_LightCyan4; +extern const rgba_t c_PaleTurquoise1; +extern const rgba_t c_PaleTurquoise2; +extern const rgba_t c_PaleTurquoise3; +extern const rgba_t c_PaleTurquoise4; +extern const rgba_t c_CadetBlue1; +extern const rgba_t c_CadetBlue2; +extern const rgba_t c_CadetBlue3; +extern const rgba_t c_CadetBlue4; +extern const rgba_t c_turquoise1; +extern const rgba_t c_turquoise2; +extern const rgba_t c_turquoise3; +extern const rgba_t c_turquoise4; +extern const rgba_t c_cyan1; +extern const rgba_t c_cyan2; +extern const rgba_t c_cyan3; +extern const rgba_t c_cyan4; +extern const rgba_t c_DarkSlateGray1; +extern const rgba_t c_DarkSlateGray2; +extern const rgba_t c_DarkSlateGray3; +extern const rgba_t c_DarkSlateGray4; +extern const rgba_t c_aquamarine1; +extern const rgba_t c_aquamarine2; +extern const rgba_t c_aquamarine3; +extern const rgba_t c_aquamarine4; +extern const rgba_t c_DarkSeaGreen1; +extern const rgba_t c_DarkSeaGreen2; +extern const rgba_t c_DarkSeaGreen3; +extern const rgba_t c_DarkSeaGreen4; +extern const rgba_t c_SeaGreen1; +extern const rgba_t c_SeaGreen2; +extern const rgba_t c_SeaGreen3; +extern const rgba_t c_SeaGreen4; +extern const rgba_t c_PaleGreen1; +extern const rgba_t c_PaleGreen2; +extern const rgba_t c_PaleGreen3; +extern const rgba_t c_PaleGreen4; +extern const rgba_t c_SpringGreen1; +extern const rgba_t c_SpringGreen2; +extern const rgba_t c_SpringGreen3; +extern const rgba_t c_SpringGreen4; +extern const rgba_t c_green1; +extern const rgba_t c_green2; +extern const rgba_t c_green3; +extern const rgba_t c_green4; +extern const rgba_t c_chartreuse1; +extern const rgba_t c_chartreuse2; +extern const rgba_t c_chartreuse3; +extern const rgba_t c_chartreuse4; +extern const rgba_t c_OliveDrab1; +extern const rgba_t c_OliveDrab2; +extern const rgba_t c_OliveDrab3; +extern const rgba_t c_OliveDrab4; +extern const rgba_t c_DarkOliveGreen1; +extern const rgba_t c_DarkOliveGreen2; +extern const rgba_t c_DarkOliveGreen3; +extern const rgba_t c_DarkOliveGreen4; +extern const rgba_t c_khaki1; +extern const rgba_t c_khaki2; +extern const rgba_t c_khaki3; +extern const rgba_t c_khaki4; +extern const rgba_t c_LightGoldenrod1; +extern const rgba_t c_LightGoldenrod2; +extern const rgba_t c_LightGoldenrod3; +extern const rgba_t c_LightGoldenrod4; +extern const rgba_t c_LightYellow1; +extern const rgba_t c_LightYellow2; +extern const rgba_t c_LightYellow3; +extern const rgba_t c_LightYellow4; +extern const rgba_t c_yellow1; +extern const rgba_t c_yellow2; +extern const rgba_t c_yellow3; +extern const rgba_t c_yellow4; +extern const rgba_t c_gold1; +extern const rgba_t c_gold2; +extern const rgba_t c_gold3; +extern const rgba_t c_gold4; +extern const rgba_t c_goldenrod1; +extern const rgba_t c_goldenrod2; +extern const rgba_t c_goldenrod3; +extern const rgba_t c_goldenrod4; +extern const rgba_t c_DarkGoldenrod1; +extern const rgba_t c_DarkGoldenrod2; +extern const rgba_t c_DarkGoldenrod3; +extern const rgba_t c_DarkGoldenrod4; +extern const rgba_t c_RosyBrown1; +extern const rgba_t c_RosyBrown2; +extern const rgba_t c_RosyBrown3; +extern const rgba_t c_RosyBrown4; +extern const rgba_t c_IndianRed1; +extern const rgba_t c_IndianRed2; +extern const rgba_t c_IndianRed3; +extern const rgba_t c_IndianRed4; +extern const rgba_t c_sienna1; +extern const rgba_t c_sienna2; +extern const rgba_t c_sienna3; +extern const rgba_t c_sienna4; +extern const rgba_t c_burlywood1; +extern const rgba_t c_burlywood2; +extern const rgba_t c_burlywood3; +extern const rgba_t c_burlywood4; +extern const rgba_t c_wheat1; +extern const rgba_t c_wheat2; +extern const rgba_t c_wheat3; +extern const rgba_t c_wheat4; +extern const rgba_t c_tan1; +extern const rgba_t c_tan2; +extern const rgba_t c_tan3; +extern const rgba_t c_tan4; +extern const rgba_t c_chocolate1; +extern const rgba_t c_chocolate2; +extern const rgba_t c_chocolate3; +extern const rgba_t c_chocolate4; +extern const rgba_t c_firebrick1; +extern const rgba_t c_firebrick2; +extern const rgba_t c_firebrick3; +extern const rgba_t c_firebrick4; +extern const rgba_t c_brown1; +extern const rgba_t c_brown2; +extern const rgba_t c_brown3; +extern const rgba_t c_brown4; +extern const rgba_t c_salmon1; +extern const rgba_t c_salmon2; +extern const rgba_t c_salmon3; +extern const rgba_t c_salmon4; +extern const rgba_t c_LightSalmon1; +extern const rgba_t c_LightSalmon2; +extern const rgba_t c_LightSalmon3; +extern const rgba_t c_LightSalmon4; +extern const rgba_t c_orange1; +extern const rgba_t c_orange2; +extern const rgba_t c_orange3; +extern const rgba_t c_orange4; +extern const rgba_t c_DarkOrange1; +extern const rgba_t c_DarkOrange2; +extern const rgba_t c_DarkOrange3; +extern const rgba_t c_DarkOrange4; +extern const rgba_t c_coral1; +extern const rgba_t c_coral2; +extern const rgba_t c_coral3; +extern const rgba_t c_coral4; +extern const rgba_t c_tomato1; +extern const rgba_t c_tomato2; +extern const rgba_t c_tomato3; +extern const rgba_t c_tomato4; +extern const rgba_t c_OrangeRed1; +extern const rgba_t c_OrangeRed2; +extern const rgba_t c_OrangeRed3; +extern const rgba_t c_OrangeRed4; +extern const rgba_t c_red1; +extern const rgba_t c_red2; +extern const rgba_t c_red3; +extern const rgba_t c_red4; +extern const rgba_t c_DeepPink1; +extern const rgba_t c_DeepPink2; +extern const rgba_t c_DeepPink3; +extern const rgba_t c_DeepPink4; +extern const rgba_t c_HotPink1; +extern const rgba_t c_HotPink2; +extern const rgba_t c_HotPink3; +extern const rgba_t c_HotPink4; +extern const rgba_t c_pink1; +extern const rgba_t c_pink2; +extern const rgba_t c_pink3; +extern const rgba_t c_pink4; +extern const rgba_t c_LightPink1; +extern const rgba_t c_LightPink2; +extern const rgba_t c_LightPink3; +extern const rgba_t c_LightPink4; +extern const rgba_t c_PaleVioletRed1; +extern const rgba_t c_PaleVioletRed2; +extern const rgba_t c_PaleVioletRed3; +extern const rgba_t c_PaleVioletRed4; +extern const rgba_t c_maroon1; +extern const rgba_t c_maroon2; +extern const rgba_t c_maroon3; +extern const rgba_t c_maroon4; +extern const rgba_t c_VioletRed1; +extern const rgba_t c_VioletRed2; +extern const rgba_t c_VioletRed3; +extern const rgba_t c_VioletRed4; +extern const rgba_t c_magenta1; +extern const rgba_t c_magenta2; +extern const rgba_t c_magenta3; +extern const rgba_t c_magenta4; +extern const rgba_t c_orchid1; +extern const rgba_t c_orchid2; +extern const rgba_t c_orchid3; +extern const rgba_t c_orchid4; +extern const rgba_t c_plum1; +extern const rgba_t c_plum2; +extern const rgba_t c_plum3; +extern const rgba_t c_plum4; +extern const rgba_t c_MediumOrchid1; +extern const rgba_t c_MediumOrchid2; +extern const rgba_t c_MediumOrchid3; +extern const rgba_t c_MediumOrchid4; +extern const rgba_t c_DarkOrchid1; +extern const rgba_t c_DarkOrchid2; +extern const rgba_t c_DarkOrchid3; +extern const rgba_t c_DarkOrchid4; +extern const rgba_t c_purple1; +extern const rgba_t c_purple2; +extern const rgba_t c_purple3; +extern const rgba_t c_purple4; +extern const rgba_t c_MediumPurple1; +extern const rgba_t c_MediumPurple2; +extern const rgba_t c_MediumPurple3; +extern const rgba_t c_MediumPurple4; +extern const rgba_t c_thistle1; +extern const rgba_t c_thistle2; +extern const rgba_t c_thistle3; +extern const rgba_t c_thistle4; +extern const rgba_t c_gray0; +extern const rgba_t c_grey0; +extern const rgba_t c_gray1; +extern const rgba_t c_grey1; +extern const rgba_t c_gray2; +extern const rgba_t c_grey2; +extern const rgba_t c_gray3; +extern const rgba_t c_grey3; +extern const rgba_t c_gray4; +extern const rgba_t c_grey4; +extern const rgba_t c_gray5; +extern const rgba_t c_grey5; +extern const rgba_t c_gray6; +extern const rgba_t c_grey6; +extern const rgba_t c_gray7; +extern const rgba_t c_grey7; +extern const rgba_t c_gray8; +extern const rgba_t c_grey8; +extern const rgba_t c_gray9; +extern const rgba_t c_grey9; +extern const rgba_t c_gray10; +extern const rgba_t c_grey10; +extern const rgba_t c_gray11; +extern const rgba_t c_grey11; +extern const rgba_t c_gray12; +extern const rgba_t c_grey12; +extern const rgba_t c_gray13; +extern const rgba_t c_grey13; +extern const rgba_t c_gray14; +extern const rgba_t c_grey14; +extern const rgba_t c_gray15; +extern const rgba_t c_grey15; +extern const rgba_t c_gray16; +extern const rgba_t c_grey16; +extern const rgba_t c_gray17; +extern const rgba_t c_grey17; +extern const rgba_t c_gray18; +extern const rgba_t c_grey18; +extern const rgba_t c_gray19; +extern const rgba_t c_grey19; +extern const rgba_t c_gray20; +extern const rgba_t c_grey20; +extern const rgba_t c_gray21; +extern const rgba_t c_grey21; +extern const rgba_t c_gray22; +extern const rgba_t c_grey22; +extern const rgba_t c_gray23; +extern const rgba_t c_grey23; +extern const rgba_t c_gray24; +extern const rgba_t c_grey24; +extern const rgba_t c_gray25; +extern const rgba_t c_grey25; +extern const rgba_t c_gray26; +extern const rgba_t c_grey26; +extern const rgba_t c_gray27; +extern const rgba_t c_grey27; +extern const rgba_t c_gray28; +extern const rgba_t c_grey28; +extern const rgba_t c_gray29; +extern const rgba_t c_grey29; +extern const rgba_t c_gray30; +extern const rgba_t c_grey30; +extern const rgba_t c_gray31; +extern const rgba_t c_grey31; +extern const rgba_t c_gray32; +extern const rgba_t c_grey32; +extern const rgba_t c_gray33; +extern const rgba_t c_grey33; +extern const rgba_t c_gray34; +extern const rgba_t c_grey34; +extern const rgba_t c_gray35; +extern const rgba_t c_grey35; +extern const rgba_t c_gray36; +extern const rgba_t c_grey36; +extern const rgba_t c_gray37; +extern const rgba_t c_grey37; +extern const rgba_t c_gray38; +extern const rgba_t c_grey38; +extern const rgba_t c_gray39; +extern const rgba_t c_grey39; +extern const rgba_t c_gray40; +extern const rgba_t c_grey40; +extern const rgba_t c_gray41; +extern const rgba_t c_grey41; +extern const rgba_t c_gray42; +extern const rgba_t c_grey42; +extern const rgba_t c_gray43; +extern const rgba_t c_grey43; +extern const rgba_t c_gray44; +extern const rgba_t c_grey44; +extern const rgba_t c_gray45; +extern const rgba_t c_grey45; +extern const rgba_t c_gray46; +extern const rgba_t c_grey46; +extern const rgba_t c_gray47; +extern const rgba_t c_grey47; +extern const rgba_t c_gray48; +extern const rgba_t c_grey48; +extern const rgba_t c_gray49; +extern const rgba_t c_grey49; +extern const rgba_t c_gray50; +extern const rgba_t c_grey50; +extern const rgba_t c_gray51; +extern const rgba_t c_grey51; +extern const rgba_t c_gray52; +extern const rgba_t c_grey52; +extern const rgba_t c_gray53; +extern const rgba_t c_grey53; +extern const rgba_t c_gray54; +extern const rgba_t c_grey54; +extern const rgba_t c_gray55; +extern const rgba_t c_grey55; +extern const rgba_t c_gray56; +extern const rgba_t c_grey56; +extern const rgba_t c_gray57; +extern const rgba_t c_grey57; +extern const rgba_t c_gray58; +extern const rgba_t c_grey58; +extern const rgba_t c_gray59; +extern const rgba_t c_grey59; +extern const rgba_t c_gray60; +extern const rgba_t c_grey60; +extern const rgba_t c_gray61; +extern const rgba_t c_grey61; +extern const rgba_t c_gray62; +extern const rgba_t c_grey62; +extern const rgba_t c_gray63; +extern const rgba_t c_grey63; +extern const rgba_t c_gray64; +extern const rgba_t c_grey64; +extern const rgba_t c_gray65; +extern const rgba_t c_grey65; +extern const rgba_t c_gray66; +extern const rgba_t c_grey66; +extern const rgba_t c_gray67; +extern const rgba_t c_grey67; +extern const rgba_t c_gray68; +extern const rgba_t c_grey68; +extern const rgba_t c_gray69; +extern const rgba_t c_grey69; +extern const rgba_t c_gray70; +extern const rgba_t c_grey70; +extern const rgba_t c_gray71; +extern const rgba_t c_grey71; +extern const rgba_t c_gray72; +extern const rgba_t c_grey72; +extern const rgba_t c_gray73; +extern const rgba_t c_grey73; +extern const rgba_t c_gray74; +extern const rgba_t c_grey74; +extern const rgba_t c_gray75; +extern const rgba_t c_grey75; +extern const rgba_t c_gray76; +extern const rgba_t c_grey76; +extern const rgba_t c_gray77; +extern const rgba_t c_grey77; +extern const rgba_t c_gray78; +extern const rgba_t c_grey78; +extern const rgba_t c_gray79; +extern const rgba_t c_grey79; +extern const rgba_t c_gray80; +extern const rgba_t c_grey80; +extern const rgba_t c_gray81; +extern const rgba_t c_grey81; +extern const rgba_t c_gray82; +extern const rgba_t c_grey82; +extern const rgba_t c_gray83; +extern const rgba_t c_grey83; +extern const rgba_t c_gray84; +extern const rgba_t c_grey84; +extern const rgba_t c_gray85; +extern const rgba_t c_grey85; +extern const rgba_t c_gray86; +extern const rgba_t c_grey86; +extern const rgba_t c_gray87; +extern const rgba_t c_grey87; +extern const rgba_t c_gray88; +extern const rgba_t c_grey88; +extern const rgba_t c_gray89; +extern const rgba_t c_grey89; +extern const rgba_t c_gray90; +extern const rgba_t c_grey90; +extern const rgba_t c_gray91; +extern const rgba_t c_grey91; +extern const rgba_t c_gray92; +extern const rgba_t c_grey92; +extern const rgba_t c_gray93; +extern const rgba_t c_grey93; +extern const rgba_t c_gray94; +extern const rgba_t c_grey94; +extern const rgba_t c_gray95; +extern const rgba_t c_grey95; +extern const rgba_t c_gray96; +extern const rgba_t c_grey96; +extern const rgba_t c_gray97; +extern const rgba_t c_grey97; +extern const rgba_t c_gray98; +extern const rgba_t c_grey98; +extern const rgba_t c_gray99; +extern const rgba_t c_grey99; +extern const rgba_t c_gray100; +extern const rgba_t c_grey100; +extern const rgba_t c_dark_grey; +extern const rgba_t c_DarkGrey; +extern const rgba_t c_dark_gray; +extern const rgba_t c_DarkGray; +extern const rgba_t c_dark_blue; +extern const rgba_t c_DarkBlue; +extern const rgba_t c_dark_cyan; +extern const rgba_t c_DarkCyan; +extern const rgba_t c_dark_magenta; +extern const rgba_t c_DarkMagenta; +extern const rgba_t c_dark_red; +extern const rgba_t c_DarkRed; +extern const rgba_t c_light_green; +extern const rgba_t c_LightGreen; + diff --git a/include/colormap.h b/include/colormap.h new file mode 100644 index 0000000..d86b767 --- /dev/null +++ b/include/colormap.h @@ -0,0 +1,19 @@ + +/* + * Colormap manipulation + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Initialization and clean up + */ + +extern void cmap_init(u32 len); +extern void cmap_cleanup(void); + diff --git a/include/console.h b/include/console.h new file mode 100644 index 0000000..12fc2e4 --- /dev/null +++ b/include/console.h @@ -0,0 +1,18 @@ + +/* + * Simple text console + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + +extern void con_init(const struct font *font); +extern void con_putc(char c); +extern void con_puts(const char *s); +extern void con_printf(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); + diff --git a/include/drawops.h b/include/drawops.h new file mode 100644 index 0000000..42d74bb --- /dev/null +++ b/include/drawops.h @@ -0,0 +1,123 @@ + +/* + * Low-level drawing operations + * + * These operations control the drawing of pixel values to the frame buffer + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + +struct drawops { + const char *name; + int (*init)(void); + void (*set_pixel)(u32 x, u32 y, pixel_t pixel); + pixel_t (*get_pixel)(u32 x, u32 y); + void (*draw_hline)(u32 x, u32 y, u32 length, pixel_t pixel); + void (*draw_vline)(u32 x, u32 y, u32 length, pixel_t pixel); + void (*draw_rect)(u32 x, u32 y, u32 width, u32 height, pixel_t pixel); + void (*fill_rect)(u32 x, u32 y, u32 width, u32 height, pixel_t pixel); + void (*draw_line)(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel); + void (*expand_bitmap)(u32 x, u32 y, u32 width, u32 height, const u8 *data, + u32 pitch, pixel_t pixel0, pixel_t pixel1); + void (*draw_pixmap)(u32 x, u32 y, u32 width, u32 height, + const pixel_t *pixmap); + void (*draw_circle)(u32 x, u32 y, u32 r, pixel_t pixel); + void (*fill_circle)(u32 x, u32 y, u32 r, pixel_t pixel); + void (*draw_ellipse)(u32 x, u32 y, u32 a, u32 b, pixel_t pixel); + void (*fill_ellipse)(u32 x, u32 y, u32 a, u32 b, pixel_t pixel); + void (*copy_rect)(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy); + /* FIXME: text */ +}; + +extern struct drawops drawops; + + +#define set_pixel(x, y, pixel) drawops.set_pixel((x), (y), (pixel)) +#define get_pixel(x, y) drawops.get_pixel((x), (y)) +#define draw_hline(x, y, length, pixel) \ + drawops.draw_hline((x), (y), (length), (pixel)) +#define draw_vline(x, y, length, pixel) \ + drawops.draw_vline((x), (y), (length), (pixel)) +#define draw_rect(x, y, width, height, pixel) \ + drawops.draw_rect((x), (y), (width), (height), (pixel)) +#define fill_rect(x, y, width, height, pixel) \ + drawops.fill_rect((x), (y), (width), (height), (pixel)) +#define draw_line(x1, y1, x2, y2) \ + drawops.draw_line((x), (y), (x2), (y2)) +#define expand_bitmap(x, y, width, height, data, pitch, pixel0, pixel1) \ + drawops.expand_bitmap((x), (y), (width), (height), (data), (pitch), \ + (pixel0), (pixel1)) +#define draw_pixmap(x, y, width, height, pixmap) \ + drawops.draw_pixmap((x), (y), (width), (height), (pixmap)) +#define draw_circle(x, y, r, pixel) \ + drawops.draw_circle((x), (y), (r), (pixel)) +#define fill_circle(x, y, r, pixel) \ + drawops.fill_circle((x), (y), (r), (pixel)) +#define draw_ellipse(x, y, a, b, pixel) \ + drawops.draw_ellipse((x), (y), (a), (b), (pixel)) +#define fill_ellipse(x, y, a, b, pixel) \ + drawops.fill_ellipse((x), (y), (a), (b), (pixel)) +#define copy_rect(dx, dy, width, height, sx, sy) \ + drawops.copy_rect((dx), (dy), (width), (height), (sx), (sy)) + + + /* + * Frame buffer organization specific drawing operations + */ + +extern const struct drawops cfb2_drawops; +extern const struct drawops cfb4_drawops; +extern const struct drawops cfb8_drawops; +extern const struct drawops cfb16_drawops; +extern const struct drawops cfb24_drawops; +extern const struct drawops cfb32_drawops; +extern const struct drawops planar_drawops; +extern const struct drawops iplan2_drawops; + + + /* + * Generic drawing operations + */ + +extern void generic_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel); +extern void generic_draw_vline(u32 x, u32 y, u32 length, pixel_t pixel); +extern void generic_draw_rect(u32 x, u32 y, u32 width, u32 height, + pixel_t pixel); +extern void generic_fill_rect(u32 x, u32 y, u32 width, u32 height, + pixel_t pixel); +extern void generic_draw_line(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel); +extern void generic_expand_bitmap(u32 x, u32 y, u32 width, u32 height, + const u8 *data, u32 pitch, pixel_t pixel0, + pixel_t pixel1); +extern void generic_draw_pixmap(u32 x, u32 y, u32 width, u32 height, + const pixel_t *data); +extern void generic_draw_circle(u32 x, u32 y, u32 r, pixel_t pixel); +extern void generic_fill_circle(u32 x, u32 y, u32 r, pixel_t pixel); +extern void generic_draw_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel); +extern void generic_fill_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel); +extern void generic_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, + u32 sy); + + + /* + * Generic CFB drawing routines + */ + +extern int cfb_init(void); +extern void cfb_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel); +extern void cfb_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel); +extern void cfb_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, + u32 sy); + + + /* + * Initialization + */ + +extern void drawops_init(void); + diff --git a/include/fb.h b/include/fb.h new file mode 100644 index 0000000..fcda308 --- /dev/null +++ b/include/fb.h @@ -0,0 +1,45 @@ + +/* + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <linux/fb.h> + + + /* + * Frame buffer device kernel API + */ + +extern struct fb_var_screeninfo fb_var; +extern struct fb_fix_screeninfo fb_fix; +extern struct fb_cmap fb_cmap; + +extern void fb_open(void); +extern void fb_close(void); +extern int fb_get_fix(void); +extern int fb_get_var(void); +extern int fb_set_var(void); +extern int fb_get_cmap(void); +extern int fb_set_cmap(void); +extern void fb_map(void); +extern void fb_unmap(void); + + + /* + * Initialization/Clean up + */ + +extern void fb_init(void); +extern void fb_cleanup(void); + + + /* + * Mapped frame buffer + */ + +extern u8 *fb; + diff --git a/include/font.h b/include/font.h new file mode 100644 index 0000000..95f5bed --- /dev/null +++ b/include/font.h @@ -0,0 +1,30 @@ + +/* + * Font manipulation + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Font + */ + +struct font { + unsigned int width, height; + const unsigned char *data; /* font data stream */ +}; + + + /* + * Builtin fonts + */ + +extern const struct font pearl8x8; +extern const struct font sun12x22; +extern const struct font vga8x16; + diff --git a/include/image.h b/include/image.h new file mode 100644 index 0000000..8fd7b3d --- /dev/null +++ b/include/image.h @@ -0,0 +1,34 @@ + +/* + * Image manipulation + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Image + */ + +enum image_type { IMAGE_BW, IMAGE_GREY256, IMAGE_CLUT256, IMAGE_RGB888 }; + +struct image { + unsigned int width, height; + enum image_type type; + const unsigned char *data; /* pixel data stream */ + /* IMAGE_CLUT256 only */ + unsigned int clut_len; /* number of CLUT elements (max. 256) */ + const unsigned char *clut; /* CLUT RGB stream */ +}; + + + /* + * Builtin images + */ + +extern const struct image penguin; + diff --git a/include/pixmap.h b/include/pixmap.h new file mode 100644 index 0000000..d25c4d4 --- /dev/null +++ b/include/pixmap.h @@ -0,0 +1,25 @@ + +/* + * Pixmap manipulation + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Convert an image to a pixmap + */ + +extern pixel_t *create_pixmap(const struct image *image); + + + /* + * Free a pixmap + */ + +#define free_pixmap(pixmap) free(pixmap) + diff --git a/include/test.h b/include/test.h new file mode 100644 index 0000000..aa4d390 --- /dev/null +++ b/include/test.h @@ -0,0 +1,73 @@ + +/* + * Test routines + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + +enum test_reqflags { + /* Bits per pixel */ + REQF_bits_per_pixel = (1<<0), + /* Number of colors */ + REQF_num_colors = (1<<1), + /* Color component sizes */ + REQF_red_length = (1<<2), + REQF_green_length = (1<<3), + REQF_blue_length = (1<<4), + REQF_transp_length = (1<<5), + /* Screen dimensions */ + REQF_xres = (1<<6), + REQF_yres = (1<<7), +}; + +enum test_res { + TEST_OK = 0, /* OK */ + TEST_FAIL = 1, /* Failed */ + TEST_NA = 2, /* N/A */ +}; + +struct test { + const char *name; + const char *desc; + enum visual_id visual; + enum test_reqflags reqs; /* multiple requirements may be or'ed */ + u32 bits_per_pixel; /* if (flags & REQF_bits_per_pixel) */ + u32 num_colors; /* if (flags & REQF_num_colors) */ + u32 red_length; /* if (flags & REQF_red_length) */ + u32 green_length; /* if (flags & REQF_green_length) */ + u32 blue_length; /* if (flags & REQF_blue_length) */ + u32 transp_length; /* if (flags & REQF_transp_length) */ + u32 xres; /* if (flags & REQF_xres) */ + u32 yres; /* if (flags & REQF_yres) */ + enum test_res (*func)(void); +}; + + + /* + * Tests + */ + +extern const struct test test001; +extern const struct test test002; +extern const struct test test003; +extern const struct test test004; +extern const struct test test005; +extern const struct test test006; +extern const struct test test007; +extern const struct test test008; +extern const struct test test009; +extern const struct test test010; + + + /* + * Test run + */ + +extern void test_run(const char *name); +extern void test_list(const char *name, int verbose); + diff --git a/include/types.h b/include/types.h new file mode 100644 index 0000000..8b11ee1 --- /dev/null +++ b/include/types.h @@ -0,0 +1,76 @@ + +/* + * Type declarations + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Fixed size quantities + */ + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; +typedef unsigned long long u64; + +#if defined(__LP64__) || defined(__alpha__) || defined(__ia64__) || \ + defined(__mips64__) || defined(__powerpc64__) || defined(__s390x__) || \ + defined(__sparc64__) || defined(__x86_64__) +#define BITS_PER_LONG 64 +#define BYTES_PER_LONG 8 +#define SHIFT_PER_LONG 6 +#elif defined(__LP32__) || defined(__arm__) || defined(__cris__) || \ + defined(__i386__) || defined(__mc68000__) || defined(__mips__) || \ + defined(__parisc__) || defined(__powerpc__) || defined(__s390__) || \ + defined(__sh__) || defined(__sparc__) +#define BITS_PER_LONG 32 +#define BYTES_PER_LONG 4 +#define SHIFT_PER_LONG 5 +#else +#error Please add your architecture +#endif + + + /* + * Pixel value (dependent on the visual) + */ + +typedef u32 pixel_t; + + + /* + * RGBA color quartet + */ + +typedef struct { + int r; + int g; + int b; + int a; +} rgba_t; + + + /* + * YUVA color quartet + */ + +typedef struct { + int y; + int u; + int v; + int a; +} yuva_t; + + + /* + * NULL pointer + */ + +#define NULL ((void *)0) + diff --git a/include/util.h b/include/util.h new file mode 100644 index 0000000..1c44128 --- /dev/null +++ b/include/util.h @@ -0,0 +1,97 @@ + +/* + * Utility definitions and routines + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * ANSI text control + */ + +#define TXT_BLACK "\e[30m" +#define TXT_RED "\e[31m" +#define TXT_GREEN "\e[32m" +#define TXT_YELLOW "\e[33m" +#define TXT_BLUE "\e[33m" +#define TXT_PURPLE "\e[35m" +#define TXT_CYAN "\e[36m" +#define TXT_WHITE "\e[37m" + +#define TXT_NORMAL "\e[0m" +#define TXT_BOLD "\e[1m" +#define TXT_UNDERLINE "\e[4m" +#define TXT_INVERSE "\e[7m" + + + /* + * Messages + */ + +extern void Message(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); +extern void Warning(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); +extern void Error(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); +extern void Fatal(const char *fmt, ...) + __attribute__ ((noreturn)) __attribute ((format (printf, 1, 2))); +extern void Debug(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); + + + /* + * Minimum and maximum + */ + +#undef min +#define min(a, b) \ + ( { \ + typeof(a) _a = (a); \ + typeof(a) _b = (b); \ + _a < _b ? _a : _b; \ + } ) + +#undef max +#define max(a, b) \ + ( { \ + typeof(a) _a = (a); \ + typeof(a) _b = (b); \ + _a > _b ? _a : _b; \ + } ) + + + /* + * Wait + */ + +extern void wait_for_key(int timeout); +extern void wait_ms(int ms); + + + /* + * Number range conversion + */ + +#define CONVERT_RANGE(n, oldmaxval, newmaxval) \ + (((n)*(newmaxval)+((oldmaxval)/2))/(oldmaxval)) + +#define EXPAND_TO_16BIT(n, maxval) CONVERT_RANGE(n, maxval, 65535) +#define COMPRESS_FROM_16BIT(n, maxval) CONVERT_RANGE(n, 65535, maxval) + + + /* + * Command line options + */ + +extern const char *Opt_Fbdev; +extern int Opt_Debug; +extern int Opt_List; +extern int Opt_Quiet; +extern int Opt_Verbose; + diff --git a/include/visops.h b/include/visops.h new file mode 100644 index 0000000..dbd860e --- /dev/null +++ b/include/visops.h @@ -0,0 +1,63 @@ + +/* + * Visual operations + * + * These operations control the interpretation of pixel values + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Visual operations + */ + +struct visops { + const char *name; + int (*init)(void); + void (*cleanup)(void); + int (*set_visual)(enum visual_id id); + /* For PseudoColor and DirectColor */ + void (*update_cmap)(void); + /* Generic mode */ + pixel_t (*match_color)(const rgba_t *color, rgba_t *error); +}; + +extern struct visops visops; + + + /* + * Fbdev visuals + */ + +extern const struct visops mono_visops; +extern const struct visops grayscale_visops; +extern const struct visops ham_visops; +extern const struct visops pseudocolor_visops; +extern const struct visops truecolor_visops; +extern const struct visops directcolor_visops; + + + /* + * Initialization + */ + +extern void visops_init(void); + + + /* + * Internal routines + */ + +extern pixel_t *create_component_table(u32 size, u32 offset, int msb_right, + u32 bpp); +extern void pseudocolor_create_tables(u32 bpp); +extern pixel_t pseudocolor_match_color(const rgba_t *color, rgba_t *error); +extern int pseudocolor_set_visual(enum visual_id id); +extern void truecolor_create_tables(void); +extern pixel_t truecolor_match_color(const rgba_t *color, rgba_t *error); + diff --git a/include/visual.h b/include/visual.h new file mode 100644 index 0000000..eecc04d --- /dev/null +++ b/include/visual.h @@ -0,0 +1,100 @@ + +/* + * Visual control + * + * Available visuals + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + + + /* + * Supported visuals + */ + +enum visual_id { + VISUAL_NONE = 0, + VISUAL_GENERIC, + VISUAL_MONO, + VISUAL_PSEUDOCOLOR, + VISUAL_GRAYSCALE, + VISUAL_TRUECOLOR, + VISUAL_DIRECTCOLOR +}; + + + /* + * Set the visual + */ + +extern int visual_set(enum visual_id id); + + + /* + * Generic mode + */ + +#define match_color(color) \ + visops.match_color((color), NULL) +#define match_color_error(color, error) \ + visops.match_color((color), (error) + + + /* + * Monochrome + */ + +extern pixel_t black_pixel, white_pixel; + + + /* + * Grayscale + */ + +extern u32 gray_len, gray_bits; +extern const pixel_t *gray_pixel; + + + /* + * Pseudocolor CLUT + */ + +extern u32 idx_len, idx_bits; +extern const pixel_t *idx_pixel; +extern rgba_t *clut; + +extern void clut_update(void); + + + /* + * RGB(A) for Truecolor + */ + +extern u32 red_len, green_len, blue_len, alpha_len; +extern u32 red_bits, green_bits, blue_bits, alpha_bits; +extern const pixel_t *red_pixel, *green_pixel, *blue_pixel, *alpha_pixel; + +#define rgba_pixel(r, g, b, a) \ + (red_pixel[(r)] | green_pixel[(g)] | blue_pixel[(b)] | \ + (alpha_pixel ? alpha_pixel[(a)] : 0)) +#define rgb_pixel(r, g, b) \ + rgba_pixel((r), (g), (b), alpha_len-1) + + + /* + * Directcolor + * + * This mode uses a mix from Truecolor and Pseudocolor + * - red_len, green_len, blue_len, alpha_len + * - red_bits, green_bits, blue_bits, alpha_bits + * - red_pixel, green_pixel, blue_pixel, alpha_pixel + * - rgb_pixel + * - rgba_pixel + * - clut + * - clut_update + */ + @@ -0,0 +1,147 @@ + +/* + * Frame buffer device test suite + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "types.h" +#include "util.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "visops.h" +#include "test.h" + +#define DEFAULT_FBDEV "/dev/fb0" + + +const char *ProgramName; + +const char *Opt_Fbdev = DEFAULT_FBDEV; +int Opt_Debug = 0; +int Opt_List = 0; +int Opt_Quiet = 0; +int Opt_Verbose = 0; + + + /* + * Print the usage template + */ + +static void Usage(void) __attribute__ ((noreturn)); + +static void Usage(void) +{ + printf("%s: [options] [test ...]\n\n" + "Valid options are:\n" + " -h, --help Display this usage information\n" + " -f, --fbdev dev Specify frame buffer device (default: %s)\n" + " -d, --debug Enable debug mode\n" + " -l, --list List tests only, don't run them\n" + " -q, --quiet Suppress messages\n" + " -v, --verbose Enable verbose mode\n" + "\n", + ProgramName, DEFAULT_FBDEV); + exit(1); +} + + + /* + * Signal handler + */ + +static void SigHandler(int signo) +{ + signal(signo, SIG_IGN); + Fatal("Caught signal %d. Exiting\n", signo); +} + + + /* + * Main routine + */ + +int main(int argc, char *argv[]) +{ + ProgramName = argv[0]; + + while (argc > 1 && argv[1][0] == '-') { + if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) + Usage(); + else if (!strcmp(argv[1], "-f") || !strcmp(argv[1], "--fbdev")) { + if (argc <= 2) + Usage(); + else { + Opt_Fbdev = argv[2]; + argv += 2; + argc -= 2; + } + } else if (!strcmp(argv[1], "-d") || !strcmp(argv[1], "--debug")) { + Opt_Debug = 1; + argv++; + argc--; + } else if (!strcmp(argv[1], "-l") || !strcmp(argv[1], "--list")) { + Opt_List = 1; + argv++; + argc--; + } else if(!strcmp(argv[1], "-q") || !strcmp(argv[1], "--quiet")) { + Opt_Quiet = 1; + argv++; + argc--; + } else if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--verbose")) { + Opt_Verbose = 1; + argv++; + argc--; + } else + Usage(); + } + + /* + * Install signal handlers + */ + signal(SIGINT, SigHandler); + signal(SIGQUIT, SigHandler); + signal(SIGILL, SigHandler); + signal(SIGFPE, SigHandler); + signal(SIGSEGV, SigHandler); + signal(SIGTERM, SigHandler); + + if (Opt_List) { + if (argc < 2) { + Message("Listing all tests\n"); + test_list(NULL, Opt_Verbose); + } else + while (argc > 1) { + test_list(argv[1], Opt_Verbose); + argc--; + argv++; + } + } else { + fb_init(); + drawops_init(); + visops_init(); + + if (argc < 2) { + Message("Running all tests\n"); + test_run(NULL); + } else + while (argc > 1) { + test_run(argv[1]); + argc--; + argv++; + } + fb_cleanup(); + } + exit(0); +} + diff --git a/pixmap.c b/pixmap.c new file mode 100644 index 0000000..8cd21a6 --- /dev/null +++ b/pixmap.c @@ -0,0 +1,150 @@ + +/* + * Pixmap manipulation + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "clut.h" +#include "image.h" +#include "pixmap.h" +#include "visual.h" +#include "visops.h" +#include "util.h" + + +static void image_bw_to_pixmap(const struct image *image, pixel_t *pixmap); +static void image_lut256_to_pixmap(const struct image *image, pixel_t *pixmap); +static void image_rgb888_to_pixmap(const struct image *image, pixel_t *pixmap); + + + /* + * Convert an image to a pixmap + */ + +pixel_t *create_pixmap(const struct image *image) +{ + pixel_t *pixmap; + + pixmap = malloc(image->width*image->height*sizeof(pixel_t)); + if (!pixmap) + Fatal("Not enough memory\n"); + switch (image->type) { + case IMAGE_BW: + image_bw_to_pixmap(image, pixmap); + break; + + case IMAGE_GREY256: + case IMAGE_CLUT256: + image_lut256_to_pixmap(image, pixmap); + break; + + case IMAGE_RGB888: + image_rgb888_to_pixmap(image, pixmap); + break; + + default: + Fatal("Unknown image type %d\n", image->type); + break; + } + return pixmap; +} + + + /* + * Convert a black-and-white image to a pixmap + */ + +static const unsigned char bitmask[8] = { + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +static void image_bw_to_pixmap(const struct image *image, pixel_t *pixmap) +{ + pixel_t black, white; + const unsigned char *src; + pixel_t *dst; + int i, j, k; + + black = match_color(&clut_mono[0]); + white = match_color(&clut_mono[1]); + + src = image->data; + dst = pixmap; + for (i = 0; i < image->height; i++) { + for (j = 0, k = 0; j < image->width; j++, k = (k+1) & 7) { + *dst++ = (*src & bitmask[k]) ? white : black; + if (k == 7) + src++; + } + if (k) + src++; + } +} + + + /* + * Convert a GREY256/CLUT256 image to a pixmap + */ + +static pixel_t lut[256]; + +static void image_lut256_to_pixmap(const struct image *image, pixel_t *pixmap) +{ + rgba_t color; + const unsigned char *src; + pixel_t *dst; + int i; + + color.a = 65535; + if (image->type == IMAGE_GREY256) { + for (i = 0; i < 256; i++) { + color.r = color.g = color.b = EXPAND_TO_16BIT(i, 255); + lut[i] = match_color(&color); + } + } else { + src = image->clut; + for (i = 0; i < image->clut_len; i++) { + color.r = EXPAND_TO_16BIT(*src++, 255); + color.g = EXPAND_TO_16BIT(*src++, 255); + color.b = EXPAND_TO_16BIT(*src++, 255); + lut[i] = match_color(&color); + } + } + + src = image->data; + dst = pixmap; + for (i = 0; i < image->width*image->height; i++) + *dst++ = lut[*src++]; +} + + + /* + * Convert an RGB888 image to a pixmap + */ + +static void image_rgb888_to_pixmap(const struct image *image, pixel_t *pixmap) +{ + const unsigned char *src; + pixel_t *dst; + rgba_t color; + int i; + + src = image->data; + dst = pixmap; + color.a = 65535; + for (i = 0; i < image->width*image->height; i++) { + color.r = EXPAND_TO_16BIT(*src++, 255); + color.g = EXPAND_TO_16BIT(*src++, 255); + color.b = EXPAND_TO_16BIT(*src++, 255); + *dst++ = match_color(&color); + } +} + diff --git a/pnmtohex/Makefile b/pnmtohex/Makefile new file mode 100644 index 0000000..c5e2878 --- /dev/null +++ b/pnmtohex/Makefile @@ -0,0 +1,9 @@ + +TOPDIR = .. + +HOST_TARGET = pnmtohex + +LIBS += -lnetpnm -lnetpbm -lnetpgm -lnetppm + +include $(TOPDIR)/Rules.make + diff --git a/pnmtohex/pnmtohex.c b/pnmtohex/pnmtohex.c new file mode 100644 index 0000000..8b2975d --- /dev/null +++ b/pnmtohex/pnmtohex.c @@ -0,0 +1,286 @@ + +/* + * Convert a PNM image to a hexadecimal stream suitable for inclusion in + * C-source + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <pnm.h> + +#include "image.h" + + +static pixel clut[256]; + +static void normalize_ppm(xel **pnm, int cols, int rows, int maxval) +{ + int i, j; + + for (i = 0 ; i < rows; i++) + for (j = 0; j < cols; j++) + PPM_DEPTH(pnm[i][j], pnm[i][j], maxval, 255); +} + +static int fill_clut(xel **pnm, int cols, int rows) +{ + int clut_len = 0; + int i, j, k; + + for (i = 0 ; i < rows; i++) + for (j = 0; j < cols; j++) { + for (k = 0; k < clut_len; k++) + if (PPM_EQUAL(pnm[i][j], clut[k])) + break; + if (k == clut_len) { + if (clut_len == 256) + return 257; + PPM_ASSIGN(clut[clut_len], PPM_GETR(pnm[i][j]), + PPM_GETG(pnm[i][j]), PPM_GETB(pnm[i][j])); + clut_len++; + } + } + return clut_len; +} + +static void print_clut256_data(xel **pnm, int cols, int rows, int clut_len) +{ + int i, j, k, l; + + for (i = 0, k = 0; i < rows; i++) + for (j = 0; j < cols; j++, k = (k+1) % 12) { + if (k == 0) + printf(" "); + for (l = 0; l < clut_len; l++) + if (PPM_EQUAL(pnm[i][j], clut[l])) + break; + printf(" 0x%02x,", l); + if (k == 11) + putchar('\n'); + } + if (k != 0) + putchar('\n'); +} + +static void print_rgb888_data(xel **pnm, int cols, int rows) +{ + int i, j, k; + + for (i = 0, k = 0; i < rows; i++) + for (j = 0; j < cols; j++, k = (k+1) % 4) { + if (k == 0) + printf(" "); + printf(" 0x%02x, 0x%02x, 0x%02x,", PPM_GETR(pnm[i][j]), + PPM_GETG(pnm[i][j]), PPM_GETB(pnm[i][j])); + if (k == 3) + putchar('\n'); + } + if (k != 0) + putchar('\n'); +} + +static void print_grey256_data(xel **pnm, int cols, int rows, int maxval) +{ + int i, j, k; + + for (i = 0, k = 0; i < rows; i++) + for (j = 0; j < cols; j++, k = (k+1) % 12) { + if (k == 0) + printf(" "); + printf(" 0x%02x,", PNM_GET1(pnm[i][j])*(255+maxval/2)/maxval); + if (k == 11) + putchar('\n'); + } + if (k != 0) + putchar('\n'); +} + +static const unsigned char bitmask[8] = { + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +static void print_bw_data(xel **pnm, int cols, int rows) +{ + int i, j, k, l; + unsigned char data; + + for (i = 0, k = 0, l = 0, data = 0; i < rows; i++) { + for (j = 0; j < cols; j++, l = (l+1) % 8) { + if (PNM_GET1(pnm[i][j])) + data |= bitmask[l]; + if (l == 7) { + if (k == 0) + printf(" "); + printf(" 0x%02x, ", data); + if (k == 11) + putchar('\n'); + k = (k+1) % 12; + data = 0; + } + } + if (l != 0) { + if (k == 0) + printf(" "); + printf(" 0x%02x, ", data); + if (k == 11) + putchar('\n'); + k = (k+1) % 12; + data = 0; + } + } + if (k != 0) + putchar('\n'); +} + +static void print_image_clut(int clut_len) +{ + int i, j; + + for (i = 0, j = 0; i < clut_len; i++, j = (j+1) % 4) { + if (j == 0) + printf(" "); + printf(" 0x%02x, 0x%02x, 0x%02x,", PPM_GETR(clut[i]), + PPM_GETG(clut[i]), PPM_GETB(clut[i])); + if (j == 3) + putchar('\n'); + } + if (j != 0) + putchar('\n'); +} + +static void convert_image(const char *filename, const char *name) +{ + FILE *fp; + xel **pnm; + xelval maxval; + int cols, rows, fmt, clut_len = 0, size; + const char *type; + + // Load the image + if (!strcmp(filename, "-")) + fp = stdin; + else { + fp = fopen(filename, "r"); + if (!fp) { + fprintf(stderr, "Cannot open file %s: %s\n", filename, + strerror(errno)); + exit(1); + } + } + pnm = pnm_readpnm(fp, &cols, &rows, &maxval, &fmt); + if (!pnm) { + fprintf(stderr, "Error reading PNM file: %s\n", strerror(errno)); + exit(1); + } + + switch (PNM_FORMAT_TYPE(fmt)) { + case PPM_TYPE: + normalize_ppm(pnm, cols, rows, maxval); + clut_len = fill_clut(pnm, cols, rows); + if (clut_len > 0 && clut_len <= 256) { + type = "CLUT256"; + size = cols*rows; + } else { + type = "RGB888"; + size = cols*rows*3; + } + break; + + case PGM_TYPE: + type = "GREY256"; + size = cols*rows; + break; + + case PBM_TYPE: + type = "BW"; + size = (cols+7)/8*rows; + break; + + default: + fprintf(stderr, "Unknown PNM format %d\n", PNM_FORMAT_TYPE(fmt)); + exit(1); + } + + // Print header + printf(" /*\n"); + printf(" * Image %s\n", name); + printf(" */\n\n"); + printf("#include \"image.h\"\n\n"); + + // Print forward declarations + printf("static const unsigned char %s_data[];\n", name); + if (clut_len > 0 && clut_len <= 256) + printf("static const unsigned char %s_clut[];\n", name); + printf("\n"); + + // Print image structure + printf("const struct image %s = {\n", name); + printf(" width:\t%d,\n", cols); + printf(" height:\t%d,\n", rows); + printf(" type:\tIMAGE_%s,\n", type); + printf(" data:\t%s_data,\n", name); + if (clut_len > 0 && clut_len <= 256) { + printf(" clut_len:\t%d,\n", clut_len); + printf(" clut:\t%s_clut\n", name); + } + printf("};\n\n"); + + // Print image data + printf("static const unsigned char %s_data[%d] = {\n", name, size); + switch (PNM_FORMAT_TYPE(fmt)) { + case PPM_TYPE: + if (clut_len > 0 && clut_len <= 256) + print_clut256_data(pnm, cols, rows, clut_len); + else + print_rgb888_data(pnm, cols, rows); + break; + + case PGM_TYPE: + print_grey256_data(pnm, cols, rows, maxval); + break; + + case PBM_TYPE: + print_bw_data(pnm, cols, rows); + break; + } + printf("};\n\n"); + + // Print image clut + if (clut_len > 0 && clut_len <= 256) { + printf("static const unsigned char %s_clut[%d] = {\n", name, + clut_len*3); + print_image_clut(clut_len); + printf("};\n\n"); + } + + // Free temporary data + ppm_freearray(pnm, rows); +} + + +int main(int argc, char *argv[]) +{ + pnm_init(&argc, argv); + + if (argc < 3 || !(argc % 2)) { + fprintf(stderr, "Usage: %s <filename> <name> ...\n", argv[0]); + exit(1); + } + + while (argc >= 2) { + convert_image(argv[1], argv[2]); + argv += 2; + argc -= 2; + } + + exit(0); +} + @@ -0,0 +1,122 @@ + +/* + * Run some tests + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdio.h> +#include <string.h> + +#include "types.h" +#include "fb.h" +#include "visual.h" +#include "test.h" +#include "util.h" + + +static const struct test *all_tests[] = { + &test001, + &test002, + &test003, + &test004, + &test005, + &test006, + &test007, + &test008, + &test009, + &test010, + NULL +}; + + + /* + * Run one test + */ + +#define TEST_REQ_MIN(reqname, varname) \ + if (test->reqs & REQF_ ## reqname) { \ + if (varname < test->reqname) { \ + Debug("Requirement " #reqname " >= %d not met\n", \ + test->reqname); \ + return; \ + } \ + } + +static void run_one_test(const struct test *test) +{ + enum test_res res; + + Debug("Running test %s\n", test->name); + + if (test->visual != VISUAL_NONE && !visual_set(test->visual)) { + Debug("Visual %d not supported\n", test->visual); + return; + } + + TEST_REQ_MIN(bits_per_pixel, fb_var.bits_per_pixel); + TEST_REQ_MIN(num_colors, idx_len); + TEST_REQ_MIN(red_length, fb_var.red.length); + TEST_REQ_MIN(green_length, fb_var.green.length); + TEST_REQ_MIN(blue_length, fb_var.blue.length); + TEST_REQ_MIN(transp_length, fb_var.transp.length); + TEST_REQ_MIN(xres, fb_var.xres); + TEST_REQ_MIN(yres, fb_var.yres); + + res = test->func(); + switch (res) { + case TEST_OK: + Message("%s: PASSED\n", test->name); + break; + + case TEST_FAIL: + Error("%s: FAILED\n", test->name); + break; + + case TEST_NA: + Debug("Not applicable\n"); + break; + + default: + Fatal("%s returned unknown code %d\n", test->name, res); + break; + } +} + +#undef TEST_REQ_MIN + + + /* + * Test run + */ + +void test_run(const char *name) +{ + int i; + + for (i = 0; all_tests[i]; i++) + if (!name || !strcmp(all_tests[i]->name, name)) + run_one_test(all_tests[i]); +} + + + /* + * List all tests + */ + +void test_list(const char *name, int verbose) +{ + int i; + const struct test *test; + + for (i = 0; all_tests[i]; i++) + if (!name || !strcmp(all_tests[i]->name, name)) { + test = all_tests[i]; + printf("%s: %s\n", test->name, test->desc); + } +} + diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..ede58bd --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,7 @@ + +TOPDIR = .. + +O_TARGET = tests.o + +include $(TOPDIR)/Rules.make + diff --git a/tests/test001.c b/tests/test001.c new file mode 100644 index 0000000..0f215f6 --- /dev/null +++ b/tests/test001.c @@ -0,0 +1,48 @@ + +/* + * Test001 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "util.h" + +#define X_BLOCKS 16 +#define Y_BLOCKS 12 + +static enum test_res test001_func(void) +{ + int i, j; + pixel_t pixel; + u32 x0, y0, x1, y1; + + for (i = 1, y0 = 0; i <= Y_BLOCKS; i++, y0 = y1) { + y1 = i*fb_var.yres/Y_BLOCKS; + for (j = 1, x0 = 0; j <= X_BLOCKS; j++, x0 = x1) { + pixel = (i+j) & 1 ? white_pixel : black_pixel; + x1 = j*fb_var.xres/X_BLOCKS; + fill_rect(x0, y0, x1-x0, y1-y0, pixel); + } + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test001 = { + .name = "test001", + .desc = "Draw a 16x12 checkerboard pattern", + .visual = VISUAL_MONO, + .func = test001_func, +}; + diff --git a/tests/test002.c b/tests/test002.c new file mode 100644 index 0000000..8f7cab0 --- /dev/null +++ b/tests/test002.c @@ -0,0 +1,56 @@ + +/* + * Test002 + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "util.h" + +#define X_BLOCKS 16 +#define Y_BLOCKS 12 + +static enum test_res test002_func(void) +{ + int i; + u32 a, b, x1, x2, y1, y2; + + fill_rect(0, 0, fb_var.xres, fb_var.yres, black_pixel); + for (i = 0; i <= Y_BLOCKS; i++) + draw_hline(0, i*(fb_var.yres-1)/Y_BLOCKS, fb_var.xres, white_pixel); + for (i = 0; i <= X_BLOCKS; i++) + draw_vline(i*(fb_var.xres-1)/X_BLOCKS, 0, fb_var.yres, white_pixel); + draw_ellipse(fb_var.xres/2, fb_var.yres/2, 3*fb_var.xres/8, + fb_var.yres/2-1, white_pixel); + a = (fb_var.xres-1)/X_BLOCKS; + b = (fb_var.yres-1)/Y_BLOCKS; + x1 = (fb_var.xres-1)/X_BLOCKS; + y1 = (fb_var.yres-1)/Y_BLOCKS; + x2 = (X_BLOCKS-1)*(fb_var.xres-1)/X_BLOCKS; + y2 = (Y_BLOCKS-1)*(fb_var.yres-1)/Y_BLOCKS; + draw_ellipse(x1, y1, a, b, white_pixel); + draw_ellipse(x2, y1, a, b, white_pixel); + draw_ellipse(x1, y2, a, b, white_pixel); + draw_ellipse(x2, y2, a, b, white_pixel); + wait_for_key(10); + return TEST_OK; +} + +const struct test test002 = { + .name = "test002", + .desc = "Draw a grid and some circles", + .visual = VISUAL_MONO, + .func = test002_func, +}; + diff --git a/tests/test003.c b/tests/test003.c new file mode 100644 index 0000000..66bfa3f --- /dev/null +++ b/tests/test003.c @@ -0,0 +1,48 @@ + +/* + * Test003 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "clut.h" +#include "util.h" + +static enum test_res test003_func(void) +{ + int i; + pixel_t pixel; + u32 x0, x1; + + for (i = 0; i < 16; i++) + clut[i] = clut_console[i]; + clut_update(); + for (i = 1, x0 = 0; i <= 16; i++, x0 = x1) { + pixel = idx_pixel[i]; + x1 = i*fb_var.xres/16; + fill_rect(x0, 0, x1-x0, fb_var.yres, pixel); + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test003 = { + .name = "test003", + .desc = "Draw the 16 Linux console colors", + .visual = VISUAL_PSEUDOCOLOR, + .reqs = REQF_num_colors, + .num_colors = 16, + .func = test003_func, +}; + diff --git a/tests/test004.c b/tests/test004.c new file mode 100644 index 0000000..9b1e79e --- /dev/null +++ b/tests/test004.c @@ -0,0 +1,57 @@ + +/* + * Test004 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "color.h" +#include "drawops.h" +#include "image.h" +#include "pixmap.h" +#include "visual.h" +#include "visops.h" +#include "test.h" +#include "util.h" + + +static enum test_res test004_func(void) +{ + const struct image *image; + pixel_t *pixmap; + int x, y, width, height, i; + + image = &penguin; + pixmap = create_pixmap(image); + + fill_rect(0, 0, fb_var.xres, fb_var.yres, match_color(&c_black)); + for (y = 0; y < fb_var.yres; y += image->height) { + height = min(image->height, fb_var.yres-y); + for (x = 0; x < fb_var.xres; x += image->width) { + width = min(image->width, fb_var.xres-x); + if (width == image->width) + draw_pixmap(x, y, image->width, height, pixmap); + else + for (i = 0; i < height; i++) + draw_pixmap(x, y+i, width, 1, pixmap+i*image->width); + } + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test004 = { + .name = "test004", + .desc = "Show the penguins", + .visual = VISUAL_GENERIC, + .func = test004_func, +}; + diff --git a/tests/test005.c b/tests/test005.c new file mode 100644 index 0000000..f806208 --- /dev/null +++ b/tests/test005.c @@ -0,0 +1,52 @@ + +/* + * Test005 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "clut.h" +#include "util.h" + +static enum test_res test005_func(void) +{ + int i, j; + pixel_t pixel; + u32 x0, y0, x1, y1; + int x_bits, y_bits, x_blocks, y_blocks; + + clut_init_nice(); + y_bits = idx_bits/2; + x_bits = idx_bits-y_bits; + x_blocks = 1<<x_bits; + y_blocks = 1<<y_bits; + for (i = 1, y0 = 0; i <= y_blocks; i++, y0 = y1) { + y1 = i*fb_var.yres/y_blocks; + for (j = 1, x0 = 0; j <= x_blocks; j++, x0 = x1) { + pixel = idx_pixel[(i-1)*x_blocks+(j-1)]; + x1 = j*fb_var.xres/x_blocks; + fill_rect(x0, y0, x1-x0, y1-y0, pixel); + } + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test005 = { + .name = "test005", + .desc = "Draw the default color palette", + .visual = VISUAL_PSEUDOCOLOR, + .func = test005_func, +}; + diff --git a/tests/test006.c b/tests/test006.c new file mode 100644 index 0000000..20ba909 --- /dev/null +++ b/tests/test006.c @@ -0,0 +1,49 @@ + +/* + * Test006 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "clut.h" +#include "util.h" + +#define Y_BLOCKS 16 + +static enum test_res test006_func(void) +{ + int i, j; + pixel_t pixels[2]; + u32 x0, x1, y0, y1; + + for (i = 1, x0 = 0; i <= gray_len; i++, x0 = x1) { + pixels[0] = gray_pixel[i-1]; + pixels[1] = gray_pixel[gray_len-i]; + x1 = i*fb_var.xres/gray_len; + for (j = 1, y0 = 0; j <= Y_BLOCKS; j++, y0 = y1) { + y1 = j*fb_var.yres/Y_BLOCKS; + fill_rect(x0, y0, x1-x0, y1-y0, pixels[j & 1]); + } + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test006 = { + .name = "test006", + .desc = "Draw grayscale bands", + .visual = VISUAL_GRAYSCALE, + .func = test006_func, +}; + diff --git a/tests/test007.c b/tests/test007.c new file mode 100644 index 0000000..d6e7864 --- /dev/null +++ b/tests/test007.c @@ -0,0 +1,88 @@ + +/* + * Test007 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "test.h" +#include "util.h" + +static void draw_grid(int x_blocks, int y_blocks, const pixel_t *x_table, + const pixel_t *y_table) +{ + int i, j; + pixel_t pixel; + u32 x0, y0, x1, y1; + + for (i = 1, y0 = 0; i <= y_blocks; i++, y0 = y1) { + y1 = i*fb_var.yres/y_blocks; + for (j = 1, x0 = 0; j <= x_blocks; j++, x0 = x1) { + pixel = x_table[j-1] | y_table[i-1]; + x1 = j*fb_var.xres/x_blocks; + fill_rect(x0, y0, x1-x0, y1-y0, pixel); + } + } +} + +static void increase_level(int *component) +{ + int i; + + for (i = 0 ; i < 0x10100; i += 0x101) { + wait_ms(20); + *component = i; + clut_update(); + } + wait_for_key(10); + *component = 0; + clut_update(); +} + +static enum test_res test007_func(void) +{ + int i; + + fill_rect(0, 0, fb_var.xres, fb_var.yres, black_pixel); + for (i = 0; i < red_len; i++) + clut[i].r = EXPAND_TO_16BIT(i, red_len-1); + for (i = 0; i < green_len; i++) + clut[i].g = EXPAND_TO_16BIT(i, green_len-1); + for (i = 0; i < blue_len; i++) + clut[i].b = EXPAND_TO_16BIT(i, blue_len-1); + for (i = 0; i < alpha_len; i++) + clut[i].a = 65535; + clut_update(); + + Message("Red and green, increasing blue level\n"); + draw_grid(red_len, green_len, red_pixel, green_pixel); + increase_level(&clut[0].b); + + Message("Green and blue, increasing red level\n"); + draw_grid(green_len, blue_len, green_pixel, blue_pixel); + increase_level(&clut[0].r); + + Message("Blue and red, increasing green level\n"); + draw_grid(blue_len, red_len, blue_pixel, red_pixel); + increase_level(&clut[0].g); + + return TEST_OK; +} + +const struct test test007 = { + .name = "test007", + .desc = "DirectColor test", + .visual = VISUAL_DIRECTCOLOR, + .func = test007_func, +}; + diff --git a/tests/test008.c b/tests/test008.c new file mode 100644 index 0000000..cb1506c --- /dev/null +++ b/tests/test008.c @@ -0,0 +1,57 @@ + +/* + * Test008 + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "drawops.h" +#include "visual.h" +#include "visops.h" +#include "color.h" +#include "test.h" +#include "util.h" + +#define X_BLOCKS 256 +#define Y_BLOCKS 256 + +static enum test_res test008_func(void) +{ + int i, j; + yuva_t yuva; + rgba_t rgba; + pixel_t pixel; + u32 x0, y0, x1, y1; + + yuva.y = 0xa000; + yuva.a = 0xffff; + for (i = 1, y0 = 0; i <= Y_BLOCKS; i++, y0 = y1) { + y1 = i*fb_var.yres/Y_BLOCKS; + for (j = 1, x0 = 0; j <= X_BLOCKS; j++, x0 = x1) { + yuva.u = EXPAND_TO_16BIT((i-1), Y_BLOCKS-1); + yuva.v = EXPAND_TO_16BIT((j-1), X_BLOCKS-1); + yuva_to_rgba(&yuva, &rgba); + pixel = match_color(&rgba); + x1 = j*fb_var.xres/X_BLOCKS; + fill_rect(x0, y0, x1-x0, y1-y0, pixel); + } + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test008 = { + .name = "test008", + .desc = "Draw the UV color space", + .visual = VISUAL_TRUECOLOR, + .func = test008_func, +}; + diff --git a/tests/test009.c b/tests/test009.c new file mode 100644 index 0000000..4f36950 --- /dev/null +++ b/tests/test009.c @@ -0,0 +1,63 @@ + +/* + * Test009 + * + * (C) Copyright 2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "color.h" +#include "drawops.h" +#include "image.h" +#include "pixmap.h" +#include "visual.h" +#include "visops.h" +#include "test.h" +#include "util.h" + + +static enum test_res test009_func(void) +{ + const struct image *image; + pixel_t *pixmap; + int x, y, width, height; + + image = &penguin; + pixmap = create_pixmap(image); + width = image->width; + height = image->height; + if (width > fb_var.xres || height > fb_var.yres) { + Message("Screen size too small for this test\n"); + return TEST_NA; + } + + fill_rect(0, 0, fb_var.xres, fb_var.yres, match_color(&c_black)); + draw_pixmap(0, 0, width, height, pixmap); + wait_ms(1000); + for (x = width; x < fb_var.xres; x += width) { + copy_rect(x, 0, min(width, fb_var.xres-x), height, 0, 0); + wait_ms(20); + } + wait_ms(1000); + for (y = height; y < fb_var.yres; y += height) { + copy_rect(0, y, fb_var.xres, min(height, fb_var.yres-y), 0, 0); + wait_ms(20); + } + wait_for_key(10); + return TEST_OK; +} + +const struct test test009 = { + .name = "test009", + .desc = "Show the penguins using copy_rect", + .visual = VISUAL_GENERIC, + .func = test009_func, +}; + diff --git a/tests/test010.c b/tests/test010.c new file mode 100644 index 0000000..c6e9ed9 --- /dev/null +++ b/tests/test010.c @@ -0,0 +1,50 @@ + +/* + * Test010 + * + * (C) Copyright 2002-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "font.h" +#include "console.h" +#include "visual.h" +#include "test.h" +#include "util.h" + +#define FONT sun12x22 + + +static enum test_res test010_func(void) +{ + int i, j; + + con_init(&FONT); + con_puts("Hello, world!\n"); + for (i = 0; i < fb_var.yres/FONT.height+10; i++) { + for (j = 0; j < i; j++) + con_putc(' '); + con_printf("The quick brown fox jumps over the lazy dog\n"); + } + for (i = 32; i < 256; i++) + con_putc(i); + wait_for_key(10); + return TEST_OK; +} + +const struct test test010 = { + .name = "test010", + .desc = "Hello world", + .visual = VISUAL_PSEUDOCOLOR, + .reqs = REQF_num_colors, + .num_colors = 16, + .func = test010_func, +}; + @@ -0,0 +1,142 @@ + +/* + * Utility routines + * + * (C) Copyright 2001-2003 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <unistd.h> + +#include "types.h" +#include "fb.h" +#include "util.h" + + +#define TXT_MESSAGE TXT_GREEN +#define TXT_WARNING TXT_YELLOW +#define TXT_ERROR TXT_RED +#define TXT_DEBUG TXT_BLUE +#define TXT_FATAL TXT_RED + + + /* + * Print a prefixed message + */ + +static void PrintMessage(const char *prefix, const char *fmt, va_list ap) +{ + fflush(stdout); + fputs(prefix, stderr); + vfprintf(stderr, fmt, ap); + fputs(TXT_NORMAL, stderr); +} + + + /* + * Print a message + */ + +void Message(const char *fmt, ...) +{ + va_list ap; + + if (!Opt_Quiet) { + va_start(ap, fmt); + PrintMessage(TXT_MESSAGE, fmt, ap); + va_end(ap); + } +} + + + /* + * Print a warning message + */ + +void Warning(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + PrintMessage(TXT_WARNING, fmt, ap); + va_end(ap); +} + + + /* + * Print an error message + */ + +void Error(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + PrintMessage(TXT_ERROR, fmt, ap); + va_end(ap); +} + + + /* + * Print a debug message + */ + +void Debug(const char *fmt, ...) +{ + va_list ap; + + if (Opt_Debug) { + va_start(ap, fmt); + PrintMessage(TXT_DEBUG, fmt, ap); + va_end(ap); + } +} + + + /* + * Print a fatal error message + */ + +void Fatal(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + PrintMessage(TXT_FATAL, fmt, ap); + va_end(ap); + fb_cleanup(); + exit(1); +} + + + /* + * Wait for a keypress + */ + +void wait_for_key(int timeout) +{ + /* FIXME: no keypress handling yet */ + sleep(2); +} + + + /* + * Wait some milliseconds + */ + +void wait_ms(int ms) +{ + struct timespec req; + + req.tv_sec = ms/1000; + req.tv_nsec = (ms % 1000)*1000000; + nanosleep(&req, NULL); +} + diff --git a/visops/Makefile b/visops/Makefile new file mode 100644 index 0000000..8099815 --- /dev/null +++ b/visops/Makefile @@ -0,0 +1,7 @@ + +TOPDIR = .. + +O_TARGET = visops.o + +include $(TOPDIR)/Rules.make + diff --git a/visops/directcolor.c b/visops/directcolor.c new file mode 100644 index 0000000..878befe --- /dev/null +++ b/visops/directcolor.c @@ -0,0 +1,168 @@ + +/* + * Visual operations for a directcolor fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "color.h" +#include "clut.h" +#include "util.h" + + +static u32 cmap_len; + +static void directcolor_update_cmap(void); + + + /* + * Initialisation + */ + +static int directcolor_init(void) +{ + u32 minbflen, maxbflen, i; + pixel_t *table; + pixel_t pixel; + + if (fb_fix.visual != FB_VISUAL_DIRECTCOLOR || fb_var.grayscale) + return 0; + + /* Truecolor */ + truecolor_create_tables(); + + /* Pseudocolor */ + minbflen = min(min(fb_var.red.length, fb_var.green.length), + fb_var.blue.length); + maxbflen = max(max(fb_var.red.length, fb_var.green.length), + max(fb_var.blue.length, fb_var.transp.length)); + idx_bits = minbflen; + idx_len = 1<<idx_bits; + table = malloc(idx_len*sizeof(pixel_t)); + for (i = 0; i < idx_len; i++) { + pixel = rgb_pixel(i, i, i); + table[i] = pixel; + } + idx_pixel = table; + + /* Grayscale */ + gray_bits = idx_bits; + gray_len = idx_len; + gray_pixel = table; + + /* Monochrome */ + black_pixel = idx_pixel[0]; + white_pixel = idx_pixel[1]; + + /* Directcolor */ + cmap_len = 1<<maxbflen; + clut = malloc(cmap_len*sizeof(rgba_t)); + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + Message(" Pseudocolor %d\n", idx_len); + Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + + return 1; +} + + + /* + * Monochrome + */ + +static void directcolor_set_mono(void) +{ + clut[0].r = clut[0].g = clut[0].b = 0x0000; clut[0].a = 0xffff; + clut[1].r = clut[1].g = clut[1].b = 0xffff; clut[1].a = 0xffff; + directcolor_update_cmap(); +} + + + /* + * Truecolor/Grayscale + */ + +static void directcolor_set_linear(void) +{ + clut_create_linear(clut, idx_len); + directcolor_update_cmap(); +} + + + /* + * Generic + */ + +static int directcolor_set_visual(enum visual_id id) +{ + switch (id) { + case VISUAL_MONO: + directcolor_set_mono(); + break; + + case VISUAL_PSEUDOCOLOR: + case VISUAL_DIRECTCOLOR: + break; + + case VISUAL_GENERIC: + case VISUAL_GRAYSCALE: + case VISUAL_TRUECOLOR: + directcolor_set_linear(); + break; + + default: + return 0; + } + return 1; +} + + + /* + * Set the colormap from the CLUT + */ + +static void directcolor_update_cmap(void) +{ + u32 i; + + for (i = 0; i < cmap_len; i++) { + if (i < red_len) + fb_cmap.red[i] = clut[i].r; + if (i < green_len) + fb_cmap.green[i] = clut[i].g; + if (i < blue_len) + fb_cmap.blue[i] = clut[i].b; + if (fb_cmap.transp && i < alpha_len) + fb_cmap.transp[i] = clut[i].a; + } + fb_set_cmap(); +} + + + /* + * Operations + */ + +const struct visops directcolor_visops = { + .name = "directcolor", + .init = directcolor_init, + .set_visual = directcolor_set_visual, + .update_cmap = directcolor_update_cmap, + .match_color = truecolor_match_color, +}; + diff --git a/visops/grayscale.c b/visops/grayscale.c new file mode 100644 index 0000000..6f13e36 --- /dev/null +++ b/visops/grayscale.c @@ -0,0 +1,103 @@ + +/* + * Visual operations for a truecolor fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "color.h" +#include "util.h" + + +void grayscale_create_tables(void) +{ + gray_bits = fb_var.bits_per_pixel; + gray_len = 1<<fb_var.bits_per_pixel; + gray_pixel = create_component_table(gray_len, fb_var.red.offset, + fb_var.red.msb_right, gray_bits); +} + + + /* + * Initialisation + */ + +static int grayscale_init(void) +{ + if (fb_fix.visual != FB_VISUAL_TRUECOLOR || !fb_var.grayscale) + return 0; + + /* Grayscale */ + grayscale_create_tables(); + + /* Monochrome */ + black_pixel = gray_pixel[0]; + white_pixel = gray_pixel[gray_len-1]; + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + + return 1; +} + + + /* + * Set visual + */ + +static int grayscale_set_visual(enum visual_id id) +{ + switch (id) { + case VISUAL_GENERIC: + case VISUAL_MONO: + case VISUAL_GRAYSCALE: + break; + + default: + return 0; + } + return 1; +} + + + /* + * Generic mode + */ + +pixel_t grayscale_match_color(const rgba_t *color, rgba_t *error) +{ + rgba_t approx; + u32 g; + + g = CONVERT_RANGE(color->r+color->g+color->b, 3*65535, gray_len-1); + if (error) { + approx.r = EXPAND_TO_16BIT(g, gray_len-1); + approx.g = EXPAND_TO_16BIT(g, gray_len-1); + approx.b = EXPAND_TO_16BIT(g, gray_len-1); + approx.a = 0xffff; + color_sub(error, color, &approx); + } + return gray_pixel[g]; +} + + + /* + * Operations + */ + +const struct visops grayscale_visops = { + .name = "grayscale", + .init = grayscale_init, + .set_visual = grayscale_set_visual, + .match_color = grayscale_match_color, +}; + diff --git a/visops/ham.c b/visops/ham.c new file mode 100644 index 0000000..691e807 --- /dev/null +++ b/visops/ham.c @@ -0,0 +1,56 @@ + +/* + * Visual operations for an Amiga HAM/HAM8 (Hold And Modify) fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "util.h" + + + /* + * Initialisation + */ + +static int ham_init(void) +{ + if (fb_fix.visual != FB_VISUAL_PSEUDOCOLOR || fb_var.grayscale || + (fb_var.bits_per_pixel != 6 && fb_var.bits_per_pixel != 8) || + fb_var.nonstd != FB_NONSTD_HAM) + return 0; + + /* + * FIXME: for now we don't use the HAM features and treat it just like + * pseudocolor + */ + pseudocolor_create_tables(fb_var.bits_per_pixel-2); + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + Message(" Pseudocolor %d\n", idx_len); + if (idx_len >= 8) { + Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + } + + return 0; +} + +const struct visops ham_visops = { + .name = "Amiga HAM/HAM8", + .init = ham_init, + .set_visual = pseudocolor_set_visual, + .match_color = pseudocolor_match_color, +}; + diff --git a/visops/init.c b/visops/init.c new file mode 100644 index 0000000..4c071b2 --- /dev/null +++ b/visops/init.c @@ -0,0 +1,57 @@ + +/* + * Visual operations + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "util.h" + + + /* + * Supported fbdev visuals + */ + +static const struct visops *all_visops[] = { + &mono_visops, + &grayscale_visops, + &ham_visops, + &pseudocolor_visops, + &truecolor_visops, + &directcolor_visops, + NULL +}; + + + /* + * Current fbdev visual + */ + +struct visops visops; + + + /* + * Initialization + */ + +void visops_init(void) +{ + int i; + + for (i = 0; all_visops[i]; i++) + if (all_visops[i]->init()) { + visops = *all_visops[i]; + Message("Using visops %s\n", visops.name); + return; + } + + Fatal("No visual operations available for this frame buffer mode\n"); +} + diff --git a/visops/mono.c b/visops/mono.c new file mode 100644 index 0000000..8eb487e --- /dev/null +++ b/visops/mono.c @@ -0,0 +1,110 @@ + +/* + * Visual operations for a monochrome fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "color.h" +#include "clut.h" +#include "util.h" + + +static rgba_t mono_clut[2]; + +static pixel_t mono_gray_pixel[2]; + + + /* + * Initialisation + */ + +static int mono_init(void) +{ + switch (fb_fix.visual) { + case FB_VISUAL_MONO01: + black_pixel = 1; + white_pixel = 0; + break; + + case FB_VISUAL_MONO10: + black_pixel = 0; + white_pixel = 1; + break; + + default: + return 0; + } + + /* Monochrome */ + mono_clut[black_pixel] = clut_mono[0]; + mono_clut[white_pixel] = clut_mono[1]; + + /* Grayscale */ + gray_len = 2; + gray_bits = 1; + mono_gray_pixel[0] = black_pixel; + mono_gray_pixel[1] = white_pixel; + gray_pixel = mono_gray_pixel; + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + + return 1; +} + + + /* + * Set the visual + */ + +static int mono_set_visual(enum visual_id id) +{ + switch (id) { + case VISUAL_GENERIC: + case VISUAL_MONO: + case VISUAL_GRAYSCALE: + break; + + default: + return 0; + } + return 1; +} + + + /* + * Generic + */ + +static pixel_t mono_match_color(const rgba_t *color, rgba_t *error) +{ + u32 idx; + + idx = color_find(color, mono_clut, 2); + if (error) + color_sub(error, color, &mono_clut[idx]); + return idx; +} + + + /* + * Operations + */ + +const struct visops mono_visops = { + .name = "monochrome", + .init = mono_init, + .set_visual = mono_set_visual, + .match_color = mono_match_color, +}; + diff --git a/visops/pseudocolor.c b/visops/pseudocolor.c new file mode 100644 index 0000000..2c3f4d9 --- /dev/null +++ b/visops/pseudocolor.c @@ -0,0 +1,240 @@ + +/* + * Visual operations for a pseudocolor fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "color.h" +#include "clut.h" +#include "util.h" + + +static int pseudocolor_cmap; + +static void pseudocolor_update_cmap(void); + + +void pseudocolor_create_tables(u32 bpp) +{ + /* Pseudocolor */ + idx_bits = bpp; + idx_len = 1<<bpp; + idx_pixel = create_component_table(idx_len, fb_var.red.offset, + fb_var.red.msb_right, + fb_var.bits_per_pixel); + clut = malloc(idx_len*sizeof(rgba_t)); + + /* Grayscale */ + gray_bits = idx_bits; + gray_len = idx_len; + gray_pixel = idx_pixel; + + /* Monochrome */ + black_pixel = idx_pixel[0]; + white_pixel = idx_pixel[1]; + + /* Truecolor/Directcolor emulation */ + if (bpp >= 3) { + red_bits = green_bits = blue_bits = bpp/3; + switch (bpp % 3) { + case 2: + red_bits++; + case 1: + green_bits++; + } + + red_len = 1<<red_bits; + green_len = 1<<green_bits; + blue_len = 1<<blue_bits; + red_pixel = create_component_table(red_len, green_bits+blue_bits, + fb_var.red.msb_right, bpp); + green_pixel = create_component_table(green_len, blue_bits, + fb_var.red.msb_right, bpp); + blue_pixel = create_component_table(blue_len, 0, fb_var.red.msb_right, + bpp); + } +} + + + /* + * Initialisation + */ + +static int pseudocolor_init(void) +{ + if (fb_fix.visual != FB_VISUAL_PSEUDOCOLOR || fb_var.grayscale) + return 0; + + pseudocolor_create_tables(fb_var.bits_per_pixel); + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + Message(" Pseudocolor %d\n", idx_len); + if (idx_len >= 8) { + Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + } + + return 1; +} + + + /* + * Monochrome + */ + +static void pseudocolor_set_mono(void) +{ + clut[0].r = clut[0].g = clut[0].b = 0x0000; clut[0].a = 0xffff; + clut[1].r = clut[1].g = clut[1].b = 0xffff; clut[1].a = 0xffff; + pseudocolor_cmap = 1; + pseudocolor_update_cmap(); +} + + + /* + * Grayscale + */ + +static void pseudocolor_set_grayscale(void) +{ + clut_create_linear(clut, idx_len); + pseudocolor_cmap = 1; + pseudocolor_update_cmap(); +} + + + /* + * Truecolor + */ + +static int pseudocolor_set_truecolor(void) +{ + if (idx_len < 8) + return 0; + + clut_create_rgbcube(clut, red_len, green_len, blue_len); + pseudocolor_cmap = 1; + pseudocolor_update_cmap(); + return 1; +} + + + /* + * Directcolor + */ + +static int pseudocolor_set_directcolor(void) +{ + if (idx_len < 8) + return 0; + + pseudocolor_cmap = 0; + return 1; +} + + +int pseudocolor_set_visual(enum visual_id id) +{ + switch (id) { + case VISUAL_PSEUDOCOLOR: + pseudocolor_cmap = 1; + break; + + case VISUAL_GENERIC: + pseudocolor_cmap = 1; + clut_init_nice(); + break; + + case VISUAL_MONO: + pseudocolor_set_mono(); + break; + + case VISUAL_GRAYSCALE: + pseudocolor_set_grayscale(); + break; + + case VISUAL_TRUECOLOR: + return pseudocolor_set_truecolor(); + + case VISUAL_DIRECTCOLOR: + return pseudocolor_set_directcolor(); + + default: + return 0; + } + return 1; +} + + + /* + * Set the colormap from the CLUT + */ + +static void pseudocolor_update_cmap(void) +{ + u32 i, r, g, b; + + if (pseudocolor_cmap) { + for (i = 0; i < idx_len; i++) { + fb_cmap.red[i] = clut[i].r; + fb_cmap.green[i] = clut[i].g; + fb_cmap.blue[i] = clut[i].b; + if (fb_cmap.transp) + fb_cmap.transp[i] = clut[i].a; + } + } else { + i = 0; + for (r = 0; r < red_len; r++) { + for (g = 0; g < green_len; g++) { + for (b = 0; b < blue_len; b++) { + fb_cmap.red[i] = clut[r].r; + fb_cmap.green[i] = clut[g].g; + fb_cmap.blue[i] = clut[b].b; + if (fb_cmap.transp) + fb_cmap.transp[i] = 0xffff; + i++; + } + } + } + } + fb_set_cmap(); +} + + + /* + * Find a matching color in generic mode + */ + +pixel_t pseudocolor_match_color(const rgba_t *color, rgba_t *error) +{ + u32 idx; + + idx = color_find(color, clut, idx_len); + if (error) + color_sub(error, color, &clut[idx]); + return idx_pixel[idx]; +} + +const struct visops pseudocolor_visops = { + .name = "pseudocolor", + .init = pseudocolor_init, + .set_visual = pseudocolor_set_visual, + .update_cmap = pseudocolor_update_cmap, + .match_color = pseudocolor_match_color, +}; + diff --git a/visops/truecolor.c b/visops/truecolor.c new file mode 100644 index 0000000..34d089b --- /dev/null +++ b/visops/truecolor.c @@ -0,0 +1,139 @@ + +/* + * Visual operations for a truecolor fbdev visual + * + * (C) Copyright 2001-2002 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "color.h" +#include "util.h" + + +#define CREATE_COMPONENT_TABLE(tn, cn) \ + do { \ + tn ## _bits = fb_var.cn.length; \ + tn ## _len = 1<<tn ## _bits; \ + tn ## _pixel = create_component_table(tn ## _len, \ + fb_var.cn.offset, \ + fb_var.cn.msb_right, \ + fb_var.bits_per_pixel); \ + } while (0); + +void truecolor_create_tables(void) +{ + pixel_t *table; + pixel_t pixel; + u32 i; + + /* Truecolor */ + CREATE_COMPONENT_TABLE(red, red); + CREATE_COMPONENT_TABLE(green, green); + CREATE_COMPONENT_TABLE(blue, blue); + CREATE_COMPONENT_TABLE(alpha, transp); + + /* Grayscale */ + gray_bits = min(min(red_bits, green_bits), blue_bits); + gray_len = 1<<gray_bits; + table = malloc(gray_len*sizeof(pixel_t)); + for (i = 0; i < gray_len; i++) { + pixel = rgb_pixel(CONVERT_RANGE(i, gray_len-1, red_len-1), + CONVERT_RANGE(i, gray_len-1, green_len-1), + CONVERT_RANGE(i, gray_len-1, blue_len-1)); + table[i] = pixel; + } + gray_pixel = table; + + /* Monochrome */ + black_pixel = rgb_pixel(0, 0, 0); + white_pixel = rgb_pixel(red_len-1, green_len-1, blue_len-1); +} + +#undef CREATE_COMPONENT_TABLE + + + /* + * Initialisation + */ + +static int truecolor_init(void) +{ + if (fb_fix.visual != FB_VISUAL_TRUECOLOR || fb_var.grayscale) + return 0; + + truecolor_create_tables(); + + Message("Available visuals:\n"); + Message(" Monochrome\n"); + Message(" Grayscale %d\n", gray_len); + Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits, + alpha_bits); + + return 1; +} + + + /* + * Set visual + */ + +static int truecolor_set_visual(enum visual_id id) +{ + switch (id) { + case VISUAL_GENERIC: + case VISUAL_MONO: + case VISUAL_GRAYSCALE: + case VISUAL_TRUECOLOR: + break; + + default: + return 0; + } + return 1; +} + + + /* + * Generic mode + */ + +pixel_t truecolor_match_color(const rgba_t *color, rgba_t *error) +{ + rgba_t approx; + u32 r, g, b, a; + + r = COMPRESS_FROM_16BIT(color->r, red_len-1); + g = COMPRESS_FROM_16BIT(color->g, green_len-1); + b = COMPRESS_FROM_16BIT(color->b, blue_len-1); + a = COMPRESS_FROM_16BIT(color->a, alpha_len-1); + if (error) { + approx.r = EXPAND_TO_16BIT(r, red_len-1); + approx.g = EXPAND_TO_16BIT(g, green_len-1); + approx.b = EXPAND_TO_16BIT(b, blue_len-1); + approx.a = EXPAND_TO_16BIT(a, alpha_len-1); + color_sub(error, color, &approx); + } + return rgba_pixel(r, g, b, a); +} + + + /* + * Operations + */ + +const struct visops truecolor_visops = { + .name = "truecolor", + .init = truecolor_init, + .set_visual = truecolor_set_visual, + .match_color = truecolor_match_color, +}; + diff --git a/visual.c b/visual.c new file mode 100644 index 0000000..e878295 --- /dev/null +++ b/visual.c @@ -0,0 +1,106 @@ + +/* + * Visual control + * + * (C) Copyright 2001 Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. + */ + +#include <stdlib.h> + +#include "types.h" +#include "visual.h" +#include "visops.h" +#include "fb.h" +#include "util.h" + + + /* + * Set the visual + */ + +int visual_set(enum visual_id id) +{ + return visops.set_visual(id); +} + + + /* + * Monochrome + */ + +pixel_t black_pixel, white_pixel; + + + /* + * Grayscale + */ + +u32 gray_len, gray_bits; +const pixel_t *gray_pixel; + + + /* + * CLUT for Pseudocolor and Directcolor + */ + +u32 idx_len, idx_bits; +const pixel_t *idx_pixel; +rgba_t *clut; + + +void clut_update(void) +{ + if (visops.update_cmap) + visops.update_cmap(); +} + + + /* + * RGB(A) for Truecolor and DirectColor + */ + +u32 red_len, green_len, blue_len, alpha_len; +u32 red_bits, green_bits, blue_bits, alpha_bits; +const pixel_t *red_pixel, *green_pixel, *blue_pixel, *alpha_pixel; + + + /* + * Reverse the bits in a 32-bit word + */ + +static u32 reverse32(u32 x) +{ + x = ((x & 0xffff0000) >> 16) | ((x & 0x0000ffff) << 16); + x = ((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8); + x = ((x & 0xf0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4); + x = ((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2); + x = ((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1); + return x; +} + + + /* + * Create an indexed table for one color component, based on the color + * bitfield + */ + +pixel_t *create_component_table(u32 size, u32 offset, int msb_right, u32 bpp) +{ + pixel_t *table, pixel; + int i; + + if (!size) + return NULL; + + table = malloc(size*sizeof(pixel_t)); + for (i = 0; i < size; i++) { + pixel = i<<offset; + table[i] = msb_right ? reverse32(pixel)>>(32-bpp) : pixel; + } + return table; +} + |