summaryrefslogtreecommitdiffstats
path: root/konsole
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /konsole
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'konsole')
-rw-r--r--konsole/COPYING346
-rw-r--r--konsole/ChangeLog322
-rw-r--r--konsole/Makefile.am25
-rw-r--r--konsole/NEWS107
-rw-r--r--konsole/README4
-rw-r--r--konsole/README.fonts121
-rw-r--r--konsole/README.keyboard44
-rw-r--r--konsole/README.konsole_kiosk68
-rw-r--r--konsole/README.linux.console88
-rw-r--r--konsole/README.moreColors98
-rw-r--r--konsole/README.ports28
-rw-r--r--konsole/README.unicode84
-rw-r--r--konsole/configure.in.in41
-rw-r--r--konsole/doc/Konsole2.Requirements141
-rw-r--r--konsole/doc/Makefile.am5
-rw-r--r--konsole/doc/More/Ansi_esc.txt77
-rw-r--r--konsole/doc/More/Eterm.ref508
-rw-r--r--konsole/doc/More/ansi.sys.txt355
-rw-r--r--konsole/doc/More/ansix364.txt322
-rw-r--r--konsole/doc/More/dec_vt100_codes.txt166
-rw-r--r--konsole/doc/More/iowa_vt100_news.txt255
-rw-r--r--konsole/doc/More/k95vtnttn.html184
-rw-r--r--konsole/doc/More/rxvt-ref.html1281
-rw-r--r--konsole/doc/More/swedish_vt102_codes.txt413
-rw-r--r--konsole/doc/More/villanova-vt100-esc-codes.txt389
-rw-r--r--konsole/doc/More/vt100_codes_news.txt970
-rw-r--r--konsole/doc/More/vt100_colorized_termcap.txt438
-rw-r--r--konsole/doc/More/vt100_numeric_keypad.txt202
-rw-r--r--konsole/doc/More/vt100_reference_card.txt215
-rw-r--r--konsole/doc/More/vt100_scroll_region.txt124
-rw-r--r--konsole/doc/More/vt100_setup.txt170
-rw-r--r--konsole/doc/More/vttest.html205
-rw-r--r--konsole/doc/More/xterm.codes206
-rw-r--r--konsole/doc/README.first4
-rw-r--r--konsole/doc/VT100/Makefile.am3
-rw-r--r--konsole/doc/VT100/MoreText98
-rw-r--r--konsole/doc/VT100/Table.Codes1879
-rw-r--r--konsole/doc/VT100/Table.Graphic32
-rw-r--r--konsole/doc/VT100/Table.VT5240
-rw-r--r--konsole/doc/VT100/awk.table.graphic30
-rw-r--r--konsole/doc/VT100/cmds.pro61
-rw-r--r--konsole/doc/VT100/db.trans190
-rwxr-xr-xkonsole/doc/VT100/db2.pl49
-rwxr-xr-xkonsole/doc/VT100/genDocument257
-rwxr-xr-xkonsole/doc/VT100/genPl.pl300
-rwxr-xr-xkonsole/doc/VT100/genTC.pl434
-rw-r--r--konsole/doc/VT100/konsole1.gifbin0 -> 1582 bytes
-rw-r--r--konsole/doc/VT100/konsole2.gifbin0 -> 1813 bytes
-rwxr-xr-xkonsole/doc/VT100/t.pl17
-rw-r--r--konsole/doc/VT100/techref.html4681
-rw-r--r--konsole/doc/VT100/vt100.gif401
-rw-r--r--konsole/doc/color-schema114
-rw-r--r--konsole/doc/framework33
-rw-r--r--konsole/doc/histBuffer24
-rw-r--r--konsole/doc/konsole.Doxyfile10
-rw-r--r--konsole/doc/missing.codes89
-rw-r--r--konsole/doc/missing.keys124
-rwxr-xr-xkonsole/doc/mkDocs6
-rw-r--r--konsole/eventsrc736
-rw-r--r--konsole/fonts/9x15.bdf99671
-rw-r--r--konsole/fonts/Makefile.am16
-rw-r--r--konsole/fonts/console8x16.bdf15095
-rw-r--r--konsole/fonts/cp437.charmap264
-rw-r--r--konsole/kcmkonsole.desktop230
-rw-r--r--konsole/konsole-script.desktop128
-rw-r--r--konsole/konsole.desktop128
-rw-r--r--konsole/konsole.upd13
-rw-r--r--konsole/konsole/BlockArray.cpp327
-rw-r--r--konsole/konsole/BlockArray.h119
-rwxr-xr-xkonsole/konsole/MakeDefaults7
-rw-r--r--konsole/konsole/Makefile.am80
-rw-r--r--konsole/konsole/TECommon.h234
-rw-r--r--konsole/konsole/TEHistory.cpp626
-rw-r--r--konsole/konsole/TEHistory.h273
-rw-r--r--konsole/konsole/TEPty.cpp262
-rw-r--r--konsole/konsole/TEPty.h123
-rw-r--r--konsole/konsole/TEScreen.cpp1570
-rw-r--r--konsole/konsole/TEScreen.h279
-rw-r--r--konsole/konsole/TEWidget.cpp2326
-rw-r--r--konsole/konsole/TEWidget.h335
-rw-r--r--konsole/konsole/TEmuVt102.cpp1430
-rw-r--r--konsole/konsole/TEmuVt102.h146
-rw-r--r--konsole/konsole/TEmulation.cpp550
-rw-r--r--konsole/konsole/TEmulation.h149
-rw-r--r--konsole/konsole/default.keytab.h76
-rw-r--r--konsole/konsole/fontembedder.cpp119
-rw-r--r--konsole/konsole/keytrans.cpp755
-rw-r--r--konsole/konsole/keytrans.h100
-rw-r--r--konsole/konsole/konsole.cpp4341
-rw-r--r--konsole/konsole/konsole.h501
-rw-r--r--konsole/konsole/konsole_part.cpp1133
-rw-r--r--konsole/konsole/konsole_part.h241
-rw-r--r--konsole/konsole/konsole_wcwidth.cpp216
-rw-r--r--konsole/konsole/konsole_wcwidth.h19
-rw-r--r--konsole/konsole/konsolebookmarkhandler.cpp104
-rw-r--r--konsole/konsole/konsolebookmarkhandler.h62
-rw-r--r--konsole/konsole/konsolebookmarkmenu.cpp156
-rw-r--r--konsole/konsole/konsolebookmarkmenu.h72
-rw-r--r--konsole/konsole/konsoleiface.h49
-rw-r--r--konsole/konsole/kwrited.cpp143
-rw-r--r--konsole/konsole/kwrited.h56
-rw-r--r--konsole/konsole/linefont.h21
-rw-r--r--konsole/konsole/linefont.src786
-rw-r--r--konsole/konsole/main.cpp671
-rw-r--r--konsole/konsole/printsettings.cpp66
-rw-r--r--konsole/konsole/printsettings.h44
-rw-r--r--konsole/konsole/schema.cpp634
-rw-r--r--konsole/konsole/schema.h243
-rw-r--r--konsole/konsole/session.cpp838
-rw-r--r--konsole/konsole/session.h232
-rw-r--r--konsole/konsole/sessioniface.h51
-rw-r--r--konsole/konsole/x-konsole.desktop74
-rw-r--r--konsole/konsole/zmodem_dialog.cpp56
-rw-r--r--konsole/konsole/zmodem_dialog.h49
-rw-r--r--konsole/konsolehere.desktop125
-rw-r--r--konsole/konsolepart.desktop95
-rw-r--r--konsole/konsolesu.desktop83
-rw-r--r--konsole/kwrited.desktop145
-rw-r--r--konsole/other/2shells11
-rw-r--r--konsole/other/3shells12
-rw-r--r--konsole/other/4shells13
-rw-r--r--konsole/other/5shells14
-rw-r--r--konsole/other/BlackOnLightColor.schema42
-rw-r--r--konsole/other/BlackOnLightYellow.schema42
-rw-r--r--konsole/other/BlackOnWhite.schema42
-rw-r--r--konsole/other/DarkPicture.schema44
-rw-r--r--konsole/other/Example.Schema47
-rw-r--r--konsole/other/GreenOnBlack.schema42
-rw-r--r--konsole/other/GreenTint.schema49
-rw-r--r--konsole/other/GreenTint_MC.schema49
-rw-r--r--konsole/other/LightPaper.schema44
-rw-r--r--konsole/other/LightPicture.schema44
-rw-r--r--konsole/other/Linux.schema47
-rw-r--r--konsole/other/Makefile.am20
-rw-r--r--konsole/other/README15
-rw-r--r--konsole/other/README.Desktop6
-rw-r--r--konsole/other/README.KeyTab72
-rw-r--r--konsole/other/README.Schema132
-rw-r--r--konsole/other/README.default.Keytab137
-rw-r--r--konsole/other/README.default.Schema44
-rw-r--r--konsole/other/Transparent.schema49
-rw-r--r--konsole/other/Transparent_MC.schema51
-rw-r--r--konsole/other/Transparent_darkbg.schema42
-rw-r--r--konsole/other/Transparent_lightbg.schema51
-rw-r--r--konsole/other/WhiteOnBlack.schema42
-rw-r--r--konsole/other/XTerm.schema46
-rw-r--r--konsole/other/hi128-app-konsole.pngbin0 -> 7666 bytes
-rw-r--r--konsole/other/hi16-app-konsole.pngbin0 -> 826 bytes
-rw-r--r--konsole/other/hi22-app-konsole.pngbin0 -> 1186 bytes
-rw-r--r--konsole/other/hi32-app-konsole.pngbin0 -> 1734 bytes
-rw-r--r--konsole/other/hi48-app-konsole.pngbin0 -> 2761 bytes
-rw-r--r--konsole/other/hi64-app-konsole.pngbin0 -> 3800 bytes
-rw-r--r--konsole/other/hisc-app-konsole.svgzbin0 -> 3864 bytes
-rw-r--r--konsole/other/icons/Makefile.am3
-rw-r--r--konsole/other/icons/cr16-action-activity.pngbin0 -> 829 bytes
-rw-r--r--konsole/other/icons/cr16-action-konsoleblue.pngbin0 -> 728 bytes
-rw-r--r--konsole/other/icons/cr16-action-konsolered.pngbin0 -> 727 bytes
-rw-r--r--konsole/other/icons/cr16-action-opentermblue.pngbin0 -> 645 bytes
-rw-r--r--konsole/other/icons/cr16-action-opentermred.pngbin0 -> 639 bytes
-rw-r--r--konsole/other/icons/cr16-action-silence.pngbin0 -> 722 bytes
-rw-r--r--konsole/other/icons/cr22-action-konsoleblue.pngbin0 -> 1142 bytes
-rw-r--r--konsole/other/icons/cr22-action-konsolered.pngbin0 -> 1145 bytes
-rw-r--r--konsole/other/icons/cr22-action-opentermblue.pngbin0 -> 942 bytes
-rw-r--r--konsole/other/icons/cr22-action-opentermred.pngbin0 -> 939 bytes
-rw-r--r--konsole/other/icons/cr32-action-konsoleblue.pngbin0 -> 1663 bytes
-rw-r--r--konsole/other/icons/cr32-action-konsolered.pngbin0 -> 1667 bytes
-rw-r--r--konsole/other/icons/cr32-action-opentermblue.pngbin0 -> 1205 bytes
-rw-r--r--konsole/other/icons/cr32-action-opentermred.pngbin0 -> 1254 bytes
-rw-r--r--konsole/other/linux.desktop161
-rw-r--r--konsole/other/linux.keytab133
-rw-r--r--konsole/other/mc.desktop103
-rw-r--r--konsole/other/screen.desktop155
-rw-r--r--konsole/other/shell.desktop145
-rw-r--r--konsole/other/solaris.keytab108
-rw-r--r--konsole/other/su.desktop132
-rw-r--r--konsole/other/sumc.desktop147
-rw-r--r--konsole/other/syscolor.schema44
-rw-r--r--konsole/other/vim.schema40
-rw-r--r--konsole/other/vt100.keytab133
-rw-r--r--konsole/other/vt420pc.keytab163
-rw-r--r--konsole/other/wallpapers/Blkmarble.jpgbin0 -> 5514 bytes
-rw-r--r--konsole/other/wallpapers/Makefile.am7
-rw-r--r--konsole/other/wallpapers/Metric-Monospace-14.pngbin0 -> 160 bytes
-rw-r--r--konsole/other/wallpapers/Paper01.jpgbin0 -> 1667 bytes
-rw-r--r--konsole/other/wallpapers/gray02.jpgbin0 -> 1932 bytes
-rw-r--r--konsole/other/x11r5.keytab71
-rwxr-xr-xkonsole/schemaStrip.pl8
-rw-r--r--konsole/terminalemulator.desktop86
-rw-r--r--konsole/tests/9x15.repertoire-utf8219
-rw-r--r--konsole/tests/Makefile15
-rw-r--r--konsole/tests/README.vttest57
-rw-r--r--konsole/tests/audit.c53
-rwxr-xr-xkonsole/tests/bulktest.sh2
-rw-r--r--konsole/tests/color-spaces.pl67
-rwxr-xr-xkonsole/tests/colortest.sh31
-rwxr-xr-xkonsole/tests/ct220
-rw-r--r--konsole/tests/esc.c398
-rw-r--r--konsole/tests/header.h54
-rw-r--r--konsole/tests/main.c2083
-rw-r--r--konsole/tests/quote.c50
-rw-r--r--konsole/tests/ripple.c29
-rwxr-xr-xkonsole/tests/sesstest2
-rwxr-xr-xkonsole/tests/titletest.sh5
-rwxr-xr-xkonsole/tests/utf8.sh11
-rw-r--r--konsole/tests/vttest.113
-rw-r--r--konsole/tips240
206 files changed, 160588 insertions, 0 deletions
diff --git a/konsole/COPYING b/konsole/COPYING
new file mode 100644
index 000000000..5185fd3f3
--- /dev/null
+++ b/konsole/COPYING
@@ -0,0 +1,346 @@
+NOTE! The GPL below is copyrighted by the Free Software Foundation, but
+the instance of code that it refers to (the kde programs) are copyrighted
+by the authors who actually wrote it.
+
+---------------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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/konsole/ChangeLog b/konsole/ChangeLog
new file mode 100644
index 000000000..55aacd580
--- /dev/null
+++ b/konsole/ChangeLog
@@ -0,0 +1,322 @@
+
+2 December 2006
+- Fixed calculation of colour values in 256 colour mode. Previous values were
+a little too dim
+
+============================================================================
+
+Lots happened here...
+
+============================================================================
+
+8 Jun 2001
+-Increased version to 1.0.2
+-Added Control-Alt-N shortcut key to create new sessions
+-Other new items for 1.0.2 added in recent months are session
+ management, restoring fullscreen mode, improved startup speed,
+ and other fixes and improvements I wish I had remembered to add
+ here as they were made. My thanks to all who have, and continue to,
+ contribute.
+26 Apr 2001
+- Applied patches from bug reports 11353 and 16321, session title is now
+ passed to window title and going back and forth from fullscreen mode no
+ longer appends extra data to the window title.
+20 Dec 2000
+- Made ColorSchema a class instead of a struct.
+- Added hasSchemaFileChanged() to detect changed .schema files if needed.
+- Added checks for new schema files when accessing the schema menu.
+- When schema files are removed the corresponding schemas are removed too.
+- Fixed some i18n problems in schema.C.
+- Laid groundwork for switch to KConfig (from schema files).
+- Check for new schema's every time the schema menu is accessed. I realise
+ this may be resource intensive on some people's machines. Maybe we need
+ a little timeout mechanism to prevent checks all too often.
+20 Sep 2000
+- made resizing more content preservative
+11 Sep 2000
+- improved scrolling speed.
+10 Sep 2000
+- *.keytab not sending \0 fixed.
+ 9 Sep 2000
+- license restricted to GPLv2
+- added Konsole2.Requirements
+- changes version to 1.0.1 meaning there will be a version 2
+- removed AUTHORS and CONTRIBUTORS in favor of DEVELOPERS
+ 8 Sep 2000
+- fixed a history-related crash.
+ 5 Sep 2000
+- (partially) fixed cut&paste problems.
+ 4 Sep 2000
+- made Shift-(Left|Right) to change sessions
+- fixed Ctrl-D being propagated to other sessions.
+28 Aug 2000
+- fullscreen mode adjusted to qt-2.1
+ 2 Jul 2000
+- start menu added
+- highlight+bold adjustments
+ 7 Feb 2000
+- 'BsHack' internals removed.
+- last X11 reference removed.
+- code movements and clearup.
+ 5 Feb 2000
+- proper diagnostics added to keytrans reader.
+31 Jan 2000
+- session swap respects size change
+- added sending signals to menu
+29 Jan 2000
+- put 'login_shell' stuff straight
+- revisiting keyboard handling.
+27 Jan 2000
+- revisited emulation classes.
+25 Jan 2000
+- improved console8x16. This merged from the iso[01..10].f16.pcf
+ as distributed in the console fonts package.
+- Fullscreen mode add. Not yet perfect, but together Linux colors,
+ and the Linux font, it gives a pretty console lookalike.
+19 Jan 2000
+- fixed a size problem with OSF/1 v3.2
+16 Jan 2000
+- added privacy code 1049.
+- reverted to TERM=xterm.
+11 Jan 2000
+- upgraded xterm title hack to unicode.
+- upgraded copy/paste to handle unicode.
+ 7 Jan 2000
+- added unicode support. (see README.unicode)
+- added arbitrary long history buffers.
+- code adjustments to the provide linux console font.
+- added font directory to simply installation.
+- added recognition for ESC[>c
+- changed TERM=xterm-color
+ 1 Aug 1999
+- added kwrited to provide utmp support. (see README.utmp)
+11 July 1999
+- merged kde-1.1 changes into head branch.
+- removed "Insert Pastes" option. (Actually, you
+ can still paste using the insert key, but have
+ to print Shift, additionally. Have to check the
+ doc's whether this is properly mentioned)
+12 June 1999 Stephan Kulow <coolo@kde.org>
+- merged the below changes back into HEAD
+28 May 1999 Dan Pilone <pilone@slac.com>
+- Ported konsole to SGI (well, hopefully all SVR4 machines.)
+22 May 1999
+- added transparency/tint support
+05 Apr 1999
+- made sessions die silently.
+24 Mar 1999
+- added Unix98 pty support.
+22 Mar 1999
+- made a non-glibc2.1 version of the fix below.
+- fixed a signal/wait problems related with it.
+- changed version number to 0.9.10 thereby disappointing
+ all those who desperately hoped, 0.9.9 will be followed
+ by 1.0.0 ;)
+15 Mar 1999 David Faure <David.Faure@insa-lyon.fr>
+- fixed some bugs.
+18 Mar 1999
+- added grantpt to prevent eavesdroping the slave tty.
+ konsole now depends on at least glibc2.1
+03 Mar 1999
+- added -name
+- Shift-Insert pastes
+- added *.kdelnk to be seeked in ~./kde/apps/konsole, too.
+11 Feb 1999
+- added some docs
+- set version to 0.9.10
+06 Feb 1999
+- adjusting geometry save/restore
+03 Feb 1999
+- fixed -caption
+- some adjustments in geometry management
+01 Feb 1999 Matt Gerassimoff <mg@s303.msoe.edu>
+- scroll line wise through the history buffer using Shift-Up/Down
+31 Jan 1998
+- fixed a resizing bug.
+30 Jan 1998
+- fixed an ANSI compatibility problem.
+30 Jan 1998 Kyle Haight <khaight@netcom.com>
+- Solaris 2.6 adjustment
+30 Jan 1998 Warwick Allison <warwick@troll.no>
+- character classes (removing word_characters code)
+- "word" selection based on character classes
+- "word" selection during selection Extend (double-click-and-drag)
+- fixed bug to so that selection stays highlighted
+- fixed another, more obscure selection bug
+05 Jan 1998
+- improved handling of atypical or moved installations (Martin,Sven,Lars)
+- a QString::printf issue resolved (Sven,Lars)
+20 Dec 1998 David Faure <David.Faure@insa-lyon.fr
+- "-e" added to session management
+- slight overall improvements
+20 Dec 1998
+- fixed or worked around a marking issue in scrollUp/scrollDown.
+04 Dec 1998 Alex Zepeda <garbanzo@hooked.net>
+- README: Removed comment about beta testing, it's rather irrelevant.
+30 Nov 1998
+- added DND support
+26 Nov 1998
+- added xterm-83 patch, vim.schema
+20 Nov 1998
+- some works on integrating documentation
+14 Nov 1998 Peter Silva <peter.silva@kde.org>
+- added -vt_sz command line option.
+- added Ctrl modifier for text selection without line breaks.
+- started working on word-class (just stubs, nothing complete.)
+- documented the Ctrl-modifier, fixed section headings.
+09 Nov 1998
+- minor bugs fixed.
+- putenv/setenv - prefered Solaris compatibility over
+ a workaround for some broken gcc/clib version
+04 Nov 1998
+- minor bug fixes integrated
+- xterm color schema added
+- linux color schema added
+- linux8x8.pcf.gz added
+01 Nov 1998
+- minor bugs fixed to handle unexpected or incomplete installations
+ and broken configuration scrips better.
+- FreeBSD adjustments
+29 Oct 1998
+- sessions reactived
+- Session/Command menu additionally with Shift/Control+RightMouse
+- Function keys adjusted for Linux console emulation.
+- rolled linux console font
+- schema for system colors added (hello Peter!)
+28 Oct 1998
+- tracking down licence issues
+- spent far to much time on explaining them
+27 Oct 1998 Mario Weilguni <mweilguni@kde.org>
+- prevented TEWidget from accepting font-change-requests from
+ KDE's "Display properties"
+- fixed a segfault caused by reading a non-existant directory in
+ TEDemo::loadAllSchemas() and TEDemo::loadSessionCommands()
+25 Oct 1998
+- marking within mouse aware application now needs an extra shift
+- added command configuration files /opt/kde/share/apps/konsole/*.kdelnk
+24 Oct 1998
+ - adjusted geometry management. Window is not resized anylonger when
+ changeing font size, scrollbar, frame, menubar.
+- made font & schema attributes per-session.
+23 Oct 1998
+- introduced color schemes /opt/kde/share/apps/konsole/*.schema
+23 Oct 1998
+- introduced multible sessions
+21 Oct 1998
+- clear sets current rendition attributes now (instead of default rendition)
+- ESC[<pn>X added from Linux console-codes
+- Characters sets per emulation instead of per screen.
+11 Sep 1998
+- tests/vttest now reads CTRL-C XON XOFF NL correctly
+30 Aug 1998
+- cursor symbols adjusted
+- only the application screen has a history buffer
+- bgnSel/endSel removed in favor of pntSel
+- improved scrolling while marking
+- minor warnings removed (egcs more happy now)
+28 Aug 1998
+- scrolling via selection drag & double click word selection added (Peter Silva)
+25 Aug 1998
+- proper marking added, most selection code moved to Screen. (Peter Silva)
+22 Aug 1998
+- minor workaround added to makefile (-lz)
+- CONTRIBUTORS added
+20 Aug 1998
+- minor fixes related to background pixmaps
+- fixed multible size change on startup
+- add catch-all to bulk handling
+16 Aug 1998
+- added support for jpeg and png
+- KFilePreviewDialog added for background pixmap selection added
+ (guess i overdid it somehow)
+- tiled/centered/full implemented.
+- load/saveOptions extended to support background pixmaps
+05 Jun 1998
+- added xterm title hack
+- hooked in some documentation
+- added user hint for menubar
+04 Jun 1998
+- fixed scrollbar side change
+- added support for new xterm ESC[?1048 (save,restore cursor)
+03 Jun 1998
+- adjusted resizing behavior (may cause flicker in other installations)
+02 Jun 1998
+- improved speedup with vim 5.0
+- added support for new xterm ESC[?1047 (primary,application screen)
+25 May 1998
+- fixed a signal passing problem when using "-e"
+- included (partial implemented) session awareness
+- glitch in doc path fixed
+18 May 1998
+- prepared for i18n
+17 May 1998
+- some command parameters added
+16 May 1998
+- SIGHUP problem finally solved
+- minor security optimization
+- FreeBSD support improved (Kevin Street <street@iname.com>)
+14 May 1998
+- minor keyboard adjustments
+- rescheduled keypad material due to problems
+13 May 1998
+- removed some flicker related to KTW
+- Welcome to the konsole
+- vt52 mode added
+- completed terminal reports
+- completed other intended esc codes. thanks goodness, that's done!
+- started a list of codes not to be implemented.
+12 May 1998
+- size setting material added (still somewhat incomplete)
+- FreeBSD support introduced (Kevin Street <street@iname.com>)
+10 May 1998
+- cleanups in Shell.C
+0.8.5
+- released
+0.8.48
+- introduced clip rect for bold characters.
+0.8.47
+- cleared up several readmes.
+0.8.45
+- minor problems with blinking fixed
+- optional variable-width font support removed.
+ The fonts came out to be unusable.
+0.8.44
+- added underline attribute
+- added blinking attribute
+- fixed bold attribute
+0.8.43
+- optional variable-width font support added.
+- vga font made optional.
+- tiny font deactivated.
+0.8.42
+- add show/hide cursor command
+- add inverse mode (DECSCNM)
+- mode handling adjusted
+- clarified image production
+0.8.41
+- rendition introduced in ca structure
+- fixed cursor sometimes not drawn
+- Change Log reversed (showing newest on top now)
+0.8.4
+- released
+0.8.34
+- added README.bugs
+- added term.ti
+0.8.32
+- History buffer added.
+- Shell changed to use '/bin/bash'.
+- vga.pcf.Z included.
+0.8.31
+- Scrollbar added.
+0.8.3
+- released
+0.8.25:
+- about, help added.
+0.8.24:
+- fixed uninitialized MODE_Insert
+- fixed bulkShow triggered by bulkNewline while inBulk :)
+0.8.22:
+- added automake/autoconf stuff
+- made a try with background pixmaps
+0.8.2:
+- released 28 Apr 1998
diff --git a/konsole/Makefile.am b/konsole/Makefile.am
new file mode 100644
index 000000000..6abe0ad60
--- /dev/null
+++ b/konsole/Makefile.am
@@ -0,0 +1,25 @@
+SUBDIRS = konsole other doc fonts
+
+xdg_apps_DATA = konsole.desktop konsolesu.desktop
+
+kde_services_DATA = konsolepart.desktop kwrited.desktop konsole-script.desktop
+kde_servicetypes_DATA = terminalemulator.desktop
+
+update_DATA = konsole.upd
+update_SCRIPTS = schemaStrip.pl
+updatedir = $(kde_datadir)/kconf_update
+
+servicesdir = $(kde_servicesdir)/kded
+services_DATA = kwrited.desktop
+
+install-data-local:
+ @-rm -f $(DESTDIR)$(datadir)/autostart/kwrited.desktop
+
+konsolehere_DATA = konsolehere.desktop
+konsoleheredir = $(kde_datadir)/konqueror/servicemenus
+
+misc_DATA = eventsrc tips
+miscdir = $(kde_datadir)/konsole
+
+EXTRA_DIST = CONTRIBUTORS LICENSE.readme README.bugs \
+ README.linux.console tests $(xdg_apps_DATA)
diff --git a/konsole/NEWS b/konsole/NEWS
new file mode 100644
index 000000000..0c1fd6fab
--- /dev/null
+++ b/konsole/NEWS
@@ -0,0 +1,107 @@
+New in 1.0.1
+
+- partial partification
+- Shift-(Left|Right) changes sessions
+
+New in 0.9.12
+
+- Unicode support
+- Font selection, sort of
+- Arbitrary long history
+- Change to GPL2
+- Fullscreen mode
+- Signals
+- Keyboard configureable by *.keytab.
+- Toolbar & session names
+
+New in 0.9.11
+
+- maintainence release
+
+New in 0.9.10
+
+- Unix98 pty support.
+- fix for a security hole.
+- lots of other bugs fixed
+- Shift-Up/Down scrolls history
+- Shift-Insert pastes
+- added *.kdelnk to be seeked in ~./kde/apps/konsole, too.
+- added -name to set the window class
+- documentation improvements
+
+New in 0.9.9 [Feb 11 1999]
+
+- some small bug fixed (see ChangeLog).
+- Solaris 2.6 support.
+- more technical docs.
+- marking improved but still not optimal.
+- command line config and wm session
+ management partially broken.
+- closed a earsdrop security hole for Linux only.
+- line-wise history scrolling using Shift-Up/Down
+
+New in 0.9.8
+
+- some support for linux console added (experimental)
+- multiple sessions (experimental, flickers like hell)
+- color schemes (see /opt/kde/share/apps/konsole/*.schema)
+- configurable new session command (see /opt/kde/share/apps/konsole/*.kdelnk)
+- minor bugs fixed
+- changed to use the `Artistic License'
+- DnD support
+
+New in 0.8.9
+
+- marking improved (thanks to Peter Silva)
+ - now works in history buffer, too.
+ - autoscrolling while marking.
+ - word selection by double click.
+
+New in 0.8.8
+
+- selection for background pixmaps (somewhat overdone)
+ You need libjpeg, libpng and libqimgio (qt-1.40/extensions) for that.
+
+New in 0.8.7
+
+- (partial) session management
+- some command line options
+- added support for some new xterm private modes (?1047,?1048).
+
+New in 0.8.6
+
+- vt52 mode
+- Size setting
+- escape codes completed
+- FreeBSD support (Kevin Street <street@iname.com>)
+- konsole's primary home is the kdenonbeta package
+
+New in 0.8.5
+
+- rendition is completed, so underline, bold and blinking should
+ work properly by now.
+
+- some material related to cursors has been fixed and added.
+
+- some experimental material removed
+ - VGA font deactivated by default. This is stuff for a future Linux
+ console and ANSI-BBS emulation.
+ - variable pitch font support moved to a patch. Result was a disaster
+ anyway, since these fonts are not prepared to be used with a terminal
+ emulation.
+
+New in 0.8.4
+
+- history buffer and scroll bar added.
+
+New in 0.8.3
+
+- autoconf material
+
+- One may use a background pixmap with konsole, now. This feature is
+ experimental. It originates from Eterm. To try this, move a pixmap named
+ `konsole.ppm' to $HOME/.kde/apps/konsole to try it. It can be anything
+ that QPixmap::load is able to read. You can get pixmaps from the Eterm
+ background tar balls. I've put some into the 'other/' directory, too. Note
+ that you need to set fore- and background colors that matches the color of
+ the pixmap. The picture will appear tiled in any case.
diff --git a/konsole/README b/konsole/README
new file mode 100644
index 000000000..e217ed8f0
--- /dev/null
+++ b/konsole/README
@@ -0,0 +1,4 @@
+Konsole is an X terminal emulation.
+
+Share and enjoy it,
+ Lars
diff --git a/konsole/README.fonts b/konsole/README.fonts
new file mode 100644
index 000000000..55d410980
--- /dev/null
+++ b/konsole/README.fonts
@@ -0,0 +1,121 @@
+[README.fonts]
+
+Fonts need to suit the needs of X11, QT and konsole.
+
+
+* the font has to be fixed width.
+
+ This requierement originate both from X11 and
+ the way QT and konsole uses it together with
+ the very idea of what a terminal emulation is
+ about.
+
+ Basically, a terminal emulation is to display
+ a character cell oriented screen, meaning that
+ all characters in the same column line up
+ properly under each other.
+
+ Though one could make this with a variable
+ width font (which are preferably used in text
+ processing) the outcome would look very poor,
+ since the glyphs would have to be placed into
+ a cell fitting the widest character in the
+ font, which is typically more then two times
+ wider then the narrowest glyph. Imagine a text
+ with l o t s o f s p a c e s
+ inserted between each character to get the idea.
+
+ Further, doing this with a variable width font
+ means to do some operations that slow down the
+ whole display refreshing dramatically. X11/QT
+ performs very poor when one draws characters
+ individually while additionally clearing
+ background regions instead of drawing a complete
+ string (as konsole does). If one draws a string
+ with a variable width font, it is of course
+ typeset by X11 variable width, not longer
+ conforming to the character cell model of a
+ terminal emulation.
+
+ So from both perspectives, variable width fonts
+ are unsuited for terminal emulation purposes.
+
+
+* the font has to contain some graphical characters
+
+ Many full screen applications make use of these
+ characters to draw boxes, scroll bars and likely
+ pseudo graphical entities.
+
+ Using fonts without this capabilities means to
+ break the visual apearence of these products.
+
+ As a minimum the following glyphs have to be
+ included within a font to become usable:
+
+ - 0x0b U+2518 : BOX DRAWINGS LIGHT UP AND LEFT
+ - 0x0c U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT
+ - 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT
+ - 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT
+ - 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ - 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5)
+ - 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ - 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ - 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ - 0x18 U+252c : BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ - 0x19 U+2502 : BOX DRAWINGS LIGHT VERTICAL
+
+ - 0x01 U+25c6 : BLACK DIAMOND
+ - 0x02 U+2592 : MEDIUM SHADE
+ - 0x1F U+00b7 : MIDDLE DOT
+
+ The following graphical glyphs are defined in
+ VT100 fonts, too, but are not used in any program
+ i know about. Codes for them have been assigned
+ in the private unicode page. See the linux kernel
+ documentation file [unicode.txt] about this assignment.
+
+ - 0x10 U+f800 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 1
+ - 0x11 U+f801 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 3
+ - 0x13 U+f803 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 7
+ - 0x14 U+f804 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 9
+
+ Also, the VT100 knows about the following glyphs,
+ though omitting them is unlikely to break anything.
+
+ - 0x07 U+00b0 : DEGREE SIGN
+ - 0x08 U+00b1 : PLUS-MINUS SIGN
+ - 0x1a U+2264 : LESS THAN OR EQUAL TO
+ - 0x1b U+2265 : GREATER THAN OR EQUAL TO
+ - 0x1c U+03c0 : GREEK SMALL LETTER PI
+ - 0x1d U+2260 : NOT EQUAL TO
+ - 0x1e U+00a3 : POUND SIGN
+
+ Additionally, digraphs are provided for some
+ of the control characters by VT100, too.
+
+ - 0x03 U+2409 : DIGRAPH HT
+ - 0x04 U+240c : DIGRAPH FF
+ - 0x05 U+240d : DIGRAPH CR
+ - 0x06 U+240a : DIGRAPH LF
+ - 0x09 U+240d : DIGRAPH NL
+ - 0x0a U+240b : DIGRAPH VT
+
+ The mapping of non-iso10646 fonts is extended by konsole
+ with the regular xterm fixed font placement of these
+ glyphs to 0x00-0x1f.
+
+
+* Iso10646 fonts needs to have a fall back character
+ to be properly assigned.
+
+ Use the "DEFAULT_CHAR" property with bdf fonts
+ to do so. Other font representations provide
+ likely means. The unicode assignment is U+fffd.
+
+ If such a character isn't defined, X11 might
+ choose to void the character completely, causing
+ inconsistent appearence when refreshing the screen.
+
+ One may choose the space glyph to hide the flaw
+ or a box like one to exhibit it.
diff --git a/konsole/README.keyboard b/konsole/README.keyboard
new file mode 100644
index 000000000..93a0ac20f
--- /dev/null
+++ b/konsole/README.keyboard
@@ -0,0 +1,44 @@
+[README.keyboard]
+
+The *.keytab files (located in $KDEDIR/share/apps/konsole) allow
+to configure the keyboard due to your specific environment.
+
+Beside that you can use them to make the keyboard emit virtually
+any escape sequence you want, here a probe of more typical problems
+related to keyboards, that can be coped with this way:
+
+- BS Hack
+
+ While one would expect, that the Backspace key send Ascii
+ Backspace, this is not the case in many Linux installations.
+
+ The idea behind this hack is to preserve the CTRL-H.
+
+ So the mapping is:
+
+ CTRL-H -> 0x08
+ Backspace -> 0x7f
+ Delete -> \E[3~
+
+- Home/End Keys
+
+ Home -> \E[1~
+ End -> \E[4~
+
+ or
+
+ Home -> \E[H
+ End -> \E[F
+
+Quite a lot of those key sequences are floating around.
+
+Consult your terminfo or termcap database for the expected values.
+Note that your system is not unlikely to have other keyboard databases
+which have to be in sync, too (e.g. /etc/inputrc for readline(3)).
+
+If you want to adjust things to your needs, copy one of the
+*.keytab files and edit it. When restarted, konsole offeres
+you this new entry on it's menu.
+
+In case your new keytab is likely to suit common needs,
+please contribute to konsole by sending me the file.
diff --git a/konsole/README.konsole_kiosk b/konsole/README.konsole_kiosk
new file mode 100644
index 000000000..f769d5baf
--- /dev/null
+++ b/konsole/README.konsole_kiosk
@@ -0,0 +1,68 @@
+> Konsole is a *great* program, but is designed for the end user to have a
+> lot of control over their session--which in our environment would be
+> very bad. The users have no clue what emulation to pick, how many
+> columns and rows they need.
+>
+> What would really help is some command line arguments that would take
+> configure certain items, and then disable them from the pulldowns along
+> the top.
+>
+> For instance, if the command --noscrollbar was issued, it would turn off
+> the scroll bar and then now allow them to turn it back on again via the
+> pulldowns.
+>
+> The more things that I could configure via the command line, the better.
+
+A lot of this can already be disabled with KDE's KIOSK framework. By adding a
+[KDE Action Restrictions] group to your konsolerc file, you can disable individual actions. The following actions are used in konsole:
+
+action/copy
+action/paste
+action/clear_terminal
+action/reset_clear_terminal
+action/find_history
+action/find_next
+action/find_previous
+action/save_history
+action/clear_history
+action/clear_all_histories
+action/detach_session
+action/rename_session
+action/monitor_activity
+action/monitor_silence
+action/send_input_to_all_sessions
+action/show_menubar
+action/show_toolbar
+action/fullscreen
+action/save_sessions_profile
+action/close_session
+action/quit
+action/new_session
+action/activate_menu
+action/list_sessions
+
+Since KDE 3.1.1 the following actions will be available as well:
+action/bell
+action/font
+action/schema
+action/size
+action/scrollbar
+action/keyboard
+
+
+So if you don't want the user to toggle his scrollbar settings, you would add:
+
+[KDE Action Restrictions]
+action/scrollbar=false
+
+Also usefull in this context is:
+
+[KDE Action Restrictions]
+shell_access=false
+
+This disables all actions that start a new shell in konsole (such as
+action/new_session, but more complete) This requires KDE 3.1.0 or newer.
+
+Note that if you change this in konsolerc it will apply to all konsoles.
+However you can copy konsolerc to e.g. my_konsolerc and then start konsole
+with "konsole --config my_konsolerc"
diff --git a/konsole/README.linux.console b/konsole/README.linux.console
new file mode 100644
index 000000000..25eed24c3
--- /dev/null
+++ b/konsole/README.linux.console
@@ -0,0 +1,88 @@
+Konsole and the Linux console
+
+
+From a technical point of view, the Linux console differes
+so substantially from any other terminal, that it impossible
+to fully emulate it. This is because the Linux console lives
+in kernel space and interfaces by kernel means, which cannot
+be simulated by any user space application.
+
+Contrary to this fact, konsole can be configured to appear
+and function console like to a degree that makes it virtually
+undistinguishable from the original. To do so, switch off the
+menubar, scrollbar and frame, select the Linux colors and font
+and set the full screen mode.
+
+If you're running the console with the same resolution as
+your X display (which you can, thanks to the frame buffer
+console), you should get a pixel identical display then,
+despite the fact that you're still running an X terminal.
+
+
+* What make the Linux console so unique?
+
+The central differences between the Linux console and xterm
+like emulations are:
+
+1) The Linux console uses some special devices (vcs,vcsa)
+ and ioctls for some purposes, for which no correspondent
+ escape codes exist.
+2) The Linux console uses gpm for the mouse.
+3) The Linux console does not have an application screen.
+ Xterm like application switch from a primary screen to
+ the application screen when running in full screen mode,
+ keeping the shell session apart from the application.
+ Application like MC emulation the application screen on
+ the Linux console using the devices mentioned in 1).
+4) The Linux console may use a character map different from
+ the one used in X11.
+5) The TERM environment variable is "linux"
+6) A few key codes (F1-F5) differ.
+7) The Linux console occupies the whole display.
+
+Clearly, 1) and 2) make the Linux console so distinct that
+an explicit Linux console simulation cannot exist.
+
+
+* Running Konsole in true Linux console mode:
+
+To some degree, one can run application with Linux console
+emulation, too.
+
+- export TERM=linux to trigger ncurses aware applications
+ to expect a linux console.
+- set the appropriate codec (this is cp437 on my installation)
+ to get graphical and international characters properly.
+[TODO: to control codec via menu settings is work in progress, meaning not available yet.]
+- set the Linux keyboard to get the F1-F5 function keys right.
+
+In general it is NOT advisable to ever modify the above
+indicated settings unless you know what you're doing.
+
+Note that applications then may not react properly on changing
+the window size anymore. Often they ignore it completely or
+behave strange in other ways. I even saw one application dying
+from the shock of noticing that the linux console has simply
+changed it's size (Debian's dselect). Since the Linux console
+can be resized, this behavior is to be considered a bug in
+these applications, i cannot help it.
+
+Mouse-aware application will most probably not recognize
+mouse events (especially mc) since they might try to get
+these events from gpm instead.
+
+MC will not be able to access the special console devices
+then and cannot simulate a secondary screen, treating the
+emulation as "dummy" with respect to it (^O).
+
+Some application will also assume that the default background
+is black, thereby producing random black background ranges.
+
+The linux console can some funny quirks with special graphic
+characters and i will not teach Konsole all of them. In rare
+cases, they might display differently. Affected to my knowledge
+are especially non-VT100 extensions taken from the AT&T 4410v1,
+these are arrow symbols, a full block and a checker board. Most
+other tricks that the linux console is able to do with character
+sets are eventually not even used in a single instance, so you
+will hardly be disturbed by it.
diff --git a/konsole/README.moreColors b/konsole/README.moreColors
new file mode 100644
index 000000000..dcd06fa3a
--- /dev/null
+++ b/konsole/README.moreColors
@@ -0,0 +1,98 @@
+[README.moreColors]
+
+The konsole adopted some ESC codes allowing to use extended
+color spaces.
+
+There is a predefined 256 color space compatible with his
+xterm sister, and, even beyond that, a 3-byte RGB color space.
+
+The ESC codes are as follows:
+
+ ESC[ ... 38;2;<r>;<g>;<b> ... m Select RGB foreground color
+ ESC[ ... 48;2;<r>;<g>;<b> ... m Select RGB background color
+
+ ESC[ ... 38;5;<i> ... m Select indexed foreground color
+ ESC[ ... 48;5;<i> ... m Select indexed background color
+
+<r>,<g> and <b> are each values in the range of 0..255 and
+represent the brightness as usual for the respective color.
+
+<i> likely is a value in 0..256, but represents an indexed
+color assignment composed as follows:
+
+ 0 .. 15 - System color, these are taken from the schema.
+ 16 .. 231 - Forms a 6x6x6 RGB color cube.
+232 .. 255 - A gray scale ramp without black and white.
+
+Try the tests/color-spaces.pl to visualize the assignment.
+
+
+----------------------------------------------------------------
+
+A note on conformance
+
+These ESC codes break the "associativity" of SGR, but after some
+research the result is, that the standard itself is broken here.
+
+The perhaps best codes due to ECMA-48 would probably be e.g.
+38:2:<r>:<g>:<b>, i.e. consistently a colon instead of a semicolon.
+But apparently, this is defined different in ISO-8613 (which is
+included at this place in ECMA-48), actually breaking ECMA-48.
+
+We cannot help this and implemented the codes as above, which
+is a balanced decision.
+
+For 256 color mode, this is compatible with xterm and perhaps
+with other xterm compatible terminal emulations.
+
+
+| ------- Additional Comments From awendt putergeek com 2006-06-07 07:40 -------
+| > So a parameter substring is 0-9 and the colon. The semicolon separates
+| > sub-parameters. Thus 48:5:<Color> would be one sub-parameter, and
+| > 48;5;<Color> many independent, each having an independent meaning in case
+| > of a selective parameter.
+|
+|
+| I think you may be onto something here with the colons... I was able to find
+| ITU T.416 (which is the same as ISO 8613-6) and it says:
+|
+| --- snip ---
+|
+| The parameter values 38 and 48 are followed by a parameter substring used to
+| select either the character foreground ?colour value? or the character
+| background ?colour value?.
+|
+| A parameter substring for values 38 or 48 may be divided by one or more
+| separators (03/10) into parameter elements, denoted as Pe. The format of such
+| a parameter sub-string is indicated as:
+|
+| Pe : P ...
+|
+| Each parameter element consists of zero, one or more bit combinations from
+| 03/00 to 03/09, representing the digits 0 to 9. An empty parameter element
+| represents a default value for this parameter element. Empty parameter
+| elements at the end of the parameter substring need not be included.
+|
+| The first parameter element indicates a choice between:
+|
+| 0 implementation defined (only applicable for the character
+| foreground colour)
+| 1 transparent;
+| 2 direct colour in RGB space;
+| 3 direct colour in CMY space;
+| 4 direct colour in CMYK space;
+| 5 indexed colour.
+|
+| If the first parameter has the value 0 or 1, there are no additional parameter
+| elements.
+|
+| If the first parameter element has the value 5, then there is a second
+| parameter element specifying the index into the colour table given by the
+| attribute ?content colour table? applying to the object with which the
+| content is associated.
+|
+| --- snip ---
+|
+| The separator character 03/10 they use is a colon, not a semicolon... I wonder
+| if the xterm implementation was based on an improper reading of the standard?
+|
diff --git a/konsole/README.ports b/konsole/README.ports
new file mode 100644
index 000000000..06c3b6c13
--- /dev/null
+++ b/konsole/README.ports
@@ -0,0 +1,28 @@
+[README.ports]
+
+Now that KDE is used more widely on different UNIX platforms,
+i'm receiving messages about incompatibilities. Most of them
+are centered around TEPty.C which handles the pseudo ttys.
+
+Since this stuff is always a little moving, it is not unlikely
+that you may experience problems with it. For this reason, i'm
+collecting references to developers who are competent on these
+platforms, so that we can iron out such problems quickly.
+
+If you like to volunteer for your prefered platform and you
+compile development versions of KDE on a more or less regular
+basis, i'd be glad if you drop me a line.
+
+Lars Doelle <lars.doelle@on-line.de>
+
+
+Platform Experts
+----------------
+
+- Tru64 - Thomas Leitner <tom@radar.tu-graz.ac.at>
+- Solaris - Stephan Kulow <coolo@kde.org>
+- FreeBSD - ?
+- HP-UX - ?
+- AIX - ?
+- OpenBSD - Marc Espie <espie@openbsd.org>
+
diff --git a/konsole/README.unicode b/konsole/README.unicode
new file mode 100644
index 000000000..bf8134674
--- /dev/null
+++ b/konsole/README.unicode
@@ -0,0 +1,84 @@
+[README.unicode]
+
+Konsole supports unicode, which means one can display up
+to 64K different glyphs at the same time on one screen.
+
+The enhancement is pretty complete and the main current
+advantage should be more a smooth operation of konsole
+within localed environments. At least the european locales
+should be enabled to use their local scripts when running
+konsole.
+
+To fully install it, please get a complete set of unicode
+enhanced fixed fonts from
+
+ <http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html>.
+
+These fonts are expected to be distributed with the next X11
+release. Konsole distributes one of this fonts for your
+convenience. Please add the other fonts to your local
+installation to make best use of the enhancement.
+
+Though Asiatic supplements are also available from that
+site, it is not clear at the time of writing, whether
+the current implementation copes well with these scripts.
+Since i like to support these scripts, too, any feed back
+is appreachiated.
+
+Also, a new linux console font has been converted for X11.
+This font has iso10646-1 encoding and the usual vga glyphs.
+
+
+* A more precise anatomy of unicode support within konsole
+
+The internal character representation is uniquely 16 bit unicode.
+
+All in- and output connections of konsole (beside the mouse)
+are filtered through three different codecs (corresponding to
+2 different codes):
+
+ 1) Font Code - The renderer converts from unicode to the code of
+ the font to the degree that code is supported within Qt.
+ Non-iso10646 (unicode) codes are considered to be VT100
+ enhanced, meaning that 0x00 .. 0x1f contains the VT100
+ graphical characters.
+
+ 2) Client Code - This is used for bytes from and to the pty.
+ Often, the clients code is identical with the locale setting.
+
+Thus, unicode support mainly turns out to be a potter's wheel of
+code conversions.
+
+Beside these conversions, up to 2^16 diffent glyphs can be
+displayed now. Though it is not possible to type each of these
+codes, one can use utf-8 encoding on the clients side.
+
+Please note that unicode support is still under development in
+the freeware community and is not supported by terminal aware
+applications, since ncurses does currently not provide wide
+character operations.
+
+Because utf-8 contains ascii-7 properly, one can work with utf-8
+enabled as long as no international characters are used. Try to
+cat 9x15.repertoire-utf8 from the test when having utf-8 encoding
+enabled.
+
+Utf-8 code is enabled and disabled by sending <ESC>%G or <ESC>%@.
+The utf8.sh utility in the test directory does this.
+
+Though utf8 properly contains ascii-7 note that the length of a
+utf8 encoded string differs from the length of the string itself.
+This confuses many length aware programs as soon as proper (non-
+ascii-7 characters) are used, this may result in deviating cursor
+positions, corruption of the utf8 encoding by newlines inserted
+in the middle of a multibyte character, etc. This cannot be
+handled within konsole, but requieres those applications to
+become utf8 extended. Examples are readline, vi.
+
+---
+TODO: Example of non-locale client code
+ = Discontining Linux console support
+
+As a nice side effect, the Linux console support can be reduced
+to a konsole configuration example. See README.linux.console.
+---
diff --git a/konsole/configure.in.in b/konsole/configure.in.in
new file mode 100644
index 000000000..d68c0f9fc
--- /dev/null
+++ b/konsole/configure.in.in
@@ -0,0 +1,41 @@
+dnl beta tests for openpty support
+AC_MSG_CHECKING(whether we can use openpty)
+ac_use_openpty="yes"
+AC_ARG_ENABLE(openpty,
+ AC_HELP_STRING([--disable-openpty],[disable openpty (UNIX98 terminals) support [default=enabled]]),
+ [ac_use_openpty="no"])
+if test "$ac_use_openpty" = "yes"; then
+ kde_safe_LIBS=$LIBS
+ LIBS="$LIBS $LIBUTIL"
+ AC_TRY_RUN([
+#include <pty.h>
+
+int main(int argc, char* argv) {
+ int master_fd, slave_fd;
+ int result;
+
+ result = openpty(&master_fd, &slave_fd, 0, 0, 0);
+
+ return 0;
+}
+], [ac_use_openpty="yes"], [ac_use_openpty="no"])
+ LIBS=$kde_safe_LIBS
+fi
+if test "$ac_use_openpty" = "yes"; then
+ AC_DEFINE(HAVE_OPENPTY, 1, [Defines whether we can use the openpty() function])
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl Set preprocessor variable of how to get cwd from a process
+AC_MSG_CHECKING(how cwd can be be found by seperate process)
+case "$host" in
+ *-*-linux*) cwd_method='proc' ;;
+ *) cwd_method='no' ;;
+esac
+AC_MSG_RESULT($cwd_method)
+
+case "$cwd_method" in
+ proc) AC_DEFINE(HAVE_PROC_CWD, 1, [Defines whether /proc/`pid`/cwd exists]) ;;
+esac
diff --git a/konsole/doc/Konsole2.Requirements b/konsole/doc/Konsole2.Requirements
new file mode 100644
index 000000000..19cbd72fc
--- /dev/null
+++ b/konsole/doc/Konsole2.Requirements
@@ -0,0 +1,141 @@
+[Konsole2.Requirements]
+
+The current state of konsole asks for a redesign.
+
+While lower level material, especially the emulation
+comes out to be very stable over the years, the upper
+level level shifts because of new uses and fulfilled
+wishes.
+
+These cannot be implemented by evolutionary modification
+but require complete redesign/rewrites.
+
+This file is to collect requirements and ideas for this.
+
+- Here are some candidates -----------------------------
+
+- proper partification
+
+ While konsole became a proper platform for terminal
+ oriented working, fine integration with the desktop
+ did not happen yet.
+
+- connection/disconnect session to/from individual windows
+
+- gui style configuration for $KDEDIR/share/apps/konsole/*
+
+- improved history algorithm
+
+ Current history algorithm does not allow to limit the
+ histories size. Also, it descreases the speed.
+
+- improve unicode support
+
+ this is both an ncurses and terminfo issue.
+ We may need to provide some help for these packages.
+
+- tty vs. fullscreen mode solution.
+
+ The visual appearence of the problem is that information
+ may get lost when the screen is resized. Likely, lines
+ scrolled into the history could be unfolded.
+
+- systematic solution for the configuration issue.
+
+ Konsole can be configured from many sources.
+ Adding or changing configuration items needs
+ to be localized.
+
+ The compiled-in defaults should consistently
+ be handled like the default.Keytab.
+
+- Multi session startup
+
+ Having multible sessions in the beginning
+ would be a nice option.
+
+- Event flow and class design.
+
+ The Emulation::setConnect logic has severe flaws.
+ The whole class design needs to be revisited in
+ light of the session material that came in, too.
+ Likely, cut&paste happily flows from the back
+ through the chest right into the eye.
+
+- Improved integration of technical documentation.
+
+ This is a freeware project and so, proper technical
+ documentation is even more importent than in a
+ commertial environment.
+
+- A more generic handling of different sorts of emulations.
+
+ This means to fix a long term problem in mc(1) first,
+ to allow using terminfo entries other then 'xterm'.
+
+ We could use these then to weed out obsolete material
+ and to make konsole having an ECMA compatible emulation
+ by default. This would perhaps allow to pull the emulation
+ straight again.
+
+... Check through wishlist and FIXME/Notes/PROJECTS
+
+--------------------------------------------------------
+- copy of the earlier file PROJECTS --------------------
+
+The state of konsole is that the lower level mechanics are very
+stable, while the overall program still shifts purpose.
+
+After a year or two of these shifts the upper levels ask for a
+redesign. This will come out to be konsole2.
+
+I'll start a Konsole2.requierements instead of this file.
+
+- current issues -------------------------------------------------
+
+- add configuration for function keys. (allmost done)
+ document broken keypad (It's a QT issue really)
+ document VT100 keypad codes (doc/missing.keys)
+
+* configuration
+
+ - codec selection unfinished.
+ - command line options
+ font, menu, scrollbar, schema, kdelnk, codec, keytrans, ...
+
+* improve/complete documentation
+
+ - include README.* into doc.
+ - explain configuration files
+
+
+
+* future stuff, perhaps ------------------------------------------
+
+
+* stuff centered around resizing and text vs. matrix:
+
+ [This needs a bit explaination]
+
+ - make resizing more clever
+ to see the issue, 'ls /dev', make window smaller
+ and then larger again.
+ - introduce the concept of "logical lines" for resizing and
+ cut'n'paste.
+ - selecting lines that wrap insert a '\n' in the middle of the
+ line when pasting. A related problem occures with resizing.
+
+* write configuration utility for configuration files.
+ (*.schema,*.kdelnk.*.keytab)
+
+- when manipulating binary files, sometimes one
+ screws up ones terminal settings. xterm has
+ a convenient 'hard reset' menu choice.
+
+- keep session open after client program termination.
+ Useful for things like 'konsole -e ls'.
+
+- deflicker, setting all the attributes separately
+ both when creating and changing to a session
+ creates 3 setimage and 1 paint events. (This may
+ have improved, lately).
diff --git a/konsole/doc/Makefile.am b/konsole/doc/Makefile.am
new file mode 100644
index 000000000..e60c34d10
--- /dev/null
+++ b/konsole/doc/Makefile.am
@@ -0,0 +1,5 @@
+
+SUBDIRS=VT100
+
+EXTRA_DIST = More README.first histBuffer missing.codes missing.keys
+
diff --git a/konsole/doc/More/Ansi_esc.txt b/konsole/doc/More/Ansi_esc.txt
new file mode 100644
index 000000000..ede1a7c24
--- /dev/null
+++ b/konsole/doc/More/Ansi_esc.txt
@@ -0,0 +1,77 @@
+ ANSI ESCAPE SEQUENCES
+===============================================================================
+Wherever you see '#', that should be replaced by the appropriate number.
+
+ ESC code sequence Function
+ ------------------- ---------------------------
+Cursor Controls:
+ ESC[#;#H or ESC[#;#f Moves cusor to line #, column #
+ ESC[#A Moves cursor up # lines
+ ESC[#B Moves cursor down # lines
+ ESC[#C Moves cursor forward # spaces
+ ESC[#D Moves cursor back # spaces
+ ESC[#;#R Reports current cursor line & column
+ ESC[s Saves cursor position for recall later
+ ESC[u Return to saved cursor position
+
+Erase Functions:
+ ESC[2J Clear screen and home cursor
+ ESC[K Clear to end of line
+
+Set Graphics Rendition:
+ ESC[#;#;....;#m Set display attributes where # is
+ 0 for normal display
+ 1 for bold on
+ 4 underline (mono only)
+ 5 blink on
+ 7 reverse video on
+ 8 nondisplayed (invisible)
+ 30 black foreground
+ 31 red foreground
+ 32 green foreground
+ 33 yellow foreground
+ 34 blue foreground
+ 35 magenta foreground
+ 36 cyan foreground
+ 37 white foreground
+ 40 black background
+ 41 red background
+ 42 green background
+ 43 yellow background
+ 44 blue background
+ 45 magenta background
+ 46 cyan background
+ 47 white background
+
+ ESC[=#;7h or Put screen in indicated mode where # is
+ ESC[=h or 0 for 40 x 25 black & white
+ ESC[=0h or 1 for 40 x 25 color
+ ESC[?7h 2 for 80 x 25 b&w
+ 3 for 80 x 25 color
+ 4 for 320 x 200 color graphics
+ 5 for 320 x 200 b & w graphics
+ 6 for 640 x 200 b & w graphics
+ 7 to wrap at end of line
+
+ ESC[=#;7l or ESC[=l or Resets mode # set with above command
+ ESC[=0l or ESC[?7l
+
+Keyboard Reassignments:
+ ESC[#;#;...p Keyboard reassignment. The first ASCII
+ or ESC["string"p code defines which code is to be
+ or ESC[#;"string";#; changed. The remaining codes define
+ #;"string";#p what it is to be changed to.
+
+ E.g. Reassign the Q and q keys to the A and a keys (and vice versa).
+ ESC [65;81p A becomes Q
+ ESC [97;113p a becomes q
+ ESC [81;65p Q becomes A
+ ESC [113;97p q becomes a
+
+ E.g. Reassign the F10 key to a DIR command.
+ ESC [0;68;"dir";13p The 0;68 is the extended ASCII code
+ for the F10 key and 13 is the ASCII
+ code for a carriage return.
+
+ Other function key codes F1=59,F2=60,F3=61,F4=62,F5=63
+ F6=64,F7=65,F8=66,F9=67,F10=68
diff --git a/konsole/doc/More/Eterm.ref b/konsole/doc/More/Eterm.ref
new file mode 100644
index 000000000..849be1f3b
--- /dev/null
+++ b/konsole/doc/More/Eterm.ref
@@ -0,0 +1,508 @@
+--------------------------------------------------------------------------
+ Eterm Technical Reference
+--------------------------------------------------------------------------
+ Reworked from XTerm documentation and from other sources
+
+Definitions
+
+c The literal character c.
+
+C A single (required) character.
+
+Ps A single (usually optional) numeric parameter, composed of one or
+ more digits.
+
+Pm A multiple numeric parameter composed of any number of single
+ numeric parameters, separated by ; character(s).
+
+Pt A text parameter composed of printable characters.
+
+[-] marks unimplemented sequences
+[*] marks Eterm-specific (non-ANSI/ISO) sequences
+--------------------------------------------------------------------------
+
+ENQ Enquiry (Ctrl-E), Send Device Attributes (DA)
+ -> request attributes from terminal
+ -> ESC[?1;2c
+ (``I am a VT100 with Advanced Video Option.'')
+BEL Bell (Ctrl-G)
+BS Backspace (Ctrl-H)
+TAB Horizontal Tab (HT) (Ctrl-I)
+LF Line Feed or New Line (NL) (Ctrl-J)
+VT Vertical Tab (Ctrl-K) same as LF
+FF Form Feed or New Page (NP) (Ctrl-L) same as LF
+CR Carriage Return (Ctrl-M)
+SO Shift Out (Ctrl-N), invokes the G1 character set
+ -> Switch to Alternate Character Set
+SI Shift In (Ctrl-O), invokes the G0 character set (the default)
+ -> Switch to Standard Character Set
+SPC Space Character
+
+ESC # 8 DEC Screen Alignment Test (DECALN)
+
+Character Sets
+--------------------------------------------------------------------------
+ESC ( C Designate G0 Character Set (ISO 2022)
+ESC ) C Designate G1 Character Set (ISO 2022)
+ESC * C Designate G2 Character Set (ISO 2022)
+ESC + C Designate G3 Character Set (ISO 2022)
+ESC $ C Designate Kanji Character Set
+ where
+ C = 0 -> DEC Special Character and Line Drawing Set
+ C = A -> United Kingdom (UK)
+ C = B -> United States (USASCII)
+[-] C = < -> Multinational character set
+[-] C = 5 -> Finnish character set
+[-] C = C -> Finnish character set
+[-] C = K -> German character set
+
+ESC 7 Save Cursor (SC)
+ESC 8 Restore Cursor (RC)
+ESC = Application Keypad (SMKX)
+ESC > Normal Keypad (RMKX)
+
+ - If the numeric keypad is activated, e.g. Num_Lock has been
+ pressed, numbers or control functions are generated by the
+ numeric keypad (see Key Codes section)
+
+ESC D Index (IND)
+ESC E Next Line (NEL)
+ESC H Tab Set (HTS)
+ESC M Reverse Index (RI)
+[-] ESC N Single Shift Select of G2 Character Set (SS2):
+ affects next character only
+[-] ESC O Single Shift Select of G3 Character Set (SS3):
+ affects next character only
+
+ESC Z Obsolete form of ESC [ c
+ Optional (compile-time) returns -> ESC[?1;2C
+
+ESC [ Ps @ Insert Ps (Blank) Character(s) [default: 1] (ICH)
+ESC [ Ps A Cursor Up Ps Times [default: 1] (CUU)
+ESC [ Ps B Cursor Down Ps Times [default: 1] (CUD)
+ESC [ Ps C Cursor Forward Ps Times [default: 1] (CUF)
+ESC [ Ps D Cursor Backward Ps Times [default: 1] (CUB)
+ESC [ Ps E Cursor Down Ps Times [default: 1] and to first column
+ESC [ Ps F Cursor Up Ps Times [default: 1] and to first column
+ESC [ Ps G Cursor to Column Ps (HPA)
+
+ESC [ Ps;Ps H Cursor Position [row;column] [default: 1;1] (CUP)
+ESC [ Ps I Move forward Ps [default: 1] tab stops
+ESC [ Ps J Erase in Display (ED)
+ Ps = 0 -> Clear Below (default)
+ Ps = 1 -> Clear Above
+ Ps = 2 -> Clear All
+ESC [ Ps K Erase in Line (EL)
+ Ps = 0 -> Clear to Right (default)
+ Ps = 1 -> Clear to Left (EL1)
+ Ps = 2 -> Clear All
+ESC [ Ps L Insert Ps Line(s) [default: 1] (IL)
+ESC [ Ps M Delete Ps Line(s) [default: 1] (DL)
+ESC [ Ps P Delete Ps Character(s) [default: 1] (DCH)
+[-] ESC [ Ps;Ps;Ps;Ps;Ps T
+ Initiate hilite mouse tracking. Parameters are
+ [func;startx;starty;firstrow;lastrow].
+ See the section Mouse Tracking.
+ESC [ Ps W Tabulator functions
+ Ps = 0 -> Tab Set (HTS)
+ Ps = 2 -> Tab Clear (TBC), Clear Current Column (default)
+ Ps = 5 -> Tab Clear (TBC), Clear All
+ESC [ Ps X Erase Ps Character(s) [default: 1] (ECH)
+ESC [ Ps Z Move backward Ps [default: 1] tab stops
+ESC [ PS ` == ESC [ PS G
+ESC [ Ps a == ESC [ Ps C
+
+ESC [ Ps c Send Device Attributes (DA)
+ Ps = 0 or omitted -> request attributes from terminal
+ -> ESC[?1;2c
+ (``I am a VT100 with Advanced Video Option.'')
+ESC [ Ps d Cursor to Line Ps (VPA)
+ESC [ Ps e == ESC [ Ps A
+ESC [ Ps;Ps f Horizontal and Vertical Position [row;column]
+ [default: 1;1] (HVP)
+ESC [ Ps g Tab Clear (TBC)
+ Ps = 0 -> Clear Current Column (default)
+ Ps = 3 -> Clear All (TBC)
+ESC [ Ps i Printing
+ Ps = 4 -> disable transparent print mode (MC4)
+[-] Ps = 5 -> enable transparent print mode (MC5)
+ESC [ Pm h Set Mode (SM)
+ESC [ Pm l Reset Mode (RM)
+ Ps = 4
+ h -> Insert Mode (SMIR)
+ l -> Replace Mode (RMIR)
+[-] Ps = 20
+ h -> Automatic Newline (LNM)
+ l -> Normal Linefeed (LNM)
+
+ESC [ Pm m Character Attributes (SGR)
+ Ps = 0 -> Normal (default)
+ Ps = 1 / 22 -> On / Off Bold (bright fg)
+ Ps = 4 / 24 -> On / Off Underline
+ Ps = 5 / 25 -> On / Off Blink (bright bg)
+ Ps = 7 / 27 -> On / Off Inverse
+ Ps = 30 / 40 -> fg / bg Black
+ Ps = 31 / 41 -> fg / bg Red
+ Ps = 32 / 42 -> fg / bg Green
+ Ps = 33 / 43 -> fg / bg Yellow
+ Ps = 34 / 44 -> fg / bg Blue
+ Ps = 35 / 45 -> fg / bg Magenta
+ Ps = 36 / 46 -> fg / bg Cyan
+ Ps = 37 / 47 -> fg / bg White
+ Ps = 39 / 49 -> fg / bg Default
+
+ESC [ Ps n Device Status Report (DSR)
+ Ps = 5 -> Status Report ESC [ 0 n (``OK'')
+ Ps = 6 -> Report Cursor Position (CPR) [row;column]
+ as ESC [ r ; c R
+ Ps = 7 -> Request Display Name
+ Ps = 8 -> Request Version Number (place in window title)
+
+ESC [ Ps;Ps r Set Scrolling Region [top;bottom]
+ [default: full size of window] (CSR)
+ESC [ Ps x Request Terminal Parameters (DECREQTPARM)
+
+ESC [ ? Pm h DEC Private Mode Set (DECSET)
+ESC [ ? Pm l DEC Private Mode Reset (DECRST)
+ESC [ ? Pm r Restore previously saved DEC Private Mode Values.
+ESC [ ? Pm s Save DEC Private Mode Values.
+ESC [ ? Pm t Toggle DEC Private Mode Values (Eterm extension).
+ Ps = 1
+ h -> Application Cursor Keys (DECCKM)
+ l -> Normal Cursor Keys (DECCKM)
+[-] Ps = 2
+ h -> Designate USASCII for character sets G0-G3.
+ Ps = 3
+ h -> 132 Column Mode (DECCOLM)
+ l -> 80 Column Mode (DECCOLM)
+[-] Ps = 4
+ h -> Smooth (Slow) Scroll (DECSCLM)
+ l -> Jump (Fast) Scroll (DECSCLM)
+ Ps = 5
+ h -> Reverse Video (DECSCNM)
+ l -> Normal Video (DECSCNM)
+ Ps = 6
+ h -> Origin Mode (DECOM)
+ l -> Normal Cursor Mode (DECOM)
+ Ps = 7
+ h -> Wraparound Mode (DECAWM)
+ l -> No Wraparound Mode (DECAWM)
+[-] Ps = 8
+ h -> Auto-repeat Keys (DECARM)
+ l -> No Auto-repeat Keys (DECARM)
+ Ps = 9 (X10 XTerm mouse reporting)
+ h -> Send Mouse X & Y on button press.
+ l -> Don't Send Mouse X & Y on button press
+ See the section Mouse Tracking.
+[*] Ps = 10
+ h -> menuBar visisble
+ l -> menuBar invisisble
+ Ps = 25
+ h -> Visible cursor {cnorm/cvvis}
+ l -> Invisible cursor {civis}
+[*] Ps = 30
+ h -> scrollBar visisble
+ l -> scrollBar invisisble
+[*] Ps = 35
+ h -> Allow XTerm Shift+key sequences
+ l -> Disallow XTerm Shift+key sequences
+[-] Ps = 38 -> Enter Tektronix Mode (DECTEK)
+ Ps = 40
+ h -> Allow 80 <--> 132 Mode
+ l -> Disallow 80 <--> 132 Mode
+[-] Ps = 44
+ h -> Turn On Margin Bell
+ l -> Turn Off Margin Bell
+[-] Ps = 45
+ h -> Reverse-wraparound Mode
+ l -> No Reverse-wraparound Mode
+[-] Ps = 46
+ h -> Start Logging (normally disabled at compile-time)
+ l -> Stop Logging (normally disabled at compile-time)
+ Ps = 47
+ h -> Use Alternate Screen Buffer
+ l -> Use Normal Screen Buffer
+ Ps = 66
+ h -> Application Keypad (DECPAM)
+ l -> Normal Keypad (DECPNM)
+ Ps = 67
+ h -> Backspace key sends BS (DECBKM)
+ l -> Backspace key sends DEL
+ Ps = 1000 (X11 XTerm mouse reporting)
+ h -> Send Mouse X & Y on button press and release.
+ See the section Mouse Tracking.
+ l -> Don't Send Mouse X & Y on button press and release
+[-] Ps = 1001 (X11 XTerm mouse tracking)
+ h -> Use Hilite Mouse Tracking.
+ See the section Mouse Tracking.
+ l -> Don't Use Hilite Mouse Tracking
+ESC ] Ps;Pt BEL
+ Set Text Parameters
+ Ps = 0 -> Change Icon Name and Window Title to Pt
+ Ps = 1 -> Change Icon Name to Pt
+ Ps = 2 -> Change Window Title to Pt
+[*] Ps = 10 -> menuBar command Pt (compile-time option)
+ see menuBar section below
+[*] Ps = 20 -> Change default background pixmap to Pt
+ (compile-time option)
+ see XPM section below
+[*] Ps = 39 -> Change default foreground color to Pt
+ (compile-time option)
+[-] Ps = 46 -> Change Log File to Pt (normally disabled by a
+ compile-time option)
+[*] Ps = 49 -> Change default background color to Pt
+ (compile-time option)
+ Ps = 50 -> Set Font to Pt
+[*] special values of Pt (Eterm extension)
+ "#+n" change up <n> font(s)
+ "#-n" change down <n> font(s)
+ if <n> is missing or 0, a value of 1 is used
+ "" change to font0
+ "#n" change to font<n>
+
+ESC c Full Reset (RIS)
+ESC n Invoke the G2 Character Set (LS2)
+ESC o Invoke the G3 Character Set (LS3)
+
+--------------------------------------------------------------------------
+ Eterm XPM
+--------------------------------------------------------------------------
+
+For the XPM XTerm escape sequence, "ESC ] 20; Pt BEL", Pt can be the
+name of the background pixmap followed by a sequence of
+scaling/positioning commands separated by semi-colons.
+
+The scaling/positioning commands:
+ `?' = query scale/position
+ `WxH+X+Y' = change scale and position
+ `WxH+X' -> Y = X
+ `WxH' -> Y = X = 50
+ `W+X+Y' -> H = W
+ `W+X' -> H = W, Y = X
+ `W' -> H = W, X = Y = 50
+ `=+X+Y' = change position (absolute)
+ `+X+Y' = change position (relative)
+ `=+X' -> Y = X
+ `+X' -> Y = X
+ `Wx0' -> W *= W/100
+ `0xH' -> H *= H/100
+
+For example:
+eg.
+ "\E]20;mona.xpm;200"
+ loads the pixmap `mona.xpm' and sets the scaling to 200%
+or
+ "\E]20;;200;?\a"
+
+ sets the scaling of the current pixmap to 200% and displays
+ the image geometry in the title.
+
+--------------------------------------------------------------------------
+ Eterm menuBar
+--------------------------------------------------------------------------
+
+For the menubar XTerm escape sequence, "ESC ] 10; Pt BEL", the syntax
+of Pt is as follows:
+
+ = title set menuBar title
+ +/ access menuBar top level
+ -/ remove menuBar top level
+ NUL remove menuBar top level
+
+ + [/menu/path/]submenu add/access menu
+ - [/menu/path/]submenu remove menu
+
+ + [/menu/path/]{item}[{rtext}] [action] add/alter item
+ - [/menu/path/]{item} remove item
+
+ + [/menu/path/]{-} add separator
+ - [/menu/path/]{-} remove separator
+
+ + ../ access parent menu (1 level)
+ + ../../ access parent menu (multiple levels)
+
+ Define menu quick arrows
+ <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
+
+NB: the square brackets indicate optional values.
+
+The title may contain the following format specifiers:
+ %% literal '%' character
+ %v Eterm version
+
+In the `action' associated with a menu item, special characters must be
+backslash-escaped:
+ `\a', `\b', `\E `\e', `\n', `\r', `\t', '\octal'
+or in control-character notation:
+ ^@, ^A .. ^Z .. ^_, ^?
+
+ If `action' begins with a NUL (^@) character followed by
+ non-NUL characters, the leading NUL is stripped off and the
+ balance is sent back to Eterm.
+
+ To send a string starting with a NUL (^@) character to the
+ program, start action with a pair of NUL characters (^@^@),
+ the first of which will be stripped off and the balance
+ directed to the program.
+
+ As a concession and a convenience to the many Emacs work-alike
+ editors, an action string can be be starting with the following:
+ `M-...', eg, `M-$' == `\E$'
+ and for Meta-x commands, a carriage-return will be appended if
+ missing and leading space will be skipped
+
+ eg, `M-x apropos' == `\Exapropos\r'
+
+ The option {rtext} will be right-justified. In the absence of
+ a specified action, this text will be as the used. So, for
+ example,
+ Pt = `+{Open}{^X^F}'
+ is equivalent to
+ Pt = `+{Open){^X^F}{^X^F}'
+
+ To only have the right-justified text, either use the same name
+ for both left and right labels, eg:
+ Pt = `+{Open}{Open} Open-File-Action'
+ or simply hide the left label by preceeding it with a dot, eg:
+ Pt = `+{.anyLabel}{Open} Open-File-Action'
+
+ Since the left label is used for matching, it is necessary.
+
+ The menus also provide a hook for `quick arrows' to provide
+ easier user access. If nothing has been explicitly set, the
+ default is to emulate the curror keys. The syntax permits
+ each arrow to be altered individually or all four at once with
+ re-entering their common beginning/end text. For example, to
+ explicitly associate cursor actions with the arrows, any of the
+ following forms could be used:
+
+ Pt = `<u>\\E[A'
+ Pt = `<d>\\E[B'
+ Pt = `<r>\\E[C'
+ Pt = `<l>\\E[D'
+ or
+ Pt = `<u>\\E[A<d>\\E[B<r>\\E[C<l>\\E[D'
+ or
+ Pt = `<b>\\E[<u>A<d>B<r>C<l>D'
+
+ It is probably easiest just to see the examples.
+
+--------------------------------------------------------------------------
+ Mouse reporting
+--------------------------------------------------------------------------
+
+ESC [ M <b> <x> <y> report mouse position
+ The lower 2 bits of <b> indicate the button:
+ Button = <b> & 3 - SPACE
+ 0 = Button1 pressed
+ 1 = Button2 pressed
+ 2 = Button3 pressed
+ 3 = button released (X11 mouse report)
+
+ The upper bits of <b> indicate the modifiers when
+ the button was pressed and are added together
+ (X11 mouse report only):
+ State = <b> & 28 - SPACE
+ 4 = Shift
+ 8 = Meta
+ 16 = Control
+
+ Col = <x> - SPACE
+ Row = <y> - SPACE
+
+--------------------------------------------------------------------------
+ Eterm special graphics mode:
+--------------------------------------------------------------------------
+ESC G Q query if graphics are available
+-> ESC G 0 no graphics available
+-> ESC G 1 graphics available (color only)
+
+Add more documentation here, if anyone actually cares.
+ESC G W <x>;<y>;<w>;<h>: create window
+ESC G G <id>: query window
+-> ESC G <id> <x> <y> <w> <h> <fw> <fh> <nw> <nh>
+ESC G L <id> start line
+ESC G P <id> start point
+ESC G F <id> start fill
+ESC G C <id> clear window
+ESC G T <id>;<x>; <y>;<mode>;<len>:<text> place text
+
+--------------------------------------------------------------------------
+ Key Codes
+--------------------------------------------------------------------------
+ Normal Shift Control Application
+Up ESC [ A ESC [ a ESC O a ESC O A
+Down ESC [ B ESC [ b ESC O b ESC O B
+Right ESC [ C ESC [ c ESC O c ESC O C
+Left ESC [ D ESC [ d ESC O d ESC O D
+
+ Normal Shift Control
+Tab ^I ESC [ Z ^I
+BackSpace ^H ^? ^?
+
+ Normal Shift Control Ctrl+Shift
+Home == Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
+Insert ESC [ 2 ~ paste-mouse ESC [ 2 ^ ESC [ 2 @
+Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+End == Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
+Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
+Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
+
+Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+
+Function Keys:
+(Note: Shift + F1-10 generates F11-20)
+ Norm Shift Control Ctrl+Shift
+F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
+F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
+F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
+F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
+F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
+
+F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
+F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
+F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
+F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
+F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
+
+F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
+F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
+F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
+F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
+
+F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
+F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
+
+F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
+F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
+F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
+F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
+
+Keypad:
+ use Shift to temporarily override Appl-Keypad setting
+ use Num_Lock to toggle Appl-Keypad setting
+ if Num_Lock is off, escape sequences toggle Appl-Keypad setting
+------
+ Normal Application
+KP_Enter ^M ESC O M
+KP_F1 ESC O P ESC O P
+KP_F2 ESC O Q ESC O Q
+KP_F3 ESC O R ESC O R
+KP_F4 ESC O S ESC O S
+XK_KP_Multiply * ESC O j
+XK_KP_Add + ESC O k
+XK_KP_Separator , ESC O l
+XK_KP_Subtract - ESC O m
+XK_KP_Decimal . ESC O n
+XK_KP_Divide / ESC O o
+XK_KP_0 0 ESC O p
+XK_KP_1 1 ESC O q
+XK_KP_2 2 ESC O r
+XK_KP_3 3 ESC O s
+XK_KP_4 4 ESC O t
+XK_KP_5 5 ESC O u
+XK_KP_6 6 ESC O v
+XK_KP_7 7 ESC O w
+XK_KP_8 8 ESC O x
+XK_KP_9 9 ESC O y
+--------------------------------------------------------------------------
diff --git a/konsole/doc/More/ansi.sys.txt b/konsole/doc/More/ansi.sys.txt
new file mode 100644
index 000000000..5600175f3
--- /dev/null
+++ b/konsole/doc/More/ansi.sys.txt
@@ -0,0 +1,355 @@
+<TITLE>ANSI.SYS -- ansi terminal emulation escape sequences</TITLE>
+
+ ANSI.SYS
+
+Defines functions that change display graphics, control cursor movement, and
+reassign keys. The ANSI.SYS device driver supports ANSI terminal emulation
+of escape sequences to control your system's screen and keyboard. An ANSI
+escape sequence is a sequence of ASCII characters, the first two of which
+are the escape character (1Bh) and the left-bracket character (5Bh). The
+character or characters following the escape and left-bracket characters
+specify an alphanumeric code that controls a keyboard or display function.
+ANSI escape sequences distinguish between uppercase and lowercase letters;
+for example,"A" and "a" have completely different meanings.
+
+
+Parameters used in ANSI escape sequences
+
+Pn
+ Numeric parameter. Specifies a decimal number.
+
+Ps
+ Selective parameter. Specifies a decimal number that you use to select
+ a function. You can specify more than one function by separating the
+ parameters with semicolons.
+
+PL
+ Line parameter. Specifies a decimal number that represents one of the
+ lines on your display or on another device.
+
+Pc
+ Column parameter. Specifies a decimal number that represents one of the
+ columns on your screen or on another device.
+
+ANSI escape sequences for cursor movement, graphics, and keyboard settings
+
+In the following list of ANSI escape sequences, the abbreviation ESC
+represents the ASCII escape character 27 (1Bh), which appears at the
+beginning of each escape sequence.
+
+ESC[PL;PcH
+ Cursor Position: Moves the cursor to the specified position
+ (coordinates). If you do not specify a position, the cursor moves to the
+ home position - the upper-left corner of the screen (line 0, column
+ 0). This escape sequence works the same way as the following Cursor
+ Position escape sequence.
+
+ESC[PL;Pcf
+ Cursor Position: Works the same way as the preceding Cursor Position
+ escape sequence.
+
+ESC[PnA
+ Cursor Up: Moves the cursor up by the specified number of lines without
+ changing columns. If the cursor is already on the top line, ANSI.SYS
+ ignores this sequence.
+
+ESC[PnB
+ Cursor Down: Moves the cursor down by the specified number of lines
+ without changing columns. If the cursor is already on the bottom line,
+ ANSI.SYS ignores this sequence.
+
+ESC[PnC
+ Cursor Forward: Moves the cursor forward by the specified number of
+ columns without changing lines. If the cursor is already in the
+ rightmost column, ANSI.SYS ignores this sequence.
+
+ESC[PnD
+ Cursor Backward: Moves the cursor back by the specified number of
+ columns without changing lines. If the cursor is already in the leftmost
+ column, ANSI.SYS ignores this sequence.
+
+ESC[s
+ Save Cursor Position: Saves the current cursor position. You can move
+ the cursor to the saved cursor position by using the Restore Cursor
+ Position sequence.
+
+ESC[u
+ Restore Cursor Position: Returns the cursor to the position stored
+ by the Save Cursor Position sequence.
+
+ESC[2J
+ Erase Display: Clears the screen and moves the cursor to the home
+ position (line 0, column 0).
+
+ESC[K
+ Erase Line: Clears all characters from the cursor position to the
+ end of the line (including the character at the cursor position).
+
+ESC[Ps;...;Psm
+ Set Graphics Mode: Calls the graphics functions specified by the
+ following values. These specified functions remain active until the next
+ occurrence of this escape sequence. Graphics mode changes the colors and
+ attributes of text (such as bold and underline) displayed on the
+ screen.
+
+ Text attributes
+ 0 All attributes off
+ 1 Bold on
+ 4 Underscore (on monochrome display adapter only)
+ 5 Blink on
+ 7 Reverse video on
+ 8 Concealed on
+
+ Foreground colors
+ 30 Black
+ 31 Red
+ 32 Green
+ 33 Yellow
+ 34 Blue
+ 35 Magenta
+ 36 Cyan
+ 37 White
+
+ Background colors
+ 40 Black
+ 41 Red
+ 42 Green
+ 43 Yellow
+ 44 Blue
+ 45 Magenta
+ 46 Cyan
+ 47 White
+
+ Parameters 30 through 47 meet the ISO 6429 standard.
+
+ESC[=psh
+ Set Mode: Changes the screen width or type to the mode specified
+ by one of the following values:
+
+ 0 40 x 148 x 25 monochrome (text)
+ 1 40 x 148 x 25 color (text)
+ 2 80 x 148 x 25 monochrome (text)
+ 3 80 x 148 x 25 color (text)
+ 4 320 x 148 x 200 4-color (graphics)
+ 5 320 x 148 x 200 monochrome (graphics)
+ 6 640 x 148 x 200 monochrome (graphics)
+ 7 Enables line wrapping
+ 13 320 x 148 x 200 color (graphics)
+ 14 640 x 148 x 200 color (16-color graphics)
+ 15 640 x 148 x 350 monochrome (2-color graphics)
+ 16 640 x 148 x 350 color (16-color graphics)
+ 17 640 x 148 x 480 monochrome (2-color graphics)
+ 18 640 x 148 x 480 color (16-color graphics)
+ 19 320 x 148 x 200 color (256-color graphics)
+
+ESC[=Psl
+ Reset Mode: Resets the mode by using the same values that Set Mode
+ uses, except for 7, which disables line wrapping. The last character
+ in this escape sequence is a lowercase L.
+
+ESC[code;string;...p
+ Set Keyboard Strings: Redefines a keyboard key to a specified string.
+ The parameters for this escape sequence are defined as follows:
+
+ Code is one or more of the values listed in the following table.
+ These values represent keyboard keys and key combinations. When using
+ these values in a command, you must type the semicolons shown in this
+ table in addition to the semicolons required by the escape sequence.
+ The codes in parentheses are not available on some keyboards.
+ ANSI.SYS will not interpret the codes in parentheses for those
+ keyboards unless you specify the /X switch in the DEVICE command for
+ ANSI.SYS.
+
+ String is either the ASCII code for a single character or a string
+ contained in quotation marks. For example, both 65 and "A" can be
+ used to represent an uppercase A.
+
+IMPORTANT: Some of the values in the following table are not valid for all
+ computers. Check your computer's documentation for values that
+ are different.
+
+Key Code SHIFT+code CTRL+code ALT+code
+-------------------------------------------------------------------
+
+F1 0;59 0;84 0;94 0;104
+
+F2 0;60 0;85 0;95 0;105
+
+F3 0;61 0;86 0;96 0;106
+
+F4 0;62 0;87 0;97 0;107
+
+F5 0;63 0;88 0;98 0;108
+
+F6 0;64 0;89 0;99 0;109
+
+F7 0;65 0;90 0;100 0;110
+
+F8 0;66 0;91 0;101 0;111
+
+F9 0;67 0;92 0;102 0;112
+
+F10 0;68 0;93 0;103 0;113
+
+F11 0;133 0;135 0;137 0;139
+
+F12 0;134 0;136 0;138 0;140
+
+HOME (num keypad) 0;71 55 0;119 --
+
+UP ARROW (num keypad) 0;72 56 (0;141) --
+
+PAGE UP (num keypad) 0;73 57 0;132 --
+
+LEFT ARROW (num keypad) 0;75 52 0;115 --
+
+RIGHT ARROW (num 0;77 54 0;116 --
+keypad)
+
+END (num keypad) 0;79 49 0;117 --
+
+DOWN ARROW (num keypad) 0;80 50 (0;145) --
+
+PAGE DOWN (num keypad) 0;81 51 0;118 --
+
+INSERT (num keypad) 0;82 48 (0;146) --
+
+DELETE (num keypad) 0;83 46 (0;147) --
+
+HOME (224;71) (224;71) (224;119) (224;151)
+
+UP ARROW (224;72) (224;72) (224;141) (224;152)
+
+PAGE UP (224;73) (224;73) (224;132) (224;153)
+
+LEFT ARROW (224;75) (224;75) (224;115) (224;155)
+
+RIGHT ARROW (224;77) (224;77) (224;116) (224;157)
+
+END (224;79) (224;79) (224;117) (224;159)
+
+DOWN ARROW (224;80) (224;80) (224;145) (224;154)
+
+PAGE DOWN (224;81) (224;81) (224;118) (224;161)
+
+INSERT (224;82) (224;82) (224;146) (224;162)
+
+DELETE (224;83) (224;83) (224;147) (224;163)
+
+PRINT SCREEN ÄÄ ÄÄ 0;114 ÄÄ
+
+PAUSE/BREAK ÄÄ ÄÄ 0;0 ÄÄ
+
+BACKSPACE 8 8 127 (0)
+
+ENTER 13 ÄÄ 10 (0
+
+TAB 9 0;15 (0;148) (0;165)
+
+NULL 0;3 ÄÄ ÄÄ ÄÄ
+
+A 97 65 1 0;30
+
+B 98 66 2 0;48
+
+C 99 66 3 0;46
+
+D 100 68 4 0;32
+
+E 101 69 5 0;18
+
+F 102 70 6 0;33
+
+G 103 71 7 0;34
+
+H 104 72 8 0;35
+
+I 105 73 9 0;23
+
+J 106 74 10 0;36
+
+K 107 75 11 0;37
+
+L 108 76 12 0;38
+
+M 109 77 13 0;50
+
+N 110 78 14 0;49
+
+O 111 79 15 0;24
+
+P 112 80 16 0;25
+
+Q 113 81 17 0;16
+
+R 114 82 18 0;19
+
+S 115 83 19 0;31
+
+T 116 84 20 0;20
+
+U 117 85 21 0;22
+
+V 118 86 22 0;47
+
+W 119 87 23 0;17
+
+X 120 88 24 0;45
+
+Y 121 89 25 0;21
+
+Z 122 90 26 0;44
+
+1 49 33 ÄÄ 0;120
+
+2 50 64 0 0;121
+
+3 51 35 ÄÄ 0;122
+
+4 52 36 ÄÄ 0;123
+
+5 53 37 ÄÄ 0;124
+
+6 54 94 30 0;125
+
+7 55 38 ÄÄ 0;126
+
+8 56 42 ÄÄ 0;126
+
+9 57 40 ÄÄ 0;127
+
+0 48 41 ÄÄ 0;129
+
+- 45 95 31 0;130
+
+= 61 43 ÄÄ- 0;131
+
+[ 91 123 27 0;26
+
+] 93 125 29 0;27
+
+ 92 124 28 0;43
+
+; 59 58 ÄÄ 0;39
+
+' 39 34 ÄÄ 0;40
+
+, 44 60 ÄÄ 0;51
+
+. 46 62 ÄÄ 0;52
+
+/ 47 63 ÄÄ 0;53
+
+` 96 126 ÄÄ (0;41)
+
+ENTER (keypad) 13 ÄÄ 10 (0;166)
+
+/ (keypad) 47 47 (0;142) (0;74)
+
+* (keypad) 42 (0;144) (0;78) ÄÄ
+
+- (keypad) 45 45 (0;149) (0;164)
+
++ (keypad) 43 43 (0;150) (0;55)
+
+5 (keypad) (0;76) 53 (0;143) ÄÄ
diff --git a/konsole/doc/More/ansix364.txt b/konsole/doc/More/ansix364.txt
new file mode 100644
index 000000000..da74ad156
--- /dev/null
+++ b/konsole/doc/More/ansix364.txt
@@ -0,0 +1,322 @@
+
+The following table of the ANSI X3.64 encodings is the result of some work I
+did a few years ago for BYTE magazine. BYTE made this table available for
+download from several bulletin-board systems, so I see no reason why it cannot
+be posted here for whatever private use you care to make. Just don't expect
+to make a profit selling copies of it without paying royalties to McGraw-Hill.
+
+Oh, by the way, the equivalent ISO standard is DP-6429.
+
+.....RSS
+
+
+ ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
+ in alphabetic order by mnemonic
+
+ (Inspired by the article "Toward Standardized Video Terminals: ANSI
+ X3.64 Device Control" by Mark L. Siegel, April 1984 BYTE, page 365)
+
+ (Ps and Pn are parameters expressed in ASCII.)
+ (Numeric parameters are given in decimal radix.)
+ (Abbreviations are explained in detail at end.)
+ (Spaces used in this table for clarity are not
+ used in the actual codes.)
+
+ Default Type
+Sequence Sequence Parameter or
+Mnemonic Name Sequence Value Mode
+---------------------------------------------------------------------------
+APC Applicatn Program Command Esc Fe Delim
+CBT Cursor Backward Tab Esc [ Pn Z 1 eF
+CCH Cancel Previous Character Esc T
+CHA Cursor Horzntal Absolute Esc [ Pn G 1 eF
+CHT Cursor Horizontal Tab Esc [ Pn I 1 eF
+CNL Cursor Next Line Esc [ Pn E 1 eF
+CPL Cursor Preceding Line Esc [ Pn F 1 eF
+CPR Cursor Position Report Esc [ Pn ; Pn R 1, 1
+CSI Control Sequence Intro Esc [ Intro
+CTC Cursor Tab Control Esc [ Ps W 0 eF
+CUB Cursor Backward Esc [ Pn D 1 eF
+CUD Cursor Down Esc [ Pn B 1 eF
+CUF Cursor Forward Esc [ Pn C 1 eF
+CUP Cursor Position Esc [ Pn ; Pn H 1, 1 eF
+CUU Cursor Up Esc [ Pn A 1 eF
+CVT Cursor Vertical Tab Esc [ Pn Y eF
+DA Device Attributes Esc [ Pn c 0
+DAQ Define Area Qualification Esc [ Ps o 0
+DCH Delete Character Esc [ Pn P 1 eF
+DCS Device Control String Esc P Delim
+DL Delete Line Esc [ Pn M 1 eF
+DMI Disable Manual Input Esc \ Fs
+DSR Device Status Report Esc [ Ps n 0
+EA Erase in Area Esc [ Ps O 0 eF
+ECH Erase Character Esc [ Pn X 1 eF
+ED Erase in Display Esc [ Ps J 0 eF
+EF Erase in Field Esc [ Ps N 0 eF
+EL Erase in Line Esc [ Ps K 0 eF
+EMI Enable Manual Input Esc b Fs
+EPA End of Protected Area Esc W
+ESA End of Selected Area Esc G
+FNT Font Selection Esc [ Pn ; Pn Space D 0, 0 FE
+GSM Graphic Size Modify Esc [ Pn ; Pn Space B 100, 100 FE
+GSS Graphic Size Selection Esc [ Pn Space C none FE
+HPA Horz Position Absolute Esc [ Pn ` 1 FE
+HPR Horz Position Relative Esc [ Pn a 1 FE
+HTJ Horz Tab w/Justification Esc I FE
+HTS Horizontal Tab Set Esc H FE
+HVP Horz & Vertical Position Esc [ Pn ; Pn f 1, 1 FE
+ICH Insert Character Esc [ Pn @ 1 eF
+IL Insert Line Esc [ Pn L 1 eF
+IND Index Esc D FE
+INT Interrupt Esc a Fs
+JFY Justify Esc [ Ps ; ... ; Ps Space F 0 FE
+MC Media Copy Esc [ Ps i 0
+MW Message Waiting Esc U
+NEL Next Line Esc E FE
+NP Next Page Esc [ Pn U 1 eF
+OSC Operating System Command Esc ] Delim
+PLD Partial Line Down Esc K FE
+PLU Partial Line Up Esc L FE
+PM Privacy Message Esc ^ Delim
+PP Preceding Page Esc [ Pn V 1 eF
+PU1 Private Use 1 Esc Q
+PU2 Private Use 2 Esc R
+QUAD Typographic Quadding Esc [ Ps Space H 0 FE
+REP Repeat Char or Control Esc [ Pn b 1
+RI Reverse Index Esc M FE
+RIS Reset to Initial State Esc c Fs
+RM Reset Mode Esc [ Ps l none
+SD Scroll Down Esc [ Pn T 1 eF
+SEM Select Edit Extent Mode Esc [ Ps Q 0
+SGR Select Graphic Rendition Esc [ Ps m 0 FE
+SL Scroll Left Esc [ Pn Space @ 1 eF
+SM Select Mode Esc [ Ps h none
+SPA Start of Protected Area Esc V
+SPI Spacing Increment Esc [ Pn ; Pn Space G none FE
+SR Scroll Right Esc [ Pn Space A 1 eF
+SS2 Single Shift 2 (G2 set) Esc N Intro
+SS3 Single Shift 3 (G3 set) Esc O Intro
+SSA Start of Selected Area Esc F
+ST String Terminator Esc \ Delim
+STS Set Transmit State Esc S
+SU Scroll Up Esc [ Pn S 1 eF
+TBC Tab Clear Esc [ Ps g 0 FE
+TSS Thin Space Specification Esc [ Pn Space E none FE
+VPA Vert Position Absolute Esc [ Pn d 1 FE
+VPR Vert Position Relative Esc [ Pn e 1 FE
+VTS Vertical Tabulation Set Esc J FE
+
+---------------------------------------------------------------------------
+
+Abbreviations:
+
+Intro an Introducer of some kind of defined sequence; the normal 7-bit
+ X3.64 Control Sequence Introducer is the two characters "Escape ["
+
+Delim a Delimiter
+
+x/y identifies a character by position in the ASCII table (column/row)
+
+eF editor function (see explanation)
+
+FE format effector (see explanation)
+
+F is a Final character in
+ an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
+ a control sequence (F from 4/0 to 7/14)
+
+Gs is a graphic character appearing in strings (Gs ranges from
+ 2/0 to 7/14) in the ASCII table
+
+Ce is a control represented as a single bit combination in the C1 set
+ of controls in an 8-bit character set
+
+C0 the familiar set of 7-bit ASCII control characters
+
+C1 roughly, the set of control characters available only in 8-bit systems.
+ This is too complicated to explain fully here, so read Jim Fleming's
+ article in the February 1983 BYTE, especially pages 214 through 224.
+
+Fe is a Final character of a 2-character Escape sequence that has an
+ equivalent representation in an 8-bit environment as a Ce-type
+ (Fe ranges from 4/0 to 5/15)
+
+Fs is a Final character of a 2-character Escape sequence that is
+ standardized internationally with identical representation in 7-bit
+ and 8-bit environments and is independent of the currently
+ designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
+
+I is an Intermediate character from 2/0 to 2/15 (inclusive) in the
+ ASCII table
+
+P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
+ table
+
+Pn is a numeric parameter in a control sequence, a string of zero or
+ more characters ranging from 3/0 to 3/9 in the ASCII table
+
+Ps is a variable number of selective parameters in a control sequence
+ with each selective parameter separated from the other by the code
+ 3/11 (which usually represents a semicolon); Ps ranges from
+ 3/0 to 3/9 and includes 3/11
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+/
+
+Format Effectors versus Editor Functions
+
+A format effector specifies how the final output is to be created.
+An editor function allows you to modify the specification.
+
+For instance, a format effector that moves the "active position" (the
+cursor or equvalent) one space to the left would be useful when you want to
+create an overstrike, a compound character made of two standard characters
+overlaid. Control-H, the Backspace character, is actually supposed to be a
+format effector, so you can do this. But many systems use it in a
+nonstandard fashion, as an editor function, deleting the character to the
+left of the cursor and moving the cursor left. When Control-H is assumed to
+be an editor function, you cannot predict whether its use will create an
+overstrike unless you also know whether the output device is in an "insert
+mode" or an "overwrite mode". When Control-H is used as a format effector,
+its effect can always be predicted. The familiar characters carriage
+return, linefeed, formfeed, etc., are defined as format effectors.
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+/
+
+ANSI X3.64 Mode-Changing Parameters for use with the
+ Select Mode (SM) and Reset Mode (RM) functions
+
+ Parameter Mode Mode Function
+ Characters Mnemonic
+ column/ graphic
+ row repres.
+----------------------------------------------------------------------------
+3/0 0 an error condition
+3/1 1 GATM guarded-area transfer mode
+3/2 2 KAM keyboard action mode
+3/3 3 CRM control representation mode
+3/4 4 IRM insertion/replacement mode
+3/5 5 SRTM status-reporting transfer mode
+3/6 6 ERM erasure mode
+3/7 7 VEM vertical editing mode
+3/8 8 reserved for future standardization
+3/9 9 reserved for future standardization
+3/10 : reserved separator for parameters
+3/11 ; Standard separator for parameters
+3/12 < reserved for private (experimental) use
+3/13 = reserved for private (experimental) use
+3/14 > reserved for private (experimental) use
+3/15 ? reserved for private (experimental) use
+3/1 3/0 10 HEM horizontal editing mode
+3/1 3/1 11 PUM positioning unit mode
+3/1 3/2 12 SRM send/receive mode
+3/1 3/3 13 FEAM format effector action mode
+3/1 3/4 14 FETM format effector transfer mode
+3/1 3/5 15 MATM multiple area transfer mode
+3/1 3/6 16 TTM transfer termination mode
+3/1 3/7 17 SATM selected area transfer mode
+3/1 3/8 18 TSM tabulation stop mode
+3/1 3/9 19 EBM editing boundary mode
+3/1 3/10 1: reserved separator for parameters
+3/1 3/11 1; Standard separator for parameters
+3/1 3/12 1< error condition--unspecified recovery
+3/1 3/13 1= error condition--unspecified recovery
+3/1 3/14 1> error condition--unspecified recovery
+3/1 3/15 1? error condition--unspecified recovery
+3/2 3/0 20 LNM linefeed/newline mode (not in ISO 6429)
+3/2 3/1 21
+ . .
+ . . reserved for future standardization
+ . .
+3/9 3/9 99
+
+3/12 3/0 <0
+ . .
+ . . reserved for private (experimental) use
+ . .
+3/15 3/15 ??
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+/
+
+NOTES ON THE DEC VT100 IMPLEMENTATION
+
+In the case of the popular DEC VT100 video-terminal implementation,
+the only mode that may be altered is the linefeed/newline (LNM) mode.
+Other modes are considered permanently set, reset, or not applicable
+as follows:
+
+ Set: ERM
+ Reset: CRM, EBM, FEAM, FETM, IRM, KAM, PUM, SRTM, TSM
+ N/A: GATM, HEM, MATM, SATM, TTM, VEM
+
+Control sequences implemented in the VT100 are as follows:
+
+ CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
+ LNM, NEL, RI, RIS, RM, SGR, SM, TBC
+
+plus several private DEC commands.
+
+Erasing parts of the display (EL and ED) in the VT100 is performed thus:
+
+ Erase from cursor to end of line Esc [ 0 K or Esc [ K
+ Erase from beginning of line to cursor Esc [ 1 K
+ Erase line containing cursor Esc [ 2 K
+ Erase from cursor to end of screen Esc [ 0 J or Esc [ J
+ Erase from beginning of screen to cursor Esc [ 1 J
+ Erase entire screen Esc [ 2 J
+
+The VT100 responds to receiving the DA (Device Attributes) control
+
+ Esc [ c (or Esc [ 0 c)
+
+by transmitting the sequence
+
+ Esc [ ? l ; Ps c
+
+where Ps is a character that describes installed options.
+
+The VT100's cursor location can be read with the DSR (Device Status
+Report) control
+
+ Esc [ 6 n
+
+The VT100 reports by transmitting the CPR sequence
+
+ Esc [ Pl ; Pc R
+
+where Pl is the line number and Pc is the column number (in decimal).
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+/
+
+The complete document describing the standard, "ANSI X3.64-1979:
+Additional Controls for Use with the American National Standard
+Code for Information Interchange," can be ordered for $13.50 (plus
+$4 postage) from
+
+ Standards Sales Department
+ American National Standards Institute
+ 1430 Broadway
+ New York, NY 10018
+ 212/354-3300
+
+It's best to read the full standard before using it. It also helps
+to have copies of the related standards "X3.4-1977: American
+National Standard Code for Information Interchange" (the ASCII
+standard) and "X3.41.1974: Code-Extension Techniques for Use with
+the 7-Bit Coded Character Set of American National Standard for
+Information Interchange."
+
+See also the chapter "Using Extended Screens and Keyboard Control"
+in the IBM PC-DOS manuals, especially for the coding for character
+attributes.
+
+The specification for the DEC VT100 is document EK-VT100-UG-003.
+
+(Copyright 1984 BYTE Publications, subsidiary of McGraw-Hill Inc.)
+(Permission granted to reproduce for noncommercial uses.)
+(This file prepared by Richard S. Shuford.)
+
+ \ No newline at end of file
diff --git a/konsole/doc/More/dec_vt100_codes.txt b/konsole/doc/More/dec_vt100_codes.txt
new file mode 100644
index 000000000..e9d4b9f82
--- /dev/null
+++ b/konsole/doc/More/dec_vt100_codes.txt
@@ -0,0 +1,166 @@
+Article 2317 of comp.terminals:
+Path: cs.utk.edu!darwin.sura.net!opusc!usceast!riker!chan
+From: chan@charlie.ece.scarolina.edu (Simon Chan)
+Newsgroups: comp.terminals
+Subject: INFO for VT100 !!!!!!!!
+Date: 27 Apr 1994 23:30:09 -0400
+Organization: Univ of S. Carolina, ECE Dept
+Lines: 153
+Message-ID: <chan.767503605@riker>
+NNTP-Posting-Host: riker.ece.scarolina.edu
+
+ So I am posting this once again.....
+------------------------------<Cut Here>---------------------------------------
+Taken from VT100 Programming Reference Card (DIGITAL)
+
+ANSI Compatible Mode
+
+ Cursor Movement Commands
+ Cursor up ESC [ Pn A
+ Cursor down ESC [ Pn B
+ Cursor forward (right) ESC [ Pn C
+ Cursor backward (left) ESC [ Pn D
+ Direct cursor addressing ESC [ Pl; Pc H or
+ ESC [ Pl; Pc f
+ Index ESC D
+ Next Line ESC E
+ Reverse index ESC M
+ Save cursor and attributes ESC 7
+ Restore cursor and attributes ESC 8
+ * Pn = decimal parameter in string of ASCII digits.(default 1)
+ * Pl = line number (default 0); Pc = column number (default 0)
+
+ Line Size (Double-Height and Double-Width) Commands
+ Change this line to double-height top half ESC # 3
+ Change this line to double-height bottom half ESC # 4
+ Change this line to single-width single-height ESC # 5
+ Change this line to double-width single-height ESC # 6
+
+ Character Attributes
+ ESC [ Ps;Ps;Ps;...,Ps m
+ Ps = 0 or None All Attributes Off
+ 1 Bold on
+ 4 Underscore on
+ 5 Blink on
+ 7 Reverse video on
+ Any other parameter values are ignored.
+
+ Erasing
+ From cursor to end of line ESC [ K or ESC [ 0 K
+ From beginning of line to cursor ESC [ 1 K
+ Entire line containing cursor ESC [ 2 K
+ From cursor to end of screen ESC [ J or ESC [ 0 J
+ From beginning of screen to cursor ESC [ 1 J
+ Entire screen ESC [ 2 J
+
+ Programmable LEDs
+ ESC [ Ps;Ps;...Ps q
+ Ps = 0 or None All LEDs Off
+ 1 L1 on
+ 2 L2 on
+ 3 L3 on
+ 4 L4 on
+ Any other parameter values are ignored.
+
+ Character Set (G0 and G1 Designators)
+ Charactor Set G0 Designator G1 Designator
+ United Kingdom (UK) ESC ( A ESC ) A
+ United States (USASCII) ESC ( B ESC ) B
+ Special graphics characters ESC ( 0 ESC ) 0
+ and line drawing set
+ Alternate character ROM ESC ( 1 ESC ) 1
+ Alternate character ROM ESC ( 2 ESC ) 2
+ special graphics characters
+
+ Scrolling Region
+ ESC [ Pt ; Pb r
+ Pt is the number of the top line of the scrolling region;
+ Pb is the number of the bottom line of the scrolling region
+ and must be greater than Pt.
+ (The default for Pt is line 1, the default for Pb is the end
+ of the screen)
+
+ TAB stops
+ Set tab at current column ESC H
+ Clear tab at curent column ESC [ g or ESC [ 0 g
+ Clear all tabs ESC [ 3 g
+
+ Modes
+ To Set To Reset
+ Mode Name Mode Sequence Mode Sequence
+ Line feed/new line New line ESC [20h Line feed ESC [20l
+ Cursor key mode Application ESC [?1h Cursor ESC [?l
+ ANSI/VT52 mode ANSI ESC < VT52 ESC [?2l
+ Column mode 132 Col ESC [?3h 80 Col ESC [?3l
+ Scrolling mode Smooth ESC [?4h Jump ESC [?4l
+ Screen mode Reverse ESC [?5h Normal ESC [?5l
+ Origin mode Relative ESC [?6h Absolute ESC [?6l
+ Wraparound On ESC [?7h Off ESC [?7l
+ Auto repeat On ESC [?8h Off ESC [?8l
+ Interlace On ESC [?9h Off ESC [?9l
+ Graphic proc. option On ESC 1 Off ESC 2
+ Keypad mode Application ESC = Numeric ESC >
+
+ Reports
+ Cursor Position Report
+ Invoked by ESC [ 6 n
+ Response is ESC [ Pl; Pc R
+ * Pl = line number; Pc = column number
+
+ Status Report
+ Invoked by ESC [ 5 n
+ Response is ESC [ 0 n (terminal ok)
+ ESC [ 3 n (terminal not ok)
+
+ What Are You
+ Invoked by ESC [ c or ESC [ O c
+ Response is ESC [ ?1 ; Ps C
+ Ps = 0 Base VT100, no options
+ 1 Processor option (STP)
+ 2 Advanced Video option (AVO)
+ 3 AVO and STP
+ 4 Graphocs processor option (GO)
+ 5 GO and STP
+ 6 GO and AVO
+ 7 GO, STP, and AVO
+ Alternately invoked by ESC Z (not recommended.) Response is the same.
+
+ Reset
+ ESC c
+
+ Confidence Tests
+ Fill Screen with "Es" ESC # 8
+ Invoke Test(s) ESC [ 2 ; Ps y
+ Ps = 1 Power-up self test
+ (ROM checksum, RAM, NVR,
+ keyboard and AVO if installed)
+ 2(loop back connector required) Data Loop Back
+ 4(loop back connector required) ETA Modern Control Test
+ 8 Repeat selected test(s)
+ indefinitely
+ (until failure or power off)
+
+VT52 Compatible Mode
+ Cursor Up ESC A
+ Cursor Down ESC B
+ Cursor Right ESC C
+ Cursor Left ESC D
+ Select Special Graphics character set ESC F
+ Select ASCII character set ESC G
+ Cursor to home ESC H
+ Reverse line feed ESC I
+ Erase to end of screen ESC J
+ Erase to end of line ESC K
+ Direct cursor address ESC Ylc (see note 1)
+ Identify ESC Z (see note 2)
+ Enter alternate keypad mode ESC =
+ Exit alternate keypad mode ESC >
+ Enter ANSI mode ESC <
+
+ NOTE 1: Line and column numbers for direct cursor address are single
+ character codes whose values are the desired number plus
+ 37 (in Octal). Line and column numbers start at 1.
+ NOTE 2: Response to ESC Z is ESC / Z.
+
+
+
diff --git a/konsole/doc/More/iowa_vt100_news.txt b/konsole/doc/More/iowa_vt100_news.txt
new file mode 100644
index 000000000..94a62b69a
--- /dev/null
+++ b/konsole/doc/More/iowa_vt100_news.txt
@@ -0,0 +1,255 @@
+iowa_vt100.news
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+
+Newsgroups: comp.terminals
+Path: utkcs2!emory!swrinde!cs.utexas.edu!wupost!gumby!destroyer
+ !news.iastate.edu!emann
+From: emann@iastate.edu (The Emann)
+Subject: A vt100 ctrl seq list
+Message-ID: <1992Mar13.072004.12444@news.iastate.edu>
+Date: 13 Mar 92 07:20:04 GMT
+Sender: news@news.iastate.edu (USENET News System)
+Lines: 205
+
+
+ Without benefit of a vt100 programmer's reference, we've been trying
+to locate as complete a list of control sequences for vt52/100/102's.
+This list here was compiled from the lists we could find. Most notably
+Rob Elliott's 'Selected ANSI Escape codes'; the Villanova list; and the
+ANSI_X3.64-tables-from-BYTE list. We'd much rather have a reference manual,
+but if anyone can tell us what's missing or incorrect in this list, it
+would be greatly appreciated.
+
+start of list
+----------------------------------------------
+Control Characters
+------------------
+
+Char
+Name Dec Hex Action Taken
+------------------------------------------------------------------
+NUL 0 0x00 ignored; Null
+SOH 1 0x01 ignored; Start of heading
+STX 2 0x02 ignored; Start of text
+ETX 3 0x03 ignored; End of text
+EOT 4 0x04 ignored; End of transmission
+ENQ 5 0x05 Transmit answerback message
+ACK 6 0x06 ignored; Acknowledge
+BEL 7 0x07 Ring the bell
+BS 8 0x08 Move cursor left
+HT 9 0x09 Move cursor to next tab stop; Horizontal tab
+LF 10 0x0A Line feed; causes print if in autoprint
+VT 11 0x0B Same as LF; Vertical tab
+FF 12 0x0C Same as LF; Form feed
+CR 13 0x0D Move cursor to left margin or newline; Carriage return
+SO 14 0x0E Invoke G1 character set
+SI 15 0x0F Invoke G0 character set
+DC1 16 0x10 ignored; Device control 1
+XON 17 0x11 Resume transmission; Device control 2
+DC3 18 0x02 ignored; Device control 3
+XOFF 19 0x13 Halt transmission; Device control 4
+NAK 20 0x14 ignored; Negative acknowledge
+SYN 21 0x15 ignored; Syncronous idle
+ETB 22 0x16 ignored; End of transmission block
+CAN 23 0x17 ignored; Cancel
+EM 24 0x18 Cancel escape sequence and display checkerboard
+SUB 26 0x1A Same as CAN
+ESC 27 0x1B Introduce a control sequence
+FS 28 0x1C ignored; File separator
+GS 29 0x1D ignored; Group separator
+RS 30 0x1E ignored; Record separator
+US 31 0x1F ignored; Unit separator
+DEL 127 0x7F ignored; Delete
+
+Control Sequences
+-----------------
+
+Action VT52 mode ANSI (VT100)
+----------------------------------------------------
+Cursor up Esc A Esc [ Pn A
+Cursor down Esc B Esc [ Pn B
+Cursor right Esc C Esc [ Pn C
+Cursor left Esc D Esc [ Pn D
+Cursor home Esc H
+Cursor address Esc Y Pl Pc Esc [ Pn(row);Pn(col);H or
+ Esc [ Pn(row);Pn(col);f
+Cursor position report Esc [ 6 n
+ returns: Esc [ Pn(row);Pn(col) R
+Index Esc D
+Newline Esc E
+Reverse newline Esc I Esc M
+Save cursor & attr Esc 7
+Restore cursor & attr Esc 8
+Insert line Esc [ Pn L
+Delete line Esc [ Pn M
+Delete character Esc [ Pn P
+Define scrolling region Esc [ Pn(top);Pn(bot) r
+Erase cursor to EOL Esc K Esc [ K
+Erase BOL to cursor Esc [ 1 K
+Erase entire line Esc [ 2 K
+Erase cursor to EOS Esc J Esc [ J
+Erase BOS to cursor Esc [ 1 J
+Erase entire screen Esc [ 2 J
+Print screen or region Esc ] Esc [ i (region in ANSI only)
+Print cursor line Esc V Esc [ ? 1 i
+Enter print controller Esc W Esc [ 5 i
+Exit print controller Esc X Esc [ 4 i
+Enter auto print Esc ^ Esc [ ? 5 i
+Exit auto print Esc - Esc [ ? 4 i
+Set tab at current col Esc H
+Clr tab at current col Esc [ g
+Clear all tabs Esc [ 3 g
+Enter ANSI mode Esc <
+Application keypad Esc = Esc =
+Numeric kyepad Esc > Esc >
+Fill screen with 'E's Esc # 8
+Reset Esc c
+Identify Esc Z Esc Z
+ returns: Esc/Z returns: Esc [ ? 6 c
+Device attr report Esc [ c
+ returns: Esc [ ? 6 c
+Device status report Esc [ 5 n
+ returns: Esc [ O n
+Request term params Esc [ 1 x
+ returns: Esc[3;<par>;<nbits>;<xspeed>;<rspeed>;1;0x
+
+Mode name Ps Set (Esc [ Ps h) Reset (Esc [ Ps l) VT100
+-------------------------------------------------------------------------
+Keyboard action 2 Locked Unlocked reset
+Insertion 4 Insert Overwrite reset
+Duplex 12 Full Half (echo) available
+Linefeed/Newline 20 Newline Linefeed available
+Cursor key ?1 Application Cursor available
+ANSI/VT52 ?2 ANSI VT52 available
+Column width ?3 132 80 available
+Scolling method ?4 Smooth Jump available
+Screen ?5 Reverse Normal available
+Origin ?6 Relative Absolute available
+Wraparound ?7 Wrap Truncate available
+Key auto repeat ?8 Repeating No repeat available
+Print formfeed ?18 Yes No available
+Print extent ?19 Full screen Scolling region available
+
+Character set VT52 VT100 (G0) VT100 (G1)
+--------------------------------------------------------
+United Kingdom (UK) Esc ( A Esc ) A
+United States (US) Esc G Esc ( B Esc ) B
+Graphics Esc F Esc ( 0 Esc ) 0
+Default ROM Esc ( 1 Esc ) 1
+Alternate ROM Esc ( 2 Esc ) 2
+Switch to G0/G1 Esc O Esc N
+
+Character attributes Ps (Esc [ Ps;Ps;Ps;...Psm)
+---------------------------------------------------
+Normal (attr off) 0 Note: Ps=3 4 or 6 are unknown and
+Bold on 1 probably redundant.
+Underscore on 2
+Blink on 5
+Inverse on 7
+
+Line Sizes:
+Change current line VT100
+---------------------------------------
+To double-height top half Esc # 3
+To double-height bottom half Esc # 4
+To normal size Esc # 5
+To double-width Esc # 6
+
+Cursor control keys VT52 VT100 (appl mode) VT100 (cursor mode)
+---------------------------------------------------------------------
+Up arrow Esc A Esc O A Esc [ A
+Down arrow Esc B Esc O B Esc [ B
+Right arrow Esc C Esc O C Esc [ C
+Left arrow Esc D Esc O D Esc [ D
+
+Auxilliary keypad VT52 (num) VT52 (appl) VT100 (num) VT100 (appl)
+------------------------------------------------------------------------
+0 0 Esc ? p 0 Esc O p
+1 1 Esc ? q 1 Esc O q
+2 2 Esc ? r 2 Esc O r
+3 3 Esc ? s 3 Esc O s
+4 4 Esc ? t 4 Esc O t
+5 5 Esc ? u 5 Esc O u
+6 6 Esc ? v 6 Esc O v
+7 7 Esc ? w 7 Esc O w
+8 8 Esc ? x 8 Esc O x
+9 9 Esc ? y 9 Esc O y
+- - Esc ? m - Esc O m
+, , Esc ? l , Esc O l
+. . Esc ? n . Esc O n
+Enter ^M Esc ? M ^M Esc O M
+PF1 Esc P Esc P Esc O P Esc O P
+PF2 Esc Q Esc Q Esc O Q Esc O Q
+PF3 Esc R Esc R Esc O R Esc O R
+PF4 Esc S Esc S Esc O S Esc O S
+
+G0 graphics char set
+--------------------
+
+ASCII code Symbol displayed
+------------------------------------
+\ Diamond
+a Chekerboard
+e Degree sign
+g Plus/minus sign
+j Lower-right box corner
+k Upper-right box corner
+l Upper-left box corner
+m Lower-left box corner
+n Intersecting lines
+o Horizontal line - scan 1 (bottom)
+p Horizontal line - scan 3
+q Horizontal line - scan 5 (matches with box corners)
+r Horizontal line - scan 7
+s Horizontal line - scan 9 (top)
+t Left T
+u Right T
+v Top T
+w Bottom T
+x Vertical bar
+y Less-than-or-equal-to sign
+z Greater-than-or-equal-to sign
+| Not-equal-to sign
+( Pi sign
+) UK pound sign
+~ Centered dot
+
+---------------------------------------
+end of list
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+
+Path: utkcs2!memstvx1!ukma!asuvax!cs.utexas.edu!usc!elroy.jpl.nasa.gov!wvus
+ !abode!blars!blarson
+Newsgroups: comp.terminals
+Subject: Re: A vt100 ctrl seq list
+Message-ID: <295@blars.UUCP>
+From: blarson@blars.UUCP
+Date: 13 Mar 92 10:13:23 GMT
+Reply-To: blarson@usc.edu
+References: <1992Mar13.072004.12444@news.iastate.edu>
+Lines: 20
+
+In article <1992Mar13.072004.12444@news.iastate.edu>,
+ emann@iastate.edu (The Emann) writes:
+>
+> Without benefit of a vt100 programmer's reference, we've been trying
+> to locate as complete a list of control sequences for vt52/100/102's.
+
+Even if you had one, it wouldn't list them all. A couple of examples:
+(Genuine vt100, imitators probably get them wrong. (Dec never was good
+at imitating their own terminals.))
+
+Esc [ 2 ; 8 y Wait for poweroff.
+Esc [ 2 ; 15 y Flashing background mode. Also puts terminal in local.
+
+Also, many sequences produced different results at different speeds.
+The original VT100 terminal has many undocumented modes such as 24
+duplicate lines, linefeed goes up, etc.
+
+--
+blarson@usc.edu usc!blarson blarson@zog
+C news and rn for os9/68k!
+
+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
diff --git a/konsole/doc/More/k95vtnttn.html b/konsole/doc/More/k95vtnttn.html
new file mode 100644
index 000000000..12ac9851d
--- /dev/null
+++ b/konsole/doc/More/k95vtnttn.html
@@ -0,0 +1,184 @@
+<html><head>
+<title>VTTEST Score Sheet - MS Telnet for Windows NT</title>
+</head><body>
+<h2>VTTEST Score Sheet - MS Telnet for Windows NT</h2>
+<pre>
+VTTEST VT100/VT102 Compatibility Test Score Sheet
+
+
+Program and version: <b>MS Telnet 1.0 Windows NT</b> Date: ____<b>18 Dec 95</b>___
+
+Score: ____<b>25</b>____ + Extra credit: ____<b>0</b>____ = Final score: ____<b>25</b>___
+
+Check box if test passed. Score 1 point per check mark.
+Perfect score = 100 points. Extra credit at end.
+
+1. Test of cursor movements
+
+[<b>0</b>] 1. Text inside frame of E's inside frame of *'s and +'s, 80 columns
+[<b>0</b>] 2. Text inside frame of E's inside frame of *'s and +'s, 132 columns
+[<b>0</b>] 3. Cursor-control chars inside ESC sequences
+[<b>1</b>] 4. Leading 0's in ESC sequences
+
+2. Test of screen features
+
+[<b>1</b>] 5. Three identical lines of *'s (test of wrap mode)
+[<b>0</b>] 6. Test of tab setting/resetting
+[<b>0</b>] 7. 132-column mode, light background
+[<b>1</b>] 8. 80-column mode, light background
+[<b>0</b>] 9. 132-column mode, dark background
+[<b>0</b>] 10. 80-column mode, dark background
+[<b>1</b>] 11. Soft scroll down
+[<b>1</b>] 12. Soft scroll up / down
+[<b>1</b>] 13. Jump scroll down
+[<b>1</b>] 14. Jump scroll up / down
+[<b>0</b>] 15. Origin mode test (2 parts)
+
+ Graphic Rendition test pattern, dark background
+
+[<b>1</b>] 16. Normal ("vanilla")
+[<b>0</b>] 17. Normal underlined distinct from normal
+[<b>0</b>] 18. Normal blink distinct from all above
+[<b>1</b>] 19. Normal underline blink distinct from all above
+[<b>0</b>] 20. Normal reverse ("negative") distinct from all above
+[<b>0</b>] 21. Normal underline reverse distinct from all above
+[<b>0</b>] 22. Normal blink reverse distinct from all above
+[<b>0</b>] 23. Normal underline blink reverse distinct from all above
+[<b>0</b>] 24. Bold distinct from all above
+[<b>0</b>] 25. Bold underlined distinct from all above
+[<b>0</b>] 26. Bold blink distinct from all above
+[<b>0</b>] 27. Bold underline blink distinct from all above
+[<b>0</b>] 28. Bold reverse ("negative") distinct from all above
+[<b>0</b>] 29. Bold underline reverse distinct from all above
+[<b>0</b>] 30. Bold blink reverse distinct from all above
+[<b>0</b>] 31. Bold underline blink reverse distinct from all above
+
+ Graphic Rendition test pattern, light background
+
+[<b>0</b>] 32. Normal ("vanilla")
+[<b>0</b>] 33. Normal underlined distinct from normal
+[<b>0</b>] 34. Normal blink distinct from all above
+[<b>0</b>] 35. Normal underline blink distinct from all above
+[<b>0</b>] 36. Normal reverse ("negative") distinct from all above
+[<b>0</b>] 37. Normal underline reverse distinct from all above
+[<b>0</b>] 38. Normal blink reverse distinct from all above
+[<b>0</b>] 39. Normal underline blink reverse distinct from all above
+[<b>0</b>] 40. Bold distinct from all above
+[<b>0</b>] 41. Bold underlined distinct from all above
+[<b>0</b>] 42. Bold blink distinct from all above
+[<b>0</b>] 43. Bold underline blink distinct from all above
+[<b>0</b>] 44. Bold reverse ("negative") distinct from all above
+[<b>0</b>] 45. Bold underline reverse distinct from all above
+[<b>0</b>] 46. Bold blink reverse distinct from all above
+[<b>0</b>] 47. Bold underline blink reverse distinct from all above
+
+ Save/Restore Cursor
+
+[<b>1</b>] 48. AAAA's correctly placed
+[<b>0</b>] 49. Lines correctly rendered (middle of character cell)
+[<b>0</b>] 50. Diamonds correctly rendered
+
+3. Test of character sets
+
+[<b>0</b>] 51. UK/National shows Pound Sterling sign in 3rd position
+[<b>0</b>] 52. US ASCII shows number sign in 3rd position
+[<b>0</b>] 53. SO/SI works (right columns identical with left columns)
+[<b>0</b>] 54. True special graphics & line drawing chars, not simulated by ASCII
+
+4. Test of double-sized chars
+
+ Test 1 in 80-column mode:
+
+[<b>0</b>] 55. Left margin correct
+[<b>0</b>] 56. Width correct
+
+ Test 2 in 80-column mode:
+
+[<b>0</b>] 57. Left margin correct
+[<b>0</b>] 58. Width correct
+
+ Test 1 in 132-column mode:
+
+[<b>0</b>] 59. Left margin correct
+[<b>0</b>] 60. Width correct
+
+ Test 2 in 132-column mode:
+
+[<b>0</b>] 61. Left margin correct
+[<b>0</b>] 62. Width correct
+
+[<b>0</b>] 63. "The man programmer strikes again" test pattern
+[<b>0</b>] 64. "Exactly half the box should remain"
+
+5. Test of keyboard
+
+[<b>0</b>] 65. LEDs.
+[<b>0</b>] 66. Autorepeat
+[<b>1</b>] 67. "Press each key" (ability to send each ASCII graphic char)
+[<b>1</b>] 68. Arrow keys (ANSI/Cursor key mode reset)
+[<b>1</b>] 69. Arrow keys (ANSI/Cursor key mode set)
+[<b>1</b>] 70. Arrow keys VT52 mode
+[<b>1</b>] 71. PF keys numeric mode
+[<b>1</b>] 72. PF keys application mode
+[<b>1</b>] 73. PF keys VT52 numeric mode
+[<b>1</b>] 74. PF keys VT52 application mode
+[<b>0</b>] 75. Send answerback message from keyboard
+[<b>1</b>] 76. Ability to send every control character
+
+6. Test of Terminal Reports
+
+[<b>0</b>] 77. Respond to ENQ with answerback
+[<b>0</b>] 78. Newline mode set
+[<b>1</b>] 79. Newline mode reset
+[<b>0</b>] 80. Device status report 5
+[<b>1</b>] 81. Device status report 6
+[<b>1</b>] 82. Device attributes report
+[<b>0</b>] 83. Request terminal parameters 0
+[<b>0</b>] 84. Request terminal parameters 1
+
+7. Test of VT52 submode
+
+[<b>1</b>] 85. Centered rectangle
+[<b>1</b>] 86. Normal character set
+[<b>0</b>] 87. Graphics character set
+[<b>1</b>] 88. Identify query
+
+8. VT102 Features
+
+[<b>0</b>] 89. Insert/delete line, 80 columns
+[<b>0</b>] 90. Insert (character) mode, 80 columns
+[<b>0</b>] 91. Delete character, 80 columns
+[<b>0</b>] 92. Right column staggered by 1 (normal chars), 80 columns
+[<b>0</b>] 93. Right column staggered by 1 (double-wide chars), 80 columns
+[<b>1</b>] 94. ANSI insert character, 80 columns
+[<b>0</b>] 95. Insert/delete line, 132 columns
+[<b>0</b>] 96. Insert (character) mode, 132 columns
+[<b>0</b>] 97. Delete character, 132 columns
+[<b>0</b>] 98. Right column staggered by 1 (normal chars), 132 columns
+[<b>0</b>] 99. Right column staggered by 1 (double-wide chars), 132 columns
+[<b>0</b>] 100. ANSI insert character, 132 columns
+
+9. Extra credit
+
+[<b>0</b>] 101. True soft (smooth) scroll
+[<b>0</b>] 102. True underline
+[<b>0</b>] 103. True blink
+[<b>0</b>] 104. True double-high/wide lines, not simulated
+[<b>0</b>] 105. Reset terminal (*)
+[<b>0</b>] 106. Interpret controls (debug mode) (*)
+[<b>0</b>] 107. Send BREAK (250 msec) (*)
+[<b>0</b>] 108. Send Long BREAK (1.5 sec) (*)
+[<b>0</b>] 109. Host-controlled transparent / controller print (*)
+[<b>0</b>] 110. Host-controlled autoprint (*)
+
+(*) Features of VT100 not tested by vttest.
+
+NOTES:
+Test 3 (character sets) puts it into graphics mode, from which it
+can't recover.
+
+<hr><address>
+VTTEST Score Sheet / Columbia University / kermit@columbia.edu / 18 Dec 95
+</address>
+</body>
+</html>
diff --git a/konsole/doc/More/rxvt-ref.html b/konsole/doc/More/rxvt-ref.html
new file mode 100644
index 000000000..a27f5b4bc
--- /dev/null
+++ b/konsole/doc/More/rxvt-ref.html
@@ -0,0 +1,1281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+don't use Netscape to edit this file, since it has some stange ideas of
+formatting that makes later global/change/replace difficult,
+but it is okay for making the text version of this document
+-->
+<HTML>
+<HEAD>
+<TITLE>
+Rxvt Technical Reference
+</TITLE>
+ <META NAME="Author" CONTENT="mj olesen <olesen@me.queensu.ca>">
+ <META NAME="Description" CONTENT="Documentation of VT, XTerm, and other escape sequences used by rxvt.">
+</HEAD>
+<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#0000FF" ALINK="#FF0000">
+<HR>
+<CENTER>
+<H1><A NAME="Top">Rxvt Technical Reference</A></H1>
+Reworked from XTerm documentation and other sources<BR>
+<P>
+<A TARGET="_top" HREF="refer.html">[No]</A>
+<A TARGET="_top" HREF="refer-frame.html">Frames</A>
+<HR>
+</CENTER>
+<UL>
+<LI><A HREF="#Definitions">Definitions</A></LI>
+<LI><A HREF="#Values">Values</A></LI>
+<LI><A HREF="#Sequences">Escape Sequences</A></LI>
+<LI><A HREF="#CSI">CSI (Code Sequence Introducer) Sequences</A></LI>
+<LI><A HREF="#PrivateModes">DEC Private Modes</A></LI>
+<LI><A HREF="#XTerm">XTerm Escape Sequences</A></LI>
+<LI><A HREF="#menuBar">menuBar</A></LI>
+<LI><A HREF="#XPM">XPM</A></LI>
+<LI><A HREF="#Mouse">Mouse Reporting</A></LI>
+<LI><A HREF="#Graphics">Special Graphics Mode</A></LI>
+<LI><A HREF="#KeyCodes">Key Codes</A></LI>
+</UL>
+
+<HR>
+<H2><A HREF="#toc" NAME="Definitions">Definitions</A></H2>
+<P>
+
+<DL><DT><B><TT>c</TT></B></DT><DD>The literal character c.</DD></DL>
+<P>
+
+<DL><DT><B><TT>C</TT></B></DT><DD>A single (required) character.</DD></DL>
+<P>
+
+<DL>
+<DT><B><TT>Ps</TT></B></DT>
+<DD>A single (usually optional) numeric parameter,
+composed of one or more digits.</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>Pm</TT></B></DT>
+<DD>A multiple numeric parameter composed of any number of single numeric
+parameters, separated by ; character(s).</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>Pt</TT></B></DT>
+<DD>A text parameter composed of printable characters.</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="Values">Values</A></H2>
+<P>
+
+<DL>
+<DT><B><TT>ENQ</TT></B></DT>
+<DD>Enquiry (Ctrl-E) = Send Device Attributes (DA)<BR>
+request attributes from terminal
+== <A HREF="#ESC[Psc"><B><TT>ESC[c</TT></B></A>
+</DD>
+</DL>
+<P>
+
+<DL><DT><B><TT>BEL</TT></B></DT><DD>Bell (Ctrl-G)</DD></DL>
+<P>
+
+<DL><DT><B><TT>BS</TT></B></DT><DD>Backspace (Ctrl-H)</DD></DL>
+<P>
+
+<DL><DT><B><TT>TAB</TT></B></DT><DD>Horizontal Tab (HT) (Ctrl-I)</DD></DL>
+<P>
+
+<DL><DT><B><TT>LF</TT></B></DT><DD>Line Feed or New Line (NL) (Ctrl-J)</DD></DL>
+<P>
+
+<DL>
+<DT><B><TT>VT</TT></B></DT>
+<DD>Vertical Tab (Ctrl-K) same as <B><TT>LF</TT></B></DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>FF</TT></B></DT>
+<DD>Form Feed or New Page (NP) (Ctrl-L) same as <B><TT>LF</TT></B></DD>
+</DL>
+<P>
+
+<DL><DT><B><TT>CR</TT></B></DT><DD>Carriage Return (Ctrl-M)</DD></DL>
+<P>
+
+<DL>
+<DT><B><TT>SO</TT></B></DT>
+<DD>Shift Out (Ctrl-N), invokes the G1 character set<BR>
+Switch to Alternate Character Set</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>SI</TT></B></DT>
+<DD>Shift In (Ctrl-O), invokes the G0 character set (the default)<BR>
+Switch to Standard Character Set</DD>
+</DL>
+<P>
+
+<DL><DT><B><TT>SPC</TT></B></DT><DD>Space Character</DD></DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="Sequences">Escape Sequences</A></H2>
+<P>
+
+<DL>
+<DT><B><TT>ESC # 8</TT></B></DT>
+<DD>DEC Screen Alignment Test (DECALN)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>
+ESC 7<BR>
+ESC 8
+</TT></B></DT>
+<DD>
+Save Cursor (SC)<BR>
+Restore Cursor (RC)
+</DD>
+</DL>
+<P>
+
+<DL>
+<A NAME="ESC="></A>
+<DT><B><TT>
+ESC =<BR>
+ESC &gt;
+</TT></B></DT>
+<DD>
+Application Keypad (SMKX) ==
+<A HREF="#Priv66"><B><TT>ESC[?66h</TT></B></A><BR>
+Normal Keypad (RMKX) ==
+<A HREF="#Priv66"><B><TT>ESC[?66l</TT></B></A>
+</DD>
+</DL>
+<P>
+
+<B>Note:</B>
+If the numeric keypad is activated, eg, <B>Num_Lock</B> has been pressed,
+numbers or control functions are generated by the numeric keypad (see
+<A HREF="#KeyCodes">Key Codes</A>)
+<P>
+
+<DL><DT><B><TT>ESC D</TT></B></DT><DD>Index (IND)</DD></DL>
+<P>
+
+<DL><DT><B><TT>ESC E</TT></B></DT><DD>Next Line (NEL)</DD></DL>
+<P>
+
+<DL><DT><B><TT>ESC H</TT></B></DT><DD>Tab Set (HTS)</DD></DL>
+<P>
+
+<DL><DT><B><TT>ESC M</TT></B></DT><DD>Reverse Index (RI)</DD></DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC N</TT></B></DT>
+<DD>Single Shift Select of G2 Character Set (SS2): affects next character only
+<B><U>unimplemented</B></U>
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC O</TT></B></DT>
+<DD>Single Shift Select of G3 Character Set (SS3): affects next character only
+<B><U>unimplemented</U></B>
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC Z</TT></B></DT>
+<DD>Obsolete form of <A HREF="#ESC[Psc"><B><TT>ESC[c</TT></B></A><BR>
+returns: <B><TT>ESC[?1;2C</TT></B> (<B><U>rxvt compile-time option</U></B>)
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC c</TT></B></DT>
+<DD>Full Reset (RIS)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC n</TT></B></DT>
+<DD>Invoke the G2 Character Set (LS2)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC o</TT></B></DT>
+<DD>Invoke the G3 Character Set (LS3)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>
+ESC ( C<BR>
+ESC ) C<BR>
+ESC * C<BR>
+ESC + C<BR>
+ESC $ C
+</TT></B></DT>
+<DD>
+Designate G0 Character Set (ISO 2022)<BR>
+Designate G1 Character Set (ISO 2022)<BR>
+Designate G2 Character Set (ISO 2022)<BR>
+Designate G3 Character Set (ISO 2022)<BR>
+Designate Kanji Character Set<BR>
+<EM>where</EM> <B><TT>C</TT></B> is<BR>
+<UL>
+<B><TT>C = 0</TT></B> : DEC Special Character and Line Drawing Set<BR>
+<B><TT>C = A</TT></B> : United Kingdom (UK)<BR>
+<B><TT>C = B</TT></B> : United States (USASCII)<BR>
+<B><TT>C = &lt;</TT></B> : Multinational character set <B><U>unimplemented</U></B><BR>
+<B><TT>C = 5</TT></B> : Finnish character set <B><U>unimplemented</U></B><BR>
+<B><TT>C = C</TT></B> : Finnish character set <B><U>unimplemented</U></B><BR>
+<B><TT>C = K</TT></B> : German character set <B><U>unimplemented</U></B>
+</UL>
+</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="CSI">CSI (Code Sequence Introducer) Sequences</A></H2>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps @</TT></B></DT>
+<DD>Insert <B><TT>Ps</TT></B> (Blank) Character(s) [default: 1] (ICH)</DD>
+</DL>
+<P>
+
+<DL>
+<A NAME="ESC[PsA"></A>
+<DT><B><TT>ESC [ Ps A</TT></B></DT>
+<DD>Cursor Up <B><TT>Ps</TT></B> Times [default: 1] (CUU)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps B</TT></B></DT>
+<DD>Cursor Down <B><TT>Ps</TT></B> Times [default: 1] (CUD)
+</DD>
+</DL>
+<P>
+
+<DL>
+<A NAME="ESC[PsC"></A>
+<DT><B><TT>ESC [ Ps C</TT></B></DT>
+<DD>Cursor Forward <B><TT>Ps</TT></B> Times [default: 1] (CUF)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps D</TT></B></DT>
+<DD>Cursor
+Backward <B><TT>Ps</TT></B> Times [default: 1] (CUB)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps E</TT></B></DT>
+<DD>Cursor Down <B><TT>Ps</TT></B> Times [default: 1] and to first column</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps F</TT></B></DT>
+<DD>Cursor Up <B><TT>Ps</TT></B> Times [default: 1] and to first column</DD>
+</DL>
+<P>
+
+<DL>
+<A NAME="ESC[PsG"></A>
+<DT><B><TT>ESC [ Ps G</TT></B></DT>
+<DD>Cursor to Column <B><TT>Ps</TT></B> (HPA)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps;Ps H</TT></B></DT>
+<DD>Cursor Position [row;column] [default: 1;1] (CUP)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps I</TT></B></DT>
+<DD>Move forward <B><TT>Ps</TT></B> tab stops [default: 1]</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps J</TT></B></DT>
+<DD>Erase in Display (ED)<BR>
+<B><TT>Ps = 0</TT></B> : Clear Below (default)<BR>
+<B><TT>Ps = 1</TT></B> : Clear Above<BR>
+<B><TT>Ps = 2</TT></B> : Clear All</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps K</TT></B></DT>
+<DD>Erase in Line (EL)<BR>
+<B><TT>Ps = 0</TT></B> : Clear to Right (default)<BR>
+<B><TT>Ps = 1</TT></B> : Clear to Left (EL1)<BR>
+<B><TT>Ps = 2</TT></B> : Clear All</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps L</TT></B></DT>
+<DD>Insert <B><TT>Ps</TT></B> Line(s) [default: 1] (IL)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps M</TT></B></DT>
+<DD>Delete <B><TT>Ps</TT></B> Line(s) [default: 1] (DL)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps P</TT></B></DT>
+<DD>Delete <B><TT>Ps</TT></B> Character(s)
+[default: 1] (DCH)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps;Ps;Ps;Ps;Ps T</TT></B></DT>
+<DD>Initiate <A HREF="#Mouse">hilite mouse tracking</A>.
+<B><U>unimplemented</U></B><BR>
+Parameters are [func;startx;starty;firstrow;lastrow].</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps W</TT></B></DT>
+<DD>Tabulator functions<BR>
+<B><TT>Ps = 0</TT></B> : Tab Set (HTS)<BR>
+<B><TT>Ps = 2</TT></B> : Tab Clear (TBC), Clear Current Column (default)<BR>
+<B><TT>Ps = 5</TT></B> : Tab Clear (TBC), Clear All</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps X</TT></B></DT>
+<DD>Erase <B><TT>Ps</TT></B> Character(s) [default: 1] (ECH)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps Z</TT></B></DT>
+<DD>Move backward <B><TT>Ps</TT></B> [default: 1] tab stops</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps '</TT></B></DT>
+<DD>== <A HREF="#ESC[PsG"><B><TT>ESC [ Ps G</TT></B></A></DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps a</TT></B></DT>
+<DD>== <A HREF="#ESC[PsC"><B><TT>ESC [ Ps C</TT></B></A></DD>
+</DL>
+<P>
+
+<DL>
+<A NAME="ESC[Psc"></A>
+<DT><B><TT>ESC [ Ps c</TT></B></DT>
+<DD>Send Device Attributes (DA)<BR>
+<B><TT>Ps = 0</TT></B> (or omitted) : request attributes from terminal<BR>
+returns: <B><TT>ESC[?1;2c</TT></B> (``I am a VT100 with Advanced Video Option'')</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps d</TT></B></DT>
+<DD>Cursor to Line <B><TT>Ps</TT></B> (VPA)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps e</TT></B></DT>
+<DD>== <A HREF="#ESC[PsA"><B><TT>ESC [ Ps A</TT></B></A></DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps;Ps f</TT></B></DT>
+<DD>Horizontal and Vertical Position [row;column] (HVP)<BR>
+[default: 1;1]</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps g</TT></B></DT>
+<DD>Tab Clear (TBC)<BR>
+<B><TT>Ps = 0</TT></B> : Clear Current Column (default)<BR>
+<B><TT>Ps = 3</TT></B> : Clear All (TBC)
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps i</TT></B></DT>
+<DD>Printing<BR>
+<B><TT>Ps = 4</TT></B> : disable transparent print mode (MC4)<BR>
+<B><TT>Ps = 5</TT></B> : enable transparent print mode (MC5)
+<B><U>unimplemented</U></B>
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>
+ESC [ Pm h<BR>
+ESC [ Pm l
+</TT></B>
+<DD>Set Mode (SM)<BR>
+Reset Mode (RM)</DD>
+<DT><B><TT>Ps = 4</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Insert Mode (SMIR)<BR>
+<B><TT>l</TT></B> : Replace Mode (RMIR)
+</DD>
+<DT><B><TT>Ps = 20</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Automatic Newline (LNM)<BR>
+<B><TT>l</TT></B> : Normal Linefeed (LNM)
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Pm m</TT></B></DT>
+<DD>Character Attributes (SGR) </BR>
+<B><TT>Ps = 0</TT></B> : Normal (default)<BR>
+<B><TT>Ps = 1 / 22</TT></B> : On / Off Bold (bright fg)<BR>
+<B><TT>Ps = 4 / 24</TT></B> : On / Off Underline<BR>
+<B><TT>Ps = 5 / 25</TT></B> : On / Off Blink (bright bg)<BR>
+<B><TT>Ps = 7 / 27</TT></B> : On / Off Inverse<BR>
+<B><TT>Ps = 30 / 40</TT></B> : fg / bg Black<BR>
+<B><TT>Ps = 31 / 41</TT></B> : fg / bg Red<BR>
+<B><TT>Ps = 32 / 42</TT></B> : fg / bg Green<BR>
+<B><TT>Ps = 33 / 43</TT></B> : fg / bg Yellow<BR>
+<B><TT>Ps = 34 / 44</TT></B> : fg / bg Blue<BR>
+<B><TT>Ps = 35 / 45</TT></B> : fg / bg Magenta<BR>
+<B><TT>Ps = 36 / 46</TT></B> : fg / bg Cyan<BR>
+<B><TT>Ps = 37 / 47</TT></B> : fg / bg White<BR>
+<B><TT>Ps = 39 / 49</TT></B> : fg / bg Default</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps n</TT></B></DT>
+<DD>Device Status Report (DSR)<BR>
+<B><TT>Ps = 5</TT></B> : Status Report <B><TT>ESC [ 0 n</TT></B> (``OK'')<BR>
+<B><TT>Ps = 6</TT></B> : Report Cursor Position (CPR) [row;column] as
+ <B><TT>ESC [ r ; c R</TT></B><BR>
+<B><TT>Ps = 7</TT></B> : Request Display Name<BR>
+<B><TT>Ps = 8</TT></B> : Request Version Number (place in window title)
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps;Ps r</TT></B></DT>
+<DD>Set Scrolling Region [top;bottom]<BR>
+[default: full size of window] (CSR)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ Ps x</TT></B></DT>
+<DD>Request Terminal Parameters (DECREQTPARM)
+</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="PrivateModes">DEC Private Modes</A></H2>
+
+<DL>
+<DT><B><TT>ESC [ ? Pm h</TT></B></DT>
+<DD>DEC Private Mode Set (DECSET)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ ? Pm l</TT></B></DT>
+<DD>DEC Private Mode Reset (DECRST)</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ ? Pm r</TT></B></DT>
+<DD>Restore previously saved DEC Private Mode Values.</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ ? Pm s</TT></B></DT>
+<DD>Save DEC Private Mode Values.</DD>
+</DL>
+
+<P>
+<DL>
+<DT><B><TT>ESC [ ? Pm t</TT></B></DT>
+<DD>Toggle DEC Private Mode Values (rxvt extension).</DD>
+</DL>
+<P>
+
+<EM>where</EM>
+<P>
+
+<DL>
+<DD>
+<DT><B><TT>Ps = 1</TT></B> (DECCKM)</DT>
+<DD>
+<B><TT>h</TT></B> : Application Cursor Keys<BR>
+<B><TT>l</TT></B> : Normal Cursor Keys
+</DD>
+<DT><B><TT>Ps = 2</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Designate USASCII for character sets G0-G3.
+</DD>
+<DT><B><TT>Ps = 3</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : 132 Column Mode (DECCOLM)<BR>
+<B><TT>l</TT></B> : 80 Column Mode (DECCOLM)
+</DD>
+<DT><B><TT>Ps = 4</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Smooth (Slow) Scroll (DECSCLM)<BR>
+<B><TT>l</TT></B> : Jump (Fast) Scroll (DECSCLM)
+</DD>
+<DT><B><TT>Ps = 5</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Reverse Video (DECSCNM)<BR>
+<B><TT>l</TT></B> : Normal Video (DECSCNM)
+</DD>
+<DT><B><TT>Ps = 6</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Origin Mode (DECOM)<BR>
+<B><TT>l</TT></B> : Normal Cursor Mode (DECOM)
+</DD>
+<DT><B><TT>Ps = 7</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Wraparound Mode (DECAWM)<BR>
+<B><TT>l</TT></B> : No Wraparound Mode (DECAWM)
+</DD>
+<DT><B><TT>Ps = 8</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Auto-repeat Keys (DECARM)<BR>
+<B><TT>l</TT></B> : No Auto-repeat Keys (DECARM)
+</DD>
+<DT><B><TT>Ps = 9</TT></B> (X10 XTerm <A HREF="#Mouse">mouse reporting</A>)</DT>
+<DD>
+<B><TT>h</TT></B> : Send Mouse X &amp; Y on button press.<BR>
+<B><TT>l</TT></B> : No mouse reporting.
+</DD>
+<A NAME="Priv10"></A>
+<DT><B><TT>Ps = 10</TT></B> (<B><U>rxvt</U></B>)</DT>
+<DD>
+<B><TT>h</TT></B> : <A HREF="#menuBar">menuBar</A> visisble<BR>
+<B><TT>l</TT></B> : <A HREF="#menuBar">menuBar</A> invisisble
+</DD>
+<DT><B><TT>Ps = 25</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Visible cursor {cnorm/cvvis}<BR>
+<B><TT>l</TT></B> : Invisible cursor {civis}
+</DD>
+<DT><B><TT>Ps = 30</TT></B> (<B><U>rxvt</U></B>)</DT>
+<DD>
+<B><TT>h</TT></B> : scrollBar visisble<BR>
+<B><TT>l</TT></B> : scrollBar invisisble
+</DD>
+<DT><B><TT>Ps = 35</TT></B> (<B><U>rxvt</U></B>)</DT>
+<DD>
+<B><TT>h</TT></B> : Allow XTerm Shift+key sequences<BR>
+<B><TT>l</TT></B> : Disallow XTerm Shift+key sequences
+</DD>
+<DT><B><TT>Ps = 38</TT></B> : Enter Tektronix Mode (DECTEK)
+<B><U>unimplemented</U></B></DT>
+<DD>
+</DD>
+<DT><B><TT>Ps = 40</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Allow 80/132 Mode<BR>
+<B><TT>l</TT></B> : Disallow 80/132 Mode
+</DD>
+<DT><B><TT>Ps = 44</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Turn On Margin Bell<BR>
+<B><TT>l</TT></B> : Turn Off Margin Bell
+</DD>
+<DT><B><TT>Ps = 45</TT></B> <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Reverse-wraparound Mode<BR>
+<B><TT>l</TT></B> : No Reverse-wraparound Mode
+</DD>
+<DT><B><TT>Ps = 46</TT></B> <B><U>unimplemented</U></B></DT>
+<DT><B><TT>Ps = 47</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Use Alternate Screen Buffer<BR>
+<B><TT>l</TT></B> : Use Normal Screen Buffer
+</DD>
+<A NAME="Priv66"></A>
+<DT><B><TT>Ps = 66</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Application Keypad (DECPAM)
+ == <A HREF="#ESC="><B><TT>ESC =</TT></B></A><BR>
+<B><TT>l</TT></B> : Normal Keypad (DECPNM)
+ == <A HREF="#ESC="><B><TT>ESC &gt;</TT></B></A>
+</DD>
+<DT><B><TT>Ps = 67</TT></B></DT>
+<DD>
+<B><TT>h</TT></B> : Backspace key sends <B><TT>BS</TT></B> (DECBKM)<BR>
+<B><TT>l</TT></B> : Backspace key sends <B><TT>DEL</TT></B>
+</DD>
+<DT><B><TT>Ps = 1000</TT></B> (X11 XTerm <A HREF="#Mouse">mouse reporting</A>)</DT>
+<DD>
+<B><TT>h</TT></B> : Send Mouse X &amp; Y on button press and release.<BR>
+<B><TT>l</TT></B> : No mouse reporting.
+</DD>
+<DT><B><TT>Ps = 1001</TT></B> (X11 XTerm <A HREF="#Mouse">mouse Tracking</A>) <B><U>unimplemented</U></B></DT>
+<DD>
+<B><TT>h</TT></B> : Use Hilite Mouse Tracking.<BR>
+<B><TT>l</TT></B> : No mouse reporting.
+</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="XTerm">XTerm Escape Sequences</A></H2>
+
+<DL>
+<DT><B><TT>ESC ] Ps;Pt BEL</TT></B></DT>
+<DD>Set XTerm Parameters</DD>
+<DT><B><TT>Ps = 0</TT></B></DT>
+<DD>Change Icon Name and Window Title to <B><TT>Pt</TT></B></DD>
+<DT><B><TT>Ps = 1</TT></B></DT>
+<DD>Change Icon Name to <B><TT>Pt</TT></B></DD>
+<DT><B><TT>Ps = 2</TT></B></DT>
+<DD>Change Window Title to <B><TT>Pt</TT></B></DD>
+<DT><B><TT>Ps = 10</TT></B></DT>
+<DD><A HREF="#menuBar">menuBar</A> command <B><TT>Pt</TT></B>
+(<B><U>rxvt compile-time option</U></B>)</DD>
+<DT><B><TT>Ps = 20</TT></B></DT>
+<DD>Change default background <A HREF="#XPM">pixmap</A> to <B><TT>Pt</TT></B>
+(<B><U>rxvt compile-time option</U></B>)
+</DD>
+
+<DT><B><TT>Ps = 39</TT></B></DT>
+<DD>Change default foreground color to <B><TT>Pt</TT></B>
+(<B><U>rxvt compile-time option</U></B>)</DD>
+<DT><B><TT>Ps = 46</TT></B></DT>
+<DD>Change Log File to <B><TT>Pt</TT></B>(normally disabled by a compile-time option) <B><U>unimplemented</U></B></DD>
+<DT><B><TT>Ps = 49</TT></B></DT>
+<DD>Change default background color to <B><TT>Pt</TT></B>
+(<B><U>rxvt compile-time option</U></B>)</DD>
+<DT>
+<B><TT>Ps = 50</TT></B></DT>
+<DD>Set Font to <B><TT>Pt</TT></B>, with the following special values of <B><TT>Pt</TT></B> (<B><U>rxvt</U></B>)<BR>
+<B><TT>#+n</TT></B> : change up <B><TT>n</TT></B> font(s)<BR>
+<B><TT>#-n</TT></B> : change down <B><TT>n</TT></B> font(s)<BR>
+<UL>if <B><TT>n</TT></B> is missing or 0, a value of 1 is used</UL>
+<EM>empty</EM> : change to font0<BR>
+<B><TT>#n</TT></B> : change to font<B><TT>n</TT></B></DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="menuBar">menuBar</A></H2>
+<P>
+
+<STRONG>The exact syntax used is <EM>almost</EM> solidified.</STRONG><BR>
+In the menus, <STRONG>DON'T</STRONG> try to use menuBar commands that
+add or remove a menuBar.
+<P>
+
+Note that in all of the commands, the <B><EM>/path/</EM></B>
+<EM>cannot</EM> be omitted:
+use <B>./</B> to specify a menu relative to the current menu.
+
+<H3>Overview of menuBar operation</H3>
+
+For the menuBar XTerm escape sequence <B><TT>ESC ] 10; Pt BEL</TT></B>, the
+syntax of <B><TT>Pt</TT></B> can be used for a variety of tasks:
+<UL COMPACT>
+<LI><A HREF="#menuBarCommands">Commands</A></LI>
+<LI><A HREF="#menuBarAdd">Adding and accessing menus</A></LI>
+<LI><A HREF="#menuBarRemove">Removing menus</A></LI>
+<LI><A HREF="#menuBarArrows">Quick Arrows</A></LI>
+<LI><A HREF="#menuBarSummary">Command Summary</A></LI>
+</UL>
+
+At the top level is the current menuBar which is a member of a
+circular linked-list of other such menuBars.
+
+The menuBar acts as a parent for the various drop-down menus, which in
+turn, may have labels, separator lines, menuItems and subMenus.
+
+The menuItems are the useful bits: you can use them to mimic keyboard
+input or even to send text or escape sequences back to rxvt.
+
+The menuBar syntax is intended to provide a simple yet robust method
+of constructing and manipulating menus and navigating through the
+menuBars.
+
+<P>
+The first step is to use the tag <B>[menu:<EM>name</EM>]</B> which
+creates the menuBar called <EM>name</EM> and allows access.
+You may now
+<A HREF="#menuBarAdd">add</A> or <A HREF="#menuBarRemove">remove</A>
+menus, subMenus, and menuItems. Finally, use the tag
+<B>[done]</B> to set the menuBar access as <B>readonly</B>
+to prevent accidental corruption of the menus.
+To re-access the current menuBar for alterations, use the tag
+<B>[menu]</B>, make the alterations and then use
+<B>[done]</B>
+<P>
+
+<H3><A HREF="#menuBar" NAME="menuBarCommands">Commands</A></H3>
+
+<DL >
+<DT><B>[menu:<EM>name</EM>]</B></DT>
+<DD>
+access the named menuBar for creation or alteration.
+If a new menuBar is created, it is called <EM>name</EM> (max of 15 chars)
+and the current menuBar is pushed onto the stack
+</DD>
+
+<DT><B>[menu]</B></DT>
+<DD>access the current menuBar for alteration</DD>
+
+<DT><B>[title:<EM>string</EM>]</B></DT>
+<DD>
+set the current menuBar's title to <EM>string</EM>, which may contain
+the following format specifiers:<BR>
+<B>%%</B> : literal <B>%</B> character<BR>
+<B>%n</B> : rxvt name (as per the <B>-name</B> command-line option)<BR>
+<B>%v</B> : rxvt version
+</DD>
+
+<DT><B>[done]</B></DT>
+<DD>
+set menuBar access as <B>readonly</B>.<BR>
+End-of-file tag for <B>[read:<EM>file</EM>]</B> operations.
+</DD>
+
+<DT><B>[read:<EM>file</EM>]</B></DT>
+<DD>
+read menu commands directly from <EM>file</EM>
+(extension &quot;.menu&quot; will be appended if required).
+Start reading at a line with <B>[menu]</B> or <B>[menu:<EM>name</EM>]</B>
+and continuing until <B>[done]</B> is encountered.
+<BR>
+Blank and comment lines (starting with <B>#</B>) are ignored.
+Actually, since any invalid menu commands are also ignored, almost
+anything could be construed as a comment line, but this may be
+tightened up in the future ... so don't count on it!.
+</DD>
+
+<DT><B>[read:<EM>file</EM>;<EM>name</EM>]</B></DT>
+<DD>
+The same as <B>[read:<EM>file</EM>]</B>, but
+start reading at a line with <B>[menu:<EM>name</EM>]</B>
+and continuing until <B>[done:<EM>name</EM>]</B>
+or <B>[done]</B> is encountered.
+</DD>
+
+<DT><B>[dump]</B></DT>
+<DD>
+dump all menuBars to the file <B>/tmp/rxvt-PID</B> in a format suitable
+for later rereading.
+</DD>
+
+<DT><B>
+[rm:name]<BR>
+[rm] [rm:]<BR>
+[rm*] [rm:*]
+</B></DT>
+<DD>
+remove the named menuBar<BR>
+remove the current menuBar<BR>
+remove all menuBars
+</DD>
+
+<DT><B>[swap]</B></DT>
+<DD>swap the top two menuBars</DD>
+
+<DT><B>[prev]<BR>[next]</B></DT>
+<DD>access the previous or next menuBar</DD>
+
+<DT><B>[show]<BR>[hide]</B></DT>
+<DD>control display of the menuBar ... just like
+<A HREF="#Priv10"><B>ESC[?10 h/l</B></A>
+</DD>
+
+<DT><B>
+[pixmap:<EM>name</EM>]<BR>
+[pixmap:<EM>name</EM>;<EM>scaling</EM>]
+</B></DT>
+<DD>set the background pixmap globally ... just like
+<A HREF="#XPM"><B>ESC]20; Pt BEL</B></A>
+<BR>
+<B>A Future implementation <EM>may</EM> make this local to the menubar</B>
+</DD>
+
+<DT><B>[:<EM>command</EM>:]</B></DT>
+<DD>ignore the menu readonly status and issue a <EM>command</EM> to
+<A HREF="#menuBarAdd">Add/Modify</A> or
+<A HREF="#menuBarRemove">Remove</A> a menu or menuitem or
+change the <A HREF="#menuBarArrows">Quick Arrows</A>;
+a useful shortcut for setting the quick arrows from a menuBar.
+</DD>
+</DL>
+
+<H3><A HREF="#menuBar" NAME="menuBarAdd">Adding and accessing menus</A></H3>
+
+The following commands may also be <B>+</B> prefixed.
+<DL>
+<DT><B>/<BR>./<BR>../<BR>../../</B></DT>
+<DD>
+access menuBar top level<BR>
+access current menu level<BR>
+access parent menu (1 level up)<BR>
+access parent menu (multiple levels up)
+</DD>
+
+<DT><B><EM>/path/</EM>menu</B></DT>
+<DD>add/access menu</DD>
+
+<DT><B><EM>/path/</EM>menu/*</B></DT>
+<DD>add/access menu and clear it if it exists</DD>
+
+<DT><B><EM>/path/</EM>{-}</B></DT>
+<DD>add separator</DD>
+
+<DT><B><EM>/path/</EM>{item}</B></DT>
+<DD>add <B>item</B> as a label</DD>
+
+<DT><B><EM>/path/</EM>{item} action</B></DT>
+<DD>
+add/alter <EM>menuitem</EM> with an associated <EM>action</EM>
+</DD>
+
+<DT><B><EM>/path/</EM>{item}{right-text}</B></DT>
+<DD>
+add/alter <EM>menuitem</EM> with <B>right-text</B>
+as the right-justified text and as the associated <EM>action</EM>
+</DD>
+
+<DT><B><EM>/path/</EM>{item}{rtext} action</B></DT>
+<DD>
+add/alter <EM>menuitem</EM> with an associated <EM>action</EM>
+and with <B>rtext</B> as the right-justified text.
+</DD>
+</DL>
+
+<DL>
+<DT>Special characters in <EM>action</EM> must be backslash-escaped:</DT>
+<DD><B>\a \b \E \e \n \r \t \octal</B></DD>
+<DT>or in control-character notation:</DT>
+<DD><B>^@, ^A .. ^Z .. ^_, ^?</B></DD>
+</DL>
+
+To send a string starting with a <B>NUL</B> (<B>^@</B>)
+character to the program, start <EM>action</EM> with a pair of
+<B>NUL</B> characters (<B>^@^@</B>),
+the first of which will be stripped off and the balance directed to
+the program.
+Otherwise if <EM>action</EM> begins with <B>NUL</B>
+followed by non-<B>NUL</B> characters, the leading
+<B>NUL</B> is stripped off and the balance is sent back to rxvt.
+<P>
+As a convenience for the many Emacs-type editors, <EM>action</EM>
+may start with <B>M-</B> (eg, <B>M-$</B> is equivalent to <B>\E$</B>)
+and a <B>CR</B> will be appended if missed from <B>M-x</B> commands.
+
+As a convenience for issuing XTerm <B>ESC]</B> sequences from a menubar
+(or quick arrow), a <B>BEL</B> (<B>^G</B>) will be appended if needed.
+
+<DL>
+<DT>For example,</DT>
+<DD><B>M-xapropos</B></DD>
+<DT>is equivalent to</DT>
+<DD><B>\Exapropos\r</B></DD>
+<DT>and</DT>
+<DD><B>\E]10;mona;100</B>
+<DT>is equivalent to</DT>
+<DD><B>\E]10;mona;100\a</B></DD>
+</DL>
+
+<P>
+The option <B>{<EM>right-rtext</EM>}</B> will be right-justified.
+In the absence of a specified action, this text will be used as the
+<EM>action</EM> as well.
+<DL>
+<DT>For example,</DT>
+<DD><B>/File/{Open}{^X^F}</B></DD>
+<DT>is equivalent to</DT>
+<DD><B>/File/{Open){^X^F}&nbsp;^X^F</B></DD>
+</DL>
+
+The left label <EM>is</EM> necessary, since it's used for matching,
+but implicitly hiding the left label (by using same name for both left
+and right labels), or explicitly hiding the left label (by preceding
+it with a dot), makes it possible to have right-justified text only.
+<DL>
+<DT>For example,</DT>
+<DD><B>/File/{Open}{Open}&nbsp;Open-File-Action</B></DD>
+<DT>or hiding it</DT>
+<DD><B>/File/{.anylabel}{Open}&nbsp;Open-File-Action</B></DD>
+</DL>
+
+<H3><A HREF="#menuBar" NAME="menuBarRemove">Removing menus</A></H3>
+
+<DL>
+<DT><B>
+-/*<BR>
+-<EM>/path/</EM>menu<BR>
+-<EM>/path/</EM>{item}<BR>
+-<EM>/path/</EM>{-}
+</B></DT>
+<DD>
+remove all menus from the menuBar, the same as <B>[clear]</B><BR>
+remove menu<BR>
+remove item<BR>
+remove separator
+</DD>
+<DT><B>-/path/menu/*</B></DT>
+<DD>remove all items, separators and submenus from menu</DD>
+</DL>
+
+<H3><A HREF="#menuBar" NAME="menuBarArrows">Quick Arrows</A></H3>
+
+The menus also provide a hook for <EM>quick arrows</EM> to provide easier
+user access. If nothing has been explicitly set, the default is to
+emulate the curror keys. The syntax permits each arrow to be altered
+individually or all four at once without re-entering their common
+beginning/end text. For example, to explicitly associate cursor
+actions with the arrows, any of the following forms could be used:
+
+<DL >
+<DT><B>
+&lt;r&gt;<EM>Right</EM><BR>
+&lt;l&gt;<EM>Left</EM><BR>
+&lt;u&gt;<EM>Up</EM><BR>
+&lt;d&gt;<EM>Down</EM>
+</B></DT>
+<DD>Define actions for the respective arrow buttons</DD>
+<DT><B>
+&lt;b&gt;<EM>Begin</EM><BR>
+&lt;e&gt;<EM>End</EM>
+</B></TT></DT>
+<DD>
+Define common beginning/end parts for <EM>quick arrows</EM>
+when used in conjunction with the above
+<B>&lt;r&gt; &lt;l&gt; &lt;u&gt; &lt;d&gt;</B>
+constructs
+</DD>
+</DL>
+
+<DL>
+<DT>For example, define arrows individually,</DT>
+<DD><B>
+&lt;u&gt;\E[A<BR>
+&lt;d&gt;\E[B<BR>
+&lt;r&gt;\E[C<BR>
+&lt;l&gt;\E[D
+</B></DD>
+<DT>or all at once</DT>
+<DD><B>&lt;u&gt;\E[A&lt;d&gt;\E[B&lt;r&gt;\E[C&lt;l&gt;\E[D</B></DD>
+<DT>or more compactly (factoring out common parts)</DD>
+<DD><B>&lt;b&gt;\E[&lt;u&gt;A&lt;d&gt;B&lt;r&gt;C&lt;l&gt;D</B></DD>
+</DL>
+
+<HR>
+<H3><A HREF="#menuBar" NAME="menuBarSummary">Command Summary</A></H3>
+
+A short summary of the most <EM>common</EM> commands:
+<DL >
+<DT>[menu:name]</DT>
+<DD>use an existing named menuBar or start a new one</DD>
+<DT>[menu]</DT>
+<DD>use the current menuBar</DD>
+<DT>[title:string]</DT>
+<DD>set menuBar title<DD>
+<DT>[done]</DT>
+<DD>set menu access to readonly and, if reading from a file, signal EOF</DD>
+<DT>[done:name]</DT>
+<DD>if reading from a file using [read:file;name] signal EOF</DD>
+<DT>[rm:name]<BR>[rm] [rm:]<BR>[rm*] [rm:*]</DT>
+<DD>remove named, current, or all menuBar(s)</DD>
+<DT>[swap]</DT>
+<DD>swap top two menuBars</DD>
+<DT>[prev]<BR>[next]</DT>
+<DD>access the previous/next menuBar</DD>
+<DT>[show]<BR>[hide]</DT>
+<DD>map/unmap menuBar</DD>
+<DT>[pixmap;file]<BR>[pixmap;file;scaling]</DT>
+<DD>set a background pixmap</DD>
+<DT>
+[read:file]<BR>
+[read:file;name]</DT>
+<DD>read in a menu from a file</DD>
+<DT>[dump]</DT>
+<DD>dump out all menuBars to /tmp/rxvt-PID</DD>
+<DT>/<DT><DD>access menuBar top level</DD>
+<DT>./<BR>../<BR>../../</DT><DD>access current or parent menu level</DD>
+<DT>/path/menu</DT><DD>add/access menu</DD>
+<DT>/path/{-}</DT><DD>add separator</DD>
+<DT>/path/{item}{rtext}&nbsp;action</DT>
+<DD>add/alter menu item<BR>({rtext} and/or action, may be omitted)</DD>
+<DT>-/*</DT><DD>remove all menus from the menuBar</DD>
+<DT>-/path/menu</DT><DD>remove menu items, separators and submenus from menu</DD>
+<DT>-/path/menu</DT><DD>remove menu</DD>
+<DT>-/path/{item}</DT><DD>remove item</DD>
+<DT>-/path/{-}</DT><DD>remove separator</DD>
+<DT>&lt;b&gt;Begin&lt;r&gt;Right&lt;l&gt;Left&lt;u&gt;Up&lt;d&gt;Down&lt;e&gt;End</DT>
+<DD>menu quick arrows</DD>
+</DL>
+
+<HR>
+<H2><A HREF="#toc" NAME="XPM">XPM</A></H2>
+<P>
+For the XPM XTerm escape sequence <B><TT>ESC ] 20; Pt BEL</TT></B>
+then value of <B><TT>Pt</TT></B>
+can be the name of the background pixmap followed by a sequence of
+scaling/positioning commands separated by semi-colons. The
+scaling/positioning commands are as follows:
+<DL>
+<DT>query scale/position</DT>
+<DD><B>?</B></DD>
+<DT>change scale and position</DT>
+<DD><B>WxH+X+Y</B><BR>
+<B>WxH+X</B> (== <B>WxH+X+X</B>)<BR>
+<B>WxH</B> (same as <B>WxH+50+50</B>)<BR>
+<B>W+X+Y</B> (same as <B>WxW+X+Y</B>)<BR>
+<B>W+X</B> (same as <B>WxW+X+X</B>)<BR>
+<B>W</B> (same as <B>WxW+50+50</B>)
+</DD>
+<DT>change position (absolute)</DT>
+<DD><B>=+X+Y</B><BR>
+<B>=+X</B> (same as <B>=+X+Y</B>)
+</DD>
+<DT>change position (relative)</DT>
+<DD><B>+X+Y</B><BR>
+<B>+X</B> (same as <B>+X+Y</B>)
+</DD>
+<DT>rescale (relative)</DT>
+<DD>
+<B>Wx0</B> -&gt; <B>W *= (W/100)</B><BR>
+<B>0xH</B> -&gt; <B>H *= (H/100)</B></DD>
+</DL>
+<P>
+
+For example:
+<DL>
+<DT><B>\E]20;funky\a</B></DT>
+<DD>load <B>funky.xpm</B> as a tiled image</DD>
+<DT><B>\E]20;mona;100\a</B></DT>
+<DD>load <B>mona.xpm</B> with a scaling of 100%</DD>
+<DT><B>\E]20;;200;?\a</B></DT>
+<DD>rescale the current pixmap to 200% and display the image geometry
+in the title</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="Mouse">Mouse Reporting</A></H2>
+<P>
+
+<DL>
+<DT><B><TT>ESC [ M &lt;b&gt; &lt;x&gt; &lt;y&gt;</TT></B></DT>
+<DD>report mouse position</DD>
+</DL>
+<P>
+ <P>
+The lower 2 bits of <B><TT>&lt;b&gt;</TT></B> indicate the button:
+<DL>
+<DT>Button = <B><TT>&lt;b&gt; &amp; 3 - SPACE</TT></B></DT>
+<DD>
+0 = Button1 pressed<BR>
+1 = Button2 pressed<BR>
+2 = Button3 pressed<BR>
+3 = button released (X11 mouse report)</DD>
+</DL>
+The upper bits of <B><TT>&lt;b&gt;</TT></B> indicate the modifiers when
+the button was pressed and are added together (X11 mouse report only):
+<DL>
+<DT>State = <B><TT>&lt;b&gt; &amp; 28 - SPACE</TT></B></DT>
+<DD>
+4 = Shift<BR>
+8 = Meta<BR>
+16 = Control<BR>
+Col = <B><TT>&lt;x&gt; - SPACE</TT></B><BR>
+Row = <B><TT>&lt;y&gt; - SPACE</TT></B>
+</DD>
+</DL>
+
+<HR>
+<H2><A HREF="#toc" NAME="Graphics">Special Graphics Mode</A></H2>
+
+Add more documentation here, <EM>if anyone actually cares.</EM> <P>
+
+<DL>
+<DT><B><TT>ESC G Q</TT></B></DT>
+<DD>query if graphics are available<BR>
+returns: <B><TT>ESC G 0</TT></B> no graphics available<BR>
+returns: <B><TT>ESC G 1</TT></B> graphics available (color only)</DD>
+</DL>
+<DL>
+<DT><B><TT>ESC G W &lt;x&gt;;&lt;y&gt;;&lt;w&gt;;&lt;h&gt;:</TT></B></DT>
+<DD>create window</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC G C &lt;id&gt;</TT></B></DT>
+<DD>clear window</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>ESC G G &lt;id&gt;:</TT></B></DT>
+<DD>query window<BR>
+returns: <B><TT>ESC G &lt;id&gt; &lt;x&gt; &lt;y&gt; &lt;w&gt; &lt;h&gt; &lt;fw&gt; &lt;fh&gt; &lt;nw&gt; &lt;nh&gt;</TT></B>
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>
+ESC G L &lt;id&gt;<BR>
+ESC G P &lt;id&gt;<BR>
+ESC G F &lt;id&gt;
+</TT></B></DT>
+<DD>
+start point<BR>
+start line<BR>
+start fill
+</DD>
+</DL>
+<P>
+
+<DL>
+<DT><B><TT>;&lt;x&gt;;&lt;y&gt;</TT></B></DT>
+<DD>extend point/line/fill</DD>
+</DL>
+
+<P>
+<DL>
+<DT><B><TT>ESC G T &lt;id&gt;;&lt;x&gt;;&lt;y&gt;;&lt;mode&gt;;&lt;len&gt;:&lt;text&gt;</TT></B></DT>
+<DD>place text</DD>
+</DL>
+<P>
+
+<HR>
+<H2><A HREF="#toc" NAME="KeyCodes">Key Codes</A></H2>
+<P>
+
+Note: <B>Shift</B> + <B>F1</B>-<B>F10</B> generates <B>F11</B>-<B>F20</B>
+<P>
+For the keypad, use <B>Shift</B> to temporarily override
+Application-Keypad setting use <B>Num_Lock</B> to toggle
+Application-Keypad setting if <B>Num_Lock</B> is off,
+<A HREF="#ESC=">escape sequences</A> toggle Application-Keypad setting.
+Also note that values of <B>Home</B>, <B>End</B>, <B>Delete</B>
+may have been compiled differently on your system.
+
+<TABLE CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TD></TD>
+<TD><B>Normal<B></TD>
+<TD><B>Shift<B></TD>
+<TD><B>Control<B></TD>
+<TD><B>Ctrl+Shift<B></TD>
+</TR>
+<TR><TD>Tab </TD><TD>^I </TD><TD>ESC [ Z</TD><TD>^I </TD><TD>ESC [ Z</TD></TR>
+<TR><TD>BackSpace</TD><TD>^H </TD><TD>^? </TD><TD>^?</TD><TD>^?</TD></TR>
+<TR><TD>Find </TD><TD>ESC [ 1 ~</TD><TD>ESC [ 1 $ </TD><TD>ESC [ 1 ^</TD><TD>ESC [ 1 @</TD></TR>
+<TR><TD>Insert </TD><TD>ESC [ 2 ~</TD><TD><I>paste</I></TD><TD>ESC [ 2 ^</TD><TD>ESC [ 2 @</TD></TR>
+<TR><TD>Execute </TD><TD>ESC [ 3 ~</TD><TD>ESC [ 3 $ </TD><TD>ESC [ 3 ^</TD><TD>ESC [ 3 @</TD></TR>
+<TR><TD>Select </TD><TD>ESC [ 4 ~</TD><TD>ESC [ 4 $ </TD><TD>ESC [ 4 ^</TD><TD>ESC [ 4 @</TD></TR>
+<TR><TD>Prior </TD><TD>ESC [ 5 ~</TD><TD><I>scroll-up</I></TD><TD>ESC [ 5 ^</TD><TD>ESC [ 5 @</TD></TR>
+<TR><TD>Next </TD><TD>ESC [ 6 ~</TD><TD><I>scroll-down</I></TD><TD>ESC [ 6 ^</TD><TD>ESC [ 6 @</TD></TR>
+<TR><TD>Home </TD><TD>ESC [ 7 ~</TD><TD>ESC [ 7 $ </TD><TD>ESC [ 7 ^</TD><TD>ESC [ 7 @</TD></TR>
+<TR><TD>End </TD><TD>ESC [ 8 ~</TD><TD>ESC [ 8 $ </TD><TD>ESC [ 8 ^</TD><TD>ESC [ 8 @</TD></TR>
+<TR><TD>Delete </TD><TD>ESC [ 3 ~</TD><TD>ESC [ 3 $ </TD><TD>ESC [ 3 ^</TD><TD>ESC [ 3 @</TD></TR>
+
+<TR><TD>F1 </TD><TD>ESC [ 11 ~</TD><TD>ESC [ 23 ~</TD><TD>ESC [ 11 ^</TD><TD>ESC [ 23 ^</TD></TR>
+<TR><TD>F2 </TD><TD>ESC [ 12 ~</TD><TD>ESC [ 24 ~</TD><TD>ESC [ 12 ^</TD><TD>ESC [ 24 ^</TD></TR>
+<TR><TD>F3 </TD><TD>ESC [ 13 ~</TD><TD>ESC [ 25 ~</TD><TD>ESC [ 13 ^</TD><TD>ESC [ 25 ^</TD></TR>
+<TR><TD>F4 </TD><TD>ESC [ 14 ~</TD><TD>ESC [ 26 ~</TD><TD>ESC [ 14 ^</TD><TD>ESC [ 26 ^</TD></TR>
+<TR><TD>F5 </TD><TD>ESC [ 15 ~</TD><TD>ESC [ 28 ~</TD><TD>ESC [ 15 ^</TD><TD>ESC [ 28 ^</TD></TR>
+<TR><TD>F6 </TD><TD>ESC [ 17 ~</TD><TD>ESC [ 29 ~</TD><TD>ESC [ 17 ^</TD><TD>ESC [ 29 ^</TD></TR>
+<TR><TD>F7 </TD><TD>ESC [ 18 ~</TD><TD>ESC [ 31 ~</TD><TD>ESC [ 18 ^</TD><TD>ESC [ 31 ^</TD></TR>
+<TR><TD>F8 </TD><TD>ESC [ 19 ~</TD><TD>ESC [ 32 ~</TD><TD>ESC [ 19 ^</TD><TD>ESC [ 32 ^</TD></TR>
+<TR><TD>F9 </TD><TD>ESC [ 20 ~</TD><TD>ESC [ 33 ~</TD><TD>ESC [ 20 ^</TD><TD>ESC [ 33 ^</TD></TR>
+<TR><TD>F10</TD><TD>ESC [ 21 ~</TD><TD>ESC [ 34 ~</TD><TD>ESC [ 21 ^</TD><TD>ESC [ 34 ^</TD></TR>
+<TR><TD>F11</TD><TD>ESC [ 23 ~</TD><TD>ESC [ 23 $</TD><TD>ESC [ 23 ^</TD><TD>ESC [ 23 @</TD></TR>
+<TR><TD>F12</TD><TD>ESC [ 24 ~</TD><TD>ESC [ 24 $</TD><TD>ESC [ 24 ^</TD><TD>ESC [ 24 @</TD></TR>
+<TR><TD>F13</TD><TD>ESC [ 25 ~</TD><TD>ESC [ 25 $</TD><TD>ESC [ 25 ^</TD><TD>ESC [ 25 @</TD></TR>
+<TR><TD>F14</TD><TD>ESC [ 26 ~</TD><TD>ESC [ 26 $</TD><TD>ESC [ 26 ^</TD><TD>ESC [ 26 @</TD></TR>
+<TR><TD>F15 (Help)</TD><TD>ESC [ 28 ~</TD><TD>ESC [ 28 $</TD><TD>ESC [ 28 ^</TD><TD>ESC [ 28 @</TD></TR>
+<TR><TD>F16 (Menu)</TD><TD>ESC [ 29 ~</TD><TD>ESC [ 29 $</TD><TD>ESC [ 29 ^</TD><TD>ESC [ 29 @</TD></TR>
+<TR><TD>F17</TD><TD>ESC [ 31 ~</TD><TD>ESC [ 31 $</TD><TD>ESC [ 31 ^</TD><TD>ESC [ 31 @</TD></TR>
+<TR><TD>F18</TD><TD>ESC [ 32 ~</TD><TD>ESC [ 32 $</TD><TD>ESC [ 32 ^</TD><TD>ESC [ 32 @</TD></TR>
+<TR><TD>F19</TD><TD>ESC [ 33 ~</TD><TD>ESC [ 33 $</TD><TD>ESC [ 33 ^</TD><TD>ESC [ 33 @</TD></TR>
+<TR><TD>F20</TD><TD>ESC [ 34 ~</TD><TD>ESC [ 34 $</TD><TD>ESC [ 34 ^</TD><TD>ESC [ 34 @</TD></TR>
+<TR>
+<TD></TD><TD></TD><TD></TD><TD></TD>
+<TD><B>Application</B></TD>
+</TR>
+<TR><TD>Up </TD><TD>ESC [ A</TD><TD>ESC [ a</TD><TD>ESC O a</TD><TD>ESC O A</TD></TR>
+<TR><TD>Down </TD><TD>ESC [ B</TD><TD>ESC [ b</TD><TD>ESC O b</TD><TD>ESC O B</TD></TR>
+<TR><TD>Right</TD><TD>ESC [ C</TD><TD>ESC [ c</TD><TD>ESC O c</TD><TD>ESC O C</TD></TR>
+<TR><TD>Left </TD><TD>ESC [ D</TD><TD>ESC [ d</TD><TD>ESC O d</TD><TD>ESC O D</TD></TR>
+<TR><TD>KP_Enter</TD><TD>^M</TD><TD></TD><TD></TD><TD>ESC O M</TD></TR>
+<TR><TD>KP_F1</TD><TD>ESC O P</TD><TD></TD><TD></TD><TD>ESC O P</TD></TR>
+<TR><TD>KP_F2</TD><TD>ESC O Q</TD><TD></TD><TD></TD><TD>ESC O Q</TD></TR>
+<TR><TD>KP_F3</TD><TD>ESC O R</TD><TD></TD><TD></TD><TD>ESC O R</TD></TR>
+<TR><TD>KP_F4</TD><TD>ESC O S</TD><TD></TD><TD></TD><TD>ESC O S</TD></TR>
+<TR><TD>XK_KP_Multiply </TD><TD>*</TD><TD></TD><TD></TD><TD>ESC O j</TD></TR>
+<TR><TD>XK_KP_Add </TD><TD>+</TD><TD></TD><TD></TD><TD>ESC O k</TD></TR>
+<TR><TD>XK_KP_Separator</TD><TD>,</TD><TD></TD><TD></TD><TD>ESC O l</TD></TR>
+<TR><TD>XK_KP_Subtract </TD><TD>-</TD><TD></TD><TD></TD><TD>ESC O m</TD></TR>
+<TR><TD>XK_KP_Decimal </TD><TD>.</TD><TD></TD><TD></TD><TD>ESC O n</TD></TR>
+<TR><TD>XK_KP_Divide </TD><TD>/</TD><TD></TD><TD></TD><TD>ESC O o</TD></TR>
+<TR><TD>XK_KP_0 </TD><TD>0</TD><TD></TD><TD></TD><TD>ESC O p</TD></TR>
+<TR><TD>XK_KP_1 </TD><TD>1</TD><TD></TD><TD></TD><TD>ESC O q</TD></TR>
+<TR><TD>XK_KP_2 </TD><TD>2</TD><TD></TD><TD></TD><TD>ESC O r</TD></TR>
+<TR><TD>XK_KP_3 </TD><TD>3</TD><TD></TD><TD></TD><TD>ESC O s</TD></TR>
+<TR><TD>XK_KP_4 </TD><TD>4</TD><TD></TD><TD></TD><TD>ESC O t</TD></TR>
+<TR><TD>XK_KP_5 </TD><TD>5</TD><TD></TD><TD></TD><TD>ESC O u</TD></TR>
+<TR><TD>XK_KP_6 </TD><TD>6</TD><TD></TD><TD></TD><TD>ESC O v</TD></TR>
+<TR><TD>XK_KP_7 </TD><TD>7</TD><TD></TD><TD></TD><TD>ESC O w</TD></TR>
+<TR><TD>XK_KP_8 </TD><TD>8</TD><TD></TD><TD></TD><TD>ESC O x</TD></TR>
+<TR><TD>XK_KP_9 </TD><TD>9</TD><TD></TD><TD></TD><TD>ESC O y</TD></TR>
+</TABLE>
+
+<P><HR><ADDRESS>
+Mark Olesen<BR>
+Fri Feb 14 14:16:00 1997
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/konsole/doc/More/swedish_vt102_codes.txt b/konsole/doc/More/swedish_vt102_codes.txt
new file mode 100644
index 000000000..7fca08c71
--- /dev/null
+++ b/konsole/doc/More/swedish_vt102_codes.txt
@@ -0,0 +1,413 @@
+Article 3073 of comp.terminals:
+Path: cs.utk.edu!stc06.CTD.ORNL.GOV!fnnews.fnal.gov!uwm.edu!news.alpha.net!news.mathworks.com!europa.eng.gtefsd.com!howland.reston.ans.net!EU.net!uunet!sunic!trane.uninett.no!due.uninett.no!usenet
+From: lars@mi.uib.no (Lars Johanson)
+Newsgroups: comp.terminals
+Subject: vt102 escape codes
+Date: 24 Oct 1994 16:29:21 GMT
+Organization: Haukeland Sykehus
+Lines: 399
+Message-ID: <38gnd1$cio@due.uninett.no>
+NNTP-Posting-Host: lpjo.onh.haukeland.no
+X-Newsreader: WinVN 0.92.6+
+
+
+Hi.
+
+I have seen some people asking for escape sequencies for the
+vt100-terminal. I asked the DIGITAL company in Sweden, and
+received this (hopefully not copyrighted). It is a vt102 terminal,
+but there seems to be little difference. I've tried to mark
+functions special to vt102 with: // Not in vt100
+
+Here you are:
+
+
+
+Escape codes for vt102 terminal.
+
+All numbers below are octal.<n> means numeric value,<c> means character string.
+If <n> is missing it is 0 or in cursor movements 1.
+
+Reset and set modes
+ Set Modes
+ Esc [ <c> ; ... ; <c> h
+ 033 133 073 073 150
+ Reset Modes
+ Esc [ <c> ; ... ; <c> l
+ 033 133 073 073 154
+
+ Where <c> is
+ '2'= Lock keyboard (set); Unlock keyboard (reset)
+ '4'= Insert mode (set); Replace mode (reset)
+ '12'= Echo on (set); Echo off (reset)
+ '20'= Return = CR+LF (set); Return = CR (reset)
+ '?1'= Cursorkeys application (set); Cursorkeys normal (reset)
+ '?2'= Ansi (set); VT52 (reset)
+ '?3'= 132 char/row (set); 80 char/row (reset)
+ '?4'= Jump scroll (set); Smooth scroll (reset)
+ '?5'= Reverse screen (set); Normal screen (reset)
+ '?6'= Sets relative coordinates (set); Sets absolute coordinates (reset)
+ '?7'= Auto wrap (set); Auto wrap off (reset)
+ '?8'= Auto repeat on (set); Auto repeat off (reset)
+ '?18'= Send FF to printer after print screen (set); No char after PS (reset)
+ '?19'= Print screen prints full screen (set); PS prints scroll region (reset)
+ '?25'= Cursor on (set); Cursor off (reset)
+
+Set scrolling region (n1=upper,n2=lower)
+ Esc [ <n1> ; <n2> r
+ 033 133 073 162
+
+
+Cursor movement (<n>=how many chars or lines), cursor stop at margin.
+ Up
+ Esc [ <n> A
+ 033 133 101
+ Down
+ Esc [ <n> B
+ 033 133 102
+ Right
+ Esc [ <n> C
+ 033 133 103
+ Left
+ Esc [ n D
+ 033 133 104
+ Cursor position (<n1>=y,<n2>=x, from top of screen or scroll region)
+ Esc [ <n1> ; <n2> H
+ 033 133 073 110
+ Or Esc [ <n1> ; <n2> f
+ 033 133 073 146
+ Index (cursor down with scroll up when at margin)
+ Esc D
+ 033 104
+ Reverse index (cursor up with scroll down when at margin)
+ Esc M
+ 033 115
+ Next line (CR+Index)
+ Esc E
+ 033 105
+ Save cursor and attribute
+ Esc 7
+ 033 067
+ Restore cursor and attribute
+ Esc 8
+ 033 070
+
+
+Keybad character selection
+ Application keypad mode
+ Esc =
+ 033 075
+ Numeric keypad mode
+ Esc >
+ 033 076
+
+ Keypadkeys codes generated
+ Numeric Application VT52 Application
+ 0 0 (060) Esc O p (033 117 160) Esc ? p (033 077 160)
+ 1 1 (061) Esc O q (033 117 161) Esc ? q (033 077 161)
+ 2 2 (062) Esc O r (033 117 162) Esc ? r (033 077 162)
+ 3 3 (063) Esc O s (033 117 163) Esc ? s (033 077 163)
+ 4 4 (064) Esc O t (033 117 164) Esc ? t (033 077 164)
+ 5 5 (065) Esc O u (033 117 165) Esc ? u (033 077 165)
+ 6 6 (066) Esc O v (033 117 166) Esc ? v (033 077 166)
+ 7 7 (067) Esc O w (033 117 167) Esc ? w (033 077 167)
+ 8 8 (070) Esc O x (033 117 170) Esc ? x (033 077 170)
+ 9 9 (071) Esc O y (033 117 171) Esc ? y (033 077 171)
+ - (minus) - (055) Esc O m (033 117 155) Esc ? m (033 077 155)
+ , (comma) , (054) Esc O l (033 117 154) Esc ? l (033 077 154)
+ . (period) . (056) Esc O n (033 117 156) Esc ? n (033 077 156)
+ Enter CR (015)* Esc O M (033 117 115) Esc ? M (033 077 115)
+ PF1 Esc O P Esc O P (033 117 120) Esc P (033 120)
+ PF2 Esc O Q Esc O Q (033 117 121) Esc Q (033 121)
+ PF3 Esc O R Esc O R (033 117 122) Esc R (033 122)
+ PF4 Esc O S Esc O S (033 117 123) Esc S (033 123)
+ * Or CR+LF (015 012)
+
+ Cursorkeys codes generated (changed by set and reset modes '?1')
+ normal application
+ Up Esc [ A Esc O A
+ 033 133 101 033 117 101
+ Down Esc [ B Esc O B
+ 033 133 102 033 117 102
+ Right Esc [ C Esc O C
+ 033 133 103 033 117 103
+ Left Esc [ D Esc O D
+ 033 133 104 033 117 104
+
+
+Select character set
+ UK as G0
+ Esc ( A
+ 033 050 101
+ US as G0
+ Esc ( B
+ 033 050 102
+ Special characters and line drawing character set as G0
+ Esc ( 0
+ 033 050 060
+ Alternate ROM as G0 // Not in vt100
+ Esc ( 1
+ 033 050 061
+ Alternate ROM special characters character set as G0 // Not in vt100
+ Esc ( 2
+ 033 050 062
+
+ UK as G1
+ Esc ) A
+ 033 051 101
+ US as G1
+ Esc ) B
+ 033 051 102
+ Special characters and line drawing character set as G1
+ Esc ) 0
+ 033 051 060
+ Alternate ROM as G1 // Not in vt100
+ Esc ) 1
+ 033 051 061
+ Alternate ROM special characters character set as G1 // Not in vt100
+ Esc ) 2
+ 033 051 062
+
+ Selects G2 for one character // Not in vt100
+ Esc N
+ 033 115
+ Selects G3 for one character // Not in vt100
+ Esc O
+ 033 117
+
+
+Set graphic rendition
+ Esc [ <n> ; <n> m
+ 033 133 073 156
+
+ Where <n> is
+ 0 = Turn off attributes
+ 1 = Bold (Full)
+ 2 = Half // Not in vt100
+ 4 = Underline
+ 5 = Blink
+ 7 = Reverse
+ 21 = Normal intensity
+ 22 = Normal intensity
+ 24 = Cancel underlined
+ 25 = Cancel blinking
+ 27 = Cancel reverse
+
+Tab stops
+ Set horizontal tab
+ Esc H
+ 033 110
+ Clear horizontal tab
+ Esc [ g
+ 033 133 147
+ Or Esc [ 0 g
+ 033 133 060 147
+ Clear all horizontal tabs
+ Esc [ 3 g
+ 033 133 063 147
+
+
+Line attributes
+ Double-height
+ Top half
+ Esc # 3
+ 033 043 063
+ Bottom half
+ Esc # 4
+ 033 043 064
+ Single-width, single-height
+ Esc # 5
+ 033 043 065
+ Double-width
+ Esc # 6
+ 033 043 066
+
+
+Erasing
+ Erase in line
+ End of line (including cursor position)
+ Esc [ K
+ 033 133 113
+ Or Esc [ 0 K
+ 033 133 060 113
+ Beginning of line (including cursor position)
+ Esc [ 1 K
+ 033 133 061 113
+ Complete line
+ Esc [ 2 K
+ 033 133 062 113
+ Erase in display
+ End of screen (including cursor position)
+ Esc [ J
+ 033 133 112
+ Or Esc [ 0 J
+ 033 133 060 112
+ Beginning of screen (including cursor position)
+ Esc [ 1 J
+ 033 133 061 112
+ Complete display
+ Esc [ 2 J
+ 033 133 062 112
+
+
+Computer editing
+ Delete characters (<n> characters right from cursor
+ Esc [ <n> P
+ 033 133 120
+ Insert line (<n> lines)
+ Esc [ <n> L
+ 033 133 114
+ Delete line (<n> lines)
+ Esc [ <n> M
+ 033 133 115
+
+
+Printing
+ Esc [ <c> i
+ 033 133 151
+
+ Where <c> is
+ ''= Same as '0'
+ '0'= Prints screen (full or scroll region)
+ '4'= Printer controller off
+ '5'= Printer controller on (Print all received chars to printer)
+ '?1'= Print cursor line
+ '?4'= Auto print off
+ '?5'= Auto print on (Prints line to printer when you exit from it)
+
+
+Reports
+ Device status
+ Esc [ <c> n
+ 033 133 156
+
+ Where <c> is
+ '0'=Response Ready, no malfunctions detected
+ '3'=Malfunction, error in self-test.
+ '5'=Status report request
+ '6'=Request cursor position.
+ '?10'=Response to printer status request, All ok.
+ '?11'=Response to printer status request, Printer is not ready.
+ '?13'=Response to printer status request, No printer.
+ '?15'=Status report request from printer
+
+ Cursor position raport (Response to request cursor position)
+ Esc [ <n1> ; <n2> R
+ 033 133 073 122
+ Request terminal to identify itself (esc Z may not be supported in future)
+ Esc [ c
+ 033 133 143
+ Esc [ 0 c
+ 033 133 060 143
+ Esc Z
+ 033 132
+ Response to terminal identify (VT102)
+ Esc [ ? 6 c
+ 033 133 077 066 143
+
+
+Reset to initial state
+ Esc c
+ 033 143
+
+
+Tests
+ Invoke confidence test
+ Esc [ 2 ; <n> y
+ 033 133 062 073 171
+
+ Where <n> is
+ '1'= Power-up test
+ '2'= Data loopback test
+ '4'= EIA loopback test
+ '9'= Power-up tests (continuously)
+ '10'= Data loopback tests (continuously)
+ '12'= EIA loopback tests (continuously)
+ '16'= Printer loopback test
+ '24'= Printer loopback tests (continuously)
+
+
+Screen adjustments
+ Esc # 8
+ 033 043 070
+
+
+Keyboard indicator
+ Led L1 off
+ Esc [ 0 q
+ 033 133 060 181
+ Led L1 on
+ Esc [ 1 q
+ 033 133 061 181
+
+
+
+VT52 sequences
+ Ansi mode
+ Esc <
+ 033 074
+ Cursor positioning
+ Up Esc A
+ 033 101
+ Down Esc B
+ 033 102
+ Right Esc C
+ 033 103
+ Left Esc D
+ 033 104
+ Home Esc H
+ 033 110
+ Direct cursor address
+ Esc Y <line+040> <columns+040>
+ 033 131
+ Reverse linefeed Esc I
+ 033 111
+ Erase to end of line Esc K
+ 033 113
+ Erase to end of screen Esc J
+ 033 112
+ Auto print on Esc ^
+ 033 136
+ Auto print off Esc
+ 033 137
+ Printer controller on Esc W
+ 033 127
+ Printer controller off Esc X
+ 033 130
+ Print cursor line Esc V
+ 033 135
+ Print screen Esc ]
+ 033 135
+ Indentify request Esc Z
+ 033 132
+ Response to indetify Esc / Z
+ request (VT52) 033 057 132
+ Special charset (same Esc F
+ as line draw in VT102 033 106
+ Normal char set Esc G
+ 033 107
+
+
+Control characters
+ 000 = Null (fill character)
+ 003 = ETX (Can be selected half-duplex turnaround char)
+ 004 = EOT (Can be turnaround or disconnect char, if turn, then DLE-EOT=disc.)
+ 005 = ENQ (Transmits answerback message)
+ 007 = BEL (Generates bell tone)
+ 010 = BS (Moves cursor left)
+ 011 = HT (Moves cursor to next tab)
+ 012 = LF (Linefeed or New line operation)
+ 013 = VT (Processed as LF)
+ 014 = FF (Processed as LF, can be selected turnaround char)
+ 015 = CR (Moves cursor to left margin, can be turnaround char)
+ 016 = SO (Selects G1 charset)
+ 017 = SI (Selects G0 charset)
+ 021 = DC1 (XON, causes terminal to continue transmit)
+ 023 = DC3 (XOFF, causes terminal to stop transmitting)
+ 030 = CAN (Cancels escape sequence)
+ 032 = SUB (Processed as CAN)
+ 033 = ESC (Processed as sequence indicator)
+
+
+
+
diff --git a/konsole/doc/More/villanova-vt100-esc-codes.txt b/konsole/doc/More/villanova-vt100-esc-codes.txt
new file mode 100644
index 000000000..8142978ed
--- /dev/null
+++ b/konsole/doc/More/villanova-vt100-esc-codes.txt
@@ -0,0 +1,389 @@
+Date: Sat, 27 Oct 90 15:59:27 -0400
+From: tihor@acf4.NYU.EDU (Stephen Tihor)
+Message-Id: <9010271959.AA10105@acf4.NYU.EDU>
+To: tihor@acf4.NYU.EDU
+Subject: Re: VT100/52/ANSI et.al. Escape codes
+Newsgroups: comp.os.vms
+In-Reply-To: <9010240014.AA10730@ucbvax.Berkeley.EDU> 23 Oct 90 16:00 EDT
+
+/* acf4:comp.os.vms */
+/* 20950709@VUVAXCOM.BITNET (Jim McRee [Merlin]) / 4:00 pm Oct 23, 1990 */
+
+ Villanova University
+ Campus Computing - Terminal Emulation
+ Includes VT100 and VT52 Terminal and Control Codes
+
+ This file contains control and terminal codes for the VT100 terminals,
+ANSI terminals, and VT52 terminals. Many of the codes were derived from PC/
+Intercomm, from Mark of the Unicorn Software. I have researched some of them
+and added some of my own.
+
+ Thank you,
+ Jim McRee (209507097@VUVAXCOM.BITNET)
+
+(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
+
+ CONTROL SEQUENCE SUMMARY
+
+ * For additional information on the DEC VT100 and VT102 terminals, please
+ consult the VT100 USER GUIDE and VT102 USER GUIDE, published by Digital
+ Equipment Corporation as part numbers EK-VT100-UG and EK-VT102-UG.
+
+
+CONTROL CHARACTERS:
+------------------
+
+Character
+Name Decimal Action Taken
+---------------------------------------------------------------
+NUL 0 Fill character; ignored on input.
+ENQ 5 Transmit answerback message.
+BEL 7 Ring the bell.
+BS 8 Move cursor left.
+HT 9 Move cursor to next tab stop.
+LF 10 Line feed; causes print if in autoprint.
+VT 11 Same as LF.
+FF 12 Same as LF.
+CR 13 Move cursor to left margin or newline.
+SO 14 Invoke G1 character set.
+SI 15 Invoke G0 character set.
+XON 17 Resume transmission.
+XOFF 19 Halt transmission.
+CAN 24 Cancel escape sequence and display checkerboard.
+SUB 26 Same as CAN.
+ESC 27 Introduce a control sequence.
+DEL 127 Fill character; ignored on input.
+
+ * All characters less than 32 decimal which are not listed above are ignored.
+
+(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
+
+ANSI MODE SUMMARY:
+-----------------
+
+ *In ANSI sequences, parameters are given as a string of ASCII digits
+ ('0' - '9') seperated by semicolons. Pn refers to a number whose value
+ used directly. Ps refers to a number used as a selector.
+
+CURSOR MOVEMENT:
+---------------
+
+ Cursor Up: Esc [ Pn A
+ Cursor Down: Esc [ Pn B
+ Cursor Left: Esc [ Pn C
+ Cursor Right: Esc [ Pn D
+
+ Direct Addressing : Esc [ Pn(row);Pn(col);H or
+ Esc [ Pn(row);Pn(col);f
+
+ ie. (Pascal)
+ Writeln (Esc,'[',Row:1,';',col:1,';','H');
+
+ Index: Esc D
+ New Line: Esc E
+ Reverse Line: Esc M
+
+ Save cursor & Attributes: Esc 7
+ Restore cursor & attributes: Esc 8
+
+ERASING:
+-------
+
+ Cursor to end of line Esc [ K
+ Beginning of line to cursor Esc [ 1 K
+ Entire line Esc [ 2 K
+ Cursor to end of screen Esc [ J
+ Beginning of screen to cursor Esc [ 1 J
+ Entire screen Esc [ 2 J
+
+ (Some programs expect Esc [ J to always clear the entire
+ screen, but this does not conform to the standard.)
+
+MODES:
+-----
+
+ Set with Esc [ Ps h
+ Reset with Esc [ Ps l
+
+Mode name Ps Set Reset
+-------------------------------------------------------------------
+Keyboard action 2 Locked Unlocked
+Insertion 4 Insert Overwrite
+Send - Receive 12 Full Echo
+Line feed/New line 20 New line Line feed
+Cursor key ?1 Application Cursor
+ANSI/VT52 ?2 ANSI VT52
+Column ?3 132 80
+Scrolling ?4 Smooth Jump
+Screen ?5 Reverse Normal
+Origin ?6 Relative Absolute
+Wraparound ?7 Wrap Truncate
+Auto key repeat ?8 Repeating No repeat
+Print form feed ?18 Yes No
+Print extent ?19 Full screen Scrolling region
+
+Keypad application Esc =
+Keypad numeric mode Esc >
+
+EDITING:
+-------
+
+ Insert line Esc [ Pn L
+ Delete line Esc [ Pn M
+ Delete character Esc [ Pn P
+ Scrolling region Esc [ Pn(top);Pn(bot) r
+
+PRINTING:
+--------
+
+ Print screen or region Esc [ i
+ Print cursor line Esc [ ? 1 i
+ Enter auto print Esc [ ? 5 i
+ Exit auto print Esc [ ? 4 i
+ Enter print controller Esc [ 5 i
+ Exit print controller Esc [ 4 i
+
+LINE SIZE:
+---------
+
+ The following is a list of the available styles of printing on the
+screen. "Yes" in any column means that the option is supported by the escape
+code on that line. "No" means that the option is not supported by the escape
+code on that line; however, it may, and almost certainly is, supported by
+another escape sequence.
+
+Double-height and double-width double the size of the characters in their
+respective ways (ie. Double-height is twice as tall as usual). _Line
+designates underlining. Blink is for blinking characters. Side is the
+orientation of the character. Normal means that there is no orientation.
+
+Top and bottom refers to the position of the character in order to make a
+complete character. The top and bottom sequences will be important if you use
+the double height option. You will need to print the line twice to get a
+complete line. The first printing will print the top part of the characters
+and the second printing will print the bottom part.
+
+Inverse refers to the condition of the character. "No" indicates that the
+character will be printed in the color it normally is printed in with its usual
+backround. "Yes" means that the character will be printed in the backround
+color and the character's backround will be the color it is usually printed in.
+Shade refers to the brightness of the character. Normal is the standard
+brightness of the character. Bright is bold type. Dark is a darker brightness
+than usual.
+
+The escape code is the command you would type before the text you want to print
+to get the indicated effects. This section was greatly expanded in version 1.1
+of this file.
+
+Double Double
+Height Width _Line Blink Side Inverse Shade Escape Code
+-----------------------------------------------------------------------
+ No No No No Normal No Normal <ESC>[0m
+ Yes Yes No No Top No Bright <ESC>#3<ESC>[1m
+ Yes Yes No No Bottom No Bright <ESC>#4<ESC>[1m
+ Yes Yes No No Top No Dark <ESC>#3<ESC>[2m
+ Yes Yes No No Bottom No Dark <ESC>#4<ESC>[2m
+ Yes Yes No No Top No Normal <ESC>#3<ESC>[3m
+ Yes Yes No No Bottom No Normal <ESC>#4<ESC>[3m
+ Yes Yes Yes No Top No Normal <ESC>#3<ESC>[4m
+ Yes Yes Yes No Bottom No Normal <ESC>#4<ESC>[4m
+ Yes Yes No Yes Top No Normal <ESC>#3<ESC>[5m
+ Yes Yes No Yes Bottom No Normal <ESC>#4<ESC>[5m
+ Yes Yes No No Top Yes Normal <ESC>#3<ESC>[7m
+ Yes Yes No No Bottom Yes Normal <ESC>#3<ESC>[7m
+ No Yes No No Normal No Normal <ESC>#6<ESC>[0m
+ No Yes No No Normal No Bright <ESC>#6<ESC>[1m
+ No Yes No No Normal No Dark <ESC>#6<ESC>[2m
+ No Yes Yes No Normal No Normal <ESC>#6<ESC>[4m
+ No Yes No Yes Normal No Normal <ESC>#6<ESC>[5m
+ No Yes No No Normal Yes Normal <ESC>#6<ESC>[7m
+ No No No No Normal No Bright <ESC>#7<ESC>[1m
+ No No No No Normal No Dark <ESC>#7<ESC>[2m
+ No No Yes No Normal No Normal <ESC>#7<ESC>[4m
+ No No No Yes Normal No Normal <ESC>#7<ESC>[5m
+ No No No No Normal Yes Normal <ESC>#7<ESC>[7m
+
+* Some codes have been eliminated due to a repetition of effects. To the best
+ of my knowledge, these codes are complete and correct. If you should find
+ any errors, or you find some new sequences/effects, please inform me.
+
+* <ESC>#3 and <ESC>#4 behave in the same way as <ESC>#3[3m and <ESC>#4[4m.
+
+CHARACTER SETS:
+--------------
+
+Character set G0 G1
+-----------------------------------------------------
+United Kingdom (UK) Esc ( A Esc ) A
+United States (US) Esc ( B Esc ) B
+Graphics Esc ( 0 Esc ) 0
+Default ROM Esc ( 1 Esc ) 1
+Alternate ROM Esc ( 2 Esc ) 2
+
+Switch to G0/G1 Esc O Esc N
+
+TAB STOPS:
+---------
+
+ Set tab at current column Esc H
+ Clear tab at current column Esc [ g
+ Clear all tabs Esc [ 3 g
+
+MISCELLANEOUS:
+-------------
+
+ Hard Reset Esc c
+
+ Character attributes Esc [ Ps m
+ or Esc [ Ps ; Ps ; Ps m
+ 0 - All attributes off
+ 1 - Bold on
+ 4 - Underscore on
+ 5 - Blink on
+ 7 - Reverse on
+
+ Programmable LEDs Esc [ Ps q
+ 0 - All LEDs off
+ (1 - 4) - Turn respective LED on
+
+ Fill screen with "E"s (test) Esc # 8
+
+(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
+
+NON-VT100 CONTROL SEQUENCES:
+----------------------------
+
+ *Some VT100 terminal programs also understand a few other escape
+ sequences than the standard VT100. I cannot guarantee that any of
+ these nonstandard codes will work with any particular terminal, but
+ they may be useful if they do work.
+
+ Transmit a file Esc { T filenameCR ---> CR = Carriage Return
+ Receive a file Esc { R filenameCR ---> CR = Carriage Return
+ Append to a file Esc { A filenameCR ---> CR = Carriage Return
+ Save collected text Esc { S
+ Save collected text Esc S
+
+ * These sequences will probably be most useful in developing a micro
+ version of a VT100 emulator or in adapting an existing one.
+
+(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
+
+VT52 MODE SUMMARY:
+-----------------
+
+ Cursor up Esc A
+ Cursor down Esc B
+ Cursor right Esc C
+ Cursor left Esc D
+ Graphics character set Esc F
+ ASCII character set Esc G
+ Home cursor Esc H
+ Reverse line feed Esc I
+ Erase to end of screen Esc J
+ Erase to end of line Esc K
+ Print cursor line Esc V
+ Enter print controller Esc W
+ Exit print controller Esc X
+ Cursor address Esc Y row col
+ Identify Esc Z
+ Print screen Esc ]
+ Enter auto print Esc ^
+ Exit auto print Esc -
+ Alternate keypad Esc =
+ Numeric keypad Esc >
+ Enter ANSI mode Esc <
+
+ * Row and column numbers are single characters with a bias of 31.
+ E.g., "$" means row/column 5.)
+
+KEYPAD AND FUNCTION KEY SUMMARY:
+-------------------------------
+
+ CURSOR CONTROL KEYS:
+ -------------------
+ Vt52 ANSI and Cursor Key modes
+ Arrow Key Mode Reset Set
+ ---------------------------------------------------
+ Up Esc A Esc [ A Esc O A
+ Down Esc B Esc [ B Esc O B
+ Right Esc C Esc [ C Esc O C
+ Left Esc D Esc [ D Esc O D
+
+ AUXILLIARY KEYPAD:
+ -----------------
+
+ VT52 Mode ANSI Mode
+ Key Numeric Application Numeric Application
+ ----------------------------------------------------------------------
+ 0 0 Esc ? p 0 Esc O p
+ 1 1 Esc ? q 1 Esc O q
+ 2 2 Esc ? r 2 Esc O r
+ 3 3 Esc ? s 3 Esc O s
+ 4 4 Esc ? t 4 Esc O t
+ 5 5 Esc ? u 5 Esc O u
+ 6 6 Esc ? v 6 Esc O v
+ 7 7 Esc ? w 7 Esc O w
+ 8 8 Esc ? x 8 Esc O x
+ 9 9 Esc ? y 9 Esc O y
+ - - Esc ? m - Esc O m
+ , , Esc ? l , Esc O l
+ . . Esc ? n . Esc O n
+ ENTER ^M Esc ? M ^M Esc O M
+ PF1 Esc P Esc P Esc O P Esc O P
+ PF2 Esc Q Esc Q Esc O Q Esc O Q
+ PF3 Esc R Esc R Esc O R Esc O R
+ PF4 Esc S Esc S Esc O S Esc O S
+
+VT100 CURRENT STATES:
+--------------------
+
+ Esc [ c DA:Device Attributes
+
+ or
+
+ Esc Z DECID:Identify Terminal (ANSI mode)
+
+ * For PC/Intercomm and some other emulators,
+ irrespective of the parameter(s) present, the
+ response is always
+
+ Esc [ ? 6 c
+
+ (i.e., a VT102) Other DEC terminals will respond
+ according to their configuration and mode.
+
+ Esc Z Identify (VT52 mode)
+
+ * The sequence Esc / Z is always returned.
+
+ Esc [ <sol> x DECREQTPARM: Request Terminal Parameters
+
+ * <sol> values other than 1 are ignored. Upon
+ receipt of a <sol> value of 1, the following
+ response is sent:
+
+ Esc[3;<par>;<nbits>;<xspeed>;<rspeed>;1;0x
+
+ * Where <par>, <nbits>, <xspeed>, and <rspeed>
+ are as for VT100s with the following
+ exceptions:
+
+ <nbits> Values of 5 and 6 bits per
+ character are sent as 7 bits.
+
+ <xspeed>,<rspeed>
+ These two numbers will always
+ be the same. 9600 baud is
+ sent for 7200 baud.
+
+ Esc [ Ps n DSR: Device Status Report
+
+ * Parameter values other than 5, 6, are ignored.
+ If the parameter value is 5, the sequence
+ Esc [ O n is returned. If the parameter value is
+ 6, the CPR: Cursor Position Report sequence
+ Esc [ Pn ; Pn R is returned with the Pn set to
+ cursor row and column numbers.
+/* ---------- */
+
diff --git a/konsole/doc/More/vt100_codes_news.txt b/konsole/doc/More/vt100_codes_news.txt
new file mode 100644
index 000000000..d136e2224
--- /dev/null
+++ b/konsole/doc/More/vt100_codes_news.txt
@@ -0,0 +1,970 @@
+ vt100_codes_news.txt
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+ This information is largely derived from DEC document EK-VT100-UG-003,
+ the original manual for the VT100.
+
+ Most so-called VT100 implementations (both stand-alone terminals and
+ PC emulators) actually implement more controls than are given here.
+ The minimal standard is really the slightly more advanced VT102 terminal.
+
+ ...RSS
+
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+Path: cs.utk.edu!gatech!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!pipex!sunic
+ !trane.uninett.no!news.eunet.no!nuug!news.eunet.fi!funic!nntp.hut.fi
+ !lk-hp-14.hut.fi!pev
+From: pev@lk-hp-14.hut.fi (Petri Virekoski)
+Newsgroups: comp.terminals
+Subject: VT100 control info
+Date: 11 Sep 1993 12:43:22 GMT
+Organization: Helsinki University of Technology
+Lines: 878
+Distribution: world
+Message-ID: <26sh5a$oct@nntp.hut.fi>
+NNTP-Posting-Host: lk-hp-14.hut.fi
+
+
+OK. I finally found this on my local machine by doing a locate.
+Still haven't found any FTP site bearing this kind of information.
+I myself would need a similar file with extensions for VT200/VT220.
+Please do not address any complaints to me, since I just copied this file
+as I found it. There might be some escape sequences missing from the
+end because there was some carbage, but I don't know. Here goes...
+
+
+This file describes information needed for controlling the VT100 terminal from
+a remote computer. All of the information was derived from the VT100 user's
+manual, Programmer's Information section. Full documentation can be obtain
+from DIGITAL'S Accessory and Supplies Group.
+
+ [The notation <ESC> denotes a single ASCII Escape character, 1Bx.]
+
+
+ ANSI mode w/cursor ANSI mode w/cursor
+Cursor Key VT52 mode key mode reset key mode set
+--------------------------------------------------------------------------
+ UP <ESC>A <ESC>[A <ESC>OA
+ DOWN <ESC>B <ESC>[B <ESC>OB
+ RIGHT <ESC>C <ESC>[C <ESC>OC
+ LEFT <ESC>D <ESC>[D <ESC>OD
+
+
+*******************************
+* Special Graphics Characters *
+*******************************
+
+
+ If the Special Graphics set is selected, the graphics for ASCII codes
+0137 through 0176 will be replaced according to the following table (see the
+SCS control sequence).
+
+
+Octal ASCII Special Octal ASCII Special
+Code graphic graphic code graphic graphic
+-------------------------------------------------------------------------------
+0137 _ Blank 0157 o Horiz Line - scan 1
+0140 \ Diamond 0160 p Horiz Line - scan 3
+0141 a Checkerboard 0161 q Horiz Line - scan 5
+0142 b Digraph: HT 0162 r Horiz Line - scan 7
+0143 c Digraph: FF 0163 s Horiz Line - scan 9
+0144 d Digraph: CR 0164 t Left "T" (|-)
+0145 e Digraph: LF 0165 u Right "T" (-|)
+0146 f Degree Symbol 0166 v Bottom "T" (|_)
+0147 g +/- Symbol 0167 w Top "T" (T)
+0150 h Digraph: NL 0170 x Vertical Bar (|)
+0151 i Digraph: VT 0171 y Less/Equal (<_)
+0152 j Lower-right corner 0172 z Grtr/Egual (>_)
+0153 k Upper-right corner 0173 { Pi symbol
+0154 l Upper-left corner 0174 | Not equal (=/)
+0155 m Lower-left corner 0175 } UK pound symbol
+0156 n Crossing lines (+) 0176 ~ Centered dot
+
+
+NOTE 1: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each
+piece of this set is contiguous with other so the lines formed will be
+unbroken.
+
+NOTE 2: Codes 0157-0163 give better vertical resolution than dashes and
+underlines when drawing graphs; using these segments, 120 x 132 resolution may
+be obtained in 132 column mode with the Advanced Video Option installed.
+
+
+
+*****************************
+* Terminal Control Commands *
+*****************************
+
+Control Characters
+------------------
+
+ The control characters recognized by the VT100 are listed below. All
+other control characters cause no action to be taken.
+
+ Control characters (codes 00 - 037 inclusive) are specifically excluded
+from the control sequence syntax, but may be embedded within a control
+sequence. Embedded control characters are executed as soon as they are
+encountered by the VT100. The processing of the control sequence then
+continues with the next character recieved. The exceptions are: if the <ESC>
+character occurs, the current control sequence is aborted, and a new one
+commences beginning with the <ESC> just recieved. If the character <CAN>
+(030) or the character <SUB> (032) occurs, the current control sequence is
+aborted. The ability to embed control characters allows the synchronization
+characters XON and XOFF to be interpreted properly without affecting the
+control sequence.
+
+
+
+Control Octal
+Character Code Action Taken
+------------------------------------------------------------------------------
+<NUL> 0000 Ignored on input; not stored in buffer
+<ENQ> 0005 Transmit ANSWERBACK message
+<BEL> 0007 Sound bell
+<BS> 0010 Move cursor to the left one position, unless it is at
+ the left margin, in which case no action is taken.
+<HT> 0011 Move cursor to the next tab stop, or to the right
+ margin if no further tabs are set.
+<LF> 0012 Causes either a line feed or new line operation (See
+ new line mode.)
+<VT> 0013 Same as <LF>.
+<FF> 0014 Same as <LF>.
+<CR> 0015 Move the cursor to the left margin of the current line.
+<SO> 0016 Invoke the G1 character set, as designated by the SCS
+ control sequence.
+<SI> 0017 Invoke the G0 character set, as selected by the <ESC>(
+ sequence.
+<DC1> 0021 Causes terminal to resume transmission (XON).
+<DC3> 0023 Causes terminal to stop transmitting all codes except
+ XOFF and XON (XOFF).
+<CAN> 0030 If sent during a control sequence, the sequence id
+ immediately terminated and not executed. It also
+ causes the error character (checkerboard) to be
+ displayed.
+<SUB> 0032 Same as <CAN>.
+<ESC> 0033 Introduces a control sequence.
+<DEL> 0177 Ignored on input; not stored in buffer.
+
+
+ The VT100 is an upward and downward software-compatible terminal;
+that is, previous Digital video terminals have Digital's private standards
+for control sequences. The American National Standards Institute has since
+standardized escape and control sequences in terminals in documents X3.41-1974
+and X3.64-1977.
+
+ The VT100 is compatible with both the previous Digital standard and
+ANSI standards. Customers may use existing Digital software designed around
+the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in
+which the VT100 responds to control sequences like a VT52. In this mode, most
+of the new VT100 features cannot be used.
+
+ Throughout this document references will be made to "VT52 mode" or
+"ANSI mode". These two terms are used to indicate the VT100's software
+compatibility.
+
+
+NOTE: The ANSI standards allow the manufacturer flexibility in implementing
+each function. This document describes how the VT100 will respond to the
+implemented ANSI central function.
+
+NOTE: ANSI standards may be obtained by writing:
+
+ American National Standards Institute
+ Sales Department
+ 1430 Broadway
+ New York, NY, 10018
+
+
+
+Definitions
+-----------
+
+ Control Sequence Introducer (CSI) - An escape sequence that provides
+ supplementary controls and is itself a prefix affecting the
+ interpretation of a limited number of contiguous characters.
+ In the VT100, the CSI is: <ESC>[
+
+ Parameter: (1) A string of zero or more decimal characters which
+ represent a single value. Leading zeros are ignored. The
+ decimal characters have a range of 0 (060) to 9 (071).
+ (2) The value so represented.
+
+ Numeric Parameter: A parameter that represents a number, designated by
+ Pn.
+
+ Selective Parameter: A parameter that selects a subfunction from a
+ specified set of subfunctions, designated by Ps. In general, a
+ control sequence with more than one selective parameter causes
+ the same effect as several control sequences, each with one
+ selective parameter, e.g., CSI Psa; Psb; Psc F is identical to
+ CSI Psa F CSI Psb F CSI Psc F.
+
+ Parameter String: A string of parameters separated by a semicolon.
+
+ Default: A function-dependent value that is assumed when no explicit
+ value, or a value of 0, is specified.
+
+ Final character: A character whose bit combination terminates an
+ escape or control sequence.
+
+
+ EXAMPLE: Control sequence to turn off all character attributes, then
+ turn on underscore and blink attributes (SGR). <ESC>[0;4;5m
+
+ Sequence:
+
+
+ Delimiters
+ / \
+ / \
+ | |
+ \ / \ /
+ <ESC>[ 0 ; 4 ; 5 m
+ ^^^^^^ ^ ^ ^ ^
+ |||||| | | | |
+ \||||/ \ | / +------Final character
+ \||/ \ | /
+ CSI Selective
+ Parameters
+
+
+ The octal representation of this string is:
+
+ 033 0133 060 073 064 073 065 0155
+ <ESC> [ 0 ; 4 ; 5 m
+
+
+ Alternate sequences which will accomplish the same thing:
+
+ 1) <ESC>[;4;m
+
+ 2) <ESC>[m
+ <ESC>[4m
+ <ESC>[5m
+
+ 3) <ESC>[0;04;005m
+
+
+Control Sequences
+-----------------
+
+ All of the following control sequences are transmitted from the Host to
+VT100 unless otherwise noted. All of the control sequences are a subset of
+those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974.
+
+ The following text conforms to these formatting conventions:
+
+ 1) Control characters are designated by angle brackets (e.g.
+ the Escape character is <ESC>).
+
+ 2) Parameters are indicated by curly braces.
+
+ 3) Parameter types usually are indicated as one of:
+
+ {Pn} A string of digits representing a numerical
+ value.
+
+ {Ps} A character that selects an item from a list.
+
+ {a-z} Any lowercase sequence of one44 or more
+ characters in braces represent a value to be
+ entered (as in {Pn}), and the name in the
+ braces will be referred to in explanatory text.
+
+ 4) Spaces in the control sequence are present for clarity and
+ may be omitted. Spaces which are required will be
+ surrounded by single quotes: ' '.
+
+ 5) All other characters are literals.
+
+
+
+
+
+CPR Cursor Position Report VT100 to Host
+
+ <ESC>[ {Pn} ; {Pn} R Default Value: 1
+
+ The CPR sequence reports the active position by means of the
+ parameters. This sequence has two parameter values, the first
+ specifying the line and the second specifying the column. The default
+ condition with no parameters present, or parameters of 0, is equivelent
+ to a cursor at home position.
+
+ The numbering of the lines depends upon the state of the Origin Mode
+ (DECOM).
+
+ This control sequence is sent in reply to a device status report (DSR)
+ command sent from the host.
+
+
+
+CUB Cursor Backward Host to VT100 & VT100 to Host
+
+ <ESC>[ {Pn} D Default Value: 1
+
+ The CUB sequence move the cursor to the left. The distance moved is
+ determined by the parameter. If the parameter missing, zero, or one,
+ the cursor is moved one position. The cursor cannot be moved past the
+ left margin. Editor Function.
+
+
+CUD Cursor Down Host to VT100 & VT100 to Host
+
+ <ESC>[ {Pn} B Default value: 1
+
+ Moves the cursor down a number of lines as specified in the parameter
+ without changing columns. The cursor cannot be moved past the bottom
+ margin. Editor Function.
+
+
+CUF Cursor Foreward Host to VT100 & VT100 to Host
+
+ <ESC>[ {Pn} C Default Value: 1
+
+ The CUF sequence moves the cursor to the right a number of positions
+ specified in the parameter. The cursor cannot be moved past the right
+ margin. Editor Function.
+
+
+CUP Cursor Position
+
+ <ESC>[ {Pn} ; {Pn} H Default Value: 1
+
+ The CUP sequence moves the curor to the position specified by the
+ parameters. The first parameter specifies the line, and the second
+ specifies the column. A value of zero for either line or column moves
+ the cursor to the first line or column in the display. The default
+ string (<ESC>H) homes the cursor. In the VT100, this command behaves
+ identically to it's format effector counterpart, HVP.
+
+ The numbering of the lines depends upon the state of the Origin Mode
+ (DECOM). Editor Function.
+
+
+CUU Cursor Up Host to VT100 & VT100 to Host
+
+ <ESC>[ {Pn} A Default Value: 1
+
+ Moves the cursor up without changing columns. The cursor is moved up a
+ number of lines as indicated by the parameter. The cursor cannot be
+ moved beyond the top margin. Editor Function.
+
+
+DA Device Attributes Host to VT100 & VT100 to Host
+
+ <ESC>[ {Pn} c Default Value: 0
+
+ 1) The host requests the VT100 to send a DA sequence to indentify
+ itself. This is done by sending the DA sequence with no parameters,
+ or with a parameter of zero.
+
+ 2) Response to the request described above (VT100 to host) is generated
+ by the VT100 as a DA control sequencewith the numeric parameters as
+ follows:
+
+ Option Present Sequence Sent
+ ---------------------------------------------
+ No options <ESC>[?1;0c
+ Processor Option (STP) <ESC>[?1;1c
+ Advanced Video Option (AVO) <ESC>[?1;2c
+ AVO and STP <ESC>[?1;3c
+ Graphics Option (GPO) <ESC>[?1;4c
+ GPO and STP <ESC>[?1;5c
+ GPO and AVO <ESC>[?1;6c
+ GPO, ACO, and STP <ESC>[?1;7c
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,
+<<<I doubt if alot of these DEC commands work..a few do.. (like scroll areas)>>
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+DECALN Screen Alignment Display (DEC private)
+
+ <ESC># 8
+
+ This command causes the VT100 to fill it's screen with uppercase Es for
+ screen focus and alignment.
+
+
+DECANM ANSI/VT52 Mode (DEC Private)
+
+ This is a private parameter to the SM and RM control sequences. The
+ reset state causes only VT52 compatible escape sequences to be
+ recognized. The set state causes only ANSI compatible escape sequences
+ to be recognized. See the entries for MODES, SM, and RM.
+
+
+DECARM Auto Repeat Mode (DEC Private)
+
+ This is a private parameter to the SM and RM control sequences. The
+ reset state causes no keyboard keys to auto-repeat, the set state
+ causes most of them to. See MODES, SM, and RM.
+
+
+DECAWM Autowrap Mode (DEC Private)
+
+ This is a private parameter to the SM and RM control sequences. The
+ reset state prevents the cursor from moving when characters are
+ recieved while at the right margin. The set state causes these
+ characters to advance to the next line, causing a scroll up if required
+ and permitted. See MODES, SM, and RM.
+
+
+DECCKM Cursor Keys Mode (DEC Private)
+
+ This is a private parameter to the SM and RM control requences. This
+ mode is only effective when the terminal is in keypad application mode
+ (DECPAM) and the ANSI/VT52 mode (DECANM) is set. Under these
+ conditions, if this mode is reset, the cursor keys will send ANSI
+ cursor control commands. If setm the cursor keys will send application
+ function commands (See MODES, RM, and SM).
+
+
+DECCOLM Column Mode (DEC Private)
+
+ This is a private parameter to the SM and RM control sequences. The
+ reset state causes an 80 column screen to be used. The set state
+ causes a 132 column screen to be used. See MODES, RM, and SM.
+
+
+DECDHL Double Height Line (DEC Private)
+
+ Top Half: <ESC>#3
+ Bottom Half: <ESC>#4
+
+ These sequences cause the line containing the cursor to become the top
+ or bottom half of a double-height, double width line. The sequences
+ should be used in pairs on adjacent lines with each line containing the
+ same character string. If the line was single width single height, all
+ characters to the right of the center of the screen will be lost. The
+ cursor remains over the same character position, unless it would be to
+ the right of the right margin, in which case it is moved to the right
+ margin.
+
+
+DECDWL Double Width Line (DEC Private)
+
+ <ESC>#6
+
+ This causes the line that contains the cursor to become double-width
+ single height. If the line was single width, all characters ro the
+ right of the center of the screen will be lost. The cursor remains
+ over the same character position, unless it would be to the right of
+ the right margin, in which case it is moved to the right margin.
+
+
+DECID Identify Terminal (DEC Private)
+
+ <ESC>Z
+
+ This sequence causes the same response as the DA sequence. This
+ sequence will not be supported in future models.
+
+
+DECINLM Interlace Mode (DEC Private)
+
+ This is a private parameter to the RM and SM control sequences. The
+ reset state (non-interlace) causes the video processor to display 240
+ scan lines per frame. The set state causes the video processor to
+ display 480 scan lines per screen. See MODES, RM, and SM.
+
+
+DECKPAM Keypad Application Mode (DEC Private)
+
+ <ESC>=
+
+ The auxiliary keypad keys will transmit control sequences.
+
+
+DECKPNM Keypad Numeric Mode (DEC Private)
+
+ <ESC> >
+
+ The auxiliary keypad keys will send ASCII codes corresponding to the
+ characters engraved on their keys.
+
+
+DECLL Load LEDs (DEC Private)
+
+ <ESC>[ {Ps} q Default Value: 0
+
+ Load the four programmable LEDs on the keyboard according to the
+ prameter(s).
+
+ Parameter Meaning
+ -----------------------
+ 0 Clear All LEDs
+ 1 Light L1
+ 2 Light L2
+ 3 Light L3
+ 4 Light L4
+
+
+DECOM Origin Mode (DEC Private)
+
+ This is a private parameter to SM and RM control sequences. The reset
+ state causes the origin (or home position) to be the upper left
+ character position of the screen. Line and column numbers are,
+ therefore, independent of current margin settings. The cursor may be
+ positioned outside the margins with a cursor position (CUP) or
+ horizontal and vertical position (HVP) control.
+
+ The set state causes the origin to be at the upper left character
+ position within the current margins. Line and column numbers are,
+ therefore, relative to the current margin settings. The cursor cannot
+ be positioned outside of the margins.
+
+ The cursor is moved to the new home position when this mode is set or
+ reset. Lines and columns are numbered consecutively, with the origin
+ being line 1, column 1.
+
+
+DECRC Restore Cursor (DEC Private)
+
+ <ESC>8
+
+ This sequence causes the previously saved cursor position, graphic
+ rendition, and character set to be restored.
+
+
+DECREPTPARM Report Terminal Parameters VT100 to Host
+
+ <ESC>[ {sol} ; {par} ; {nbits} ; {xspd} ; {rspd} ; {cmul} ; {flags} x
+
+ This sequence is generated by the VT100 to notify the host of the
+ status of selected terminal parameters. The status sequence may be
+ sent when requested by the host (via DECREQTPARM) or at the terminal's
+ discretion. On power up or reset, the VT100 is inhibited from sending
+ unsolicited reports.
+
+ The meanings of the sequence paramters are:
+
+ Parameter Value Meaning
+ ------------------------------------------------------------------
+ {sol} 1 This message is a report.
+ 2 This message is a report, and the terminal is
+ only reporting on request.
+
+ {par} 1 No parity set
+ 4 Parity set and odd
+ 5 Parity set and even
+
+ {nbits} 1 8 bits per character
+ 2 7 bits per character
+
+ {xspd} 0 Speed set to 50 bps
+ -and- 8 Speed set to 75 bps
+ {rspd} 16 Speed set to 110 bps
+ 24 Speed set to 134.5 bps
+ {xspd}= 32 Speed set to 150 bps
+ Transmit 40 Speed set to 200 bps
+ Speed 48 Speed set to 300 bps
+ 56 Speed set to 600 bps
+ {rspd}= 64 Speed set to 1200 bps
+ Recieve 72 Speed set to 1800 bps
+ Speed 80 Speed set to 2000 bps
+ 88 Speed set to 2400 bps
+ 96 Speed set to 3600 bps
+ 104 Speed set to 4800 bps
+ 112 Speed set to 9600 bps
+ 120 Speed set tp 19200 bps
+
+ {cmul} 1 The bit rate multiplier is 16
+
+ {flags} 0-15 This value communicates the four switch values
+ in block 5 of SET-UP B, which are only visible
+ to the user when an STP option is installed.
+
+
+DECREQTPARM Request Terminal Parameters
+
+ <ESC>[ {Ps} x
+
+ The host sends this sequence to request the VT100 to send a DECREPTPARM
+ sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be
+ allowed to send unsolicited DECREPTPARMs. These reports will be
+ generated each time the terminal exits the SET-UP mode. If {Ps} is 1,
+ then the terminal will only generate DECREPTPARMs in response to a
+ request.
+
+
+DECSC Save Cursor (DEC Private)
+
+ <ESC>7
+
+ Causes the cursor position, graphic rendition, and character set to be
+ saved. (See DECRC)
+
+
+DECSCLM Scrolling Mode (DEC Private)
+
+ This is a private parameter to RM and SM control sequences. The reset
+ state causes scrolls to "jump" instantaneuously one line at a time.
+ The set state causes the scrolls to be "smooth", and scrolls at a
+ maximum rate of siz lines/sec. See MODES, RM, and SM.
+
+
+DECSCNM Screen Mode (DEC Private)
+
+ This is a private parameter to RM and SM control sequences. The reset
+ state causes the screen to be black with white characters; the set
+ state causes the screen to be white with black characters. See MODES,
+ RM, and SM.
+
+<<<<This one works...and is very handy! >>>>
+DECSTBM Set Top and Bottom Margins (DEC Private)
+
+ <ESC>[ {Pn} ; {Pn} r Default Values: See Below
+
+ This sequence sets the top and bottom margins to define the scrolling
+ region. The first parameter is the line number of the first line in
+ the scrolling region; the second parameter is the line number of the
+ bottom line of the scrolling region. Default is the entire screen (no
+ margins). The minimum region allowed is two lines, i.e., the top line
+ must be less than the bottom. The cursor is placed in the home
+ position (See DECOM).
+
+
+DECSWL Single-width Line (DEC Private)
+
+ <ESC>#5
+
+ This causes the line which contains the cursor to become single-width,
+ single-height. The cursor remains on the same character position.
+ This is the default condition for all new lines on the screen.
+
+
+DECTST Invoke Confidence Test
+
+ <ESC>[ 2 ; {Ps} y
+
+ Ps is the parameter indicating the test to be done. It is computed by
+ taking the weight indicated for each desired test and adding them
+ together. If Ps is 0, no test is performed but the VT100 is reset.
+
+ Test Weight
+ --------------------------------------------------------------
+ POST (ROM checksum, RAM NVR, keyboardm and AVO) 1
+ Data Loop Back (Loopback connector required) 2
+ EIA Modem Control Test (Loopback connector req.) 4
+ Repeat Testing until failure 8
+
+
+DSR Device Status Report Host to VT100 & VT100 to Host
+
+ <ESC>[ {Ps} n
+
+ Requests and reports the general status of the VT100 according to the
+ following parameters:
+
+ Parameter Meaning
+ ---------------------------------------------------------------
+ 0 Response from VT100 - Ready, no faults detected
+ 3 Response from VT100 - Malfunction Detected
+ 5 Command from host - Report Status (using a DSR control
+ sequence)
+ 6 Command from host - Report Active Position (using a CPR
+ sequence)
+
+ DSR with a parameter of 0 or 3 is always sent as a response to a
+ requesting DSR with a parameter of 5.
+
+
+ED Erase in Display
+
+ <ESC>[ {Ps} J Default: 0
+
+ This sequence erases some or all of the characters in the display
+ according to the parameter. Any complete line erased by this sequence
+ will return that line to single width mode. Editor Function.
+
+ Parameter Meaning
+ ----------------------------------------------------------------
+ 0 Erase from the cursor to the end of the screen.
+ 1 Erase from the start of the screen to the cursor.
+ 2 Erase the entire screen.
+
+
+EL Erase in Line
+
+ <ESC>[ {Ps} K Default: 0
+
+ Erases some or all characters in the active line, according to the
+ parameter. Editor Function.
+
+ Parameter Meaning
+ ---------------------------------------------------------------
+ 0 Erase from cursor to the end of the line.
+ 1 Erase from the start of the line to the cursor.
+ 2 Erase the entire line.
+
+
+HTS Horizontal Tab Set
+
+ <ESC>H
+
+ Set a tab stop at the current cursor position. Format Effector.
+
+
+HVP Horizontal and Vertical Position
+
+ <ESC>[ {Pn} ; {Pn} f
+
+ Moves the cursor to the position specified by the parameters. The
+ first parameter specifies the line, and the second specifies the
+ column. A parameter of 0 or 1 causes the active position to move to
+ the first line or column in the display. In the VT100, this control
+ behaves identically with it's editor counterpart, CUP. The numbering
+ of hte lines depends upon the state of the Origin Mode (DECOM). Format
+ Effector.
+
+
+IND Index
+
+ <ESC>D
+
+ This sequence causes the cursor to move downward one line without
+ changing the column. If the cursor is at the bottom margin, a scroll
+ up is performed. Format Effector.
+
+
+LNM Line Feed/New Line Mode
+
+ This is a parameter to SM and RM control sequences. The reset state
+ causes the interpretation of the <LF> character to imply only vertical
+ movement of the cursor and causes the RETURN key to send the single
+ code <CR>. The set state causes the <LF> character to imply movement
+ to the first position of the following line, and causes the RETURN key
+ to send the code pair <CR><LF>. This is the New Line option.
+
+ This mode does not affect the Index (IND) or the next line (NEL) format
+ effectors.
+
+
+MODES The Following is a list of VT100 modes which may be changed with Set
+ Mode (SM) and Reset Mode (RM) controls.
+
+ ANSI Specified Modes
+
+ Parameter Mnemonic Function
+ ------------------------------------------------------------------
+ 0 Error (Ignored)
+ 20 LNM Line Feed/New Line Mode
+
+
+ DEC Private Modes
+
+ If the first character in the parameter string is ? (077), the
+ parameters are interpreted as DEC private parameters according to the
+ following:
+
+ Parameter Mnemonic Function
+ -------------------------------------------------------------------
+ 0 Error (Ignored)
+ 1 DECCKM Cursor Key
+ 2 DECANM ANSI/VT52
+ 3 DECCOLM Column
+ 4 DECSCLM Scrolling
+ 5 DECSCNM Screen
+ 6 DECOM Origin
+ 7 DECAWM Auto Wrap
+ 8 DECARM Auto Repeat
+ 9 DECINLM Interlace
+
+ Any other parameter values are ignored.
+
+ The following modes, which are specified in the ANSI standard, may be
+ considered to be permanently set, permanently reset, or not applicable,
+ as noted.
+
+ Mnemonic Function State
+ ------------------------------------------------------
+ CRM Control Representation Reset
+ EBM Editing Boundary Reset
+ ERM Erasure Set
+ FEAM Format Effector Action Reset
+ FETM Format Effector Transfer Reset
+ GATM Guarded Area Transfer NA
+ HEM Horizontal Editing NA
+ IRM Insertion-replacement Reset
+ KAM Keyboard Action Reset
+ MATM Multiple area transfer NA
+ PUM Positioning Unit Reset
+ SATM Selected Area Transfer NA
+ SRTM Status Reporting Transfer Reset
+ TSM Tabulation Stop Reset
+ TTM Transfer Termination NA
+ VEM Vertical Editing NA
+
+
+NEL Next Line
+
+ <ESC>E
+
+ This causes the cursor to move to the first position of the next line
+ down. If the cursor is on the bottom line, a scroll is performed.
+ Format Effector.
+
+
+RI Reverse Index
+
+ <ESC>M
+
+ Move the cursor up one line without changing columns. If the cursor is
+ on the top line, a scroll down is performed.
+
+
+RIS Reset to Initial State
+
+ <ESC>c
+
+ Resets the VT100 to the state is has upon power up. This also causes
+ the execution of the POST and signal INT H to be asserted briefly.
+
+
+RM Reset Mode
+
+ <ESC>[ {Ps} ; {Ps} l
+
+ Resets one or more VT100 modes as specified by each selective parameter
+ in the parameter string. Each mode to be reset is specified by a
+ separate parameter. See MODES and SM.
+
+
+SCS Select Character Set
+
+ The appropriate D0 and G1 character sets are designated from one of the
+ five possible sets. The G0 and G1 sets are invokedd by the characters
+ <SI> and <SO>, respectively.
+
+ G0 Sets G1 Sets
+ Sequence Sequence Meaning
+ ------------------------------------------------------------------
+ <ESC>(A <ESC>)A United Kingdom Set
+ <ESC>(B <ESC>)B ASCII Set
+ <ESC>(0 <ESC>)0 Special Graphics
+ <ESC>(1 <ESC>)1 Alternate Character ROM
+ Standard Character Set
+ <ESC>(2 <ESC>)2 Alternate Character ROM
+ Special Graphics
+
+ The United Kingdom and ASCII sets conform to the "ISO international
+ register of character sets to be used with escape sequences". The
+ other sets are private character sets. Special graphics means that the
+ graphic characters fpr the codes 0137 to 0176 are replaced with other
+ characters. The specified character set will be used until another SCS
+ is recieved.
+
+
+SGR Select Graphic Rendition
+
+ <ESC>[ {Ps} ; {Ps} m
+
+ Invoke the graphic rendition specified by the parameter(s). All
+ following characters transmitted to the VT100 are rendered according
+ to the parameter(s) until the next occurrence of an SGR. Format
+ Effector.
+
+ Parameter Meaning
+ ---------------------------------------------------------------
+ 0 Attributes Off
+ 1 Bold or increased intensity
+ 4 Underscore
+ 5 Blink
+ 7 Negative (reverse) image
+
+ All other parameter values are ignored.
+
+ Without the Advanced Video Option, only one type of character attribute
+ is possible, as determined by the cursor selection; in that case
+ specifying either underscore or reverse will activate the currently
+ selected attribute.
+
+
+SM Set Mode
+
+ <ESC> [ {Ps} ; {Ps} h
+
+ Causes one or more modes to be set within the VT100 as specified by
+ each selective parameter string. Each mode to be set is specified by a
+ seperate parameter. A mode is considered set until it is reset by a
+ Reset Mode (RM) control sequence. See RM and MODES.
+
+ [Editor's note: The original DEC VT100 documentation EK-VT100-UG-003
+ erroneously omitted the "[" character from the SM sequence.]
+
+
+TBC Tabulation Clear
+
+ <ESC>[ {Ps} g
+
+ If the parameter is missing or 0, this will clear the tab stop at the
+ cursor's position. If it is 3, this will clear all of the tab stops.
+ Any other parameter is ignored. Format Effector.
+
+
+
+ ___
+ ( /_)_---_-------------------------------------------------
+(_/ ( ! / ) Petri Virekoski ------ pev@vipu.hut.fi ------
+-------!/---------------------------------------------------
+
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+Article 4247 of comp.terminals:
+Path: cs.utk.edu!willis.cis.uab.edu!news.ecn.bgu.edu!vixen.cso.uiuc.edu!howland.reston.ans.net!news.sprintlink.net!uunet!news.aurora.net!netnews
+From: msimms@kea.bc.ca (Michael Simms)
+Newsgroups: comp.terminals
+Subject: Re: VT420 control sequence question
+Date: 15 Jun 1995 01:23:10 GMT
+Organization: Attachmate Canada
+Lines: 39
+Distribution: world
+Message-ID: <3ro21u$559@angate.disc-net.com>
+References: <3rnlcd$pg8@senator-bedfellow.MIT.EDU>
+NNTP-Posting-Host: 204.174.235.139
+X-Newsreader: WinVN 0.92.5
+
+In article <3rnlcd$pg8@senator-bedfellow.MIT.EDU>, igorlord@mit.edu (Igor Lyubashevskiy) says:
+>
+>Hi, while reading through DEC's VT420 manuals, I enountered a control sequence
+>that I don't understand. That is "Change attributes in rectangular area"
+>(DECCARA).
+>
+>The manual says that this sequence's "syntax" is
+> CSI Pt;Pl;Pb;Pr;Ps1..Psn $ r
+>Where Psn = visual character attributes.
+>
+>Does anyone know what Psn really is (what those visual character attributes
+>are)? And how many of those Psn can be there?
+>If you can help, please reply either by email or by a followup to this group.
+>
+>Thank you for your time,
+>
+>Igor
+>
+
+The Ps1..Psn are the standard character attributes such as used with
+CSIm (SGR). The values they can hold are:
+
+0 - reset all attributes (white on black)
+1 - bold
+4 - underline
+5 - blink
+7 - inverse
+21 - bold off
+24 - underline off
+25 - blink off
+27 - inverse off
+
+For example to turn all the characters in the top left quadrant of the
+screen bold and inverse with no blinking (as I hate blinking) use:
+ CSI 1;1;40;12;1;7;25$r
+
+As to the number of parameters, I don't know.
+
+Michael Simms.
+
+
+ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
diff --git a/konsole/doc/More/vt100_colorized_termcap.txt b/konsole/doc/More/vt100_colorized_termcap.txt
new file mode 100644
index 000000000..0a5470b45
--- /dev/null
+++ b/konsole/doc/More/vt100_colorized_termcap.txt
@@ -0,0 +1,438 @@
+Article 3992 of comp.terminals:
+Path: cs.utk.edu!gatech!howland.reston.ans.net!vixen.cso.uiuc.edu!uwm.edu!msunews!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!newshost.gu.edu.au!news
+From: Tony Nugent <T.Nugent@sct.gu.edu.au>
+Newsgroups: comp.terminals
+Subject: (howto) Set up a custom (colour) vt term
+Date: 30 Apr 1995 06:35:49 GMT
+Organization: Griffith University Brisbane Queensland Australia
+Lines: 371
+Message-ID: <3nvb45$2kl@griffin.itc.gu.edu.au>
+Reply-To: T.Nugent@sct.gu.edu.au
+NNTP-Posting-Host: kraken.itc.gu.edu.au
+Summary: How to set up a customised term entry
+Keywords: vt100 vt102 vt220 ansi colour terminfo termcap term
+
+G'day all!
+
+Here is something that I wrote a little while ago (with some more
+recent changes) for someone who asked me how to set up a
+customised TERMINFO and TERMCAP entry.
+
+I've never seen this in any FAQ, and I thought that others might
+be interested in this too, so I've posted it. It took me *ages*
+and lots of trial and error to figure out how to do this
+properly, but the process is actually quite simple once you have
+the man pages figured out :)
+
+I would appreciate any comments, corrections or suggestions to
+this... I'm posting it here into comp.terminals as a "beta"
+document as I'm sure that this could be refined some more.
+
+========8<----insert-crowbar-here------------------------------
+
+I presume that you understand the basics of ansi and vt-term
+escape sequences.
+
+I use a customised vt220 term to get colours instead of boring
+black and white text on my pc screen when I'm logged into my
+account over a modem. My comms program is emulating vt100/220
+with my screen in 50 line mode (49 lines + one for my comms
+program's status line).
+
+The system here with my account is a Sparc running Solaris 2.3,
+SunOS 5.3 - but this also works under SGI IRIX and SunOS 4.3.1
+(remote vt-term login). I use tcsh as my default login shell
+(I'll eventually try out ksh once I have some time :-)
+
+Here is my customised termcap entry, produced by the "infocmp -1"
+command...
+
+========8<-----------cut-here------------>8====================
+# Reconstructed via infocmp from file: /home/tnugent/.terminfo/v/vt220
+vt220|vt-220|dec colour vt220,
+ xon,
+ cols#80, lines#49, vt#3,
+ bel=^G, blink=\E[5m$<2>, bold=\E[1m\E[32;44m$<2>,
+ clear=\E[;H\E[2J$<50>, cnorm=\E[?7h\E[0;2;1;36m,
+ cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=\b, cud1=\n,
+ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
+ cuu1=\E[A$<2>, cvvis=\E[?7l, ed=\E[J$<50>,
+ el=\E[K$<3>, home=\E[H, ht=\t, ind=\n,
+ is2=\E[1;49r\E[49;1H, kbs=\b, kcub1=\EOD, kcud1=\EOB,
+ kcuf1=\EOC, kcuu1=\EOA, kf0=\E[29~, kf1=\EOP,
+ kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
+ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
+ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=\E(B$<4>,
+ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[7m\E[0;1;36m$<2>,
+ rmul=\E[m\E[0;1;36m$<2>,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E1;36m\E[?8h, sc=\E7,
+ sgr0=\E[m\E[1;36m$<2>, smkx=\E[?1h\E=,
+ smso=\E[m\E[1;33;44m$<2>, smul=\E[4m\E[1;32m$<2>,
+========8<-----------cut-here------------>8====================
+
+For the explaination of what all this means, see "man terminfo";
+also try "man termcap", but this man page is often not there.
+
+It's set for a default of 49 lines, but if you only use 24 then
+change it in the entry, but I'll explain how to easily reset it
+manually with some aliases.
+
+Otherwise edit this however you like. You'll recognise all the
+"ansi" escape sequences up there. Customise the colour ones as
+desired, but after trial and error I've found these to be quite
+acceptable. Some of the entries might need some more refining,
+but this works. Bold, underline, reverse and norm are all in
+colour. I've thought about adding an entry for italic (sitm and
+ritm), but I haven't got around to this yet.
+
+I've called this "vt220", but it really isn't (although
+compatable). I've found it better to use a "common" name rather
+than an unusual one, or else I tend to get "unknown term type,
+using dumb terminal settings" complaints when I rlogin or telnet
+into other accounts.
+
+vt220 is defined in /etc/termcap here as:
+
+de|vt220|DEC VT220 in vt100 emulation mode:\
+ :tc=vt100:
+
+so vt220 actually uses vt100 anyway. They are similar, but vt220
+defines more of the F (function) keys. Other differences are
+trivial (and I haven't noticed many from what I've been able to
+ascertain from a scattering of "non-authoritative" sources).
+
+Create a ~/.terminfo/ directory, and save this terminfo entry in
+a file called ~/.terminfo/terminfo.src
+
+Now change to this directory and append the other terminal
+entries that you might use onto the end of this file (except for
+vt220):
+
+% echo $term
+% infocmp >> terminfo.src
+% infocmp vt100 >> terminfo.src
+% infocmp xterm >> terminfo.src
+
+etc. Check it's general format what you find in /etc/termcap to
+make sure that it's similar.
+
+Now do this (in the ~/.terminfo/ directory):
+
+% setenv TERMINFO ~/.terminfo
+% tic
+
+After running tic (it uses the terminfo.src file), you should see
+a new directory called ~/.terminfo/v/ (and perhaps others) which
+has the termcap entries compiled from the terminfo.src file.
+
+Now, do this:
+
+% set term=vt220
+
+You *should* immediately see a change in colour of normally white
+(or grey) text to a light bright blue (see "norm=" above). If
+you have tcsh as your shell, then try the prompts below to see
+some nice bold and reverse colour. Man pages should now also
+demostrate this too (especially if you have setenv PAGER "less -s
+-I"). Nice change, eh? :-)
+
+Ok, now to make this change permanent...
+
+Cut this shell script out, save it in ~/.terminfo/maketc and
+"chmod +x maketc" to make it executable:
+
+========8<-----------cut-here------------>8====================
+#!/bin/sh
+#
+# Make a TERMCAP entry
+#
+# Use:
+# maketc [termtype]
+#
+# setenv TERMCAP `maketc [termtype]`
+#
+# There's probably a better way to do this
+#
+infocmp -C $1 | \
+ sed -e '/^#/d' -e '3,$s/[ ]//g' -e 's/:\\$//' | \
+ awk '{printf("%s",$0)}'
+echo ""
+# NB: that's a Tab and a space in between the []'s!
+# Is there a way to get sed to strip out newlines?
+========8<-----------cut-here------------>8====================
+
+Now try this (using this new term setting):
+
+% maketc
+
+Ugly, yes? :)
+
+Create a ~/.terminfo/TERMCAP.vt220 file by redirecting this output:
+
+% maketc vt220 > TERMCAP.vt220
+
+(alternatively, use " setenv TERMCAP `cat ~/.terminfo/maketc` "
+below instead).
+
+Put the following lines in your ~/.login file, or into another
+file (say, ~/.termrc) and source it from ~/.login...
+
+========8<-----------cut-here------------>8====================
+# Please customise this!
+#
+if ( ! $?term ) then
+ set term=vt102
+ setenv TERM vt102
+endif
+#
+switch($term)
+#
+ case 'vt220':
+ case 'vt102':
+ stty rows 49
+ stty columns 80
+ setenv LINES 49
+ setenv COLUMNS 80
+ echo Assuming \($term with $LINES rows\)
+ breaksw
+ case 'vt100':
+ stty rows 24
+ stty columns 80
+ setenv LINES 24
+ setenv COLUMNS 80
+ breaksw
+ case 'xterm':
+ eval `/usr/openwin/bin/resize`
+ stty rows $LINES
+ stty cols $COLUMNS
+ default:
+ breaksw
+endsw
+#
+# Set colour if on a vt100, vt102 or vt220
+#
+if ( $TERM == vt102 || $TERM == vt100 || $TERM == vt220 ) then
+ setenv TERMINFO ~/.terminfo
+ set term=vt220
+ setenv TERM vt220
+ setenv TERMCAP `cat ${TERMINFO}/TERMCAP.vt220`
+ # setenv TERMCAP `~/.terminfo/maketc`
+endif
+#
+# Set variables: NORM BOLD OFFBOLD ULINE OFFULINE REV
+#
+setenv NORM `tput cnorm`
+setenv REV `tput rev`
+setenv BOLD `tput smso`
+setenv OFFBOLD `tput smso`
+setenv ULINE `tput smul`
+setenv OFFUL `tput rmul`
+#
+echo ""
+echo "${BOLD}TERMINFO is now: $NORM$TERMINFO"
+echo "${BOLD}TERMCAP is now: $NORM"
+echo "$TERMCAP"
+echo ""
+#
+echo -n "${ULINE}"\$TERM"$NORM is $BOLD $TERM $NORM and "
+echo "${ULINE}"\$term"$NORM is $BOLD $term ${NORM}"
+echo -n "$BOLD $LINES $NORM ${ULINE}rows${NORM} "
+echo "$BOLD $COLUMNS $NORM ${ULINE}columns${NORM}"
+echo ""
+#
+echo -n "${REV}reverse${NORM} "
+echo -n "${BOLD}bold${NORM} "
+echo -n "${ULINE}underline${OFFUL} "
+echo "$NORM"
+echo -n "${REV}${BOLD} reverse-bold ${NORM} "
+echo -n "${REV}${ULINE} reverse-underline ${NORM} "
+echo -n "${BOLD}${ULINE} bold-underline ${NORM} "
+echo -n "${REV}${BOLD}${ULINE} reverse-bold-underline ${NORM} "
+echo ""
+#
+echo -n tset:
+/usr/ucb/tset -I -Q -
+#
+========8<-----------cut-here------------>8====================
+
+It's a bit overdone, but it will show you what's going on.
+Warnings.... on some unix'es, stty does not have "rows" or
+"columns" options. And if you ever use those global variables
+for anything, enclose the variables in quotes like I have above.
+
+Next time you log in (with csh or tcsh), ~/.login is sourced
+(after ~/.cshrc) and you will automatically have this customised
+colour terminal enabled.
+
+To make switching term very easy, I use a few aliases. I have
+the following in a ~/.alias file that I source from ~/.cshrc...
+
+========8<-----------cut-here------------>8====================
+# ~/.alias
+# sourced from ~/.cshrc
+#...
+#...
+#
+#-------- Terminal setup ------------
+#
+a cls 'clear'
+a seterm 'setenv TERM \!:1 ; set term=\!:1'
+a vt102 'unsetenv TERMINFO ; unsetenv TERMCAP ; seterm vt102'
+a vt220 'colour'
+a colour 'setenv TERMINFO ~/.terminfo ; \
+ setenv TERMCAP `cat ${TERMINFO}/TERMCAP` ; seterm vt220'
+a rows 'stty rows \!:1 ; setenv LINES \!:1 ; cols 80'
+a cols 'stty columns \!:1 ; setenv COLUMNS \!:1 '
+a setsize 'rows \!:1 ; echo $LINES line mode'
+a 49 'setsize 49'
+a 50 '49'
+a 24 'setsize 24'
+a 25 '24'
+#
+a vtn 'echo -n "^[[m^[(B^[)0^O^[[?5l^[7^[[r^[8"'
+# ^^ ^^ ^^ ^^^^ ^^ ^^ ^^
+# Esc Esc Esc Ctrl-O EscEsc Esc
+# If the vtn alias doesn't work correctly, then try this:
+# a vtn 'echo "X[mX(BX)0OX[?5lX7X[rX8" | tr '\''XO'\'' '\''\033\017'\'''
+#
+#
+#... other aliases ...
+========8<-----------cut-here------------>8====================
+
+The vtn alias has been piped through cat -v to make the control
+codes look like their two-character representation. Edit the
+echo'ed string so that the ^[ characters are real escape
+characters and ^O is a control-O. Or comment out that line and
+use the one below it that uses the tr command. This alias is
+very, VERY handy for resetting a vt100 style screen if it gets
+screwed up with an accidental character set sequence (see any
+vt100 term escape code reference).
+
+If you want to see some interesting colourful prompts and you use
+tcsh, then try sourcing this:
+
+========8<-----------cut-here------------>8====================
+# Primary tcsh command prompt
+#
+# simple looking one
+# set prompt='$S%?%s %B%/-%b%U%h%u-%U%#%u%L'
+#
+# set prompt='%S%l%s|%U%?%u[%B%t%b]%S%~%s-%B%h%b-%U%#%u%L'
+# set prompt='%u%s%b[%U%m%u|%U%~%u][%S%t%s][%B%h%b][%S%?%s]%U-%#%u%L'
+# set prompt='%B%b[%S%?%s][%S%t%s][%B%h%b][%U%m%u|%U%~%u]%U-%#%u%L'
+ set prompt='%B%b[%S%?%s][%U%t%u][%S%m%s|%S%~%s][%B%h%b]%U-%#%u%L'
+#
+# prompt2
+# Used wherever normal csh prompts with a question mark.
+#
+# set prompt2='%B%R?>%b '
+ set prompt2='%B%R%b%S?%s%L'
+#
+# prompt3
+# Used when displaying the corrected command line when automatic
+# spelling correction is in effect.
+#
+# set prompt3='CORRECT>%R (y|n|e)?'
+# set prompt3='%BCORRECT%b%S>%s%R (%By%b|%Bn%b|%Be%b)%S?%s%L'
+ set prompt3='%{%}CORRECT%S>%s%R (%By%b|%Bn%b|%Be%b)%S?%s%L'
+========8<-----------cut-here------------>8====================
+
+Note how the red colour is manually put into prompt3. It's
+possible to put colour sequences into the prompts of all the
+common shells (check its man page).
+
+For more info check out:
+
+1. The man pages for:
+ terminfo, (termcap), stty, tput, infocmp, captoinfo, tic
+ (and the man pages in the "see also" sections).
+
+2. The file /etc/termcap
+
+3. The comp.terminals ftp archive site:
+ cs.utk.edu :: /pub/shuford/terminal/
+ You should be able to find at least one file there that
+ explains all the vt100 control sequences.
+
+4. I've got a file with the vt102 and ansi escape sequences in it.
+ If you want a copy, just let me know.
+
+5. I've never seen it, but for a color xterm check this out:
+ X11R5 and X11R6 versions:
+ ftp.x.org /R5contrib/color_xterm.tar.Z
+ ftp.x.org /contrib/utilities/color-xterm-R6-patch.README
+ ftp.x.org /contrib/utilities/color-xterm-R6pl5-patch.gz
+ ftp.x.org /contrib/utilities/colour_xterm.tar.gz
+
+Enjoy!
+
+Tony
+T.Nugent@sct.gu.edu.au
+04/23/95
+========8<----insert-crowbar-here------------------------------
+
+All comments very much appreciated.
+
+Cheers
+Tony
+ MMM \|/ www __^__
+ (o o) @ @ (o o) /(o o)\
+ -.ooO-(_)-Ooo.-+-.oOO-(_)-OOo.-+-.oOO--(_)--OOo.-+-.oOO==(_)==OOo.-----+
+ | Tony Nugent |-| Griffith University T.Nugent@sct.gu.edu.au |--.
+ | __'!`__ | | Brisbane, Queensland tnugent@gucis.cit.gu.edu.au | |
+ | (o o) | | Australia | |
+ `-ooO---(=)---Ooo-' `--------------------------------------------------' |
+ `------------------' `--------------------------------------------------'
+
+
+Article 3993 of comp.terminals:
+Path: cs.utk.edu!gatech!swrinde!hookup!news.moneng.mei.com!uwm.edu!msunews!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!newshost.gu.edu.au!news
+From: Tony Nugent <T.Nugent@sct.gu.edu.au>
+Newsgroups: comp.terminals
+Subject: Re: (howto) Set up a custom (colour) vt term
+Date: 30 Apr 1995 07:17:03 GMT
+Organization: Griffith University Brisbane Queensland Australia
+Lines: 35
+Message-ID: <3nvdhf$36j@griffin.itc.gu.edu.au>
+References: <3nvb45$2kl@griffin.itc.gu.edu.au>
+Reply-To: T.Nugent@sct.gu.edu.au
+NNTP-Posting-Host: kraken.itc.gu.edu.au
+Keywords: vt100 vt102 vt220 ansi colour terminfo termcap term
+
+Tony Nugent <T.Nugent@sct.gu.edu.au> writes:
+
+Sorry about this:
+
+[munch]
+
+>To make switching term very easy, I use a few aliases. I have
+>the following in a ~/.alias file that I source from ~/.cshrc...
+
+>========8<-----------cut-here------------>8====================
+># ~/.alias
+># sourced from ~/.cshrc
+>#...
+
+alias a 'alias'
+
+>#...
+>#
+>#-------- Terminal setup ------------
+>#
+>a cls 'clear'
+>a seterm 'setenv TERM \!:1 ; set term=\!:1'
+
+[munch]
+
+I forgot to mention that I have the alias command aliased to "a".
+
+Cheers
+Tony
+ /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/~\
+ | Tony Nugent Griffith University, Brisbane, Queensland, Australia| _ |
+ | Email: T.Nugent@sct.gu.edu.au tnugent@gucis.cit.gu.edu.au | @||
+ \__________________________________________________________________\_/|
+ / Pull here for the full .sig or use finger on the second address /
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
diff --git a/konsole/doc/More/vt100_numeric_keypad.txt b/konsole/doc/More/vt100_numeric_keypad.txt
new file mode 100644
index 000000000..fbd953d45
--- /dev/null
+++ b/konsole/doc/More/vt100_numeric_keypad.txt
@@ -0,0 +1,202 @@
+Subject: Re: ENTER keys
+
+In message <538902171@KSINET.COM>, John.ksi@KSINET.COM says:
+>
+> We're using MicroSoft's telnet software to connect to Stratus (VOS).
+> Using a VT100 emulator (yes, on both ends - I'm not THAT novice) we
+> find that the ENTER key (the key marked "Enter" on the PC's keypad)
+> does the same thing as the RETURN key (the key marked "Enter" on the
+> main part of the PC's keyboard) when it comes to working with CRT
+> forms.
+> ...
+> (A) why do the RETURN and ENTER keys behave the same?
+> (B) how does one submit a completed CRT form with ONE keystroke?
+
+To which <Paul_Green@vos.stratus.com> replied in message
+<199502171715.MAA11104@transfer.stratus.com>:
+|
+| You don't say which ttp you are using on VOS, but I will assume
+| it is the vt100.ttp file.
+|
+| The "keyboard" section of the vt100.ttp file defines the names
+| and key sequences used by the VT100 keys. In it we find:
+|
+| enter-key Enter esc O M
+
+
+I have not used the Microsoft "telnet" application, but one standard
+setup option in a DEC VT100 (or VT220, VT340, VT420, VT510, etc.) is
+the "keypad mode"--what the behavior of the numeric keypad should be.
+
+The two modes are "application" and "numeric".
+
+In numeric mode, the various keypad keys send either the ASCII code
+for decimal digits, or the ASCII code for the comma, period, or
+hyphen, or (in the case of the keypad "Enter" key") the ASCII carriage
+return control character (or CR/LF if so configured).
+
+The "Enter" key behavior you describe is characteristic of numeric-
+keypad mode.
+
+The application mode is used by programs that don't need decimal
+digits so much but need lots of user-activated software functions.
+The DEC text-editing programs (EDT, EVE, etc.) are a classic example.
+In application mode, the keypad keys send special Escape sequences
+that chiefly begin with the so-called SS3 (single-shift G3) prefix,
+which in 7-bit ASCII representation is the "Esc O". (In 8-bit, SS3
+is the single code hexadecimal 8F.)
+
+The following chart summarizes the possible codes (7-bit) generated by
+the DEC terminals' keypad:
+
+ Keypad Key Numeric Mode Application Mode
+ ---------- ------------ ----------------
+ 0 0 Esc O p
+ 1 1 Esc O q
+ 2 2 Esc O r
+ 3 3 Esc O s
+ 4 4 Esc O t
+ 5 5 Esc O u
+ 6 6 Esc O v
+ 7 7 Esc O w
+ 8 8 Esc O x
+ 9 9 Esc O y
+ - - Esc O m
+ , , Esc O l
+ . . Esc O n
+ Enter carriage return Esc O M
+ PF1 Esc O P Esc O P
+ PF2 Esc O Q Esc O Q
+ PF3 Esc O R Esc O R
+ PF4 Esc O S Esc O S
+
+
+ was intended for use by programs that
+
+
+
+
+This is a matter that my site has encountered in a slightly different form.
+
+Article 2620 of comp.protocols.kermit.misc:
+Path: cs.utk.edu!cssun.mathcs.emory.edu!hobbes.cc.uga.edu!news-feed-1.peachnet.edu!gatech!swrinde!cs.utexas.edu!news.cs.utah.edu!cc.usu.edu!jrd
+From: jrd@cc.usu.edu (Joe Doupnik)
+Newsgroups: comp.protocols.kermit.misc
+Subject: Re: Defining functional keys
+Message-ID: <1995Apr22.122257.48276@cc.usu.edu>
+Date: 22 Apr 95 12:22:57 MDT
+References: <3n5307$jdd@kaie.va.ttu.ee>
+Organization: Utah State University
+Lines: 109
+
+In article <3n5307$jdd@kaie.va.ttu.ee>, uuno@sofia.va.ttu.ee (Uuno Vallner) writes:
+> We try to use KERMIT DOS as terminal. We have Novel and Unix
+> mixed network. We try access to OSF/1 via IPX using Softnet in OSF/1.
+>
+> We defined Kermit port bios3. It works perfectly. We need to use estonian
+> characters. We are resolved this problem too. But ...
+>
+> We use application in OSF/1 (text retrieval system trip), which needs
+> for operating Application keypad (7,8. 9 ..1,0 ...)and some functional keys.
+> But Kermit are using 7 as "home"
+>
+> Kermit interpreted non correct functional keys. After pressing f1, system
+> sends only ESC , after next f1 follows code and new ESC. Same effect is with
+> array keys.
+--------------
+
+ I think there is some confusion about DEC versus IBM PC keys.
+The relationship is detailed in distribution file MSVIBM.VT and also
+in the user's manual book "Using MS-DOS Kermit." The IBM PC numeric
+keypad keys are not necessarily related to the DEC KeyPad keys. Here
+is a cutout from my copy of msvibm.vt:
+
+
+1. VT320/VT102/VT52/Heath-19 EMULATOR IN MS-DOS KERMIT IBM-PC, CODE SUMMARY
+
+ VT320/VT102 keypads Heath-19 and VT52 Keypads
+ IBM keys IBM Keys
+ +------+------+------+------+ +------+------+-------+----------+
+ | PF1 | PF2 | PF3 | PF4 | | Blue | Red | Grey | up arrow | - Vendor
+ | F1 | F2 | F3 | F4 | | F1 | F2 | F3 | up arrow | - Kermit
+ +------+------+------+------+ +------+------+-------+----------+
+ | 7 | 8 | 9 | - | | 7 | 8 | 9 |down arrow|
+ | F5 | F6 | F7 | F8 | | F5 | F6 | F7 |down arrow|
+ +------+------+------+------+ +------+------+-------+----------+
+ | 4 | 5 | 6 | , | | 4 | 5 | 6 | rgt arrow|
+ | F9 | F10 | SF1 | SF2 | | F9 | F10 | SF1 | rgt arrow|
+ +------+------+------+------+ +------+------+-------+----------+
+ | 1 | 2 | 3 | E | | 1 | 2 | 3 |left arrow|
+ | SF3 | SF4 | SF5 | n S| | SF3 | SF4 | SF5 |left arrow|
+ +------+------+------+ t F| +------+------+-------+----------+
+ | 0------0 | . | e 6| | 0------0 | . | Enter |
+ | SF7 | SF8 | r | | SF7 | SF8 | SF6 |
+ +-------------+------+------+ +-------------+-------+----------+
+
+SF1 means push Shift and F1 keys simultaneously
+---------------------------------------------------------------------------
+Below, the acronyms CSI and SS3 stand for 8-bit control codes in an 8-bit
+environment or for their 7-bit equivalents "ESC [" and "ESC O", respectively.
+Command SET TERMINAL CONTROL {8-BIT | 7-BIT}, and an equivalent command from
+the host, determines the usage for output text; use of parity forces 7-bit
+mode. CSI is decimal 155, SS3 is decimal 143. Similarly, DCS is decimal 144
+or ESC P and ST is decimal 156 or ESC \. APC is decimal 159 or ESC _.
+---------------------------------------------------------------------------
+Codes sent by DEC and Heath arrow keys
+Key Verb IBM VT320/VT102 mode VT52/H19 mode
+ key Cursor Application Cursor or Application
+
+up uparr up CSI A SS3 A ESC A
+down dnarr down CSI B SS3 B ESC B
+right rtarr right CSI C SS3 C ESC C
+left lfarr left CSI D SS3 D ESC D
+
+Codes sent by DEC editing keys, not preassigned to keys.
+Key Verb VT320 mode VT102/VT52/H19 mode
+
+Find decFind CSI 1 ~ these keys
+Insert Here decInsert CSI 2 ~ send nothing
+Remove decRemove CSI 3 ~
+Select decSelect CSI 4 ~
+Prev Screen decPrev CSI 5 ~
+Next Screen decNext CSI 6 ~ ~ is ASCII chart 7/14
+
+Codes sent by DEC Numeric Keypad
+Key Verb IBM ANSI VT320/VT102 mode VT52/H19 mode
+ key Numeric Application Numeric Application
+
+PF1/HF7/Blue Gold,pf1 F1 SS3 P SS3 P ESC P ESC P
+PF2/HF8/Red pf2 F2 SS3 Q SS3 Q ESC Q ESC Q
+PF3/HF9/Grey pf3 F3 SS3 R SS3 R ESC R ESC R
+PF4/HF1 pf4 F4 SS3 S SS3 S ESC S ESC S
+0 kp0 SF7 0 SS3 p 0 ESC ? p
+1 kp1 SF3 1 SS3 q 1 ESC ? q
+2 kp2 SF4 2 SS3 r 2 ESC ? r
+3 kp3 SF5 3 SS3 s 3 ESC ? s
+4 kp4 F9 4 SS3 t 4 ESC ? t
+5 kp5 F10 5 SS3 u 5 ESC ? u
+6 kp6 SF1 6 SS3 v 6 ESC ? v
+7 kp7 F5 7 SS3 w 7 ESC ? w
+8 kp8 F6 8 SS3 x 8 ESC ? x
+9 kp9 F7 9 SS3 y 9 ESC ? y
+comma (,) kpcoma SF2 , SS3 l , ESC ? l
+minus (-) kpminus F8 - SS3 m - ESC ? m
+period (.) kpdot SF8 . SS3 n . ESC ? n
+Enter kpenter SF6 CR or SS3 M CR or ESC ? M
+ CR LF (newline on) CR LF
+ (SFn means hold down Shift key while pressing Function key n.)
+---------------
+
+ Please note that \Kkp0...\Kkp0 are placed on IBM PC function
+keys by default. You can redefine such things using Kermit command
+SET KEY, as discussed in depth in "Using MS-DOS Kermit."
+ I don't quite understand why you are using SET PORT BIOS3. Do
+you have some Int 14h interceptor present to route traffic to the net?
+For real serial ports BIOS3 is terrible. If you are using Novell's ODI
+material then Kermit can operate as a native ODI client (using it's
+internal TCP/IP stack). This is discussed in the release notes.
+ Joe D.
+
+
+
+
diff --git a/konsole/doc/More/vt100_reference_card.txt b/konsole/doc/More/vt100_reference_card.txt
new file mode 100644
index 000000000..e80ea1325
--- /dev/null
+++ b/konsole/doc/More/vt100_reference_card.txt
@@ -0,0 +1,215 @@
+Article 248 of comp.terminals:
+Newsgroups: comp.terminals
+Path: cs.utk.edu!gatech!udel!bogus.sura.net!opusc!usceast!chan
+From: chan@ece.scarolina.edu (Simon Chan)
+Subject: VT100 Reference Card !! ( if you are looking for....)
+Message-ID: <chan.728236678@hertz>
+Keywords: vt100 terminal escape codes
+Sender: usenet@usceast.cs.scarolina.edu (USENET News System)
+Organization: USC Department of Computer Science
+Date: 28 Jan 93 15:57:58 GMT
+Lines: 162
+
+
+
+Taken from VT100 Programming Reference Card (DIGITAL)
+
+ANSI Compatible Mode
+
+ Cursor Movement Commands
+ Cursor up ESC [ Pn A
+ Cursor down ESC [ Pn B
+ Cursor forward (right) ESC [ Pn C
+ Cursor backward (left) ESC [ Pn D
+ Direct cursor addressing ESC [ Pl; Pc H or
+ ESC [ Pl; Pc f
+ Index ESC D
+ Next Line ESC E
+ Reverse index ESC M
+ Save cursor and attributes ESC 7
+ Restore cursor and attributes ESC 8
+ * Pn = decimal parameter in string of ASCII digits.(default 1)
+ * Pl = line number (default 0); Pc = column number (default 0)
+
+ Line Size (Double-Height and Double-Width) Commands
+ Change this line to double-height top half ESC # 3
+ Change this line to double-height bottom half ESC # 4
+ Change this line to single-width single-height ESC # 5
+ Change this line to double-width single-height ESC # 6
+
+ Character Attributes
+ ESC [ Ps;Ps;Ps;...,Ps m
+ Ps = 0 or None All Attributes Off
+ 1 Bold on
+ 4 Underscore on
+ 5 Blink on
+ 7 Reverse video on
+ Any other parameter values are ignored.
+
+ Erasing
+ From cursor to end of line ESC [ K or ESC [ 0 K
+ From beginning of line to cursor ESC [ 1 K
+ Entire line containing cursor ESC [ 2 K
+ From cursor to end of screen ESC [ J or ESC [ 0 J
+ From beginning of screen to cursor ESC [ 1 J
+ Entire screen ESC [ 2 J
+
+ Programmable LEDs
+ ESC [ Ps;Ps;...Ps q
+ Ps = 0 or None All LEDs Off
+ 1 L1 on
+ 2 L2 on
+ 3 L3 on
+ 4 L4 on
+ Any other parameter values are ignored.
+
+ Character Set (G0 and G1 Designators)
+ Charactor Set G0 Designator G1 Designator
+ United Kingdom (UK) ESC ( A ESC ) A
+ United States (USASCII) ESC ( B ESC ) B
+ Special graphics characters ESC ( 0 ESC ) 0
+ and line drawing set
+ Alternate character ROM ESC ( 1 ESC ) 1
+ Alternate character ROM ESC ( 2 ESC ) 2
+ special graphics characters
+
+ Scrolling Region
+ ESC [ Pt ; Pb r
+ Pt is the number of the top line of the scrolling region;
+ Pb is the number of the bottom line of the scrolling region
+ and must be greater than Pt.
+ (The default for Pt is line 1, the default for Pb is the end
+ of the screen)
+
+ TAB stops
+ Set tab at current column ESC H
+ Clear tab at curent column ESC [ g or ESC [ 0 g
+ Clear all tabs ESC [ 3 g
+
+ Modes
+ To Set To Reset
+ Mode Name Mode Sequence Mode Sequence
+ Line feed/new line New line ESC [20h Line feed ESC [20l
+ Cursor key mode Application ESC [?1h Cursor ESC [?l
+ ANSI/VT52 mode ANSI N/A VT52 ESC [?2l
+ Column mode 132 Col ESC [?3h 80 Col ESC [?3l
+ Scrolling mode Smooth ESC [?4h Jump ESC [?4l
+ Screen mode Reverse ESC [?5h Normal ESC [?5l
+ Origin mode Relative ESC [?6h Absolute ESC [?6l
+ Wraparound On ESC [?7h Off ESC [?7l
+ Auto repeat On ESC [?8h Off ESC [?8l
+ Interlace On ESC [?9h Off ESC [?9l
+ Graphic proc. option On ESC 1 Off ESC 2
+ Keypad mode Application ESC = Numeric ESC >
+
+ Reports
+ Cursor Position Report
+ Invoked by ESC [ 6 n
+ Response is ESC [ Pl; Pc R
+ * Pl = line number; Pc = column number
+
+ Status Report
+ Invoked by ESC [ 5 n
+ Response is ESC [ 0 n (terminal ok)
+ ESC [ 3 n (terminal not ok)
+
+ What Are You
+ Invoked by ESC [ c or ESC [ O c
+ Response is ESC [ ?1 ; Ps C
+ Ps = 0 Base VT100, no options
+ 1 Processor option (STP)
+ 2 Advanced Video option (AVO)
+ 3 AVO and STP
+ 4 Graphocs processor option (GO)
+ 5 GO and STP
+ 6 GO and AVO
+ 7 GO, STP, and AVO
+ Alternately invoked by ESC Z (not recommended.) Response is the same.
+
+ Reset
+ ESC c
+
+ Confidence Tests
+ Fill Screen with "Es" ESC # 8
+ Invoke Test(s) ESC [ 2 ; Ps y
+ Ps = 1 Power-up self test
+ (ROM checksum, RAM, NVR,
+ keyboard and AVO if installed)
+ 2(loop back connector required) Data Loop Back
+ 4(loop back connector required) ETA Modern Control Test
+ 8 Repeat selected test(s)
+ indefinitely
+ (until failure or power off)
+
+VT52 Compatible Mode
+ Cursor Up ESC A
+ Cursor Down ESC B
+ Cursor Right ESC C
+ Cursor Left ESC D
+ Select Special Graphics character set ESC F
+ Select ASCII character set ESC G
+ Cursor to home ESC H
+ Reverse line feed ESC I
+ Erase to end of screen ESC J
+ Erase to end of line ESC K
+ Direct cursor address ESC Ylc (see note 1)
+ Identify ESC Z (see note 2)
+ Enter alternate keypad mode ESC =
+ Exit alternate keypad mode ESC >
+ Enter ANSI mode ESC <
+
+ NOTE 1: Line and column numbers for direct cursor address are single
+ character codes whose values are the desired number plus
+ 37 (in Octal). Line and column numbers start at 1.
+ NOTE 2: Response to ESC Z is ESC / Z.
+
+
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+Simon Chan chan@ece.scarolina.edu
+Department of Electrical & Computer Engineering
+Swearingen Engineering Centre
+University of South Carolina
+Coulmbia, South Carolina 29208
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+
+Article 269 of comp.terminals:
+Path: cs.utk.edu!gatech!news.ans.net!cmcl2!adm!smoke!gwyn
+From: gwyn@smoke.brl.mil (Doug Gwyn)
+Newsgroups: comp.terminals
+Subject: Re: VT100 Reference Card !!
+Keywords: vt100 terminal escape codes
+Message-ID: <19629@smoke.brl.mil>
+Date: 1 Feb 93 15:01:49 GMT
+References: <chan.728236678@hertz>
+Organization: U.S. Army Ballistic Research Lab, APG MD.
+Lines: 25
+
+In article <chan.728236678@hertz> chan@ece.scarolina.edu (Simon Chan) writes:
+>Taken from VT100 Programming Reference Card (DIGITAL)
+
+Note that EK-VT100-RC-001 contains several errors and omissions.
+The errors appear to all be fixed in the posted version.
+Here are some additions:
+
+ Parameters to Direct cursor addressing can be omitted if 1.
+ "Index" is broken if NEWLINE is enabled (set-up).
+ "Reverse index" scrolls up retaining the same column.
+
+ CHARACTER SET DESIGNATORS: G0 = Shift-In, G1 = Shift-Out
+
+> ANSI/VT52 mode ANSI N/A VT52 ESC [?2l
+ ANSI/VT52 mode ANSI ESC < VT52 ESC [?2l
+ Modes can be combined using ";", for example "ESC [ ? 3 ; 4 ; 7 h"
+
+ CONFIDENCE TESTS: Parameter bits are summed into one parameter.
+
+ Hardcopy ESC # 7
+ Graphic processor ON ESC 1
+ Graphic processor OFF ESC 2
+
+The reference card showed incorrect graphics for octal code 140; its
+correct graphic is ` (accent grave).
+
+
diff --git a/konsole/doc/More/vt100_scroll_region.txt b/konsole/doc/More/vt100_scroll_region.txt
new file mode 100644
index 000000000..4297aaba3
--- /dev/null
+++ b/konsole/doc/More/vt100_scroll_region.txt
@@ -0,0 +1,124 @@
+Newsgroups: comp.terminals,comp.protocols.misc
+Subject: ANSI X3.64 sequences (was Re: VT100 scrolling region)
+Summary: Escape code effects
+Expires: Sun, 31 Jan 1993 22:23:24 GMT
+References: <18623@mindlink.bc.ca> <lj3vgrINNieu@news.bbn.com>
+Sender: shuford@cs.utk.edu
+Followup-To: comp.terminals
+Distribution: world
+Organization: University of Tennessee, Knoxville--Dept. of Computer Science
+Keywords: VT100, scroll, control code, Escape, ANSI X3.64, terminal
+
+In article <lj3vgrINNieu@news.bbn.com> pdsmith@bbn.com (Peter D. Smith) writes:
+> In article <18623@mindlink.bc.ca>, Frank@mindlink.bc.ca (Frank I. Reiter)
+> writes:
+> > Part of an application I am working on includes a VT100 emulator.
+> > 1) Does ESC [;22r mean "scroll lines 0 through 22" or does it mean "Set
+> > the bottom scrolling line to 22, leave the top line as it is set already"?
+>
+> It should mean 'scroll lines 1 to 22'.
+
+The control sequences recognized by the Digital Equipment Corporation
+VT100, VT200, VT300, and VT400-family character-cell video terminals
+are an extended variant of the control sequences specified by an ANSI
+standard, ANSI X3.64. (ISO DP6429 is the international version.)
+
+The generic sequence introducer is a thing called CSI (Control
+Sequence Introducer). If you are using 8-bit communication, you
+can use the hexadecimal value 9B to represent this (but be sure you
+understand the side effects thereof). Otherwise, use the 7-bit
+equivalent: the Escape character (1Bh) followed by [ (the left
+bracket character).
+
+The canonical form of the given scroll-region command would be
+
+ CSI xx ; yy r
+
+or in 7-bit style
+
+ Esc [ xx ; yy r
+
+(where xx and yy are decimal digits expressed in ASCII/IA5; you do not
+actually use a space between sequence elements, this is for clarity.
+Be careful with the notation here--sometimes a space character _is_
+a sequence element, as in the SR Scroll Right editing function.)
+
+In an X3.64 control sequence, the numeric arguments may default to an
+arbitrary value specific to the device function being controlled. Do
+not assume that the default always will be 0 or 1. (Or there may be
+no default allowed.) For example, the numeric arguments in the GSM
+(Graphic Size Modify) sequence have the default values 100, 100.
+
+As a private extension to X3.64, DEC defines the DECSTBM (Set Top and
+Bottom Margins) command as follows:
+
+ CSI Pt ; Pb r
+
+ Selects top and bottom margins defining the scrolling region.
+ Pt is the line number of the first line in the scrolling region.
+ Pb is the line number of the bottom line.
+ If you do not select either Pt or Pb, they default to the top
+ and bottom respectively. Lines are counted from 1.
+
+(See \VT220 Programmer Pocket Guide/, part EK-VT220-HR-002, page 37.)
+
+> Remember that these sequences
+> could be implemented in TTL without a microprocessor of any
+> kind & therefore use the simplest possible implementation.
+
+Peter must be thinking of the much simpler DEC VT52 sequences. As far
+as I know, terminals implementing X3.64 have ALWAYS used a built-in
+microprocessor. The VT100 was built around an 8-bit-bus Intel 8085.
+
+In fact, when the X3.64 document was published (circa 1978), some
+vendors, insisting on using discrete logic designs, objected that the
+standard was so complex it could not be implemented. Most of these
+vendors are now floating belly-up on the tide of technology. Some
+credit is due to The Heath Company for a pioneering microprocessor-
+based video terminal that implemented many of the X3.64 functions.
+
+> > 2) Should a clear screen code clear the scrolling region only, or the
+> > entire screen? How about a clear to end of screen?
+>
+> I think this is the whole screen regardless of the scrolling region.
+> Don't bet your company on it, though.
+
+Screen clearing should not depend on scrolling.
+
+Erasing parts of the display (EL and ED) in the VT100 is performed thus:
+
+ Erase from cursor to end of line Esc [ 0 K or Esc [ K
+ Erase from beginning of line to cursor Esc [ 1 K
+ Erase line containing cursor Esc [ 2 K
+ Erase from cursor to end of screen Esc [ 0 J or Esc [ J
+ Erase from beginning of screen to cursor Esc [ 1 J
+ Erase entire screen Esc [ 2 J
+
+Some brain-damaged terminal/emulators respond to Esc [ J as if it were
+Esc [ 2 J (here the default is 0), and _some_ versions of Microsoft's
+MS-DOS ANSI.SYS contain a bug requiring software to send Esc [ k
+(instead of the uppercase). Of course, you would never make this mistake.
+
+The VT200 and later terminals have the ECH control sequence:
+
+ Esc yy X
+
+(where yy is a numeric parameter)
+
+This erases the cursor position and the next (yy-1) positions, but this
+is not part of the least common denominator VT100.
+
+ - - - - - -
+
+There is still various video-terminal information available for
+anonymous FTP in "pub/shuford" from
+
+ CS.UTK.EDU [128.169.94.1]
+
+ - - - - - -
+
+VT, Flip Chip, DIBOL, and Rainbow are trademarks of Digital Equipment
+Corporation.
+
+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+
diff --git a/konsole/doc/More/vt100_setup.txt b/konsole/doc/More/vt100_setup.txt
new file mode 100644
index 000000000..1bdf44cdd
--- /dev/null
+++ b/konsole/doc/More/vt100_setup.txt
@@ -0,0 +1,170 @@
+From: sherwin@royalt.enet.dec.com (Jim Sherwin)
+Newsgroups: comp.terminals
+Subject: Re: VT100 (DEC) Setup Problem (online/offline)
+Message-ID: <29245@nntpd.lkg.dec.com>
+Date: 25 Oct 91 02:02:07 GMT
+Organization: DEC -- Video, Image and Printer Systems Group
+Lines: 63
+
+
+ Striking the SET-UP key places you into SET-UP A mode. SET-UP A is
+ basically your tab stops. Use the space bar to move along the ruler
+ and strike the T key at the desired tab stop location.
+
+ SET-UP B may only be entered from SET-UP A and is done be striking
+ the 5 on the main keyboard (i.e. top-row).
+
+ To exit SET-UP B strike the SET-UP key.
+
+ The SET-UP parameters are as follows:
+
+
+ Bank Position Parameters
+
+ 1 1 Scroll; 0=jump; 1=smooth
+ 1 2 Autorepeat; 0=off; 1=on
+ 1 3 Screen; 0=dark; 1=light
+ 1 4 Cursor; 0=underline; 1=block
+
+ 2 1 Margin Bell; 0=off; 1=on
+ 2 2 Keyclick; 0=off; 1=on
+ 2 3 ANSI/VT52; 0=VT52; 1=ANSI
+ 2 4 Auto XON/XOFF; 0=off; 1=on
+
+ 3 1 Pound Sign; 0=octothorpe; 1=British Pound
+ 3 2 Wrap Around; 0=off; 1=on
+ 3 3 New Line; 0=off; 1=on
+ 3 4 Interlace; 0=off; 1=on
+
+ 4 1 Parity Sense; 0=odd; 1=even
+ 4 2 Parity; 0=off; 1=on
+ 4 3 Bits per Char; 0=7 bits; 1=8 bits
+ 4 4 Power; 0=60 Hz; 1=50 Hz
+
+ While in SET-UP B mode, these features are set by positioning the
+ cursor above the feature switch, using the spacebar, and striking
+ the 6 key on the main keyboard.
+
+ To set the ANSWERBACK MESSAGE, enter SET-UP B and strike the SHIFT
+ and A keys simultaneously. The terminal will respond with A = on
+ the screen. Type a message delimiter character which may be any
+ chaacter not used in the actual message. Type the ANSWERBACK
+ MESSAGE, up to 20 characters. Type the message delimiter
+ character. The message will disappear from the screen. You may
+ not edit an ANSWERBACK MESSAGE. You may only supercede it with a
+ new ANSWERBACK MESSAGE.
+
+ To save the SET-UP, strike the SHIFT and S keys simultaneously,
+ while in SET-UP mode.
+
+ I hope this helps.
+
+ Jim
+
+
+ <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>
+ <> "When things are going well, \ Jim Sherwin a.k.a. <>
+ <> someone will inevitably \ sherwin@royalt.enet.dec.com <>
+ <> experiment detrimentally." \ !decwrl!royalt.enet.dec.com!sherwin <>
+ <> Boyle's Second Law \ sherwin%royalt.enet@decwrl.dec.com <>
+ <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>
+
+
+Article 20936 of comp.dcom.modems:
+Path: utkcs2!darwin.sura.net!jvnc.net!yale.edu!think.com!news.bbn.com!news.bbn.com!news
+From: Paul Placeway <pplacewa@bbn.com>
+Newsgroups: comp.dcom.modems,alt.bbs
+Subject: Re: Detecting ANSI on a remote system
+Date: 11 Jul 1992 00:04:09 GMT
+Lines: 82
+Message-ID: <l5s9bpINNqdt@news.bbn.com>
+References: <1992Jul8.204233.13120@csusac.csus.edu> <1992Jul9.053233.11670@f109f.mil.se>
+NNTP-Posting-Host: bbn.com
+Xref: utkcs2 comp.dcom.modems:20936 alt.bbs:11447
+
+nils@f109f.mil.se (Nils Hammar) writes:
+
+< emamid@athena.ecs.csus.edu (David Emami) writes:
+
+
+< >I am currently writing a communications app using TurboVision; I've got a
+< >view that can display ANSI, but how do I let the system that I hook up with
+< >that I can use ANSI codes. Most BBS's that I've tried respond with "ANSI
+< >detected" or "ANSI not detected" when I login using a commercial term
+< >program, based on the emulation I'm using. I presume that the BBS sends a
+< >string which I need to respond to in a certain way; what should my program
+< >be looking for, and how should it answer? Any help would be appreciated.
+
+< What I have been using is the function that reports the cursor position.
+< If you get an answer on that request that is correct, it's ANSI, or a VT100
+< compatible terminal. To determine if it's a VT100 or similar, you will have
+< to send a second request that's only recognized by the VT100 or
+< similar terminals. That request will result in an answer that tells you
+< almost everything that you need to know about the terminal.
+< If this secondary request doesn't give you any response, then it's only
+< ANSI. This is a really nice way to find out if you can send high resolution
+< graphics to the caller too. What a surprise to get a hig resolution
+< picture on the screen when you are calling an ordinary BBS!
+
+The ANSI Device Status Report (DSR) is
+
+ ESC [ <n> n
+
+where <n> is 5 for a status report (OK reply is "ESC [ 0 n"), and 6
+for report cursor position (reply is "ESC [ <row> ; <col> R").
+
+ANSI (and DEC) Send Device Attributes is
+
+ ESC [ <n> c
+
+where <n> is a number, in ASCII 0-9, and usually is 0 for the request.
+
+Here are a (small) selection of replies:
+
+ what reply comments
+ ---- ----- -----------
+ xterm ESC[?1;2c VT100 w/AVO
+ MacKermit ESC[?1;2c
+ VT102 ESC[?6c
+ VT320 ESC[63;1;2;8;9c
+
+(These are from vttest, by Per Lindberg)
+
+ vanilla VT100 ESC[?1;0c no options
+ VT100 with STP ESC[?1;1c
+ VT100 with AVO ESC[?1;2c could be a VT102
+ VT100 with STP and AVO ESC[?1;3c
+ VT100 with GPO ESC[?1;4c
+ VT100 with STP and GPO ESC[?1;5c
+ VT100 with AVO and GPO ESC[?1;6c
+ VT100 with STP, AVO and GPO ESC[?1;7c
+ VT100 with PP and AVO ESC[?1;11c
+ VT100 with PP, GPO and AVO ESC[?1;15c
+ VT132 with AVO ESC[?4;2c
+ VT132 with AVO and STP ESC[?4;3c
+ VT132 with GPO and AVO ESC[?4;6c
+ VT132 with GPO, AVO, and STP ESC[?4;7c
+ VT132 with PP and AVO ESC[?4;11c
+ VT132 with PP, GPO and AVO ESC[?4;15c
+ VT131 ESC[?7c
+ VT125 ESC[?12;5c VT125 also has ROM version
+ VT125 with AVO ESC[?12;7c number, so this won't work
+ VK100 (GIGI) ESC[?5;0c
+ VK100 (GIGI) ESC[?5c
+
+ DXterm (DEC's version of xterm) ESC[?63;1;3;4;6;8;9;15;16;29c
+
+< For this reason, I once wrote a program that convert PCX pictures
+< to DEC Sixel Graphics. It was interesting to view those pictures
+< on the screen with MS-KERMIT (which supports Sixel Graphics in colour.)
+< The only disadvantage was that Sixel graphics is bitmapped and slow.
+
+This is cute, but one needs to be careful about assuming what a
+terminal emulator will do based on what it claims to be. There are a
+lot of mediocre "emulations" out there. This is partially because the
+ANSI spec allows the terminal to do a lot of weird and unexpected
+things, like embedding simple control characters in the middle of an
+escape sequence. ("foo ^H^[^H[^H4^HCbar" should render as "foo bar".
+Yuck.)
+
+ -- Paul Placeway <pplacewa@bbn.com>
diff --git a/konsole/doc/More/vttest.html b/konsole/doc/More/vttest.html
new file mode 100644
index 000000000..1474d7601
--- /dev/null
+++ b/konsole/doc/More/vttest.html
@@ -0,0 +1,205 @@
+<html><head>
+<title>The VTTEST VT100/102 Terminal Emulation Test</title>
+</head><body>
+<h3>The VTTEST VT100/102 Terminal Emulation Test</h3>
+
+The VTTEST program was written in 1983-85 by Per Lindberg of Stockholm
+University in Sweden to exercise and test all the features of a Digital
+Equipment Corporation (DEC) VT100 or VT102 terminal or software that emulates
+one of these terminals. Incidentally, the primary additional feature of the
+VT102 terminal over the VT100 is character insertion and deletion, important in
+text-editing applications (like vi or EMACS), especially on slow connections.
+<p>
+You may obtain the C-language source code for the VTTEST program by ftp,
+compile it on your UNIX system (or adapt it to others), and run the tests
+yourself:
+<p>
+<a href="ftp://kermit.columbia.edu/kermit/vttest/">
+ftp://kermit.columbia.edu/kermit/vttest/</a>
+<p>
+The VTTEST program does not test any features of the VT220 or above,
+nor of esoteric VT models like VT125, VT131, etc. A VT220/320 test suite
+similar to VTTEST would be most welcome, but none seems to exist.
+<p>
+The following sheet may be used to administer the test. There are 100
+points, plus 10 possible extra-credit points, so the highest possible
+score would be 110. To minimize confusion and promote fairness, begin with
+your emulator set to:
+<ul>
+<li>VT102 (or, if no VT102, then VT100) emulation;
+<li>24 rows by 80 columns;
+<li>Light foreground on dark background;
+<li>Answerback enabled.
+</ul>
+<pre>
+<hr>
+VTTEST VT100/VT102 Compatibility Test Score Sheet
+
+Program and version: konsole______________________________ Date: _________
+
+Score: ____________ + Extra credit: ___________ = Final score: ___________
+
+Check box if test passed. Score 1 point per check mark.
+Perfect score = 100 points. Extra credit at end.
+
+1. Test of cursor movements
+
+[1] 1. Text inside frame of E's inside frame of *'s and +'s, 80 columns
+[1] 2. Text inside frame of E's inside frame of *'s and +'s, 132 columns
+[1] 3. Cursor-control chars inside ESC sequences
+[1] 4. Leading 0's in ESC sequences
+
+2. Test of screen features
+
+[1] 5. Three identical lines of *'s (test of wrap mode)
+[1] 6. Test of tab setting/resetting
+[1] 7. 132-column mode, light background
+[1] 8. 80-column mode, light background
+[1] 9. 132-column mode, dark background
+[1] 10. 80-column mode, dark background
+[1] 11. Soft scroll down
+[1] 12. Soft scroll up / down
+[1] 13. Jump scroll down
+[1] 14. Jump scroll up / down
+[1] 15. Origin mode test (2 parts)
+
+ Graphic Rendition test pattern, dark background
+
+[1] 16. Normal ("vanilla")
+[1] 17. Normal underlined distinct from normal
+[1] 18. Normal blink distinct from all above
+[1] 19. Normal underline blink distinct from all above
+[1] 20. Normal reverse ("negative") distinct from all above
+[1] 21. Normal underline reverse distinct from all above
+[1] 22. Normal blink reverse distinct from all above
+[1] 23. Normal underline blink reverse distinct from all above
+[1] 24. Bold distinct from all above
+[1] 25. Bold underlined distinct from all above
+[1] 26. Bold blink distinct from all above
+[1] 27. Bold underline blink distinct from all above
+[1] 28. Bold reverse ("negative") distinct from all above
+[1] 29. Bold underline reverse distinct from all above
+[1] 30. Bold blink reverse distinct from all above
+[1] 31. Bold underline blink reverse distinct from all above
+
+ Graphic Rendition test pattern, light background
+
+[1] 32. Normal ("vanilla")
+[1] 33. Normal underlined distinct from normal
+[1] 34. Normal blink distinct from all above
+[1] 35. Normal underline blink distinct from all above
+[1] 36. Normal reverse ("negative") distinct from all above
+[1] 37. Normal underline reverse distinct from all above
+[1] 38. Normal blink reverse distinct from all above
+[1] 39. Normal underline blink reverse distinct from all above
+[1] 40. Bold distinct from all above
+[1] 41. Bold underlined distinct from all above
+[1] 42. Bold blink distinct from all above
+[1] 43. Bold underline blink distinct from all above
+[1] 44. Bold reverse ("negative") distinct from all above
+[1] 45. Bold underline reverse distinct from all above
+[1] 46. Bold blink reverse distinct from all above
+[1] 47. Bold underline blink reverse distinct from all above
+
+ Save/Restore Cursor
+
+[1] 48. AAAA's correctly placed
+[1] 49. Lines correctly rendered (middle of character cell)
+[1] 50. Diamonds correctly rendered
+
+3. Test of character sets
+
+[1] 51. UK/National shows Pound Sterling sign in 3rd position
+[1] 52. US ASCII shows number sign in 3rd position
+[1] 53. SO/SI works (right columns identical with left columns)
+[1] 54. True special graphics & line drawing chars, not simulated by ASCII
+
+4. Test of double-sized chars
+
+ Test 1 in 80-column mode:
+
+[0] 55. Left margin correct
+[0] 56. Width correct
+
+ Test 2 in 80-column mode:
+
+[0] 57. Left margin correct
+[0] 58. Width correct
+
+ Test 1 in 132-column mode:
+
+[0] 59. Left margin correct
+[0] 60. Width correct
+
+ Test 2 in 132-column mode:
+
+[0] 61. Left margin correct
+[0] 62. Width correct
+
+[0] 63. "The man programmer strikes again" test pattern
+[0] 64. "Exactly half the box should remain"
+
+5. Test of keyboard
+
+[?] 65. LEDs.
+[?] 66. Autorepeat
+[1] 67. "Press each key" (ability to send each ASCII graphic char)
+[1] 68. Arrow keys (ANSI/Cursor key mode reset)
+[1] 69. Arrow keys (ANSI/Cursor key mode set)
+[?] 70. Arrow keys VT52 mode
+[?] 71. PF keys numeric mode
+[?] 72. PF keys application mode
+[?] 73. PF keys VT52 numeric mode
+[?] 74. PF keys VT52 application mode
+[1] 75. Send answerback message from keyboard
+[?] 76. Ability to send every control character
+
+6. Test of Terminal Reports
+
+[1] 77. Respond to ENQ with answerback
+[1] 78. Newline mode set
+[1] 79. Newline mode reset
+[1] 80. Device status report 5
+[1] 81. Device status report 6
+[1] 82. Device attributes report
+[1] 83. Request terminal parameters 0
+[1] 84. Request terminal parameters 1
+
+7. Test of VT52 submode
+
+[1] 85. Centered rectangle
+[1] 86. Normal character set
+[1] 87. Graphics character set
+[1] 88. Identify query
+
+8. VT102 Features
+
+[1] 89. Insert/delete line, 80 columns
+[1] 90. Insert (character) mode, 80 columns
+[1] 91. Delete character, 80 columns
+[1] 92. Right column staggered by 1 (normal chars), 80 columns
+[1] 93. Right column staggered by 1 (double-wide chars), 80 columns
+[1] 94. ANSI insert character, 80 columns
+[1] 95. Insert/delete line, 132 columns
+[1] 96. Insert (character) mode, 132 columns
+[1] 97. Delete character, 132 columns
+[1] 98. Right column staggered by 1 (normal chars), 132 columns
+[1] 99. Right column staggered by 1 (double-wide chars), 132 columns
+[1] 100. ANSI insert character, 132 columns
+
+9. Extra credit
+
+[0] 101. True soft (smooth) scroll
+[1] 102. True underline
+[1] 103. True blink
+[0] 104. True double-high/wide lines, not simulated
+[1] 105. Reset terminal (*)
+[0] 106. Interpret controls (debug mode) (*)
+[0] 107. Send BREAK (250 msec) (*)
+[0] 108. Send Long BREAK (1.5 sec) (*)
+[0] 109. Host-controlled transparent / controller print (*)
+[0] 110. Host-controlled autoprint (*)
+
+(*) Features of VT100 not tested by vttest.
+</body>
+</html>
diff --git a/konsole/doc/More/xterm.codes b/konsole/doc/More/xterm.codes
new file mode 100644
index 000000000..b14ead600
--- /dev/null
+++ b/konsole/doc/More/xterm.codes
@@ -0,0 +1,206 @@
+
+ Basic forms
+
+ : Char (ordinary character) - evtChar(char chr)
+ : Cntl (control character) - evtCtrl(char control)
+ : ESC <Mono> - evtMono(char mono)
+ : ESC [ <Ps> <Char> - evtParm(char pc, int n, char* Ps[])
+ : ESC <Duo> <Char> - evtPrmc(char duo, char arg)
+
+ : Special forms for Xterm extentions
+
+
+ DEC private mode.
+
+ - Although <Ps> can be any character in range of 0x30-0x3f, that
+ means any of "0123456789:;<=>?", a scan through different sources
+ shows that DEC private mode is indicated only with the *first*
+ parameter. That means that the '?' is attached only to the first
+ parameter in a sequence and all following are implicitely ment, too.
+ Thus DES private mode and ordinary modes cannot be mixed within
+ one sequence.
+
+------------------------
+
+ The following is a list of control sequences recognized by screen. "(V)"
+ and "(A)" indicate VT100-specific and ANSI- or ISO-specific functions,
+ respectively.
+
+ 'x' in beginning means 'XTerm'. (ftp://ftp.x.org/...?)
+
+x BEL Bell (Ctrl-G)
+x BS Backspace (Ctrl-H)
+x TAB Horizontal Tab (HT) (Ctrl-I)
+x LF Linefeed or New Line (NL) (Ctrl-J)
+x VT Vertical Tab (Ctrl-K) same as LF
+x FF Form Feed or New Page (NP) (Ctrl-L) same as LF
+x CR Carriage Return (Ctrl-M)
+x SO (A) Lock Shift G1 (Ctrl-N)
+x SI (A) Lock Shift G0 (Ctrl-N)
+
+x ESC # 8 (V) Fill Screen with E's (for adjustment)
+
+x ESC ( Pcs (A) Designate character set as G0
+x ESC ) Pcs (A) Designate character set as G1
+x ESC * Pcs (A) Designate character set as G2
+x ESC + Pcs (A) Designate character set as G3
+x Pcs = 0 : Graphics
+x A : UK
+x B : US
+
+x ESC 7 (V) Save Cursor and Attributes
+x ESC 8 (V) Restore Cursor and Attributes
+
+x ESC = (V) Application Keypad Mode
+x ESC > (V) Numeric Keypad Mode
+
+x ESC D Index
+x ESC E Next Line
+x ESC F Cursor to left lower corner
+x ESC H Horizontal Tab Set
+x ESC M Reverse Index
+x ESC N (A) Single Shift G2
+x ESC O (A) Single Shift G3
+x ESC Z Send VT100 Identification String
+
+x ESC [ Pn @ (dft:1) (A) Insert Blank Characters
+x ESC [ Pn A (dft:1) Cursor Up
+x ESC [ Pn B (dft:1) Cursor Down
+x ESC [ Pn C (dft:1) Cursor Right
+x ESC [ Pn D (dft:1) Cursor Left
+
+x ESC [ Pn ; Pn H (dft:1;1) Direct Cursor Addressing
+ ESC [ Pn J (dft:1) Erase in Display
+x Pn = 0 (dft) From Cursor to End of Screen
+x 1 From Beginning of Screen to Cursor
+x 2 Clear whole screen
+ ESC [ Pn K Erase in Line
+x Pn = 0 (dft) From Cursor to End of Line
+x 1 From Beginning of Line to Cursor
+x 2 Clear whole Line
+x ESC [ Pn L (dft: 1) (A) Insert Line
+x ESC [ Pn M (dft: 1) (A) Delete Line
+x ESC [ Pn P (dft: 1) (A) Delete Character
+
+x ESC [ Ps c Send Device Attribute
+x Ps = 0 (dft) Send VT100 Identification String
+x > Send VT220 Secondary Device Attributes String
+
+x ESC [ Pn ; Pn f (dft:1;1) Direct Cursor Addressing (see ESC[H)
+x ESC [ Ps g Clear Tabs
+x Ps = 0 (dft) Clear current
+x 3 Clear all
+
+ ESC [ Ps ;...; Ps h Set Mode
+ ESC [ Ps ;...; Ps l Reset Mode (indicated in parenthesis)
+x Ps = 4 (A) Insert (Replace) Mode
+x 20 (A) Automatic (Normal) Linefeed Mode
+- 34 Normal Cursor Visibility
+
+x ESC [ Ps ;...; Ps m Select Graphic Rendition
+x Ps = 0 (dft) Default Rendition
+x 1 Bold
+- 2 (A) Faint
+- 3 (A) Standout Mode (ANSI: Italicized)
+x 4 Underlined
+x 5 Blinking
+x 7 Negative Image
+
+ 22 (A) Normal Intensity
+ 23 (A) Standout Mode off (ANSI: Italicized off)
+ 24 (A) Not Underlined
+ 25 (A) Not Blinking
+ 27 (A) Positive Image
+
+x 3x (A) Foreground Color x
+x 4x (A) Background Color x
+x x = 0 (A) Black
+x 1 (A) Red
+x 2 (A) Green
+x 3 (A) Yellow
+x 4 (A) Blue
+x 5 (A) Magenta
+x 6 (A) Cyan
+x 7 (A) White
+x 9 (A) Default
+
+x ESC [ 6 n Send Device Report
+x Ps = 5 Send Status report (ESC [ 0 n)
+x 6 Send Cursor Position Report (ESC [ Row ; Col R)
+
+x ESC [ Pn ; Pn r (dft:all) Set Scrolling region
+
+x ESC [ ? Ps ; ... Ps h Set DEC private mode
+x ESC [ ? Ps ; ... Ps l Reset DEC private mode
+x ESC [ ? Ps ; ... Ps s Save DEC private mode
+x ESC [ ? Ps ; ... Ps r Restore DEC private mode
+x Ps = 1 (V) Application (Normal) Cursor Keys
+x 2 // xterm: US -> G0..G3 // vt100: --> ansi/vt52
+x 3 (V) 132 (80) columns mode
+x 4 Smooth (Fast) Scroll
+x 5 (V) Reverse (Normal) Video
+x 6 (V) Origin (Normal) Cursor Mode
+x 7 (V) Wraparound (Normal) Cursor Mode
+x 8 (No) Autorepeat Keys
+x 9 (Don't) Send Mouse XY on button press
+x 40 (Dis-) Allow 80<->132
+x 44 turn on (off) margin bell
+x 45 (no) reverse wrap around mode
+x 47 use (normal) alternate screen
+x 1000 (don't) send mouse XY on button press and release
+
+ i won't care for that
+x-- 38 Enter Textronix Mode
+x?? 41 (No) 'more(1)' fix
+x- 46 start (stop) logging
+x 1001 (don't) use hilite mouse tracking
+
+----------------------------------------------
+
+following some Xterm specific commands
+
+x ESC ] Ps ; Pt BEL (A) Operating System Command (xterm title hack)
+x Ps = 0
+x 1
+x 2
+x 46
+x 50
+
+x ESC ^ Pt ESC \ (A) Privacy Message String (Message Line)
+x- ESC _ Pt ESC \ (A) Application Program Command
+x- ESC P Ps ESC \ (A) Device Control String. Outputs a string
+ directly to the host terminal without
+ interpretation.
+
+----------------------------------------------
+
+x ESC c Full Reset
+
+x ESC n (A) Lock Shift G2
+x ESC o (A) Lock Shift G3
+
+------------ more...
+
+ ESC [ s (A) Save Cursor and Attributes
+
+ ESC [ 8 ; Ph ; Pw t Resize the window to `Ph' lines and `Pw' columns
+ (SunView special)
+
+ ESC \ (A) String Terminator
+ ESC ! Global Message String (Message Line)
+ ESC k A.k.a. Definition String
+
+- ESC [ Pn i (A) Relay to printer (ANSI Media Copy)
+- Pn = 4 (A) Stop relay to printer (ANSI Media Copy)
+- 5 (A) Start relay to printer (ANSI Media Copy)
+
+x- ESC l Memory Lock (HP) (FIXME: what that?)
+x- ESC m Memory Unlock (HP) (FIXME: what that?)
+
+x- ESC |
+x- ESC }
+x- ESC ~
+
+//FIXME: ESC[...T is hilite mouse tracking in xterm.
+- ESC [ Pn S Scroll Scrolling Region Up
+- ESC [ Pn T Scroll Scrolling Region Down
diff --git a/konsole/doc/README.first b/konsole/doc/README.first
new file mode 100644
index 000000000..59471ac04
--- /dev/null
+++ b/konsole/doc/README.first
@@ -0,0 +1,4 @@
+The material contained in here is a unsorted collection, or, if you prefer to
+say so, a mess. Expect a proper documentation to follow later.
+
+May 1998, Lars.
diff --git a/konsole/doc/VT100/Makefile.am b/konsole/doc/VT100/Makefile.am
new file mode 100644
index 000000000..04367ed5e
--- /dev/null
+++ b/konsole/doc/VT100/Makefile.am
@@ -0,0 +1,3 @@
+EXTRA_DIST = Table.Codes Table.Graphic Table.VT52 \
+ awk.table.graphic db.trans db2.pl genTC.pl t.pl \
+ vt100.gif konsole1.gif konsole2.gif techref.html
diff --git a/konsole/doc/VT100/MoreText b/konsole/doc/VT100/MoreText
new file mode 100644
index 000000000..e8804236f
--- /dev/null
+++ b/konsole/doc/VT100/MoreText
@@ -0,0 +1,98 @@
+The refinement discussed here so far, is implemented in the
+overall structure of the program:
+
+
+ Operations -------------X
+ Screen(s)
+ Protocol / |
+ Shell X------------X Emulation |
+ \ V
+ Widget
+ Events X------------------
+
+
+Part Application Protocol Data model Visualization
+ User Events
+
+Files TEShell.C TEmulation.C Screen.C TEWidget.C
+ TEVt102.C
+
+Types TEShell Emulation TEScreen TEWidget
+
+
+
+The abstract data type, in which the text is represented and
+manipulated by a set of operations is
+
+
+------------------------------------------------------------------
+
+On the first glance, the terminal consists of the following
+parts:
+
+- A screen to display characters to the user on a rectangular area.
+- A keyboard to accept the user keypresses.
+- A bidirectional serial connection, on which the application
+ sends the text to be displayed to the terminal and on which
+ the user's key pressed are forwarded to the application.
+- The application that actually run on the terminal.
+
+More formally our terminal model consists of
+- a character screen : a matrix [Lines,Columns] -> Character
+- a current visual pointer position (cursor).
+- a set of operations by which the screen can be manipulated
+- a set of events (mainly keystrokes)
+- two streams on which bytes are exchanged between the
+ application and the terminal which are used to communicate
+ the operations and events between the two end points.
+- an initial state.
+
+ 0 (columns) V--- Columns-1
+ +-----------------------+
+ | | 0
+ | text on |
+ | the screen |
+ | | (lines)
+ | |
+ | |
+ | | Lines-1
+ +-----------------------+
+
+
+For adressing purpose, we call the (columnNo,lineNo) pair a "position"
+
+- protocol == collection of operations and their encoding.
+
+Beschreibung
+
+- Strom von Kommandos und Anfragen
+- Strom von Ereignissen und Antworten
+
+- HostToTerminalStream
+ : Sequence(Command U Request)
+
+- Type Command-Tokens
+ : Prn(Char) - literal(Character) - 1 char subset
+ : Ctl(Char) - 0-parm command
+ : Esc(Char) - 0-parm command
+ : Csi(Char,Args) - fix & flex num parm command
+ - some are sub-commands
+ : Pri(Char,Args) <: Csi("?",Char,Args) - fix & flex num parm command
+ - some are sub-commands
+ : Hsh(Char) - 0-parm command
+ : Scs(A,B) - 2-parm num command
+ : Vt5(A,B) - 2-parm num command
+
+- command definition
+
+ : name(parm:Type<:Integer)
+
+ : setFgColor(color)
+ : setBgColor(color)
+ : setReverse(bool)
+ : setBold(bool)
+ : setBlink(bool)
+
+------------------------------------------------------------------
+
+
diff --git a/konsole/doc/VT100/Table.Codes b/konsole/doc/VT100/Table.Codes
new file mode 100644
index 000000000..6ece0f4bf
--- /dev/null
+++ b/konsole/doc/VT100/Table.Codes
@@ -0,0 +1,1879 @@
+##############################################################################
+# #
+# [Table.Codes] Concept Data Base #
+# #
+# Copyright (c) 1998 by Lars Doelle <lars.doelle@on-line.de> #
+# This file is part of Konsole #
+##############################################################################
+
+# This is work in progress. The overall goal is to link the documentation of
+# konsole closely to it's source. Further, the source could be organize such
+# that the emulation dependent parts are separated from everything else.
+# If this goal is matched, the emulation independent parts have to undergo
+# documentation, also.
+#
+# Refere to [db.trans] for not-yet-integrated stuff.
+#
+# What has to be done in any case is to merge db.trans into this file and to
+# make a script that extracts it again. From db.trans, we then generate parts
+# of the decoder (the semantic assignment).
+#
+# db2.pl contains as script able to slit TEScreen.C into the emulation
+# (in)dependent parts due to [db.trans].
+#
+# A like thing has to be done for TEmuVt102.C/h and for TEScreen.h.
+#
+# The missing link in the moment is a proper handling of all the Ps arguments
+# that refere to different routines (subfunction of an esc code).
+
+## Section Text ##############
+
+Introduction.html
+ <h2>Introduction</h2>
+ <p>
+ In a traditional UNIX installation a single machine (host) served
+ several users by means of terminals attached to this host by a serial
+ cable. These terminals (end points) where specialized devices, either
+ regular ttys (printer with keyboard) or later more sophisticated
+ things with cathode ray tubes.
+ <p>
+ <center><img src="konsole2.gif"></center>
+ <p>
+ Today, hardware has become so cheap, that each single user could
+ be provided with a complete host/display combination for the former
+ price of a terminal.
+ <p>
+ Additional, and here we come to the X in the emulation, display
+ devices have become graphical while the original terminal where
+ only able to show characters but not graphics.
+ <p>
+ To allow programs designed for the original configuration to be
+ used in the contemporary setup, "terminal emulations" where invented.
+ In these emulations, the whole original setup is simulated.
+ <p>
+ The serial cable is folded into the operating system as a sort of
+ loop back device, and a program, the terminal emulation, uses modern
+ means of graphical user interfaces to behave like an earlier terminal.
+ To complete the picture, the host in the diagram is replaced by the
+ application that runs in the emulation (typically a shell or an old
+ editor). So, terminal emulations are in fact interfaces to character
+ oriented applications.
+ <p>
+ This document describes the implementations of a program named
+ "konsole", which is such an X terminal emulation. Since konsole
+ is distributed under the GPL, meaning that it's source code is
+ available to whoever likes to hack on it, the program would be
+ incomplete without a proper introduction into the code and it's
+ concepts. Thus, this text is to complement the program and the
+ source with the remaining informations to make a complete product.
+ <p>
+ <h2>A first refinement</h2>
+ <p>
+ Before we can come to the actual implementation, quite some
+ notions have to be introduced. We have to get us an idea what
+ a terminal emulation does in more detail.
+ <p>
+ To this end, a simple model of the terminal and it's operation
+ is given, which is later extended and refined as we come deeper
+ into matter and implementation.
+ <p>
+ At some level conception, a terminal can be described as a
+ (abstract) data model. This means it has some type of state
+ together with operations on that data type. These operations
+ are somehow encoded to be passed over the serial line.
+ <p>
+ The concrete model is often loosely named the "emulation",
+ the specific encoding chosen, the "protocol".
+ <p>
+ There are two principle models in use. The first, stream like
+ one, which is related to a tty, consideres the terminal as an
+ indefinit long and wide sheet of paper on which a printer head
+ types the characters that come in over the line. Typical examples
+ are shell scripts, make and other programs producing sequential
+ protocols of their activity. Their basic data type is a list of
+ list of characters.
+ <p>
+ The second principle model is used by applications written
+ especially for crt devices, so called full screen applications.
+ These treat the terminal as a matrix of characters where each
+ position can be individually addressed and written to. Typical
+ representatives are full screen editors like vi and emacs,
+ file managers like mc and mail readers like mutt.
+ <p>
+ Though the second model is newer, it's age does not imply a
+ preference. To the contrary, both models have a right for their
+ own and are both to be supported. The first model is fully
+ expressed within konsole in form of it's ref:history buffer.
+ <p>
+ Note, that although the second model definitely build on the
+ first one in almost any respect, it cannot fully express it,
+ since it introduces a finite line length, while the first
+ model works with indefinite lines.
+ <p>
+ Since application with both view of things are typically run
+ within the same session, some effort has been made within
+ konsole to maintain both ideas simultaniously, but only with
+ limited success so far.
+ <p>
+ In both models, the notion of a current position (historically
+ a printer's head, nowadays visualized by a cursor) is present.
+ "Printing" a character at the current position and advancing
+ the head together with the starting a new line are the most
+ fundamental operations of the emulation.
+ <p>
+ The full screen model basically adds the possibility to position
+ the cursor and to overwrite and clear the screen.
+ <p>
+ A plethora of additional (more or less useful) commands are
+ then added on this by every specific emulation, see below for
+ the awful details.
+ <p>
+ <!-- BEGIN: new section about the codes -->
+ <h2>Parts of the model</h2>
+ <p>
+ <it>All the following in this section is an outline</it>.
+ <p>
+ Parts of the terminal description
+ <ul>
+ <li>State
+ <br>This is mainly the screen, the cursor (including it's graphical state)
+ and some hidden mode variables. Note that the state cannot be investigated
+ by the attached host.
+ <li>Interface
+ <br>That's what goes over the wire. Beside being related to objects, this
+ appears so closely related to contemporal process communication, that
+ it might be discussed in likely terms.
+ <br>We have information flowing in both directions. On could destinguist
+ between:
+ <li>Commands
+ <br>These are "calls" of the terminals interface by the host which cause
+ some change of the terminals state, but do not end in a response.
+ <li>Requests
+ <br>These are "calls" of the terminals interface by the host which do not cause
+ any change of the terminals state, but end in a response of the terminal.
+ Clearly, requests are somehow used to investigate the state of the terminal.
+ <li>Events
+ <br>These are signals from the terminal caused by the user affecting the
+ mouse or keyboard to the host.
+ <li>Replys
+ <br>These are send by the terminal as a result of a Request from the hosts.
+ <li>Encoding/Decoding
+ </ul>
+
+Sequences.html
+ Conceptually, the commands to the terminal emulation are encoded if form
+ of byte sequences to meet the restrictions of the transport media. These
+ sequences have pretty different originations and therefore the format of
+ the sequences are inhomogenous.
+ <p>
+ Refering both to their origin and form, one can group the overall encoding
+ schemes as follows:
+ <p>
+ <table>
+ <tr><td width=20% bgcolor=#d0d0d0>Name</td><td width=20% bgcolor=#d0d0d0>Pattern</td><td bgcolor=#d0d0d0>Scope</td><td bgcolor=#d0d0d0>Comment</td></tr>
+ <tr><td>Printable Ascii Characters</td><td>32..126</td><td>ASCII ECMA</td>
+ <td>This is the most original pattern of all. The characters to be
+ displayed are passed over the chanel and are interpreted by the
+ terminal (emulation) as instructions to display the corresponding
+ glyph of the ascii character set. Contempory emulations include the
+ upper half (128..255) of the extentions to the national ascii character
+ sets, also.</td></tr>
+ <tr><td>Ascii Control Characters</td><td>0..26,28..31,127</td><td>ASCII ECMA</td>
+ <td>Ascii defines some non-printable, but format effecting characters, too.
+ Depending on the emulation, at least some of them are given a meaning.
+ The typically implemented ones are those that are handled by a teletype
+ like device.</td></tr>
+ <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>ECMA</td>
+ <td>These sequences are made up from an <b>ESC</b> character followed by
+ exactly one other character in the range ???..???.</td></tr>
+ <tr><td>CSI Sequence</td>
+ <td><b>ESC</b> <b>[</b> <i>Parameters</i> {<i>I</i>} <i>C</i></td>
+ <td>ECMA</td>
+ <td></td></tr>
+ <tr><td colspan=4>
+ <p>
+ The remaining codes are nonstandard but traditionalized hacks.
+ <p>
+ </td></tr>
+ <tr><td>DEC hacks</td>
+ <td><b>ESC</b> <i>C</i> <i>D</i></td>
+ <td>VT100</td>
+ <td></td></tr>
+ <tr><td>XTERM hacks</td>
+ <td><b>ESC ]</b> <i>Pn</i> <b>;</b> <i>text</i> <b>BEL</b></td>
+ <td>XTERM</td>
+ <td></td>
+ <tr><td colspan=4>
+ <p>
+ VT52 uses a different (incompatible) set of escape codes. VT100 includes
+ the VT52 emulation as a mode.
+ <p>
+ </td></tr>
+ </tr>
+ <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>VT52</td>
+ <td></td></tr>
+ <tr><td>Complex Escape Sequence</td><td><b>ESC</b> <b>Y</b> <i>X</i> <i>Y</i></td><td>VT52</td>
+ <td></td></tr>
+ .
+ </table>
+ .
+ <h3>More on Control Sequences</h3>
+ .
+ <h4>Control Characters</h4>
+ .
+ Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded
+ from the control sequence syntax, but may be embedded within a control
+ sequence. Embedded control characters are executed as soon as they are
+ encountered by a VT100. The processing of the control sequence then
+ continues with the next character received. The exceptions are:
+ if the <a href=#ESC>ESC</a> character occurs, the current control sequence
+ is aborted, and a new one commences beginning with the <a href=#ESC>ESC</a>
+ just received. If the character <a href=#CAN>CAN</a> (0x0c) or the
+ character <a href=#SUB>SUB</a> (0x0e) occurs,
+ the current control sequence is aborted. The ability to embed control
+ characters allows the synchronization characters XON and XOFF to be
+ interpreted properly without affecting the control sequence.
+ <p>
+ .
+ <h4>CSI Sequences</h4>
+ .
+ <dl>
+ <dt>Control Sequence Introducer (CSI):
+ <dd>An escape sequence that provides
+ supplementary controls and is itself a prefix affecting the
+ interpretation of a limited number of contiguous characters.
+ In the VT100, the CSI is: &lt;ESC&gt;[
+ .
+ <dt>Parameter:
+ <dd>1. A string of zero or more decimal characters which
+ represent a single value. Leading zeros are ignored. The
+ decimal characters have a range of 0 (060) to 9 (071).
+ <br>2. The value so represented.
+ .
+ <dt>Numeric Parameter:
+ <dd>A parameter that represents a number, designated by Pn.
+ .
+ <dt>Selective Parameter:
+ <dd>A parameter that selects a subfunction from a
+ specified set of subfunctions, designated by Ps. In general, a
+ control sequence with more than one selective parameter causes
+ the same effect as several control sequences, each with one
+ selective parameter, e.g., CSI Psa; Psb; Psc F is identical to
+ CSI Psa F CSI Psb F CSI Psc F.
+ .
+ <dt>Parameter String:
+ <dd>A string of parameters separated by a semicolon.
+ .
+ <dt>Default:
+ <dd> A function-dependent value that is assumed when no explicit
+ value, or a value of 0, is specified.
+ .
+ <dt>Final character:
+ <dd>A character whose bit combination terminates an escape or control sequence.
+ </dl>
+ .
+ <em>EXAMPLE</em>: Control sequence to turn off all character attributes, then
+ turn on underscore and blink attributes (<a href=#SGR>SGR</a>).
+ .
+ <center><img src="konsole1.gif"></center>
+ <p>
+ The octal representation of this string is:
+ <pre>
+ 033 0133 060 073 064 073 065 0155
+ &lt;ESC&gt; [ 0 ; 4 ; 5 m
+ </pre>
+ .
+ Alternate sequences which will accomplish the same thing:
+ .
+ <ul>
+ <li><code>&lt;ESC&gt;[;4;m </code>
+ <li><code>&lt;ESC&gt;[m </code>
+ <br><code>&lt;ESC&gt;[4m </code>
+ <br><code>&lt;ESC&gt;[5m </code>
+ <li><code>&lt;ESC&gt;[0;04;005m</code>
+ </ul>
+ .
+ <h4>DEC hacks</h4>
+ .
+ These form two groups of commands.
+ <p>
+ In one first the first character is a hash (<em>#</em>) and the following a digit.
+ This command group is used to denote VT100 specific instructions and can
+ safely be sonsidered to be obsolete. See
+ <a href=#DECALN>DECALN</a>,
+ <a href=#DECDHLB>DECDHLB</a>,
+ <a href=#DECDHLT>DECDHLT</a>,
+ <a href=#DECDWL>DECDWL</a> and
+ <a href=#DECSWL>DECSWL</a>.
+ <p>
+ The second one is used to specify character set mappings (see <a
+ href=#SCS>SCS</a>). A CSI instruction to do this is specified in ECMA,
+ and this should be used as a replacement.
+ .
+ <h4>XTERM hacks</h4>
+
+ConceptDB.html
+ <i>The following text is a collection of several sorts of definitions and
+ explainations. It is incomplete in many respects and a working draft.
+ </i>
+ .
+ <p>
+ All of the following control sequences are transmitted from the Host to
+ VT100 unless otherwise noted. All of the control sequences are a subset of
+ those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974.
+ <p>
+ The following text conforms to these formatting conventions:
+ <ul>
+ <li>Individual character literals are set in bold face. Ascii representation
+ is used throughout, so <b>ESC</b> means the binary value of 27 and
+ <b>[</b> a value of 91.
+ .
+ <li>Parameters are indicated by italic type faces.
+ <li>Parameter types usually are indicated as one of:
+ <table>
+ <tr><td><i>Pn </i></td><td>A string of digits representing a numerical value.</td></tr>
+ <tr><td><i>Ps </i></td><td>A character that selects an item from a list.</td></tr>
+ <tr><td><i>a-z</i></td><td>Any lowercase sequence of one or more
+ characters represent a value to be
+ entered (as in <i>Pn</i>), and the name in the
+ will be referred to in explanatory text.</td></tr>
+ </table>
+ .
+ <li>Spaces are used only to improve readability, they do not occure in the
+ control sequences unless otherwise indicated.
+ .
+ </ul>
+ .
+ <p>
+ The following attributes below have the following meaning:
+ <ul>
+ <li>VT100 - This code is known to VT100.
+ <li>ANSI - This code is defined by ANSI.
+ <li>DEC - This code is DEC private.
+ <li>Command - Sent from host to the terminal. <b>FIXME:</b>add Inquiery.
+ <li>Reply - Sent from terminal to the host (as response to an Inquiery).
+ <li>Event - Sent from terminal to the host (caused by a user activity).
+ <li>Mode - The entry is a mode.
+ </ul>
+
+Operations.html
+ <p>
+ <ul>
+ <li>Host to Terminal (Commands,Requests)
+ <ul>
+ <li>Commands
+ <ul>
+ <li>Character Display Operation
+ <li>Rendition related status
+ <li>Cursor
+ <li>Cursor related status
+ <li>Edit
+ <li>Miscellaneous
+ <li>General mode setting
+ <li>Miscellaneous status
+ <li>VT52
+ <li>Not implemented
+ <li>Ignored
+ </ul>
+ <li>Requests
+ </ul>
+ <li>Terminal to Host (Replies, Events)
+ <ul>
+ <li>Replies
+ <li>Events
+ </ul>
+ <li>Modes
+ <ul>
+ <li>Modes
+ </ul>
+ </ul>
+
+## Keyboard #################################################################
+
+KEYBOARD.head Keyboard Events
+KEYBOARD.emus KONSOLE
+KEYBOARD.sect Event
+KEYBOARD.text
+ FIXME. explain
+KEYBOARD.table.Codes
+ Key|Code:4
+ AltButton|"\033"
+ Return|MODE_NewLine ? "\r\n" : "\r"
+ Backspace|MODE_BsHack ? "\x7f" : "\x08"
+ Delete|MODE_BsHack ? "\033[3~" : "\x7f"
+ Up|!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A"
+ Down|!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B"
+ Right|!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C"
+ Left|!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D"
+ F1|Xterm? "\033[11~": "\033[[A"
+ F2|Xterm? "\033[12~": "\033[[B"
+ F3|Xterm? "\033[13~": "\033[[C"
+ F4|Xterm? "\033[14~": "\033[[D"
+ F5|Xterm? "\033[15~": "\033[[E"
+ F6|"\033[17~"
+ F7|"\033[18~"
+ F8|"\033[19~"
+ F9|"\033[20~"
+ F10|"\033[21~"
+ F11|"\033[23~"
+ F12|"\033[24~"
+ Home|"\033[7~"
+ End|"\033[8~"
+ Prior|"\033[5~"
+ Next|"\033[6~"
+ Insert|"\033[2~"
+ Control_Space|"\x00"
+ Control_Print|reportAnswerBack()
+ Ascii|Character
+
+MOUSE.head Mouse Events
+MOUSE.emus KONSOLE
+MOUSE.sect Event
+MOUSE.text
+ FIXME. explain
+
+CHA.head Cursor Horizontal Absolute
+CHA.emus ECMA KONSOLE
+CHA.sect Command.Cursor
+CHA.code CSI|G|{Pn}
+CHA.text
+ FIXME. explain
+CHA.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|setCursorX|p|see above
+
+DCH.head Delete Character
+DCH.emus ECMA KONSOLE
+DCH.sect Command.Delete
+DCH.code CSI|P|{Pn}
+DCH.text
+ FIXME. explain
+DCH.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|deleteChars|p|see above
+
+DECRST.head DEC Private Reset Mode
+DECRST.emus VT100 KONSOLE
+DECRST.sect Command.SetMode
+DECRST.code PRI|l|{Ps;...}
+DECRST.text
+ FIXME. explain
+DECRST.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 1|VT100|emu|resetMode|MODE_AppCuKeys|Meaning
+ 2|VT100|emu|resetMode|MODE_Ansi|Meaning
+ 3|VT100|emu|setColumns|80|Meaning
+ 4|VT100|emu|Ignored||Meaning
+ 5|VT100|scr|resetMode|MODE_Screen|Meaning
+ 6|VT100|scr|resetMode|MODE_Origin|Meaning
+ 7|VT100|scr|resetMode|MODE_Wrap|Meaning
+ 8|VT100|emu|Ignored||Meaning
+ 9|VT100|emu|Ignored||Meaning
+ 25|VT100|emu|resetMode|MODE_Cursor|Meaning
+ 47|xterm|emu|resetMode|MODE_AppScreen|Meaning
+ 1000|xterm|emu|resetMode|MODE_Mouse1000|Meaning
+ 1001|xterm|emu|Ignored||Meaning
+ 1047|xterm|emu|resetMode|MODE_AppScreen|Meaning
+ 1048|xterm|scr|restoreCursor||Meaning
+
+DECSET.head DEC Private Set Mode
+DECSET.emus VT100 KONSOLE
+DECSET.sect Command.SetMode
+DECSET.code PRI|h|{Ps;...}
+DECSET.text
+ FIXME. explain
+DECSET.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 1|VT100|emu|setMode|MODE_AppCuKeys|Meaning
+ 3|VT100|emu|setColumns|132|Meaning
+ 4|VT100|emu|Ignored||Meaning
+ 5|VT100|scr|setMode|MODE_Screen|Meaning
+ 6|VT100|scr|setMode|MODE_Origin|Meaning
+ 7|VT100|scr|setMode|MODE_Wrap|Meaning
+ 8|VT100|emu|Ignored||Meaning
+ 9|VT100|emu|Ignored||Meaning
+ 25|VT100|emu|setMode|MODE_Cursor|Meaning
+ 47|xterm|emu|setMode|MODE_AppScreen|Meaning
+ 1000|xterm|emu|setMode|MODE_Mouse1000|Meaning
+ 1001|xterm|emu|Ignored||Meaning
+ 1047|xterm|emu|setMode|MODE_AppScreen|Meaning
+ 1048|xterm|scr|saveCursor||Meaning
+
+DL.head Delete Line
+DL.emus ECMA KONSOLE
+DL.sect Command.Delete
+DL.code CSI|M|{Pn}
+DL.text
+ FIXME. explain
+DL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|konsole|scr|deleteLines|p|see above
+
+ECH.head Erase Character
+ECH.emus ECMA KONSOLE
+ECH.sect Command.Erase
+ECH.code CSI|X|{Pn}
+ECH.text
+ FIXME. explain
+ECH.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|konsole|scr|eraseChars|p|see above
+
+ICH.head Insert Character
+ICH.emus ECMA KONSOLE
+ICH.sect Command.Insert
+ICH.code CSI|@|{Pn}
+ICH.text
+ FIXME. explain
+ICH.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|konsole|scr|insertChars|p|see above
+
+IL.head Insert Line
+IL.emus KONSOLE
+IL.sect Command.Insert
+IL.code CSI|L|{Pn}
+IL.text
+ FIXME. explain
+IL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|insertLines|p|see above
+
+LS2.head Lock Shift Two
+LS2.emus KONSOLE
+LS2.sect Command.RenderMode
+LS2.code ESC|n|
+LS2.text
+ FIXME. explain
+LS2.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|useCharset|2|see above
+
+LS3.head Lock Shift Three
+LS3.emus KONSOLE
+LS3.sect Command.RenderMode
+LS3.code ESC|o|
+LS3.text
+ FIXME. explain
+LS3.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|useCharset|3|see above
+
+MC.head Media Copy
+MC.emus ECMA VT100
+MC.sect Command.NoImp
+MC.code CSI|i|{Pn}
+MC.text
+ FIXME. explain
+MC.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|emu|Ignored||Meaning
+
+VPA.head Vertical Position Absolute
+VPA.emus ECMA KONSOLE
+VPA.sect Command.Cursor
+VPA.code CSI|d|{Pn}
+VPA.text
+ FIXME. explain
+VPA.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|xterm|scr|setCursorY|p|see above
+
+XTERESTORE.head XTerm Private Restore Mode
+XTERESTORE.emus XTERM KONSOLE
+XTERESTORE.sect Command.SetMode
+XTERESTORE.code PRI|r|{Ps;...}
+XTERESTORE.text
+ FIXME. explain
+XTERESTORE.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 1|xterm|emu|restoreMode|MODE_AppCuKeys|Meaning
+ 6|xterm|scr|restoreMode|MODE_Origin|Meaning
+ 7|xterm|scr|restoreMode|MODE_Wrap|Meaning
+ 1000|xterm|emu|restoreMode|MODE_Mouse1000|Meaning
+ 1001|xterm|emu|Ignored||Meaning
+
+XTESAVE.head XTerm Private Save Mode
+XTESAVE.emus XTERM KONSOLE
+XTESAVE.sect Command.SetMode
+XTESAVE.code PRI|s|{Ps;...}
+XTESAVE.text
+ FIXME. explain
+XTESAVE.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 1|xterm|emu|saveMode|MODE_AppCuKeys|Meaning
+ 6|xterm|scr|saveMode|MODE_Origin|Meaning
+ 7|xterm|scr|saveMode|MODE_Wrap|Meaning
+ 1000|xterm|emu|saveMode|MODE_Mouse1000|Meaning
+ 1001|xterm|emu|Ignored||Meaning
+
+NUL.head Null
+NUL.emus VT100 XTERM Linux KONSOLE
+NUL.sect Command.Ignored
+NUL.code CTL|0x00|
+NUL.text
+ NUL is used as media- or time-fill. It is ignored by Konsole, but may
+ be sensible for devices which requiere a recognizable amount of time
+ to complete some commands (e.g. form feed on a non-buffering printing
+ device).
+NUL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+SOH.head Start Of Heading
+SOH.emus VT100 XTERM Linux KONSOLE
+SOH.sect Command.Ignored
+SOH.code CTL|0x01|
+SOH.text
+ Ignored
+SOH.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+STX.head Start Of Text
+STX.emus VT100 XTERM Linux KONSOLE
+STX.sect Command.Ignored
+STX.code CTL|0x02|
+STX.text
+ Ignored
+STX.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+ETX.head End Of Text
+ETX.emus VT100 XTERM Linux KONSOLE
+ETX.sect Command.Ignored
+ETX.code CTL|0x03|
+ETX.text
+ Ignored
+ETX.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+EOT.head End Of Transmission
+EOT.emus VT100 XTERM Linux KONSOLE
+EOT.sect Command.Ignored
+EOT.code CTL|0x04|
+EOT.text
+ Ignored
+EOT.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+ENQ.head Enquiry
+ENQ.emus VT100
+ENQ.sect Command.Request
+ENQ.code CTL|0x05|
+ENQ.text
+ Transmit the ANSWERBACK message. The answerback message can be loaded
+ in SET-UP B (i.e. is a configurable string).
+ENQ.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|reportAnswerBack||see above
+
+ACK.head Acknowledge
+ACK.emus VT100 XTERM Linux KONSOLE
+ACK.sect Command.Ignored
+ACK.code CTL|0x06|
+ACK.text
+ Ignored
+ACK.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+BEL.head Bell
+BEL.emus VT100
+BEL.sect Command
+BEL.code CTL|0x07|
+BEL.text
+ Sound bell
+BEL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|gui|Bell||see above
+
+BS.head Back Space
+BS.emus VT100
+BS.sect Command.Cursor
+BS.code CTL|0x08|
+BS.text
+ Move cursor to the left one position, unless it is at the left
+ margin, in which case no action is taken.
+BS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|BackSpace||see above
+
+HT.head Horizontal Tabulation
+HT.emus VT100
+HT.sect Command.Cursor
+HT.code CTL|0x09|
+HT.text
+ Move cursor to the next tab stop, or to the right margin
+ if no further tabs are set.
+HT.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|Tabulate||see above
+
+LF.head Line Feed
+LF.emus VT100
+LF.sect Command.Cursor
+LF.code CTL|0x0a|
+LF.text
+ Causes either a line feed or new line operation (See \ref:LNM.)
+LF.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|NewLine||see above
+
+VT.head Vertical Tabulation
+VT.emus VT100
+VT.sect Command.Cursor
+VT.code CTL|0x0b|
+VT.text
+ Same as \ref:LF.
+VT.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|NewLine||see above
+
+FF.head Form Feed
+FF.emus VT100
+FF.sect Command.Cursor
+FF.code CTL|0x0c|
+FF.text
+ Same as \ref:LF.
+FF.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|NewLine||see above
+
+CR.head Carriage Return
+CR.emus VT100
+CR.sect Command.Cursor
+CR.code CTL|0x0d|
+CR.text
+ Move the cursor to the left margin of the current line.
+CR.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|Return||see above
+
+LS0.head Lock Shift Zero (Shift Out - SO)
+LS0.emus VT100
+LS0.sect Command.RenderMode
+LS0.code CTL|0x0e|
+LS0.text
+ Invoke the G1 character set, as designated by the \ref:SCS control sequence.
+LS0.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|useCharset|1|see above
+
+LS1.head Lock Shift One (Shift In - SI)
+LS1.emus VT100
+LS1.sect Command.RenderMode
+LS1.code CTL|0x0f|
+LS1.text
+ Invoke the G0 character set, as selected by the <ESC>( sequence.
+LS1.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|useCharset|0|see above
+
+DLE.head Data Link Escape
+DLE.emus VT100 XTERM Linux KONSOLE
+DLE.sect Command.Ignored
+DLE.code CTL|0x10|
+DLE.text
+ Ignored
+DLE.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DC1.head Device Control One
+DC1.emus VT100
+DC1.sect Ignored
+DC1.code CTL|0x11|
+DC1.text
+ Causes terminal to resume transmission (XON).
+DC1.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DC2.head Device Control Two
+DC2.emus VT100 XTERM Linux KONSOLE
+DC2.sect Command.Ignored
+DC2.code CTL|0x12|
+DC2.text
+ Ignored
+DC2.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DC3.head Device Control Three
+DC3.emus VT100 XTERM Linux KONSOLE
+DC3.sect Command.Ignored
+DC3.code CTL|0x13|
+DC3.text
+ Causes terminal to stop transmitting all codes except XOFF and XON (XOFF).
+DC3.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DC4.head Device Control Four
+DC4.emus VT100 XTERM Linux KONSOLE
+DC4.sect Command.Ignored
+DC4.code CTL|0x14|
+DC4.text
+ Ignored
+DC4.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+NAK.head Negative Acknowledge
+NAK.emus VT100 XTERM Linux KONSOLE
+NAK.sect Command.Ignored
+NAK.code CTL|0x15|
+NAK.text
+ Ignored
+NAK.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+SYN.head Synchronous Idle
+SYN.emus VT100 XTERM Linux KONSOLE
+SYN.sect Command.Ignored
+SYN.code CTL|0x16|
+SYN.text
+ Ignored
+SYN.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+ETB.head End Of Transmission Block
+ETB.emus VT100 XTERM Linux KONSOLE
+ETB.sect Command.Ignored
+ETB.code CTL|0x17|
+ETB.text
+ Ignored
+ETB.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+CAN.head Cancel
+CAN.emus VT100
+CAN.sect Command
+CAN.code CTL|0x18|
+CAN.text
+ If sent during a control sequence, the sequence id immediately
+ terminated and not executed. It also causes the error character
+ (checkerboard) to be displayed.
+CAN.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|ShowCharacter|2|see above
+
+EM.head End Of Medium
+EM.emus VT100 XTERM Linux KONSOLE
+EM.sect Command.Ignored
+EM.code CTL|0x19|
+EM.text
+ Ignored
+EM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+SUB.head Substitute
+SUB.emus VT100
+SUB.sect Command
+SUB.code CTL|0x1a|
+SUB.text
+ Same as \ref:CAN.
+SUB.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|ShowCharacter|2|see above
+
+ESC.head Escape
+ESC.emus ECMA VT100
+ESC.sect Ignored
+ESC.code CTL|0x1b|
+ESC.text
+ Introduces a control sequence.
+ESC.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+FS.head File Separator (IS4 - Information Separator Four)
+FS.emus VT100 XTERM Linux KONSOLE
+FS.sect Command.Ignored
+FS.code CTL|0x1c|
+FS.text
+ Ignored
+FS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+GS.head Group Separator (IS3 - Information Separator Three)
+GS.emus VT100 XTERM Linux KONSOLE
+GS.sect Command.Ignored
+GS.code CTL|0x1d|
+GS.text
+ Ignored
+GS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+RS.head Record Separator (IS2 - Information Separator Two)
+RS.emus VT100 XTERM Linux KONSOLE
+RS.sect Command.Ignored
+RS.code CTL|0x1e|
+RS.text
+ Ignored
+RS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+US.head Unit Separator (IS1 - Information Separator One)
+US.emus VT100 XTERM Linux KONSOLE
+US.sect Command.Ignored
+US.code CTL|0x1f|
+US.text
+ Ignored
+US.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DEL.head Delete Character
+DEL.emus VT100
+DEL.sect Command.Ignored
+DEL.code DEL||
+DEL.text
+ Ignored
+
+CPR.head Cursor Position Report
+CPR.emus ECMA VT100
+CPR.sect Reply
+CPR.code CSI|R|{Pn;Pn}
+CPR.dflt 1 1
+CPR.text
+ The CPR sequence reports the active position by means of the
+ parameters. This sequence has two parameter values, the first
+ specifying the line and the second specifying the column. The default
+ condition with no parameters present, or parameters of 0, is equivalent
+ to a cursor at home position.
+ .
+ The numbering of the lines depends upon the state of the Origin Mode
+ (\ref:DECOM).
+ .
+ This control sequence is sent in reply to a device status report
+ (\ref:DSRREQ) command sent from the host.
+
+CUB.head Cursor Backward
+CUB.emus ECMA VT100
+CUB.sect Command.Cursor Event
+CUB.code CSI|D|{Pn}
+CUB.dflt 1
+CUB.text
+ Moves the cursor to the left. The distance moved is
+ determined by the parameter. If the parameter missing, zero, or one,
+ the cursor is moved one position. The cursor cannot be moved past the
+ left margin.
+CUB.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|cursorLeft|p|see above
+
+CUD.head Cursor Down
+CUD.emus ECMA VT100
+CUD.sect Command.Cursor Event
+CUD.code CSI|B|{Pn}
+CUD.dflt 1
+CUD.text
+ Moves the cursor down a number of lines as specified in the parameter
+ without changing columns. The cursor cannot be moved past the bottom
+ margin.
+CUD.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|cursorDown|p|see above
+
+CUF.head Cursor Foreward
+CUF.emus ECMA VT100
+CUF.sect Command.Cursor Event
+CUF.code CSI|C|{Pn}
+CUF.dflt 1
+CUF.text
+ Moves the cursor to the right a number of positions
+ specified in the parameter. The cursor cannot be moved past the right
+ margin.
+CUF.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|cursorRight|p|see above
+
+CUP.head Cursor Position
+CUP.emus ECMA VT100
+CUP.sect Command.Cursor
+CUP.code CSI|H|{Pn;Pn}
+CUP.dflt 1 1
+CUP.text
+ Moves the curor to the position specified by the
+ parameters. The first parameter specifies the line, and the second
+ specifies the column. A value of zero for either line or column moves
+ the cursor to the first line or column in the display. The default
+ string (<ESC>H) homes the cursor. In the VT100, this command behaves
+ identically to it's format effector counterpart, \ref:HVP.
+ .
+ The numbering of the lines depends upon the state of the Origin Mode
+ (\ref:DECOM).
+CUP.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|setCursorYX|p,q|see above
+
+CUU.head Cursor Up
+CUU.emus ECMA VT100
+CUU.sect Command.Cursor Event
+CUU.code CSI|A|{Pn}
+CUU.dflt 1
+CUU.text
+ Moves the cursor up without changing columns. The cursor is moved up a
+ number of lines as indicated by the parameter. The cursor cannot be
+ moved beyond the top margin.
+CUU.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|cursorUp|p|see above
+
+DA.head Device Attributes Request
+DA.emus ECMA VT100
+DA.sect Command.Request
+DA.code CSI|c|{Pn}
+DA.dflt 0
+DA.text
+ The host requests the VT100 to send a DA sequence to indentify
+ itself. This is done by sending the DA sequence with no parameters,
+ or with a parameter of zero.
+ The device replies by (\ref:DECDA).
+DA.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|reportTerminalType||see above
+
+DECDA.head Device Attributes Reply
+DECDA.emus VT100
+DECDA.sect Reply
+DECDA.code PRI|c|{1;Pn}
+DECDA.text
+ Response to the \ref:DA request (VT100 to host) is generated
+ by the VT100 as a DECDA control sequence with the numeric parameters as
+ follows:
+DECDA.table.Pn
+ Pn|Meaning:4
+ 0|No options
+ 1|Processor Option (STP)
+ 2|Advanced Video Option (AVO)
+ 3|AVO and STP
+ 4|Graphics Option (GPO)
+ 5|GPO and STP
+ 6|GPO and AVO
+
+DECALN.head Screen Alignment Display
+DECALN.emus VT100
+DECALN.sect Command
+DECALN.code HSH|8|
+DECALN.text
+ Causes the VT100 to fill it's screen with
+ uppercase Es for screen focus and alignment.
+DECALN.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|helpAlign||see above
+
+DECANM.head ANSI/VT52 Mode
+DECANM.emus VT100
+DECANM.sect Mode
+DECANM.text
+ This is a private parameter to the \ref:SM and \ref:RM
+ control sequences. The
+ reset state causes only VT52 compatible escape sequences to be
+ recognized. The set state causes only ANSI compatible escape sequences
+ to be recognized. See the entries for \ref:MODES, \ref:SM, \ref:RM
+ and \ref:VT52ANSI.
+
+DECARM.head Auto Repeat Mode
+DECARM.emus VT100
+DECARM.sect Mode
+DECARM.text
+ This is a private parameter to the \ref:SM and \ref:RM
+ control sequences. The
+ reset state causes no keyboard keys to auto-repeat, the set state
+ causes most of them to. See \ref:MODES, \ref:SM and \ref:RM.
+
+DECAWM.head Autowrap Mode
+DECAWM.emus VT100
+DECAWM.sect Mode
+DECAWM.text
+ This is a private parameter to the \ref:SM and \ref:RM
+ control sequences. The
+ reset state prevents the cursor from moving when characters are
+ received while at the right margin. The set state causes these
+ characters to advance to the next line, causing a scroll up if required
+ and permitted. See \ref:MODES, \ref:SM, and
+ \ref:RM.
+
+DECCKM.head Cursor Keys Mode
+DECCKM.emus VT100
+DECCKM.sect Mode
+DECCKM.text
+ This is a private parameter to the \ref:SM and \ref:RM
+ control requences. This
+ mode is only effective when the terminal is in keypad application mode
+ (\ref:DECKPAM) and the ANSI/VT52 mode (\ref:DECANM)
+ is set. Under these
+ conditions, if this mode is reset, the cursor keys will send ANSI
+ cursor control commands. If setm the cursor keys will send application
+ function commands. See \ref:MODES, \ref:RM, and
+ \ref:SM.
+
+DECCOLM.head Column Mode
+DECCOLM.emus VT100
+DECCOLM.sect Mode
+DECCOLM.text
+ This is a private parameter to the \ref:SM and \ref:RM
+ control sequences. The
+ reset state causes an 80 column screen to be used. The set state
+ causes a 132 column screen to be used. See \ref:MODES,
+ \ref:RM, and \ref:SM.
+
+DECDHLT.head Double Height Line (Top)
+DECDHLT.emus VT100
+DECDHLT.sect Command.NoImp
+DECDHLT.code HSH|3|
+DECDHLT.text
+ Cause the line containing the cursor to become the top half of a
+ double-height, double width line.
+ If the line was single width single height, all
+ characters to the right of the center of the screen will be lost. The
+ cursor remains over the same character position, unless it would be to
+ the right of the right margin, in which case it is moved to the right
+ margin.
+ .
+ \ref:DECDHLB and \ref:DECDHLT
+ should be used in pairs on adjacent lines with each line containing the
+ same character string.
+DECDHLT.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DECDHLB.head Double Height Line (Bottom)
+DECDHLB.emus VT100
+DECDHLB.sect Command.NoImp
+DECDHLB.code HSH|4|
+DECDHLB.text
+ This sequence cause the line containing the cursor to become the
+ bottom half of a double-height, double width line.
+ If the line was single width single height, all
+ characters to the right of the center of the screen will be lost. The
+ cursor remains over the same character position, unless it would be to
+ the right of the right margin, in which case it is moved to the right
+ margin.
+ .
+ \ref:DECDHLB and \ref:DECDHLT
+ should be used in pairs on adjacent lines with each line containing the
+ same character string.
+DECDHLB.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DECDWL.head Double Width Line
+DECDWL.emus VT100
+DECDWL.sect Command.NoImp
+DECDWL.code HSH|6|
+DECDWL.text
+ This causes the line that contains the cursor to become double-width
+ single height. If the line was single width, all characters ro the
+ right of the center of the screen will be lost. The cursor remains
+ over the same character position, unless it would be to the right of
+ the right margin, in which case it is moved to the right margin.
+DECDWL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DECID.head Identify Terminal
+DECID.emus VT100
+DECID.sect Command.Request
+DECID.code ESC|Z|
+DECID.text
+ This sequence causes the same response as the \ref:DA sequence. This
+ sequence will not be supported in future models.
+DECID.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|reportTerminalType||see above
+
+DECINLM.head Interlace Mode
+DECINLM.emus VT100
+DECINLM.sect Mode
+DECINLM.text
+ This is a private parameter to the \ref:RM and \ref:SM
+ control sequences. The
+ reset state (non-interlace) causes the video processor to display 240
+ scan lines per frame. The set state causes the video processor to
+ display 480 scan lines per screen. See \ref:MODES,
+ \ref:RM, and \ref:SM.
+
+DECKPAM.head Keypad Application Mode
+DECKPAM.emus VT100
+DECKPAM.sect Command.Mode Mode
+DECKPAM.code ESC|=|
+DECKPAM.text
+ The auxiliary keypad keys will transmit control sequences.
+DECKPAM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|setMode|MODE_AppKeyPad|see above
+
+DECKPNM.head Keypad Numeric Mode
+DECKPNM.emus VT100
+DECKPNM.sect Mode Command.Mode
+DECKPNM.code ESC|>|
+DECKPNM.text
+ The auxiliary keypad keys will send ASCII codes corresponding to the
+ characters engraved on their keys.
+DECKPNM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|resetMode|MODE_AppKeyPad|see above
+
+DECLL.head Load LEDs
+DECLL.emus VT100
+DECLL.sect Command.NoImp
+DECLL.code CSI|q|{Ps;...}
+DECLL.dflt 0
+DECLL.text
+ Load the four programmable LEDs on the keyboard according to the parameter(s).
+DECLL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|emu|Ignore||Clear all LEDs
+ 1|VT100|emu|Ignore||Light LED 1
+ 2|VT100|emu|Ignore||Light LED 2
+ 3|VT100|emu|Ignore||Light LED 3
+ 4|VT100|emu|Ignore||Light LED 4
+
+DECOM.head Origin Mode
+DECOM.emus VT100
+DECOM.sect Mode
+DECOM.text
+ This is a private parameter to \ref:SM and \ref:RM
+ control sequences. The reset
+ state causes the origin (or home position) to be the upper left
+ character position of the screen. Line and column numbers are,
+ therefore, independent of current margin settings. The cursor may be
+ positioned outside the margins with a cursor position (\ref:CUP) or
+ horizontal and vertical position (\ref:HVP) control.
+ .
+ The set state causes the origin to be at the upper left character
+ position within the current margins. Line and column numbers are,
+ therefore, relative to the current margin settings. The cursor cannot
+ be positioned outside of the margins.
+ .
+ The cursor is moved to the new home position when this mode is set or
+ reset. Lines and columns are numbered consecutively, with the origin
+ being line 1, column 1.
+
+DECRC.head Restore Cursor
+DECRC.emus VT100
+DECRC.sect Command.CursMode
+DECRC.code ESC|8|
+DECRC.text
+ This sequence causes the previously saved cursor position, graphic
+ rendition, and character set to be restored.
+DECRC.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|restoreCursor||see above
+
+DECREPTPARM.head Report Terminal Parameters
+DECREPTPARM.emus ECMA VT100
+DECREPTPARM.sect Reply
+DECREPTPARM.code CSI|x|{sol;par;nbits;xspd;rspd;cmul;flags}
+DECREPTPARM.text
+ This sequence is generated by the VT100 to notify the host of the
+ status of selected terminal parameters. The status sequence may be
+ sent when requested by the host (via \ref:DECREQTPARM)
+ or at the terminal's
+ discretion. On power up or reset, the VT100 is inhibited from sending
+ unsolicited reports.
+ .
+ The meanings of the sequence parameters are:
+DECREPTPARM.table.sol
+ sol|Meaning:4
+ 1|This message is a report.
+ 2|This message is a report, and the terminal is only reporting on request.
+DECREPTPARM.table.par
+ par|Meaning:4
+ 1|No parity set
+ 4|Parity set and odd
+ 5|Parity set and even
+DECREPTPARM.table.nbits
+ nbits|Meaning:4
+ 1|8 bits per character
+ 2|7 bits per character
+DECREPTPARM.table.speed(xspd,rspd)
+ speed|Meaning (xspd,rspd):4
+ 0|Speed set to 50 bps
+ 8|Speed set to 75 bps
+ 16|Speed set to 110 bps
+ 24|Speed set to 134.5 bps
+ 32|Speed set to 150 bps
+ 40|Speed set to 200 bps
+ 48|Speed set to 300 bps
+ 56|Speed set to 600 bps
+ 64|Speed set to 1200 bps
+ 72|Speed set to 1800 bps
+ 80|Speed set to 2000 bps
+ 88|Speed set to 2400 bps
+ 96|Speed set to 3600 bps
+ 104|Speed set to 4800 bps
+ 112|Speed set to 9600 bps
+ 120|Speed set tp 19200 bps
+DECREPTPARM.table.cmul
+ cmul|Meaning:4
+ 1|The bit rate multiplier is 16
+DECREPTPARM.table.flags
+ flags|Meaning:4
+ 0-15|This value communicates the four switch values in block 5 of SET-UP B, which are only visible to the user when an STP option is installed.
+
+DECREQTPARM.head Request Terminal Parameters
+DECREQTPARM.emus ECMA VT100
+DECREQTPARM.sect Command.Request
+DECREQTPARM.code CSI|x|{Ps}
+DECREQTPARM.text
+ The host sends this sequence to request the VT100 to send a
+ \ref:DECREPTPARM
+ sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be
+ allowed to send unsolicited \ref:DECREPTPARMs.
+ These reports will be generated each time the terminal exits the SET-UP mode.
+ If {Ps} is 1, then the terminal will only generate
+ \ref:DECREPTPARMs in response to a request.
+DECREQTPARM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|emu|reportTerminalParms|2|Meaning
+ 1|VT100|emu|reportTerminalParms|3|Meaning
+
+DECSC.head Save Cursor
+DECSC.emus VT100
+DECSC.sect Command.CursMode
+DECSC.code ESC|7|
+DECSC.text
+ Causes the cursor position, graphic rendition, and character set to be
+ saved. (See \ref:DECRC)
+DECSC.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|saveCursor||see above
+
+DECSCLM.head Scrolling Mode
+DECSCLM.emus VT100
+DECSCLM.sect Mode
+DECSCLM.text
+ This is a private parameter to \ref:RM and \ref:SM
+ control sequences. The reset
+ state causes scrolls to "jump" instantaneuously one line at a time.
+ The set state causes the scrolls to be "smooth", and scrolls at a
+ maximum rate of siz lines/sec. See \ref:MODES,
+ \ref:RM, and \ref:SM.
+
+DECSCNM.head Screen Mode
+DECSCNM.emus VT100
+DECSCNM.sect Mode
+DECSCNM.text
+ This is a private parameter to \ref:RM and \ref:SM
+ control sequences. The reset
+ state causes the screen to be black with white characters; the set
+ state causes the screen to be white with black characters.
+ See \ref:MODES, \ref:RM, and \ref:SM.
+
+DECSTBM.head Set Top and Bottom Margins
+DECSTBM.emus VT100
+DECSTBM.sect Command.CursMode
+DECSTBM.code CSI|r|{Pn;Pn}
+DECSTBM.dflt 1 ScreenLines
+DECSTBM.text
+ This sequence sets the top and bottom margins to define the scrolling
+ region. The first parameter is the line number of the first line in
+ the scrolling region; the second parameter is the line number of the
+ bottom line of the scrolling region.
+ .
+ Default is the entire screen (no margins).
+ The minimum region allowed is two lines, i.e., the top line
+ must be less than the bottom. The cursor is placed in the home
+ position (See \ref:DECOM).
+DECSTBM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|setMargins|p,q|see above
+
+DECSWL.head Single-width Line
+DECSWL.emus VT100
+DECSWL.sect Command.NoImp
+DECSWL.code HSH|5|
+DECSWL.text
+ This causes the line which contains the cursor to become single-width,
+ single-height. The cursor remains on the same character position.
+ This is the default condition for all new lines on the screen.
+DECSWL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+
+DECTST.head Invoke Confidence Test
+DECTST.emus ECMA VT100
+DECTST.sect Command
+DECTST.code CSI|y|{2;Ps}
+DECTST.text
+ Ps is the parameter indicating the test to be done. It is computed by
+ taking the weight indicated for each desired test and adding them
+ together. If Ps is 0, no test is performed but the VT100 is reset.
+DECTST.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|Ignored||see above
+DECTST.table.Weight
+ Weight|Meaning:4
+ 1|POST (ROM checksum, RAM NVR, keyboardm and AVO)
+ 2|Data Loop Back (Loopback connector required)
+ 3|EIA Modem Control Test (Loopback connector req.)
+ 4|Repeat Testing until failure
+
+DSRREQ.head Device Status Report
+DSRREQ.emus ECMA VT100
+DSRREQ.sect Command.Request
+DSRREQ.code CSI|n|{Ps}
+DSRREQ.text
+ Requests status of the VT100 according to the following parameters.
+DSRREQ.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 5|VT100|emu|reportStatus||Report Status (using a \ref:DSRREP control sequence)
+ 6|VT100|emu|reportCursorPosition||Report Active Position (using a \ref:CPR sequence)
+
+DSRREP.head Device Status Report Reply
+DSRREP.emus ECMA VT100
+DSRREP.sect Reply
+DSRREP.code CSI|n|{Status}
+DSRREP.text
+ Reports the general status of the VT100 according to the
+ following parameters.
+ .
+ DSRREP with a parameter of 0 or 3 is always sent as a response to a
+ requesting \ref:DSRREQ with a parameter of 5.
+DSRREP.table.Status
+ Status|Meaning:3
+ 0|Ready, no faults detected
+ 3|Malfunction detected
+
+ED.head Erase in Display
+ED.emus ECMA VT100
+ED.sect Command.Erase
+ED.code CSI|J|{Ps}
+ED.dflt 0
+ED.text
+ This sequence erases some or all of the characters in the display
+ according to the parameter. Any complete line erased by this sequence
+ will return that line to single width mode.
+ED.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|scr|clearToEndOfScreen||Erase from the cursor to the end of the screen.
+ 1|VT100|scr|clearToBeginOfScreen||Erase from the start of the screen to the cursor.
+ 2|VT100|scr|clearEntireScreen||Erase the entire screen.
+
+EL.head Erase in Line
+EL.emus ECMA VT100
+EL.sect Command.Erase
+EL.code CSI|K|{Ps}
+EL.dflt 0
+EL.text
+ Erases some or all characters in the active line, according to the
+ parameter.
+EL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|scr|clearToEndOfLine||Erase from cursor to the end of the line.
+ 1|VT100|scr|clearToBeginOfLine||Erase from the start of the line to the cursor.
+ 2|VT100|scr|clearEntireLine||Erase the entire line.
+
+HTS.head Horizontal Tab Set
+HTS.emus ECMA VT100
+HTS.sect Command.CursMode
+HTS.code ESC|H|
+HTS.text
+ Set a tab stop at the current cursor position.
+HTS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|changeTabStop|TRUE|see above
+
+HVP.head Horizontal and Vertical Position
+HVP.emus ECMA VT100
+HVP.sect Command.Cursor
+HVP.code CSI|f|{Pn;Pn}
+HVP.dflt 1 1
+HVP.text
+ Moves the cursor to the position specified by the parameters. The
+ first parameter specifies the line, and the second specifies the
+ column. A parameter of 0 or 1 causes the active position to move to
+ the first line or column in the display. In the VT100, this control
+ behaves identically with it's editor counterpart, \ref:CUP.
+ The numbering of hte lines depends upon the state of the Origin Mode
+ (\ref:DECOM).
+HVP.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|setCursorYX|p,q|see above
+
+IND.head Index
+IND.emus ECMA VT100
+IND.sect Command.Cursor
+IND.code ESC|D|
+IND.text
+ This sequence causes the cursor to move downward one line without
+ changing the column. If the cursor is at the bottom margin, a scroll
+ up is performed.
+IND.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|index||see above
+
+LNM.head Line Feed/New Line Mode
+LNM.emus ECMA VT100
+LNM.sect Mode
+LNM.text
+ This is a parameter to \ref:SM and \ref:RM control sequences.
+ The reset state
+ causes the interpretation of the \ref:LF character to imply only vertical
+ movement of the cursor and causes the RETURN key to send the single
+ code \ref:CR.
+ .
+ The set state causes the \ref:LF character to imply movement
+ to the first position of the following line, and causes the RETURN key
+ to send the code pair \ref:CR \ref:LF. This is the New Line option.
+ .
+ This mode does not affect the Index (\ref:IND) or the next line
+ (\ref:NEL) format effectors.
+
+NEL.head Next Line
+NEL.emus ECMA VT100
+NEL.sect Command.Cursor
+NEL.code ESC|E|
+NEL.text
+ This causes the cursor to move to the first position of the next line
+ down. If the cursor is on the bottom line, a scroll is performed.
+NEL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|NextLine||see above
+
+PRINT.head Printable Characters
+PRINT.emus ECMA VT100
+PRINT.sect Command.Display
+PRINT.code PRN||{0x20..0x7e,0xa0..0xff}
+PRINT.text
+ Printable characters are basically displayed. They my cause a line
+ wrap when the cursor is already located at the end of the line.
+ .
+ The VT100 has a unique way to do this by producing a line wrap before
+ the character would be displayed on the next line. This feature allows
+ to print at the rightmost column without producing an implicit line feed.
+PRINT.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|ShowCharacter|p|see above
+
+RI.head Reverse Index
+RI.emus ECMA VT100
+RI.sect Command.Cursor
+RI.code ESC|M|
+RI.text
+ Move the cursor up one line without changing columns. If the cursor is
+ on the top line, a scroll down is performed.
+RI.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|scr|reverseIndex||see above
+
+RIS.head Reset to Initial State
+RIS.emus ECMA VT100
+RIS.sect Command.Mode
+RIS.code ESC|c|
+RIS.text
+ Resets the VT100 to the state is has upon power up. This also causes
+ the execution of the POST and signal INT H to be asserted briefly.
+RIS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|resetTerminal||see above
+
+RM.head Reset Mode
+RM.emus ECMA VT100
+RM.sect Command.SetMode
+RM.code CSI|l|{Ps;...}
+RM.text
+ Resets one or more VT100 modes as specified by each selective parameter
+ in the parameter string. Each mode to be reset is specified by a
+ separate parameter. See \ref:MODES and \ref:SM.
+RM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 4|xterm|scr|resetMode|MODE_Insert|Meaning
+ 20|VT100|emu|resetMode|MODE_NewLine|\ref:LNM
+
+SCS.head Select Character Set
+SCS.emus ECMA VT100
+SCS.sect Command.RenderMode
+SCS.code SCS||{Pc;Cs}
+SCS.text
+ The appropriate D0 and G1 character sets are designated from one of the
+ five possible sets. The G0 and G1 sets are invoked by the characters
+ \ref:LS1 and \ref:LS0, respectively.
+ .
+ The United Kingdom and ASCII sets conform to the "ISO international
+ register of character sets to be used with escape sequences". The
+ other sets are private character sets. Special graphics means that the
+ graphic characters fpr the codes 0137 to 0176 are replaced with other
+ characters. The specified character set will be used until another SCS
+ is received.
+SCS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT100|emu|setCharset|p-'(',q|see above
+SCS.table.Pc
+ Pc|Character Selection:4
+ (|Select G0 Set
+ )|Select G1 Set
+SCS.table.Cs
+ Cs|Character Set:4
+ A|United Kingdom Set
+ B|ASCII Set
+ 0|Special Graphics
+ 1|Alternate Character ROM (Standard Character Set)
+ 2|Alternate Character ROM (Special Graphics)
+
+SGR.head Select Graphic Rendition
+SGR.emus ECMA VT100
+SGR.sect Command.RenderMode
+SGR.code CSI|m|{Ps;...}
+SGR.text
+ Invoke the graphic rendition specified by the parameter(s). All
+ following characters transmitted to the VT100 are rendered according
+ to the parameter(s) until the next occurrence of an SGR.
+ .
+ All other parameter values are ignored.
+ .
+ Without the Advanced Video Option, only one type of character attribute
+ is possible, as determined by the cursor selection; in that case
+ specifying either underscore or reverse will activate the currently
+ selected attribute.
+SGR.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|scr|setDefaultRendition||Attributes Off
+ 1|VT100|scr|setRendition|RE_BOLD|Bold or increased intensity
+ 4|VT100|scr|setRendition|RE_UNDERLINE|Underscore
+ 5|VT100|scr|setRendition|RE_BLINK|Blink
+ 7|VT100|scr|setRendition|RE_REVERSE|Negative (reverse) image
+ 10|konsole|emu|Ignored||Meaning
+ 11|konsole|emu|Ignored||Meaning
+ 12|konsole|emu|Ignored||Meaning
+ 22|VT100|scr|resetRendition|RE_BOLD|Meaning
+ 24|VT100|scr|resetRendition|RE_UNDERLINE|Meaning
+ 25|VT100|scr|resetRendition|RE_BLINK|Meaning
+ 27|VT100|scr|resetRendition|RE_REVERSE|Meaning
+ 30|xterm|scr|setForeColor|0|Meaning
+ 31|xterm|scr|setForeColor|1|Meaning
+ 32|xterm|scr|setForeColor|2|Meaning
+ 33|xterm|scr|setForeColor|3|Meaning
+ 34|xterm|scr|setForeColor|4|Meaning
+ 35|xterm|scr|setForeColor|5|Meaning
+ 36|xterm|scr|setForeColor|6|Meaning
+ 37|xterm|scr|setForeColor|7|Meaning
+ 39|xterm|scr|setForeColorToDefault||Meaning
+ 40|xterm|scr|setBackColor|0|Meaning
+ 41|xterm|scr|setBackColor|1|Meaning
+ 42|xterm|scr|setBackColor|2|Meaning
+ 43|xterm|scr|setBackColor|3|Meaning
+ 44|xterm|scr|setBackColor|4|Meaning
+ 45|xterm|scr|setBackColor|5|Meaning
+ 46|xterm|scr|setBackColor|6|Meaning
+ 47|xterm|scr|setBackColor|7|Meaning
+ 49|xterm|scr|setBackColorToDefault||Meaning
+ 90|xterm|scr|setForeColor|8|Meaning
+ 91|xterm|scr|setForeColor|9|Meaning
+ 92|xterm|scr|setForeColor|10|Meaning
+ 93|xterm|scr|setForeColor|11|Meaning
+ 94|xterm|scr|setForeColor|12|Meaning
+ 95|xterm|scr|setForeColor|13|Meaning
+ 96|xterm|scr|setForeColor|14|Meaning
+ 97|xterm|scr|setForeColor|15|Meaning
+ 100|xterm|scr|setBackColor|8|Meaning
+ 101|xterm|scr|setBackColor|9|Meaning
+ 102|xterm|scr|setBackColor|10|Meaning
+ 103|xterm|scr|setBackColor|11|Meaning
+ 104|xterm|scr|setBackColor|12|Meaning
+ 105|xterm|scr|setBackColor|13|Meaning
+ 106|xterm|scr|setBackColor|14|Meaning
+ 107|xterm|scr|setBackColor|15|Meaning
+
+SM.head Set Mode
+SM.emus ECMA VT100
+SM.sect Command.SetMode
+SM.code CSI|h|{Ps;...}
+SM.text
+ Causes one or more modes to be set within the VT100 as specified by
+ each selective parameter string. Each mode to be set is specified by a
+ seperate parameter. A mode is considered set until it is reset by a
+ Reset Mode (\ref:RM) control sequence.
+ See \ref:RM and \ref:MODES.
+SM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 4|VT100|scr|setMode|MODE_Insert|Meaning
+ 20|VT100|emu|setMode|MODE_NewLine|\ref:LNM
+
+TBC.head Tabulation Clear
+TBC.emus ECMA VT100
+TBC.sect Command.CursMode
+TBC.code CSI|g|{Ps}
+TBC.text
+ If the parameter is missing or 0, this will clear the tab stop at the
+ cursor's position. If it is 3, this will clear all of the tab stops.
+ Any other parameter is ignored.
+TBC.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ 0|VT100|scr|changeTabStop|FALSE|Meaning
+ 3|VT100|scr|clearTabStops||Meaning
+
+##############################################################################
+# #
+# VT52 #
+# #
+##############################################################################
+
+VT52ANSI.head VT52 ANSI Ansi Mode
+VT52ANSI.emus VT100 XTERM VT52 KONSOLE
+VT52ANSI.sect Command.Mode
+VT52ANSI.code ESC|<|
+VT52ANSI.text
+ This is an extension to the VT52 commands to embed the emulation into VT100.
+ It allows to return back to VT100 emulation (ANSI mode).
+ See also \ref:DECANM and \ref:SM.
+VT52ANSI.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|emu|setMode|MODE_Ansi|see above
+
+VT52CUB.head VT52 Cursor Back
+VT52CUB.emus KONSOLE
+VT52CUB.sect Command.VT52
+VT52CUB.code ESC|D|
+VT52CUB.text
+ See \ref:CUB.
+VT52CUB.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|cursorLeft|1|see above
+
+VT52CUD.head VT52 Cursor Down
+VT52CUD.emus KONSOLE
+VT52CUD.sect Command.VT52
+VT52CUD.code ESC|B|
+VT52CUD.text
+ See \ref:CUD.
+VT52CUD.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|cursorDown|1|see above
+
+VT52CUF.head VT52 Cursor Forward
+VT52CUF.emus KONSOLE
+VT52CUF.sect Command.VT52
+VT52CUF.code ESC|C|
+VT52CUF.text
+ See \ref:CUF.
+VT52CUF.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|cursorRight|1|see above
+
+VT52CUP.head VT52 Cursor Position
+VT52CUP.emus KONSOLE
+VT52CUP.sect Command.VT52
+VT52CUP.code VT5||{X;Y}
+VT52CUP.text
+ Line and column numbers for direct cursor address are single
+ character codes whose values are the desired number plus
+ 37 (in Octal). Line and column numbers start at 1.
+VT52CUP.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|setCursorYX|p-31,q-31|see above
+
+VT52CUU.head VT52 Cursor Up
+VT52CUU.emus KONSOLE
+VT52CUU.sect Command.VT52
+VT52CUU.code ESC|A|
+VT52CUU.text
+ See \ref:CUU.
+VT52CUU.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|cursorUp|1|see above
+
+VT52EDL.head VT52 Clear To End Of Line
+VT52EDL.emus KONSOLE
+VT52EDL.sect Command.VT52
+VT52EDL.code ESC|K|
+VT52EDL.text
+ FIXME. explain
+VT52EDL.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|clearToEndOfLine||see above
+
+VT52EDS.head VT52 Clear To End Of Screen
+VT52EDS.emus KONSOLE
+VT52EDS.sect Command.VT52
+VT52EDS.code ESC|J|
+VT52EDS.text
+ FIXME. explain
+VT52EDS.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|clearToEndOfScreen||see above
+
+VT52CUH.head VT52 Cursor Home
+VT52CUH.emus KONSOLE
+VT52CUH.sect Command.VT52
+VT52CUH.code ESC|H|
+VT52CUH.text
+ FIXME. explain
+VT52CUH.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|setCursorYX|1,1|see above
+
+VT52KPAM.head VT52 Enter alternate keypad mode
+VT52KPAM.emus KONSOLE
+VT52KPAM.sect Command.VT52
+VT52KPAM.code ESC|=|
+VT2KPAM.text
+ FIXME. explain
+VT52KPAM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|emu|setMode|MODE_AppKeyPad|see above
+
+VT52KPNM.head VT52 Exit alternate keypad mode
+VT52KPNM.emus KONSOLE
+VT52KPNM.sect Command.VT52
+VT52KPNM.code ESC|>|
+VT52KPNM.text
+ FIXME. explain
+VT52KPNM.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|emu|resetMode|MODE_AppKeyPad|see above
+
+VT52REP.head VT52 Report Terminal Type
+VT52REP.emus KONSOLE
+VT52REP.sect Command.VT52
+VT52REP.code ESC|Z|
+VT52REP.text
+ Response to ESC Z is ESC / Z.
+VT52REP.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|emu|reportTerminalType||see above
+
+VT52RI.head VT52 Reverse Index
+VT52RI.emus KONSOLE
+VT52RI.sect Command.VT52
+VT52RI.code ESC|I|
+VT52RI.text
+ FIXME. explain
+VT52RI.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|reverseIndex||see above
+
+VT52SCSF.head VT52 Select special graphics character set
+VT52SCSF.emus KONSOLE
+VT52SCSF.sect Command.VT52
+VT52SCSF.code ESC|F|
+VT52SCSF.text
+ FIXME. explain
+VT52SCSF.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|setAndUseCharset|0,'0'|see above
+
+VT52SCSG.head VT52 Select ASCII character set
+VT52SCSG.emus KONSOLE
+VT52SCSG.sect Command.VT52
+VT52SCSG.code ESC|G|
+VT52SCSG.text
+ FIXME. explain
+VT52SCSG.table.XPS
+ Subcode|Emulation|Scope|Operation|Args|Meaning
+ N/A|VT52|scr|setAndUseCharset|0,'B'|see above
diff --git a/konsole/doc/VT100/Table.Graphic b/konsole/doc/VT100/Table.Graphic
new file mode 100644
index 000000000..afc159564
--- /dev/null
+++ b/konsole/doc/VT100/Table.Graphic
@@ -0,0 +1,32 @@
+Blank
+Diamond
+Checkerboard
+Digraph: (HT)
+Digraph: (FF)
+Digraph: (CR)
+Digraph: (LF)
+Degree Symbol: &deg;
++/- Symbol: &plusmn;
+Digraph: (NL)
+Digraph: (VT)
+Lower-right corner
+Upper-right corner
+Upper-left corner
+Lower-left corner
+Crossing lines (+)
+Horiz Line - scan 1
+Horiz Line - scan 3
+Horiz Line - scan 5
+Horiz Line - scan 7
+Horiz Line - scan 9
+Left "T" (|-)
+Right "T" (-|)
+Bottom "T" (|_)
+Top "T" (T)
+Vertical Bar (|)
+Less/Equal: &le;
+Graeter/Egual: &ge;
+Pi symbol: &pi;
+Not equal: &ne;
+UK pound symbol: &pound;
+Centered dot: &middot;
diff --git a/konsole/doc/VT100/Table.VT52 b/konsole/doc/VT100/Table.VT52
new file mode 100644
index 000000000..d6faca3d2
--- /dev/null
+++ b/konsole/doc/VT100/Table.VT52
@@ -0,0 +1,40 @@
+VT52 Compatible Mode
+
+: VT52A Cursor Up
+c ESC A
+: VT52b Cursor Down
+c ESC B
+: VT52C Cursor Right
+c ESC C
+: VT52D Cursor Left
+c ESC D
+: VT52F Select Special Graphics character set
+c ESC F
+: VT52G Select ASCII character set
+c ESC G
+: VT52H Cursor to home
+c ESC H
+: VT52I Reverse line feed
+c ESC I
+: VT52J Erase to end of screen
+c ESC J
+: VT52K Erase to end of line
+c ESC K
+: VT52Y Direct cursor address
+c ESC Y {l} {c}
+h
+ Line and column numbers for direct cursor address are single
+ character codes whose values are the desired number plus
+ 37 (in Octal). Line and column numbers start at 1.
+e
+: VT52Z Identify
+c ESC Z
+h
+ Response to ESC Z is ESC / Z.
+e
+: VT52KBAM Enter alternate keypad mode
+c ESC =
+: VT52KEAM Exit alternate keypad mode
+c ESC >
+: VT52AM Enter ANSI mode
+c ESC <
diff --git a/konsole/doc/VT100/awk.table.graphic b/konsole/doc/VT100/awk.table.graphic
new file mode 100644
index 000000000..f27aae29e
--- /dev/null
+++ b/konsole/doc/VT100/awk.table.graphic
@@ -0,0 +1,30 @@
+function header()
+{
+ printf("<tr><td>Octal<br>Code </td>\n");
+ printf(" <td>ASCII<br>Graphic</td>\n");
+ printf(" <td>Special Graphic </td></tr>\n");
+ printf("<tr><td><hr></td>\n");
+ printf(" <td><hr></td>\n");
+ printf(" <td><hr></td></tr>\n");
+}
+
+BEGIN {
+ color = "" # " bgcolor=lightblue"
+ printf("<center>\n");
+ printf("<table cellspacing=30>\n");
+ printf("<tr><td><table>");
+ header();
+}
+ {
+
+# printf("%04o %s %c %s %s\n",NR-1+95,$1,NR-1+95,$2,$3);
+ if (NR > 1 && NR % 16 == 1) { printf("</td></table></td><td><table>"); header(); }
+ printf("<tr><td%s>%04o</td>\n",color,NR-1+95);
+ printf(" <td%s align=center>%c</td>\n",color,NR-1+95);
+ printf(" <td%s>%s</td></tr>\n",color,$0);
+}
+END {
+ printf("</td></tr></table>\n");
+ printf("</table>\n");
+ printf("</center>\n");
+}
diff --git a/konsole/doc/VT100/cmds.pro b/konsole/doc/VT100/cmds.pro
new file mode 100644
index 000000000..35fec3ab2
--- /dev/null
+++ b/konsole/doc/VT100/cmds.pro
@@ -0,0 +1,61 @@
+?- consult('dicts.pro').
+
+test :- dict(X,_), check(X), fail; true.
+test1 :- findall(A,head(A,_),R), sort(R,Res), print(Res), nl, fail.
+
+check([_,head]) :- !. /* TITLE */
+check([_,emus]) :- !. /* List Word */
+check([_,dflt]) :- !. /* List NumberOrWord */
+check([_,sect]) :- !. /* List Word // Dotted Name */
+check([_,code]) :- !. /* [ TYP, ("Char"/none/Numb), [arg, ...] ] */
+check([_,text]) :- !. /* [ String/nl/ref(Sym) ... ] */
+
+check([_,table,'XPS']) :- !. /* interpretation */
+
+/*Other (type) tables */
+/*check([_,table,_]) :- !, print(X), nl.*/
+
+check(X) :- !, print(X), nl.
+
+/* ----------- */
+/* State: We're closer to make up a proper data model.
+ Todo:
+ - put the type/value definitions listed in 'test'
+ to a more appropriate place.
+ - clearify section material.
+ - make a model and a consistency checker.
+ - make a report generator.
+ - integrate 'TEScreen.C' functions
+*/
+
+
+head(Name,Title) :- dict([Name,head],Title).
+emus(Name,Emus) :- dict([Name,emus],Emus).
+dflt(Name,Defaults) :- dict([Name,dflt],Defaults).
+sect(Name,DottedSect) :- dict([Name,sect],DottedSect).
+code(Name,Code) :- dict([Name,code],Desc), tcode(Desc,Code).
+text(Name,Text) :- dict([Name,text],Text).
+
+tcode(['PRN',none,[]],prn) :- !.
+tcode(['DEL',none,[]],ctl(127)) :- !.
+tcode(['CTL',Num,[]],ctl(Num)) :- !.
+tcode(['ESC',Chr,[]],esc(Chr)) :- !.
+tcode(['HSH',Chr,[]],esc(Chr)) :- !.
+tcode(['CSI',Chr,[P,'...']],csi(Chr,list(P))) :- !.
+tcode(['CSI',Chr,Parm],csi(Chr,Parm)) :- !.
+tcode(['PRI',Chr,[P,'...']],pri(Chr,list(P))) :- !.
+tcode(['PRI',Chr,Parm],pri(Chr,Parm)) :- !.
+tcode(['SCS',none,[A,B]],scs([A,B])) :- !.
+tcode(['VT5',none,[X,Y]],vt5([X,Y])) :- !.
+tcode(P,P) :- writef("\n - fail\n %t \n\n",[P]).
+
+pheads :-
+ head(N,T),
+ writef("%w - %s\n",[N,T]),
+ fail; true.
+
+pcodes :-
+ code(N,P),
+ writef("%w - %t\n",[N,P]),
+ fail; true.
+
diff --git a/konsole/doc/VT100/db.trans b/konsole/doc/VT100/db.trans
new file mode 100644
index 000000000..7fe21ef27
--- /dev/null
+++ b/konsole/doc/VT100/db.trans
@@ -0,0 +1,190 @@
+TY_CHR___|PRINT|||scr|ShowCharacter|p
+TY_CTL___|NUL|'@'||||
+TY_CTL___|SOH|'A'||||
+TY_CTL___|STX|'B'||||
+TY_CTL___|ETX|'C'||||
+TY_CTL___|EOT|'D'||||
+TY_CTL___|ENQ|'E'||emu|reportAnswerBack|
+TY_CTL___|ACK|'F'||||
+TY_CTL___|BEL|'G'||gui|Bell|
+TY_CTL___|BS|'H'||scr|BackSpace|
+TY_CTL___|HT|'I'||scr|Tabulate|
+TY_CTL___|LF|'J'||emu|NewLine|
+TY_CTL___|VT|'K'||emu|NewLine|
+TY_CTL___|FF|'L'||emu|NewLine|
+TY_CTL___|CR|'M'||scr|Return|
+TY_CTL___|LS0|'N'||scr|useCharset|1
+TY_CTL___|LS1|'O'||scr|useCharset|0
+TY_CTL___|DLE|'P'||||
+TY_CTL___|DC1|'Q'||||
+TY_CTL___|DC2|'R'||||
+TY_CTL___|DC3|'S'||||
+TY_CTL___|DC4|'T'||||
+TY_CTL___|NAK|'U'||||
+TY_CTL___|SYN|'V'||||
+TY_CTL___|ETB|'W'||||
+TY_CTL___|CAN|'X'||scr|ShowCharacter|2
+TY_CTL___|EM|'Y'||||
+TY_CTL___|SUB|'Z'||scr|ShowCharacter|2
+TY_CTL___|ESC|'['||||
+TY_CTL___|FS|'\\'||||
+TY_CTL___|GS|']'||||
+TY_CTL___|RS|'^'||||
+TY_CTL___|US|'_'||||
+TY_ESC___|IND|'D'||scr|index|
+TY_ESC___|NEL|'E'||scr|NextLine|
+TY_ESC___|HTS|'H'||scr|changeTabStop|TRUE
+TY_ESC___|RI|'M'||scr|reverseIndex|
+TY_ESC___|DECID|'Z'||emu|reportTerminalType|
+TY_ESC___|RIS|'c'||emu|resetTerminal|
+TY_ESC___|LS2|'n'||scr|useCharset|2
+TY_ESC___|LS3|'o'||scr|useCharset|3
+TY_ESC___|DECSC|'7'||scr|saveCursor|
+TY_ESC___|DECRC|'8'||scr|restoreCursor|
+TY_ESC___|DECKPAM|'='||emu|setMode|MODE_AppKeyPad
+TY_ESC___|DECKPNM|'>'||emu|resetMode|MODE_AppKeyPad
+TY_ESC___|DECANSI|'<'||emu|setMode|MODE_Ansi
+TY_ESC_CS|SCS|||emu|setCharset|p-'(',q
+TY_ESC_DE|DECDHLT|'3'||||
+TY_ESC_DE|DECDHLB|'4'||||
+TY_ESC_DE|DECSWL|'5'||||
+TY_ESC_DE|DECDWL|'6'||||
+TY_ESC_DE|DECALN|'8'||scr|helpAlign|
+TY_CSI_PS|EL|'K'|0|scr|clearToEndOfLine|
+TY_CSI_PS|EL|'K'|1|scr|clearToBeginOfLine|
+TY_CSI_PS|EL|'K'|2|scr|clearEntireLine|
+TY_CSI_PS|ED|'J'|0|scr|clearToEndOfScreen|
+TY_CSI_PS|ED|'J'|1|scr|clearToBeginOfScreen|
+TY_CSI_PS|ED|'J'|2|scr|clearEntireScreen|
+TY_CSI_PS|TBC|'g'|0|scr|changeTabStop|FALSE
+TY_CSI_PS|TBC|'g'|3|scr|clearTabStops|
+TY_CSI_PS|SM|'h'|4|scr|setMode|MODE_Insert
+TY_CSI_PS|SM|'h'|20|emu|setMode|MODE_NewLine
+TY_CSI_PS|MC|'i'|0|||
+TY_CSI_PS|RM|'l'|4|scr|resetMode|MODE_Insert
+TY_CSI_PS|RM|'l'|20|emu|resetMode|MODE_NewLine
+TY_CSI_PS|SGR|'m'|0|scr|setDefaultRendition|
+TY_CSI_PS|SGR|'m'|1|scr|setRendition|RE_BOLD
+TY_CSI_PS|SGR|'m'|4|scr|setRendition|RE_UNDERLINE
+TY_CSI_PS|SGR|'m'|5|scr|setRendition|RE_BLINK
+TY_CSI_PS|SGR|'m'|7|scr|setRendition|RE_REVERSE
+TY_CSI_PS|SGR|'m'|10|||
+TY_CSI_PS|SGR|'m'|11|||
+TY_CSI_PS|SGR|'m'|12|||
+TY_CSI_PS|SGR|'m'|22|scr|resetRendition|RE_BOLD
+TY_CSI_PS|SGR|'m'|24|scr|resetRendition|RE_UNDERLINE
+TY_CSI_PS|SGR|'m'|25|scr|resetRendition|RE_BLINK
+TY_CSI_PS|SGR|'m'|27|scr|resetRendition|RE_REVERSE
+TY_CSI_PS|SGR|'m'|30|scr|setForeColor|0
+TY_CSI_PS|SGR|'m'|31|scr|setForeColor|1
+TY_CSI_PS|SGR|'m'|32|scr|setForeColor|2
+TY_CSI_PS|SGR|'m'|33|scr|setForeColor|3
+TY_CSI_PS|SGR|'m'|34|scr|setForeColor|4
+TY_CSI_PS|SGR|'m'|35|scr|setForeColor|5
+TY_CSI_PS|SGR|'m'|36|scr|setForeColor|6
+TY_CSI_PS|SGR|'m'|37|scr|setForeColor|7
+TY_CSI_PS|SGR|'m'|39|scr|setForeColorToDefault|
+TY_CSI_PS|SGR|'m'|40|scr|setBackColor|0
+TY_CSI_PS|SGR|'m'|41|scr|setBackColor|1
+TY_CSI_PS|SGR|'m'|42|scr|setBackColor|2
+TY_CSI_PS|SGR|'m'|43|scr|setBackColor|3
+TY_CSI_PS|SGR|'m'|44|scr|setBackColor|4
+TY_CSI_PS|SGR|'m'|45|scr|setBackColor|5
+TY_CSI_PS|SGR|'m'|46|scr|setBackColor|6
+TY_CSI_PS|SGR|'m'|47|scr|setBackColor|7
+TY_CSI_PS|SGR|'m'|49|scr|setBackColorToDefault|
+TY_CSI_PS|SGR|'m'|90|scr|setForeColor|8
+TY_CSI_PS|SGR|'m'|91|scr|setForeColor|9
+TY_CSI_PS|SGR|'m'|92|scr|setForeColor|10
+TY_CSI_PS|SGR|'m'|93|scr|setForeColor|11
+TY_CSI_PS|SGR|'m'|94|scr|setForeColor|12
+TY_CSI_PS|SGR|'m'|95|scr|setForeColor|13
+TY_CSI_PS|SGR|'m'|96|scr|setForeColor|14
+TY_CSI_PS|SGR|'m'|97|scr|setForeColor|15
+TY_CSI_PS|SGR|'m'|100|scr|setBackColor|8
+TY_CSI_PS|SGR|'m'|101|scr|setBackColor|9
+TY_CSI_PS|SGR|'m'|102|scr|setBackColor|10
+TY_CSI_PS|SGR|'m'|103|scr|setBackColor|11
+TY_CSI_PS|SGR|'m'|104|scr|setBackColor|12
+TY_CSI_PS|SGR|'m'|105|scr|setBackColor|13
+TY_CSI_PS|SGR|'m'|106|scr|setBackColor|14
+TY_CSI_PS|SGR|'m'|107|scr|setBackColor|15
+TY_CSI_PS|DSR|'n'|5|emu|reportStatus|
+TY_CSI_PS|DSR|'n'|6|emu|reportCursorPosition|
+TY_CSI_PS|DECLL|'q'|0|||
+TY_CSI_PS|DECLL|'q'|1|||
+TY_CSI_PS|DECLL|'q'|2|||
+TY_CSI_PS|DECLL|'q'|3|||
+TY_CSI_PS|DECLL|'q'|4|||
+TY_CSI_PS|DECREQTPARM|'x'|0|emu|reportTerminalParms|2
+TY_CSI_PS|DECREQTPARM|'x'|1|emu|reportTerminalParms|3
+TY_CSI_PN|ICH|'@'||scr|insertChars|p
+TY_CSI_PN|CUU|'A'||scr|cursorUp|p
+TY_CSI_PN|CUD|'B'||scr|cursorDown|p
+TY_CSI_PN|CUF|'C'||scr|cursorRight|p
+TY_CSI_PN|CUB|'D'||scr|cursorLeft|p
+TY_CSI_PN|CHA|'G'||scr|setCursorX|p
+TY_CSI_PN|CUP|'H'||scr|setCursorYX|p,q
+TY_CSI_PN|IL|'L'||scr|insertLines|p
+TY_CSI_PN|DL|'M'||scr|deleteLines|p
+TY_CSI_PN|DCH|'P'||scr|deleteChars|p
+TY_CSI_PN|ECH|'X'||scr|eraseChars|p
+TY_CSI_PN|DA|'c'||emu|reportTerminalType|
+TY_CSI_PN|VPA|'d'||scr|setCursorY|p
+TY_CSI_PN|HVP|'f'||scr|setCursorYX|p,q
+TY_CSI_PN|DECSTBM|'r'||scr|setMargins|p,q
+TY_CSI_PN|DECTST|'y'||||
+TY_CSI_PR|DECSET|'h'|1|emu|setMode|MODE_AppCuKeys
+TY_CSI_PR|DECSET|'h'|3|emu|setColumns|132
+TY_CSI_PR|DECSET|'h'|4|||
+TY_CSI_PR|DECSET|'h'|5|scr|setMode|MODE_Screen
+TY_CSI_PR|DECSET|'h'|6|scr|setMode|MODE_Origin
+TY_CSI_PR|DECSET|'h'|7|scr|setMode|MODE_Wrap
+TY_CSI_PR|DECSET|'h'|8|||
+TY_CSI_PR|DECSET|'h'|9|||
+TY_CSI_PR|DECSET|'h'|25|emu|setMode|MODE_Cursor
+TY_CSI_PR|DECSET|'h'|47|emu|setMode|MODE_AppScreen
+TY_CSI_PR|DECSET|'h'|1000|emu|setMode|MODE_Mouse1000
+TY_CSI_PR|DECSET|'h'|1001|||
+TY_CSI_PR|DECSET|'h'|1047|emu|setMode|MODE_AppScreen
+TY_CSI_PR|DECSET|'h'|1048|scr|saveCursor|
+TY_CSI_PR|DECRST|'l'|1|emu|resetMode|MODE_AppCuKeys
+TY_CSI_PR|DECRST|'l'|2|emu|resetMode|MODE_Ansi
+TY_CSI_PR|DECRST|'l'|3|emu|setColumns|80
+TY_CSI_PR|DECRST|'l'|4|||
+TY_CSI_PR|DECRST|'l'|5|scr|resetMode|MODE_Screen
+TY_CSI_PR|DECRST|'l'|6|scr|resetMode|MODE_Origin
+TY_CSI_PR|DECRST|'l'|7|scr|resetMode|MODE_Wrap
+TY_CSI_PR|DECRST|'l'|8|||
+TY_CSI_PR|DECRST|'l'|9|||
+TY_CSI_PR|DECRST|'l'|25|emu|resetMode|MODE_Cursor
+TY_CSI_PR|DECRST|'l'|47|emu|resetMode|MODE_AppScreen
+TY_CSI_PR|DECRST|'l'|1000|emu|resetMode|MODE_Mouse1000
+TY_CSI_PR|DECRST|'l'|1001|||
+TY_CSI_PR|DECRST|'l'|1047|emu|resetMode|MODE_AppScreen
+TY_CSI_PR|DECRST|'l'|1048|scr|restoreCursor|
+TY_CSI_PR|XTESAVE|'s'|1|emu|saveMode|MODE_AppCuKeys
+TY_CSI_PR|XTESAVE|'s'|6|scr|saveMode|MODE_Origin
+TY_CSI_PR|XTESAVE|'s'|7|scr|saveMode|MODE_Wrap
+TY_CSI_PR|XTESAVE|'s'|1000|emu|saveMode|MODE_Mouse1000
+TY_CSI_PR|XTESAVE|'s'|1001|||
+TY_CSI_PR|XTERESTORE|'r'|1|emu|restoreMode|MODE_AppCuKeys
+TY_CSI_PR|XTERESTORE|'r'|6|scr|restoreMode|MODE_Origin
+TY_CSI_PR|XTERESTORE|'r'|7|scr|restoreMode|MODE_Wrap
+TY_CSI_PR|XTERESTORE|'r'|1000|emu|restoreMode|MODE_Mouse1000
+TY_CSI_PR|XTERESTORE|'r'|1001|||
+TY_VT52__|VT52CUU|'A'||scr|cursorUp|1
+TY_VT52__|VT52CUD|'B'||scr|cursorDown|1
+TY_VT52__|VT52CUF|'C'||scr|cursorRight|1
+TY_VT52__|VT52CUB|'D'||scr|cursorLeft|1
+TY_VT52__|VT52SCSF|'F'||scr|setAndUseCharset|0,'0'
+TY_VT52__|VT52SCSG|'G'||scr|setAndUseCharset|0,'B'
+TY_VT52__|VT52CUH|'H'||scr|setCursorYX|1,1
+TY_VT52__|VT52RI|'I'||scr|reverseIndex|
+TY_VT52__|VT52EDS|'J'||scr|clearToEndOfScreen|
+TY_VT52__|VT52EDL|'K'||scr|clearToEndOfLine|
+TY_VT52__|VT52CUP|'Y'||scr|setCursorYX|p-31,q-31
+TY_VT52__|VT52REP|'Z'||emu|reportTerminalType|
+TY_VT52__|VT52ANSI|'<'||emu|setMode|MODE_Ansi
+TY_VT52__|VT52KPAM|'='||emu|setMode|MODE_AppKeyPad
+TY_VT52__|VT52KPNM|'>'||emu|resetMode|MODE_AppKeyPad
diff --git a/konsole/doc/VT100/db2.pl b/konsole/doc/VT100/db2.pl
new file mode 100755
index 000000000..f961e5d31
--- /dev/null
+++ b/konsole/doc/VT100/db2.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -w
+
+$ops = "db.trans";
+$src = "../../src/TEScreen.C";
+$res1 = ">TEScreen.p1";
+$res2 = ">TEScreen.p2";
+
+open(OPS, $ops) || die "cannot open file '" . $ops . "'.";
+
+my $tbl = {};
+while (<OPS>)
+{
+ chop; # strip record separator
+ my @Fld = split('\|', $_);
+ if ($Fld[2] && $Fld[2] eq 'scr')
+ {
+ $tbl->{$Fld[3]} = 1;
+ }
+}
+#foreach $p (sort keys %$tbl)
+#{
+# print $p, "\n";
+#}
+
+open(SRC, $src) || die "cannot open file '" . $src . "'.";
+open(RES1, $res1) || die "cannot open file '" . $res1 . "'.";
+open(RES2, $res2) || die "cannot open file '" . $res2 . "'.";
+my $control = 0;
+while (<SRC>)
+{
+ chop;
+ if ( /void TEScreen::(.*)\((.*)\)/ && exists $tbl->{$1} )
+ {
+ print RES1 "\n";
+ $control = 1;
+ }
+ if ($control)
+ {
+ print RES1 $_, "\n";
+ }
+ else
+ {
+ print RES2 $_, "\n";
+ }
+ if ( /^}$/ )
+ {
+ $control = 0;
+ }
+}
diff --git a/konsole/doc/VT100/genDocument b/konsole/doc/VT100/genDocument
new file mode 100755
index 000000000..4ecee0996
--- /dev/null
+++ b/konsole/doc/VT100/genDocument
@@ -0,0 +1,257 @@
+#!/bin/sh
+RES=techref.html
+
+function header
+{
+cat << etx >> $RES
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>$1</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+etx
+}
+
+cat > $RES /dev/null
+
+# -- HTML Header --------------------------------------------------------------------
+
+cat >> $RES << etx
+<html>
+<head>
+<title>VT100</title>
+<!-- NOTE: this page is generated using the "genDocument" script -->
+</head>
+<body bgcolor=white>
+
+<hr>
+
+etx
+
+# -- Editors Notes ------------------------------------------------------------------
+
+cat >> $RES << etx
+
+<h1><center>VT100</center></h1>
+<center><img src="vt100.gif"></center>
+
+<it>Please note that this text is under construction.</it>
+
+<h2>Preface</h2>
+
+This document accompanies the Konsole program, which is a terminal emulation
+for the X Windows System. Since material about the extend and precise semantics
+of the emulatation intended to be handled by this programs is hard to find on the
+internet today, it came out nessesary to include a more precise specification within
+their release.
+Hopefully, this helps to clearify the relation to the VT100, VT102, Linux, XTerm
+and ansi.sys (ANSI-BBS) terminals, which are the target of these programs. Further,
+it specifies which codes are interpreted by them, and what has been omitted.
+<p>
+To begin with, all of the above call themselfes "ANSI" emulations, which makes this
+notion pretty vage. "ANSI" referes here to the American National Standards
+Institute's documents X3.41-1974 and X3.64-1977. DEC partially implemented this
+standart in their VT100 terminal, with some additions. The VT102 is a later extention
+of that. Both the Linux console and the XTerm emulation implement most of VT102,
+with some additions. MS stepped in later and produced another ANSI emulation,
+<code>ansi.sys</code>, for their OS, which became of some relevance in BBS style
+telecommunication programs. One can view this as a small subset of the VT100
+emulation, with some additions, of cause.
+This situation is further confused by the fact, that often many versions of the
+above terminals and emulations are out, one able to do a little more or less then
+the other.
+<p>
+<hr>
+<p>
+I'm working towards a
+close integration of the konsole's source code with this document, but it
+is still a long way to go.
+<p>
+Currently, the body of this document is mainly a concept data base, that
+referes to the VT100 component of the emulation. Though the codes accepted by
+konsole are now clearly indicated, a comparison to the xterm and Linux console
+emulation is missing.
+<p>
+The konsole emulation sources is not linked closely with it's documentation,
+and, also accurate at the time of writing, it can still fall slightly appart,
+though the codes accepted and produced by konsole should be properly listed.
+Work is currently in progress to fix this issue.
+
+
+
+<h2>Notes &amp; todos</h2>
+<ul>
+<li>Include complete reference on keyboard material.
+<li>Check for explaination of out-of-bound values.
+<li>Include VT52, VT102, XTERM, LINUX-console codes
+<li>Make the whole document more concept oriented
+<li>See the section <em>Method of description</em>, below
+<li>Derive some summarizing lists.
+</ul>
+<hr>
+etx
+
+
+# -- Codes --------------------------------------------------------------------------
+
+./genTC.pl >> $RES
+
+
+header "On VT100"
+
+cat >> $RES << etx
+
+The VT100 is an upward and downward software-compatible terminal;
+that is, previous Digital video terminals have Digital's private standards
+for control sequences. The American National Standards Institute has since
+standardized escape and control sequences in terminals in documents X3.41-1974
+and X3.64-1977.
+<p>
+The VT100 is compatible with both the previous Digital standard and
+ANSI standards. Customers may use existing Digital software designed around
+the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in
+which the VT100 responds to control sequences like a VT52. In this mode, most
+of the new VT100 features cannot be used.
+<p>
+Throughout this document references will be made to "VT52 mode" or
+"ANSI mode". These two terms are used to indicate the VT100's software
+compatibility.
+<p>
+<em>NOTE</em>: The ANSI standards allow the manufacturer flexibility in implementing
+each function. This document describes how the VT100 will respond to the
+implemented ANSI central function.
+<p>
+
+etx
+
+header "Modes"
+
+cat >> $RES << etx
+<a name=#MODES></a>
+
+
+The Following is a list of VT100 modes which may be changed with Set
+Mode (SM) and Reset Mode (RM) controls.
+
+<h3>ANSI Specified Modes</h3>
+
+<table border=1>
+<tr><td>Parameter</td><td>Mnemonic</td><td>Function</td></tr>
+<tr><td><hr></td><td><hr></td><td><hr></td></tr>
+<tr><td>0 </td><td> </td><td>Error (Ignored)</td></tr>
+<tr><td>20 </td><td>LNM </td><td>Line Feed/New Line Mode</td></tr>
+</table>
+
+
+<h3>DEC Private Modes</h3>
+
+If the first character in the parameter string is ? (077), the
+parameters are interpreted as DEC private parameters according to the
+following:
+
+<table border=1>
+<tr><td>Parameter</td><td>Mnemonic</td><td>Function
+<tr><td><hr></td><td><hr></td><td><hr></td></tr>
+<tr><td>0</td><td> </td><td>Error (Ignored)</td></tr>
+<tr><td>1</td><td><a href=#DECCKM >DECCKM </a></td><td>Cursor Key </td></tr>
+<tr><td>2</td><td><a href=#DECANM >DECANM </a></td><td>ANSI/VT52 </td></tr>
+<tr><td>3</td><td><a href=#DECCOLM>DECCOLM</a></td><td>Column </td></tr>
+<tr><td>4</td><td><a href=#DECSCLM>DECSCLM</a></td><td>Scrolling </td></tr>
+<tr><td>5</td><td><a href=#DECSCNM>DECSCNM</a></td><td>Screen </td></tr>
+<tr><td>6</td><td><a href=#DECOM >DECOM </a></td><td>Origin </td></tr>
+<tr><td>7</td><td><a href=#DECAWM >DECAWM </a></td><td>Auto Wrap </td></tr>
+<tr><td>8</td><td><a href=#DECARM>DECARM </a></td><td>Auto Repeat </td></tr>
+<tr><td>9</td><td><a href=#DECINLM>DECINLM</a></td><td>Interlace </td></tr>
+</table>
+
+Any other parameter values are ignored.
+
+<p>
+The following modes, which are specified in the ANSI standard, may be
+considered to be permanently set, permanently reset, or not applicable,
+as noted.
+
+<table border=1>
+<tr><td>Mnemonic</td><td>Function </td><td>State</td></tr>
+
+<tr><td>CRM </td><td>Control Representation </td><td>Reset</td></tr>
+<tr><td>EBM </td><td>Editing Boundary </td><td>Reset</td></tr>
+<tr><td>ERM </td><td>Erasure </td><td>Set </td></tr>
+<tr><td>FEAM </td><td>Format Effector Action </td><td>Reset</td></tr>
+<tr><td>FETM </td><td>Format Effector Transfer </td><td>Reset</td></tr>
+<tr><td>GATM </td><td>Guarded Area Transfer </td><td>NA </td></tr>
+<tr><td>HEM </td><td>Horizontal Editing </td><td>NA </td></tr>
+<tr><td>IRM </td><td>Insertion-replacement </td><td>Reset</td></tr>
+<tr><td>KAM </td><td>Keyboard Action </td><td>Reset</td></tr>
+<tr><td>MATM </td><td>Multiple area transfer </td><td>NA </td></tr>
+<tr><td>PUM </td><td>Positioning Unit </td><td>Reset</td></tr>
+<tr><td>SATM </td><td>Selected Area Transfer </td><td>NA </td></tr>
+<tr><td>SRTM </td><td>Status Reporting Transfer</td><td>Reset</td></tr>
+<tr><td>TSM </td><td>Tabulation Stop </td><td>Reset</td></tr>
+<tr><td>TTM </td><td>Transfer Termination </td><td>NA </td></tr>
+<tr><td>VEM </td><td>Vertical Editing </td><td>NA </td></tr>
+</table>
+etx
+
+# -- Keyboard Codes -----------------------------------------------------------------
+
+cat >> $RES << etx
+<h2>Keyboard Codes</h2>
+
+The notation &lt;ESC&gt; denotes a single ASCII Escape character, 1Bx.
+
+<table border=1>
+<tr>
+<td>Cursor Key</td>
+<td>VT52 mode</td>
+<td>ANSI mode w/cursor <br> key mode reset</td>
+<td>ANSI mode w/cursor <br> key mode set</td>
+</tr>
+<tr><td>UP </td><td>&lt;ESC&gt;A</td><td>&lt;ESC&gt;[A</td><td>&lt;ESC&gt;OA</td></tr>
+<tr><td>DOWN </td><td>&lt;ESC&gt;B</td><td>&lt;ESC&gt;[B</td><td>&lt;ESC&gt;OB</td></tr>
+<tr><td>RIGHT</td><td>&lt;ESC&gt;C</td><td>&lt;ESC&gt;[C</td><td>&lt;ESC&gt;OC</td></tr>
+<tr><td>LEFT </td><td>&lt;ESC&gt;D</td><td>&lt;ESC&gt;[D</td><td>&lt;ESC&gt;OD</td></tr>
+</table>
+etx
+
+
+# -- Graphics Characters ------------------------------------------------------------
+
+cat >> $RES << etx
+<h2>Special Graphics Characters</h2>
+
+If the Special Graphics set is selected, the graphics for ASCII codes
+0137 through 0176 will be replaced according to the following table (see the
+<a href=#SCS>SCS</a> control sequence).
+etx
+
+
+awk -f awk.table.graphic < Table.Graphic >> $RES
+
+
+cat >> $RES << etx
+<em>NOTE 1</em>: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each
+piece of this set is contiguous with other so the lines formed will be
+unbroken.
+<p>
+<em>NOTE 2</em>: Codes 0157-0163 give better vertical resolution than dashes and
+underlines when drawing graphs; using these segments, 120 x 132 resolution may
+be obtained in 132 column mode with the Advanced Video Option installed.
+<p>
+
+<h2>References</h2>
+<p>
+<hr>
+<small>
+This text 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.
+<p>
+<a href="mailto:lars.doelle@on-line.de">Lars D&ouml;lle</a>, 1998
+</small>
+
+</body>
+</html>
+etx
diff --git a/konsole/doc/VT100/genPl.pl b/konsole/doc/VT100/genPl.pl
new file mode 100755
index 000000000..0a3bb648e
--- /dev/null
+++ b/konsole/doc/VT100/genPl.pl
@@ -0,0 +1,300 @@
+#!/usr/bin/perl -w
+use strict;
+
+my $source = "Table.Codes";
+
+my $html = 1;
+my $test = 0;
+
+# Syntax -----------------------------------------------------------------------
+#
+# Dotted.Name Text
+# Dotted.Name
+# Text
+# Lines
+#
+# The dotted names have to be unique. Conceptually, they form a tree.
+#
+
+# Data Model ------------------------------------------------------------------
+
+# This is currently pretty wierd.
+#
+# Empirically, we have
+#
+# NAME.head TitleLine
+# NAME.emus { EmuName ... }
+# NAME.dflt { Number|'ScreenLines' ... }
+# NAME.sect DottedWord
+#
+# NAME.code <Typ>|<Ide>|<Parm>
+# NAME.text
+# <text with some special tricks>
+# NAME.table.TAB
+# <"|"-separated head line>
+# <"|"-separated data rows>
+#
+# TABs
+# - .XPS, used for instructions with subcodes
+# Subcode|Emulation|Scope|Operation|Parameter|Meaning
+# - .XEX, used for individual codes
+# Instruction|Scope|Operation|Parameter
+#
+# Alternative
+# - .impl Scope|Operation|Parameters
+# - .subc.SUBCODE.impl
+# - .subc.SUBCODE.attr
+# - .subc.SUBCODE.head
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# Analyze Source --------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+my $all = {};
+
+my $state = 0;
+my $name = '';
+my $value = '';
+
+sub parse
+{
+ sub chkstate
+ { my ($expect,$lineno,$line) = @_;
+ if ($state != $expect)
+ {
+ print STDERR "$source($lineno): line unexpected in state $state. : $line\n";
+ }
+ }
+
+ sub reduce
+ {
+ $all->{$name} = $value;
+ $state = 0;
+ $value = '';
+ }
+
+ open(CODES, $source) || die "cannot open file '" . $source . "'.";
+ while (<CODES>)
+ {
+ chop; # strip record separator
+ my @Fld = split(' ', $_);
+
+ if ($#Fld == -1)
+ {
+ reduce() if $state != 0;
+ }
+ elsif (substr($_, 0, 1) eq '#')
+ {
+ ; #ignore
+ }
+ elsif (substr($_, 0, 1) eq ' ')
+ { &chkstate(1,$.,$_);
+ $value .= ($value eq "" ? "" : "\n") . $_; #FIXME: unchop
+ }
+ else
+ {
+ reduce() if $state != 0;
+ $name = $Fld[0];
+ if ($#Fld == 0)
+ {
+ $state = 1;
+ }
+ else
+ {
+ $value = join ' ', @Fld[1..$#Fld];
+ reduce();
+ }
+ }
+ }
+ reduce() if ($state == 1);
+ chkstate(0,$.,$_);
+
+ return $all;
+}
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# Analyze Source --------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+sub clausify
+{
+ my ($t) = @_;
+ my $p;
+ my $word;
+ foreach $p (keys %$t)
+ {
+ my $flag = 0;
+ print("dict([");
+ foreach $word (split('\.', $p))
+ {
+ print(", ") if ($flag);
+ print("\'$word\'");
+ $flag = 1;
+ }
+ print("], ");
+ my @Fld = split('\.', $p);
+ #
+ # head
+ #
+ if ($#Fld == 1 && $Fld[1] eq 'head')
+ {
+ print "\"",$t->{$p},"\"";
+ }
+ #
+ # emus
+ #
+ elsif ($#Fld == 1 && $Fld[1] eq 'emus')
+ {
+ my $emu;
+ $flag = 0;
+ print("[");
+ foreach $emu (split(' ', $t->{$p}))
+ {
+ print ", " if ($flag);
+ print "\'$emu\'";
+ $flag = 1;
+ }
+ print("]");
+ }
+ #
+ # dflt
+ #
+ elsif ($#Fld == 1 && $Fld[1] eq 'dflt')
+ {
+ my $dflt;
+ $flag = 0;
+ print("[");
+ foreach $dflt (split(' ', $t->{$p}))
+ {
+ print ", " if ($flag);
+ print $dflt if (length($dflt) == 1);
+ print "\'$dflt\'" if (length($dflt) > 1);
+ $flag = 1;
+ }
+ print("]");
+ }
+ #
+ # sect
+ #
+ elsif ($#Fld == 1 && $Fld[1] eq 'sect')
+ {
+ my $sect;
+ $flag = 0;
+ print("[");
+ foreach $sect (split('\.', $t->{$p}))
+ {
+ print ", " if ($flag);
+ print "\'$sect\'";
+ $flag = 1;
+ }
+ print("]");
+ }
+ #
+ # code
+ #
+ elsif ($#Fld == 1 && $Fld[1] eq 'code')
+ {
+ my @Code = split('\|', $t->{$p});
+ print("[");
+ print("\'$Code[0]\', ");
+ if ($#Code > 0 && $Code[1] ne '')
+ {
+ print("\"$Code[1]\", ") if ($Code[0] ne 'CTL');
+ printf("%d, ",eval($Code[1])) if ($Code[0] eq 'CTL');
+ }
+ else
+ {
+ print("none, ")
+ }
+ if ($#Code == 2 && $Code[2] ne '' && $Code[0] ne 'PRN')
+ {
+ $_ = $Code[2];
+ s/{/['/;
+ s/}/']/;
+ s/;/','/g;
+ s/'([0-9]+)'/$1/g;
+ print $_;
+ }
+ else
+ {
+ print "[]";
+ }
+ print("]");
+ }
+ #
+ # text
+ #
+ elsif ($#Fld == 1 && $Fld[1] eq 'text')
+ {
+ my $text;
+ $flag = 0;
+ print("[");
+ foreach $text (split('\n', $t->{$p}))
+ {
+ print ", " if ($flag);
+ $_ = $text;
+ s/^ //;
+ s/"/\\"/g;
+ s/\\ref:([A-Z0-9]+)/", ref('$1'), "/g;
+ print "\n \"$_\"" if ($_ ne '.');
+ print "\n nl" if ($_ eq '.');
+ $flag = 1;
+ }
+ print("]");
+ }
+ #
+ # table.* - subcodes
+ #
+ #elsif ($#Fld == 2 && $Fld[1] eq 'table' && $Fld[2] eq 'XPS')
+ elsif ($#Fld >= 1 && $Fld[1] eq 'table')
+ {
+ my $text;
+ $flag = 0;
+ print("[");
+ foreach $text (split('\n', $t->{$p}))
+ {
+ print ",\n " if ($flag);
+ $_ = $text;
+ s/^ //;
+ my $flag2 = 0;
+ my $col;
+ print("[");
+ foreach $col (split('\|', $_))
+ {
+ print ", " if ($flag2);
+ $_ = $col;
+ s/'/\\'/g;
+ print "\'$_\'";
+ $flag2 = 1;
+ }
+ print("]");
+ $flag = 1;
+ }
+ print("]");
+ }
+ #
+ # other (text, tables)
+ #
+ else
+ {
+ print("other");
+ }
+ print(").\n");
+ }
+}
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# MAIN ------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+my $t = parse();
+my $p;
+my $table = 0;
+
+clausify($t);
diff --git a/konsole/doc/VT100/genTC.pl b/konsole/doc/VT100/genTC.pl
new file mode 100755
index 000000000..a3a7c5669
--- /dev/null
+++ b/konsole/doc/VT100/genTC.pl
@@ -0,0 +1,434 @@
+#!/usr/bin/perl -w
+use strict;
+
+my $source = "Table.Codes";
+
+my $html = 1;
+my $test = 0;
+
+# Syntax -----------------------------------------------------------------------
+#
+# Dotted.Name Text
+# Dotted.Name
+# Text
+# Lines
+#
+# The dotted names have to be unique. Conceptually, they form a tree.
+#
+
+# Data Model ------------------------------------------------------------------
+
+# This is currently pretty wierd.
+#
+# Empirically, we have
+#
+# NAME.head <Title Line>
+# NAME.attr { lots ... }
+# NAME.dflt Value ...
+# NAME.code <Typ>|<Ide>|<Parm>
+# NAME.text
+# <text with some special tricks>
+# NAME.table.TAB
+# <"|"-separated head line>
+# <"|"-separated data rows>
+#
+# Section.html
+# <html-text>
+#
+# TABs
+# - .XPS, used for instructions with subcodes
+# Subcode|Emulation|Scope|Operation|Parameter|Meaning
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# Analyze Source --------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+my $all = {};
+
+my $state = 0;
+my $name = '';
+my $value = '';
+
+sub parse
+{
+ sub chkstate
+ { my ($expect,$lineno,$line) = @_;
+ if ($state != $expect)
+ {
+ print STDERR "$source($lineno): line unexpected in state $state. : $line\n";
+ }
+ }
+
+ sub reduce
+ {
+ $all->{$name} = $value;
+ $state = 0;
+ $value = '';
+ }
+
+ open(CODES, $source) || die "cannot open file '" . $source . "'.";
+ while (<CODES>)
+ {
+ chop; # strip record separator
+ my @Fld = split(' ', $_);
+
+ if ($#Fld == -1)
+ {
+ reduce() if $state != 0;
+ }
+ elsif (substr($_, 0, 1) eq '#')
+ {
+ ; #ignore
+ }
+ elsif (substr($_, 0, 1) eq ' ')
+ { &chkstate(1,$.,$_);
+ $value .= ($value eq "" ? "" : "\n") . $_; #FIXME: unchop
+ }
+ else
+ {
+ reduce() if $state != 0;
+ $name = $Fld[0];
+ if ($#Fld == 0)
+ {
+ $state = 1;
+ }
+ else
+ {
+ $value = join ' ', @Fld[1..$#Fld];
+ reduce();
+ }
+ }
+ }
+ reduce() if ($state == 1);
+ chkstate(0,$.,$_);
+
+ return $all;
+}
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# Html Layout -----------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+sub head
+{
+ if ($html)
+ {
+ print "<table>\n";
+ print "<tr><td width=10%%><td><td><td><td><td><td width=40%%>\n";
+ }
+}
+
+sub tail
+{
+ if ($html)
+ {
+ print "</table>\n";
+ }
+}
+
+my $color1 = " bgcolor=\"#D0D0D0\""; # table head // section head
+my $color2 = " bgcolor=\"#5BA5B2\""; # table body (even)
+my $color3 = " bgcolor=\"#5188B2\""; # table body (odd)
+my $color4 = ""; # code, default
+my $color5 = ""; # text
+
+sub txt2Html
+{
+ my ($Doku) = @_;
+ $_ = $Doku;
+ s/</&lt;/g;
+ s/>/&gt;/g;
+ s/\\ref:([A-Z0-9]+)/<a href=#$1>$1<\/a>/g;
+ s/\n \.\n/\n <p>\n/g;
+ return $_;
+}
+
+sub layout
+{ my ($Name, $Head, $Code, $Doku, $Dflt, $Attr) = @_;
+ if ($html)
+ {
+
+ print "<tr><td><p></td></tr>\n";
+
+ print "<tr><td $color1><a name=$Name>$Name</a>\n";
+ if ($Attr eq '')
+ {
+ print " <td $color1 colspan=6><b>$Head</b>\n";
+ }
+ else
+ {
+ print " <td colspan=5 $color1><b>$Head</b>\n";
+ print " <td $color1>$Attr\n";
+ }
+
+ if ($Code ne '')
+ {
+ my @Part = split('\|',$Code);
+ my $Type = $Part[0];
+ my $Indi = $#Part > 0 ? $Part[1] : "";
+ my $Parm = $#Part > 1 ? $Part[2] : "";
+ $Code = $Parm if $Type eq 'PRN';
+ $Code = $Indi if $Type eq 'CTL';
+ $Code = "ESC $Indi" if $Type eq 'ESC';
+ $Code = "0x7f" if $Type eq 'DEL';
+ $Code = "ESC # $Indi" if $Type eq 'HSH';
+ $Code = "ESC $Parm" if $Type eq 'SCS';
+ $Code = "ESC Y $Parm" if $Type eq 'VT5';
+ $Code = "ESC [ $Parm $Indi" if $Type eq 'CSI';
+ $Code = "ESC [ ? $Parm $Indi" if $Type eq 'PRI';
+ print "<tr><td><p></td>\n";
+ print "<tr><td>\n";
+ print " <td colspan=5 $color4>", codeToHtml($Code), "\n";
+ print " <td $color4>Default: $Dflt\n" if ($Dflt ne '');
+ }
+
+ print "<tr><td><p></td>\n";
+ print "<tr><td></td>\n";
+# $_ = $Doku;
+# s/</&lt;/g;
+# s/>/&gt;/g;
+# s/\\ref:([A-Z0-9]+)/<a href=#$1>$1<\/a>/g;
+# s/\n \.\n/\n <p>\n/g;
+ print " <td $color5 colspan=6>";
+ print txt2Html($Doku);
+ print "\n";
+ }
+ if ($test)
+ {
+ print "NAME: $Name\n";
+ print "TEXT: $Head\n";
+ print "CODE: $Code\n";
+ print "ATTR: $Attr\n";
+ print "DFLT: $Dflt\n";
+ # print "DOCU: $Doku\n";
+ }
+}
+
+sub codeToHtml
+{ my ($code) = @_;
+ my $res = '<code>';
+ foreach (split(' ', $code))
+ {
+ /^\{(.*)\}$/ && do { $res .= " <em>$1</em>"; next; };
+ /^<$/ && do { $res .= ' <b>&lt;</b>'; next; };
+ /^>$/ && do { $res .= ' <b>&gt;</b>'; next; };
+ $res .= " <b>$_</b>";
+ }
+ return $res . '</code>';
+}
+
+# -----------------------------------------------------------------------------
+
+sub secthead
+{ my ($Title) = @_;
+print "<h2>\n";
+print "<table width=100%>\n";
+print "<tr><td align=center bgcolor=#d0d0d0></td></tr>\n";
+print "<tr><td align=center bgcolor=#d0d0d0>$Title</td></tr>\n";
+print "<tr><td align=center bgcolor=#d0d0d0></td></tr>\n";
+print "</table>\n";
+print "</h2>\n";
+}
+
+sub layout2
+{ my ($Name, $Head, $Code) = @_;
+ my @Part = split('\|',$Code);
+ my $Type = $#Part > -1 ? $Part[0] : "";
+ my $Indi = $#Part > 0 ? $Part[1] : "";
+ my $Parm = $#Part > 1 ? $Part[2] : "";
+ if ($Type eq 'CTL')
+ {
+ $_ = $Indi;
+ s/0x00/@/; s/0x01/A/; s/0x02/B/; s/0x03/C/;
+ s/0x04/D/; s/0x05/E/; s/0x06/F/; s/0x07/G/;
+ s/0x08/H/; s/0x09/I/; s/0x0a/J/; s/0x0b/K/;
+ s/0x0c/L/; s/0x0d/M/; s/0x0e/N/; s/0x0f/O/;
+ s/0x10/P/; s/0x11/Q/; s/0x12/R/; s/0x13/S/;
+ s/0x14/T/; s/0x15/U/; s/0x16/V/; s/0x17/W/;
+ s/0x18/X/; s/0x19/Y/; s/0x1a/Z/; s/0x1b/[/;
+ s/0x1c/\\/; s/0x1d/]/; s/0x1e/^/; s/0x1f/_/;
+ $Indi = $_;
+ }
+ print "<tr>\n";
+ print "<td $color1><a href=#$Name>$Name</a>\n";
+ print "<td $color1>$Type\n";
+ print "<td $color1>$Indi\n";
+ print "<td $color1>$Parm\n";
+ print "<td $color1>$Head\n";
+}
+
+sub layoutTable
+{
+ my ($Head, $t, $Include) = @_;
+ my $p;
+print "<tr><td colspan=5><h3>$Head</h3>\n";
+foreach $p (sort keys %$t)
+{
+ my @Fld = split('\.', $p);
+ if ($#Fld == 1 && $Fld[1] eq 'head')
+ {
+ my $name = $Fld[0];
+ my $head = $t->{$p};
+ my $attr = exists $t->{"$name.sect"}?$t->{"$name.sect"}:"";
+ if ($attr =~ /$Include/)
+ {
+ layout2( $name, $head, exists $t->{"$name.code"}?$t->{"$name.code"}:"");
+ }
+ }
+}
+}
+
+sub sortTest
+{
+ my ($t) = @_;
+ my $p;
+ my $s = {};
+ my $n = {};
+ my $curr = "";
+ foreach $p (keys %$t)
+ {
+ my @Fld = split('\.', $p);
+ if ($#Fld == 1 && $Fld[1] eq 'head')
+ {
+ my $name = $Fld[0];
+ if (exists $t->{"$name.code"})
+ {
+ $s->{$t->{"$name.code"}} = $name;
+ }
+ }
+ }
+ print "<table>\n";
+ foreach $p (sort keys %$s)
+ {
+ my $name = $s->{$p};
+ my @Fld = split('\|', $p);
+ if ($Fld[0] ne $curr)
+ {
+ print "<tr><td colspan=5><h3>$Fld[0] codes</h3>\n";
+ }
+ $curr = $Fld[0];
+ layout2($name,$t->{"$name.head"},$p);
+ }
+ print "</table>\n";
+}
+
+sub htmlsect
+{
+ my ($h) = @_;
+ $_ = $all->{"$h.html"};
+ s/\n \.\n/\n <p>\n/g;
+ print "$_\n";
+}
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# MAIN ------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+
+my $t = parse();
+my $p;
+my $table = 0;
+
+# -------------------------------
+htmlsect("Introduction");
+# -------------------------------
+secthead("Control Sequences");
+htmlsect("Sequences");
+# -------------------------------
+secthead("Host to Terminal (Instructions by Code)");
+sortTest($t);
+# -------------------------------
+secthead("Host to Terminal (Instructions by Group)");
+htmlsect("Operations");
+print "<table>\n";
+layoutTable("Commands (Character Display Operation)",$t,"Command\.Display");
+layoutTable("Commands (Rendition related status)",$t,"Command\.RenderMode");
+layoutTable("Commands (Cursor)",$t,"Command\.Cursor");
+layoutTable("Commands (Cursor related status)",$t,"Command\.CursMode");
+layoutTable("Commands (Edit)",$t,"Command\.Erase|Command\.Insert|Command.\Delete");
+layoutTable("Commands (Miscellaneous)",$t,"Command[^.]|Command\$");
+layoutTable("Commands (General mode setting)",$t,"Command\.SetMode");
+layoutTable("Commands (Miscellaneous status)",$t,"Command\.Mode");
+layoutTable("Commands (VT52)",$t,"Command\.VT52");
+layoutTable("Commands (Not implemented)",$t,"Command\.NoImp");
+layoutTable("Commands (Ignored)",$t,"Command\.Ignored");
+layoutTable("Commands (Requests)",$t,"Command\.Request");
+print "</table>\n";
+# -------------------------------
+secthead("Terminal to Host");
+print "<table>\n";
+layoutTable("Replies",$t,"Reply");
+layoutTable("Events",$t,"Event");
+# -------------------------------
+print "</table>\n";
+secthead("Modes");
+print "<table>\n";
+layoutTable("Modes",$t,"Mode");
+#print "<h3>Other Codes</h3>\n";
+print "</table>\n";
+# -------------------------------
+secthead("Appendix A - Notion Details");
+htmlsect("ConceptDB");
+# -------------------------------
+
+head();
+foreach $p (sort keys %$t)
+{
+ my @Fld = split('\.', $p);
+ if ($#Fld == 1 && $Fld[1] eq 'head')
+ {
+# print "</table>\n" if ($table);
+ my $name = $Fld[0];
+ my $head = $t->{$p};
+ layout( $name, $head,
+ exists $t->{"$name.code"}?$t->{"$name.code"}:"",
+ exists $t->{"$name.text"}?$t->{"$name.text"}:"",
+ exists $t->{"$name.dflt"}?$t->{"$name.dflt"}:"",
+ exists $t->{"$name.emus"}?$t->{"$name.emus"}:"" );
+ $table = 0;
+ }
+ if ($html && $#Fld == 2 && $Fld[1] eq 'table')
+ {
+ my $lines = $t->{$p};
+ my $line;
+ my $field;
+ my @fldspan = ();
+ my $ln = 0;
+ print "<tr><td><p></td></tr>\n";
+# print "<tr><td $color1>$Fld[2]</td><td $color1>Meaning</td></tr>\n";
+ foreach $line (split('\n', $lines))
+ {
+ my $fn = 0;
+ @fldspan = split('\|',$line) if ($ln == 0);
+ print "<tr>\n";
+ print "<td></td>\n";
+ foreach $field (split('\|',$line))
+ {
+ if ($ln == 0)
+ {
+ my @Parts = split(":",$field);
+ $field = $Parts[0];
+ $fldspan[$fn] = ($#Parts > 0) ? $Parts[1] : 1;
+ }
+ print "<td";
+ printf(" colspan=%s",$fldspan[$fn]);
+ print " $color1" if ($ln == 0);
+ print " $color2" if ($ln > 0 && $ln % 2 == 0);
+ print " $color3" if ($ln > 0 && $ln % 2 == 1);
+ print ">";
+ print txt2Html($field);
+ print "</td>";
+ $fn += 1;
+ }
+ print "</tr>\n";
+ $ln += 1;
+ }
+ $table = 1;
+ }
+}
+tail();
diff --git a/konsole/doc/VT100/konsole1.gif b/konsole/doc/VT100/konsole1.gif
new file mode 100644
index 000000000..832c2dc65
--- /dev/null
+++ b/konsole/doc/VT100/konsole1.gif
Binary files differ
diff --git a/konsole/doc/VT100/konsole2.gif b/konsole/doc/VT100/konsole2.gif
new file mode 100644
index 000000000..eb2cdb4d0
--- /dev/null
+++ b/konsole/doc/VT100/konsole2.gif
Binary files differ
diff --git a/konsole/doc/VT100/t.pl b/konsole/doc/VT100/t.pl
new file mode 100755
index 000000000..b0d9dc8e5
--- /dev/null
+++ b/konsole/doc/VT100/t.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/perl
+
+# This script is here only as a pattern for maintainance works.
+# It has changing contents and is of no use to anyone but me.
+
+$source = "Table.Codes";
+
+open(CODES, $source) || die "cannot open file '" . $source . "'.";
+
+while (<CODES>)
+{
+ if (/^attr/)
+ {
+ s/VT100/VT100 ANSI/ if (!/DEC/);
+ }
+ print $_;
+}
diff --git a/konsole/doc/VT100/techref.html b/konsole/doc/VT100/techref.html
new file mode 100644
index 000000000..6e36f39e5
--- /dev/null
+++ b/konsole/doc/VT100/techref.html
@@ -0,0 +1,4681 @@
+<html>
+<head>
+<title>VT100</title>
+<!-- NOTE: this page is generated using the "genDocument" script -->
+</head>
+<body bgcolor=white>
+
+<hr>
+
+
+<h1><center>VT100</center></h1>
+<center><img src="vt100.gif"></center>
+
+<it>Please note that this text is under construction.</it>
+
+<h2>Preface</h2>
+
+This document accompanies the Konsole program, which is a terminal emulation
+for the X Windows System. Since material about the extend and precise semantics
+of the emulatation intended to be handled by this programs is hard to find on the
+internet today, it came out nessesary to include a more precise specification within
+their release.
+Hopefully, this helps to clearify the relation to the VT100, VT102, Linux, XTerm
+and ansi.sys (ANSI-BBS) terminals, which are the target of these programs. Further,
+it specifies which codes are interpreted by them, and what has been omitted.
+<p>
+To begin with, all of the above call themselfes "ANSI" emulations, which makes this
+notion pretty vage. "ANSI" referes here to the American National Standards
+Institute's documents X3.41-1974 and X3.64-1977. DEC partially implemented this
+standart in their VT100 terminal, with some additions. The VT102 is a later extension
+of that. Both the Linux console and the XTerm emulation implement most of VT102,
+with some additions. MS stepped in later and produced another ANSI emulation,
+<code>ansi.sys</code>, for their OS, which became of some relevance in BBS style
+telecommunication programs. One can view this as a small subset of the VT100
+emulation, with some additions, of cause.
+This situation is further confused by the fact, that often many versions of the
+above terminals and emulations are out, one able to do a little more or less then
+the other.
+<p>
+<hr>
+<p>
+I'm working towards a
+close integration of the konsole's source code with this document, but it
+is still a long way to go.
+<p>
+Currently, the body of this document is mainly a concept data base, that
+referes to the VT100 component of the emulation. Though the codes accepted by
+konsole are now clearly indicated, a comparison to the xterm and Linux console
+emulation is missing.
+<p>
+The konsole emulation sources is not linked closely with it's documentation,
+and, also accurate at the time of writing, it can still fall slightly appart,
+though the codes accepted and produced by konsole should be properly listed.
+Work is currently in progress to fix this issue.
+
+
+
+<h2>Notes &amp; todos</h2>
+<ul>
+<li>Include complete reference on keyboard material.
+<li>Check for explaination of out-of-bound values.
+<li>Include VT52, VT102, XTERM, LINUX-console codes
+<li>Make the whole document more concept oriented
+<li>See the section <em>Method of description</em>, below
+<li>Derive some summarizing lists.
+</ul>
+<hr>
+ <h2>Introduction</h2>
+ <p>
+ In a traditional UNIX installation a single machine (host) served
+ several users by means of terminals attached to this host by a serial
+ cable. These terminals (end points) where specialized devices, either
+ regular ttys (printer with keyboard) or later more sophisticated
+ things with cathode ray tubes.
+ <p>
+ <center><img src="konsole2.gif"></center>
+ <p>
+ Today, hardware has become so cheap, that each single user could
+ be provided with a complete host/display combination for the former
+ price of a terminal.
+ <p>
+ Additional, and here we come to the X in the emulation, display
+ devices have become graphical while the original terminal where
+ only able to show characters but not graphics.
+ <p>
+ To allow programs designed for the original configuration to be
+ used in the contemporary setup, "terminal emulations" where invented.
+ In these emulations, the whole original setup is simulated.
+ <p>
+ The serial cable is folded into the operating system as a sort of
+ loop back device, and a program, the terminal emulation, uses modern
+ means of graphical user interfaces to behave like an earlier terminal.
+ To complete the picture, the host in the diagram is replaced by the
+ application that runs in the emulation (typically a shell or an old
+ editor). So, terminal emulations are in fact interfaces to character
+ oriented applications.
+ <p>
+ This document describes the implementations of a program named
+ "konsole", which is such an X terminal emulation. Since konsole
+ is distributed under the GPL, meaning that it's source code is
+ available to whoever likes to hack on it, the program would be
+ incomplete without a proper introduction into the code and it's
+ concepts. Thus, this text is to complement the program and the
+ source with the remaining informations to make a complete product.
+ <p>
+ <h2>A first refinement</h2>
+ <p>
+ Before we can come to the actual implementation, quite some
+ notions have to be introduced. We have to get us an idea what
+ a terminal emulation does in more detail.
+ <p>
+ To this end, a simple model of the terminal and it's operation
+ is given, which is later extended and refined as we come deeper
+ into matter and implementation.
+ <p>
+ At some level conception, a terminal can be described as a
+ (abstract) data model. This means it has some type of state
+ together with operations on that data type. These operations
+ are somehow encoded to be passed over the serial line.
+ <p>
+ The concrete model is often loosely named the "emulation",
+ the specific encoding chosen, the "protocol".
+ <p>
+ There are two principle models in use. The first, stream like
+ one, which is related to a tty, consideres the terminal as an
+ indefinit long and wide sheet of paper on which a printer head
+ types the characters that come in over the line. Typical examples
+ are shell scripts, make and other programs producing sequential
+ protocols of their activity. Their basic data type is a list of
+ list of characters.
+ <p>
+ The second principle model is used by applications written
+ especially for crt devices, so called full screen applications.
+ These treat the terminal as a matrix of characters where each
+ position can be individually addressed and written to. Typical
+ representatives are full screen editors like vi and emacs,
+ file managers like mc and mail readers like mutt.
+ <p>
+ Though the second model is newer, it's age does not imply a
+ preference. To the contrary, both models have a right for their
+ own and are both to be supported. The first model is fully
+ expressed within konsole in form of it's ref:history buffer.
+ <p>
+ Note, that although the second model definitely build on the
+ first one in almost any respect, it cannot fully express it,
+ since it introduces a finite line length, while the first
+ model works with indefinite lines.
+ <p>
+ Since application with both view of things are typically run
+ within the same session, some effort has been made within
+ konsole to maintain both ideas simultaniously, but only with
+ limited success so far.
+ <p>
+ In both models, the notion of a current position (historically
+ a printer's head, nowadays visualized by a cursor) is present.
+ "Printing" a character at the current position and advancing
+ the head together with the starting a new line are the most
+ fundamental operations of the emulation.
+ <p>
+ The full screen model basically adds the possibility to position
+ the cursor and to overwrite and clear the screen.
+ <p>
+ A plethora of additional (more or less useful) commands are
+ then added on this by every specific emulation, see below for
+ the awful details.
+ <p>
+ <!-- BEGIN: new section about the codes -->
+ <h2>Parts of the model</h2>
+ <p>
+ <it>All the following in this section is an outline</it>.
+ <p>
+ Parts of the terminal description
+ <ul>
+ <li>State
+ <br>This is mainly the screen, the cursor (including it's graphical state)
+ and some hidden mode variables. Note that the state cannot be investigated
+ by the attached host.
+ <li>Interface
+ <br>That's what goes over the wire. Beside being related to objects, this
+ appears so closely related to contemporal process communication, that
+ it might be discussed in likely terms.
+ <br>We have information flowing in both directions. On could destinguist
+ between:
+ <li>Commands
+ <br>These are "calls" of the terminals interface by the host which cause
+ some change of the terminals state, but do not end in a response.
+ <li>Requests
+ <br>These are "calls" of the terminals interface by the host which do not cause
+ any change of the terminals state, but end in a response of the terminal.
+ Clearly, requests are somehow used to investigate the state of the terminal.
+ <li>Events
+ <br>These are signals from the terminal caused by the user affecting the
+ mouse or keyboard to the host.
+ <li>Replys
+ <br>These are send by the terminal as a result of a Request from the hosts.
+ <li>Encoding/Decoding
+ </ul>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Control Sequences</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+ Conceptually, the commands to the terminal emulation are encoded if form
+ of byte sequences to meet the restrictions of the transport media. These
+ sequences have pretty different originations and therefore the format of
+ the sequences are inhomogenous.
+ <p>
+ Refering both to their origin and form, one can group the overall encoding
+ schemes as follows:
+ <p>
+ <table>
+ <tr><td width=20% bgcolor=#d0d0d0>Name</td><td width=20% bgcolor=#d0d0d0>Pattern</td><td bgcolor=#d0d0d0>Scope</td><td bgcolor=#d0d0d0>Comment</td></tr>
+ <tr><td>Printable Ascii Characters</td><td>32..126</td><td>ASCII ECMA</td>
+ <td>This is the most original pattern of all. The characters to be
+ displayed are passed over the chanel and are interpreted by the
+ terminal (emulation) as instructions to display the corresponding
+ glyph of the ascii character set. Contempory emulations include the
+ upper half (128..255) of the extentions to the national ascii character
+ sets, also.</td></tr>
+ <tr><td>Ascii Control Characters</td><td>0..26,28..31,127</td><td>ASCII ECMA</td>
+ <td>Ascii defines some non-printable, but format effecting characters, too.
+ Depending on the emulation, at least some of them are given a meaning.
+ The typically implemented ones are those that are handled by a teletype
+ like device.</td></tr>
+ <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>ECMA</td>
+ <td>These sequences are made up from an <b>ESC</b> character followed by
+ exactly one other character in the range ???..???.</td></tr>
+ <tr><td>CSI Sequence</td>
+ <td><b>ESC</b> <b>[</b> <i>Parameters</i> {<i>I</i>} <i>C</i></td>
+ <td>ECMA</td>
+ <td></td></tr>
+ <tr><td colspan=4>
+ <p>
+ The remaining codes are nonstandard but traditionalized hacks.
+ <p>
+ </td></tr>
+ <tr><td>DEC hacks</td>
+ <td><b>ESC</b> <i>C</i> <i>D</i></td>
+ <td>VT100</td>
+ <td></td></tr>
+ <tr><td>XTERM hacks</td>
+ <td><b>ESC ]</b> <i>Pn</i> <b>;</b> <i>text</i> <b>BEL</b></td>
+ <td>XTERM</td>
+ <td></td>
+ <tr><td colspan=4>
+ <p>
+ VT52 uses a different (incompatible) set of escape codes. VT100 includes
+ the VT52 emulation as a mode.
+ <p>
+ </td></tr>
+ </tr>
+ <tr><td>Simple Escape Sequence</td><td><b>ESC</b> <i>C</i></td><td>VT52</td>
+ <td></td></tr>
+ <tr><td>Complex Escape Sequence</td><td><b>ESC</b> <b>Y</b> <i>X</i> <i>Y</i></td><td>VT52</td>
+ <td></td></tr>
+ <p>
+ </table>
+ <p>
+ <h3>More on Control Sequences</h3>
+ <p>
+ <h4>Control Characters</h4>
+ <p>
+ Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded
+ from the control sequence syntax, but may be embedded within a control
+ sequence. Embedded control characters are executed as soon as they are
+ encountered by a VT100. The processing of the control sequence then
+ continues with the next character received. The exceptions are:
+ if the <a href=#ESC>ESC</a> character occurs, the current control sequence
+ is aborted, and a new one commences beginning with the <a href=#ESC>ESC</a>
+ just received. If the character <a href=#CAN>CAN</a> (0x0c) or the
+ character <a href=#SUB>SUB</a> (0x0e) occurs,
+ the current control sequence is aborted. The ability to embed control
+ characters allows the synchronization characters XON and XOFF to be
+ interpreted properly without affecting the control sequence.
+ <p>
+ <p>
+ <h4>CSI Sequences</h4>
+ <p>
+ <dl>
+ <dt>Control Sequence Introducer (CSI):
+ <dd>An escape sequence that provides
+ supplementary controls and is itself a prefix affecting the
+ interpretation of a limited number of contiguous characters.
+ In the VT100, the CSI is: &lt;ESC&gt;[
+ <p>
+ <dt>Parameter:
+ <dd>1. A string of zero or more decimal characters which
+ represent a single value. Leading zeros are ignored. The
+ decimal characters have a range of 0 (060) to 9 (071).
+ <br>2. The value so represented.
+ <p>
+ <dt>Numeric Parameter:
+ <dd>A parameter that represents a number, designated by Pn.
+ <p>
+ <dt>Selective Parameter:
+ <dd>A parameter that selects a subfunction from a
+ specified set of subfunctions, designated by Ps. In general, a
+ control sequence with more than one selective parameter causes
+ the same effect as several control sequences, each with one
+ selective parameter, e.g., CSI Psa; Psb; Psc F is identical to
+ CSI Psa F CSI Psb F CSI Psc F.
+ <p>
+ <dt>Parameter String:
+ <dd>A string of parameters separated by a semicolon.
+ <p>
+ <dt>Default:
+ <dd> A function-dependent value that is assumed when no explicit
+ value, or a value of 0, is specified.
+ <p>
+ <dt>Final character:
+ <dd>A character whose bit combination terminates an escape or control sequence.
+ </dl>
+ <p>
+ <em>EXAMPLE</em>: Control sequence to turn off all character attributes, then
+ turn on underscore and blink attributes (<a href=#SGR>SGR</a>).
+ <p>
+ <center><img src="konsole1.gif"></center>
+ <p>
+ The octal representation of this string is:
+ <pre>
+ 033 0133 060 073 064 073 065 0155
+ &lt;ESC&gt; [ 0 ; 4 ; 5 m
+ </pre>
+ <p>
+ Alternate sequences which will accomplish the same thing:
+ <p>
+ <ul>
+ <li><code>&lt;ESC&gt;[;4;m </code>
+ <li><code>&lt;ESC&gt;[m </code>
+ <br><code>&lt;ESC&gt;[4m </code>
+ <br><code>&lt;ESC&gt;[5m </code>
+ <li><code>&lt;ESC&gt;[0;04;005m</code>
+ </ul>
+ <p>
+ <h4>DEC hacks</h4>
+ <p>
+ These form two groups of commands.
+ <p>
+ In one first the first character is a hash (<em>#</em>) and the following a digit.
+ This command group is used to denote VT100 specific instructions and can
+ safely be sonsidered to be obsolete. See
+ <a href=#DECALN>DECALN</a>,
+ <a href=#DECDHLB>DECDHLB</a>,
+ <a href=#DECDHLT>DECDHLT</a>,
+ <a href=#DECDWL>DECDWL</a> and
+ <a href=#DECSWL>DECSWL</a>.
+ <p>
+ The second one is used to specify character set mappings (see <a
+ href=#SCS>SCS</a>). A CSI instruction to do this is specified in ECMA,
+ and this should be used as a replacement.
+ <p>
+ <h4>XTERM hacks</h4>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Host to Terminal (Instructions by Code)</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+<table>
+<tr><td colspan=5><h3>CSI codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ICH>ICH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">@
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Insert Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUU>CUU</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Up
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUD>CUD</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Down
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUF>CUF</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Foreward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUB>CUB</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Backward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CHA>CHA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Horizontal Absolute
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUP>CUP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Cursor Position
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ED>ED</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Erase in Display
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EL>EL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Erase in Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#IL>IL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">L
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Insert Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DL>DL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Delete Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DCH>DCH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">P
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Delete Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CPR>CPR</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">R
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Cursor Position Report
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ECH>ECH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">X
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Erase Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DA>DA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Device Attributes Request
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VPA>VPA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">d
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Vertical Position Absolute
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HVP>HVP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">f
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Horizontal and Vertical Position
+<tr>
+<td bgcolor="#D0D0D0"><a href=#TBC>TBC</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">g
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Tabulation Clear
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SM>SM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#MC>MC</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">i
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Media Copy
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RM>RM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SGR>SGR</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">m
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Select Graphic Rendition
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DSRREQ>DSRREQ</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Device Status Report
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DSRREP>DSRREP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">{Status}
+<td bgcolor="#D0D0D0">Device Status Report Reply
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECLL>DECLL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">q
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Load LEDs
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSTBM>DECSTBM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Set Top and Bottom Margins
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECREQTPARM>DECREQTPARM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">x
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Request Terminal Parameters
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECREPTPARM>DECREPTPARM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">x
+<td bgcolor="#D0D0D0">{sol;par;nbits;xspd;rspd;cmul;flags}
+<td bgcolor="#D0D0D0">Report Terminal Parameters
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECTST>DECTST</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">y
+<td bgcolor="#D0D0D0">{2;Ps}
+<td bgcolor="#D0D0D0">Invoke Confidence Test
+<tr><td colspan=5><h3>CTL codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NUL>NUL</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">@
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Null
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SOH>SOH</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Start Of Heading
+<tr>
+<td bgcolor="#D0D0D0"><a href=#STX>STX</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Start Of Text
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ETX>ETX</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Text
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EOT>EOT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Transmission
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ENQ>ENQ</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">E
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Enquiry
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ACK>ACK</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">F
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Acknowledge
+<tr>
+<td bgcolor="#D0D0D0"><a href=#BEL>BEL</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Bell
+<tr>
+<td bgcolor="#D0D0D0"><a href=#BS>BS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Back Space
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HT>HT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">I
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Horizontal Tabulation
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LF>LF</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Line Feed
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT>VT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Vertical Tabulation
+<tr>
+<td bgcolor="#D0D0D0"><a href=#FF>FF</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">L
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Form Feed
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CR>CR</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Carriage Return
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS0>LS0</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">N
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Zero (Shift Out - SO)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS1>LS1</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">O
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift One (Shift In - SI)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DLE>DLE</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">P
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Data Link Escape
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC1>DC1</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">Q
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control One
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC2>DC2</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">R
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Two
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC3>DC3</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">S
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Three
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC4>DC4</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">T
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Four
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NAK>NAK</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">U
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Negative Acknowledge
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SYN>SYN</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">V
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Synchronous Idle
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ETB>ETB</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">W
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Transmission Block
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CAN>CAN</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">X
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Cancel
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EM>EM</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">Y
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Medium
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SUB>SUB</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">Z
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Substitute
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ESC>ESC</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">[
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Escape
+<tr>
+<td bgcolor="#D0D0D0"><a href=#FS>FS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">\
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">File Separator (IS4 - Information Separator Four)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#GS>GS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">]
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Group Separator (IS3 - Information Separator Three)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RS>RS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">^
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Record Separator (IS2 - Information Separator Two)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#US>US</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">_
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Unit Separator (IS1 - Information Separator One)
+<tr><td colspan=5><h3>DEL codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DEL>DEL</a>
+<td bgcolor="#D0D0D0">DEL
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Delete Character
+<tr><td colspan=5><h3>ESC codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSC>DECSC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">7
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Save Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRC>DECRC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">8
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Restore Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52ANSI>VT52ANSI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0"><
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 ANSI Ansi Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52KPAM>VT52KPAM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">=
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Enter alternate keypad mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52KPNM>VT52KPNM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Exit alternate keypad mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUU>VT52CUU</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Up
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUD>VT52CUD</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Down
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUF>VT52CUF</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Forward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUB>VT52CUB</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Back
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NEL>NEL</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">E
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Next Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52SCSF>VT52SCSF</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">F
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Select special graphics character set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52SCSG>VT52SCSG</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Select ASCII character set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HTS>HTS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Horizontal Tab Set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52RI>VT52RI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">I
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Reverse Index
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52EDS>VT52EDS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Clear To End Of Screen
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52EDL>VT52EDL</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Clear To End Of Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RI>RI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Reverse Index
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECID>DECID</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">Z
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Identify Terminal
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RIS>RIS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Reset to Initial State
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS2>LS2</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Two
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS3>LS3</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">o
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Three
+<tr><td colspan=5><h3>HSH codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDHLT>DECDHLT</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">3
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Height Line (Top)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDHLB>DECDHLB</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">4
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Height Line (Bottom)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSWL>DECSWL</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">5
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Single-width Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDWL>DECDWL</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">6
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Width Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECALN>DECALN</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">8
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Screen Alignment Display
+<tr><td colspan=5><h3>PRI codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDA>DECDA</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">{1;Pn}
+<td bgcolor="#D0D0D0">Device Attributes Reply
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSET>DECSET</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRST>DECRST</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTERESTORE>XTERESTORE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Restore Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTESAVE>XTESAVE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">s
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Save Mode
+<tr><td colspan=5><h3>PRN codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#PRINT>PRINT</a>
+<td bgcolor="#D0D0D0">PRN
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{0x20..0x7e,0xa0..0xff}
+<td bgcolor="#D0D0D0">Printable Characters
+<tr><td colspan=5><h3>SCS codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SCS>SCS</a>
+<td bgcolor="#D0D0D0">SCS
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{Pc;Cs}
+<td bgcolor="#D0D0D0">Select Character Set
+<tr><td colspan=5><h3>VT5 codes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUP>VT52CUP</a>
+<td bgcolor="#D0D0D0">VT5
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{X;Y}
+<td bgcolor="#D0D0D0">VT52 Cursor Position
+</table>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Host to Terminal (Instructions by Group)</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+ <p>
+ <ul>
+ <li>Host to Terminal (Commands,Requests)
+ <ul>
+ <li>Commands
+ <ul>
+ <li>Character Display Operation
+ <li>Rendition related status
+ <li>Cursor
+ <li>Cursor related status
+ <li>Edit
+ <li>Miscellaneous
+ <li>General mode setting
+ <li>Miscellaneous status
+ <li>VT52
+ <li>Not implemented
+ <li>Ignored
+ </ul>
+ <li>Requests
+ </ul>
+ <li>Terminal to Host (Replies, Events)
+ <ul>
+ <li>Replies
+ <li>Events
+ </ul>
+ <li>Modes
+ <ul>
+ <li>Modes
+ </ul>
+ </ul>
+<table>
+<tr><td colspan=5><h3>Commands (Character Display Operation)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#PRINT>PRINT</a>
+<td bgcolor="#D0D0D0">PRN
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{0x20..0x7e,0xa0..0xff}
+<td bgcolor="#D0D0D0">Printable Characters
+<tr><td colspan=5><h3>Commands (Rendition related status)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS0>LS0</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">N
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Zero (Shift Out - SO)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS1>LS1</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">O
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift One (Shift In - SI)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS2>LS2</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Two
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS3>LS3</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">o
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Three
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SCS>SCS</a>
+<td bgcolor="#D0D0D0">SCS
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{Pc;Cs}
+<td bgcolor="#D0D0D0">Select Character Set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SGR>SGR</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">m
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Select Graphic Rendition
+<tr><td colspan=5><h3>Commands (Cursor)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#BS>BS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Back Space
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CHA>CHA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Horizontal Absolute
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CR>CR</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Carriage Return
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUB>CUB</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Backward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUD>CUD</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Down
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUF>CUF</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Foreward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUP>CUP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Cursor Position
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUU>CUU</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Up
+<tr>
+<td bgcolor="#D0D0D0"><a href=#FF>FF</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">L
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Form Feed
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HT>HT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">I
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Horizontal Tabulation
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HVP>HVP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">f
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Horizontal and Vertical Position
+<tr>
+<td bgcolor="#D0D0D0"><a href=#IND>IND</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Index
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LF>LF</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Line Feed
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NEL>NEL</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">E
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Next Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RI>RI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Reverse Index
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VPA>VPA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">d
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Vertical Position Absolute
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT>VT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Vertical Tabulation
+<tr><td colspan=5><h3>Commands (Cursor related status)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRC>DECRC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">8
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Restore Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSC>DECSC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">7
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Save Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSTBM>DECSTBM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Set Top and Bottom Margins
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HTS>HTS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Horizontal Tab Set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#TBC>TBC</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">g
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Tabulation Clear
+<tr><td colspan=5><h3>Commands (Edit)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DCH>DCH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">P
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Delete Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DL>DL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">M
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Delete Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ECH>ECH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">X
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Erase Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ED>ED</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Erase in Display
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EL>EL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Erase in Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ICH>ICH</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">@
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Insert Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#IL>IL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">L
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Insert Line
+<tr><td colspan=5><h3>Commands (Miscellaneous)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#BEL>BEL</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Bell
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CAN>CAN</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">X
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Cancel
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECALN>DECALN</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">8
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Screen Alignment Display
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECTST>DECTST</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">y
+<td bgcolor="#D0D0D0">{2;Ps}
+<td bgcolor="#D0D0D0">Invoke Confidence Test
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SUB>SUB</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">Z
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Substitute
+<tr><td colspan=5><h3>Commands (General mode setting)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRST>DECRST</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSET>DECSET</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RM>RM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SM>SM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTERESTORE>XTERESTORE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Restore Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTESAVE>XTESAVE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">s
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Save Mode
+<tr><td colspan=5><h3>Commands (Miscellaneous status)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECKPAM>DECKPAM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">=
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Keypad Application Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECKPNM>DECKPNM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Keypad Numeric Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RIS>RIS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Reset to Initial State
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52ANSI>VT52ANSI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0"><
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 ANSI Ansi Mode
+<tr><td colspan=5><h3>Commands (VT52)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUB>VT52CUB</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Back
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUD>VT52CUD</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Down
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUF>VT52CUF</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Forward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUH>VT52CUH</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Home
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUP>VT52CUP</a>
+<td bgcolor="#D0D0D0">VT5
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{X;Y}
+<td bgcolor="#D0D0D0">VT52 Cursor Position
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52CUU>VT52CUU</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Cursor Up
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52EDL>VT52EDL</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">K
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Clear To End Of Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52EDS>VT52EDS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">J
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Clear To End Of Screen
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52KPAM>VT52KPAM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">=
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Enter alternate keypad mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52KPNM>VT52KPNM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Exit alternate keypad mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52REP>VT52REP</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">Z
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Report Terminal Type
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52RI>VT52RI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">I
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Reverse Index
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52SCSF>VT52SCSF</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">F
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Select special graphics character set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52SCSG>VT52SCSG</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">G
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 Select ASCII character set
+<tr><td colspan=5><h3>Commands (Not implemented)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDHLB>DECDHLB</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">4
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Height Line (Bottom)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDHLT>DECDHLT</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">3
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Height Line (Top)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDWL>DECDWL</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">6
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Double Width Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECLL>DECLL</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">q
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Load LEDs
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSWL>DECSWL</a>
+<td bgcolor="#D0D0D0">HSH
+<td bgcolor="#D0D0D0">5
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Single-width Line
+<tr>
+<td bgcolor="#D0D0D0"><a href=#MC>MC</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">i
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Media Copy
+<tr><td colspan=5><h3>Commands (Ignored)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ACK>ACK</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">F
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Acknowledge
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC2>DC2</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">R
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Two
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC3>DC3</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">S
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Three
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DC4>DC4</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">T
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Device Control Four
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DEL>DEL</a>
+<td bgcolor="#D0D0D0">DEL
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Delete Character
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DLE>DLE</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">P
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Data Link Escape
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EM>EM</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">Y
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Medium
+<tr>
+<td bgcolor="#D0D0D0"><a href=#EOT>EOT</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Transmission
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ETB>ETB</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">W
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Transmission Block
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ETX>ETX</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">End Of Text
+<tr>
+<td bgcolor="#D0D0D0"><a href=#FS>FS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">\
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">File Separator (IS4 - Information Separator Four)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#GS>GS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">]
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Group Separator (IS3 - Information Separator Three)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NAK>NAK</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">U
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Negative Acknowledge
+<tr>
+<td bgcolor="#D0D0D0"><a href=#NUL>NUL</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">@
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Null
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RS>RS</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">^
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Record Separator (IS2 - Information Separator Two)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SOH>SOH</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Start Of Heading
+<tr>
+<td bgcolor="#D0D0D0"><a href=#STX>STX</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Start Of Text
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SYN>SYN</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">V
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Synchronous Idle
+<tr>
+<td bgcolor="#D0D0D0"><a href=#US>US</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">_
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Unit Separator (IS1 - Information Separator One)
+<tr><td colspan=5><h3>Commands (Requests)</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DA>DA</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Device Attributes Request
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECID>DECID</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">Z
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Identify Terminal
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECREQTPARM>DECREQTPARM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">x
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Request Terminal Parameters
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DSRREQ>DSRREQ</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Device Status Report
+<tr>
+<td bgcolor="#D0D0D0"><a href=#ENQ>ENQ</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">E
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Enquiry
+</table>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Terminal to Host</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+<table>
+<tr><td colspan=5><h3>Replies</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CPR>CPR</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">R
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Cursor Position Report
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECDA>DECDA</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">{1;Pn}
+<td bgcolor="#D0D0D0">Device Attributes Reply
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECREPTPARM>DECREPTPARM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">x
+<td bgcolor="#D0D0D0">{sol;par;nbits;xspd;rspd;cmul;flags}
+<td bgcolor="#D0D0D0">Report Terminal Parameters
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DSRREP>DSRREP</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">{Status}
+<td bgcolor="#D0D0D0">Device Status Report Reply
+<tr><td colspan=5><h3>Events</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUB>CUB</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">D
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Backward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUD>CUD</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">B
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Down
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUF>CUF</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">C
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Foreward
+<tr>
+<td bgcolor="#D0D0D0"><a href=#CUU>CUU</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">A
+<td bgcolor="#D0D0D0">{Pn}
+<td bgcolor="#D0D0D0">Cursor Up
+<tr>
+<td bgcolor="#D0D0D0"><a href=#KEYBOARD>KEYBOARD</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Keyboard Events
+<tr>
+<td bgcolor="#D0D0D0"><a href=#MOUSE>MOUSE</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Mouse Events
+</table>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Modes</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+<table>
+<tr><td colspan=5><h3>Modes</h3>
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECANM>DECANM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">ANSI/VT52 Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECARM>DECARM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Auto Repeat Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECAWM>DECAWM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Autowrap Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECCKM>DECCKM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Cursor Keys Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECCOLM>DECCOLM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Column Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECINLM>DECINLM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Interlace Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECKPAM>DECKPAM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">=
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Keypad Application Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECKPNM>DECKPNM</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Keypad Numeric Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECOM>DECOM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Origin Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRC>DECRC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">8
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Restore Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECRST>DECRST</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSC>DECSC</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">7
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Save Cursor
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSCLM>DECSCLM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Scrolling Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSCNM>DECSCNM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Screen Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSET>DECSET</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">DEC Private Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#DECSTBM>DECSTBM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Pn;Pn}
+<td bgcolor="#D0D0D0">Set Top and Bottom Margins
+<tr>
+<td bgcolor="#D0D0D0"><a href=#HTS>HTS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">H
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Horizontal Tab Set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LNM>LNM</a>
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Line Feed/New Line Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS0>LS0</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">N
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Zero (Shift Out - SO)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS1>LS1</a>
+<td bgcolor="#D0D0D0">CTL
+<td bgcolor="#D0D0D0">O
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift One (Shift In - SI)
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS2>LS2</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">n
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Two
+<tr>
+<td bgcolor="#D0D0D0"><a href=#LS3>LS3</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">o
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Lock Shift Three
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RIS>RIS</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0">c
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">Reset to Initial State
+<tr>
+<td bgcolor="#D0D0D0"><a href=#RM>RM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">l
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Reset Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SCS>SCS</a>
+<td bgcolor="#D0D0D0">SCS
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">{Pc;Cs}
+<td bgcolor="#D0D0D0">Select Character Set
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SGR>SGR</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">m
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Select Graphic Rendition
+<tr>
+<td bgcolor="#D0D0D0"><a href=#SM>SM</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">h
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">Set Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#TBC>TBC</a>
+<td bgcolor="#D0D0D0">CSI
+<td bgcolor="#D0D0D0">g
+<td bgcolor="#D0D0D0">{Ps}
+<td bgcolor="#D0D0D0">Tabulation Clear
+<tr>
+<td bgcolor="#D0D0D0"><a href=#VT52ANSI>VT52ANSI</a>
+<td bgcolor="#D0D0D0">ESC
+<td bgcolor="#D0D0D0"><
+<td bgcolor="#D0D0D0">
+<td bgcolor="#D0D0D0">VT52 ANSI Ansi Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTERESTORE>XTERESTORE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">r
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Restore Mode
+<tr>
+<td bgcolor="#D0D0D0"><a href=#XTESAVE>XTESAVE</a>
+<td bgcolor="#D0D0D0">PRI
+<td bgcolor="#D0D0D0">s
+<td bgcolor="#D0D0D0">{Ps;...}
+<td bgcolor="#D0D0D0">XTerm Private Save Mode
+</table>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Appendix A - Notion Details</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+ <i>The following text is a collection of several sorts of definitions and
+ explainations. It is incomplete in many respects and a working draft.
+ </i>
+ .
+ <p>
+ All of the following control sequences are transmitted from the Host to
+ VT100 unless otherwise noted. All of the control sequences are a subset of
+ those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974.
+ <p>
+ The following text conforms to these formatting conventions:
+ <ul>
+ <li>Individual character literals are set in bold face. Ascii representation
+ is used throughout, so <b>ESC</b> means the binary value of 27 and
+ <b>[</b> a value of 91.
+ <p>
+ <li>Parameters are indicated by italic type faces.
+ <li>Parameter types usually are indicated as one of:
+ <table>
+ <tr><td><i>Pn </i></td><td>A string of digits representing a numerical value.</td></tr>
+ <tr><td><i>Ps </i></td><td>A character that selects an item from a list.</td></tr>
+ <tr><td><i>a-z</i></td><td>Any lowercase sequence of one or more
+ characters represent a value to be
+ entered (as in <i>Pn</i>), and the name in the
+ will be referred to in explanatory text.</td></tr>
+ </table>
+ <p>
+ <li>Spaces are used only to improve readability, they do not occure in the
+ control sequences unless otherwise indicated.
+ <p>
+ </ul>
+ <p>
+ <p>
+ The following attributes below have the following meaning:
+ <ul>
+ <li>VT100 - This code is known to VT100.
+ <li>ANSI - This code is defined by ANSI.
+ <li>DEC - This code is DEC private.
+ <li>Command - Sent from host to the terminal. <b>FIXME:</b>add Inquiery.
+ <li>Reply - Sent from terminal to the host (as response to an Inquiery).
+ <li>Event - Sent from terminal to the host (caused by a user activity).
+ <li>Mode - The entry is a mode.
+ </ul>
+<table>
+<tr><td width=10%%><td><td><td><td><td><td width=40%%>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ACK>ACK</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Acknowledge</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x06</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=BEL>BEL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Bell</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x07</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Sound bell
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">gui</td><td colspan=1 bgcolor="#5188B2">Bell</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=BS>BS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Back Space</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x08</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Move cursor to the left one position, unless it is at the left
+ margin, in which case no action is taken.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">BackSpace</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CAN>CAN</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cancel</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x18</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> If sent during a control sequence, the sequence id immediately
+ terminated and not executed. It also causes the error character
+ (checkerboard) to be displayed.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">ShowCharacter</td><td colspan=1 bgcolor="#5188B2">2</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CHA>CHA</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Horizontal Absolute</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>G</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorX</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CPR>CPR</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Position Report</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn;Pn</em> <b>R</b></code>
+ <td >Default: 1 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The CPR sequence reports the active position by means of the
+ parameters. This sequence has two parameter values, the first
+ specifying the line and the second specifying the column. The default
+ condition with no parameters present, or parameters of 0, is equivalent
+ to a cursor at home position.
+ <p>
+ The numbering of the lines depends upon the state of the Origin Mode
+ (<a href=#DECOM>DECOM</a>).
+ <p>
+ This control sequence is sent in reply to a device status report
+ (<a href=#DSRREQ>DSRREQ</a>) command sent from the host.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CR>CR</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Carriage Return</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0d</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Move the cursor to the left margin of the current line.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">Return</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CUB>CUB</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Backward</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>D</b></code>
+ <td >Default: 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the cursor to the left. The distance moved is
+ determined by the parameter. If the parameter missing, zero, or one,
+ the cursor is moved one position. The cursor cannot be moved past the
+ left margin.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorLeft</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CUD>CUD</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Down</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>B</b></code>
+ <td >Default: 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the cursor down a number of lines as specified in the parameter
+ without changing columns. The cursor cannot be moved past the bottom
+ margin.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorDown</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CUF>CUF</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Foreward</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>C</b></code>
+ <td >Default: 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the cursor to the right a number of positions
+ specified in the parameter. The cursor cannot be moved past the right
+ margin.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorRight</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CUP>CUP</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Position</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn;Pn</em> <b>H</b></code>
+ <td >Default: 1 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the curor to the position specified by the
+ parameters. The first parameter specifies the line, and the second
+ specifies the column. A value of zero for either line or column moves
+ the cursor to the first line or column in the display. The default
+ string (&lt;ESC&gt;H) homes the cursor. In the VT100, this command behaves
+ identically to it's format effector counterpart, <a href=#HVP>HVP</a>.
+ <p>
+ The numbering of the lines depends upon the state of the Origin Mode
+ (<a href=#DECOM>DECOM</a>).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorYX</td><td colspan=1 bgcolor="#5188B2">p,q</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=CUU>CUU</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Up</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>A</b></code>
+ <td >Default: 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the cursor up without changing columns. The cursor is moved up a
+ number of lines as indicated by the parameter. The cursor cannot be
+ moved beyond the top margin.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorUp</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DA>DA</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Attributes Request</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>c</b></code>
+ <td >Default: 0
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The host requests the VT100 to send a DA sequence to indentify
+ itself. This is done by sending the DA sequence with no parameters,
+ or with a parameter of zero.
+ The device replies by (<a href=#DECDA>DECDA</a>).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportTerminalType</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DC1>DC1</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Control One</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x11</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes terminal to resume transmission (XON).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DC2>DC2</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Control Two</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x12</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DC3>DC3</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Control Three</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x13</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes terminal to stop transmitting all codes except XOFF and XON (XOFF).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DC4>DC4</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Control Four</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x14</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DCH>DCH</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Delete Character</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>P</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">deleteChars</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECALN>DECALN</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Screen Alignment Display</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>#</b> <b>8</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes the VT100 to fill it's screen with
+ uppercase Es for screen focus and alignment.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">helpAlign</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECANM>DECANM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>ANSI/VT52 Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control sequences. The
+ reset state causes only VT52 compatible escape sequences to be
+ recognized. The set state causes only ANSI compatible escape sequences
+ to be recognized. See the entries for <a href=#MODES>MODES</a>, <a href=#SM>SM</a>, <a href=#RM>RM</a>
+ and <a href=#VT52ANSI>VT52ANSI</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECARM>DECARM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Auto Repeat Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control sequences. The
+ reset state causes no keyboard keys to auto-repeat, the set state
+ causes most of them to. See <a href=#MODES>MODES</a>, <a href=#SM>SM</a> and <a href=#RM>RM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECAWM>DECAWM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Autowrap Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control sequences. The
+ reset state prevents the cursor from moving when characters are
+ received while at the right margin. The set state causes these
+ characters to advance to the next line, causing a scroll up if required
+ and permitted. See <a href=#MODES>MODES</a>, <a href=#SM>SM</a>, and
+ <a href=#RM>RM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECCKM>DECCKM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Cursor Keys Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control requences. This
+ mode is only effective when the terminal is in keypad application mode
+ (<a href=#DECKPAM>DECKPAM</a>) and the ANSI/VT52 mode (<a href=#DECANM>DECANM</a>)
+ is set. Under these
+ conditions, if this mode is reset, the cursor keys will send ANSI
+ cursor control commands. If setm the cursor keys will send application
+ function commands. See <a href=#MODES>MODES</a>, <a href=#RM>RM</a>, and
+ <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECCOLM>DECCOLM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Column Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control sequences. The
+ reset state causes an 80 column screen to be used. The set state
+ causes a 132 column screen to be used. See <a href=#MODES>MODES</a>,
+ <a href=#RM>RM</a>, and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECDA>DECDA</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Attributes Reply</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <b>?</b> <em>1;Pn</em> <b>c</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Response to the <a href=#DA>DA</a> request (VT100 to host) is generated
+ by the VT100 as a DECDA control sequence with the numeric parameters as
+ follows:
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Pn</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=4 bgcolor="#5188B2">No options</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=4 bgcolor="#5BA5B2">Processor Option (STP)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 2</td><td colspan=4 bgcolor="#5188B2">Advanced Video Option (AVO)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 3</td><td colspan=4 bgcolor="#5BA5B2">AVO and STP</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=4 bgcolor="#5188B2">Graphics Option (GPO)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 5</td><td colspan=4 bgcolor="#5BA5B2">GPO and STP</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 6</td><td colspan=4 bgcolor="#5188B2">GPO and AVO</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECDHLB>DECDHLB</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Double Height Line (Bottom)</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>#</b> <b>4</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence cause the line containing the cursor to become the
+ bottom half of a double-height, double width line.
+ If the line was single width single height, all
+ characters to the right of the center of the screen will be lost. The
+ cursor remains over the same character position, unless it would be to
+ the right of the right margin, in which case it is moved to the right
+ margin.
+ <p>
+ <a href=#DECDHLB>DECDHLB</a> and <a href=#DECDHLT>DECDHLT</a>
+ should be used in pairs on adjacent lines with each line containing the
+ same character string.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECDHLT>DECDHLT</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Double Height Line (Top)</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>#</b> <b>3</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Cause the line containing the cursor to become the top half of a
+ double-height, double width line.
+ If the line was single width single height, all
+ characters to the right of the center of the screen will be lost. The
+ cursor remains over the same character position, unless it would be to
+ the right of the right margin, in which case it is moved to the right
+ margin.
+ <p>
+ <a href=#DECDHLB>DECDHLB</a> and <a href=#DECDHLT>DECDHLT</a>
+ should be used in pairs on adjacent lines with each line containing the
+ same character string.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECDWL>DECDWL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Double Width Line</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>#</b> <b>6</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This causes the line that contains the cursor to become double-width
+ single height. If the line was single width, all characters ro the
+ right of the center of the screen will be lost. The cursor remains
+ over the same character position, unless it would be to the right of
+ the right margin, in which case it is moved to the right margin.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECID>DECID</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Identify Terminal</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>Z</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence causes the same response as the <a href=#DA>DA</a> sequence. This
+ sequence will not be supported in future models.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportTerminalType</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECINLM>DECINLM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Interlace Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to the <a href=#RM>RM</a> and <a href=#SM>SM</a>
+ control sequences. The
+ reset state (non-interlace) causes the video processor to display 240
+ scan lines per frame. The set state causes the video processor to
+ display 480 scan lines per screen. See <a href=#MODES>MODES</a>,
+ <a href=#RM>RM</a>, and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECKPAM>DECKPAM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Keypad Application Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>=</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The auxiliary keypad keys will transmit control sequences.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppKeyPad</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECKPNM>DECKPNM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Keypad Numeric Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>&gt;</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The auxiliary keypad keys will send ASCII codes corresponding to the
+ characters engraved on their keys.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppKeyPad</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECLL>DECLL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Load LEDs</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps;...</em> <b>q</b></code>
+ <td >Default: 0
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Load the four programmable LEDs on the keyboard according to the parameter(s).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignore</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Clear all LEDs</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignore</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Light LED 1</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 2</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignore</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Light LED 2</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 3</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignore</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Light LED 3</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignore</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Light LED 4</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECOM>DECOM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Origin Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to <a href=#SM>SM</a> and <a href=#RM>RM</a>
+ control sequences. The reset
+ state causes the origin (or home position) to be the upper left
+ character position of the screen. Line and column numbers are,
+ therefore, independent of current margin settings. The cursor may be
+ positioned outside the margins with a cursor position (<a href=#CUP>CUP</a>) or
+ horizontal and vertical position (<a href=#HVP>HVP</a>) control.
+ <p>
+ The set state causes the origin to be at the upper left character
+ position within the current margins. Line and column numbers are,
+ therefore, relative to the current margin settings. The cursor cannot
+ be positioned outside of the margins.
+ <p>
+ The cursor is moved to the new home position when this mode is set or
+ reset. Lines and columns are numbered consecutively, with the origin
+ being line 1, column 1.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECRC>DECRC</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Restore Cursor</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>8</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence causes the previously saved cursor position, graphic
+ rendition, and character set to be restored.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">restoreCursor</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECREPTPARM>DECREPTPARM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Report Terminal Parameters</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>sol;par;nbits;xspd;rspd;cmul;flags</em> <b>x</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence is generated by the VT100 to notify the host of the
+ status of selected terminal parameters. The status sequence may be
+ sent when requested by the host (via <a href=#DECREQTPARM>DECREQTPARM</a>)
+ or at the terminal's
+ discretion. On power up or reset, the VT100 is inhibited from sending
+ unsolicited reports.
+ <p>
+ The meanings of the sequence parameters are:
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> cmul</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=4 bgcolor="#5188B2">The bit rate multiplier is 16</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> flags</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0-15</td><td colspan=4 bgcolor="#5188B2">This value communicates the four switch values in block 5 of SET-UP B, which are only visible to the user when an STP option is installed.</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> nbits</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=4 bgcolor="#5188B2">8 bits per character</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 2</td><td colspan=4 bgcolor="#5BA5B2">7 bits per character</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> par</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=4 bgcolor="#5188B2">No parity set</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 4</td><td colspan=4 bgcolor="#5BA5B2">Parity set and odd</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 5</td><td colspan=4 bgcolor="#5188B2">Parity set and even</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> sol</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=4 bgcolor="#5188B2">This message is a report.</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 2</td><td colspan=4 bgcolor="#5BA5B2">This message is a report, and the terminal is only reporting on request.</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> speed</td><td colspan=4 bgcolor="#D0D0D0">Meaning (xspd,rspd)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=4 bgcolor="#5188B2">Speed set to 50 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 8</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 75 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 16</td><td colspan=4 bgcolor="#5188B2">Speed set to 110 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 24</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 134.5 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 32</td><td colspan=4 bgcolor="#5188B2">Speed set to 150 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 40</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 200 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 48</td><td colspan=4 bgcolor="#5188B2">Speed set to 300 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 56</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 600 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 64</td><td colspan=4 bgcolor="#5188B2">Speed set to 1200 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 72</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 1800 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 80</td><td colspan=4 bgcolor="#5188B2">Speed set to 2000 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 88</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 2400 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 96</td><td colspan=4 bgcolor="#5188B2">Speed set to 3600 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 104</td><td colspan=4 bgcolor="#5BA5B2">Speed set to 4800 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 112</td><td colspan=4 bgcolor="#5188B2">Speed set to 9600 bps</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 120</td><td colspan=4 bgcolor="#5BA5B2">Speed set tp 19200 bps</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECREQTPARM>DECREQTPARM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Request Terminal Parameters</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps</em> <b>x</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The host sends this sequence to request the VT100 to send a
+ <a href=#DECREPTPARM>DECREPTPARM</a>
+ sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be
+ allowed to send unsolicited <a href=#DECREPTPARM>DECREPTPARM</a>s.
+ These reports will be generated each time the terminal exits the SET-UP mode.
+ If {Ps} is 1, then the terminal will only generate
+ <a href=#DECREPTPARM>DECREPTPARM</a>s in response to a request.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportTerminalParms</td><td colspan=1 bgcolor="#5188B2">2</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">reportTerminalParms</td><td colspan=1 bgcolor="#5BA5B2">3</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECRST>DECRST</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>DEC Private Reset Mode</b>
+ <td bgcolor="#D0D0D0">VT100 KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <b>?</b> <em>Ps;...</em> <b>l</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppCuKeys</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 2</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Ansi</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 3</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setColumns</td><td colspan=1 bgcolor="#5188B2">80</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 4</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 5</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_Screen</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 6</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Origin</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 7</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_Wrap</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 8</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 9</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 25</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Cursor</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 47</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppScreen</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1000</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Mouse1000</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1001</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1047</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_AppScreen</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1048</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">restoreCursor</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSC>DECSC</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Save Cursor</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>7</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes the cursor position, graphic rendition, and character set to be
+ saved. (See <a href=#DECRC>DECRC</a>)
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">saveCursor</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSCLM>DECSCLM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Scrolling Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to <a href=#RM>RM</a> and <a href=#SM>SM</a>
+ control sequences. The reset
+ state causes scrolls to "jump" instantaneuously one line at a time.
+ The set state causes the scrolls to be "smooth", and scrolls at a
+ maximum rate of siz lines/sec. See <a href=#MODES>MODES</a>,
+ <a href=#RM>RM</a>, and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSCNM>DECSCNM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Screen Mode</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a private parameter to <a href=#RM>RM</a> and <a href=#SM>SM</a>
+ control sequences. The reset
+ state causes the screen to be black with white characters; the set
+ state causes the screen to be white with black characters.
+ See <a href=#MODES>MODES</a>, <a href=#RM>RM</a>, and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSET>DECSET</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>DEC Private Set Mode</b>
+ <td bgcolor="#D0D0D0">VT100 KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <b>?</b> <em>Ps;...</em> <b>h</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppCuKeys</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 3</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">setColumns</td><td colspan=1 bgcolor="#5BA5B2">132</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 5</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Screen</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 6</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_Origin</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 7</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Wrap</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 8</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 9</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 25</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_Cursor</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 47</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">setMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_AppScreen</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1000</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_Mouse1000</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1001</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1047</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppScreen</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1048</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">saveCursor</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSTBM>DECSTBM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Set Top and Bottom Margins</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn;Pn</em> <b>r</b></code>
+ <td >Default: 1 ScreenLines
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence sets the top and bottom margins to define the scrolling
+ region. The first parameter is the line number of the first line in
+ the scrolling region; the second parameter is the line number of the
+ bottom line of the scrolling region.
+ <p>
+ Default is the entire screen (no margins).
+ The minimum region allowed is two lines, i.e., the top line
+ must be less than the bottom. The cursor is placed in the home
+ position (See <a href=#DECOM>DECOM</a>).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setMargins</td><td colspan=1 bgcolor="#5188B2">p,q</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECSWL>DECSWL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Single-width Line</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>#</b> <b>5</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This causes the line which contains the cursor to become single-width,
+ single-height. The cursor remains on the same character position.
+ This is the default condition for all new lines on the screen.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DECTST>DECTST</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Invoke Confidence Test</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>2;Ps</em> <b>y</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ps is the parameter indicating the test to be done. It is computed by
+ taking the weight indicated for each desired test and adding them
+ together. If Ps is 0, no test is performed but the VT100 is reset.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Weight</td><td colspan=4 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=4 bgcolor="#5188B2">POST (ROM checksum, RAM NVR, keyboardm and AVO)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 2</td><td colspan=4 bgcolor="#5BA5B2">Data Loop Back (Loopback connector required)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 3</td><td colspan=4 bgcolor="#5188B2">EIA Modem Control Test (Loopback connector req.)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 4</td><td colspan=4 bgcolor="#5BA5B2">Repeat Testing until failure</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DEL>DEL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Delete Character</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x7f</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DL>DL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Delete Line</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>M</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">konsole</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">deleteLines</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DLE>DLE</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Data Link Escape</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x10</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DSRREP>DSRREP</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Status Report Reply</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Status</em> <b>n</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Reports the general status of the VT100 according to the
+ following parameters.
+ <p>
+ DSRREP with a parameter of 0 or 3 is always sent as a response to a
+ requesting <a href=#DSRREQ>DSRREQ</a> with a parameter of 5.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Status</td><td colspan=3 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=3 bgcolor="#5188B2">Ready, no faults detected</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 3</td><td colspan=3 bgcolor="#5BA5B2">Malfunction detected</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=DSRREQ>DSRREQ</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Device Status Report</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps</em> <b>n</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Requests status of the VT100 according to the following parameters.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 5</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportStatus</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Report Status (using a <a href=#DSRREP>DSRREP</a> control sequence)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 6</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">reportCursorPosition</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Report Active Position (using a <a href=#CPR>CPR</a> sequence)</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ECH>ECH</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Erase Character</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>X</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">konsole</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">eraseChars</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ED>ED</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Erase in Display</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps</em> <b>J</b></code>
+ <td >Default: 0
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence erases some or all of the characters in the display
+ according to the parameter. Any complete line erased by this sequence
+ will return that line to single width mode.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearToEndOfScreen</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Erase from the cursor to the end of the screen.</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">clearToBeginOfScreen</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Erase from the start of the screen to the cursor.</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 2</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearEntireScreen</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Erase the entire screen.</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=EL>EL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Erase in Line</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps</em> <b>K</b></code>
+ <td >Default: 0
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Erases some or all characters in the active line, according to the
+ parameter.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearToEndOfLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Erase from cursor to the end of the line.</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">clearToBeginOfLine</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Erase from the start of the line to the cursor.</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 2</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearEntireLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Erase the entire line.</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=EM>EM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>End Of Medium</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x19</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ENQ>ENQ</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Enquiry</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x05</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Transmit the ANSWERBACK message. The answerback message can be loaded
+ in SET-UP B (i.e. is a configurable string).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportAnswerBack</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=EOT>EOT</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>End Of Transmission</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x04</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ESC>ESC</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Escape</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1b</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Introduces a control sequence.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ETB>ETB</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>End Of Transmission Block</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x17</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ETX>ETX</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>End Of Text</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x03</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=FF>FF</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Form Feed</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0c</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Same as <a href=#LF>LF</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">NewLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=FS>FS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>File Separator (IS4 - Information Separator Four)</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1c</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=GS>GS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Group Separator (IS3 - Information Separator Three)</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1d</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=HT>HT</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Horizontal Tabulation</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x09</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Move cursor to the next tab stop, or to the right margin
+ if no further tabs are set.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">Tabulate</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=HTS>HTS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Horizontal Tab Set</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>H</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Set a tab stop at the current cursor position.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">changeTabStop</td><td colspan=1 bgcolor="#5188B2">TRUE</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=HVP>HVP</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Horizontal and Vertical Position</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn;Pn</em> <b>f</b></code>
+ <td >Default: 1 1
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Moves the cursor to the position specified by the parameters. The
+ first parameter specifies the line, and the second specifies the
+ column. A parameter of 0 or 1 causes the active position to move to
+ the first line or column in the display. In the VT100, this control
+ behaves identically with it's editor counterpart, <a href=#CUP>CUP</a>.
+ The numbering of hte lines depends upon the state of the Origin Mode
+ (<a href=#DECOM>DECOM</a>).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorYX</td><td colspan=1 bgcolor="#5188B2">p,q</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=ICH>ICH</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Insert Character</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>@</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">konsole</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">insertChars</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=IL>IL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Insert Line</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>L</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">insertLines</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=IND>IND</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Index</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>D</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This sequence causes the cursor to move downward one line without
+ changing the column. If the cursor is at the bottom margin, a scroll
+ up is performed.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">index</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=KEYBOARD>KEYBOARD</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Keyboard Events</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Key</td><td colspan=4 bgcolor="#D0D0D0">Code</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> AltButton</td><td colspan=4 bgcolor="#5188B2">"\033"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Return</td><td colspan=4 bgcolor="#5BA5B2">MODE_NewLine ? "\r\n" : "\r"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Backspace</td><td colspan=4 bgcolor="#5188B2">MODE_BsHack ? "\x7f" : "\x08"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Delete</td><td colspan=4 bgcolor="#5BA5B2">MODE_BsHack ? "\033[3~" : "\x7f"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Up</td><td colspan=4 bgcolor="#5188B2">!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Down</td><td colspan=4 bgcolor="#5BA5B2">!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Right</td><td colspan=4 bgcolor="#5188B2">!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Left</td><td colspan=4 bgcolor="#5BA5B2">!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F1</td><td colspan=4 bgcolor="#5188B2">Xterm? "\033[11~": "\033[[A"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F2</td><td colspan=4 bgcolor="#5BA5B2">Xterm? "\033[12~": "\033[[B"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F3</td><td colspan=4 bgcolor="#5188B2">Xterm? "\033[13~": "\033[[C"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F4</td><td colspan=4 bgcolor="#5BA5B2">Xterm? "\033[14~": "\033[[D"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F5</td><td colspan=4 bgcolor="#5188B2">Xterm? "\033[15~": "\033[[E"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F6</td><td colspan=4 bgcolor="#5BA5B2">"\033[17~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F7</td><td colspan=4 bgcolor="#5188B2">"\033[18~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F8</td><td colspan=4 bgcolor="#5BA5B2">"\033[19~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F9</td><td colspan=4 bgcolor="#5188B2">"\033[20~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F10</td><td colspan=4 bgcolor="#5BA5B2">"\033[21~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> F11</td><td colspan=4 bgcolor="#5188B2">"\033[23~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> F12</td><td colspan=4 bgcolor="#5BA5B2">"\033[24~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Home</td><td colspan=4 bgcolor="#5188B2">"\033[7~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> End</td><td colspan=4 bgcolor="#5BA5B2">"\033[8~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Prior</td><td colspan=4 bgcolor="#5188B2">"\033[5~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Next</td><td colspan=4 bgcolor="#5BA5B2">"\033[6~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Insert</td><td colspan=4 bgcolor="#5188B2">"\033[2~"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Control_Space</td><td colspan=4 bgcolor="#5BA5B2">"\x00"</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> Control_Print</td><td colspan=4 bgcolor="#5188B2">reportAnswerBack()</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> Ascii</td><td colspan=4 bgcolor="#5BA5B2">Character</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LF>LF</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Line Feed</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0a</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes either a line feed or new line operation (See <a href=#LNM>LNM</a>.)
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">NewLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LNM>LNM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Line Feed/New Line Mode</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is a parameter to <a href=#SM>SM</a> and <a href=#RM>RM</a> control sequences.
+ The reset state
+ causes the interpretation of the <a href=#LF>LF</a> character to imply only vertical
+ movement of the cursor and causes the RETURN key to send the single
+ code <a href=#CR>CR</a>.
+ <p>
+ The set state causes the <a href=#LF>LF</a> character to imply movement
+ to the first position of the following line, and causes the RETURN key
+ to send the code pair <a href=#CR>CR</a> <a href=#LF>LF</a>. This is the New Line option.
+ <p>
+ This mode does not affect the Index (<a href=#IND>IND</a>) or the next line
+ (<a href=#NEL>NEL</a>) format effectors.
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LS0>LS0</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Lock Shift Zero (Shift Out - SO)</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0e</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Invoke the G1 character set, as designated by the <a href=#SCS>SCS</a> control sequence.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">useCharset</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LS1>LS1</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Lock Shift One (Shift In - SI)</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0f</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Invoke the G0 character set, as selected by the &lt;ESC&gt;( sequence.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">useCharset</td><td colspan=1 bgcolor="#5188B2">0</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LS2>LS2</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Lock Shift Two</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>n</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">useCharset</td><td colspan=1 bgcolor="#5188B2">2</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=LS3>LS3</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Lock Shift Three</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>o</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">useCharset</td><td colspan=1 bgcolor="#5188B2">3</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=MC>MC</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Media Copy</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>i</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=MOUSE>MOUSE</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Mouse Events</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=NAK>NAK</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Negative Acknowledge</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x15</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=NEL>NEL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Next Line</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>E</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This causes the cursor to move to the first position of the next line
+ down. If the cursor is on the bottom line, a scroll is performed.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">NextLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=NUL>NUL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Null</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x00</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> NUL is used as media- or time-fill. It is ignored by Konsole, but may
+ be sensible for devices which requiere a recognizable amount of time
+ to complete some commands (e.g. form feed on a non-buffering printing
+ device).
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=PRINT>PRINT</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Printable Characters</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <em>0x20..0x7e,0xa0..0xff</em></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Printable characters are basically displayed. They my cause a line
+ wrap when the cursor is already located at the end of the line.
+ <p>
+ The VT100 has a unique way to do this by producing a line wrap before
+ the character would be displayed on the next line. This feature allows
+ to print at the rightmost column without producing an implicit line feed.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">ShowCharacter</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=RI>RI</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Reverse Index</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>M</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Move the cursor up one line without changing columns. If the cursor is
+ on the top line, a scroll down is performed.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">reverseIndex</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=RIS>RIS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Reset to Initial State</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>c</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Resets the VT100 to the state is has upon power up. This also causes
+ the execution of the POST and signal INT H to be asserted briefly.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">resetTerminal</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=RM>RM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Reset Mode</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps;...</em> <b>l</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Resets one or more VT100 modes as specified by each selective parameter
+ in the parameter string. Each mode to be reset is specified by a
+ separate parameter. See <a href=#MODES>MODES</a> and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_Insert</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 20</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">resetMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_NewLine</td><td colspan=1 bgcolor="#5BA5B2"><a href=#LNM>LNM</a></td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=RS>RS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Record Separator (IS2 - Information Separator Two)</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1e</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SCS>SCS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Select Character Set</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <em>Pc;Cs</em></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> The appropriate D0 and G1 character sets are designated from one of the
+ five possible sets. The G0 and G1 sets are invoked by the characters
+ <a href=#LS1>LS1</a> and <a href=#LS0>LS0</a>, respectively.
+ <p>
+ The United Kingdom and ASCII sets conform to the "ISO international
+ register of character sets to be used with escape sequences". The
+ other sets are private character sets. Special graphics means that the
+ graphic characters fpr the codes 0137 to 0176 are replaced with other
+ characters. The specified character set will be used until another SCS
+ is received.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Cs</td><td colspan=4 bgcolor="#D0D0D0">Character Set</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> A</td><td colspan=4 bgcolor="#5188B2">United Kingdom Set</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> B</td><td colspan=4 bgcolor="#5BA5B2">ASCII Set</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=4 bgcolor="#5188B2">Special Graphics</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=4 bgcolor="#5BA5B2">Alternate Character ROM (Standard Character Set)</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 2</td><td colspan=4 bgcolor="#5188B2">Alternate Character ROM (Special Graphics)</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Pc</td><td colspan=4 bgcolor="#D0D0D0">Character Selection</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> (</td><td colspan=4 bgcolor="#5188B2">Select G0 Set</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> )</td><td colspan=4 bgcolor="#5BA5B2">Select G1 Set</td></tr>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setCharset</td><td colspan=1 bgcolor="#5188B2">p-'(',q</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SGR>SGR</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Select Graphic Rendition</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps;...</em> <b>m</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Invoke the graphic rendition specified by the parameter(s). All
+ following characters transmitted to the VT100 are rendered according
+ to the parameter(s) until the next occurrence of an SGR.
+ <p>
+ All other parameter values are ignored.
+ <p>
+ Without the Advanced Video Option, only one type of character attribute
+ is possible, as determined by the cursor selection; in that case
+ specifying either underscore or reverse will activate the currently
+ selected attribute.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setDefaultRendition</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Attributes Off</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setRendition</td><td colspan=1 bgcolor="#5BA5B2">RE_BOLD</td><td colspan=1 bgcolor="#5BA5B2">Bold or increased intensity</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setRendition</td><td colspan=1 bgcolor="#5188B2">RE_UNDERLINE</td><td colspan=1 bgcolor="#5188B2">Underscore</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 5</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setRendition</td><td colspan=1 bgcolor="#5BA5B2">RE_BLINK</td><td colspan=1 bgcolor="#5BA5B2">Blink</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 7</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setRendition</td><td colspan=1 bgcolor="#5188B2">RE_REVERSE</td><td colspan=1 bgcolor="#5188B2">Negative (reverse) image</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 10</td><td colspan=1 bgcolor="#5BA5B2">konsole</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 11</td><td colspan=1 bgcolor="#5188B2">konsole</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 12</td><td colspan=1 bgcolor="#5BA5B2">konsole</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">Ignored</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 22</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">resetRendition</td><td colspan=1 bgcolor="#5188B2">RE_BOLD</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 24</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">resetRendition</td><td colspan=1 bgcolor="#5BA5B2">RE_UNDERLINE</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 25</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">resetRendition</td><td colspan=1 bgcolor="#5188B2">RE_BLINK</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 27</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">resetRendition</td><td colspan=1 bgcolor="#5BA5B2">RE_REVERSE</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 30</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">0</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 31</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">1</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 32</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">2</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 33</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">3</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 34</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">4</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 35</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">5</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 36</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">6</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 37</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">7</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 39</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColorToDefault</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 40</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">0</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 41</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 42</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">2</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 43</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">3</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 44</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">4</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 45</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">5</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 46</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">6</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 47</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">7</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 49</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColorToDefault</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 90</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">8</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 91</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">9</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 92</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">10</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 93</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">11</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 94</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">12</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 95</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">13</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 96</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setForeColor</td><td colspan=1 bgcolor="#5188B2">14</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 97</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setForeColor</td><td colspan=1 bgcolor="#5BA5B2">15</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 100</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">8</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 101</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">9</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 102</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">10</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 103</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">11</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 104</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">12</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 105</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">13</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 106</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setBackColor</td><td colspan=1 bgcolor="#5188B2">14</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 107</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">setBackColor</td><td colspan=1 bgcolor="#5BA5B2">15</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SM>SM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Set Mode</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps;...</em> <b>h</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Causes one or more modes to be set within the VT100 as specified by
+ each selective parameter string. Each mode to be set is specified by a
+ seperate parameter. A mode is considered set until it is reset by a
+ Reset Mode (<a href=#RM>RM</a>) control sequence.
+ See <a href=#RM>RM</a> and <a href=#MODES>MODES</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 4</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_Insert</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 20</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">setMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_NewLine</td><td colspan=1 bgcolor="#5BA5B2"><a href=#LNM>LNM</a></td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SOH>SOH</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Start Of Heading</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x01</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=STX>STX</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Start Of Text</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x02</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SUB>SUB</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Substitute</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1a</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Same as <a href=#CAN>CAN</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">ShowCharacter</td><td colspan=1 bgcolor="#5188B2">2</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=SYN>SYN</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Synchronous Idle</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x16</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=TBC>TBC</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Tabulation Clear</b>
+ <td bgcolor="#D0D0D0">ECMA VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Ps</em> <b>g</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> If the parameter is missing or 0, this will clear the tab stop at the
+ cursor's position. If it is 3, this will clear all of the tab stops.
+ Any other parameter is ignored.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 0</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">changeTabStop</td><td colspan=1 bgcolor="#5188B2">FALSE</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 3</td><td colspan=1 bgcolor="#5BA5B2">VT100</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">clearTabStops</td><td colspan=1 bgcolor="#5BA5B2"></td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=US>US</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Unit Separator (IS1 - Information Separator One)</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM Linux KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x1f</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Ignored
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VPA>VPA</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Vertical Position Absolute</b>
+ <td bgcolor="#D0D0D0">ECMA KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <em>Pn</em> <b>d</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorY</td><td colspan=1 bgcolor="#5188B2">p</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT>VT</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>Vertical Tabulation</b>
+ <td bgcolor="#D0D0D0">VT100
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>0x0b</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Same as <a href=#LF>LF</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT100</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">NewLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52ANSI>VT52ANSI</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 ANSI Ansi Mode</b>
+ <td bgcolor="#D0D0D0">VT100 XTERM VT52 KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>&lt;</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> This is an extension to the VT52 commands to embed the emulation into VT100.
+ It allows to return back to VT100 emulation (ANSI mode).
+ See also <a href=#DECANM>DECANM</a> and <a href=#SM>SM</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_Ansi</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUB>VT52CUB</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Back</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>D</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> See <a href=#CUB>CUB</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorLeft</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUD>VT52CUD</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Down</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>B</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> See <a href=#CUD>CUD</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorDown</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUF>VT52CUF</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Forward</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>C</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> See <a href=#CUF>CUF</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorRight</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUH>VT52CUH</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Home</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>H</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorYX</td><td colspan=1 bgcolor="#5188B2">1,1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUP>VT52CUP</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Position</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>Y</b> <em>X;Y</em></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Line and column numbers for direct cursor address are single
+ character codes whose values are the desired number plus
+ 37 (in Octal). Line and column numbers start at 1.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setCursorYX</td><td colspan=1 bgcolor="#5188B2">p-31,q-31</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52CUU>VT52CUU</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Cursor Up</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>A</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> See <a href=#CUU>CUU</a>.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">cursorUp</td><td colspan=1 bgcolor="#5188B2">1</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52EDL>VT52EDL</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Clear To End Of Line</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>K</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearToEndOfLine</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52EDS>VT52EDS</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Clear To End Of Screen</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>J</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">clearToEndOfScreen</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52KPAM>VT52KPAM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Enter alternate keypad mode</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>=</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6>
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">setMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppKeyPad</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52KPNM>VT52KPNM</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Exit alternate keypad mode</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>&gt;</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">resetMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppKeyPad</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52REP>VT52REP</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Report Terminal Type</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>Z</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> Response to ESC Z is ESC / Z.
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">reportTerminalType</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52RI>VT52RI</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Reverse Index</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>I</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">reverseIndex</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52SCSF>VT52SCSF</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Select special graphics character set</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>F</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setAndUseCharset</td><td colspan=1 bgcolor="#5188B2">0,'0'</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=VT52SCSG>VT52SCSG</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>VT52 Select ASCII character set</b>
+ <td bgcolor="#D0D0D0">KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>G</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> N/A</td><td colspan=1 bgcolor="#5188B2">VT52</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">setAndUseCharset</td><td colspan=1 bgcolor="#5188B2">0,'B'</td><td colspan=1 bgcolor="#5188B2">see above</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=XTERESTORE>XTERESTORE</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>XTerm Private Restore Mode</b>
+ <td bgcolor="#D0D0D0">XTERM KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <b>?</b> <em>Ps;...</em> <b>r</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">restoreMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppCuKeys</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 6</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">restoreMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Origin</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 7</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">restoreMode</td><td colspan=1 bgcolor="#5188B2">MODE_Wrap</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1000</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">restoreMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Mouse1000</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1001</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr><td><p></td></tr>
+<tr><td bgcolor="#D0D0D0"><a name=XTESAVE>XTESAVE</a>
+ <td colspan=5 bgcolor="#D0D0D0"><b>XTerm Private Save Mode</b>
+ <td bgcolor="#D0D0D0">XTERM KONSOLE
+<tr><td><p></td>
+<tr><td>
+ <td colspan=5 ><code> <b>ESC</b> <b>[</b> <b>?</b> <em>Ps;...</em> <b>s</b></code>
+<tr><td><p></td>
+<tr><td></td>
+ <td colspan=6> FIXME. explain
+<tr><td><p></td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#D0D0D0"> Subcode</td><td colspan=1 bgcolor="#D0D0D0">Emulation</td><td colspan=1 bgcolor="#D0D0D0">Scope</td><td colspan=1 bgcolor="#D0D0D0">Operation</td><td colspan=1 bgcolor="#D0D0D0">Args</td><td colspan=1 bgcolor="#D0D0D0">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">saveMode</td><td colspan=1 bgcolor="#5188B2">MODE_AppCuKeys</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 6</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">scr</td><td colspan=1 bgcolor="#5BA5B2">saveMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Origin</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 7</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">scr</td><td colspan=1 bgcolor="#5188B2">saveMode</td><td colspan=1 bgcolor="#5188B2">MODE_Wrap</td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5BA5B2"> 1000</td><td colspan=1 bgcolor="#5BA5B2">xterm</td><td colspan=1 bgcolor="#5BA5B2">emu</td><td colspan=1 bgcolor="#5BA5B2">saveMode</td><td colspan=1 bgcolor="#5BA5B2">MODE_Mouse1000</td><td colspan=1 bgcolor="#5BA5B2">Meaning</td></tr>
+<tr>
+<td></td>
+<td colspan=1 bgcolor="#5188B2"> 1001</td><td colspan=1 bgcolor="#5188B2">xterm</td><td colspan=1 bgcolor="#5188B2">emu</td><td colspan=1 bgcolor="#5188B2">Ignored</td><td colspan=1 bgcolor="#5188B2"></td><td colspan=1 bgcolor="#5188B2">Meaning</td></tr>
+</table>
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>On VT100</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+
+The VT100 is an upward and downward software-compatible terminal;
+that is, previous Digital video terminals have Digital's private standards
+for control sequences. The American National Standards Institute has since
+standardized escape and control sequences in terminals in documents X3.41-1974
+and X3.64-1977.
+<p>
+The VT100 is compatible with both the previous Digital standard and
+ANSI standards. Customers may use existing Digital software designed around
+the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in
+which the VT100 responds to control sequences like a VT52. In this mode, most
+of the new VT100 features cannot be used.
+<p>
+Throughout this document references will be made to "VT52 mode" or
+"ANSI mode". These two terms are used to indicate the VT100's software
+compatibility.
+<p>
+<em>NOTE</em>: The ANSI standards allow the manufacturer flexibility in implementing
+each function. This document describes how the VT100 will respond to the
+implemented ANSI central function.
+<p>
+
+<h2>
+<table width=100%>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+<tr><td align=center bgcolor=#d0d0d0>Modes</td></tr>
+<tr><td align=center bgcolor=#d0d0d0></td></tr>
+</table>
+</h2>
+<a name=#MODES></a>
+
+
+The Following is a list of VT100 modes which may be changed with Set
+Mode (SM) and Reset Mode (RM) controls.
+
+<h3>ANSI Specified Modes</h3>
+
+<table border=1>
+<tr><td>Parameter</td><td>Mnemonic</td><td>Function</td></tr>
+<tr><td><hr></td><td><hr></td><td><hr></td></tr>
+<tr><td>0 </td><td> </td><td>Error (Ignored)</td></tr>
+<tr><td>20 </td><td>LNM </td><td>Line Feed/New Line Mode</td></tr>
+</table>
+
+
+<h3>DEC Private Modes</h3>
+
+If the first character in the parameter string is ? (077), the
+parameters are interpreted as DEC private parameters according to the
+following:
+
+<table border=1>
+<tr><td>Parameter</td><td>Mnemonic</td><td>Function
+<tr><td><hr></td><td><hr></td><td><hr></td></tr>
+<tr><td>0</td><td> </td><td>Error (Ignored)</td></tr>
+<tr><td>1</td><td><a href=#DECCKM >DECCKM </a></td><td>Cursor Key </td></tr>
+<tr><td>2</td><td><a href=#DECANM >DECANM </a></td><td>ANSI/VT52 </td></tr>
+<tr><td>3</td><td><a href=#DECCOLM>DECCOLM</a></td><td>Column </td></tr>
+<tr><td>4</td><td><a href=#DECSCLM>DECSCLM</a></td><td>Scrolling </td></tr>
+<tr><td>5</td><td><a href=#DECSCNM>DECSCNM</a></td><td>Screen </td></tr>
+<tr><td>6</td><td><a href=#DECOM >DECOM </a></td><td>Origin </td></tr>
+<tr><td>7</td><td><a href=#DECAWM >DECAWM </a></td><td>Auto Wrap </td></tr>
+<tr><td>8</td><td><a href=#DECARM>DECARM </a></td><td>Auto Repeat </td></tr>
+<tr><td>9</td><td><a href=#DECINLM>DECINLM</a></td><td>Interlace </td></tr>
+</table>
+
+Any other parameter values are ignored.
+
+<p>
+The following modes, which are specified in the ANSI standard, may be
+considered to be permanently set, permanently reset, or not applicable,
+as noted.
+
+<table border=1>
+<tr><td>Mnemonic</td><td>Function </td><td>State</td></tr>
+
+<tr><td>CRM </td><td>Control Representation </td><td>Reset</td></tr>
+<tr><td>EBM </td><td>Editing Boundary </td><td>Reset</td></tr>
+<tr><td>ERM </td><td>Erasure </td><td>Set </td></tr>
+<tr><td>FEAM </td><td>Format Effector Action </td><td>Reset</td></tr>
+<tr><td>FETM </td><td>Format Effector Transfer </td><td>Reset</td></tr>
+<tr><td>GATM </td><td>Guarded Area Transfer </td><td>NA </td></tr>
+<tr><td>HEM </td><td>Horizontal Editing </td><td>NA </td></tr>
+<tr><td>IRM </td><td>Insertion-replacement </td><td>Reset</td></tr>
+<tr><td>KAM </td><td>Keyboard Action </td><td>Reset</td></tr>
+<tr><td>MATM </td><td>Multiple area transfer </td><td>NA </td></tr>
+<tr><td>PUM </td><td>Positioning Unit </td><td>Reset</td></tr>
+<tr><td>SATM </td><td>Selected Area Transfer </td><td>NA </td></tr>
+<tr><td>SRTM </td><td>Status Reporting Transfer</td><td>Reset</td></tr>
+<tr><td>TSM </td><td>Tabulation Stop </td><td>Reset</td></tr>
+<tr><td>TTM </td><td>Transfer Termination </td><td>NA </td></tr>
+<tr><td>VEM </td><td>Vertical Editing </td><td>NA </td></tr>
+</table>
+<h2>Keyboard Codes</h2>
+
+The notation &lt;ESC&gt; denotes a single ASCII Escape character, 1Bx.
+
+<table border=1>
+<tr>
+<td>Cursor Key</td>
+<td>VT52 mode</td>
+<td>ANSI mode w/cursor <br> key mode reset</td>
+<td>ANSI mode w/cursor <br> key mode set</td>
+</tr>
+<tr><td>UP </td><td>&lt;ESC&gt;A</td><td>&lt;ESC&gt;[A</td><td>&lt;ESC&gt;OA</td></tr>
+<tr><td>DOWN </td><td>&lt;ESC&gt;B</td><td>&lt;ESC&gt;[B</td><td>&lt;ESC&gt;OB</td></tr>
+<tr><td>RIGHT</td><td>&lt;ESC&gt;C</td><td>&lt;ESC&gt;[C</td><td>&lt;ESC&gt;OC</td></tr>
+<tr><td>LEFT </td><td>&lt;ESC&gt;D</td><td>&lt;ESC&gt;[D</td><td>&lt;ESC&gt;OD</td></tr>
+</table>
+<h2>Special Graphics Characters</h2>
+
+If the Special Graphics set is selected, the graphics for ASCII codes
+0137 through 0176 will be replaced according to the following table (see the
+<a href=#SCS>SCS</a> control sequence).
+<center>
+<table cellspacing=30>
+<tr><td><table><tr><td>Octal<br>Code </td>
+ <td>ASCII<br>Graphic</td>
+ <td>Special Graphic </td></tr>
+<tr><td><hr></td>
+ <td><hr></td>
+ <td><hr></td></tr>
+<tr><td>0137</td>
+ <td align=center>_</td>
+ <td>Blank</td></tr>
+<tr><td>0140</td>
+ <td align=center>`</td>
+ <td>Diamond</td></tr>
+<tr><td>0141</td>
+ <td align=center>a</td>
+ <td>Checkerboard</td></tr>
+<tr><td>0142</td>
+ <td align=center>b</td>
+ <td>Digraph: (HT)</td></tr>
+<tr><td>0143</td>
+ <td align=center>c</td>
+ <td>Digraph: (FF)</td></tr>
+<tr><td>0144</td>
+ <td align=center>d</td>
+ <td>Digraph: (CR)</td></tr>
+<tr><td>0145</td>
+ <td align=center>e</td>
+ <td>Digraph: (LF)</td></tr>
+<tr><td>0146</td>
+ <td align=center>f</td>
+ <td>Degree Symbol: &deg;</td></tr>
+<tr><td>0147</td>
+ <td align=center>g</td>
+ <td>+/- Symbol: &plusmn;</td></tr>
+<tr><td>0150</td>
+ <td align=center>h</td>
+ <td>Digraph: (NL)</td></tr>
+<tr><td>0151</td>
+ <td align=center>i</td>
+ <td>Digraph: (VT)</td></tr>
+<tr><td>0152</td>
+ <td align=center>j</td>
+ <td>Lower-right corner</td></tr>
+<tr><td>0153</td>
+ <td align=center>k</td>
+ <td>Upper-right corner</td></tr>
+<tr><td>0154</td>
+ <td align=center>l</td>
+ <td>Upper-left corner</td></tr>
+<tr><td>0155</td>
+ <td align=center>m</td>
+ <td>Lower-left corner</td></tr>
+<tr><td>0156</td>
+ <td align=center>n</td>
+ <td>Crossing lines (+)</td></tr>
+</td></table></td><td><table><tr><td>Octal<br>Code </td>
+ <td>ASCII<br>Graphic</td>
+ <td>Special Graphic </td></tr>
+<tr><td><hr></td>
+ <td><hr></td>
+ <td><hr></td></tr>
+<tr><td>0157</td>
+ <td align=center>o</td>
+ <td>Horiz Line - scan 1</td></tr>
+<tr><td>0160</td>
+ <td align=center>p</td>
+ <td>Horiz Line - scan 3</td></tr>
+<tr><td>0161</td>
+ <td align=center>q</td>
+ <td>Horiz Line - scan 5</td></tr>
+<tr><td>0162</td>
+ <td align=center>r</td>
+ <td>Horiz Line - scan 7</td></tr>
+<tr><td>0163</td>
+ <td align=center>s</td>
+ <td>Horiz Line - scan 9</td></tr>
+<tr><td>0164</td>
+ <td align=center>t</td>
+ <td>Left "T" (|-)</td></tr>
+<tr><td>0165</td>
+ <td align=center>u</td>
+ <td>Right "T" (-|)</td></tr>
+<tr><td>0166</td>
+ <td align=center>v</td>
+ <td>Bottom "T" (|_)</td></tr>
+<tr><td>0167</td>
+ <td align=center>w</td>
+ <td>Top "T" (T)</td></tr>
+<tr><td>0170</td>
+ <td align=center>x</td>
+ <td>Vertical Bar (|)</td></tr>
+<tr><td>0171</td>
+ <td align=center>y</td>
+ <td>Less/Equal: &le;</td></tr>
+<tr><td>0172</td>
+ <td align=center>z</td>
+ <td>Graeter/Egual: &ge;</td></tr>
+<tr><td>0173</td>
+ <td align=center>{</td>
+ <td>Pi symbol: &pi;</td></tr>
+<tr><td>0174</td>
+ <td align=center>|</td>
+ <td>Not equal: &ne;</td></tr>
+<tr><td>0175</td>
+ <td align=center>}</td>
+ <td>UK pound symbol: &pound;</td></tr>
+<tr><td>0176</td>
+ <td align=center>~</td>
+ <td>Centered dot: &middot;</td></tr>
+</td></tr></table>
+</table>
+</center>
+<em>NOTE 1</em>: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each
+piece of this set is contiguous with other so the lines formed will be
+unbroken.
+<p>
+<em>NOTE 2</em>: Codes 0157-0163 give better vertical resolution than dashes and
+underlines when drawing graphs; using these segments, 120 x 132 resolution may
+be obtained in 132 column mode with the Advanced Video Option installed.
+<p>
+
+<h2>References</h2>
+<p>
+<hr>
+<small>
+This text 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.
+<p>
+<a href="mailto:lars.doelle@on-line.de">Lars D&ouml;lle</a>, 1998
+</small>
+
+</body>
+</html>
diff --git a/konsole/doc/VT100/vt100.gif b/konsole/doc/VT100/vt100.gif
new file mode 100644
index 000000000..0d3e21d49
--- /dev/null
+++ b/konsole/doc/VT100/vt100.gif
@@ -0,0 +1,401 @@
+/* XPM */
+static char*vt100[]={
+"188 161 237 2",
+".N c #5d5d5d",
+"bA c #040404",
+".f c #f4f4f4",
+".Y c #9b9b9b",
+"Qt c None",
+"#Z c #424242",
+".w c #d9d9d9",
+"#W c #808080",
+"aF c #272727",
+"bq c #bebebe",
+".M c #656565",
+"bz c #0c0c0c",
+"aI c #a3a3a3",
+"#h c #4a4a4a",
+".x c #e1e1e1",
+"a2 c #888888",
+"ao c #2f2f2f",
+"bK c #c6c6c6",
+"#. c #6d6d6d",
+"bt c #141414",
+".3 c #ababab",
+"aT c #525252",
+".Z c #e9e9e9",
+"aX c #909090",
+"#M c #373737",
+"aP c #cecece",
+"#x c #757575",
+"aK c #1c1c1c",
+"#s c #b3b3b3",
+"ag c #5a5a5a",
+"bC c #010101",
+".s c #f1f1f1",
+"ba c #989898",
+"#2 c #3f3f3f",
+"ac c #d6d6d6",
+".H c #7d7d7d",
+"av c #242424",
+"bL c #bbbbbb",
+".P c #626262",
+".F c #a0a0a0",
+"#J c #474747",
+".p c #dedede",
+"ae c #858585",
+"ar c #2c2c2c",
+"#r c #c3c3c3",
+".R c #6a6a6a",
+"bg c #111111",
+"az c #a8a8a8",
+"#e c #4f4f4f",
+".i c #e6e6e6",
+"a5 c #8d8d8d",
+"#P c #343434",
+"#q c #cbcbcb",
+"#A c #727272",
+"aW c #191919",
+"bh c #b0b0b0",
+"#D c #575757",
+".e c #eeeeee",
+"ad c #959595",
+"#k c #3c3c3c",
+".B c #d3d3d3",
+".6 c #7a7a7a",
+"aL c #212121",
+"#7 c #b8b8b8",
+"#a c #5f5f5f",
+"bF c #060606",
+".# c #f6f6f6",
+"bd c #9d9d9d",
+"#H c #444444",
+".v c #dbdbdb",
+"b# c #828282",
+"aE c #292929",
+"bp c #c0c0c0",
+".L c #676767",
+"bj c #a5a5a5",
+"#g c #4c4c4c",
+".j c #e3e3e3",
+"a1 c #8a8a8a",
+"at c #313131",
+".1 c #c8c8c8",
+".8 c #6f6f6f",
+"bl c #161616",
+"#R c #adadad",
+"#E c #545454",
+".A c #ebebeb",
+"#p c #929292",
+"#j c #393939",
+"ai c #d0d0d0",
+".I c #777777",
+"aM c #1e1e1e",
+"bx c #b5b5b5",
+".U c #5c5c5c",
+"bG c #030303",
+".g c #f3f3f3",
+".4 c #9a9a9a",
+"#3 c #414141",
+"aa c #d8d8d8",
+"af c #7f7f7f",
+"au c #262626",
+".D c #bdbdbd",
+".V c #646464",
+"be c #a2a2a2",
+"#0 c #494949",
+".k c #e0e0e0",
+"a0 c #878787",
+"aD c #2e2e2e",
+"bH c #c5c5c5",
+".K c #6c6c6c",
+"bu c #131313",
+"bs c #aaaaaa",
+"#f c #515151",
+".c c #e8e8e8",
+".G c #8f8f8f",
+"#4 c #363636",
+"aB c #cdcdcd",
+".7 c #747474",
+"aJ c #1b1b1b",
+"bO c #b2b2b2",
+"a. c #595959",
+"bB c #000000",
+".0 c #f0f0f0",
+"a9 c #979797",
+"#I c #3e3e3e",
+"ah c #d5d5d5",
+"a4 c #7c7c7c",
+"aR c #232323",
+"bI c #bababa",
+".T c #616161",
+"bD c #080808",
+"bi c #9f9f9f",
+"#1 c #464646",
+".r c #dddddd",
+"aY c #848484",
+"aC c #2b2b2b",
+"ax c #c2c2c2",
+"## c #696969",
+"aH c #a7a7a7",
+"#F c #4e4e4e",
+".n c #e5e5e5",
+"a6 c #8c8c8c",
+"#N c #333333",
+".C c #cacaca",
+".9 c #717171",
+".E c #afafaf",
+"#d c #565656",
+".h c #ededed",
+"#u c #949494",
+"#L c #3b3b3b",
+"#5 c #d2d2d2",
+"#y c #797979",
+"aO c #202020",
+"#T c #b7b7b7",
+"#b c #5e5e5e",
+"bE c #050505",
+".a c #f5f5f5",
+"bc c #9c9c9c",
+"#n c #434343",
+".y c #dadada",
+"#9 c #818181",
+"as c #282828",
+"bN c #bfbfbf",
+".W c #666666",
+"bw c #0d0d0d",
+"#t c #a4a4a4",
+"#Y c #4b4b4b",
+".m c #e2e2e2",
+".5 c #898989",
+"aw c #303030",
+"#S c #c7c7c7",
+"#C c #6e6e6e",
+"#8 c #acacac",
+"ak c #535353",
+".d c #eaeaea",
+"aS c #919191",
+"#Q c #383838",
+"ap c #cfcfcf",
+"#w c #767676",
+"aQ c #1d1d1d",
+"bP c #b4b4b4",
+"bJ c #5b5b5b",
+"by c #020202",
+".z c #f2f2f2",
+"bb c #999999",
+"#i c #404040",
+"ab c #d7d7d7",
+"#v c #7e7e7e",
+".2 c #bcbcbc",
+".O c #636363",
+"bv c #0a0a0a",
+"bf c #a1a1a1",
+"#G c #484848",
+".l c #dfdfdf",
+"aZ c #868686",
+"al c #2d2d2d",
+"bM c #c4c4c4",
+"#B c #6b6b6b",
+"bn c #a9a9a9",
+"an c #505050",
+".u c #e7e7e7",
+"a7 c #8e8e8e",
+"#m c #353535",
+"br c #cccccc",
+"#z c #737373",
+"bo c #1a1a1a",
+"aG c #b1b1b1",
+"#c c #585858",
+".b c #efefef",
+"#V c #969696",
+"#K c #3d3d3d",
+"aq c #d4d4d4",
+".X c #7b7b7b",
+"am c #b9b9b9",
+".S c #606060",
+"aj c #9e9e9e",
+"#o c #454545",
+".q c #dcdcdc",
+"a3 c #838383",
+"aA c #2a2a2a",
+"bm c #c1c1c1",
+".Q c #686868",
+"bk c #0f0f0f",
+"#U c #a6a6a6",
+"#X c #4d4d4d",
+".o c #e4e4e4",
+"b. c #8b8b8b",
+"#O c #323232",
+"#6 c #c9c9c9",
+".J c #707070",
+"aN c #171717",
+"bQ c #aeaeae",
+"aU c #555555",
+".t c #ececec",
+"a8 c #939393",
+"#l c #3a3a3a",
+"ay c #d1d1d1",
+"aV c #787878",
+"a# c #b6b6b6",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.b.b.c.d.b.e.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.f.f.f.g.e.h.c.i.j.k.l.m.k.l.l.m.l.k.m.n.m.m.m.o.o.m.m.k.o.m.m.k.l.l.k.k.k.m.k.k.p.k.q.k.k.m.l.m.j.o.o.m.m.r.jQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.f.f.f.f.f.a.#.f.f.#.f.s.s.b.t.u.o.l.v.w.v.r.l.l.m.m.m.j.x.x.m.m.m.o.o.o.o.o.i.i.c.i.u.i.n.n.i.o.o.o.j.o.j.o.j.m.m.x.m.x.m.k.x.x.m.m.k.k.m.m.o.o.o.o.o.m.m.x.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.g.g.g.s.z.g.s.h.A.h.u.u.o.o.k.j.o.m.j.x.q.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.M.O.Q.R.L.M.R.O.S.T.U.V.V.M.W.J.X.Y.y.Z.u.i.n.u.i.i.u.u.u.u.i.u.n.o.m.m.m.r.k.k.x.m.x.x.m.m.m.m.x.x.r.q.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.f.g.a.g.s.0.h.h.A.i.o.o.m.m.m.o.o.o.m.v.B.1.2.3.4.5.6.7.8.9#.#..K#..K.K#.##.R#.#..W.L.V####.P.O#a.N#a#b#c#d#e#f#g#h#i#j#k#l#j#m#n#o#o#h#p.b.Z.i.i.u.i.i.n.i.i.o.o.j.n.j.o.j.o.j.o.j.o.m.l.m.k.l.q.q.r.r.r.w.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.f.a.a.a.z.g.h.h.A.u.o.o.u.j.o.n.j.j.o.r.y#q#r#s#t#u#v.6#w#x#v#y#x#x#w.7#x#z.K#A#.#B.Q#..Q#.#C.K#C.K.V.V#D#E#F#g#G#G#h#o#H#I#J#n#n#o#G#n#K#L#i#M#N#O#M#P#O#L#Q#L#k#i#H#R.A.u.u.n.i.o.i.o.o.n.o.m.m.m.l.k.m.x.x.m.k.m.m.x.l.k.p.q.q.r.v.w.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.#.g.f.z.f.b.h.A.A.d.i.i.i.i.i.i.u.n.o.v.B#S#T#U#V#W#y#z.7#A.7.K#A#x#x.9#x.9.J#C.9.9#x.9#.#z#C.8#B.R.Q.N#c#d#D#D#F#f#F#X#Y#n#i#Z#0#1#I#i#i#K#2#I#Q#3#3#o#k#1#i#H#I#i#Q#L#Q#M#4#j#Q#4#L#M#i#K#2#I#J#5.i.o.m.o.m.k.l.l.r.r.q.r.l.p.k.q.q.r.r.r.l.v.r.q.v.y.y.v.q.y.v.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQt.s.0.h.h.t.A.t.t.Z.Z.d.c.c.u.i.w#5#6#7#8#V#9#x.8.R.V.R#..8#.#A.9#.#..K#C#.#C.K.J.K.J#B.8#A.9.M.Q.T.M.V.V.O#da.#c#F#F#0#g#H#n#I#k#i#k#i#i#o#Z#Z#i#i#n#j#L#M#k#Q#Q#M#l#Q#k#n#i#2#Z#H#i#1#2#K#k#k#L#k#i#L#j#o#2#k#2#K#L#Ha#.o.o.m.k.l.q.r.v.q.v.w.q.v.y.y.w.w.y.waa.w.w.y.w.wab.wac.w.w.y.y.xQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.g.b.h.e.b.e.h.A.h.A.t.t.d.Z.m#sadaeaf.7.6#A#B.V.W.Uag.P#b.V.R#..J#z#x.8##.L.R.V.Q#..R.L.S.O.Q##.U.U#c#F#h#f#f#e#0#Y#n#0#X#X#0#Y#3#i#3#l#2#l#I#4#L#I#Z#K#3#i#K#Z#i#n#n#2#l#Q#4#N#I#K#M#i#k#L#M#I#i#m#L#i#i#i#m#N#4#l#M#i#K#J#p.r.k.p.q.r.q.r.q.q.q.r.r.yaaab.y.v.w.wab.w.waaaaaaabababaaabahab.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.b.b.0.s.0.0.0.0.0.0.b.b.t.A.c.mai#Taj#v.S.S.R.L.T.V.T.V.S.M.Q.O#.#..L#..R.V#..T#a.Oakak#f#e#Y#n#X#0#F#H#h#Y#Z#h#h#X#1#g#K#n#n#n#Q#3#n#2#l#Q#K#k#I#i#i#Q#m#K#2#n#H#L#n#Z#l#L#Z#2#n#k#l#I#l#Mal#m#n#4#j#i#i#K#3#k#I#M#M#L#4#Q.O.y.x.r.q.q.y.w.w.y.w.y.w.w.w.w.w.w.q.w.w.waaacabahahahacab.w.w.w.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.b.e.e.e.h.e.b.h.b.e.h.h.h.h.h.b.h.h.b.h.h.h.t.d.u.qam#2#Y#G#Y#Gan#g#X#1#h#han#h#Y#h#H#1#n#3#i#2#i#n#o#J#i#Yan#2#Z#K#K#2#2#n#2#2#K#l#L#M#i#K#n#K#j#kao#j#K#2#k#l#4#m#Z#i#l#Q#N#O#n#J#Z#n#l#3#k#i#j#k#i#L#j#I#2#i#2#M#M#M#i#i#l#nap.r.v.y.yaaabab.w.wababaaaqabacabacahababab.Baq.Babababac.yab.y.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.b.A.t.t.A.A.t.A.A.d.A.h.A.h.A.A.A.h.h.t.e.h.b.s.h.d.Z.n.5ar#m#P#M#L#m#L#i#3#Z#i#o#Z#3#2#i#4#M#l#I#L#K#i#H#i#3#n#2#i#n#n#i#n#H#k#H#3#o#l#L#i#l#3#n#M#N#Q#P#Q#k#K#L#M#k#K#n#k#i#m#i#m#P#M#j#i#2#Z#P#n#n#3#n#L#2#I#i#l#jas#Parat#l#S.yaaababahacacaqahahacahab.Bababacabahah.B.Baqaq.Bahahahabab.waaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.f.b.h.A.A.t.h.t.A.h.h.t.t.h.h.d.A.d.A.A.A.A.h.A.z.b.d.Z.Z.r#vauavaw#K#L#Z#i#J#3#l#i#n#o#2#N#l#L#K#L#M#i#Q#3#j#M#k#i#m#L#I#j#4#j#Q#Qao#N#4#m#2at#m#m#Q#i#I#l#K#M#L#N#K#P#N#4#O#m#M#i#3#2#j#M#4#2#i#K#i#i#k#k#N#2#i#K#I#Pasatal#4#Oaxaaac.Baq.B.Bay#5#5ai#5ah#5ahahabaq.BahahaqabahahahaaababacacahaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.h.d.A.A.h.t.h.h.h.h.h.t.t.t.t.A.A.A.A.A.h.h.h.b.0.Z.u.i.lazaA#4#K#1#L#K#i#L#I#L#k#j#H#K#i#Z#2#2#L#2#2#G#L#4#Nal#4#P#Q#2#l#P#l#l#H#I#3#l#P#O#Pao#j#4#Q#j#I#j#K#j#4at#K#Oaoaw#M#Oalao#m#M#K#m#1#L#j#k#2#Q#Q#L#P#4#j#l#L#l#M#m#O#l.Dacaqaqahahah.B#5.Baiapaiap#5.B.Bahahahacah.BacacahaqaqahahacahacQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.h.A.Z.h.A.A.h.h.h.h.h.h.t.t.t.t.A.A.h.A.t.A.A.h.0.d.i.n.oaBaraC#L#3#P#Z#J#m#L#K#3#n#L#K#2#j#L#m#m#M#P#M#P#P#2#k#L#L#i#l#M#I#k#2#j#i#K#i#L#lat#Q#m#PaD#kaE#P#2#N#P#O#m#P#Mar#m#mao#N#P#i#l#j#Q#l#L#K#l#K#K#3#i#4#k#L#Nar#4#mat#M.2ahahah.B.B.B#5.B.Baiay.B#5ah.B.Bahah.Bah.B.Baqabahaaabac.wahaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.h.t.A.h.A.d.h.A.h.t.t.Z.A.A.A.A.A.A.Z.d.A.A.h.t.0.A.n.o.o.v#fao#M#k#M#2#lat#4#m#n#Q#Oar#Oaw#k#4#4#P#2#i#j#I#i#j#1#k#Z#M#l#L#I#K#3#i#M#i#k#i#l#mawao#4#i#P#M#n#l#k#Mao#4#l#M#O#l#K#O#M#P#M#O#l#2#P#M#MaCaDataoawaDaAaF#m#j#M#MaCaGabaqah.B#5#5.B.B#5ah#5.B#5.B#5.Bayaiayaqah.Bacahabaaababahahahah.sQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.e.d.d.d.d.Z.Z.d.d.t.t.A.d.A.A.Z.t.t.t.A.i.t.h.h.b.t.x.j.jabaH#4#jat#P#i#k#N#L#M#2#2#Q#M#L#2#3#j#Z#I#k#K#i#i#K#i#k#2#K#N#N#Q#k#K#I#L#L#H#j#3#l#l#4#L#2#j#K#l#jaw#l#I#P#M#m#jatawaC#OalaCaEaFaCaoasauararaoaFaAavaralawaA#L#Q#4alaIah.B.Bayai#5#5.B#5ai.Bayaiaiai#5.B#5aqahahahacabahaaac.Bacahaqac.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.t.d.Z.d.d.A.Z.Z.t.h.A.t.t.t.d.A.t.A.A.t.t.h.h.h.h.A.j.m.mac.B#Q#K#g#J#h#h#1#P#4#j#l#L#i#Q#m#M#m#P#j#L#4#4#n#k#M#4#j#m#j#2#i#Q#j#i#L#P#P#N#i#i#L#4#K#Q#maDaoaDaDaCasasaAaJaKavaLaJaMaKaAaJaNasaEaoaAaAaKavauaNaOaJasasauaA#Oas#k.4.B.B#5aiai.Bai#5#5#5#5apaPapapapai#5#5ah.B.B.Baqahabacaqah.Baqah.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.A.Z.t.d.c.Z.Z.Z.Z.A.t.A.h.h.e.h.h.h.t.h.h.t.t.A.t.Z.m.x.jab.w#k#1#n#o#Z#i#iat#Q#Q#I#m#K#O#Nalat#P#P#P#L#j#l#L#L#i#k#i#2#kaw#MaD#lat#j#j#M#P#N#P#PataDatavauaCauaEaFaQaRaOatalal#NaraDararaD#PaDar#O#2#L#L#NaMararaQ#maCaCaDaDaEaS.Baiaiapapaiaiai.Baiapaiaiaiai.B#5aiaqah.B.B.Baqayahabahahahac.w.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.h.Z.Z.Z.Z.Z.Z.d.d.d.A.A.h.h.h.A.A.t.A.A.A.h.h.h.h.A.o.m.maa.r#l#N#O#P#L#K#2#Q#Q#O#L#K#N#l#I#L#Z#i#i#o#k#L#L#M#4#4al#3#m#PaoaAalatar#jao#OaraCalao#OawawaDaEataAaD#OaCaw#M#l#k#L#n#g#h#YaT#X#X#XanaUag#DaU#JaMar#MaD#m#P#Q#4aoawae#5.B#5aiaiaiapaBaiaiaiapaiaiaiaiaiay.B.B.B.Bah.B.Bahabahaqaq.Bab.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.a.A.A.A.A.A.Z.Z.A.t.t.t.d.h.t.t.h.A.A.t.t.t.t.t.h.h.c.m.x.m.w.r#OaA#maA#M#2#H#3#k#M#3#4#O#M#2#I#2#M#m#O#j#N#MaFaOaOalavavaFawavalaLalatasaw#M#4#3#nanaU.P.O.W#..7.9.I#A#z#x#x#x#z#w.6.XaV#w#A#A.8#.aV#A.I.7.8aW#N#j#k#O#k#K#PaoaE#x#5.Baqaiahai#5apap#5apaPaiaPapaiaiai#5.B#5#5ay#5.Baiay.BahacahacaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.Z.Z.Z.Z.Z.d.t.A.A.A.h.t.h.t.t.A.h.h.t.h.h.h.h.h.h.Z.x.k.l.q.x#iar#Q#QaX#J#1awat#malatas#4awaEalaEaraEaLaEatawataC#jaw#I#o#X#e.U.O#..8.7#v.X#9#9aYaZafa0.5aea1aea2aYaea2aZaYa3afaY#Waea3#v#va4#v#va2afafaV.6aDau#O#Mat#M#4#m#PaC.Lap.B.B#5#5aiaiapaPaBaBaPapapaiai#5.Baq#5.B.Bai.Bay.B.B.B#5ahababaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.A.Z.t.A.t.A.A.A.A.A.A.A.t.A.A.A.A.A.t.t.t.h.h.A.h.o.p.l.l.r.r#bataEa5#GaCaJaJaWaRaEaLaCatataw#l#P#l#Y#Gak#b#B#A#wafaeaea1a6a7a6.G.Gad#ua7#paSa7#p#pa8a9aSa7a6a5a5a5.5a0.5.5a2b..5a0aYa2a0aZaZa3aYa0a0a0b#b##XaL#KaDaoaO#MaCau#P#d#q#5.B.Bayaiapayaiap#5aiapai#5aiayayayai#5#5ai.Bai.Baiah.B#5ahab.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.a.d.d.d.A.A.d.A.t.A.A.t.h.A.A.A.A.A.h.A.d.h.h.h.h.h.i.k.q.r.q.y#vao#N#W#Iasaoaw#l#i#i#Eag.V#..I.X#9a3a6.Ga7a5#pa7adadad.4#V#Vbabbbaad.4bb#Va9#uad#uba#Vad#V#Vadbaa9a9ad#p#Vada5#Va5a5a5a6a2a2a6a6a0aXa0aZa3a3.VaJaDat#4aAaAaFaKaO#L.Cah#5ai#5aiaiaPapapapapai#5#5ay.B#5#5#5aq.Bai#5ai#5ay.BayahahacabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.g.Z.d.A.A.A.d.A.t.A.d.Z.d.Z.A.d.A.d.Z.Z.A.A.t.h.A.t.u.l.q.q.r.w#uaEaw#kar#O#Kag.Ha0a7#p.G#ua9bbbbbc.4bbbc.4bd.4ajbd.4bd.FajbdbebdbdaIbfaIaj.4.Y.4.4.Ybc.4.4bbad#V#uad#uaXaS#p#uaS#paSa5a7a5b.a5.5.5a0.5aeaf#W#xbg#NasaDaw#NaraCaF#N#Saq#5ay#5aiaiaiaiapapapapai.B#qaiaiaiap.B#5ai#5ay.B#5.Baq#5.BaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.g.c.Z.A.A.t.A.A.d.Z.Z.d.c.c.Z.d.Z.d.A.Z.d.A.A.A.A.d.u.l.r.q.q#5bharal#J#l#l.Ra6.4bibi.Ybd.4bcbd.YbdbcajajbdaIaIbf.F#taI#U.F#UaIaI#t#tbjajajbiajbdbdbdbbbdbb.4bb#V.4a9.4bbad#V#u#ua7#pa5a6a1a6a5a6a2a6.5a3#va4.7bkauasataDalalaEaO#P#r#5aiaiai#5aBapapapayai#5aiai#5.B.Bah.Baiaiapaiai.Bap.Baqah.B#5#5.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.f.A.A.A.d.A.A.d.d.h.A.A.d.d.c.Z.Z.Z.A.A.Z.A.A.Z.d.Z.n.q.q.q.qaB#raE#P#G#m#F#vadbcbjbjbj.F#tbfbebj#UbjaIaIbj#U#t.FbebjbjbebjaI#t#t#tbj#U#tbeaI.Fbeaj.Y.4ba#V#Vbaba#ua8ba#Vadada8#u#p#paSa6a6b.a1a2.5a0a1aeaYb##yaFaLavaEauavaoblaMaFbmaqayaiaiaiapapapapaiaiaiap#5ap#5#5.B.Baiaiai#5apay#5.Babah.Bahaq.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.f.Z.Z.Z.d.Z.d.d.A.A.A.A.A.A.Z.c.A.Z.c.c.Z.Z.d.d.Z.A.i.r.q.q.w#q#6#PataT#Q#daf#u#taHaH#Ubjbe#Ubj#tbj#U#t#U#U#Uaz#t#U#tbnazaHbn#t#U#Uaz#tbe#tbiaj.F.4.Y.4a9bbbbba#Va9adbb#ua8a8#uaX.GaSaSa7b.b..5aeaZ.5a2aZ#W#v.6aAbobgaQaOaAasblau#Pbp.BayaiaP#5.B#5aiaiaiaiaPapaiapai#5#5ai#5.Baiaiaiaq.Baiaqahay.B.B.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.s.Z.A.A.d.Z.Z.Z.Z.d.c.Z.Z.Z.Z.A.d.A.Z.Z.Z.A.c.d.d.c.i.q.v.q.q.CaBavaoan#Q#faZba#UbnaH#UaH#Ubjbn#U#t#t#U#Uaz#t#Ubj#t#t#U#U#tbj#U#U#UaIbe#UaIbibdbd.4aj.4bb.4bbbbbababa#V#V#uba#V#pa7#pa5aX.G.G.5.5a0aZaeaY#Wa3.X#ZauaOaKblaQasblbkaEbq#5aiapaiaiaiapapapaiapai#5#5.B.B#5#5.B.B.B.Baiai#5#5.B#5.B.B.B#5.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.s.Z.Z.d.A.A.c.d.Z.A.A.Z.d.Z.Z.Z.c.c.u.u.u.c.u.u.c.c.o.q.y.q.ybracal#maU#I#fb#bibjazbs#UaH#Ubsbnbn#Ubnbnbn#UbnbnbnbjaH#t#tbe#taIaIbe#taIbfaI.Ybe.4aj.4.4a9bbbb#ubbad#ua9a9ad#u#u#u#paXa7aS.GaSa5b.aZa0aYaYafa4.IanbkaKaFaObtaKblaMaLbqayaiapaPapaBapaPapaiaiaiai.B.B.B.B#5#5#5#5ai#5#5#5ah.B#5ahahaqahaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.0.Z.Z.A.A.Z.d.c.c.d.Z.A.Z.Z.Z.Z.Z.d.c.c.i.u.u.u.c.u.o.q.y.y.w#q.waraD#h#l#f#9aj#Ubn#Ubjbn#UaHaHbjbj#Ubnazbnbn#U#Ubn#U#t#Ubj#Ubn#U#Ubj#t#Ubfaj.4.4bbaj.Ybb.4ad.4bb#Vbabba9ad#paSa7a7a7b.a5a6.5b..5a2a0a3#W#W#v.X#dboaJaQaLavaRboaJbo.2aibraBaBaBaPapapaiapaiayaiai.Baq.B#5.B#5.B#5aq#5.Bahah.B.BahabaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.s.Z.d.Z.d.Z.u.Z.u.c.u.A.Z.d.Z.Z.u.c.u.u.i.u.i.u.u.u.o.y.w.v.v#5.waDao#K#m#ia4baazaH#UbjbjaI#Ubjbj#U#U#U#U#U#UbjaH#U#UaIbe#tbjbjaIbebfajbcbdbibd.Ybi.4.4bbbba8bbadad#V#u#u#p#pa7#pa5a6a7a1a6a6a6aeaYa3aYaf.XaV#w#cbkbtaKbkblaQbtbubv#Tapbr#q.CaPaPaPai#5aqahah.B.B.B.Bay.B.B.B.Bah.B.Bahaqahababah.B#5aqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.e.d.d.Z.Z.c.u.u.u.c.Z.Z.Z.c.u.Z.u.c.i.u.i.i.i.i.i.u.o.w.wacabaiabaDas#4al#1afbcbjbn#Ubjaz#taI#Ubj#UaI#U#U#t#UbjbjaH#Ubj#taIaIbebfbfbibdaIbdbd.4a9a9.4.4ba#V#ubb.4ada8#pa7aSa5.5a7a6a5a6a6a7b.a0aYaZaYaZafaf#y#v.PbuaNaFauaMbobwaNbtbx#5aPaBapapapapapai.B.B.Bah.Bah.B.Baqaqaqay.B#5aq#5ay.Baq.BahahahabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.h.c.Z.Z.Z.u.i.u.u.Z.c.Z.Z.Z.Z.u.c.u.u.o.i.u.u.i.n.u.o.yababah.Bac#Nalawaw#Ja4bb#Ubnbn#U#U#Ubebjbn#tbjbjazbjbj#U#Uazbj#tbj#t#UaIbiajbfbdaIbdbb.4bb.4#Vadad#V#V#Vadadad#u#p.GaXa5.5b.a0a2a0aZa3aYaeaZaYa3a3af.6.6.VbvaKaWblaJaMblbubo.EaB.C#qaBaPayaiaiahaq#5aqaq#5.B.B.B.B.B.Baq.B#5.B.Bah.B.B.B.Bah.Baq.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.b.u.Z.i.u.Z.c.u.u.u.u.Z.u.Z.Z.u.i.i.i.u.u.c.c.c.Z.i.jababah.B#5aq#lal#Oat#i#x#ubeaIbeaIbebj#tbjaHaH#U#U#U#t#t#Ubfbf#t#taIajbiajaj.4bi.Y.4.4.4.4ba#Vada9.4ad#ua8#u#uaSaSa7#pa5b.a5a6aYaZa0a2b.a0afaYb##9b#.X.I#A#BaMbyaWbgbzbgbvblbk.4aPaPaBai.Baq#5.Bahahay#5#5aq#5#5ai#5#5.B.B#5.B#5#5.Bah.Baqai#5#5aq.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.0.u.u.c.i.i.i.u.i.u.i.u.i.i.i.i.i.Z.Z.c.Z.i.j.o.o.o.jabaqaq.B.B.B#aaQaEaWal.QaSajaj.Fbe.F#taIaIbfaI.F#UaIbjbebebfaIaIbeajbf.4ajajbc.4bbbb#V#Vbaad#uaS#paXa8#pa6aX#paS.Ga5a6a1a6a2a2aea2a0aY#Wa3b#b#b##v#W.6#xaV#AbobAbtbzbwbobgbwaJa6#qapaBaPayaiaiayai#5ap#5ayay.B.B.Baiaq#5#5ayai#5#5.Baiaiaiai#5#5.B.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.A.i.u.u.u.n.i.i.Z.u.i.u.i.i.o.n.o.n.j.o.o.n.n.o.j.o.jacahah#5.Bap.XaMaOaQar#Db.#Vajbcbibd.F.4.F.Fbibebj#UbebebiaIbe.Fajbdaj.Y.Y.Ybd.4.4bb#V.4#V#p#u#uaSaS#pa7a8aSaXa5a6b.b.a1.5aeaYaZaYa0aZ#9#W#W#W.H.X.H#w.9.9.LaJbBbybCbzbwbvbybD#w#qapaiayaiapaiaiapapapaiap#5ai#5ayaiaiaiapayapap#5apayapapaiayay#5.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.A.u.u.i.i.n.i.u.i.n.o.u.n.i.o.o.o.o.o.u.o.o.j.o.j.m.kabahah#5.Baia2aJaMboaRag.5.4.4ajbibdbibfbebfajaj.FaIbe.F.4.Fbibiajbc.4.4.4ada9#Vadada9ad#p#p#p#u#p#uaS#p#u#uaSa5a7a6b.a1.5a0a2.5a0a1aZb##W#va4#v.6.Xa4.I#A.RaAbCbDbEbvbFbwbwbF#a.CaPapapapaBbrbraB#5apaiayay#5#5ap#5apaiaiaBapaBaPai#5ai#5ay.B.B.B.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.A.i.Z.u.u.i.o.i.i.i.i.n.n.o.o.o.j.o.j.o.o.j.o.o.o.o.mac.B.Bai.B#q#paKaNaMaR#c.5bb.4aj.4bebfbebdajbeaj.F.F.Fajbd.Y.4bbbc.4bc.4.4.4ba#Vadad#u#uaS.Ga8a1a7aX#pa7aS#ua7aXaSa6a5a5b..5aZa2aY.5a0aeaY#vaf.6aV#y.6#A.8.RawbFbybvbGbFbgbvaO#e.CaiaiaBap#qap#q#q#q#qaPapaPaBaiaiaiaiaiay#5aiapapaiapaiapaiaiap.BahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.e.u.u.u.u.u.u.u.o.o.o.o.o.o.o.o.o.m.j.j.x.j.o.j.m.x.paqayapap#5bHazaJaWaLaRan#Wadbb.Ybibd.4.4bd.4ajbiaIaj.Ybd.F.4biajbd.4ajbb#Vadadad#V#V#u#uaXa7#p#paXa8#uaS.G.Ga7a7a6a2a5a0aYa3a3aZa3aYaYa2a3#W.6a4#y.6aV.7.8#b#mbBbCbvbCbybDbFbt#Q.C.B.Bay#5apaiaB#q#q#q#qaBaB#qaiaBaP#qapaiaiaPaiaPapapapaiai#5ai#5.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.c.i.i.o.o.m.m.m.j.o.o.i.o.n.o.j.m.j.j.m.m.j.o.m.m.m.xah#5#5apapax#Tbzbvavbt#3#vaS#ubabbbi.Y.4.4a9.4.4ba.4ba.4bd.4.4.4aj.4bb#V#V#uadaSaXadaSaXa6a5a7aSa8a7a5a7aSa7a7a1a2b..5a2.5.5a0a0aeaZaZaYaY#v#v.6.X.X#x.9#.#C#GbybDbybGbAbFbybwaFbHayaiayayaB#qaBaP#q#qaB#qbraBaiapaiayapaiayapapaiaPaBapaPaiai.B#5aqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.o.o.o.n.m.o.m.o.o.o.n.j.o.o.m.m.x.k.x.m.m.m.x.m.l.k.r.B.B#5apapbpbHbFaWawbo#l#yaXa8#u#Vbaba#Vbb.Y.4bdbdaj.4bbbbbbbbbc.4bb#uad#uaS#pa8aSaSa2aXa7a6a6a7aSa5a6a1.5a0a0aZa2a2a2a2aZaZaZa0.5a2aea3a3#v.Ha4#W.X.I.7.K#.anbEbvbwbFblaJbkaKaCbp#5ayaiayaP#qapaB#q.C#q.1brbraP#qbr#qapaiaPaiaPapaiapapapaiaiapaiaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.Z.o.o.i.i.i.o.o.o.x.o.j.m.m.m.x.m.m.x.m.m.m.m.k.k.x.lahayapapaiax#qaKaNaLaQ#j.8.5aSa8ba#V#V#Vbbad#Vbbbba9#V.4a9#Vbaa9a9bb#u#u#paS#p#paX.GaS#pa7a5a5a5.G.5.5a6a1a1.5.5a1a0.5a2.5a0a2aYaY#9b#afaf.6a4#v.6#y#A#x.K.MaTbgaWbgaJblbgbgbtawbpaq#5apapaBapapbr#q#q#q#qaPaBapaPaBaBaP#qaPaPapaPaiaiaiaiai#5ai#5.B.eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.o.o.o.j.o.o.n.m.j.j.o.o.o.o.m.m.o.m.j.m.j.m.m.m.l.k.lah#5aiaPai#raBaNaKaAaL#m#.a0aX#pba#Vbbba.4.4.4bb.Y.4#Vbba9.4#Vadad#V#p#paSaXaSa8.Ga7a5aS.Ga5a6a7b.a2.5a2a0a0aZa0a0aZ.5a2aeb#aY#9aY#W#W#W#W.H#v#v.H.I.X.I#A#.#EbwbwaNaJaLaJbgaNavbIai#5aPapaBbr#q#qaBaB.C.C#q#q#q#qapaPaBaB#qbrbraBbraB#5aiaiay#5.B#5.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.j.j.j.m.o.o.o.j.x.m.m.m.x.j.m.x.l.m.k.j.m.j.m.k.x.lab#5#5apap#6aBbFbFaObu#P.WaeaS#pbababaad.4bbadbba9#u#uadaS#uadad#V#ua8#V#uaS#p#paS#paXb.a7aXb.a5a1.5a1a6.5a0a6aYa0aZaea3aea0aZaYa3.6af.HaV.H.X.6.X.6#A#x#A.8#DaJbgavaJavaQaRaKaCbq.B#5ap#5aPbrbrbraPaBaPaPbr#qaPaB#q.C#q#q#q.CaB#qbraP#qaiaiayayaiai.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.n.o.j.o.o.j.j.o.j.o.o.j.m.m.m.j.m.x.k.m.k.x.x.m.r.m.raqaiayaBaPbrapbkbDbtbwaA.NaYa5.G#uad#V#ua9ad.4#Vba#V#u#u#u#p#pa8a8a8#paSaXa7a7aSaXa7a5aSa5a7a7a1.5a6a5b.a2a0a2aYaeaZa2a3aeaYaYaYafb#a4#Waf.6a4.6.X.6#A#x.8.8#FaJboaJaNaEaJboaNaubqay#5apapaPaP#qaB#q#q#q#qbrbraP.CaB.C#q#qaPaBapaBbrapapai#5apaiai.B.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.o.j.o.o.o.j.m.j.o.o.j.j.o.o.j.j.m.x.k.m.k.k.k.k.x.l.pahaiai.CaB.CaBblbwbwbkaJaU#9a6aS#uad#u#u#Va8#u#p#ua8aX#pa7#pa8aS#p#p#u#p#paSaXa7#p.5a7a5a1a5a7b..5a1a0aeaYb#aYa3aea3a0aZ#W#Wa3#9a3#9#W#9#v.H.6.X.I.6.7#z#A#.#ebuaKaQboaOaMaMaJaAax.BaiaPap#qaBaPaB.Cbr#q.C#q.Cbr.1#q#6#qbraBaBaPaPaPaBapaBapayapapay.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.n.o.i.o.n.o.o.n.o.o.o.o.j.m.m.m.l.m.m.m.x.m.m.k.k.k.lahaiaPbraBbraPbzbkbubkaC#d#9a6a7aS#paX.G#u.4ad#uad#pa7#uaS.GaSad#p#pad#V#u.G#paXa7a7a1a5a5.Ga1.5.5a0a2a3#vaYa3aYaeaea0a0aea2a3#9#vafafaf#v#v.X.X#x.7#z#x.9#CagbDbzbuaNaKaNaMaLaubmay#5apaPaBaPaBaBbr.CaB#qaB.C#q.C.C#q.C.C.C#q#qaBaBaBaPaBaPapapaiayabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.r.m.o.m.m.o.o.j.o.o.o.o.o.o.o.o.o.j.j.m.x.k.k.l.l.r.qahapayaiaiapai#jbFbobBaM#Xa4b.a0a5aXa5#paSa8#p#uad#paSaS.Ga7aXa5a1a7b.a5a7.5b.a5a2a5a0.Gb.b..5a2a0a2.5a2.5.5a0a3a3aYaYb#a3aYa3#v.X#va4.H.6#W.XaV.I#A#w#A.8#.#DblblaMaNbwbgaNbwavbxaiapbraBaB#qaP#q#q.C#q#q#q#q.C.C.C.C.C.C.C#q.C#6#q#qaPaPaiapayapai#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.j.o.o.o.j.o.o.o.o.o.n.o.o.j.j.m.x.m.m.m.m.x.x.k.l.lahaiai#qapap#q#gbGbAblaN#H#xa0a7aXa6aSaX#pada8#p#u#u#paS.GaS#pa7aSaSa6a5a5a1.Ga5a5a5a6a0a1a1a2a3.5b##Wb#b#aYafaea3b#a3aYafaY#vaY#Waf#9af#vaV.X.X#x.6#w#A.K#.agbubFaKaJaWblaKaRaA#s#5aiapapbr.C#6.C.C.1.C#6#6.C.C#6.C#q#q.C#q#q#q.CaB.CbraBaPapaB#qaBaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.l.x.j.j.o.o.m.o.m.m.n.o.o.j.m.m.m.x.m.m.k.m.m.m.k.r.raqaiayapaiaibHaVbybEbwaN#3#xaea2a2a6a5a7a7a7a5a7a7a7a7aS#pa5a8aXb.a5a5b.a1a0a2a2a6.5a0.5a1.5a0.5aYa6a6a0.5a0aYaeaeaYaYb#aYa3#vaf.Xa4#y.H.H#v#y.6#x#z.6.9.9#C#fbzaNboblaJboaOaOaA.4aBaiaBaPaPaP#q.Cbr#q.C.C#q#q#q#q#q#6#q#q#q#q.CaBbr#q.CaBaPaBapaBaBapQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.l.j.m.m.m.o.m.m.i.o.j.j.o.x.m.m.m.l.k.m.m.m.x.m.l.l.rah#5aiaBaBaP#ra3bEbzblaK#j#wa0.5.5aSa6a7a6aSa5a5a7a5a1a6a7#pa7a7a6a6a1a1a2b.a2a1.5aZaY.5.5a0.5a1aZa0.5a0a2a0aYaYa3aeaYa0b#a3#W#W#9af.X.6.XaV.6#y#x#x#A.9.J.K#DbwbwaNaJbtaRaOasboa9apapaBaBbr#q.Cbr.C#q.C.CaB.C#qaBaPbr.C.C#q.C#6#qaP.C#q#qaP#qaPaiaP#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.j.m.m.x.m.m.o.o.o.m.n.m.j.l.j.m.m.m.x.m.k.m.l.r.l.rab.B#5aiai#5bpb.bBbvbwbu#L#xa0b.a7aXa7aS#uadaXaSa7a5.Ga6a7aXaSa7aSa1.5a6a2a0.5.5b.a0a2.5aea2a5a1a2aZ#Wa3#9aY#9a3a3b#b#aYa3a3afa3#v#v#v#v.X.6.X#xaV#y#y.7#A.RanbzbDaJbtaNbDboboaMa5.CaiaPaBaPaB.C#q.CaPaB.C#q.C#q.C#q.1.Cbr.C#q#q#q#q.C#q#q#qbr#q#qaPaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.l.k.m.x.o.j.j.j.j.o.o.o.o.o.m.j.x.x.k.l.k.l.x.x.k.k.kabay.Bapaiaybpbebgbobobtal.9#vaYa0a5a7a7aSaS.G.Ga1a7a2#paSa7a6a5a7a5a7a0a5a6a5a5.5.5a6.5a2.5ae.5aea2aYaYaY#Wa3aYa3#Wb#a3#Wafaf.6.X.X#w#y.6#x#w.7#y#x.8#x.9.T#JbkblboblbwaRaMblaR#y#SapaiaBapaBaB#qaB.C.1.C.C.C.C.C#S#6#q#6#6#6.Cbr#qaB.CapaPaBaBaPaB#q.ZQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.x.j.m.o.m.j.m.k.m.j.j.m.x.m.k.m.x.k.x.k.m.m.m.p.x.k.labaiayapai#5bq#sbEbgaKaKaw.Qb#aea0a6.Ga6aSaSa7a1a5a2b.a7.5a1a7b.aXa6a5.5.5a2a1a2a1.5a1.5a0aYaYaZaY#9a3aZb#aY#v#vaZ#WaY#vafaf.H#v#W.H#v.H.H.6#w.7.7#x.9#..K.L#kbvbuaWbobtaKaNaQaRak#rapaPaBapaB#q#6.C#6.C#6.C.C#6.1.C.C.C.CaB#q#q.C.C.C.C.C#qapaBapaBai.xQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.k.m.j.m.m.j.x.m.j.o.j.o.x.m.k.x.m.r.l.q.x.l.l.p.m.x.paaaPayaiapaibq.DblboauaWal.M.Hb#aY.5a1.5a1a1a2a1a5b.a6a7a6a6a6a5a7.5a2a1a0a0aea6a2a0aZa0a0a0aYaZaZ#Waea3af#v#Wafafaf#Wa3.Xaf.6.H.H.H.6a4af.X#w#x#y.8#z.R#..S#nbkbgbuaKaNaRaNaRbo#4bpapaPaP#qaB.CaB.Cbr#q#6.C#S.C#q#6aB.1#6#S.2bsaS#.#Y#n#X.CapaBapbrap.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.o.o.m.x.m.x.m.j.k.m.m.m.m.k.k.l.k.m.x.k.x.k.l.k.p.labaiaiapaPapbpbpbzbyaCaOao.M#vaYaYa0.5a2a2a2a2aYa0b.a2a2aZa0.5.5a0b..5a6.5.5ae.5.5aZa2.5.5a0a0a0aZa3aY#W#W#W#9#va4aYaYafaY.HaV#v.6.H#w#w#y.7.6.7#y#C#A.K##.M#nbEblbubtblaJblaWaJ#Mbqai#q.C#q.Cbr#q#q.C#q#qbr.C.C.1#Sbm.Ea5#.#Z#G#g#F#F#f.P#SaiapaibraPahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.x.x.o.m.o.m.m.j.j.j.k.m.x.m.k.k.l.r.p.l.l.x.k.l.x.m.laaaiayaiapaPax#SblboaCbvaKbJa4#9aZa2.5a2b.b.a0.5a1a2a2a0a2a2aZa0aYa2a1.5a2a1a0aZaYa3ae.5aZa2aeaYa0aZa3b#afaeb#aV.X#9#Waf#v#v.Xa4.XaV.6#y.I.6#x.7#A#C#..L#a#d#NbFaJboboboaNbgaLblaD.DapapaP#q#q.C#q.C.1bK#S#S.Dbna7#A#K#i#2#d#faU#d#d#D.Oag.DaiaPaPaPap#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.k.k.j.j.m.l.m.k.k.m.k.m.x.r.l.p.l.l.l.l.x.k.k.r.m.labaiaPapaiaB#S#qbkaWaFaLaAa..XaYaeaYaeaY.5.5a2.5a6.5aeaZb..5.5a2a2b.a2a0.5.5a0a0a3a3aeaYaea3aYa3a0a3aYb##Waf#v.Ha4#v#W#v#v#w.X#va4#y#Waf.6aV#xaVaV#B#.#.#B#basbwbyblblaNaOaNaQaQaRa#aB#qaB#q.C.1.C#q#LauaEakb#a5be.B#5.2#sam#FbJ.S#D#dagakbnaiaPapaP#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.o.m.o.m.x.m.m.k.x.l.j.m.m.x.m.m.m.k.x.x.j.x.k.k.l.labaiaiapapaP#qapaWaWaObuaA#daV#va3a3#WaYaeaf#9aYaYaY#9a3a0a2aZa0.5.5.5a1a1a1a2a0a2aYa2a0a3a0aea0a3aeb#b##9#9afaf.H#Wafaf.H.6aV.6.H#ya4.XaV#w#x#x.K#B#B.P.TaUaKbobvaJbwblblaLaWaQaObLaPaBaPaB#q.C.C.1aLaE#nbIbmbsbe#8bsbja5#Uan.Ua.#c#d#D#daXaiapaPaPapaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.m.x.m.m.x.o.k.x.m.m.j.j.o.m.m.k.r.k.k.m.x.j.o.x.k.k.r.wapaiapapaiaBaPbubuaMaQau#F#y#W#W#W#9#9a3aY#Wa3a0aea3a0a2a0a2a3a0aYa2aeaeaf#9aY#9#vafaYa3#9aea0a3a3aYa3aZ#W#9a4#vaf#Waf.6.X#y.6a4.6.X.IaVaV.I.I#A#x.9#A#B.TbwbGbzbtbwbobubzaNbgbobLaB#q.C.C#6.1#6.CaNal#jbd#SaH.G.CbM.Gad#x#G#F#1#H#a#Waj.DaB#q.C#q.CaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.x.m.x.x.m.o.j.j.m.o.j.o.x.x.j.m.x.k.m.m.x.j.m.m.m.x.m.y#5aiapayaiaPapaNbtaWbgaW#i.9.6.X#W#W#Wa3a3a3#9b##9#Wa3b#a3#9aYaYaZa0a2a0a0.5a0a2a0aeaYa0aYa0a3b##WaY#W#9af#W#x.XaVa4af.X#v.X.H.X.6#x#z.7#z#..R#..W.ObJ.M.ObzaAblaWaJaNaKbwboboaM.DaB.C.C#q#S#6bH#SaOaMawb##H#i#2#3#X.Xbb.3bpaxbMbMbHbH#S.1#q.C#q#q#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.k.x.x.m.m.j.k.m.o.j.m.j.j.o.x.o.m.m.j.o.x.m.m.m.l.m.l.w.B.Baiaiaiai#qaMbtbtbwaQ#K#.#w#y.X#v#vaf#vafb#b#a3.H#va3a3a3aYa3a0afaYa3aZaeaY#9a3a3a3a0#9aZa2a3aZaY#W#Waf#Wa3#W.H#9.H.H#v.X.IaV.7#A#A#..K.R.L.Sagag#c#e#obl#N#P#mboaJbkaNbvaKaN#rap#q#q#q#6.1.C#q.7#B.5azbIax#rbKbH#SbKbM#SbK.1#S#S#S.C.1#q#qbr#q#q#q.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.j.l.m.k.k.m.m.j.m.m.m.j.j.o.j.m.m.j.m.m.o.m.x.j.k.m.x.yai#5#5aiaPapbMaEbububvbt#4###A.6aVa4#vaf#v#Wb#aYa3#W#9aYb##W#9b#a0b#aZa3a2aYa2a2a0a0a3a3#9aeaYa3#9aYaf#Wafaf#v#W.6#v#W.6.6aV#x.8#C.K.L.L#a#b#D#E#D#X#1albtblauaLaM#OawaAaKaKaLaK.2ap#q#q.C#6#6.1.CbHbH#r#SbH#S#SbK#S#S#S.1#6#S.1#r.1bK#S.1#6br#q#q#qaB.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtab.x.j.m.m.m.l.m.m.o.o.o.i.o.o.o.o.o.j.j.k.m.m.k.l.m.k.waiap#5ayapaPbN#3bybGbDbuao#D.J#w.6.6.6.H.X.H.X#9af#vb##W#9aYa3#W#W#v#vaV#Waf#9aYaYaZaea3a3aea3aYa3aY#9ae#WaY.H.X.X#x#w.I#x#A#B.L.O.N#daU#n#laDaMaLboavbtbtbkbEbuaWbuboaR#KaKbgaNbp#q.C.C.C.1#6.1#6#q#S#S#S.1.C#S#6#S#S#6#6.1.1.1#q#q.C#q#6.C#q.C#q.C#q.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtah.r.m.m.j.j.x.j.o.m.x.o.m.m.o.j.k.k.x.k.l.l.m.x.m.m.l.r#5aiaiaBaBaB.2#dbCbgbzbgaWaU.K#ya4.6.X.X#v#W#9#W#W#v.Xaf#9#9b#afafa3#9afae#9b#ae#Wafb#a3#WaZ#W#vaea3#vaf#vafa4.XaV#y#A.7.J.K.W.O#d#f#n#OboaKaJaKblbububwbgbwbvbzbzaWaKaQ#maMblaO#r#q#q#q.C.1#S#S#6#S.CbMbHbH#S#S.1.C.C.1#S#S#S#q.1bK#S.1.1#q#6#q#q.Cap.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtabab.o.o.o.o.o.m.o.j.m.m.m.o.m.m.m.m.j.m.x.m.x.k.l.l.r.yapaiaPap.CaB#7.KbAbgbvbgar#c.K.I#y.Xa4#v.H#vaf#vafb##W#Wb#a3#9#W#va3af#9a3a3a0b##WaYb##Wa3aYaf.X.X#v.6.X.X.6#y#x#A#C#C#B.M.TbJ#GaFbwaOaKbgaMaRaMauaJaWaWaJbtbubkbvblbvbkaQbkaW#4#r#q.CbH.1#S#S#S#6#S#S#S.1bKbKbH.1#S#S.1.C#6#6.C#6.1.C#6.1#6.C.1#6.C.C.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.B.w.q.o.o.o.j.j.x.o.k.j.o.j.j.o.m.o.o.o.k.k.l.x.k.j.x.yapaPbrbr#q#q#T#9bCbGbubgaJ#h#B#A.7aV.I.Ha4.6.H#v#v#Wa4#vaf#W#Wa4af#va3a3a3b#af.Ha4.H#vaf#W#v.X.6#v#vaVaVaV#x.J#BaU#KauaJaKboblblaWaNaWaMbwboaMaLaKaWaNaLaJaNbtbzbDbtaWaNbtblaKbNaB.C#q.C#6.1#6.C.C.C.C#S#SbK#6#6#S.1#6#6#S#q.C#q.C.C#qaP.C#q#q#q.C#6#qapQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtabab.w.r.n.o.o.j.o.m.x.j.m.o.o.o.k.m.k.l.l.x.x.m.m.x.r.wapapaBaBbr#qam#pbBbBbFbtaQ#0#.#x.X.X#W#v#9.Ha4af.H#v.6.H#vaVa4.H#Waf.6.XaV#y#y.H.X#w#y.6.X.6#A#..M#X#NaFaOaMavasblaQaLavaJaNbtbgblblaQaWaWaLbgbvbwbgbvbuaNaWbEbobgbFbEblaWaL.3.C.C.1#S.1bK#6#6.1#6#S#SbK#S#r#rbM#SbH#S#q.C.C#6#S.1#S#S#6.1.C.C.C.1.1.1#qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtac.v.w.r.r.k.m.o.o.j.o.o.o.o.m.j.x.o.x.l.k.x.m.x.l.l.p.vapaBapaBaPaBbL#UbubAbgbybk#F.8.9#A#AaV#y.6.X#x#y#w.6.H.6.X.6#w#y#y.7aV.I#x.X#x#C#a#F#NaraEaCavaCauasaEaQarauavaDaKaNauavblaQbwbzbDbwbDblbtaNbtboaWaLbwaJbubtbtbkaQaMaJaO#3bM#S.1#q#S#S#S#6.C.C.1#S#SbKbK#S.CbKbM.1#SbK.C#S.C.C#q.CaB.C.C#6#6.C#6.C#qaBaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtac.v.y.q.p.r.m.j.m.j.m.m.m.j.j.m.m.o.m.m.j.x.j.x.m.l.r.vapaBaBaB#qaB.2bnbBbBbkbwaJ#g#..J.9#x#y#y#x#w#A#x#A.J#.#w#A.7#z#y.7.8.L#c#h#kaAasaLaJaRavaMavaMaMaAaOaCasaKaFaObtaOaNbtbtbDbzbobDbCbEbvaOaNbgbvaWblaOaNaQaObgbvaKaJaRaD.J.D#r.C#q#S#S#S#S#S#S#SbHbMbKbMbM.1#S#6bK#S#S.C.C.1br.C.1#S#S.1.C.C.C.C#q#qaB#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.qabab.w.q.r.o.o.o.o.m.m.m.o.j.o.x.m.k.x.l.k.k.l.r.l.r.yaiaiaBaBaPaBbpbObBbEbubAaW#J#a#B.8#x#A#z.I#w#x#A#x#z.J#z#..LaT#iaoaOaOaOauarauaEaA#NalawaOaFaOaMblaWaLaKaLaLaWaObtbgaNaNbtbwaQbDbwbgaWaQbtaWauaLaQaFaWbobzbtaOana3a9aGaxbp.1bK.C.1#6#S#S.1.1.CbM#SbHbm#SbHbMbKbKbK#6#S.C.C#q.C.C.C#6#S#SbK#6#6.C#q.C.CaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.kab.v.w.w.q.q.x.o.o.o.o.o.o.o.o.o.m.j.k.l.m.x.r.p.r.p.qai#qbr#q.C.C#S.2bBbBbgbAbFaR#GaU#f#i#LaraRaWaKaOavaQblbgaQaOaMaMaEaMavaLaJavaEaAav#P#NaFaWaKaNaKaQbgbuaWblaMaQaQaNbubvbEaKbvbkbgbDbuaKaLaJaD#Q#bafbi#s#TbLbqbpbmbMaxaxbM#rbK#rbMbHbMbHbK#S.1#6#6#SbKbKbM.1#S#r#r.1bK#S.1.C.1#6.C.1.1.1.C#S#S#S.1.C.C.C#qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.oab.r.q.r.q.y.q.x.o.o.o.j.m.j.m.o.m.k.k.l.l.l.l.p.r.r.yaiapapaB.C#q.1#rbCbCbFbCbwbzaWaWaOaMaOaLaOaQaOaMaMaQaWaMaKbobobuaQasasaLaMaOaKaQaLaLbtbuaWbgaWbtaWboaWaFaRaKavasaFaMaMbubkbkaR#G.I.4.Ea##T.2bqbm#r#r#rbM#r#rbH#rbM#rbHbK#rbMbKbK#S.1bKbH#S#S.1.C#6.1#SbHbH#S.1#S#S.CbK#q#q.1#S.C.1#6#S#S#S.1#6#q.C.C#qbmQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.Aaa.q.q.y.y.q.v.p.k.o.o.o.j.o.m.k.k.l.k.x.k.k.k.l.k.r.vapbr#qaB.C#q.C#rbBbBbDbvbwaWboaNaNbuavaNaJaOaQauaAaWaJbFbybFbvbkbgbAaObvbkblboaQaNaWaKaQaRaKblaNaubgaWaMaLaLaE#X.XadbnbPbIbL.Dbpbmbmbmbpbm#rbMbMbHbM#SbH#SbK#SbH.1#S#S#SbM#SbMbM#r#rbH#S#S.1.1#S.C#S#rbKbK#6#SbH#S.C.1.CbHbHbHbK#S#SbKbqbO.E#8bO.2bL.2axQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.hac.w.q.q.y.y.q.r.l.o.n.o.o.o.j.x.m.m.m.k.k.x.p.l.r.r.waP#q#q#q.C#q#q#SbBbBbBbBbyboaNblaQblboaMaWaWbubzbFbGbybubCbFbkbgbuaJaLaWbwaLboaKboblaFaEauaFaOaLaRaMat#o#wadaH#s#T.2bpaxbpbmbmaxbm#rbpax#r#rbp#rbpbMax#rbM#rbHbMbM#SbH#S#SbMbHbK#6#S#SbK#SbH.1#SbK.C#S.C.1#6#6.C.C#S#6bK.1#r#rbL#saG.E#sam#7bL.2bpbN.2bNQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtab.y.q.q.q.q.q.l.q.l.l.n.n.j.m.x.m.x.x.l.p.k.l.r.r.q.q#5aP#qbr#q#q#q#rbybBbzbvbBbzaJboblbwblaObtbgbDbtbzbCbybybybDbwbgbkbgaNboaWaWaQaKaJaOaLaQaMaCat#e.H#V#UbPa#bLbL.2#rax#rbpbmax#rbm#r#r#rbMax#r#rbmbmax#r#raxbm#raxbmbMbMbM#r#rbK#SbM#6bH#S#SbH#S#S.C#6#SbKbM.1#6#6.C#S#S.D#T#s#R#s#T#T#T.2.2ambIam.2bI#T.2QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.B.v.q.v.v.v.q.r.r.q.l.o.o.m.m.x.x.l.x.l.p.l.r.r.r.p.qaibr#q.C#6#q.Cax.4bBbybCbtbybGbDbybEbybCbFbybzbGbDaNbtblbubvbkaOaOaJaJaRaQaQ#4.Na2.4#Ra#.2.2bpbM#S#rbHbMax#r#r#r#rbm#r#rbpbmbM#rbmaxaxbM#r#r#r#r#r#SbH#rbMbHbHbK#r#rbmbK#r#rbpbmbp#rbKbH#S#SbK.1#S#rax.2#sbO.EbP#TamambIbL#T#TbP#Ta#bP#sbObQbnaHazaj.4.4QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtai.w.r.q.q.r.q.q.r.q.q.k.o.n.j.x.m.k.k.l.r.q.l.r.r.q.vaiaPaiaB.C#q.C.CbMagbBbBbCbGbCbvbybFbzbwblbzbububtbgbkaNblaO#Q#Ca1#U#s#T.2bN#r#SbH#S.1#S#S#6.C#SbHbKbK#r#rbMbM#r#r#raxaxbpbpaxaxax#rax#r#r#rbH#r#rbK#SbMbK#raxax#r#rbHbMbK#SbKbH#S#SbH.2a##R#8bQa#bPbP#Tam.2#7am#Tama##7#s#Rbs#UaIbcba#pa2a3af#A.S#E#VQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt#qah.q.q.w.q.q.y.q.y.q.l.r.o.o.k.k.k.x.p.r.k.l.r.q.r.qay#q.CaP#q#q.C#qbr#S#vbEbBbGbFbvbGbAbtaWblaDaTa3.4bQ#7.2.D#r#rbK.C.C#q.C#6#6#SbH#SbK#S#6bKbH#rbMbHbMbM#rax#r#r#r#rbMbH#rbMbM#rbM#r#r#rbmaxbMbK.1bH#S#S#r#6#SbMbKbMbM#rbL#s#8bj.EaGbxbP#Tbx#7#T#s#s#s#s#saG.Ebn#U#tbdbaaSa2b##v.8.Oak#F#M#QQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.Baa.w.q.r.l.q.y.w.v.q.r.r.q.k.p.l.l.m.l.p.l.r.q.l.r.vapaB#q#q#q#q#q.C#6#6#S.Da5a.#aaYbe#sbI.DbpaxbM#S.1.C.1bK.1#S#6.1.1.C#q#6#S#S#S#6.1.1#6.1#SbK#rbMbm#rbpaxbm#r#r#rbpaxbpax#r#raxbpaxaxax#r#r#rbMbM#S#SbHbIaG.E#RaG#s#saGa#bx#Tam#TbP#T#s#RaG.3#8#tbebb#ub.a0b##y#A.T#f#X#F#2atavaMaAaraRaO#mbpQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtayaqaa.v.v.y.v.yab.w.y.v.r.v.r.r.k.x.l.l.k.l.p.r.q.q.qap#q#6brbraP#q.C.C.C#q.C#rbp#r#S#SbK#rbMbKbK.C.1bK#SbK#S#S.1#6#S#S#S#S#6#S.1bKbKbH#S.1#S#SbK#r#raxaxaxbmaxaxbMbH#rbM#rbH#S#rbHaxbm#rbN#TbO#s#samam#T#TbxbPa##T#TbObO.E.Ebsbnbjajbdadada6a2#9aV#A.Ka.#h#n#maraFbwbgaWboavas#O#k#h.T.RaV#9a5blbgaC.7QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.yac.w.q.r.q.q.q.y.v.v.v.q.vab.w.w.w.l.p.r.l.q.v.r.v.vai#q.Cbr#qaBbr#q.C.C#6.1bHbMbHbHbKbM#S#S#S#S#S#S#S#q#6#S#6#6#SbK#6bK#6#S#S#6#S#S#S#S#6#S#rbMbMbHbpbmbmbqbmbm#rbMaxbm#r#TbOaGbOam#T#7bxam#TbLbI#TbPbP#sbObQbQ#Ubjbebb#u.Ga2a2a4#A.V#D#Han#i#maFbkbzauaMaQaKauaF#k#Z#d#..6b#b.aSa9.4ajajaIaIbvbwbzaWaQaC#LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.oac.w.q.v.v.r.r.qab.w.w.y.w.q.waa.v.q.l.l.x.p.r.r.q.qap#q#qaBaBaB#qaybr.C.1#6.1#6#S#S.1bKbH#SbM#r#SbK#SbKbHbK.1.1bK.1.1bKbMbK#S.1bK#6.1#S#6#SbK#Sax#raxbpbm#7bOaGbPbI.2bIbIa#am#Tam#T#s.E.E#Rbn#U#UaIajbb#p.Ga2a3#v#z.Ran#X#o#2#jaQbobwbkaNbFbtaraFat#lak.P#xafaZ.5a8#u.4.4.Ybibe#t#U#UbnbnbsbfbFbkbwblavaWbkaNaKa1QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.Aab.q.q.q.y.y.q.qaa.v.q.v.qaaaa.w.y.r.r.l.l.r.p.q.r.rayaB#q#qaPaBap#q#q#6.1#q.1.1#6#6.1.C.C.1#S.1.1bK#rbKbHbK#S#6#6#6#S#S#S#rbK#S#SbM#SbM#SbHbKbMbpambObQaGbPbIbIbxbP#T#T#Ta##TambP.E#8#8bnaI.4.4#uaSa6a3#v.J.W#E#n#i#NaCblbobobubobtaWasaKaE#Q#g#f#.aVa4b.#p#Vba.4ajbi#taIbjbj#t#U#UazbsbnbhbcbkbkaOaLaWbzaRbzbvaOaR.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.c.w.y.r.q.q.l.q.q.q.q.y.w.w.y.wabaa.w.q.l.r.q.q.r.y.vapaB#qaB#qaBbr#q#q.C.1.C.C#SbH.1bMbK#SbK#S#S#S.1#6.C.1#6#6bK#S#S.1#r#r#S#6bKbKbHbKbMbK.DbO#R.E#TbI#Ta#bx#Tbx#TbP#sbObhaG.E#RbnbjaI.4#u#ua5a3.H#x#.aU#J#Z#QasaFbvbDbkboaKaWaFauaC#i#n#d.W#A#vaZa7a5#pbbbbbibf#t#taIbj#t#U#U#U#UbnbnbQ#8bh#ublblaQaNbzbzbgau#laLaC#m#8QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.hac.w.q.y.q.q.r.q.y.v.w.y.q.w.q.w.w.w.w.q.l.l.q.v.y.vap.Cap.1#q#q#6#6.C.1.C.C.C#S#SbHbH#SbK#rbK#S#S#S#SbHbHbHbKbKbKbH#SbM#rbqbxbP#sa#.2.2ambIamama#ambx#s.EbQbh#Rbn#UbfajbbadaSa2aY.X#z.N#E#n#kawaFbtbzbgbzbuboboaJas#P#H#D.N.9afa3a5.5ad#ua9.4aj#t#t#U.Fbebjbjbnbnbsbh#R#8bn#8bn#8#8#8bQbhbPQtQtQtbcbybybAblaMaQavaQaLasaFaoQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.0ap.w.v.q.v.r.r.p.y.y.v.qababab.w.waaabab.v.q.q.q.q.vap#q.C.C.CaB#q.C.C.C.C#S#6#S#S#S.C.1#6#6.1.C#S#S#q#S#SbHbI#8#8.EbPa##T#TbI.2amam#T#TbP#s#s.E#8#Ubjbe.4#ua5a2b##y.7.QaU#1#1#latalaJbzbFaNbFaJboaQaC#M#1#d##.I#Wae.5a5#ubb.4bdaj.F#t#U#U#UbnbnaHbjaHbn#UbnbnbnazbsbQ.EbQaG#8bh.Ebh#sbQbh#sQtQtQtQtQtQtQtavaJaKaNaRaOaL#JaraOawa9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.zbIaaab.v.w.q.r.l.v.y.w.y.y.vab.w.w.w.y.w.w.qab.p.q.rai.C#6.C.1#6.C.CaB.C.C.C.C#6#6.C#6.C#S#S.2bObQbh.EbxbxbP#T#7.2ambIa##T#T#TbxbO#R#8#UbfbibbaSa2a3.6#.aT#J#3#jaDaAavaKaNbuaNaKaKaMaFao#Z#a#b#B#x#vaYa1a7a8a8ba.4.FajaI#t.FbjbnbsbsaHbn#8bn#R#R#8bn#8bQ#8.3#R#R.E#saGbhbhbQ.Ebh#8.3bObObxbOQtQtQtQtQtQtQtQtQtQta0aJboaWaQaQaraO#G#4.WQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.z#Sab.v.q.r.v.w.q.w.q.y.waaacabababaaaaaaabab.w.r.r.qaiaB#q#6.C.C.C.Cbr.C#q#q#6.C#6.1axa#bQ.3aGbPbxbPa#bI.2ambIam#Ta#bPaGbQ.Ebnaz#UbiadaXa1a3a4#A#b#f#H#i#JaDaRbtbzaNbubDaWbtaCar#IaU.N#.#x.Xa3a2a1aSaXadba#Vba.Ya9bc#tbebe#t#Ubsbnbn#8bn.3#8.3bs#8bh.EbQ#8#8.E#8.EaGbObPbx#sbO.Ebs#R.3.E#R.EQtQtQtQt.D#TbLbqQtQtQt#faWaMaMaRaE#PbJaw#4#.QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.macab.w.r.v.v.v.q.q.q.q.waaaaab.w.wah.waaaq.Bab.r.qapaP#6#6.C.C#q#qaB#q.C#6bM#TbQ#R.E#TbIa#bLbN.D.2bL#Ta#bxbx#s#sbhbs#Ubeajbb#ua1a0#v#x#B.N#c#f#Z#MasbvasbgbkbobgaNaK#P#M#h#c#BaVafa2a0a5a5#pada9a9#u.4.Fbdbibibfbebebj#taI#tazbn#8#8bsbs#R#8#8bQ#8.E.E#R#8#8bQaGbhbObhbQ.E.E#Rbn#Rbsbnbs#Rax.2.2bpbpbpbmaxaxQtQtQt#gavavaFaDaAaD#L#Z#LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.g.iaqab.v.q.v.v.r.q.q.r.y.y.wacabahababaaacacabaa.vap.C.C#q#SbLaG#8bnbOa#.Dbqbpbpbp.D.2.2bIama##sbQ.Ebs#Ubn.4baada6ae.X.9#D#c#F#J#LaraRaKboaNbobuaQaQaE#j#nan.V.7#yb#b.a6.G#ubb#V.4bc.4bibd.4.4bibcbdaj.FaI#tbn#UbnbnaHbnbnazbQ.E#R.E.E#s.E#8bsbnbQbhaG.EbhbQaGbh.E.3#8bQbO#s#7.2bpbM#r#rbHbM#r#TaIaY#c#Jaf.D#rQtQtQtQtQtavaQasaCaCaD#Nar#nQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQt.z.uaqab.p.v.v.q.v.q.q.q.y.w.w.y.waaabab.wacahaa.q.2a#bLbqbpaxbH#r#rbp.2bpbLbIa##Ta#bh.3bs#tbf#V.Gae#v#x.Q#d#Y#o#KaFaNaWbgbtaNaLaEasat#k#n#f.P#A#x#Wa0a6.G#uadbbbcbibcaj.F.FajajaI#U#Ubjbj#Ubnbnbjbj#tbn#UbnaH#Ubn.3#U.3#8#8#RbO.Ebhbh#sbQbQbQbh.E.E.EbO#T.2bN#rbmbM#r#r#r#r.2bh.4.X#e#NaCawarar#mataCaD#Oarbn.CQtQtQtQtQtQt#kaKavaFavauas#PQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.0.m.B.w.y.v.v.w.l.q.q.v.w.w.y.v.waaaa.wabababab#rbMbKbMbHbm.DbLa##sbQbQbnbs#t.YaXaea4.J##bJan#1aDaMbgbtbubtaNaRalaw#2#3#d.L#Ca4a3b.a7a1a7adad#Vbabibdajbibi#tbfbj#t#UaIaI#Ubj#Ubnbn#Uazbsbsazazbnbs.3bnbs#R#RbQ.E.E.EbsaGaGbsbsbs#RbxambNbpbM#rbH.1bKbmbpbh.Yaf#E#l#OaDasaRaEauav#M#M#i#Oaw#maA#m#Oawaraw#QbqbrQtQtQtQtQtQtQtaFaraMavavala.QtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQt.0ah.y.q.r.w.v.q.q.v.yaa.v.yaa.w.y.v.w.waaaaab#rbmax#rbN.2ambxaGbsbnbea9a6a0.H.8.V.U#F#j#4aLaMblaWbFaOaQar#m#nakag#.#wa3a2a7#p#u.4.4.4bcbdaIajbdbfbi#taIbf#tbnbnaH#tbj#taH.3bnbnbnbn.3bsbnbn#Uazbs#R#R#R#8bs#R.3#UbnaH#RbObI.2bmbpaxbK#SbMbHax.D#Ua5.J#n#Pawaoasasat#O#OalaDaEaD#Q#Q#Qaw#m#jalaDalaDaw#N#4.RaBQtQtQtQtQtQtQtbsaEaFaKaMau#1QtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQt.naqab.v.y.q.p.r.q.v.w.y.w.waa.waaaaabab.wab.1bMbmbpam#TbP.E#Ubd#u.5.H#A.T#d#oataAaKaubuaOaOasalaw#2#g.U.L#z.HaY.5aSadbabb.4bd.FaIbiaI#taHaI.FaI#UaI#UaIaH#U#U#Ubj#Ubj#Ubnbn#8bsbn.3#8#8#R.3bnaH.3.3aH#UaIbjbn#R#sambIbpbqaxbMbm#rbNbO.4afag#l#Par#NaraD#NaEalawarao#NawaAaCaoatatao#Q#O#Q#4atawaw#K#i#n#j#qaPQtQtQtQtQtQtQt#FaMaMauaR#j#tQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQt.x.B.w.w.k.q.v.y.q.y.w.w.wabab.waaa#bQ.wahbq#sbnaIada5aYaV.8#F#H#jaw#Masat#L#I#2#Fag.M#B.X.Haeb..Gba.Yaj.F.Fbj#UbnazaHaHbn#UbjaHbjaH#U#UbjaI#tbjaIbj.3bsbs.3#8bnbs#Rbsbs#R.E#8bn#Rbs#Ubnbn.Ea#ambLbpbqbp#r#r#rbp#sbcaeagataDaDaEaF#QauaAat#OatasalaDataE#OalasaCaAaual#Oataw#Nao#k#K#N#2#d.6a4#m#G.8.P#J#n.CaBQtQtQtQtQtQtQt#favaLaFas#IQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.kaa.y.q.p.r.r.r.y.w.yab.w.waaabbx.4a3.4a1#x#b#f#J#g#1#J#o#Y#ha.#D.Q#z.X.5.5.G.4.Ybiajbi#t#U#Ubs#Ubnazbn#tazbs#U#UaHbnbsbnbs#8#8#8#R#8#8#8bs#8#8#R#R#RbQ#8#R#UaIaIbj.3bQa##7.2bqbNbqbqbNbNbLbQbcafanavbuaWaJaFboaEasaOaAaAaAasaCawavaoaCauas#Nataoataw#4aoaAat#N#j#H#.#Las#3.X#y#Aatal#n#I#kaD#m.6#Q#M#m#G#qapQtQtQtQtQtQtQtavaJasao#4QtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oabaa.w.q.q.vacab.wab.w.waaaabp#sbha9.9#DbJ.O.O.7a4#vb.ad#Vbi#tbnbs.3.3#8bQ#8.3bs.3#8bn#8#U.3#Rbs#8#R#R.3#R.3aHaHbs.3#RbQ#8#R#8.3#8bs#Ubj#t#tbn.EaGbx#TbqbpbmbM#r#rbp.Dbhbc#9#davbublbtaJboaKbgaRbkaWbtaLaLaRauaRaAaEalaAavasat#N#K#javasaCar#PawalaFaEaD#Pal#2#2#I#QaR#O.H#K#kawar#v#kat#naD.T#o#k#h#X.O.CbrQtQtQtQtQtQtavaMaEaR#MQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.r.w.w.r.r.v.w.w.wabac.wacabbHbpbq#TbsbibeaIbjaHbj#tbnbnbnbQbObQbQ#RaG.Ebh#R#R#8#8bhbhbQ#8#R#R#8#RbQbhbO.EbhbQ.E#RbQ#8aHaH#UbQbPbL.2.2.DbpaxbpbpbpbLbPaIa7#.#QaKaJaWbubzbkaJaJaKaJbtbkbubzbvblbtbyboblaLal#LataC#m#Gbc.Jatas#N.Naf#naOaDaRaraE#4awaAaravaKaR#Nag#N#Pawar.L#Han#W#i#H#h#ibb#k#O#4#f#i#o#kae.C#qQtQtQtQtasaFaMaL#3#MQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qaa.v.w.r.wabaaabaaababab.CbH#rbp.2bPbPbObPaGaGbhbO#sbPa##s#sbObO#s#s#s#s#sbO#sbhbhbQaGaGbh#R#8#8bn.3bnbQ#s#7.2bpbmaxbp#r#rbmbp#7#Ua1###QaRaNaOaOaKaQblauavaNaJaFaJaWauaObtaNbgbwaKbtblaMaR.6aWaNaRat#n#rawaraF#1#g#n#jbkav#9aDauawataA#P#Q#l#malaAaCbkaLaAao#i.K.4#Yar#I#G.6#F#l#PbJ#m#O#Nav#9#l#M#laA.F#qa9boaKaKaKaOaOaD#K#4QtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s.rac.w.wabacabaa.wah.waa.C#6#rbpbLambI#7bxbxbP#sbxa##s#7#T#sbObxbx#s#sa##s#saG#8#8#RbQa#.2bNbpbNax#rbH#SbHbHbp.Ea9aV#iboboaJbgbzaMaWaNaKaJbgaQaFaNbtaNaWaKaOaMaKaOaQaOaNbtaNbgbobFbwaWaWavalboaJaKau#v#N#QavboakatawalaKaQ#i#j#j#n#jaD#L.Xb#ad#PavaDaDboaE#j#3.V#3#iaEaoaV#M#PataO#W#Nas#Qas#D#K#I#n#Zat.E.CaZaJaJasavavaoaAQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.0abah.wab.waa.w.y.w.w.waP#q#Sbq.2bpbLbLbI#T#7a##T#TbI.2#Ta##T#TbL.Dbp#r#rbK.1.C#6.1#6.C.1#r#sbia3#XavaMasas#NaLasaMauaQaQaQbwbkauaJaMaNaQaFaMaOaJaLaQaMbgboaKaWboaLboauaMaKbkbwbkbvbtaQaTaFaKaMbkaQ#Dauat#mbgag#P#P#yalalaQ#o.4bibbal#O#D#0#iaoaFawararasaD#Pa2#i#N#Nav#B#k#i#J#n#K#f#Iaj#E#Pak#g#n#L#natbq.C#vaK#nboaA#Fa7QtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Z#5.w.wab.waaab.waaabap#6#rbpbmax.2bLbq.2am#TbNbm#S#qapapai.Baqaq.Bah.B.BaiapaBbM#s.4#y#naubtbgaNbgaNaNaRaRaObtaMaEavaMaQaWaKbwbuaWbwboboblaNaQboaWaQauauaQaLaLaFbublaNbtbDbtbuaNaNaK#waJaLaNaWbu#m#Q#3#b#i#L#k#G#X#1#oav#PaV.V#naLaR.Nav#mat#4#PawatblaE#k.R#4#Q#F#K#i#d#objaU#L#f#o#v#.#K#2#D#M#M#O#O#xbraxaQ#KaDas#OQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahabababaa.w.waa.w.waP#SbMbHbmbqbNbp#r#qayab.y.q.l.q.q.v.y.q.yaaaaabaibKbQ#p#B#maraFbtboaQboaMaLavaraRaraAaRaLaNaWaNaLaRaQbkaWaKaJaWaFaQbtaWaNblbtaNaQbuaJaLaEaLasbkaQaWbzbGbBbDbvbv.Uao#4#l#iaNaC#X.V.W#naraD#G#G.Q#gboata3#KasataM.6aDao#OaR#mal#4aDao#l#4#h#Fazag#i.O#H#9.X#J#lbJ#nat#maC#f#Nalaras#P#S#q#daRaoaoaXQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.wababab.wab.w.w.v.w.y.y.q.r.q.r.r.r.r.x.r.r.r.r.w.C#Tbb.I#d#3#j#k#K#mawalaDaRawaDaoaAaualauaLaEawaOavaLaFaRaQavaLauaEaQbgaFaEboaNaNbtaWavaWaJaNblbvaWbwbkbtbE#P#n#i#nbDbE#P#c#N#laOaw#4#G#J#IaL#N.N.N#kaFbo#i#QasaoblaL#y#Q#Nao#MaU#F#iar#OawaEaraEaOar#N#G.J#dan#2#j.Q#i#P#Par#Aar#Nawaw#Jar#P#L#i#O#laBaB#SQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahah.w.wab.r.n.m.l.p.r.r.qaaaqbm.E#u#z#E#0#i#n#f#n#n#L#i#Z#i#l#K#M#o#k#n#L#k#KaD#maE#P#4#karararauaAaEaAauaJaRaRaOavaRaLaLaFbkaMbububybgbGbDbAbgaJ#Pa8#JaJaM#X#2ajaTaE#Q#G#K.X#QaRaE#CalaDaAbkaCa3#4alavaK#G#k#NaAao#o#i#0#N#3a0aXa1.K#QalaCarataw#MaO#j#1ae#l#j#laA.9aA#iana.#G#o#f.MaI#0#l#f#Za2an#i#Fap.CQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahacaaabaa.o.j.m.la2#X#e#f#f#I#J#1#h#G#3#i#H#1#i#i#n#K#n#I#j#L#Latawat#K#marar#j#N#j#l#l#M#l#m#N#N#LaDaDaoaFaRauaOaObEbE#YaT#Aakbwbu#G#s.T#FbyaT#1a6aS#gaE#3.5awauaWbDal#daWaQbtbz#9al#Oat#j#i.L#Haw#oak.Waf#EaD#k#0#faT#gav#MaYaCaw#O#Pat#NaC#4arawaA#k#F#G#1#x#YaU.S#Cag.6#h#k#X.Vaoalao#4.U#Ya7#D#Y.VaBaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oacacahab.m.o.p#S#h#X#0#JaT#n#Z#F#0an#1#g#1#n#o#3#n#2#i#MaD#M#m#j#m#l#Q#O#m#maw#Lawaw#Q#k#PaCaraRauasaQaNbl#ka4#V#fbkav.V#E.3agbl#I#ZaVajagbz#f.7.Lbb#LbF#I#vaCaFavbuaEalauauauaJ#E#L#Oao#D#fa3#H#i#3#D.Wbc.O#N#k#i.OaU#gaC#kagaraA#OaE#P#O#M#K#NaoaFaC#P#0#D#n#2#M#I#f#3aCalav#n#eaFaC#2ao#D#a#X#.#X#G.CaB#SQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.y.Bah.w.r.n.xbx#1#F#H#F#F#0#G#3#o#1#i#H#n#o#i#3#H#3#1#Q#j#2#2#I#P#K#m#Oaw#kaD#Q#O#O#O#OalavbuaJ#Q.9#hbtbv.LaYbL.OaL#1#zanbp#A#lan.W#hbh#eaF#l.V#PaDaLbDal#naMawasbtaQ#NaEaA#h#0bda4#ZaA#FaUa0#F#J#O#n#b#j#Nal#L#J#dakaT#Earalao#3#F#1aFar#N#P#P#Z#kalat#G#d#iataDas#n#QawaFalasaw#i#Q#3#oaU#x#A#X#0#G.Hap.CQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacabaaaa.i.m.r#n#h#o#1#o#l#Z#3#K#n#i#Z#k#Han#d.P.O.V#y#z#K#Oao#Nal#PalasaLaublbubkau#M#LbubFafaU#U.SaU#I.R.Pa8#.#j#G.Nb#araDasbG#o#mauaJaLbo#.aDasaE#O#M#F#YaE#O#o.3aY#0ar#o.S#z#c#0aw#i#9aw#NalaF#n#P#4#o#F#ha.#b#A.6.Tan#Lan#fa4.VaUaA#M#l#l#4#jaAal#IagaD#m#L#P#2#0an#Y#Fa.#Kag#c#0#1#I#1.5#j#M#m#Qa9aB#qQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaaabab.x.o.kb.#3#g#H#n#Y#h#G#f#faU#G#G#D#xa0bnaea4#A#.#P#NbzblbwbA.RaUaa.W#gbF#z#FbL#a#b#L.K.Hak#IaC#P#Xa9#NaDaobv#2#maCavaCbtaF#maL#P#D#daU.6#gaE.P#Zbn#d#Y#1#d#A#kaFaRbo.MataCataAaK.NaoaA#H.Ma.anal#f.O.S#A.LbJ#f#Z#Pbo#M.XawaoaCaE#4#M#4#O#Q#kal#ia.#D#F#D#a.M.H#.#K#Q#QaD#2#W#Oat#laE#1#M#OaE#Pat.3apbKQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.xac.yab.o.k.w#k#H#0#k#n#i#n#I#G#e#gaQ.J#W#D#Z#2#2aw#K.Va.#t.M#oaJ#c.R.7a8#fbAbJaV.8ae#2al#e#Wal#NaoaNaO#KaC#Pau#I#Gak#FaQ#Y#J.4#z#daQak#Ab#.6#gaw#J.5alaOaLbu#Y#OaAasaAaO#D#4#QbJ.V#u.LaU.S.V#E#uak#2#i.O#4at#Pawavaoaraobu#1#oak#FaCar#2#l#Z#k#k#LaQ#Z.U.U#KaAaCao#jaCaCaAaCbt#EaDas#4aD#l#m#PaoaAaFaobOaP.CQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.xab.waa.i.k.l#2#O#j#L#j#0ak#g#j#o#ibvak.I#F#f.U.PaD#4aV#b#W#..VaFa.#W#i#NaOaQ#n.GaraFavbk#M#JaCas#OaMbl#2#law#lanaj.5.Sbo#bbJ.K#zagaM#n.6aD#OasaW#La4araCaFboaoaRaL#F#Y#J#f#h#h.O.S.I.O#g#FbJ#z#OasataM#BaAasaOavawaw#M#MaF.T.5bQ#v#jaEao#j#I#Z#3#k#MaD#gagatawararalaRarasaFav#MarawaoaAalaFaFaFavaraw.TaibrQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.kab.wab.j.m.p#zaw#M#L#L#I#n#G#1#J#0#N#0.9.7.7#p#V#Har.Mag.SaV.R#lbJbbawaoasbtaJa0aFaKaMbgaL#maRaRar#f.5#v#aaC#c.T.P#t.PaCag.9#Y#maEbg#N.HaoaAaFaRbo#4#m#P#K#e.W#E#P#D#aa7#w.M#XanaYatav#OaF#c#F#lat#PaR#xar#j#j#3#gawaD#I#M#A#v#b#iaoaCaFaw#M#2#2#k#m#m#1.U#NataDavaKaraD#4awalaDaRaRaLaA#O#PalaDal#Q#j#ibp#qaBQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.rahabac.v.n.lai#Q#P#k#4#Z#1#n#J#e#F#oaF.Oaf#.##.K#FaL#Ea7#i#NarboasaTaEaOaEaRbw#i#ZboaKa.bjaH#BaraU.LaV#w.P#M#n.U#naRaJbobw#.alauavaDav.Rar#3#2#faf.L#P#c.Lae.IbJaF#da2#4aEaAavatagar#K#P#m#H#f#0#j#N#O#Y#A.7#d#2awal#o#Yan#b#x#Laoal#N#i#l#Q#M#4#i#K#M#k#galasasaCaDauaQaLaral#P#Oawar#Patataoaw#NaC#O#N#K#6aBaiQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaaacabab.v.u.m.k#nawal#m#I#I#k#o#o#X#3#P#0a4.GataFavbDbg.RaCaEal#G.U.X.Mavau.V#8am.8#i#Y#b.9.8#faC#Oa.#kaAaOaRbkag#P#O#k#G#0.Mav#h.OaGbs#.#2#e#D.P#A#iao#Q#.#NaFaDaCbg#E#P#OaE#n#D#u#D#J#K#A.X#E#Mas#D.L.6.Q#zaoalataAaR#J.S#e#M#NawataDaEalaw#L#2#i#Q#M#P#n#MatatawawaD#Oasao#N#k#4#j#j#m#PaoaCaraD#m#Oat#L#AapaPapQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.wahabab.w.l.o.l#raD#M#2#i#M#l#l#J#G#0#Z#O.H#i#i#n#dagagbJ.PaK#h.QbjaI.Waw#I.P.R#e#2auaW.N#LaAaOaDbt#haoaw#1#0#C.R#I#Z.O.T#Ua2aT#G.S#XaEalaAboakaFasav#MaJ#Y#K#Z#Oag#b#U#x#JaQ.M.8#PatataD#D#AaualaCavaT##.RaDaraDaw#P#4#Q#LaQ#m#M#QawaDaFasaE#m#P#n#4#j#k#Ialar#Pao#4aA#P#4#Q#L#Mat#N#2#Q#M#M#l#j#i#Z.Pa1bs.CaB.C.C#5QtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.yahahahab.w.i.l.q#Kalal#4#j#i#k#H#I#M#kaFa.#n.Vag.Q#W.X.K#B#j#n.W#XauaEaFaW###mawavalat#D#N#M##a2.4#w.L#HbJ#..H#f#M#L#c#vaDavaEbk#JaFas#Q#P#k#a#yaUaE#D.8adb##Haw#c.KalaCavaR#i.KauaAaCaFas#YaoaCauaFaQaCaDauataD#4#m#NaDawasaRas#malaD#L#Q#n#L#j#m#j#P#l#L#l#K#malat#j#j#4#M#i#i#i#n#F.6bd#T#r.C.C.C#6.C.C.C.C.C#S.1QtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qahahac.wah.l.l.rbjaraw#m#G#n#4#i#I#k#4#MaKag#z#ialavataEasaRbB#faLaMaC#2#f#baE#O#A.8#U#u#A#h.T.6#NaDaCau#D.PalarauaWawawao#N#M#Fa2bf#D#k#D.J.J#Z#Oau#c.N#Mararawav#DasaRaQar#3#D#i#G#i#i#n#K#laCaraQboaLaMaOaOasaEaDal#Naw#m#P#Q#m#m#3#i#1#i#Z#l#j#i#l#2#L#j#M#Z#i#K#2#D#vajbL#q#q.C.C.C.C#6#S#S#S#S#S#S#S#S#S#S#SbK#rQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.x.Bahaqabab.y.n.l.qal#4#P#i#I#Q#Q#l#j#L#3aW#3#aauaNaRasaAasasaL#NaL#j.Oa.bba2.L#Ha.a3aCaEauaQ#h#LaJaLaQasao#0#1aC#M#fa5bh#0ar#f#d.6asaRbuaCa.aDaOaMaAaR#Xal#K#n#n#F#e#2#n#law#mararasaDauaRaMaQawaoaLaCalasal#l#i#l#K#2#3#I#i#i#3#Z#i#o#H#n#n#i#1#3#J#1#F.Ma5bs#rbraB#q.C.C#q.C.C.C.1.1#S#SbHbK#r#rax#r#r#rbMaxaxbpbpbpQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.y.qah.wababaa.o.m.raZao#matatawaraoat#K#f.Na..9auaJ#o.Ma5.QaWaOaubk#g#e.MaLaMaCbu#HaoaFar#O#l.L#9aU#4#i#A#Waf#3aD#eag#laAaFaOaF#YalaRaKasaC#3#M#P#3#l#g#I#i#4#NaoauaRbkauauaLaQboboaQaNaLaKaJaOasaW#Q#4#j#m#N#i#H#o#3#3#Z#Z#i#i#1#n#XanaU.U#vajam#qapapaiapaPaBap.C.C.C#S#6#6.C.1#SbMbMbMbH#rbmbp#rbNbqbpbNbpbqbqbqbpbpaqQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtai.racabacaaab.m.m.xbpalaw#Nao#i#MaD#m#d#z#9bs.4aw#FaUbbbi#9aMaC#gaE#IaU#4ataravasal#J#iaC#Nagb.#R#f#j.U.T#x#OauaKatbJalaraMaoaW#jawaE#O#M#o#0#F#3#Z#O#4ataFawavaRaRaraFavaQaLaOavaKbubublbobtblaKaRaE#4#Z#2#M#k#j#O#L#i#J#X#g#X#E#DaVbcam#q.Bay#5aiaiaiapap#qaBaP#q.C.C.1bHbH#6bHbHbH#rbmaxaxbpbNbN.2.2bqbq.2.DbNbq.2bN.BQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtah.rah.Bahahab.w.o.xabaraw#M#l#P#4aw#P#.#W#waY.8aD#g#Bae#A#Xbw#D.J#b#O#FaraCaC#N#cad#8.LaraU#B.L#Zaoav#H#b#kasaEasaN#FataLaF#O#I#0#Z#J#J#3#I#M#NaoavaraKauauaFaAaJaQaLblaJaKaKbubgaEaRaMaKaLaOauaQavar#j#2#i#0#n#n#X#g#f#f#f.6.4bx#qaqaq.Bay#5.BaiapapaiapapaB#q#q.C.1#SbKbH#r#SbH#r#r#rbpbpbpbpbp.2.Dbqbqbq.D.2.2bIbL#TQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.r.B.yabababacah.o.m.k.Vavar#OaCaE#PbB#b#.avaLaraAby#xaFawaE#Qa.#A#xb#.WbkaJaW.N.J#e#MaAaJ#f.OawataEaAaQ#G#N#Q#Q#l#H#X#H#3#2#jalaFaQbtblauaQalauaRaOaraMaAasaRaKaLavaRaOaOaNaKaKaFauasavaKaQaLaWaQaE#l#N#G#f.LaS#s.1ahacab.waaabaq.Bah.B#5.BaiaBaPaP#q#q#q.C#6#6#6bMbMbH#r#SaxbMax#rbpbpbN.2.2.2.D.DbL.2a#bhbQbhbx#Tbx#RaBQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.uaiahababaaaa.w.x.j.kapaEaDalau#malar#1#haC#O#E#.#OaraCaE#D#B.J#Y#3ataC#N.Q#F#fbJ#laoaCaraO#h#4#M#1#n#F#g#1#i#Z#PauaraFaFaKaMaMaRbtaQaQavaWaKaMboauaMaQavaRaLaCasaAauaWaCaJavaLaAaFawasat#k#G#WaHbmah.w.y.v.yaa.yahababaaacabah.BaiayapapaBaB#q#q.C.C.C#6#6bKbH#SbHbMaxbpbNbp#rbpbpbNbpbIa#aG.E#sa#a#bxbO#sbObh#8#8#8bsQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.bai.B.kaaabahab.y.o.m.qaDaD#OataA#Q#Pboal#.baag.L#Qbu#d#.aYakaEaCauasaLaL#Q.Mal#Kaoat#E#Z#J#n#1#Q#MataEaFaKasaOaOaJblbtbtaKboaWaNavaQaKaKaKaLboasaQaFaQaEaMaOasaRaEarawaw#K#Eafbe.D#5.w.q.qab.r.w.w.w.wababaaaaahacaq#5aq.B#5ayaPapap#q#6.C.1.C#q#6bK.1bKbHbMbH#rbpbpbNbN.D#T#sbO#sam#T#7bxbx#sbO.Ebh#8bnbjbfaj#VaS.5#UQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v#5.w.q.waa.q.v.Z.m.kaZaAao#P#I#4#Lbtal.8aYaCaFaQbw.S.Ka2bJawaLaLaMaLarao#jbvaoaE#P#j#Pao#laRaDauaLaWaMaKaCaRaNaWaOaOasaQauaFaCauaQboaWaOaWaOaJaQaQaRaFaDaC#M#k#I#F.6#Ubpaq.y.q.q.v.q.q.r.wacabab.v.yababacah.B.B#5aiaiaiaPaPaBaBaPapaP.C#6.1#S#S#SbK#SbHbMbH#raxbIbx.E#s#TbLam#TbPbP#s#s.EbQ.3bjbebiajbb#pa5b#.5#UQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.o.Baq.r.yabaa.y.i.m.kbpar#N#N#PaE#LaQ#m#xanaoaWboaM#i.LaV#nblaLaAauaMavaraEav#NaD#k#mauauaJaNaRaKbuaQaJaKaRaQauaNasaRaRaLaNaKboaOaJauaFaRasavavavaFaE#L#2#Xaf#Ubpaq.q.v.q.qab.r.q.v.q.y.w.y.waaacahabahacahaqaqai.Bai#5apapapaibr#qaBaP.C#q.C#6#6.1.1#S#S#r#7#7bxambIbI#7#Tbxbx#s#R#8bsbn#taj.Ybaa7.5a3a0.Ya#QtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacab.m.l.r.p.r.o.d.i.jaCaraoaC#l#P#Nar#zataOaRasarbFaDaCaRaFauaOaFarasaOaRaF#l#Naw#NauaRaJauavauauaAaJawaMaMaRaWaKaKaJaRaFaLaRaraC#N#K#3#f.Ibi.Dah.r.m.x.k.r.p.q.r.l.r.q.waa.y.w.y.w.wabahabah.B.B.B.B.B.Baiay#5#5apapaPaBaBaB#q#S.1.1#S#S#r.DamambNbNbq.DbIbLa#bxaGbhbnaz#Uaj.4#Va7aY#WaebjbNaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.bab.w.m.q.l.l.r.h.u.i#U#4ar#I#I#m#PboanaJaFaMaJaNbFaKaKavauaraAalaAaA#P#Q#2#4#IaW#NaQboaQaKaJaKaOaOaRauasaLauaAatal#Nal#n.SaS#sap.l.k.m.k.x.k.l.l.x.l.k.p.r.q.q.w.wacababacacacab.B.B.B#5#5aiaiap#5#5apapaPaPaB#qaB#q#q.C#6ax.2am.2#rbpbp.DbqbqbIama##sbQbnbnbeaja9a1aY.6afbf.DahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oab.w.l.k.l.m.d.A.c.jasaCaw#m#maD#I#javaFaCaKaFawaA#P#Q#i#M#O#4#K#i#n#M#l#2#LalaFaMavauaJaQaJavaFao#P#k#X.X#UbH.r.m.x.x.x.k.l.q.r.r.q.r.v.y.l.v.q.q.w.waaababah.Bai.B#5ay#5ayapaiaiaiaiapapap#qaBbr#q.1.C#r.DbIbIbpbpbpbpbp.2bL.2ama##saG#R#8bjajbb#pb.#W#W.Fbq.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacab.m.x.l.x.u.A.c.i#maAawao#Nal#M#m#mat#OaA#M#I#N#Z#l#L#P#L#M#l#P#Q#l#N#Q#k#ialaEar#NaDaual#O#Ga4bfbpac.k.k.k.p.l.p.r.q.q.r.v.q.q.y.vaa.vaaabab.B.Baq.Baq#5.BayaiaiaiapaBaBaPbrap#qbraB#q#q#q#q.1bNbI#T.2bpbp.DbI.2amam#T#7a#bPbhbnazbebia8a5#W.6a8.E.CQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahaq.k.l.q.q.p.d.u.o.XaO#L#m#i#j#4#L#M#Q#N#P#k#i#4#I#L#N#Pat#N#l#n#I#i#3#i#I#Z#I#k#I#L#n#A.4.2#5.w.p.k.r.k.r.r.r.v.q.v.vababababababacacah.B#5aqaqaiaiaiaBapaPaPaP#qbrapapaBaB#qaBbr#6#qbK.2#TbI.2#r#rbpbpbpbq.2bL#TbxbObQbnbn#Ubeada5a0#v.XbebNahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Z#5.B.r.p.q.q.c.o.naaaAat#L#l#2#M#Q#P#j#M#2#L#K#n#i#I#2#H#k#j#j#L#2#M#0.J.4#TaP.q.r.p.r.r.r.r.q.q.v.q.v.y.waaaaaa.wahah.Bah.Bah.Bay.B.B.Bayaiaq#5aPaPapapapapaB.C#qbr#q.C#r.DamambpbM#r#rbmbmbqbp.2#TbP#s.Ebnbjbi.4a8a6a3#v.HbbamaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaq#5.v.p.q.r.j.c.o.o#X#O#j#j#I#L#P#N#j#N#K#N#P#k#3#i#YbJa1bQ#S.w.r.k.k.x.k.l.l.r.y.v.y.vababahacaaahahabaaababahah.Bai.B#5aiaiaiaPaPaPaB#qbraBaB#q#6.C#6bHbLbxa#.2bmaxbmbmbNbq.D.2#7#TbObhbh#8bnbfbaa5a0a4#z.I.4bp.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s#5aq.m.p.q.w.Z.i.oaPaD#k#Q#4#1#h#i#naTa0bQ#6.q.l.m.k.r.r.v.w.w.v.w.y.wabab.wababahacacah.Bah.B.B.Baq.Bayayai#5apaiapaBaB#qaB#qaBaB#q#q.CbNambI.2bMbH#SaxbpbpbqbLam#Tbx#sbQbQbsbj.4#pa6aY.X.7af.3aPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.mayah.r.yaa.n.i.o.o.kbHbOaxaa.m.j.m.l.k.x.r.p.r.r.q.q.y.yabacabacacacaqaqah.B#5#5ai#5apapapapapaPapaiaB#qbraBaB#q.C#q.C#S.2bI#TbLax#r#rbpbN.2bN.2#T#Tbx.E#Rbs#Uajba#pa2b##x#.a6bx#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaiah.m.q.y.v.h.o.j.o.j.o.x.l.l.q.p.l.q.q.y.v.v.wab.w.Bahahaq.Baq.B#5aiaiaiaiayapapaPaiaBbrbr#q#q#q#q#6#S.2bObh#7bpax#raxaxaxbmam.2am#TbP#sbQbs#U.F.4#pa6af#A#w.4bq.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.h#5ah.m.raa.Z.j.k.k.r.r.v.l.v.w.w.w.wabaa.wabacacah#5ai.B#5.Bai#5#5#5apaB#q#6.C#6#6.1.1#rbI#Tbx#TbqbmbqbL.2.2.2.DbIambPbh#8bs#Ubi.4a8.5#v.6.JaYbn#q.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qaq.y.p.w.o.x.q.y.v.wab.wabahababacahahab.BaqaiaiapaiapaPai#qaP.C#q.1#S.2#T#sbxbqbpbp.2.Dbm.2.2bLbx#sbO.3aH#Ubi.Y.4aSa0af#z#A#u.2.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Aai.B.x.y.k.m.v.qabababahacahahab.B#5#5aq#5ayaiapapaB.C.C.C.1#Sax#TbO.E#sax#r.D.2bp.D.2a#bxbhbQ.Ebsbn#UbdadaXaY.H.I#Aa6aG#5.ZQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaBai.mab.q.mab.wabacababah.Baq.Bahah#5#5#5aP#q#q#q.C.C#SbqbxbPambmbpbpbNbq.2am#Ta#a#bO#8bsaIbi.4adaSa1b#.6.J.X#U#6.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.iaBai.qab.kac.Baq.B.B.B#5apaB#5aP#q.C.1bma##sbx.2bpaxbNaxbq.2bLbI#Tbx#saG#8#Ubfajada6a2.H.7.J#p#TaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#5ap.rababaiapapapaiaB.1bpbI#Tbmbmbm.2.DbLbp.2am#Ta##sbO.3bs#Ubi#V#pa5a3aV.R.Ibf#r.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.eaPai.obM.D#T.D#r#SbM#rbm#rbp.2bLama##s#saGbnbjbd#ua6b#.X#x.RaYbh#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.l#5aqah#SbK#SbMaxbmbNbLa#bQ.3#Ubi#VaXa0.X.7#Abbbq.r.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaiaibNbq#TbPbhazbjbdada6a3#y.5bQbr.uQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#rbjada6a2aebfbp.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
diff --git a/konsole/doc/color-schema b/konsole/doc/color-schema
new file mode 100644
index 000000000..37f754a17
--- /dev/null
+++ b/konsole/doc/color-schema
@@ -0,0 +1,114 @@
+[README.color.schema]
+
+Having made parts of the rendition process configurable, some explanation
+seem to be required, to. Since I'm writing a color schema configuration
+program in the moment, these notes are also some of the preparations for it.
+
+
+First of all, the redition process deals with a lot of parameters, making
+a useful configuration program for it quite complicated.
+
+Looking at TECommon.h, the current implementation of a character cell allows
+not less then 256 different foreground and background colors, together with
+256 rendition values, with, forming a bit vector can be treated as 8 different
+rendition attributes (like blink, bold, underlined, etc.)
+
+[From the later, one already sees one misconception within the current
+ implentation. Attributes like bold, underlined, etc. belong to font.
+ Now because we do not have a proper terminal font family, this goes
+ into the rendition attributes instead. Sooner or later, no way will
+ lead around getting a proper family of scalable fonts for konsole.]
+
+
+Upon further investigation one has carefully to distinguish between
+the ability of the protocol to express rendition and the abilities of
+the terminal widget to do them.
+
+The protocol is able to express 18 different colors, this is 8 colors
+taken from an RBG cube and an additional default color (which is intentionally
+one of the 8 but it needn't be) both for fore- and background.
+
+For simplicity, we interpret the fore- and background colors of the RGB cube
+to be identical, thus ending up with 10 different colors (8 RBG + 2 default).
+Note that this is not necessary, but just konsole's interpretation, it may
+well make quite a lot of sense to have different sets of (real) colors for fore-
+and background.
+
+Now the xterm protocol can further express the following attributes:
+
+- bold
+- underlined
+- blink
+- reverse
+
+The Linux console protocol knows also the attribute
+
+- half-bright
+
+Now, when it comes to interpretation, things become pretty messed up.
+
+Xterm interprets "bold" as "font bold" + "foreground intensive"
+Linux interprets "bold" as "foreground intensive"
+
+Xterm interprets "blink" as nothing
+Linux interprets "blink" as "background intensive"
+
+Xterm interprets "underlined" as "font underlined"
+Linux interprets "underlines" as "foreground intensive"
+
+Xterm interprets "half-bright" as nothing
+Linux interprets "half-bright" as "foreground dim"
+ANSI interprets "half-bright" as "font italic"
+
+all interprets "reverse" as "exchange fore- and background color"
+
+
+A flexible interpretation engine is needed to cope with all this.
+A proper configuration should also take care of it.
+
+Since intensive and faint colors can also be expressed by the protocols,
+the number of colors double or tripple (we do not have implemented
+half-bright, yet, since we've just started to do the Linux console emulation.)
+
+Note that the protocol is not able to express "intense", which causes part
+of the confusion listed above. Xterms interpretation of bold as intensive+bold
+is most probably caused by the fact, that in a black on white color display
+(which is their default), "black" cannot be intensified, thus the attribute
+would get lost. Linux gets around this problem by having the regular black as
+dark gray, and only intensive black as black.
+
+As a matter of personal taste, the author strongly dislikes the apparence of
+the this combination when it comes to colorful applications. Thus the default
+schema of konsole is configured to render only the default foreground color
+as bold, while the others are rendered intensive. By this, the interpretation
+device (and it's configuration) is even more complex as it appears above.
+
+
+Konsole's rendition engine is currently not able to cope with font attributes
+by changing the font. Instead, it does some (costly) operations with the
+character images themselves to produce:
+
+- bold
+- underlined
+
+It cannot render italic and is (by a parameter) limited to 20 different
+colors. That fore- and background colors are interpreted identically, is
+also build-in to the engine (and interpretation). These aren't severe
+limitations, it can be changed easily.
+
+Other then the emulations mentioned above, konsole can interpret "blink"
+as blink. Just to have a little more fun, konsole can display background
+images, meaning that some background colors have to be interpreted as
+"transparent" when a background image exists. Practically, this can only
+be the default background color, so a least this one could be hard-wired.
+
+To set up a proper configuration, I do not want the users to cope with
+all this unnecessary complications. Instead, a approach has to be found,
+that allows to configure the already existing interpretations and other,
+that do make sense. As stated above, it does not make sense individual
+colors beside the default background colors to become transparent. Nor
+does it make sense, to set all the 52 possible colors individually, since
+an RGB color cube is intented with some intensity attributes. Some
+experimentation is certainly necessary to get things right. E.g. VGA and
+X11 colors are different for one of the yellow sorts, beside just being
+gamma corrected.
diff --git a/konsole/doc/framework b/konsole/doc/framework
new file mode 100644
index 000000000..b07f8e6d5
--- /dev/null
+++ b/konsole/doc/framework
@@ -0,0 +1,33 @@
+/*! \page framework
+ The terminal emulation framework
+
+The structure of the framework is as follows:
+
+<pre>
+ - - - - - - > - - - - - ->
+ TEWidget VT102Emulation Shell
+ <------------ < - - - - -
+ |
+ |
+ V
+ TEScreen
+</pre>
+
+Within the drawing, a solid line (A --> B) mean A calls B while the dashed
+lines means connected by signal.
+
+Thus the AnsiEmulation knows about TEWidget and TEScreen, but not the other
+way round. `main.C' connects the whole framework.
+
+The state of the emulation is somewhat like `version 0.8'. It knows most
+xterm/vt100 escape codes and does well with bash, vi and mc right now.
+
+'man' shows a little different output since underlines are missing.
+
+The `Shell' material is a dump but of no real importance.
+
+The current implementation does not longer fit to 'kom' since we
+are using block operations with the modem. May be we can implement
+this within the main program to indicate the end of bulk there.
+
+*/
diff --git a/konsole/doc/histBuffer b/konsole/doc/histBuffer
new file mode 100644
index 000000000..4eb419f6b
--- /dev/null
+++ b/konsole/doc/histBuffer
@@ -0,0 +1,24 @@
+[histBuffer]
+
+|Documentation|----------------------------------------------------------------
+
+The `history' is a facility, that allows to get access to lines
+scrolled out from the visible part of the display. It is mainly used
+to present the complete result of an operation that produces much
+output, such as compilation runs.
+
+This facility is offered by virtually any terminal around on Linux.
+
+There are basically two means to control the visible section of the
+history. One can both use the keyboard, by pressing Shift-PageUp and
+Shift-PageDown, and, if the scrollbar is visible, one can use it to
+page through the history also.
+
+Once parts of the history become visible, konsole maintains this
+position, even if new text is added to the history meanwhile. Thus, it
+is in history display mode. One can revert to normal operation most
+quickly by typing any character (which is then not passed to the
+application) or scroll down to the end.
+
+|Implementation|--------------------------------------------------------------
+
diff --git a/konsole/doc/konsole.Doxyfile b/konsole/doc/konsole.Doxyfile
new file mode 100644
index 000000000..02a5e0175
--- /dev/null
+++ b/konsole/doc/konsole.Doxyfile
@@ -0,0 +1,10 @@
+PROJECT_NAME = "Konsole"
+OUTPUT_DIRECTORY = konsole
+GENERATE_LATEX = NO
+INPUT = ../src ../include framework
+FILE_PATTERNS = *.C *.h
+PERL_PATH = /usr/bin/perl
+TAGFILES = qt.tag
+QUIET = NO
+EXTRACT_PRIVATE = YES
+#EXTRACT_ALL = YES
diff --git a/konsole/doc/missing.codes b/konsole/doc/missing.codes
new file mode 100644
index 000000000..9320a2902
--- /dev/null
+++ b/konsole/doc/missing.codes
@@ -0,0 +1,89 @@
+Contained in here is a list of VT100 facilities (and extension based on it),
+that have very low priority or are not likely to be ever implemented by me.
+The order is more or less by priority, so you'll find the most interesting
+stuff in the beginning. All this is mainly included so that you can see, what
+you miss.
+
+- some modes -----------------------------------------------------------------
+
+ The next two modes are difficult to implement (for me).
+ May be i do them, may be not. Think, smooth scroll would be kool.
+
+ '?4'= Jump scroll (set); Smooth scroll (reset)
+ '?8'= Auto repeat on (set); Auto repeat off (reset)
+
+ following are not in VT100, nor in xterm, check Linux console
+
+ '2'= Lock keyboard (set); Unlock keyboard (reset)
+ '12'= Echo on (set); Echo off (reset)
+
+Hmm, one can easily dig out more other which may originate from different
+VT100/VT102 variants. We'll keep things simple, but have to check trough xterm
+and Linux console to be sure.
+
+- rendition material ----------------------------------------------------------
+
+This is mainly not implemented because the fonts are too weak.
+Eventually, i can do better if i dig a little...
+
+Set graphic rendition
+ Where <n> is
+ 2 = Half // Not in vt100, ansi italic
+ 21 = Normal intensity (this might well be a spelling mistake i.e. == 22)
+ Check linux console for some sco-ish stuff.
+
+Line attributes
+ Double-height Top half Esc # 3
+ Bottom half Esc # 4
+ Single-width, single-height Esc # 5
+ Double-width Esc # 6
+
+- printing related stuff, will not be implemented ----------------------------
+
+Don't think this is of any use today.
+These codes seem not to appear in VT100 only, may be it was an option.
+Implement a log instead?
+Implement "save screen and buffer"?
+
+Modes // not in VT100
+ '?18'= Send FF to printer after print screen (set); No char after PS (reset)
+ '?19'= Print screen prints full screen (set); PS prints scroll region (reset)
+
+Printing
+ Esc [ <c> i
+ Where <c> is
+ ''= Same as '0'
+ '0'= Prints screen (full or scroll region)
+ '4'= Printer controller off
+ '5'= Printer controller on (Print all received chars to printer)
+ '?1'= Print cursor line
+ '?4'= Auto print off
+ '?5'= Auto print on (Prints line to printer when you exit from it)
+
+VT52 sequences
+ Auto print on Esc ^
+ Auto print off Esc -
+ Printer controller on Esc W
+ Printer controller off Esc X
+ Print cursor line Esc V
+ Print screen Esc ]
+
+- huh, that could be fun! ----------------------------------------------------
+
+Programmable LEDs Esc [ Ps q
+ 0 - All LEDs off
+ (1 - 4) - Turn respective LED on
+
+- does not produce a reply, anyway -------------------------------------------
+
+Invoke confidence test
+ Esc [ 2 ; <n> y
+ Where <n> is
+ '1'= Power-up test
+ '2'= Data loopback test
+ '4'= EIA loopback test
+ '9'= Power-up tests (continuously)
+ '10'= Data loopback tests (continuously)
+ '12'= EIA loopback tests (continuously)
+ '16'= Printer loopback test
+ '24'= Printer loopback tests (continuously)
diff --git a/konsole/doc/missing.keys b/konsole/doc/missing.keys
new file mode 100644
index 000000000..8d0688842
--- /dev/null
+++ b/konsole/doc/missing.keys
@@ -0,0 +1,124 @@
+KEYPAD AND FUNCTION KEY SUMMARY:
+-------------------------------
+
+ CURSOR CONTROL KEYS:
+ -------------------
+ Vt52 ANSI and Cursor Key modes
+ Arrow Key Mode Reset Set
+ ---------------------------------------------------
+ Up Esc A Esc [ A Esc O A
+DONE Down Esc B Esc [ B Esc O B
+ Right Esc C Esc [ C Esc O C
+ Left Esc D Esc [ D Esc O D
+
+Comes out to be more complicated than it first appeared...
+Troll did something to the key pad. Evtl. i must get raw X11 key events.
+The mapping below is quite useless anyway, since it referes to the VT100
+keypad (see doc/More/vt100-numeric-keypad.txt for more). A proper Linux
+implementations should send the codes written on the keys of the keypad.
+
+ AUXILLIARY KEYPAD:
+ -----------------
+
+ VT52 Mode ANSI Mode
+ Key Numeric Application Numeric Application
+ ----------------------------------------------------------------------
+ 0 0 Esc ? p 0 Esc O p
+ 1 1 Esc ? q 1 Esc O q
+ 2 2 Esc ? r 2 Esc O r
+ 3 3 Esc ? s 3 Esc O s
+ 4 4 Esc ? t 4 Esc O t
+ 5 5 Esc ? u 5 Esc O u
+ 6 6 Esc ? v 6 Esc O v
+ 7 7 Esc ? w 7 Esc O w
+ 8 8 Esc ? x 8 Esc O x
+ 9 9 Esc ? y 9 Esc O y
+ - - Esc ? m - Esc O m
+ , , Esc ? l , Esc O l
+ . . Esc ? n . Esc O n
+ ENTER ^M Esc ? M ^M Esc O M
+
+ PF1 Esc P Esc P Esc O P Esc O P
+ PF2 Esc Q Esc Q Esc O Q Esc O Q
+ PF3 Esc R Esc R Esc O R Esc O R
+ PF4 Esc S Esc S Esc O S Esc O S
+
+--------------------------------------------------------------------------
+(due to Eterm) Key Codes
+--------------------------------------------------------------------------
+ Normal Shift Control Application
+Up ESC [ A ESC [ a ESC O a ESC O A
+Down ESC [ B ESC [ b ESC O b ESC O B
+Right ESC [ C ESC [ c ESC O c ESC O C
+Left ESC [ D ESC [ d ESC O d ESC O D
+
+ Normal Shift Control
+Tab ^I ESC [ Z ^I
+BackSpace ^H ^? ^?
+
+ Normal Shift Control Ctrl+Shift
+Home == Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
+Insert ESC [ 2 ~ paste-mouse ESC [ 2 ^ ESC [ 2 @
+Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+End == Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
+Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
+Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
+
+Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+
+Function Keys:
+(Note: Shift + F1-10 generates F11-20)
+ Norm Shift Control Ctrl+Shift
+F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
+F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
+F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
+F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
+F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
+
+F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
+F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
+F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
+F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
+F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
+
+F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
+F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
+F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
+F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
+
+F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
+F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
+
+F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
+F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
+F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
+F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
+
+Keypad:
+ use Shift to temporarily override Appl-Keypad setting
+ use Num_Lock to toggle Appl-Keypad setting
+ if Num_Lock is off, escape sequences toggle Appl-Keypad setting
+------
+ Normal Application
+KP_Enter ^M ESC O M
+KP_F1 ESC O P ESC O P
+KP_F2 ESC O Q ESC O Q
+KP_F3 ESC O R ESC O R
+KP_F4 ESC O S ESC O S
+XK_KP_Multiply * ESC O j
+XK_KP_Add + ESC O k
+XK_KP_Separator , ESC O l
+XK_KP_Subtract - ESC O m
+XK_KP_Decimal . ESC O n
+XK_KP_Divide / ESC O o
+XK_KP_0 0 ESC O p
+XK_KP_1 1 ESC O q
+XK_KP_2 2 ESC O r
+XK_KP_3 3 ESC O s
+XK_KP_4 4 ESC O t
+XK_KP_5 5 ESC O u
+XK_KP_6 6 ESC O v
+XK_KP_7 7 ESC O w
+XK_KP_8 8 ESC O x
+XK_KP_9 9 ESC O y
+--------------------------------------------------------------------------
diff --git a/konsole/doc/mkDocs b/konsole/doc/mkDocs
new file mode 100755
index 000000000..dd22eabfc
--- /dev/null
+++ b/konsole/doc/mkDocs
@@ -0,0 +1,6 @@
+#!/bin/sh
+PATH=$PATH:/opt/doxygen-0.4/bin
+export PATH
+# doxytag -t qt.tag $QTDIR/html
+doxygen konsole.Doxyfile
+./konsole/html/installdox -l qt.tag@$QTDIR/html ./konsole/html/*.html
diff --git a/konsole/eventsrc b/konsole/eventsrc
new file mode 100644
index 000000000..12ceefc8b
--- /dev/null
+++ b/konsole/eventsrc
@@ -0,0 +1,736 @@
+[!Global!]
+IconName=konsole
+Comment=Konsole
+Comment[ar]=مطرا٠سطر الأوامر
+Comment[be]=КанÑоль
+Comment[bg]=Конзола
+Comment[bn]=কনসোল
+Comment[bs]=Konzola
+Comment[csb]=Kònsole
+Comment[da]=Konsol
+Comment[eo]=Konzolo
+Comment[et]=Konsool
+Comment[hi]=कंसोल
+Comment[hr]=Konzola
+Comment[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Comment[kk]=КонÑоль
+Comment[km]=កុងសូល
+Comment[lt]=KonsolÄ—
+Comment[mk]=Конзола
+Comment[mn]=КонÑол
+Comment[nb]=Konsoll
+Comment[nds]=Konsool
+Comment[ne]=कनà¥à¤¸à¥‹à¤²
+Comment[nn]=Konsoll
+Comment[pa]=ਕੰਨਸੋਲ
+Comment[ro]=Consolă
+Comment[sl]=Konzola
+Comment[ta]=கானà¯à®šà¯‹à®²à¯
+Comment[te]=కానà±à°¸à±Šà°²à±
+Comment[tg]=КонÑол
+Comment[th]=คอนโซล K
+Comment[uz]=Terminal
+Comment[uz@cyrillic]=Терминал
+Comment[wa]=Konsole (terminå di KDE)
+Comment[zh_TW]=Konsole 終端機程å¼
+
+[BellVisible]
+Name=Bell in visible session
+Name[af]=Klokkie in die sigbare sessie
+Name[ar]=جرس ÙÙŠ الجلسة المشاهدة
+Name[be]=Званіць у актыўнай ÑеÑÑ–Ñ–
+Name[bg]=Камбана във видима ÑеÑиÑ
+Name[bn]=পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ সেশন-ঠঘণà§à¦Ÿà¦¾
+Name[bs]=Zvono u vidljivoj sesiji
+Name[ca]=Timbre a la sessió visible
+Name[cs]=Zvonek ve viditelné relaci
+Name[csb]=Zwónk w widzalny sesëji
+Name[cy]=Cloch yn y sesiwn gweladwy
+Name[da]=Klokke i synlig session
+Name[de]=Signalton bei sichtbarer Sitzung
+Name[el]=ΚουδοÏνι στην οÏατή συνεδÏία
+Name[eo]=Pepo en videbla seanco
+Name[es]=Timbre en sesión visible
+Name[et]=Heli nähtavas seansis
+Name[eu]=Ezkila saio ikusgarrian
+Name[fa]=زنگ در نشست مرئی
+Name[fi]=Äänimerkki näkyvässä istunnossa
+Name[fr]=Cloche dans la session visible
+Name[fy]=Bel yn sichtbere sesje
+Name[ga]=Clog i seisiún infheicthe
+Name[gl]=Badalada na sesión visíbel
+Name[he]=פעמון במשימה גלויה
+Name[hi]=दृशà¥à¤¯à¤®à¤¯ सतà¥à¤° में घंटी
+Name[hr]=Zvono u vidljivoj sesiji
+Name[hu]=Csengetés egy látható munkafolyamatban
+Name[is]=Bjallan í sýnilegri setu
+Name[it]=Campanella nella sessione visibile
+Name[ja]=å¯è¦–セッションã®ãƒ™ãƒ«
+Name[ka]=ხილული სესიისáƒáƒ¡ ხმáƒáƒ•áƒáƒœáƒ˜ სიგნáƒáƒšáƒ˜
+Name[kk]=Көрінетін ÑеанÑтағы қоңырау
+Name[km]=កណ្ដឹង​ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​មើល​មិន​ឃើញ
+Name[ko]=ë³´ì´ì§€ 않는 세션ì—ì„œ 알림 ë°œìƒ
+Name[lt]=Skambutis matomose sesijose
+Name[lv]=Zvans redzamÄ sesijÄ
+Name[mk]=Ѕвонче во видлива ÑеÑија
+Name[mn]=Ил Ñуултын дуут Ñигналууд
+Name[ms]=Loceng dalam sesi dapat dilihat
+Name[mt]=Qanpiena waqt sessjoni viżibbli
+Name[nb]=Varsel i synlig økt
+Name[nds]=Pingel in'n sichtboren Törn
+Name[ne]=दृशà¥à¤¯à¤¾à¤¤à¥à¤®à¤• सतà¥à¤°à¤®à¤¾ बेल
+Name[nl]=Bel in zichtbare sessie
+Name[nn]=Varsel i synleg økt
+Name[pa]=ਦਿੱਖ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਘੰਟੀ
+Name[pl]=Dzwonek w widocznej sesji
+Name[pt]=Campainha numa sessão visível
+Name[pt_BR]=Campainha em sessão visível
+Name[ro]=Sunet în sesiunea vizibilă
+Name[ru]=Звуковой Ñигнал в видимом ÑеанÑе
+Name[rw]=Inzogera mu mukoro ugaragara
+Name[se]=ÃvaÅ¡tus oidnos bargovuorus
+Name[sk]=ZvonÄek v zobrazenej relácii
+Name[sl]=Zvonec v vidni seji
+Name[sr]=Звоно у видљивој ÑеÑији
+Name[sr@Latn]=Zvono u vidljivoj sesiji
+Name[sv]=Ljudsignal i synlig session
+Name[ta]=பாரà¯à®µà¯ˆ கால நேரதà¯à®¤à®¿à®²à¯ மணி
+Name[te]=కనిపించె సెషనౠలొ గంట
+Name[tg]=Занг дар нишаÑти дидан
+Name[th]=ออดบนเซสชันที่มองเห็น
+Name[tr]=Görünen oturumda zil
+Name[tt]=Kürengän sessidän zil
+Name[uk]=Дзвінок у видимому ÑеанÑÑ–
+Name[vi]=Chuông trong các phiên chạy nhìn thấy
+Name[wa]=Xhilete e veyåves session
+Name[zh_CN]=å¯è§ä¼šè¯ä¸­çš„å“铃
+Name[zh_TW]=在å¯è¦‹çš„工作階段使用響鈴
+Comment=Bell emitted within a visible session
+Comment[af]=Klokkie word gelui in die sigbare sessie
+Comment[ar]=قرع جرس أثناء جلسة مرئية
+Comment[be]=Ðе званіць у актыўнай ÑеÑÑ–Ñ–
+Comment[bg]=Камбана във видима ÑеÑиÑ
+Comment[bn]=à¦à¦•à¦Ÿà¦¿ দৃশà§à¦¯à¦®à¦¾à¦¨ সেশন-ঠঘণà§à¦Ÿà¦¾ বেজেছে
+Comment[bs]=Zvono emitovano u vidljivoj sesiji
+Comment[ca]=Timbre emès dins d'una sessió visible
+Comment[cs]=Vydán zvonek ve viditelné relaci
+Comment[csb]=Zwónk jaczi zrësziwô sã w widzalny sesëji
+Comment[cy]=Gollyngwyd cloch mewn sesiwn gweledig
+Comment[da]=Klokke brugt indenfor en synlig session
+Comment[de]=Signal gesendet innerhalb sichtbarer Sitzung
+Comment[el]=Το μεγαφωνάκι ενεÏγοποιήθηκε σε μία οÏατή συνεδÏία
+Comment[eo]=Pepo ekiÄis en videbla seanco
+Comment[es]=Suena el timbre incluso en un sesión visible
+Comment[et]=Heli nähtavas seansis
+Comment[eu]=Saio ikusgarrian ezkila jo
+Comment[fa]=زنگ در نشستی مرئی انتشار یاÙت
+Comment[fi]=Äänimerkki lähetetty näkyvässä istunnossa
+Comment[fr]=Cloche émise dans une session visible
+Comment[fy]=Bel útstjoerd binnen in sichtbere sesje
+Comment[ga]=Baineadh an clog i seisiún infheicthe
+Comment[gl]=Badalada emitida nunha sesión visíbel
+Comment[he]=פעמון נשמע במשימה גלוי
+Comment[hi]=दृशà¥à¤¯à¤®à¤¯ सतà¥à¤° में घंटी बजी
+Comment[hr]=Zvono objavljeno u vidljivoj sesiji
+Comment[hu]=Csengetés egy látható munkafolyamatban
+Comment[is]=Bjallan hringdi í sýnilegu setunni
+Comment[it]=Campanella suonata in una sessione visibile
+Comment[ja]=å¯è¦–セッションã§ãƒ™ãƒ«ãŒé³´ã‚Šã¾ã—ãŸ
+Comment[ka]=ხილულმრსესიისáƒáƒ› ხმáƒáƒ•áƒáƒœáƒ˜ სიგნáƒáƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒªáƒ
+Comment[kk]=Көрінетін ÑÐµÐ°Ð½Ñ Ò›Ð¾Ò£Ñ‹Ñ€Ð°Ñƒ Ñоқты
+Comment[km]=កណ្ដឹង​បញ្ចáŸáž‰â€‹ážŸáŸ†áž¡áŸáž„​ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​មើល​មិន​ឃើញ
+Comment[ko]=ë³´ì´ëŠ” 세션ì—ì„œ 종소리 울림
+Comment[lt]=Matomos sesijos metu skambutis neveiks
+Comment[lv]=Zvans, kas zvanÄ«ts redzamÄ sesijÄ
+Comment[mk]=Емитувано е ѕвонче внатре во видливата ÑеÑија
+Comment[mn]=ҮзÑгдÑÑ… Ñуултад гарах дуу чимÑÑ
+Comment[ms]=Loceng dipancarkan dalam sesi dapat dilihat
+Comment[nb]=Varsel sendt inne i en synlig økt
+Comment[nds]=Pingel de in'n sichtboren Törn bruukt warrt
+Comment[ne]=दृशà¥à¤¯à¤¾à¤¤à¥à¤®à¤• सतà¥à¤°à¤®à¤¾ बेल निकालियो
+Comment[nl]=Bel uitgezonden binnen een zichtbare sessie
+Comment[nn]=Varsel sendt inne i ei synleg økt
+Comment[pa]=ਇੱਕ ਦਿੱਖ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਘੰਟੀ
+Comment[pl]=Dzwonek uruchamiany w widocznej sesji
+Comment[pt]=Campainha emitida dentro de uma sessão visível
+Comment[pt_BR]=Campainha emitida dentro de uma sessão visível
+Comment[ro]=Sunet emis în sesiunea vizibilă
+Comment[ru]=Видимый ÑÐµÐ°Ð½Ñ Ð¿Ð¾Ð´Ð°Ð» звуковой Ñигнал
+Comment[rw]=Inzogera yatangijwe mu mukoro ugaragara
+Comment[se]=ÃvaÅ¡tus sáddejuvvui oidnos bargovuorus
+Comment[sk]=ZvonÄek poslaný v zobrazenej relácii
+Comment[sl]=Zvonec znotraj vidne seje
+Comment[sr]=Звоно је емитовано унутар видљиве ÑеÑије
+Comment[sr@Latn]=Zvono je emitovano unutar vidljive sesije
+Comment[sv]=Ljudsignal inne i en synlig session
+Comment[ta]=பாரà¯à®•à¯à®•à¯à®®à¯ காலநேர அளவà¯à®•à¯à®•à¯à®³à¯ மணி வெளிதà¯à®¤à®³à¯à®³à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯.
+Comment[tg]=Ҳузфи занг дар нишаÑти дидан
+Comment[th]=ส่งเสียงออดภายในเซสชันที่มองเห็นได้
+Comment[tr]=Görünen oturum ile zil çal
+Comment[tt]=Kürengän sessidän zil kilde
+Comment[uk]=Пролунав дзвінок у видимому ÑеанÑÑ–
+Comment[vi]=Chuông phát ra trong một phiên chạy nhìn thấy
+Comment[wa]=Xhilete ki xhiltêye dins ene veyåve session
+Comment[zh_CN]=å¯è§ä¼šè¯ä¸­å‘生的å“铃
+Comment[zh_TW]=在å¯è¦‹çš„工作階段使用響鈴
+default_sound=KDE_Beep_Connect.ogg
+default_presentation=1
+
+[BellInvisible]
+Name=Bell in non-visible session
+Name[af]=Klokkie in nie-sigbare sessie
+Name[ar]=جرس ÙÙŠ جلسة غير مرئية
+Name[be]=Званіць у неактыўных ÑеÑÑ–ÑÑ…
+Name[bg]=Камбана в невидима ÑеÑиÑ
+Name[bn]=আবৃত সেশন-ঠঘণà§à¦Ÿà¦¾
+Name[bs]=Zvono u nevidljivoj sesiji
+Name[ca]=Timbre a la sessió no visible
+Name[cs]=Zvonek v neviditelné relaci
+Name[csb]=Zwónk w niewidzalny sesëji
+Name[cy]=Cloch mewn sesiwn anweledig
+Name[da]=Klokke i ikke-synlig session
+Name[de]=Signalton bei nicht sichtbarer Sitzung
+Name[el]=ΚουδοÏνι στη μη οÏατή συνεδÏία
+Name[eo]=Pepo en nevidebla seanco
+Name[es]=Timbre en sesión invisible
+Name[et]=Heli nähtamatus seansis
+Name[eu]=Ezkila saio ez ikusgarrian
+Name[fa]=زنگ در نشست نامرئی
+Name[fi]=Äänimerkki näkymättömässä istunnossa
+Name[fr]=Cloche dans une session invisible
+Name[fy]=Bel yn net-sichtbere sesje
+Name[ga]=Clog i seisiún dofheicthe
+Name[gl]=Badalada nunha sesión non visíbel
+Name[he]=פעמון במשימה ×œ× ×’×œ×•×™×”
+Name[hi]=अदृशà¥à¤¯à¤®à¤¯ सतà¥à¤° में घंटी
+Name[hr]=Zvono u prikrivenoj sesiji
+Name[hu]=Csengetés egy nem látható munkafolyamatban
+Name[is]=Bjallan í ósýnilegri setu
+Name[it]=Campanella nella sessione non-visibile
+Name[ja]=ä¸å¯è¦–セッションã®ãƒ™ãƒ«
+Name[ka]=უხილáƒáƒ•áƒ˜ სესიისáƒáƒ¡ ხმáƒáƒ•áƒáƒœáƒ˜ სიგნáƒáƒšáƒ˜
+Name[kk]=Көрінбейтін ÑеанÑтағы қоңырау
+Name[km]=កណ្ដឹង​ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​មើល​ឃើញ
+Name[ko]=ë³´ì´ì§€ 않는 세션ì—ì„œ 알림 ë°œìƒ
+Name[lt]=Skambutis nematomose sesijose
+Name[lv]=Zvans neredzamÄ sesijÄ
+Name[mk]=Ѕвонче во невидлива ÑеÑија
+Name[mn]=Далд Ñуултын дуут Ñигналууд
+Name[ms]=Loceng dalam sesi tak dapat dilihat
+Name[mt]=Qanpiena waqt sessjoni mhux viżibbli
+Name[nb]=Varsel i usynlig økt
+Name[nds]=Pingel in'n unsichtboren Törn
+Name[ne]=देखà¥à¤¨ नसकिने सतà¥à¤°à¤®à¤¾ बेल
+Name[nl]=Bel in niet-zichtbare sessie
+Name[nn]=Varsel i usynleg økt
+Name[pa]=ਨਾ-ਦਿੱਖ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਘੰਟੀ
+Name[pl]=Dzwonek w niewidocznej sesji
+Name[pt]=Campainha numa sessão não-visível
+Name[pt_BR]=Campainha em sessão não-visível
+Name[ro]=Sunet în sesiunea nevizibilă
+Name[ru]=Звуковой Ñигнал в невидимых ÑеанÑах
+Name[rw]=Inzogera mu mukoro utagaragara
+Name[se]=ÃvaÅ¡tus oaidnemeahttun bargovuorus
+Name[sk]=ZvonÄek v nezobrazenej relácii
+Name[sl]=Zvonec v nevidni seji
+Name[sr]=Звоно у невидљивој ÑеÑије
+Name[sr@Latn]=Zvono u nevidljivoj sesije
+Name[sv]=Ljudsignal i osynlig session
+Name[ta]=பாரà¯à®•à¯à®•à®®à¯à®Ÿà®¿à®¯à®¾à®¤ காலநேரதà¯à®¤à®¿à®²à¯ மணி
+Name[te]=కనిపించని సెషనౠలొ గంట
+Name[tg]=Занг дар нишаÑти надидан
+Name[th]=ออดบนเซสชันที่มองไม่เห็น
+Name[tr]=Görünmeyen oturumda zil
+Name[tt]=Kürenmägän sessidän zil
+Name[uk]=Дзвінок у невидимому ÑеанÑÑ–
+Name[vi]=Chuông trong các phiên chạy không nhìn thấy
+Name[wa]=Xhilete e nén veyåves session
+Name[zh_CN]=ä¸å¯è§ä¼šè¯ä¸­çš„å“铃
+Name[zh_TW]=在ä¸å¯è¦‹çš„工作階段使用響鈴
+Comment=Bell emitted within a non-visible session
+Comment[af]=Klokkie word gelui in die nie-sigbare sessie
+Comment[ar]=قرع جرس أثناء جلسة غير مرئية
+Comment[be]=Ðе званіць у неактыўных ÑеÑÑ–ÑÑ…
+Comment[bg]=Камбана в невидима ÑеÑиÑ
+Comment[bn]=à¦à¦•à¦Ÿà¦¿ অদৃশà§à¦¯ সেশন-ঠঘণà§à¦Ÿà¦¾ বেজেছে
+Comment[bs]=Zvono emitovano u nevidljivoj sesiji
+Comment[ca]=Timbre emès dins d'una sessió no visible
+Comment[cs]=Vydán zvonek v neviditelné relaci
+Comment[csb]=Zwónk jaczi zrësziwô sã w niewidzalny sesëji
+Comment[cy]=Gollyngwyd cloch mewn sesiwn anweledig
+Comment[da]=Klokke brugt indenfor en ikke-synlig session
+Comment[de]=Signal gesendet innerhalb nicht sichtbarer Sitzung
+Comment[el]=Το μεγαφωνάκι ενεÏγοποιήθηκε σε μία μη οÏατή συνεδÏία
+Comment[eo]=Pepo ekiÄis en ne videbla seanco
+Comment[es]=Suena el timbre incluso en un sesión visible
+Comment[et]=Heli nähtamatus seansis
+Comment[eu]=Saio ikusgarrian ezkila ez jo
+Comment[fa]=زنگ در نشستی نامرئی انتشار یاÙت
+Comment[fi]=Äänimerkki lähetetty näkymättömässä istunnossa
+Comment[fr]=Cloche émise dans une session invisible
+Comment[fy]=Bel útstjoerd yn in net-sichtbere sesje
+Comment[ga]=Baineadh an clog i seisiún dofheicthe
+Comment[gl]=Badalada emitida nunha sesión non visíbel
+Comment[he]=פעמון נשמע במשימה ×œ× ×’×œ×•×™
+Comment[hi]=अदृशà¥à¤¯à¤®à¤¯ सतà¥à¤° में घंटी बजी
+Comment[hr]=Zvono objavljeno u prikrivenoj sesiji
+Comment[hu]=Csengetés egy nem látható munkafolyamatban
+Comment[is]=Bjallan hringdi í ósýnilegu setunni
+Comment[it]=Campanella suonata in una sessione non-visibile
+Comment[ja]=ä¸å¯è¦–セッションã§ãƒ™ãƒ«ãŒé³´ã‚Šã¾ã—ãŸ
+Comment[ka]=უხილáƒáƒ•áƒ›áƒ სესიისáƒáƒ› ხმáƒáƒ•áƒáƒœáƒ˜ სიგნáƒáƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒªáƒ
+Comment[kk]=Көрінбейтін ÑÐµÐ°Ð½Ñ Ò›Ð¾Ò£Ñ‹Ñ€Ð°Ñƒ Ñоқты
+Comment[km]=កណ្ដឹង​បញ្ចáŸáž‰â€‹ážŸáŸ†áž¡áŸáž„​ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​មើលឃើញ
+Comment[ko]=ë³´ì´ì§€ 않는 세션ì—ì„œ 종소리 울림
+Comment[lt]=Nematomos sesijos metu skambutis neveiks
+Comment[lv]=Zvans, kas zvanÄ«ts neredzamÄ sesijÄ
+Comment[mk]=Емитувано е ѕвонче внатре во невидливата ÑеÑија
+Comment[mn]=Үл үзÑгдÑÑ… Ñуултад гарах дуу чимÑÑ
+Comment[ms]=Loceng dipancarkan dalam sesi tak dapat dilihat
+Comment[nb]=Varsel sendt inne i en usynlig økt
+Comment[nds]=Pingel de in'n unsichtboren Törn bruukt warrt
+Comment[ne]=देखà¥à¤¨ नसकिने सतà¥à¤°à¤®à¤¾ बेल निकालियो
+Comment[nl]=Bel uitgezonden in een niet-zichtbare sessie
+Comment[nn]=Varsel sendt inne i ei usynleg økt
+Comment[pa]=ਇੱਕ ਨਾ-ਦਿੱਖ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਘੰਟੀ
+Comment[pl]=Dzwonek uruchamiany w niewidocznej sesji
+Comment[pt]=Campainha emitida dentro de uma sessão invisível
+Comment[pt_BR]=Campainha emitida dentro de uma sessão invisível
+Comment[ro]=Sunet emis într-o sesiune nevizibilă
+Comment[ru]=Ðевидимый ÑÐµÐ°Ð½Ñ Ð¿Ð¾Ð´Ð°Ð» звуковой Ñигнал
+Comment[rw]=Inzogera yatangijwe mu mukoro utagaragara
+Comment[se]=ÃvaÅ¡tus sáddejuvvui oaidnemeahttun bargovuorus
+Comment[sk]=ZvonÄek poslaný v nezobrazenej relácii
+Comment[sl]=Zvonec znotraj nevidne seje
+Comment[sr]=Звоно је емитовано унутар невидљиве ÑеÑије
+Comment[sr@Latn]=Zvono je emitovano unutar nevidljive sesije
+Comment[sv]=Ljudsignal inne i en osynlig session
+Comment[ta]=பாரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤ காலநேர அளவà¯à®•à¯à®•à¯à®³à¯ மணி வெளிதà¯à®¤à®³à¯à®³à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯.
+Comment[tg]=Ҳузфи занг дар нишаÑти надидан
+Comment[th]=ส่งเสียงออดภายในเซสชันที่มองไม่เห็น
+Comment[tr]=Görünmeyen oturumda zil
+Comment[tt]=Kürenmägän sessidän zil kilde
+Comment[uk]=Пролунав дзвінок у невидимому ÑеанÑÑ–
+Comment[vi]=Chuông phát ra trong một phiên chạy không nhìn thấy
+Comment[wa]=Xhilete ki xhiltêye dins les nén veyåvès sessions
+Comment[zh_CN]=ä¸å¯è§ä¼šè¯ä¸­å‘生的å“铃
+Comment[zh_TW]=在ä¸å¯è¦‹çš„工作階段使用響鈴
+default_sound=KDE_Beep_Connect.ogg
+default_presentation=16
+
+[Activity]
+Name=Activity in monitored session
+Name[af]=Aktiveer in gemonitorde sessie
+Name[ar]=نشاط ÙÙŠ جلسة يتم مراقبتها
+Name[be]=ÐктыўнаÑць у ÑеÑÑ–Ñ–, за Ñкой вÑдзецца назіранне
+Name[bg]=ÐктивноÑÑ‚ в наблюдавана ÑеÑиÑ
+Name[bn]=মনিটর করা সেশন-ঠকিছৠঘটেছে
+Name[bs]=Aktivnost u nadgledanoj sesiji
+Name[ca]=Activitat a la sessió monitoritzada
+Name[cs]=Aktivita v monitorované relaci
+Name[csb]=Aktiwnota w mònitorowóny sesëji
+Name[cy]=Gweithgarwch mewn sesiwn wedi'i fonitro
+Name[da]=Aktivitet i overvåget session
+Name[de]=Aktivität in überwachter Sitzung
+Name[el]=ΔÏαστηÏιότητα στην εποπτευόμενη συνεδÏία
+Name[eo]=Aktiveco en rigardata seanco
+Name[es]=Actividad en sesión monitorizada
+Name[et]=Aktiivsus jälgitavas seansis
+Name[eu]=Monitorizatutako saioko iharduera
+Name[fa]=Ùعالیت در نشست پایش‌شده
+Name[fi]=Aktiivisuutta tarkkailtavassa istunnossa
+Name[fr]=Activité dans la session surveillée
+Name[fy]=Aktiviteit yn observearre sesje
+Name[ga]=Gníomhaíocht i seisiún monatóirithe
+Name[gl]=Actividade na sesión monitoreada
+Name[he]=פעילות במשימה מנוטרת
+Name[hi]=मॉनीटरà¥à¤¡ सतà¥à¤° में कà¥à¤°à¤¿à¤¯à¤¾
+Name[hr]=Aktivnost u nadziranoj sesiji
+Name[hu]=Aktivitás egy monitorozott munkafolyamatban
+Name[is]=Virkni í setunni sem fylgst er með
+Name[it]=Attività nella sessione controllata
+Name[ja]=監視中ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®æ´»å‹•
+Name[kk]=Бақылаудағы ÑеанÑта белÑендік
+Name[km]=សកម្មភាព​ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​បាន​ážáŸ’ážšáž½ážáž–áž·áž“áž·ážáŸ’áž™
+Name[ko]=ë³´ì´ëŠ” 세션ì—ì„œ í™œë™ ë°œìƒ
+Name[lt]=Stebimos sesijos veikla
+Name[lv]=AktivitÄte monitorÄ“tÄ sesijÄ
+Name[mk]=ÐктивноÑÑ‚ во Ñледената ÑеÑија
+Name[mn]=Харагдаж буй Ñуултын идÑвхи
+Name[ms]=Aktiviti dalam sesi yang dipantau
+Name[mt]=Attività waqt sessjoni monitorjata
+Name[nb]=Aktivitet i overvåket økt
+Name[nds]=Bedrief in'n beluerten Törn
+Name[ne]=मोनिटर गरिà¤à¤•à¥‹ सतà¥à¤°à¤®à¤¾ कà¥à¤°à¤¿à¤¯à¤¾à¤•à¤²à¤¾à¤ª
+Name[nl]=Activiteit in geobserveerde sessie
+Name[nn]=Aktivitet i overvaka økt
+Name[pa]=ਨਿਗਰਾਨੀ ਅਧੀਨ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਸਰਗਰਮੀ
+Name[pl]=Aktywność w monitorowanej sesji
+Name[pt]=Actividade numa sessão vigiada
+Name[pt_BR]=Atividade na sessão monitorada
+Name[ro]=Activitate în sesiunea monitorizată
+Name[ru]=ÐктивноÑÑ‚ÑŒ в отÑлеживаемом ÑеанÑе
+Name[rw]=Igikorwa mu mukoro werekanwe
+Name[se]=Aktivitehta gozihuvvon bargovuorus
+Name[sk]=Aktivita v monitorovaných reláciách
+Name[sl]=Dejavnost v opazovani seji
+Name[sr]=ÐктивноÑÑ‚ у надзираној ÑеÑији
+Name[sr@Latn]=Aktivnost u nadziranoj sesiji
+Name[sv]=Aktivitet i bevakad session
+Name[ta]=கணà¯à®•à®¾à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கால நேரதà¯à®¤à®¿à®²à¯ செயலà¯.
+Name[tg]=ФаъолиÑÑ‚ дар нишаÑти таҳти назорат
+Name[th]=à¸à¸´à¸ˆà¸à¸£à¸£à¸¡à¸—ี่เà¸à¸´à¸”ขึ้นบนเซสชันที่à¸à¸³à¸¥à¸±à¸‡à¸–ูà¸à¹€à¸à¹‰à¸²à¸•à¸´à¸”ตามà¸à¸²à¸£à¸—ำงาน
+Name[tr]=Ä°zlenen oturumda etkinlik
+Name[tt]=Küzätelgän sessidä terelek
+Name[uk]=ДіÑльніÑÑ‚ÑŒ в контрольованому ÑеанÑÑ–
+Name[vi]=Các hoạt động trong phiên chạy được theo dõi
+Name[wa]=Activité e corwaiteye session
+Name[zh_CN]=被监视会è¯ä¸­çš„活动
+Name[zh_TW]=活動於監視中的工作階段
+Comment=Activity detected in a monitored session
+Comment[af]=Aktiwiteit bespeur in 'n sessie wat gemonitor word
+Comment[ar]=التحقق من نشاط أثناء جلسة يتم مراقبتها
+Comment[be]=ÐктыўнаÑць у ÑеÑÑ–Ñ–, за Ñкой вÑдзецца назіранне
+Comment[bg]=ÐктивноÑÑ‚ в наблюдавана ÑеÑиÑ
+Comment[bn]=মনিটর করা à¦à¦•à¦Ÿà¦¿ সেশন-ঠকিছৠঘটেছে
+Comment[bs]=Aktivnost otkrivena u nadziranoj sesiji
+Comment[ca]=Detectada activitat en una sessió monitoritzada
+Comment[cs]=Detekována aktivita v monitorované relaci
+Comment[csb]=Òstała wëkrëtô aktiwnota w monitorowóny sesëji
+Comment[cy]=Datgelwyd gweithgaredd mewn seswin wedi'i fonitro
+Comment[da]=Aktivitet detekteret i en overvåget session
+Comment[de]=Aktivität in überwachter Sitzung
+Comment[el]=ΔÏαστηÏιότητα παÏατηÏήθηκε σε μια εποπτευόμενη συνεδÏία
+Comment[eo]=Aktiveco trovita en rigardata seanco
+Comment[es]=Detectada actividad en una sesión monitorizada
+Comment[et]=Tuvastati aktiivsus jälgitavas seansis
+Comment[eu]=Iharduera detektatua monitorizatutako saioan
+Comment[fa]=Ùعالیت در نشست پایش‌شده آشکار شد
+Comment[fi]=Aktiivisuutta havaittu tarkkailtavassa istunnossa
+Comment[fr]=Activité détectée dans une session surveillée
+Comment[fy]=Aktiviteit ûntdutsen yn observearre sesje
+Comment[ga]=Braitheadh gníomhaíocht i seisiún monatóirithe
+Comment[gl]=Actividade detectada na sesión baixo seguemento
+Comment[he]=פעילות זוהתה במשימה מנוטרת
+Comment[hi]=मॉनीटरà¥à¤¡ सतà¥à¤° में कà¥à¤°à¤¿à¤¯à¤¾ पता लगा
+Comment[hr]=Otkrivena je aktivnost u nadziranoj sesiji
+Comment[hu]=Aktivitás észlelve egy monitorozott munkafolyamatban
+Comment[is]=Eitthvað er að gerast í setunni sem fylgst er með
+Comment[it]=Rilevata attività in una sessione sotto controllo
+Comment[ja]=監視中ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã§æ´»å‹•ã‚’検出ã—ã¾ã—ãŸ
+Comment[kk]=Бақылаудағы ÑеанÑта белÑендік байқалды
+Comment[km]=បាន​រកឃើញ​សកម្មភាព ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​បាន​ážáŸ’ážšáž½ážáž–áž·áž“áž·ážáŸ’áž™
+Comment[ko]=관찰하는 세션ì—ì„œ í™œë™ ê°ì§€ë¨
+Comment[lt]=Stebimoje sesijoje pastebÄ—ta veikla
+Comment[lv]=Ir konstatÄ“ta aktivitÄte monitorÄ“tÄ sesijÄ
+Comment[mk]=Откриена е активноÑÑ‚ во Ñледената ÑеÑија
+Comment[mn]=Харагдаж буй Ñуултад илÑÑ€ÑÑн үйл ажиллагаа
+Comment[ms]=Aktiviti dikesan dalam sesi yang dipantau
+Comment[nb]=Oppdaget aktivitet i en overvåket økt
+Comment[nds]=Bedrief in'n beluerten Törn opdeckt
+Comment[ne]=मोनिटर गरिà¤à¤•à¥‹ सतà¥à¤°à¤®à¤¾ पतà¥à¤¤à¤¾ लगाà¤à¤•à¥‹ कà¥à¤°à¤¿à¤¯à¤¾à¤•à¤²à¤¾à¤ª
+Comment[nl]=Activiteit ontdekt in geobserveerde sessie
+Comment[nn]=Oppdaga aktivitet i ei overvaka økt
+Comment[pa]=ਇੱਕ ਨਿਗਰਾਨੀ ਅਧੀਨ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਸਰਗਰਮੀ ਪà©à¨°à¨¾à¨ªà¨¤ ਹੋਈ
+Comment[pl]=Wykryto aktywność w monitorowanej sesji
+Comment[pt]=Actividade detectada numa sessão vigiada
+Comment[pt_BR]=Atividade detectada em uma sessão monitorada
+Comment[ro]=Activitate detectată într-o sesiune monitorizată
+Comment[ru]=Ð’ отÑлеживаемом ÑеанÑе обнаружена активноÑÑ‚ÑŒ
+Comment[rw]=Igikorwa cyabonetse mu mukoro werekanwe
+Comment[se]=Fuibmái aktivitehta gozihuvvon bargovuorus
+Comment[sk]=Detekovaná aktivita v sledovanej relácii
+Comment[sl]=Zaznana dejavnost v opazovani seji
+Comment[sr]=Откривена је активноÑÑ‚ у надзираној ÑеÑији
+Comment[sr@Latn]=Otkrivena je aktivnost u nadziranoj sesiji
+Comment[sv]=Aktivitet funnen i en bevakad session
+Comment[ta]=கணà¯à®•à®¾à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ அமரà¯à®µà®¿à®²à¯ செயல௠கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯
+Comment[tg]=Ðфтани фаъолиÑÑ‚ дар нишаÑти таҳти назорат
+Comment[th]=à¸à¸´à¸ˆà¸à¸£à¸£à¸¡à¸—ี่ตรวจจับได้บนเซสชันที่ถูà¸à¹€à¸à¹‰à¸²à¸•à¸´à¸”ตามà¸à¸²à¸£à¸—ำงาน
+Comment[tr]=Ä°zlenen oturumda etkinlik var
+Comment[tt]=Küzätelgän sessidä terelek küzätelä
+Comment[uk]=Ð’ контрольованому ÑеанÑÑ– зареєÑтровано діÑльніÑÑ‚ÑŒ
+Comment[vi]=Hoạt động được phát hiện trong một phiên chạy được theo dõi
+Comment[wa]=Activité trovêye en ene corwaiteye session
+Comment[zh_CN]=被监视会è¯ä¸­æ£€æµ‹åˆ°çš„活动
+Comment[zh_TW]=活動被åµæ¸¬åˆ°æ–¼ç›£è¦–中的工作階段
+default_presentation=16
+
+[Silence]
+Name=Silence in monitored session
+Name[af]=Stilte in gemonitorde sessie
+Name[ar]=سكوت ÙÙŠ جلسة يتم مراقبتها
+Name[be]=Ð¦Ñ–ÑˆÑ‹Ð½Ñ Ñž ÑеÑÑ–Ñ–, за Ñкой вÑдзецца назіранне
+Name[bg]=ПаÑивноÑÑ‚ в наблюдавана ÑеÑиÑ
+Name[bn]=মনিটর করা সেশন-ঠকিছৠঘটছে না
+Name[bs]=Tišina u nadgledanoj sesiji
+Name[ca]=Silenci a la sessió monitoritzada
+Name[cs]=Ticho v monitorované relaci
+Name[csb]=Felënk aktiwnotë w mònitorowóny sesëji
+Name[cy]=Distawrwydd mewn sesiwn wedi'i fonitro
+Name[da]=Stilhed i overvåget session
+Name[de]=Stummschaltung in überwachter Sitzung
+Name[el]=Ησυχία στην εποπτευόμενη συνεδÏία
+Name[eo]=Trankvilo en rigardata seanco
+Name[es]=Silencio en sesión monitorizada
+Name[et]=Vaikus jälgitavas seansis
+Name[eu]=Isiltasuna monitorizatutako saioan
+Name[fa]=سکوت در نشست پایش‌شده
+Name[fi]=Hiljaisuus valvotussa istunnossa
+Name[fr]=Inactivité dans la session surveillée
+Name[fy]=Stilte yn observearre sesje
+Name[ga]=Ciúnas i seisiún monatóirithe
+Name[gl]=Silencio na sesión monitoreada
+Name[he]=שקט במשימה מנוטרת
+Name[hi]=मॉनीटरà¥à¤¡ सतà¥à¤° में शांति
+Name[hr]=Tišina u praćenoj sesiji
+Name[hu]=Üresjárat egy monitorozott munkafolyamatban
+Name[is]=Þögn í setunni sem fylgst er með
+Name[it]=Silenzio nella sessione controllata
+Name[ja]=監視中ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¼‘æ­¢
+Name[kk]=Бақылаудағы ÑеанÑта тыныштық
+Name[km]=ស្ងាážáŸ‹áŸ—ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​បាន​ážáŸ’ážšáž½ážáž–áž·áž“áž·ážáŸ’áž™
+Name[ko]=관찰하는 세션ì—ì„œ 침묵 ê°ì§€ë¨
+Name[lt]=Tyla stebimoje sesijoje
+Name[lv]=Klusums monitorÄ“tÄ sesijÄ
+Name[mk]=Тишина во Ñледената ÑеÑија
+Name[mn]=Харагдаж буй Ñуултын Silence
+Name[ms]=Senyap dalam sesi yang dipantau
+Name[mt]=Silenzju waqt sessjoni monitorjata
+Name[nb]=Stille i en overvåket økt
+Name[nds]=Still in'n beluerten Törn
+Name[ne]=मोनिटर गरिà¤à¤•à¥‹ सतà¥à¤°à¤®à¤¾ मौनता
+Name[nl]=Stilte in geobserveerde sessie
+Name[nn]=Stilt i overvaka økt
+Name[pa]=ਨਿਗਰਾਨੀ ਅਧੀਨ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਖਾਮੋਸ਼ੀ
+Name[pl]=Brak aktywności w monitorowanej sesji
+Name[pt]=Silêncio numa sessão vigiada
+Name[pt_BR]=Silêncio na sessão monitorada
+Name[ro]=Liniște în sesiunea monitorizată
+Name[ru]=Молчание в отÑлеживаемом ÑеанÑе
+Name[rw]=Umutuzo mu mukoro werekanwe
+Name[se]=Gozihuvvon bargovuorru jaskkodii
+Name[sk]=NeÄinnosÅ¥ v sledovanej relácii
+Name[sl]=Tišina v opazovani seji
+Name[sr]=Тишина у надзираној ÑеÑији
+Name[sr@Latn]=Tišina u nadziranoj sesiji
+Name[sv]=Tystnad i bevakad session
+Name[ta]=கணà¯à®•à®¾à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கால நேரதà¯à®¤à®¿à®²à¯ அமைதி
+Name[tg]=Сукут дар нишаÑти таҳти назорат
+Name[th]=ปิดออดบนเซสชันที่ถูà¸à¸•à¸´à¸”ตามà¸à¸²à¸£à¸—ำงาน
+Name[tr]=Ä°zlenen oturumda sessizlik
+Name[tt]=Küzätelgän sessidä tınlıq
+Name[uk]=Тиша в контрольованому ÑеанÑÑ–
+Name[vi]=Im lặng trong các phiên chạy được theo dõi
+Name[wa]=Silince e corwaiteye session
+Name[zh_CN]=被监视会è¯ä¸­çš„缄默
+Name[zh_TW]=沉默於監視中工作階段
+Comment=Silence detected in a monitored session
+Comment[af]=Stilte bespeur in 'n sessie wat gemonitor word
+Comment[ar]=التحقق من السكوت أثناء جلسة يتم مراقبتها
+Comment[be]=Ð¦Ñ–ÑˆÑ‹Ð½Ñ Ñž ÑеÑÑ–Ñ–, за Ñкой вÑдзецца назіранне
+Comment[bg]=ПаÑивноÑÑ‚ в наблюдавана ÑеÑиÑ
+Comment[bn]=মনিটর করা à¦à¦•à¦Ÿà¦¿ সেশন-ঠকিছৠঘটছে না
+Comment[bs]=Tišina otkrivena u nadziranoj sesiji
+Comment[ca]=Detectat silenci en una sessió monitoritzada
+Comment[cs]=Detekováno ticho v monitorované relaci
+Comment[csb]=Òstôł wëkrëti felënk aktiwnotë w mònitorowóny sesëji
+Comment[cy]=Datgelwyd distawrwydd mewn sesiwn wedi'i fonitro
+Comment[da]=Stilhed detekteret i en overvåget session
+Comment[de]=Stille in nicht überwachter Sitzung
+Comment[el]=Ησυχία παÏατηÏήθηκε σε μια εποπτευόμενη συνεδÏία
+Comment[eo]=Trankvilo trovita en rigardata seanco
+Comment[es]=Silencio detectado en una sesión monitorizada
+Comment[et]=Tuvastati vaikus jälgitavas seansis
+Comment[eu]=Isiltasuna detektatua monitorizatutako saioan
+Comment[fa]=سکوت در نشست پایش‌شده آشکار شد
+Comment[fi]=Hiljaisuutta havaittu tarkkailtavassa istunnossa
+Comment[fr]=Inactivité détectée dans une session surveillée
+Comment[fy]=Stilte ûntdutsen yn observearre sesje
+Comment[ga]=Braitheadh ciúnas i seisiún monatóirithe
+Comment[gl]=Silencio detectado nunha sesión monitoreada
+Comment[he]=שקט זוהה במשימה מנוטרת
+Comment[hi]=मॉनीटरà¥à¤¡ सतà¥à¤° में शांति पता लगी
+Comment[hr]=Otkrivena je tišina u nadziranoj sesiji
+Comment[hu]=Üresjárat észlelve egy monitorozott munkafolyamatban
+Comment[is]=Ekkert er að gerast í setunni sem fylgst er með
+Comment[it]=Rilevato silenzio in una sessione sotto controllo
+Comment[ja]=監視中ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã§ä¼‘止を検出ã—ã¾ã—ãŸ
+Comment[kk]=Бақылаудағы ÑеанÑта тыныштық байқалады
+Comment[km]=បាន​រកឃើញ​ស្ងាážáŸ‹áŸ— ក្នុង​សមáŸáž™â€‹ážŠáŸ‚ល​បាន​ážáŸ’ážšáž½ážáž–áž·áž“áž·ážáŸ’áž™
+Comment[ko]=관찰하는 세션ì—ì„œ 침묵 ê°ì§€ë¨
+Comment[lt]=Stebimoje sesijoje pastebÄ—ta tyla
+Comment[lv]=Ir konstatÄ“ts klusums monitorÄ“tÄ sesijÄ
+Comment[mk]=Откриена е тишина во Ñледената ÑеÑија
+Comment[mn]=Харагдаж буй Ñуултад илÑÑ€ÑÑн Silence
+Comment[ms]=Senyap dikesan dalam sesi yang dipantau
+Comment[nb]=Oppdaget at det er stille i en overvåket økt
+Comment[nds]=Still in'n beluerten Törn opdeckt
+Comment[ne]=मोनिटर गरिà¤à¤•à¥‹ सतà¥à¤°à¤®à¤¾ पतà¥à¤¤à¤¾ लगाà¤à¤•à¥‹ मौनता
+Comment[nl]=Stilte ontdekt in geobserveerde sessie
+Comment[nn]=Oppdaga at det er stilt i ei overvaka økt
+Comment[pa]=ਨਿਗਰਾਨੀ ਅਧੀਨ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਖਾਮੋਸੀ ਪà©à¨°à¨¾à¨ªà¨¤
+Comment[pl]=Wykryto brak aktywności w monitorowanej sesji
+Comment[pt]=Silêncio detectado numa sessão vigiada
+Comment[pt_BR]=Silêncio detectado em uma sessão monitorada
+Comment[ro]=Liniște detectată într-o sesiune monitorizată
+Comment[ru]=Обнаружение Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð² отÑлеживаемом ÑеанÑе
+Comment[rw]=Umutuzo wabonetse mu mukoro werekanwe
+Comment[se]=Fuobmái ahte bargovuorru jaskkodii
+Comment[sk]=Detekovaná neÄinnosÅ¥ v sledovanej relácii
+Comment[sl]=Zaznana tišina v opazovani seji
+Comment[sr]=Откривена је тишина у надзираној ÑеÑији
+Comment[sr@Latn]=Otkrivena je tišina u nadziranoj sesiji
+Comment[sv]=Tystnad funnen i en bevakad session
+Comment[ta]=கணà¯à®•à®¾à®©à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ அமரà¯à®µà®¿à®²à¯ அமைதி கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯
+Comment[tg]=Ðфтани Ñукут дар нишаÑти таҳти назорат
+Comment[th]=ตรวจจับได้ว่าปิดออดบนเซสชั่นที่ถูà¸à¸•à¸´à¸”ตามà¸à¸²à¸£à¸—ำงานอยู่
+Comment[tr]=Ä°zlenen oturumda sessizlik var
+Comment[tt]=Küzätelgän sessidä tınlıq küzätelä
+Comment[uk]=Ð’ контрольованому ÑеанÑÑ– зареєÑтровано тишу
+Comment[vi]=Im lặng được phát hiện trong một phiên chạy bị theo dõi
+Comment[wa]=Silince trové en ene corwaiteye session
+Comment[zh_CN]=被监视会è¯ä¸­æ£€æµ‹åˆ°çš„缄默
+Comment[zh_TW]=沉漠被åµæ¸¬åˆ°æ–¼ç›£è¦–中的工作階段
+default_presentation=16
+
+[Finished]
+Name=Session finished with non-zero status
+Name[af]=Sessie het geëindig met nie-zero status
+Name[ar]=انتهت الجلسة ÙÙŠ حالة غير صÙرية
+Name[be]=СеÑÑ–Ñ, Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ð°Ñ Ð½ÐµÐ½ÑƒÐ»Ñвым Ñігналам
+Name[bg]=СеÑÐ¸Ñ Ñ ÐºÐ¾Ð´ на изход различен от нула
+Name[bn]=সেশন নন-জিরো সà§à¦Ÿà§à¦¯à¦¾à¦Ÿà¦¾à¦¸ সমেত সমাপà§à¦¤
+Name[bs]=Sesija završena sa ne-nula statusom
+Name[ca]=Sessió finalitzada amb un estatus no zero
+Name[cs]=Relace ukonÄena s nenulovým stavem
+Name[csb]=Seséja òstała zakùńczonô z nienulowim stónã
+Name[cy]=Gorffenodd y sesiwn efo cyflwr di-sero
+Name[da]=Session afsluttet med ikke-nul status
+Name[de]=Sitzung beendet mit Status ungleich Null
+Name[el]=Η συνεδÏία τελείωσε με μη μηδενική κατάσταση
+Name[eo]=Seanco finiÄis kun eraro
+Name[es]=Sesión terminada con estado no cero
+Name[et]=Seanss lõpetas nullist erineva staatusega
+Name[eu]=Ez-zero egoerarekin amaitutako saioa
+Name[fa]=نشست توسط وضعیت غیر صÙر پایان یاÙت
+Name[fi]=Istunto lopetettiin paluuarvolla, joka oli eri kuin nolla
+Name[fr]=La session s'est terminée anormalement
+Name[fy]=Sesje is foltôge mei in non-zero tastân
+Name[gl]=A sesión rematou cun estado non cero
+Name[he]=משימה הסתיימה ×¢× ×ž×¦×‘ ש×ינו ×פס
+Name[hi]=नॉन जीरो सà¥à¤Ÿà¥‡à¤Ÿà¤¸ में सतà¥à¤° पूरà¥à¤£
+Name[hr]=Sesija je završila sa stanjem koje nije nula
+Name[hu]=Egy munkafolyamat nem nulla értékkel fejeződött be
+Name[is]=Setunni lauk með stöðu sem var ekki núll
+Name[it]=La sessione è terminata con uno stato diverso da zero
+Name[ja]=ゼロã§ãªã„ステータスã§ã‚»ãƒƒã‚·ãƒ§ãƒ³ãŒçµ‚了
+Name[ka]=სეáƒáƒœáƒ¡áƒ˜ დáƒáƒ¡áƒ áƒ£áƒšáƒ“რნულáƒáƒ•áƒáƒœáƒ˜ რეზულტáƒáƒ¢áƒ˜áƒ—
+Name[kk]=Ð¡ÐµÐ°Ð½Ñ Ð½Ó©Ð» ÐµÐ¼ÐµÑ ÐºÒ¯Ð¹Ð´Ðµ аÑқталды
+Name[km]=សមáŸáž™â€‹áž”ាន​បញ្ចប់ ដោយ​មាន​ស្ážáž¶áž“ភាព
+Name[ko]=ì„¸ì…˜ì´ 0ì´ ì•„ë‹Œ ìƒíƒœë¡œ ë남
+Name[lt]=Sesija baigta ne nuliniu statusu
+Name[lv]=Sesija beidzÄs ar nenulles statusu
+Name[mk]=СеÑијата заврши Ñо ненулти ÑтатуÑ
+Name[mn]=ТÑг Ð±ÑƒÑ Ñ‚Ó©Ð»Ð²Ó©Ó©Ñ€ Ñуулт дууÑлаа
+Name[ms]=Sesi selesai dengan status bukan sifar
+Name[mt]=Sessjoni temmet bi status mhux zero
+Name[nb]=Økta ble avsluttet med en status ulik null
+Name[nds]=Törn wöör mit Nich-Null-Status beendt
+Name[ne]=शूनà¥à¤¯ नभà¤à¤•à¥‹ सà¥à¤¥à¤¿à¤¤à¤¿à¤¸à¤à¤— सतà¥à¤° अनà¥à¤¤à¥à¤¯ भयो
+Name[nl]=Sessie is voltooid met een non-zero status
+Name[nn]=Økt avslutta med status ulik null
+Name[pa]=ਨਾ-ਸਿਫਰ ਸਥਿਤੀ ਨਾਲ ਸ਼ੈਸ਼ਨ ਸਮਾਪਤ
+Name[pl]=Sesja zakończona z niezerowym kodem powrotu
+Name[pt]=Sessão terminada com código diferente de zero
+Name[pt_BR]=Sessão finalizada com status diferente de zero
+Name[ro]=Sesiunea s-a terminat cu rezultat diferit de zero
+Name[ru]=Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»ÑÑ Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ ÑоÑтоÑнием
+Name[rw]=Umukoro warangije ufite imimerere nta-zeru
+Name[se]=Bargovuorro gearggai ii-nolla stáhtusain
+Name[sk]=Relácia ukonÄená s nenulovým stavom
+Name[sl]=Seja konÄana z neniÄelnim stanjem
+Name[sr]=СеÑија је завршена Ñа не-нула ÑтатуÑом
+Name[sr@Latn]=Sesija je završena sa ne-nula statusom
+Name[sv]=Sessionen klar med status skild från noll
+Name[ta]=கால நேரம௠பூஜà¯à®¯à®®à¯ இலà¯à®²à®¾à®®à®²à¯ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯.
+Name[tg]=ÐишаÑÑ‚ бо вазъиÑти ғайри Ñафар ба поён раÑид
+Name[th]=เซสชันที่จบà¸à¸²à¸£à¸—ำงานด้วยสถานะที่ไม่ใช่ค่าศูนย์
+Name[tr]=Oturum sıfırdan farklı bir durumla çıktı
+Name[tt]=Sessi buş bulmağan xäl belän tuqtadı
+Name[uk]=Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð· кодом помилки
+Name[vi]=Phiên chạy kết thúc với trạng thái khác không
+Name[wa]=Session fineye avou sins messaedje zero
+Name[zh_CN]=éžé›¶çŠ¶æ€å®Œæˆçš„会è¯
+Name[zh_TW]=工作階段çµæŸæ–¼éžé›¶ç‹€æ…‹
+Comment=A session has exited with non-zero status
+Comment[af]='n Sessie het met 'n nie-zero status geëindig
+Comment[ar]=انتهت جلسة بحالة غير صÙرية
+Comment[be]=СеÑÑ–Ñ Ñкончыла працу ненулÑвым Ñігналам
+Comment[bg]=СеÑÐ¸Ñ Ñ ÐºÐ¾Ð´ на изход различен от нула
+Comment[bn]=à¦à¦•à¦Ÿà¦¿ সেশন নন-জিরো সà§à¦Ÿà§à¦¯à¦¾à¦Ÿà¦¾à¦¸ সমেত সমাপà§à¦¤ হয়েছে
+Comment[bs]=Sesija je prekinuta sa ne-nula statusom
+Comment[ca]=Una sessió ha eixit amb un estatus no zero
+Comment[cs]=Relace byla ukonÄena s nenulovým stavem
+Comment[csb]=Seséja zakùńczëła sã nienulowim stónã
+Comment[cy]=Terfynnodd sesiwn efo cyflwr di-sero
+Comment[da]=En session er afsluttet med ikke-nul status
+Comment[de]=Sitzung beendet mit Status ungleich Null
+Comment[el]=Μια συνεδÏία τελείωσε με μη μηδενική κατάσταση
+Comment[eo]=Seanco finiÄis kun eraro
+Comment[es]=Ha terminado una sesión con estado no cero
+Comment[et]=Seanss väljus nullist erineva staatusega
+Comment[eu]=Saio bat amaitu egin da ez-zero egoerarekin
+Comment[fa]=نشستی توسط وضعیت غیر صÙر خارج شده است
+Comment[fi]=Istunto lopetettiin paluuarvolla, joka ei ollut nolla
+Comment[fr]=Une session s'est terminée anormalement
+Comment[fy]=In sesje is einige mei in non-zero tastân
+Comment[gl]=Unha sesión saiu cun estado non cero
+Comment[he]=משימה הסתיימה ×¢× ×§×•×“ יצי××” שונה מ×פס
+Comment[hi]=सतà¥à¤° नॉन जीरो सà¥à¤Ÿà¥‡à¤Ÿà¤¸ के साथ बाहर हà¥à¤†
+Comment[hr]=Sesija je izašla sa stanjem koje nije nula
+Comment[hu]=Egy munkafolyamat nem nulla értékkel fejeződött be
+Comment[is]=Setu lauk með stöðu sem er ekki núll
+Comment[it]=Una sessione è terminata con stato diverso da zero
+Comment[ja]=ゼロã§ãªã„ステータスã§ã‚»ãƒƒã‚·ãƒ§ãƒ³ãŒçµ‚了ã—ã¾ã—ãŸ
+Comment[ka]=სეáƒáƒœáƒ¡áƒ˜ დáƒáƒ¡áƒ áƒ£áƒšáƒ“რáƒáƒ áƒáƒœáƒ£áƒšáƒáƒ•áƒáƒœáƒ˜ რეზულტáƒáƒ¢áƒ˜áƒ—
+Comment[kk]=Ð¡ÐµÐ°Ð½Ñ Ð½Ó©Ð» ÐµÐ¼ÐµÑ ÐºÒ¯Ð¹Ð´Ðµ аÑқталды
+Comment[km]=សមáŸáž™â€‹áž˜áž½áž™â€‹áž”ាន​ចáŸáž‰ ដោយ​មាន​ស្ážáž¶áž“ភាព
+Comment[ko]=ì„¸ì…˜ì´ 0ì´ ì•„ë‹Œ ìƒíƒœë¡œ ë났ìŒ
+Comment[lt]=Sesija baigė darbą su nenuliniu rėžimu
+Comment[lv]=Sesija beidzÄs ar nenulles statusu
+Comment[mk]=СеÑијата излезе Ñо ненулти ÑтатуÑ
+Comment[mn]=Name=ТÑг Ð±ÑƒÑ Ñ‚Ó©Ð»Ð²Ó©Ó©Ñ€ ÑÑƒÑƒÐ»Ñ‚Ð°Ð°Ñ Ð³Ð°Ñ€Ð»Ð°Ð°
+Comment[ms]=Satu sesi keluar dengan status bukan sifar
+Comment[mt]=Sessjoni temmet bi status mhux zero
+Comment[nb]=En økt ble avsluttet med en status som ikke var null
+Comment[nds]=En Törn is mit Nich-Null-Status to't Enn kamen
+Comment[ne]=शूनà¥à¤¯ नभà¤à¤•à¥‹ सà¥à¤¥à¤¿à¤¤à¤¿à¤¸à¤à¤— यो सतà¥à¤° अनà¥à¤¤à¥à¤¯ भयो
+Comment[nl]=Een sessie is beëindigd met een non-zero status
+Comment[nn]=Ei økt avslutta med status som ikkje var null
+Comment[pa]=ਨਾ-ਸਿਫਰ ਸਥਿਤੀ ਨਾਲ ਸ਼ੈਸ਼ਨ ਬੰਦ
+Comment[pl]=Sesja zakończyła się z niezerowym kodem powrotu
+Comment[pt]=Uma sessão terminou com código diferente de zero
+Comment[pt_BR]=Uma sessão foi finalizada com status diferente de zero
+Comment[ro]=O sesiune s-a terminat cu rezultat diferit de zero
+Comment[ru]=Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»ÑÑ Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ²Ñ‹Ð¼ ÑоÑтоÑнием
+Comment[rw]=Umukoro wahagaze ufite imimerere nta-zeru
+Comment[se]=Bargovuorru lea geargan stáhtusain mii ii lean nolla
+Comment[sk]=Relácia bola ukonÄená s nenulovou návratovou hodnotou
+Comment[sl]=Seja je konÄana z neniÄelnim stanjem
+Comment[sr]=СеÑија је изашла Ñа не-нула ÑтатуÑом
+Comment[sr@Latn]=Sesija je izašla sa ne-nula statusom
+Comment[sv]=En session har avslutats med status skild från noll
+Comment[ta]=ஒர௠கூடà¯à®Ÿà®®à¯ ஒனà¯à®±à¯à®®à®¿à®²à¯à®²à®¾à®®à®²à¯ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯/
+Comment[tg]=ÐишаÑте бо вазъиÑти ғайриÑафар ба поён раÑидааÑÑ‚
+Comment[th]=เซสชันจบà¸à¸²à¸£à¸—ำงานโดยไม่ได้คืนค่าเป็นศูนย์
+Comment[tr]=Bir oturum hata vererek çıktı
+Comment[tt]=Sessi buş bulmağan xäl belän tuqtadı
+Comment[uk]=Ð¡ÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð· кодом помилки
+Comment[uz]=Seans nolga teng boʻlmagan holat bilan tugadi
+Comment[uz@cyrillic]=Ð¡ÐµÐ°Ð½Ñ Ð½Ð¾Ð»Ð³Ð° тенг бўлмаган ҳолат билан тугади
+Comment[vi]=Một phiên chạy vừa kết thúc với trạng thái khác không
+Comment[wa]=Ene session a cwité sins messaedje zero
+Comment[zh_CN]=会è¯ä»¥éžé›¶çŠ¶æ€é€€å‡º
+Comment[zh_TW]=工作階段çµæŸæ–¼éžé›¶ç‹€æ…‹
+default_presentation=0
diff --git a/konsole/fonts/9x15.bdf b/konsole/fonts/9x15.bdf
new file mode 100644
index 000000000..25c5a6eda
--- /dev/null
+++ b/konsole/fonts/9x15.bdf
@@ -0,0 +1,99671 @@
+STARTFONT 2.1
+FONT -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1
+SIZE 15 75 75
+FONTBOUNDINGBOX 9 15 0 -3
+
+STARTPROPERTIES 24
+FONTNAME_REGISTRY ""
+FOUNDRY "Misc"
+FAMILY_NAME "Fixed"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 15
+POINT_SIZE 140
+RESOLUTION_X 75
+RESOLUTION_Y 75
+SPACING "C"
+AVERAGE_WIDTH 90
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+COPYRIGHT "Public domain font. Share and enjoy."
+_XMBDFED_INFO "Edited with xmbdfed 4.3."
+CAP_HEIGHT 10
+X_HEIGHT 7
+WEIGHT 10
+QUAD_WIDTH 9
+DEFAULT_CHAR 0
+FONT_DESCENT 3
+FONT_ASCENT 12
+ENDPROPERTIES
+
+CHARS 4332
+
+STARTCHAR char0
+ENCODING 0
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6D00
+0100
+4000
+4100
+0100
+4000
+4100
+0100
+4000
+5B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR space
+ENCODING 32
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+1200
+1200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2400
+2400
+7E00
+2400
+2400
+7E00
+2400
+2400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+3E00
+4900
+4800
+2800
+1C00
+0A00
+0900
+4900
+3E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR percent
+ENCODING 37
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2100
+5200
+5200
+2400
+0800
+0800
+1200
+2500
+2500
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+4800
+4800
+3000
+3100
+4A00
+4400
+4A00
+3100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+0800
+1000
+1000
+1000
+1000
+1000
+1000
+0800
+0800
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0800
+0400
+0400
+0400
+0400
+0400
+0400
+0800
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4900
+2A00
+1C00
+2A00
+4900
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR plus
+ENCODING 43
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+7F00
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR comma
+ENCODING 44
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0400
+0400
+0800
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR period
+ENCODING 46
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR slash
+ENCODING 47
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0200
+0200
+0400
+0800
+0800
+1000
+2000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zero
+ENCODING 48
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR one
+ENCODING 49
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1800
+2800
+4800
+0800
+0800
+0800
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR two
+ENCODING 50
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+0200
+0400
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR three
+ENCODING 51
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0E00
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR four
+ENCODING 52
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0600
+0A00
+1200
+2200
+4200
+7F00
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR five
+ENCODING 53
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+5E00
+6100
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR six
+ENCODING 54
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR seven
+ENCODING 55
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0200
+0400
+0400
+0800
+0800
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eight
+ENCODING 56
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+2200
+1C00
+2200
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR nine
+ENCODING 57
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4300
+3D00
+0100
+0100
+0200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR colon
+ENCODING 58
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0C00
+0C00
+0400
+0400
+0800
+ENDCHAR
+
+STARTCHAR less
+ENCODING 60
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0400
+0800
+1000
+2000
+2000
+1000
+0800
+0400
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR equal
+ENCODING 61
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR greater
+ENCODING 62
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1000
+0800
+0400
+0200
+0200
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR question
+ENCODING 63
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+0100
+0200
+0400
+0800
+0800
+0000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR at
+ENCODING 64
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4F00
+5100
+5300
+4D00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR A
+ENCODING 65
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR B
+ENCODING 66
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4200
+7C00
+4200
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR C
+ENCODING 67
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR D
+ENCODING 68
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4100
+4100
+4100
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR E
+ENCODING 69
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR F
+ENCODING 70
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR G
+ENCODING 71
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4700
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H
+ENCODING 72
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR I
+ENCODING 73
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR J
+ENCODING 74
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0F80
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR K
+ENCODING 75
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR L
+ENCODING 76
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR M
+ENCODING 77
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR N
+ENCODING 78
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR O
+ENCODING 79
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR P
+ENCODING 80
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Q
+ENCODING 81
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+5100
+4900
+3E00
+0400
+0300
+0000
+ENDCHAR
+
+STARTCHAR R
+ENCODING 82
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR S
+ENCODING 83
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4000
+3800
+0600
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR T
+ENCODING 84
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR U
+ENCODING 85
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR V
+ENCODING 86
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR W
+ENCODING 87
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR X
+ENCODING 88
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Y
+ENCODING 89
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Z
+ENCODING 90
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1E00
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+2000
+2000
+1000
+0800
+0800
+0400
+0200
+0200
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+3C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+0000
+0000
+ENDCHAR
+
+STARTCHAR grave
+ENCODING 96
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR a
+ENCODING 97
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR b
+ENCODING 98
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR c
+ENCODING 99
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR d
+ENCODING 100
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR e
+ENCODING 101
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR f
+ENCODING 102
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1100
+1000
+1000
+7C00
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR g
+ENCODING 103
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR h
+ENCODING 104
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR i
+ENCODING 105
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR j
+ENCODING 106
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0000
+0000
+0E00
+0200
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR k
+ENCODING 107
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR l
+ENCODING 108
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR m
+ENCODING 109
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR n
+ENCODING 110
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR o
+ENCODING 111
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR p
+ENCODING 112
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR q
+ENCODING 113
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR r
+ENCODING 114
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR s
+ENCODING 115
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR t
+ENCODING 116
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR u
+ENCODING 117
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR v
+ENCODING 118
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR w
+ENCODING 119
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR x
+ENCODING 120
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR y
+ENCODING 121
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR z
+ENCODING 122
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0700
+0800
+0800
+0800
+0400
+1800
+1800
+0400
+0800
+0800
+0800
+0700
+0000
+0000
+ENDCHAR
+
+STARTCHAR bar
+ENCODING 124
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7000
+0800
+0800
+0800
+1000
+0C00
+0C00
+1000
+0800
+0800
+0800
+7000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4900
+4600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR space
+ENCODING 160
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR cent
+ENCODING 162
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+3C00
+4A00
+4800
+5000
+5200
+3C00
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1000
+1000
+7C00
+1000
+1000
+3000
+5100
+2E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR currency
+ENCODING 164
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+3E00
+2200
+2200
+3E00
+4100
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR yen
+ENCODING 165
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+3E00
+0800
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR brokenbar
+ENCODING 166
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0000
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR section
+ENCODING 167
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2400
+2000
+1800
+2400
+2400
+2400
+1800
+0400
+2400
+1800
+0000
+0000
+ENDCHAR
+
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+9900
+A500
+A100
+A500
+9900
+4200
+3C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1200
+0E00
+1200
+0F00
+0000
+1F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0900
+1200
+2400
+4800
+4800
+2400
+1200
+0900
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7E00
+0200
+0200
+0200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR registered
+ENCODING 174
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+B900
+A500
+B900
+A900
+A500
+4200
+3C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR macron
+ENCODING 175
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 176
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1200
+1200
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+7F00
+0800
+0800
+0800
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+0800
+3000
+4000
+7800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+1000
+0800
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR acute
+ENCODING 180
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR mu
+ENCODING 181
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+6300
+5D00
+4000
+4000
+0000
+ENDCHAR
+
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4500
+4500
+4500
+3D00
+0500
+0500
+0500
+0500
+0500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2000
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4400
+4400
+3800
+0000
+7C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+2400
+1200
+0900
+0900
+1200
+2400
+4800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR onequarter
+ENCODING 188
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2100
+7300
+0500
+0900
+0D00
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR onehalf
+ENCODING 189
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2600
+7900
+0100
+0600
+0800
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR threequarters
+ENCODING 190
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+1000
+0800
+4900
+3300
+0500
+0900
+0D00
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0000
+0800
+0800
+1000
+2000
+4000
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3100
+4E00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+1C00
+1400
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR AE
+ENCODING 198
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3700
+4800
+4800
+4800
+4800
+7E00
+4800
+4800
+4800
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+7F00
+2000
+2000
+3C00
+2000
+2000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+7F00
+2000
+2000
+3C00
+2000
+2000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+7F00
+2000
+2000
+3C00
+2000
+2000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+7F00
+2000
+2000
+3C00
+2000
+2000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4100
+E100
+4100
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3100
+4E00
+0000
+4100
+6100
+5100
+4900
+4900
+4500
+4300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3100
+4E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+3E00
+4300
+4500
+4500
+4900
+4900
+5100
+5100
+6100
+3E00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+7E00
+4100
+4100
+4100
+7E00
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+2400
+6800
+2400
+2200
+2200
+2200
+2C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0400
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aring
+ENCODING 229
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+1200
+0C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ae
+ENCODING 230
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+0900
+3E00
+4800
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+2800
+4400
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eth
+ENCODING 240
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1800
+2800
+0400
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4E00
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR divide
+ENCODING 247
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+0800
+0000
+7F00
+0000
+0800
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3E00
+4500
+4500
+4900
+5100
+5100
+3E00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR Amacron
+ENCODING 256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+1C00
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR amacron
+ENCODING 257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Abreve
+ENCODING 258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR abreve
+ENCODING 259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aogonek
+ENCODING 260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0100
+0180
+0000
+ENDCHAR
+
+STARTCHAR aogonek
+ENCODING 261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0100
+0180
+0000
+ENDCHAR
+
+STARTCHAR Cacute
+ENCODING 262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR cacute
+ENCODING 263
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ccircumflex
+ENCODING 264
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ccircumflex
+ENCODING 265
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Cdotaccent
+ENCODING 266
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR cdotaccent
+ENCODING 267
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ccaron
+ENCODING 268
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ccaron
+ENCODING 269
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Dcaron
+ENCODING 270
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+7C00
+4200
+4100
+4100
+4100
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dcaron
+ENCODING 271
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1500
+0900
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Dcroat
+ENCODING 272
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4100
+E100
+4100
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dcroat
+ENCODING 273
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0780
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Emacron
+ENCODING 274
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR emacron
+ENCODING 275
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ebreve
+ENCODING 276
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ebreve
+ENCODING 277
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Edotaccent
+ENCODING 278
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR edotaccent
+ENCODING 279
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eogonek
+ENCODING 280
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0800
+0C00
+0000
+ENDCHAR
+
+STARTCHAR eogonek
+ENCODING 281
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0800
+0C00
+0000
+ENDCHAR
+
+STARTCHAR Ecaron
+ENCODING 282
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ecaron
+ENCODING 283
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Gcircumflex
+ENCODING 284
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gcircumflex
+ENCODING 285
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR Gbreve
+ENCODING 286
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gbreve
+ENCODING 287
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR Gdotaccent
+ENCODING 288
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gdotaccent
+ENCODING 289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR Gcommaaccent
+ENCODING 290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4700
+4100
+4100
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR gcommaaccent
+ENCODING 291
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+0C00
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+3E00
+0000
+ENDCHAR
+
+STARTCHAR Hcircumflex
+ENCODING 292
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hcircumflex
+ENCODING 293
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0A00
+5100
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Hbar
+ENCODING 294
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+FF80
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hbar
+ENCODING 295
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+F000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Itilde
+ENCODING 296
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3100
+4E00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR itilde
+ENCODING 297
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3200
+4C00
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Imacron
+ENCODING 298
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR imacron
+ENCODING 299
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7E00
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ibreve
+ENCODING 300
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ibreve
+ENCODING 301
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iogonek
+ENCODING 302
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR iogonek
+ENCODING 303
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR Idotaccent
+ENCODING 304
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dotlessi
+ENCODING 305
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR IJ
+ENCODING 306
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7700
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2900
+7600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ij
+ENCODING 307
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+0000
+0000
+6700
+2100
+2100
+2100
+2100
+2100
+F900
+0100
+1100
+0E00
+ENDCHAR
+
+STARTCHAR Jcircumflex
+ENCODING 308
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0A00
+1100
+0000
+0F00
+0200
+0200
+0200
+0200
+0200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR jcircumflex
+ENCODING 309
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0A00
+1100
+0000
+0E00
+0200
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR Kcommaaccent
+ENCODING 310
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+3000
+9000
+6000
+ENDCHAR
+
+STARTCHAR kcommaaccent
+ENCODING 311
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+3000
+9000
+6000
+ENDCHAR
+
+STARTCHAR kgreenlandic
+ENCODING 312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+4400
+7800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Lacute
+ENCODING 313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lacute
+ENCODING 314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Lcommaaccent
+ENCODING 315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR lcommaaccent
+ENCODING 316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR Lcaron
+ENCODING 317
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lcaron
+ENCODING 318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ldot
+ENCODING 319
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4400
+4400
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ldot
+ENCODING 320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+1000
+1000
+1200
+1200
+1000
+1000
+1000
+1000
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Lslash
+ENCODING 321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5000
+6000
+C000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lslash
+ENCODING 322
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0A00
+0C00
+1800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Nacute
+ENCODING 323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR nacute
+ENCODING 324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ncommaaccent
+ENCODING 325
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+2000
+9000
+6000
+ENDCHAR
+
+STARTCHAR ncommaaccent
+ENCODING 326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+2000
+9000
+6000
+ENDCHAR
+
+STARTCHAR Ncaron
+ENCODING 327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ncaron
+ENCODING 328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR napostrophe
+ENCODING 329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+4000
+8000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eng
+ENCODING 330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR eng
+ENCODING 331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR Omacron
+ENCODING 332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR omacron
+ENCODING 333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Obreve
+ENCODING 334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR obreve
+ENCODING 335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ohungarumlaut
+ENCODING 336
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ohungarumlaut
+ENCODING 337
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR OE
+ENCODING 338
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4800
+4800
+4800
+4E00
+4800
+4800
+4800
+4800
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oe
+ENCODING 339
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4F00
+4800
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Racute
+ENCODING 340
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+7E00
+4100
+4100
+4100
+7E00
+4200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR racute
+ENCODING 341
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Rcommaaccent
+ENCODING 342
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+4100
+3000
+9000
+6000
+ENDCHAR
+
+STARTCHAR rcommaaccent
+ENCODING 343
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+3000
+9000
+6000
+ENDCHAR
+
+STARTCHAR Rcaron
+ENCODING 344
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+7E00
+4100
+4100
+4100
+7E00
+4200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR rcaron
+ENCODING 345
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Sacute
+ENCODING 346
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sacute
+ENCODING 347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Scircumflex
+ENCODING 348
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR scircumflex
+ENCODING 349
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Scedilla
+ENCODING 350
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+3E00
+0100
+0100
+4100
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR scedilla
+ENCODING 351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR Scaron
+ENCODING 352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR scaron
+ENCODING 353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Tcommaaccent
+ENCODING 354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0C00
+2400
+1800
+0000
+ENDCHAR
+
+STARTCHAR tcommaaccent
+ENCODING 355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+2400
+1800
+0000
+ENDCHAR
+
+STARTCHAR Tcaron
+ENCODING 356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR tcaron
+ENCODING 357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1100
+0A00
+0400
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Tbar
+ENCODING 358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR tbar
+ENCODING 359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+7C00
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Utilde
+ENCODING 360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3100
+4E00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR utilde
+ENCODING 361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3200
+4C00
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Umacron
+ENCODING 362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR umacron
+ENCODING 363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7E00
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ubreve
+ENCODING 364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ubreve
+ENCODING 365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Uring
+ENCODING 366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+1200
+0C00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uring
+ENCODING 367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2400
+1800
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Uhungarumlaut
+ENCODING 368
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+2200
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uhungarumlaut
+ENCODING 369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+2400
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Uogonek
+ENCODING 370
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uogonek
+ENCODING 371
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0800
+0C00
+0000
+ENDCHAR
+
+STARTCHAR Wcircumflex
+ENCODING 372
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+4100
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR wcircumflex
+ENCODING 373
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ycircumflex
+ENCODING 374
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ycircumflex
+ENCODING 375
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR Ydieresis
+ENCODING 376
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Zacute
+ENCODING 377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zacute
+ENCODING 378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Zdotaccent
+ENCODING 379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zdotaccent
+ENCODING 380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Zcaron
+ENCODING 381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zcaron
+ENCODING 382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR longs
+ENCODING 383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1000
+1000
+3000
+1000
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0180
+ENCODING 384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+F800
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0181
+ENCODING 385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+9100
+9100
+1100
+1E00
+1100
+1100
+1100
+1100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0182
+ENCODING 386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2000
+2000
+2000
+3E00
+2100
+2100
+2100
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0183
+ENCODING 387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+2000
+2000
+2000
+3C00
+2200
+2200
+2200
+2200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0184
+ENCODING 388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+6000
+2000
+3E00
+2100
+2100
+2100
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0185
+ENCODING 389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+6000
+2000
+3C00
+2200
+2200
+2200
+2200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0186
+ENCODING 390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+0100
+0100
+0100
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0187
+ENCODING 391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0180
+3E00
+4200
+4000
+4000
+4000
+4000
+4000
+4000
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0188
+ENCODING 392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0180
+0200
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0189
+ENCODING 393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4100
+E100
+4100
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni018A
+ENCODING 394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+9100
+9100
+1100
+1100
+1100
+1100
+1100
+1100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni018B
+ENCODING 395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+0200
+0200
+0200
+3E00
+4200
+4200
+4200
+4200
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni018C
+ENCODING 396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0200
+0200
+0200
+1E00
+2200
+2200
+2200
+2200
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni018D
+ENCODING 397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0200
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni018E
+ENCODING 398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0100
+0100
+1F00
+0100
+0100
+0100
+0100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni018F
+ENCODING 399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+0100
+0100
+7F00
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0190
+ENCODING 400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+3800
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0191
+ENCODING 401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+2000
+2000
+3800
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+C000
+0000
+ENDCHAR
+
+STARTCHAR florin
+ENCODING 402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1100
+1000
+1000
+7C00
+1000
+1000
+1000
+1000
+1000
+6000
+0000
+ENDCHAR
+
+STARTCHAR uni0193
+ENCODING 403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0300
+0200
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0194
+ENCODING 404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0195
+ENCODING 405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5000
+6900
+4900
+4900
+4900
+4900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0196
+ENCODING 406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0197
+ENCODING 407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+3E00
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0198
+ENCODING 408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4500
+4900
+5000
+6000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0199
+ENCODING 409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni019A
+ENCODING 410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+3E00
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni019B
+ENCODING 411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+3000
+3000
+4800
+0800
+1400
+2200
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni019C
+ENCODING 412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni019D
+ENCODING 413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+4000
+8000
+0000
+ENDCHAR
+
+STARTCHAR uni019E
+ENCODING 414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni019F
+ENCODING 415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ohorn
+ENCODING 416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ohorn
+ENCODING 417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01A2
+ENCODING 418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3A00
+4500
+4500
+4500
+4500
+4500
+4500
+4500
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01A3
+ENCODING 419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3A00
+4500
+4500
+4500
+4500
+4500
+3900
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni01A4
+ENCODING 420
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+9100
+9100
+1100
+1E00
+1000
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01A5
+ENCODING 421
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni01A6
+ENCODING 422
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+2000
+3E00
+2100
+2100
+2200
+3C00
+2200
+2200
+7200
+0200
+0180
+0000
+ENDCHAR
+
+STARTCHAR uni01A7
+ENCODING 423
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+0100
+0E00
+3000
+4000
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01A8
+ENCODING 424
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+3E00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01A9
+ENCODING 425
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+2000
+1000
+0800
+0800
+1000
+2000
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01AA
+ENCODING 426
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+4800
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni01AB
+ENCODING 427
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1200
+0C00
+0200
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni01AC
+ENCODING 428
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4800
+4800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01AD
+ENCODING 429
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01AE
+ENCODING 430
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0600
+0000
+ENDCHAR
+
+STARTCHAR Uhorn
+ENCODING 431
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uhorn
+ENCODING 432
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B1
+ENCODING 433
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+2200
+2200
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B2
+ENCODING 434
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4400
+4200
+4100
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B3
+ENCODING 435
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+4100
+A200
+9400
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B4
+ENCODING 436
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0180
+0200
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni01B5
+ENCODING 437
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+3E00
+1000
+2000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B6
+ENCODING 438
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+3E00
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B7
+ENCODING 439
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0200
+0400
+0800
+1C00
+0200
+0100
+0100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B8
+ENCODING 440
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2000
+1000
+0800
+1C00
+2000
+4000
+4000
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01B9
+ENCODING 441
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+2000
+1000
+0800
+1C00
+2000
+4000
+4000
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni01BA
+ENCODING 442
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+0400
+0800
+1000
+3800
+0400
+0400
+1800
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni01BB
+ENCODING 443
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+0100
+0200
+3E00
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01BC
+ENCODING 444
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4000
+5E00
+6100
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01BD
+ENCODING 445
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+2000
+2000
+2C00
+3200
+0200
+0200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01BE
+ENCODING 446
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+3E00
+0800
+0800
+0400
+0200
+0200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01BF
+ENCODING 447
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+2E00
+3100
+2100
+2200
+2400
+3800
+2000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uni01C0
+ENCODING 448
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C1
+ENCODING 449
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C2
+ENCODING 450
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+3E00
+0800
+0800
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C3
+ENCODING 451
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C4
+ENCODING 452
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0500
+0200
+0000
+F780
+4880
+4900
+4900
+4A00
+4A00
+4C00
+F780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C5
+ENCODING 453
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F280
+4900
+4800
+4F80
+4880
+4900
+4900
+4A00
+4A00
+F780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C6
+ENCODING 454
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0A80
+0900
+0800
+6F80
+9880
+8900
+8900
+8A00
+9A00
+6F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C7
+ENCODING 455
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8100
+8100
+8100
+8100
+8100
+8100
+8100
+8100
+8900
+F600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01C8
+ENCODING 456
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4300
+4000
+4000
+4300
+4100
+4100
+4100
+4100
+4100
+7900
+0100
+0900
+0600
+ENDCHAR
+
+STARTCHAR uni01C9
+ENCODING 457
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+2000
+2000
+2300
+2100
+2100
+2100
+2100
+2100
+7100
+0100
+0900
+0600
+ENDCHAR
+
+STARTCHAR uni01CA
+ENCODING 458
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8880
+8880
+8880
+C880
+A880
+A880
+9880
+8880
+8C80
+8B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01CB
+ENCODING 459
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8B00
+8800
+8800
+CB00
+A900
+A900
+9900
+8900
+8900
+8900
+0100
+0900
+0600
+ENDCHAR
+
+STARTCHAR uni01CC
+ENCODING 460
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0300
+0000
+0000
+5900
+6500
+4500
+4500
+4500
+4500
+4500
+0100
+0900
+0600
+ENDCHAR
+
+STARTCHAR uni01CD
+ENCODING 461
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01CE
+ENCODING 462
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01CF
+ENCODING 463
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D0
+ENCODING 464
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D1
+ENCODING 465
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D2
+ENCODING 466
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D3
+ENCODING 467
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D4
+ENCODING 468
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D5
+ENCODING 469
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3600
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D6
+ENCODING 470
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7E00
+0000
+6600
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D7
+ENCODING 471
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+3600
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D8
+ENCODING 472
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+6600
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01D9
+ENCODING 473
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+0800
+0000
+3600
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DA
+ENCODING 474
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2400
+1800
+0000
+6600
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DB
+ENCODING 475
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+0000
+6300
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DC
+ENCODING 476
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0000
+6600
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DD
+ENCODING 477
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DE
+ENCODING 478
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+0000
+3600
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01DF
+ENCODING 479
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3600
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E0
+ENCODING 480
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+0000
+1800
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E1
+ENCODING 481
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+0C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E2
+ENCODING 482
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3F00
+4800
+4800
+4800
+7E00
+4800
+4800
+4800
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E3
+ENCODING 483
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3600
+4900
+0900
+3E00
+4800
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E4
+ENCODING 484
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4700
+4100
+4F80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E5
+ENCODING 485
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4200
+4200
+4200
+4200
+4200
+3E00
+0200
+FF80
+3C00
+ENDCHAR
+
+STARTCHAR Gcaron
+ENCODING 486
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gcaron
+ENCODING 487
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni01E8
+ENCODING 488
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+4100
+4200
+4400
+7800
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01E9
+ENCODING 489
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+4800
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01EA
+ENCODING 490
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni01EB
+ENCODING 491
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni01EC
+ENCODING 492
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni01ED
+ENCODING 493
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni01EE
+ENCODING 494
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+7F00
+0200
+0400
+0800
+1C00
+0200
+0100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01EF
+ENCODING 495
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3F00
+0200
+0400
+0800
+1C00
+0200
+0100
+0100
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni01F0
+ENCODING 496
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+0A00
+0400
+0000
+0E00
+0200
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni01F1
+ENCODING 497
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F780
+4880
+4880
+4900
+4900
+4A00
+4A00
+4C00
+4C00
+F780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F2
+ENCODING 498
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F000
+4800
+4800
+4F80
+4880
+4900
+4900
+4A00
+4A00
+F780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F3
+ENCODING 499
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+6F80
+9880
+8900
+8900
+8A00
+9A00
+6F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F4
+ENCODING 500
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F5
+ENCODING 501
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni01F6
+ENCODING 502
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+4800
+4800
+4900
+7900
+4900
+4900
+4900
+4900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F7
+ENCODING 503
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4600
+5800
+6000
+4000
+4000
+4000
+4000
+0000
+ENDCHAR
+
+STARTCHAR uni01F8
+ENCODING 504
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni01F9
+ENCODING 505
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aringacute
+ENCODING 506
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+1C00
+2200
+1C00
+1400
+2200
+4100
+7F00
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aringacute
+ENCODING 507
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+0C00
+1200
+0C00
+3E00
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR AEacute
+ENCODING 508
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3F00
+4800
+4800
+7E00
+4800
+4800
+4800
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aeacute
+ENCODING 509
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3600
+4900
+0900
+3E00
+4800
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Oslashacute
+ENCODING 510
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0100
+3E00
+4300
+4500
+4900
+4900
+5100
+6100
+3E00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oslashacute
+ENCODING 511
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0100
+3E00
+4500
+4500
+4900
+5100
+5100
+3E00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0200
+ENCODING 512
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0201
+ENCODING 513
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+1200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0202
+ENCODING 514
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0203
+ENCODING 515
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0204
+ENCODING 516
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0205
+ENCODING 517
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+1200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0206
+ENCODING 518
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0207
+ENCODING 519
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0208
+ENCODING 520
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0209
+ENCODING 521
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4800
+2400
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020A
+ENCODING 522
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020B
+ENCODING 523
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4400
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020C
+ENCODING 524
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020D
+ENCODING 525
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+1200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020E
+ENCODING 526
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni020F
+ENCODING 527
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0210
+ENCODING 528
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+7E00
+4100
+4100
+4100
+7E00
+4200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0211
+ENCODING 529
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+1200
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0212
+ENCODING 530
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+7E00
+4100
+4100
+4100
+7E00
+4200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0213
+ENCODING 531
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0214
+ENCODING 532
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0215
+ENCODING 533
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+2400
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0216
+ENCODING 534
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0217
+ENCODING 535
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Scommaaccent
+ENCODING 536
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4000
+3800
+0600
+0100
+4100
+4100
+3E00
+0C00
+0400
+0800
+ENDCHAR
+
+STARTCHAR scommaaccent
+ENCODING 537
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0C00
+0400
+0800
+ENDCHAR
+
+STARTCHAR Tcommaaccent
+ENCODING 538
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0C00
+0400
+0800
+ENDCHAR
+
+STARTCHAR tcommaaccent
+ENCODING 539
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0C00
+0400
+0800
+ENDCHAR
+
+STARTCHAR uni021C
+ENCODING 540
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5E00
+6100
+0100
+0200
+0C00
+3200
+0100
+0100
+0600
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni021D
+ENCODING 541
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2E00
+3100
+0100
+0200
+0C00
+3200
+0100
+0100
+0600
+3800
+ENDCHAR
+
+STARTCHAR uni021E
+ENCODING 542
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni021F
+ENCODING 543
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+4800
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0222
+ENCODING 546
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+4100
+4100
+4100
+3E00
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0223
+ENCODING 547
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1200
+2100
+2100
+2100
+1E00
+2100
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0224
+ENCODING 548
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+7F00
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni0225
+ENCODING 549
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni0226
+ENCODING 550
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0000
+1C00
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0227
+ENCODING 551
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0228
+ENCODING 552
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0800
+2400
+1800
+ENDCHAR
+
+STARTCHAR uni0229
+ENCODING 553
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0800
+2400
+1800
+ENDCHAR
+
+STARTCHAR uni022A
+ENCODING 554
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+0000
+1400
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni022B
+ENCODING 555
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7E00
+0000
+2400
+0000
+3C00
+4200
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni022C
+ENCODING 556
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+1A00
+2C00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni022D
+ENCODING 557
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+7E00
+0000
+1400
+2800
+0000
+3C00
+4200
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni022E
+ENCODING 558
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni022F
+ENCODING 559
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0230
+ENCODING 560
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+0000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0231
+ENCODING 561
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0232
+ENCODING 562
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0233
+ENCODING 563
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3C00
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni0250
+ENCODING 592
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+7E00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0251
+ENCODING 593
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0252
+ENCODING 594
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0253
+ENCODING 595
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4400
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0254
+ENCODING 596
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0255
+ENCODING 597
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4600
+4900
+3E00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0256
+ENCODING 598
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+3A00
+4600
+4200
+4200
+4200
+4600
+3A00
+0180
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0257
+ENCODING 599
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0180
+0200
+0200
+3A00
+4600
+4200
+4200
+4200
+4600
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0258
+ENCODING 600
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+0100
+0100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0259
+ENCODING 601
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025A
+ENCODING 602
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+0600
+0500
+7C00
+4400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025B
+ENCODING 603
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025C
+ENCODING 604
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+1E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025D
+ENCODING 605
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3A00
+4500
+0400
+3800
+0400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025E
+ENCODING 606
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+5E00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni025F
+ENCODING 607
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0400
+0400
+0400
+0400
+1F00
+0400
+0400
+4400
+4400
+3800
+ENDCHAR
+
+STARTCHAR uni0260
+ENCODING 608
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0200
+0200
+3E00
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni0261
+ENCODING 609
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni0262
+ENCODING 610
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0263
+ENCODING 611
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+1400
+1400
+0800
+0800
+1400
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni0264
+ENCODING 612
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+5500
+1400
+0800
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0265
+ENCODING 613
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni0266
+ENCODING 614
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0267
+ENCODING 615
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni0268
+ENCODING 616
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+3800
+0800
+0800
+1C00
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0269
+ENCODING 617
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+0800
+0800
+0800
+0800
+0A00
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni026A
+ENCODING 618
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni026B
+ENCODING 619
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+1A00
+2C00
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni026C
+ENCODING 620
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+1800
+2800
+1E00
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni026D
+ENCODING 621
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni026E
+ENCODING 622
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+2000
+2000
+2F00
+2100
+2200
+2600
+2100
+2100
+7100
+0E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni026F
+ENCODING 623
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0270
+ENCODING 624
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3700
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0271
+ENCODING 625
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni0272
+ENCODING 626
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+4000
+8000
+0000
+ENDCHAR
+
+STARTCHAR uni0273
+ENCODING 627
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+0280
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0274
+ENCODING 628
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0275
+ENCODING 629
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0276
+ENCODING 630
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4800
+4800
+4E00
+4800
+4800
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0277
+ENCODING 631
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3E00
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0278
+ENCODING 632
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+3E00
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni0279
+ENCODING 633
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0200
+0200
+0200
+0200
+4200
+4600
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni027A
+ENCODING 634
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+4200
+4600
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni027B
+ENCODING 635
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0200
+0200
+0200
+0200
+4200
+4600
+3A00
+0200
+0180
+0000
+ENDCHAR
+
+STARTCHAR uni027C
+ENCODING 636
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+ENDCHAR
+
+STARTCHAR uni027D
+ENCODING 637
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+2400
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni027E
+ENCODING 638
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+1100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni027F
+ENCODING 639
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0280
+ENCODING 640
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+4100
+4100
+7E00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0281
+ENCODING 641
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7E00
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0282
+ENCODING 642
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+7E00
+4000
+3800
+0000
+ENDCHAR
+
+STARTCHAR uni0283
+ENCODING 643
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0900
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR uni0284
+ENCODING 644
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0300
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0400
+0400
+4400
+4400
+3800
+ENDCHAR
+
+STARTCHAR uni0285
+ENCODING 645
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+0800
+0800
+0800
+0800
+0800
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni0286
+ENCODING 646
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0900
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3800
+4C00
+3200
+0000
+ENDCHAR
+
+STARTCHAR uni0287
+ENCODING 647
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+4400
+0400
+0400
+0400
+0400
+3F00
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni0288
+ENCODING 648
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni0289
+ENCODING 649
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+2200
+2200
+7F00
+2200
+2200
+1D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028A
+ENCODING 650
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7700
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028B
+ENCODING 651
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4800
+4400
+4200
+4200
+4200
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028C
+ENCODING 652
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+1400
+2200
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028D
+ENCODING 653
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+5500
+4900
+4900
+4900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028E
+ENCODING 654
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0900
+0800
+1000
+1000
+2800
+2400
+2400
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni028F
+ENCODING 655
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0290
+ENCODING 656
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7E00
+0400
+0300
+0000
+ENDCHAR
+
+STARTCHAR uni0291
+ENCODING 657
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1200
+2500
+7E00
+0800
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni0292
+ENCODING 658
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+0400
+0800
+1000
+3800
+0400
+0200
+0200
+4400
+3800
+ENDCHAR
+
+STARTCHAR uni0293
+ENCODING 659
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+0200
+0400
+0800
+1C00
+0200
+1100
+2D00
+2200
+1D00
+ENDCHAR
+
+STARTCHAR uni0294
+ENCODING 660
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+0200
+0200
+0C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0295
+ENCODING 661
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+2000
+2000
+1800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0296
+ENCODING 662
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0C00
+0200
+0200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0297
+ENCODING 663
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni0298
+ENCODING 664
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4900
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0299
+ENCODING 665
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+2100
+2100
+3E00
+2100
+2100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni029A
+ENCODING 666
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4100
+3900
+4100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni029B
+ENCODING 667
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0200
+3E00
+4100
+4000
+4700
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni029C
+ENCODING 668
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni029D
+ENCODING 669
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0000
+0000
+1C00
+0400
+0400
+0400
+0400
+0400
+3C00
+4600
+4500
+3800
+ENDCHAR
+
+STARTCHAR uni029E
+ENCODING 670
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+3100
+0D00
+0300
+0D00
+3100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni029F
+ENCODING 671
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A0
+ENCODING 672
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0180
+0200
+0200
+3A00
+4600
+4200
+4200
+4200
+4600
+3A00
+0200
+0200
+0200
+ENDCHAR
+
+STARTCHAR uni02A1
+ENCODING 673
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+0200
+0200
+0C00
+0800
+3E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A2
+ENCODING 674
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+2000
+2000
+1800
+0800
+3E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A3
+ENCODING 675
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+2F80
+5880
+4900
+4A00
+4C00
+5C00
+2F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A4
+ENCODING 676
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1000
+5F00
+B100
+9200
+9600
+9100
+B100
+5100
+0900
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni02A5
+ENCODING 677
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1000
+5F00
+B100
+9200
+9400
+9400
+BB00
+5E00
+0800
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni02A6
+ENCODING 678
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+7700
+2800
+2800
+2600
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A7
+ENCODING 679
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+2500
+2400
+7400
+2400
+2400
+2400
+2400
+2400
+1400
+0400
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni02A8
+ENCODING 680
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+7700
+2800
+2800
+2800
+2A00
+2D00
+1600
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02A9
+ENCODING 681
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2000
+2A00
+2D00
+7900
+2900
+2900
+2900
+2900
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni02AA
+ENCODING 682
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+2000
+2000
+2E00
+3100
+3000
+2E00
+2100
+3100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02AB
+ENCODING 683
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+2000
+2000
+3F00
+2100
+2200
+2400
+2800
+3000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02AC
+ENCODING 684
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2A00
+2A00
+1400
+0000
+2A00
+2A00
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02AD
+ENCODING 685
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3E00
+2200
+2200
+0000
+3E00
+2200
+2200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B0
+ENCODING 688
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+4000
+7000
+4800
+4800
+4800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B1
+ENCODING 689
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+4000
+7000
+4800
+4800
+4800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B2
+ENCODING 690
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0000
+1000
+1000
+1000
+5000
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B3
+ENCODING 691
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5000
+6800
+4000
+4000
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B4
+ENCODING 692
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+5800
+2800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B5
+ENCODING 693
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+5800
+2800
+0A00
+0400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B6
+ENCODING 694
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+5000
+7000
+4800
+4800
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B7
+ENCODING 695
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5400
+5400
+5400
+2800
+2800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B8
+ENCODING 696
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+4800
+4800
+3800
+0800
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02B9
+ENCODING 697
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02BA
+ENCODING 698
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+1200
+2400
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02BB
+ENCODING 699
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0800
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57929
+ENCODING 700
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii64937
+ENCODING 701
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02BE
+ENCODING 702
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0400
+0400
+0400
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02BF
+ENCODING 703
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2000
+2000
+2000
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C0
+ENCODING 704
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+2800
+0800
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C1
+ENCODING 705
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+2800
+2000
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C2
+ENCODING 706
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0800
+1000
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C3
+ENCODING 707
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0800
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C4
+ENCODING 708
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+2200
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C5
+ENCODING 709
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR circumflex
+ENCODING 710
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR caron
+ENCODING 711
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02C8
+ENCODING 712
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR macron
+ENCODING 713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02CA
+ENCODING 714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02CB
+ENCODING 715
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02CC
+ENCODING 716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni02CD
+ENCODING 717
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni02CE
+ENCODING 718
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+0800
+0400
+ENDCHAR
+
+STARTCHAR uni02CF
+ENCODING 719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0400
+0800
+1000
+ENDCHAR
+
+STARTCHAR uni02D0
+ENCODING 720
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+0800
+0000
+0000
+0000
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D1
+ENCODING 721
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D2
+ENCODING 722
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+0400
+0400
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D3
+ENCODING 723
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1000
+1000
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D4
+ENCODING 724
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D5
+ENCODING 725
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D6
+ENCODING 726
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+3E00
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02D7
+ENCODING 727
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+2100
+3F00
+2100
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR breve
+ENCODING 728
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dotaccent
+ENCODING 729
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ring
+ENCODING 730
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+2400
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ogonek
+ENCODING 731
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+2000
+1C00
+ENDCHAR
+
+STARTCHAR tilde
+ENCODING 732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3900
+4E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hungarumlaut
+ENCODING 733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+2200
+4400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02DE
+ENCODING 734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+3200
+5200
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02DF
+ENCODING 735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1400
+0800
+1400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E0
+ENCODING 736
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+4800
+3000
+3000
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E1
+ENCODING 737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+1000
+1000
+1000
+1000
+3800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E2
+ENCODING 738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3800
+4000
+3000
+0800
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E3
+ENCODING 739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+4800
+3000
+4800
+4800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E4
+ENCODING 740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4400
+4000
+3000
+1000
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02E5
+ENCODING 741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni02E6
+ENCODING 742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0400
+0400
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni02E7
+ENCODING 743
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni02E8
+ENCODING 744
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+3C00
+0400
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni02E9
+ENCODING 745
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+3C00
+0000
+ENDCHAR
+
+STARTCHAR uni02EA
+ENCODING 746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3C00
+0400
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni02EB
+ENCODING 747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+1000
+1E00
+1000
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni02EC
+ENCODING 748
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+1400
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni02ED
+ENCODING 749
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3C00
+0000
+3C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni02EE
+ENCODING 750
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+3600
+1200
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gravecomb
+ENCODING 768
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR acutecomb
+ENCODING 769
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0302
+ENCODING 770
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR tildecomb
+ENCODING 771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3900
+4E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0304
+ENCODING 772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0305
+ENCODING 773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0306
+ENCODING 774
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0307
+ENCODING 775
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0308
+ENCODING 776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hookabovecomb
+ENCODING 777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030A
+ENCODING 778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+1200
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030B
+ENCODING 779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030C
+ENCODING 780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030D
+ENCODING 781
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030E
+ENCODING 782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+2200
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni030F
+ENCODING 783
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0310
+ENCODING 784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0311
+ENCODING 785
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0312
+ENCODING 786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1000
+1800
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0313
+ENCODING 787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0314
+ENCODING 788
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0315
+ENCODING 789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0300
+0100
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0316
+ENCODING 790
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0400
+ENDCHAR
+
+STARTCHAR uni0317
+ENCODING 791
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1000
+ENDCHAR
+
+STARTCHAR uni0318
+ENCODING 792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+1E00
+0200
+ENDCHAR
+
+STARTCHAR uni0319
+ENCODING 793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+3C00
+2000
+ENDCHAR
+
+STARTCHAR uni031A
+ENCODING 794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0380
+0080
+0080
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni031B
+ENCODING 795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0080
+0080
+0100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni031C
+ENCODING 796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1000
+0800
+ENDCHAR
+
+STARTCHAR uni031D
+ENCODING 797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+1C00
+ENDCHAR
+
+STARTCHAR uni031E
+ENCODING 798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni031F
+ENCODING 799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1C00
+0800
+ENDCHAR
+
+STARTCHAR uni0320
+ENCODING 800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+ENDCHAR
+
+STARTCHAR uni0321
+ENCODING 801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0100
+0900
+0600
+ENDCHAR
+
+STARTCHAR uni0322
+ENCODING 802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0100
+0100
+0080
+ENDCHAR
+
+STARTCHAR dotbelowcomb
+ENCODING 803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni0324
+ENCODING 804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+2200
+ENDCHAR
+
+STARTCHAR uni0325
+ENCODING 805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni0326
+ENCODING 806
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0400
+0800
+ENDCHAR
+
+STARTCHAR uni0327
+ENCODING 807
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR uni0328
+ENCODING 808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni0329
+ENCODING 809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni032A
+ENCODING 810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+2200
+ENDCHAR
+
+STARTCHAR uni032B
+ENCODING 811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2A00
+2A00
+1400
+ENDCHAR
+
+STARTCHAR uni032C
+ENCODING 812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+1400
+0800
+ENDCHAR
+
+STARTCHAR uni032D
+ENCODING 813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni032E
+ENCODING 814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni032F
+ENCODING 815
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+ENDCHAR
+
+STARTCHAR uni0330
+ENCODING 816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3900
+4E00
+ENDCHAR
+
+STARTCHAR uni0331
+ENCODING 817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+ENDCHAR
+
+STARTCHAR uni0332
+ENCODING 818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+ENDCHAR
+
+STARTCHAR uni0333
+ENCODING 819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+FF80
+ENDCHAR
+
+STARTCHAR uni0334
+ENCODING 820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1A00
+2C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0335
+ENCODING 821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0336
+ENCODING 822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0337
+ENCODING 823
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0338
+ENCODING 824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+0100
+0200
+0200
+0400
+0400
+0800
+1000
+1000
+2000
+2000
+4000
+4000
+0000
+ENDCHAR
+
+STARTCHAR uni0339
+ENCODING 825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0400
+0800
+ENDCHAR
+
+STARTCHAR uni033A
+ENCODING 826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+3E00
+ENDCHAR
+
+STARTCHAR uni033B
+ENCODING 827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+1400
+1C00
+ENDCHAR
+
+STARTCHAR uni033C
+ENCODING 828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+ENDCHAR
+
+STARTCHAR uni033D
+ENCODING 829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3600
+0800
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni033E
+ENCODING 830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1000
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni033F
+ENCODING 831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0340
+ENCODING 832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+4000
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0341
+ENCODING 833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0342
+ENCODING 834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1A00
+2C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0343
+ENCODING 835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0344
+ENCODING 836
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0345
+ENCODING 837
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni0346
+ENCODING 838
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0347
+ENCODING 839
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+3E00
+ENDCHAR
+
+STARTCHAR uni0348
+ENCODING 840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR uni0349
+ENCODING 841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+0400
+0400
+ENDCHAR
+
+STARTCHAR uni034A
+ENCODING 842
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+3900
+4E00
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni034B
+ENCODING 843
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+7100
+8E00
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni034C
+ENCODING 844
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3900
+4E00
+0000
+3900
+4E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni034D
+ENCODING 845
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+7F00
+2200
+ENDCHAR
+
+STARTCHAR uni034E
+ENCODING 846
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1C00
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni0360
+ENCODING 864
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1C80
+2700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0361
+ENCODING 865
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1F00
+2080
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0362
+ENCODING 866
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0100
+1F80
+0100
+ENDCHAR
+
+STARTCHAR uni0374
+ENCODING 884
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0375
+ENCODING 885
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0400
+0800
+1000
+ENDCHAR
+
+STARTCHAR uni037A
+ENCODING 890
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni037E
+ENCODING 894
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0C00
+0C00
+0400
+0400
+0800
+ENDCHAR
+
+STARTCHAR tonos
+ENCODING 900
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dieresistonos
+ENCODING 901
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Alphatonos
+ENCODING 902
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+4A00
+9100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR anoteleia
+ENCODING 903
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Epsilontonos
+ENCODING 904
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+5000
+9000
+1000
+1C00
+1000
+1000
+1000
+1000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Etatonos
+ENCODING 905
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iotatonos
+ENCODING 906
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4400
+8400
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Omicrontonos
+ENCODING 908
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2E00
+5100
+9100
+1100
+1100
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Upsilontonos
+ENCODING 910
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+5100
+8A00
+0A00
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Omegatonos
+ENCODING 911
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2E00
+5100
+9100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR iotadieresistonos
+ENCODING 912
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Alpha
+ENCODING 913
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Beta
+ENCODING 914
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4100
+4100
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Gamma
+ENCODING 915
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Delta
+ENCODING 916
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+1400
+2200
+2200
+2200
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Epsilon
+ENCODING 917
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Zeta
+ENCODING 918
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eta
+ENCODING 919
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Theta
+ENCODING 920
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iota
+ENCODING 921
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Kappa
+ENCODING 922
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Lambda
+ENCODING 923
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+1400
+2200
+2200
+2200
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Mu
+ENCODING 924
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Nu
+ENCODING 925
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Xi
+ENCODING 926
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Omicron
+ENCODING 927
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Pi
+ENCODING 928
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Rho
+ENCODING 929
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Sigma
+ENCODING 931
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+2000
+1000
+0800
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Tau
+ENCODING 932
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Upsilon
+ENCODING 933
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Phi
+ENCODING 934
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+3E00
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Chi
+ENCODING 935
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Psi
+ENCODING 936
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Omega
+ENCODING 937
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3600
+1400
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iotadieresis
+ENCODING 938
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Upsilondieresis
+ENCODING 939
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+4100
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR alphatonos
+ENCODING 940
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR epsilontonos
+ENCODING 941
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR etatonos
+ENCODING 942
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR iotatonos
+ENCODING 943
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR upsilondieresistonos
+ENCODING 944
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR alpha
+ENCODING 945
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR beta
+ENCODING 946
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4400
+4400
+4400
+7E00
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR gamma
+ENCODING 947
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR delta
+ENCODING 948
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+2000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR epsilon
+ENCODING 949
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zeta
+ENCODING 950
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+1000
+2000
+4000
+4000
+4000
+4000
+4000
+3E00
+0100
+0100
+0600
+ENDCHAR
+
+STARTCHAR eta
+ENCODING 951
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR theta
+ENCODING 952
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+4200
+4200
+7E00
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR iota
+ENCODING 953
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR kappa
+ENCODING 954
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4400
+4800
+5000
+6800
+4400
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lambda
+ENCODING 955
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+0200
+3A00
+4600
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR mu
+ENCODING 956
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+6300
+5D00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR nu
+ENCODING 957
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR xi
+ENCODING 958
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+1000
+2000
+2000
+1C00
+2000
+4000
+4000
+4000
+3E00
+0100
+0100
+0600
+ENDCHAR
+
+STARTCHAR omicron
+ENCODING 959
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR pi
+ENCODING 960
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+2200
+2200
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR rho
+ENCODING 961
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR sigma1
+ENCODING 962
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+3E00
+0100
+0100
+0E00
+ENDCHAR
+
+STARTCHAR sigma
+ENCODING 963
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4400
+4200
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR tau
+ENCODING 964
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR upsilon
+ENCODING 965
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR phi
+ENCODING 966
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2600
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR chi
+ENCODING 967
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+4100
+ENDCHAR
+
+STARTCHAR psi
+ENCODING 968
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR omega
+ENCODING 969
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR iotadieresis
+ENCODING 970
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+0000
+0800
+0800
+0800
+0800
+0800
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR upsilondieresis
+ENCODING 971
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR omicrontonos
+ENCODING 972
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR upsilontonos
+ENCODING 973
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR omegatonos
+ENCODING 974
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03D0
+ENCODING 976
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4200
+4400
+5E00
+6100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR theta1
+ENCODING 977
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+1F00
+0200
+6200
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Upsilon1
+ENCODING 978
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+5500
+1400
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03D3
+ENCODING 979
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4A00
+5500
+8400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03D4
+ENCODING 980
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+4100
+0000
+2200
+5500
+1400
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR phi1
+ENCODING 981
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+3E00
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR omega1
+ENCODING 982
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+2200
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03D7
+ENCODING 983
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+6100
+1200
+1400
+1800
+1400
+2500
+4300
+0100
+0200
+3C00
+ENDCHAR
+
+STARTCHAR uni03DA
+ENCODING 986
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2100
+4000
+4000
+4000
+4000
+4000
+4000
+3E00
+0100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni03DB
+ENCODING 987
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3E00
+4000
+4000
+4000
+4000
+4000
+3E00
+0100
+0100
+0600
+ENDCHAR
+
+STARTCHAR uni03DC
+ENCODING 988
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03DD
+ENCODING 989
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+2000
+2000
+2000
+3C00
+2000
+2000
+2000
+2000
+2000
+ENDCHAR
+
+STARTCHAR uni03DE
+ENCODING 990
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+4000
+4200
+4600
+4A00
+5200
+6200
+4200
+0200
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03DF
+ENCODING 991
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+2000
+2000
+2000
+4000
+7E00
+0200
+0400
+0400
+0400
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni03E0
+ENCODING 992
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+1400
+2200
+2600
+2600
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E1
+ENCODING 993
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+1800
+0400
+0400
+0A00
+1200
+2500
+0900
+1100
+0100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni03E2
+ENCODING 994
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+3700
+0100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E3
+ENCODING 995
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3700
+0100
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni03E4
+ENCODING 996
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4900
+4100
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E5
+ENCODING 997
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+2400
+2400
+2400
+2400
+1C00
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E6
+ENCODING 998
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+2000
+2000
+2000
+3C00
+2200
+2100
+2100
+2100
+7100
+0200
+1C00
+0000
+ENDCHAR
+
+STARTCHAR uni03E7
+ENCODING 999
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+1000
+3E00
+5100
+2100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E8
+ENCODING 1000
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+2100
+0200
+1C00
+2000
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03E9
+ENCODING 1001
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+4200
+4200
+2400
+1800
+3000
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03EA
+ENCODING 1002
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+1400
+0800
+0800
+1400
+1400
+2200
+2200
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03EB
+ENCODING 1003
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6300
+1400
+0800
+0800
+1400
+1400
+2200
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03EC
+ENCODING 1004
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03ED
+ENCODING 1005
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4000
+5E00
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03EE
+ENCODING 1006
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+0800
+7F00
+4900
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03EF
+ENCODING 1007
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0900
+7F00
+4800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03F0
+ENCODING 1008
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6100
+1200
+1400
+1800
+1400
+2400
+4300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03F1
+ENCODING 1009
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+6100
+5E00
+4000
+2000
+1E00
+ENDCHAR
+
+STARTCHAR uni03F2
+ENCODING 1010
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni03F3
+ENCODING 1011
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0000
+0000
+0E00
+0200
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni0400
+ENCODING 1024
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+0400
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10023
+ENCODING 1025
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10051
+ENCODING 1026
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1000
+1000
+1000
+1E00
+1100
+1100
+1100
+1100
+1100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR afii10052
+ENCODING 1027
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10053
+ENCODING 1028
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1E00
+2100
+4000
+4000
+7800
+4000
+4000
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10054
+ENCODING 1029
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4000
+3800
+0600
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10055
+ENCODING 1030
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10056
+ENCODING 1031
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10057
+ENCODING 1032
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0F00
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10058
+ENCODING 1033
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+4800
+4800
+4800
+4E00
+8900
+8900
+8900
+8900
+8E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10059
+ENCODING 1034
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8800
+8800
+8800
+8800
+FE00
+8900
+8900
+8900
+8900
+8E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10060
+ENCODING 1035
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1000
+1000
+1000
+1E00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10061
+ENCODING 1036
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+1000
+0000
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni040D
+ENCODING 1037
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10062
+ENCODING 1038
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10145
+ENCODING 1039
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR afii10017
+ENCODING 1040
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10018
+ENCODING 1041
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4000
+4000
+4000
+7E00
+4100
+4100
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10019
+ENCODING 1042
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4200
+7C00
+4200
+4100
+4100
+4200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10020
+ENCODING 1043
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10021
+ENCODING 1044
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+1200
+1200
+1200
+1200
+2200
+2200
+2200
+2200
+7F00
+4100
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10022
+ENCODING 1045
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10024
+ENCODING 1046
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+2A00
+2A00
+1C00
+2A00
+2A00
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10025
+ENCODING 1047
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+0100
+0100
+0E00
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10026
+ENCODING 1048
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10027
+ENCODING 1049
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10028
+ENCODING 1050
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10029
+ENCODING 1051
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10030
+ENCODING 1052
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10031
+ENCODING 1053
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10032
+ENCODING 1054
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10033
+ENCODING 1055
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10034
+ENCODING 1056
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10035
+ENCODING 1057
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10036
+ENCODING 1058
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10037
+ENCODING 1059
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10038
+ENCODING 1060
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+3E00
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10039
+ENCODING 1061
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10040
+ENCODING 1062
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+7F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR afii10041
+ENCODING 1063
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10042
+ENCODING 1064
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10043
+ENCODING 1065
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+7F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR afii10044
+ENCODING 1066
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+1000
+1000
+1000
+1E00
+1100
+1100
+1100
+1100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10045
+ENCODING 1067
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7900
+4500
+4500
+4500
+4500
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10046
+ENCODING 1068
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+7E00
+4100
+4100
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10047
+ENCODING 1069
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3C00
+4200
+0100
+0100
+0F00
+0100
+0100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10048
+ENCODING 1070
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4E00
+5100
+5100
+5100
+7100
+5100
+5100
+5100
+5100
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10049
+ENCODING 1071
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4100
+4100
+4100
+3F00
+0900
+1100
+2100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10065
+ENCODING 1072
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10066
+ENCODING 1073
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+3E00
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10067
+ENCODING 1074
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+4100
+4100
+7E00
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10068
+ENCODING 1075
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10069
+ENCODING 1076
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E00
+1200
+1200
+1200
+2200
+2200
+7F00
+4100
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10070
+ENCODING 1077
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10072
+ENCODING 1078
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+2A00
+1C00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10073
+ENCODING 1079
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10074
+ENCODING 1080
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10075
+ENCODING 1081
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10076
+ENCODING 1082
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+4400
+7800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10077
+ENCODING 1083
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1F00
+1100
+1100
+1100
+1100
+1100
+6100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10078
+ENCODING 1084
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+6300
+5500
+4900
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10079
+ENCODING 1085
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10080
+ENCODING 1086
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10081
+ENCODING 1087
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10082
+ENCODING 1088
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR afii10083
+ENCODING 1089
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10084
+ENCODING 1090
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10085
+ENCODING 1091
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR afii10086
+ENCODING 1092
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+3E00
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR afii10087
+ENCODING 1093
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10088
+ENCODING 1094
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+7F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR afii10089
+ENCODING 1095
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10090
+ENCODING 1096
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10091
+ENCODING 1097
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+7F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR afii10092
+ENCODING 1098
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7000
+1000
+1000
+1E00
+1100
+1100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10093
+ENCODING 1099
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7900
+4500
+4500
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10094
+ENCODING 1100
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+7E00
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10095
+ENCODING 1101
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0F00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10096
+ENCODING 1102
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+5100
+5100
+7100
+5100
+5100
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10097
+ENCODING 1103
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4100
+4100
+3F00
+1100
+2100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0450
+ENCODING 1104
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10071
+ENCODING 1105
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10099
+ENCODING 1106
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+7C00
+2000
+2E00
+3100
+2100
+2100
+2100
+2100
+2100
+0100
+0E00
+0000
+ENDCHAR
+
+STARTCHAR afii10100
+ENCODING 1107
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10101
+ENCODING 1108
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+7800
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10102
+ENCODING 1109
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10103
+ENCODING 1110
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10104
+ENCODING 1111
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10105
+ENCODING 1112
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0600
+0000
+0E00
+0200
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR afii10106
+ENCODING 1113
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7800
+4800
+4800
+4E00
+4900
+4900
+8E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10107
+ENCODING 1114
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4800
+4800
+4800
+7E00
+4900
+4900
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10108
+ENCODING 1115
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+7C00
+2000
+2E00
+3100
+2100
+2100
+2100
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10109
+ENCODING 1116
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0400
+0800
+4100
+4200
+4400
+7800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni045D
+ENCODING 1117
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1000
+0800
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10110
+ENCODING 1118
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR afii10193
+ENCODING 1119
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni0460
+ENCODING 1120
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0461
+ENCODING 1121
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10146
+ENCODING 1122
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+7C00
+1000
+1000
+1E00
+1100
+1100
+1100
+1100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10194
+ENCODING 1123
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1000
+7C00
+1000
+1000
+1E00
+1100
+1100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0464
+ENCODING 1124
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4E00
+5100
+5000
+5000
+7C00
+5000
+5000
+5000
+5100
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0465
+ENCODING 1125
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+5100
+5000
+7C00
+5000
+5100
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0466
+ENCODING 1126
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+1400
+2200
+3E00
+2A00
+4900
+4900
+5D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0467
+ENCODING 1127
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+1400
+2200
+3E00
+2A00
+5D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0468
+ENCODING 1128
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4400
+4A00
+4A00
+4A00
+5100
+7F00
+5500
+5500
+5500
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0469
+ENCODING 1129
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4400
+4A00
+4A00
+5100
+7F00
+5500
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni046A
+ENCODING 1130
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2200
+1400
+1400
+0800
+3E00
+4900
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni046B
+ENCODING 1131
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+2200
+1400
+0800
+3E00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni046C
+ENCODING 1132
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5F00
+5100
+4A00
+4A00
+7C00
+4E00
+5500
+5500
+5500
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni046D
+ENCODING 1133
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5F00
+5100
+4A00
+7C00
+4E00
+5500
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni046E
+ENCODING 1134
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+1400
+0800
+0000
+3E00
+4100
+0100
+0100
+0E00
+0100
+0100
+3E00
+4000
+4000
+3E00
+ENDCHAR
+
+STARTCHAR uni046F
+ENCODING 1135
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1400
+0800
+0000
+3E00
+4100
+0100
+0E00
+0100
+0100
+3E00
+4000
+4000
+3E00
+ENDCHAR
+
+STARTCHAR uni0470
+ENCODING 1136
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0471
+ENCODING 1137
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR afii10147
+ENCODING 1138
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10195
+ENCODING 1139
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10148
+ENCODING 1140
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4200
+2400
+2400
+2400
+1400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10196
+ENCODING 1141
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+2400
+2400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0476
+ENCODING 1142
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+1200
+0000
+4100
+4200
+2200
+2400
+2400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0477
+ENCODING 1143
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+1200
+0000
+4100
+4200
+2400
+2400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0478
+ENCODING 1144
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+5000
+5000
+5500
+5500
+5500
+5500
+5500
+5500
+2300
+0100
+0500
+0200
+ENDCHAR
+
+STARTCHAR uni0479
+ENCODING 1145
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2500
+5500
+5500
+5500
+5500
+5500
+2300
+0100
+0500
+0200
+ENDCHAR
+
+STARTCHAR uni047A
+ENCODING 1146
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+3E00
+4900
+4100
+4100
+4100
+4100
+4100
+4100
+4900
+3E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni047B
+ENCODING 1147
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+3E00
+4900
+4100
+4100
+4100
+4900
+3E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni047C
+ENCODING 1148
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+3E00
+2000
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni047D
+ENCODING 1149
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+3E00
+2000
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni047E
+ENCODING 1150
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+2A00
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni047F
+ENCODING 1151
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+2A00
+0000
+3600
+4100
+4100
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0480
+ENCODING 1152
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+3000
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni0481
+ENCODING 1153
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+3000
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni0482
+ENCODING 1154
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0200
+1C00
+0700
+0800
+0800
+7000
+1C00
+2000
+2000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0483
+ENCODING 1155
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+3E00
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0484
+ENCODING 1156
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3800
+4700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0485
+ENCODING 1157
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3C00
+7300
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0486
+ENCODING 1158
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1E00
+6700
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0488
+ENCODING 1160
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+5200
+0500
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+5200
+0500
+ENDCHAR
+
+STARTCHAR uni0489
+ENCODING 1161
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+4200
+6400
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+4200
+6400
+0600
+ENDCHAR
+
+STARTCHAR uni048C
+ENCODING 1164
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+F800
+4000
+4000
+7E00
+4100
+4100
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni048D
+ENCODING 1165
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+F800
+4000
+7E00
+4100
+4100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni048E
+ENCODING 1166
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4500
+7E00
+4100
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni048F
+ENCODING 1167
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4900
+6500
+5E00
+4200
+4000
+4000
+ENDCHAR
+
+STARTCHAR afii10050
+ENCODING 1168
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10098
+ENCODING 1169
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+7F00
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0492
+ENCODING 1170
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+2100
+2000
+2000
+7000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0493
+ENCODING 1171
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+2100
+2000
+7000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0494
+ENCODING 1172
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1000
+1000
+1000
+1E00
+1100
+1100
+1100
+1100
+1100
+0100
+1E00
+0000
+ENDCHAR
+
+STARTCHAR uni0495
+ENCODING 1173
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+1000
+1000
+1E00
+1100
+1100
+1100
+0100
+1E00
+0000
+ENDCHAR
+
+STARTCHAR uni0496
+ENCODING 1174
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+2A00
+2A00
+1C00
+2A00
+2A00
+4A00
+4A00
+4B00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0497
+ENCODING 1175
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+2A00
+1C00
+2A00
+4A00
+4B00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0498
+ENCODING 1176
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+0100
+0100
+0E00
+0100
+0100
+0100
+4100
+3E00
+0800
+0400
+1800
+ENDCHAR
+
+STARTCHAR uni0499
+ENCODING 1177
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0E00
+0100
+4100
+3E00
+0800
+0400
+1800
+ENDCHAR
+
+STARTCHAR uni049A
+ENCODING 1178
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni049B
+ENCODING 1179
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+4400
+7800
+4400
+4200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni049C
+ENCODING 1180
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+5200
+5400
+7800
+5400
+5200
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni049D
+ENCODING 1181
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+5400
+7800
+5400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni049E
+ENCODING 1182
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+F200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni049F
+ENCODING 1183
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+7800
+2100
+2200
+2400
+3800
+2400
+2200
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04A0
+ENCODING 1184
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7100
+1100
+1200
+1200
+1C00
+1200
+1200
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04A1
+ENCODING 1185
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7100
+1200
+1400
+1800
+1400
+1200
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04A2
+ENCODING 1186
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4200
+4200
+4200
+7E00
+4200
+4200
+4200
+4200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04A3
+ENCODING 1187
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+7E00
+4200
+4200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04A4
+ENCODING 1188
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4700
+4400
+4400
+4400
+7C00
+4400
+4400
+4400
+4400
+4400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04A5
+ENCODING 1189
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4700
+4400
+4400
+7C00
+4400
+4400
+4400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04A6
+ENCODING 1190
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+4800
+4800
+4800
+4E00
+4900
+4900
+4900
+4900
+4900
+0100
+0E00
+0000
+ENDCHAR
+
+STARTCHAR uni04A7
+ENCODING 1191
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7800
+4800
+4800
+4E00
+4900
+4900
+4900
+0100
+0E00
+0000
+ENDCHAR
+
+STARTCHAR uni04A8
+ENCODING 1192
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4000
+4000
+4E00
+5100
+5100
+5100
+5100
+5100
+3E00
+1000
+0F00
+0000
+ENDCHAR
+
+STARTCHAR uni04A9
+ENCODING 1193
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4000
+4E00
+5100
+5100
+5100
+3E00
+1000
+0F00
+0000
+ENDCHAR
+
+STARTCHAR uni04AA
+ENCODING 1194
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+1000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni04AB
+ENCODING 1195
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+1000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni04AC
+ENCODING 1196
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0C00
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni04AD
+ENCODING 1197
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0C00
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni04AE
+ENCODING 1198
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04AF
+ENCODING 1199
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni04B0
+ENCODING 1200
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04B1
+ENCODING 1201
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni04B2
+ENCODING 1202
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B3
+ENCODING 1203
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B4
+ENCODING 1204
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7D00
+1100
+1100
+1100
+1100
+1100
+1100
+1100
+1100
+1F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B5
+ENCODING 1205
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7D00
+1100
+1100
+1100
+1100
+1100
+1F00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B6
+ENCODING 1206
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+3E00
+0200
+0200
+0200
+0300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B7
+ENCODING 1207
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+3E00
+0200
+0200
+0300
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni04B8
+ENCODING 1208
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4900
+4900
+3F00
+0900
+0900
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04B9
+ENCODING 1209
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4900
+4900
+3F00
+0900
+0900
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04BA
+ENCODING 1210
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04BB
+ENCODING 1211
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+2000
+2C00
+3200
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04BC
+ENCODING 1212
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+5100
+5100
+3F00
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04BD
+ENCODING 1213
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+5100
+5100
+3F00
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04BE
+ENCODING 1214
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+5100
+5100
+3F00
+1000
+1000
+1000
+1100
+0E00
+0800
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04BF
+ENCODING 1215
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+5100
+5100
+3F00
+1000
+1100
+0E00
+0800
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04C0
+ENCODING 1216
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04C1
+ENCODING 1217
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+4900
+4900
+2A00
+1C00
+2A00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04C2
+ENCODING 1218
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+4900
+4900
+2A00
+1C00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04C3
+ENCODING 1219
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04C4
+ENCODING 1220
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4200
+4400
+7800
+4400
+4200
+4100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04C7
+ENCODING 1223
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04C8
+ENCODING 1224
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0100
+0600
+0000
+ENDCHAR
+
+STARTCHAR uni04CB
+ENCODING 1227
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0300
+0200
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni04CC
+ENCODING 1228
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+3F00
+0100
+0100
+0300
+0200
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni04D0
+ENCODING 1232
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D1
+ENCODING 1233
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D2
+ENCODING 1234
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D3
+ENCODING 1235
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D4
+ENCODING 1236
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3700
+4800
+4800
+4800
+4800
+7E00
+4800
+4800
+4800
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D5
+ENCODING 1237
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+0900
+3E00
+4800
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D6
+ENCODING 1238
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+7F00
+2000
+2000
+3C00
+2000
+2000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D7
+ENCODING 1239
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04D8
+ENCODING 1240
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0100
+0100
+0100
+0100
+7F00
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii10846
+ENCODING 1241
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DA
+ENCODING 1242
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+0100
+0100
+7F00
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DB
+ENCODING 1243
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+0100
+0100
+7F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DC
+ENCODING 1244
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4900
+4900
+2A00
+1C00
+2A00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DD
+ENCODING 1245
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4900
+4900
+2A00
+1C00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DE
+ENCODING 1246
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+4100
+0100
+0100
+0E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04DF
+ENCODING 1247
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+0100
+0E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E0
+ENCODING 1248
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0100
+0200
+0400
+0E00
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E1
+ENCODING 1249
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1E00
+0100
+0100
+4100
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni04E2
+ENCODING 1250
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+4100
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E3
+ENCODING 1251
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E4
+ENCODING 1252
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E5
+ENCODING 1253
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+4300
+4500
+4900
+5100
+6100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E6
+ENCODING 1254
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E7
+ENCODING 1255
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E8
+ENCODING 1256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+5100
+6B00
+4500
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04E9
+ENCODING 1257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+5100
+6B00
+4500
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04EA
+ENCODING 1258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+3E00
+4100
+5100
+6B00
+4500
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04EB
+ENCODING 1259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+3E00
+4100
+5100
+6B00
+4500
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04EC
+ENCODING 1260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+0000
+3C00
+4200
+0100
+0100
+0F00
+0100
+0100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04ED
+ENCODING 1261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+0000
+3E00
+4100
+0100
+0F00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04EE
+ENCODING 1262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04EF
+ENCODING 1263
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni04F0
+ENCODING 1264
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04F1
+ENCODING 1265
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni04F2
+ENCODING 1266
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+2400
+0000
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04F3
+ENCODING 1267
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+2400
+0000
+4100
+4100
+4100
+4100
+4100
+4300
+3D00
+0100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni04F4
+ENCODING 1268
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04F5
+ENCODING 1269
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+3F00
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04F8
+ENCODING 1272
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+7900
+4500
+4500
+4500
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni04F9
+ENCODING 1273
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+7900
+4500
+4500
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0531
+ENCODING 1329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8400
+8400
+8400
+8400
+8400
+8400
+8400
+8E00
+8500
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0532
+ENCODING 1330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4000
+4000
+7E00
+4100
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0533
+ENCODING 1331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+8400
+8400
+8400
+8400
+7E00
+0500
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0534
+ENCODING 1332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+8400
+8400
+8400
+0600
+0500
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0535
+ENCODING 1333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+7E00
+4100
+4000
+4000
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0536
+ENCODING 1334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+3E00
+0400
+4800
+7C00
+4300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0537
+ENCODING 1335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+7E00
+4100
+4000
+4000
+4000
+7E00
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0538
+ENCODING 1336
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4000
+4000
+4000
+4000
+4000
+7E00
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0539
+ENCODING 1337
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+8400
+8400
+8400
+9E00
+A500
+A400
+A400
+A400
+9800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni053A
+ENCODING 1338
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+0400
+0400
+7E00
+8500
+8400
+8400
+8400
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni053B
+ENCODING 1339
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni053C
+ENCODING 1340
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7E00
+0100
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni053D
+ENCODING 1341
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+8000
+F100
+9100
+9100
+9100
+9100
+9100
+8E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni053E
+ENCODING 1342
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+C600
+3900
+4400
+8200
+8200
+8200
+8200
+8200
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni053F
+ENCODING 1343
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4100
+4100
+4100
+4300
+3D00
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0540
+ENCODING 1344
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1000
+1800
+0800
+1000
+2000
+4000
+6000
+1800
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0541
+ENCODING 1345
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+0100
+0100
+3E00
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0542
+ENCODING 1346
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+8400
+8400
+8400
+0400
+0400
+0400
+0400
+0400
+0600
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0543
+ENCODING 1347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+C900
+3000
+1000
+2800
+4400
+4400
+8200
+8200
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0544
+ENCODING 1348
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8600
+8500
+8500
+8400
+8400
+8400
+8400
+8400
+8400
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0545
+ENCODING 1349
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+0200
+3C00
+4200
+0100
+0100
+4100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0546
+ENCODING 1350
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E000
+2000
+2000
+2000
+2000
+2000
+2100
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0547
+ENCODING 1351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+1800
+2600
+4000
+4000
+4000
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0548
+ENCODING 1352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0549
+ENCODING 1353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+0100
+0100
+0200
+6400
+1800
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni054A
+ENCODING 1354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+0900
+0900
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni054B
+ENCODING 1355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+4100
+2100
+1100
+0A00
+0C00
+4800
+7C00
+2300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni054C
+ENCODING 1356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+8400
+8400
+8400
+8600
+8500
+8500
+8400
+8400
+8400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni054D
+ENCODING 1357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni054E
+ENCODING 1358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+8400
+8400
+8400
+8400
+7C00
+0400
+0400
+0600
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni054F
+ENCODING 1359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+3E00
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0550
+ENCODING 1360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0551
+ENCODING 1361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+1C00
+6200
+0100
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0552
+ENCODING 1362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+3C00
+2200
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0553
+ENCODING 1363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+4900
+4900
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0554
+ENCODING 1364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2100
+2100
+2100
+2100
+2100
+3E00
+A000
+7C00
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0555
+ENCODING 1365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+8100
+8100
+8100
+8100
+8100
+8100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0556
+ENCODING 1366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4800
+4800
+4800
+3E00
+0900
+0900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0559
+ENCODING 1369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1000
+1000
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055A
+ENCODING 1370
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055B
+ENCODING 1371
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055C
+ENCODING 1372
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+1800
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055D
+ENCODING 1373
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055E
+ENCODING 1374
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2A00
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni055F
+ENCODING 1375
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0561
+ENCODING 1377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0562
+ENCODING 1378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4200
+4200
+4200
+4000
+7E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni0563
+ENCODING 1379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3400
+4C00
+4400
+4400
+4400
+4400
+3F00
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uni0564
+ENCODING 1380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5800
+6400
+4400
+4400
+4400
+4400
+4700
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uni0565
+ENCODING 1381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+7E00
+4000
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0566
+ENCODING 1382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3400
+4C00
+4400
+4400
+4400
+4C00
+3400
+0400
+0400
+0700
+ENDCHAR
+
+STARTCHAR uni0567
+ENCODING 1383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+4000
+3E00
+0100
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni0568
+ENCODING 1384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+4000
+4000
+7E00
+ENDCHAR
+
+STARTCHAR uni0569
+ENCODING 1385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4F00
+5200
+5200
+4C00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni056A
+ENCODING 1386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+0400
+3F00
+4400
+4400
+4400
+4400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni056B
+ENCODING 1387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni056C
+ENCODING 1388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+0E00
+ENDCHAR
+
+STARTCHAR uni056D
+ENCODING 1389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+8000
+8000
+E200
+9200
+9200
+9200
+9200
+8D00
+8000
+8000
+8000
+ENDCHAR
+
+STARTCHAR uni056E
+ENCODING 1390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+2000
+1000
+1F00
+2400
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni056F
+ENCODING 1391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+0200
+0200
+ENDCHAR
+
+STARTCHAR uni0570
+ENCODING 1392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0571
+ENCODING 1393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1000
+0800
+3C00
+4200
+4200
+4200
+4200
+4600
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0572
+ENCODING 1394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+0200
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni0573
+ENCODING 1395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2000
+7C00
+2200
+2200
+2200
+2200
+2200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0574
+ENCODING 1396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0900
+0800
+4400
+4400
+4400
+4400
+4400
+4400
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0575
+ENCODING 1397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+3800
+ENDCHAR
+
+STARTCHAR uni0576
+ENCODING 1398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4000
+4000
+2200
+2200
+2200
+2200
+2200
+2200
+1D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0577
+ENCODING 1399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3C00
+4200
+0200
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+3E00
+ENDCHAR
+
+STARTCHAR uni0578
+ENCODING 1400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0579
+ENCODING 1401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1000
+1000
+0800
+0400
+0800
+1000
+2000
+4000
+4000
+3F00
+ENDCHAR
+
+STARTCHAR uni057A
+ENCODING 1402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+4900
+4900
+4900
+4900
+4900
+3700
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni057B
+ENCODING 1403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3C00
+4200
+4200
+4200
+2200
+1400
+0800
+1000
+2000
+2000
+1F00
+ENDCHAR
+
+STARTCHAR uni057C
+ENCODING 1404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4200
+4400
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni057D
+ENCODING 1405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni057E
+ENCODING 1406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+0200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni057F
+ENCODING 1407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4A00
+4D00
+4900
+4900
+4900
+5900
+2900
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni0580
+ENCODING 1408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+6200
+4200
+4200
+4200
+4200
+4200
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni0581
+ENCODING 1409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4200
+4200
+4200
+3E00
+0200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni0582
+ENCODING 1410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+1000
+1000
+1000
+1000
+1000
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0583
+ENCODING 1411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+4A00
+4D00
+4900
+4900
+4900
+5900
+2900
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni0584
+ENCODING 1412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1100
+1000
+1000
+7C00
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0585
+ENCODING 1413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0586
+ENCODING 1414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4800
+4800
+3E00
+0900
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni0587
+ENCODING 1415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4400
+4400
+4400
+4400
+4400
+4400
+3B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0589
+ENCODING 1417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+3800
+1000
+0000
+1000
+3800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni058A
+ENCODING 1418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57799
+ENCODING 1456
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+0000
+1800
+ENDCHAR
+
+STARTCHAR afii57801
+ENCODING 1457
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+DB00
+0000
+6300
+ENDCHAR
+
+STARTCHAR afii57800
+ENCODING 1458
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FB00
+0000
+0300
+ENDCHAR
+
+STARTCHAR afii57802
+ENCODING 1459
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FB00
+2000
+2300
+ENDCHAR
+
+STARTCHAR afii57793
+ENCODING 1460
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR afii57794
+ENCODING 1461
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6600
+0000
+ENDCHAR
+
+STARTCHAR afii57795
+ENCODING 1462
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6600
+0000
+1800
+ENDCHAR
+
+STARTCHAR afii57798
+ENCODING 1463
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7C00
+0000
+ENDCHAR
+
+STARTCHAR afii57797
+ENCODING 1464
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7C00
+1000
+ENDCHAR
+
+STARTCHAR afii57806
+ENCODING 1465
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57796
+ENCODING 1467
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+C000
+1800
+0300
+ENDCHAR
+
+STARTCHAR afii57807
+ENCODING 1468
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57839
+ENCODING 1469
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR afii57645
+ENCODING 1470
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3F00
+7E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57841
+ENCODING 1471
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57842
+ENCODING 1472
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57804
+ENCODING 1473
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57803
+ENCODING 1474
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57658
+ENCODING 1475
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+3800
+1000
+0000
+1000
+3800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni05C4
+ENCODING 1476
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57664
+ENCODING 1488
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57665
+ENCODING 1489
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FC00
+7E00
+0200
+0200
+0200
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57666
+ENCODING 1490
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0400
+1E00
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57667
+ENCODING 1491
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57668
+ENCODING 1492
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+4200
+4200
+4200
+8200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57669
+ENCODING 1493
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57670
+ENCODING 1494
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3C00
+1E00
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57671
+ENCODING 1495
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+4200
+4200
+4200
+4200
+8200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57672
+ENCODING 1496
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+E300
+7700
+4500
+4100
+4100
+7F00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57673
+ENCODING 1497
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57674
+ENCODING 1498
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0200
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR afii57675
+ENCODING 1499
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+0100
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57676
+ENCODING 1500
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+4000
+4000
+7F00
+3F00
+0100
+0100
+0200
+0400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57677
+ENCODING 1501
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+8100
+8100
+8100
+FF00
+FF00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57678
+ENCODING 1502
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+DE00
+7F00
+4100
+8100
+8100
+9F00
+BE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57679
+ENCODING 1503
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR afii57680
+ENCODING 1504
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0400
+1C00
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57681
+ENCODING 1505
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+4100
+4100
+4100
+7E00
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57682
+ENCODING 1506
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+E700
+7300
+4100
+2100
+1100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57683
+ENCODING 1507
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+8200
+C400
+C400
+0400
+0400
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR afii57684
+ENCODING 1508
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+4100
+6100
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57685
+ENCODING 1509
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+E700
+6300
+2400
+2800
+3000
+2000
+2000
+2000
+2000
+2000
+ENDCHAR
+
+STARTCHAR afii57686
+ENCODING 1510
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+E700
+6300
+2400
+1800
+0600
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57687
+ENCODING 1511
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+2100
+2100
+2600
+2800
+2000
+2000
+2000
+ENDCHAR
+
+STARTCHAR afii57688
+ENCODING 1512
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57689
+ENCODING 1513
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9200
+DB00
+4900
+8900
+9100
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57690
+ENCODING 1514
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+2100
+4100
+4100
+6100
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57716
+ENCODING 1520
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4400
+6600
+3300
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57717
+ENCODING 1521
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4400
+6600
+3300
+1100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57718
+ENCODING 1522
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4400
+6600
+3300
+1100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni05F3
+ENCODING 1523
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni05F4
+ENCODING 1524
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3300
+6600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E01
+ENCODING 3585
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+2100
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E02
+ENCODING 3586
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3100
+6900
+5900
+2900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E03
+ENCODING 3587
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5100
+6900
+4900
+2900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E04
+ENCODING 3588
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4900
+5500
+2900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E05
+ENCODING 3589
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+5500
+2900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E06
+ENCODING 3590
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5100
+7100
+5100
+1100
+3900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E07
+ENCODING 3591
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0200
+0500
+0300
+2100
+1100
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E08
+ENCODING 3592
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0900
+1500
+0D00
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E09
+ENCODING 3593
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+2200
+5200
+3300
+1680
+0900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E0A
+ENCODING 3594
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3100
+6A00
+5900
+2900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E0B
+ENCODING 3595
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+5100
+6A00
+4900
+2900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E0C
+ENCODING 3596
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3900
+4500
+2500
+4500
+4500
+6F00
+6D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E0D
+ENCODING 3597
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3100
+4900
+2900
+4900
+4900
+6900
+6600
+0000
+0700
+0000
+ENDCHAR
+
+STARTCHAR uni0E0E
+ENCODING 3598
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+6100
+A100
+4900
+3D00
+4B00
+3000
+ENDCHAR
+
+STARTCHAR uni0E0F
+ENCODING 3599
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+6100
+A100
+5100
+3500
+5B00
+2000
+ENDCHAR
+
+STARTCHAR uni0E10
+ENCODING 3600
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4200
+7E00
+0900
+1500
+0D00
+0200
+3300
+5500
+2B00
+ENDCHAR
+
+STARTCHAR uni0E11
+ENCODING 3601
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+A600
+E900
+A900
+3100
+3100
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E12
+ENCODING 3602
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2900
+5500
+4500
+7500
+5500
+6F00
+4D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E13
+ENCODING 3603
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3200
+4A00
+2A00
+4A00
+4B00
+6E80
+6900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E14
+ENCODING 3604
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4900
+5500
+4900
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E15
+ENCODING 3605
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+5500
+4900
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E16
+ENCODING 3606
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+3100
+2900
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E17
+ENCODING 3607
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4600
+A900
+6900
+3100
+3100
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E18
+ENCODING 3608
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4200
+7E00
+2100
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E19
+ENCODING 3609
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+A200
+6200
+2200
+2700
+2A80
+3100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1A
+ENCODING 3610
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A100
+6100
+2100
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1B
+ENCODING 3611
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+4100
+A100
+6100
+2100
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1C
+ENCODING 3612
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5100
+6100
+4100
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1D
+ENCODING 3613
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+2100
+5100
+6100
+4100
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1E
+ENCODING 3614
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A100
+6D00
+2D00
+3300
+3300
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E1F
+ENCODING 3615
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+4100
+A100
+6D00
+2D00
+3300
+3300
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E20
+ENCODING 3616
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+6100
+A100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E21
+ENCODING 3617
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5100
+3100
+1100
+3900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E22
+ENCODING 3618
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5100
+6100
+3100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E23
+ENCODING 3619
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4200
+7C00
+0200
+0600
+0A00
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E24
+ENCODING 3620
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+3100
+2900
+1100
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0E25
+ENCODING 3621
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+3900
+4500
+6300
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E26
+ENCODING 3622
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+6100
+2100
+6100
+A100
+4100
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0E27
+ENCODING 3623
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0100
+0300
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E28
+ENCODING 3624
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3E00
+4100
+4900
+5500
+2900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E29
+ENCODING 3625
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A500
+6B80
+2700
+2100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2A
+ENCODING 3626
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3E00
+4100
+3900
+4500
+6300
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2B
+ENCODING 3627
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+A500
+6200
+2500
+2900
+3100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2C
+ENCODING 3628
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+4600
+A100
+6D00
+2D00
+3300
+3300
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2D
+ENCODING 3629
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+2100
+5100
+6100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2E
+ENCODING 3630
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+3F00
+4300
+3D00
+2100
+5100
+6100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E2F
+ENCODING 3631
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2300
+5500
+3900
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E30
+ENCODING 3632
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5200
+3C00
+0000
+2100
+5200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E31
+ENCODING 3633
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3080
+3F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E32
+ENCODING 3634
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E33
+ENCODING 3635
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+A000
+4E00
+1100
+0100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E34
+ENCODING 3636
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E35
+ENCODING 3637
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E36
+ENCODING 3638
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0300
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E37
+ENCODING 3639
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0500
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E38
+ENCODING 3640
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0300
+0300
+0100
+ENDCHAR
+
+STARTCHAR uni0E39
+ENCODING 3641
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0D00
+0D00
+0700
+ENDCHAR
+
+STARTCHAR uni0E3A
+ENCODING 3642
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0300
+0300
+ENDCHAR
+
+STARTCHAR uni0E3F
+ENCODING 3647
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+7E00
+2900
+2900
+3E00
+2900
+2900
+2900
+7E00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E40
+ENCODING 3648
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+1000
+1000
+1800
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E41
+ENCODING 3649
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4400
+4400
+4400
+4400
+6600
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E42
+ENCODING 3650
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3D00
+4200
+7C00
+0400
+0400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E43
+ENCODING 3651
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6400
+5400
+2400
+0400
+0400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E44
+ENCODING 3652
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8C00
+5400
+2400
+0400
+0400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E45
+ENCODING 3653
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0100
+0100
+0100
+0100
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0E46
+ENCODING 3654
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+6100
+5100
+2100
+0100
+0100
+0100
+0100
+0200
+ENDCHAR
+
+STARTCHAR uni0E47
+ENCODING 3655
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+3E00
+4900
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E48
+ENCODING 3656
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E49
+ENCODING 3657
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1100
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4A
+ENCODING 3658
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+6D00
+5600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4B
+ENCODING 3659
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0E00
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4C
+ENCODING 3660
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3F00
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4D
+ENCODING 3661
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4E
+ENCODING 3662
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0700
+0C00
+1000
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E4F
+ENCODING 3663
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5500
+4900
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E50
+ENCODING 3664
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E51
+ENCODING 3665
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+5100
+6900
+3100
+0200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E52
+ENCODING 3666
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+4A00
+5500
+5900
+5500
+4900
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E53
+ENCODING 3667
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4900
+6100
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E54
+ENCODING 3668
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0080
+1F00
+2000
+4400
+4A00
+4C00
+2600
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E55
+ENCODING 3669
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0A80
+1F00
+2000
+4400
+4A00
+4C00
+2600
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E56
+ENCODING 3670
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+5C00
+2200
+0100
+0100
+1100
+2A00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E57
+ENCODING 3671
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0080
+0100
+6900
+9500
+9500
+9500
+C500
+A500
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E58
+ENCODING 3672
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0080
+1F00
+2000
+4200
+4500
+4300
+3900
+1600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E59
+ENCODING 3673
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0080
+0280
+3500
+4C00
+4400
+5400
+2A00
+1200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E5A
+ENCODING 3674
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6A00
+7500
+0500
+0500
+0500
+0500
+0A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E5B
+ENCODING 3675
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+5000
+5580
+5600
+4800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E81
+ENCODING 3713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4600
+A900
+7100
+2100
+6100
+A100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E82
+ENCODING 3714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+A100
+4100
+0600
+3800
+4000
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E84
+ENCODING 3716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+2100
+5100
+2100
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E87
+ENCODING 3719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+5100
+2100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E88
+ENCODING 3720
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0900
+1700
+0900
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E8A
+ENCODING 3722
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+A100
+4100
+0600
+3800
+4000
+3E00
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0E8D
+ENCODING 3725
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5100
+2100
+5100
+2100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E94
+ENCODING 3732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+6100
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E95
+ENCODING 3733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4100
+6100
+5100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E96
+ENCODING 3734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4600
+A900
+7100
+2100
+3100
+2900
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E97
+ENCODING 3735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+A500
+6500
+2500
+4500
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E99
+ENCODING 3737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A100
+6100
+2100
+2100
+3100
+CE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9A
+ENCODING 3738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A100
+6100
+2100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9B
+ENCODING 3739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+4100
+A100
+6100
+2100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9C
+ENCODING 3740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4400
+AA00
+C700
+8200
+9200
+9200
+6C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9D
+ENCODING 3741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+2100
+5100
+6100
+4100
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9E
+ENCODING 3742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+A100
+6100
+2100
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0E9F
+ENCODING 3743
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+4100
+A100
+6100
+2100
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EA1
+ENCODING 3745
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+2100
+2100
+2100
+7100
+A900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EA2
+ENCODING 3746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+2100
+5100
+2100
+5100
+2100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EA3
+ENCODING 3747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+3800
+0600
+4100
+A100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EA5
+ENCODING 3749
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+8100
+0100
+0100
+7100
+A900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EA7
+ENCODING 3751
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+0100
+2100
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EAA
+ENCODING 3754
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+7D00
+8200
+7D00
+0100
+0100
+7100
+A900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EAB
+ENCODING 3755
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4400
+AA00
+6D00
+2900
+4900
+4900
+3100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EAD
+ENCODING 3757
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+3F00
+0100
+2100
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EAE
+ENCODING 3758
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+3C00
+4000
+3800
+0600
+4100
+A100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EAF
+ENCODING 3759
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5000
+A800
+9200
+8500
+8900
+7200
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB0
+ENCODING 3760
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2100
+5100
+3E00
+0000
+2100
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB1
+ENCODING 3761
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2100
+5100
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB2
+ENCODING 3762
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+5100
+2100
+0100
+0100
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB3
+ENCODING 3763
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+A000
+4E00
+1500
+0900
+0100
+0100
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB4
+ENCODING 3764
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+4100
+4100
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB5
+ENCODING 3765
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3C00
+4200
+4200
+2700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB6
+ENCODING 3766
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+4100
+4900
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EB7
+ENCODING 3767
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+7C00
+8200
+9200
+4700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EBB
+ENCODING 3771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+5100
+2100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EBC
+ENCODING 3772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3900
+5600
+2000
+ENDCHAR
+
+STARTCHAR uni0EBD
+ENCODING 3773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2500
+1200
+4800
+A400
+6200
+2200
+2200
+2200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC0
+ENCODING 3776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+2000
+2000
+2000
+3000
+2800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC1
+ENCODING 3777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+4400
+4400
+4400
+6600
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC2
+ENCODING 3778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3900
+4600
+3000
+0C00
+0400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC3
+ENCODING 3779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7800
+8400
+A400
+D400
+6400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC4
+ENCODING 3780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6C00
+9200
+1200
+0200
+0400
+0400
+0600
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC6
+ENCODING 3782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3A00
+5500
+2500
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC8
+ENCODING 3784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EC9
+ENCODING 3785
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+2900
+1100
+7E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ECA
+ENCODING 3786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+6C00
+9200
+9200
+4700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ECB
+ENCODING 3787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ECD
+ENCODING 3789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED0
+ENCODING 3792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED1
+ENCODING 3793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+5100
+6900
+3100
+0200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED2
+ENCODING 3794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0400
+0800
+1000
+2200
+4500
+4300
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED3
+ENCODING 3795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2500
+1200
+0800
+2400
+2200
+2200
+6200
+A200
+5C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED4
+ENCODING 3796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+3E00
+4000
+8800
+9400
+9800
+4C00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED5
+ENCODING 3797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0900
+1500
+3E00
+4000
+8800
+9400
+9800
+4C00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED6
+ENCODING 3798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+1300
+4800
+A400
+C200
+8200
+9200
+9200
+6C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED7
+ENCODING 3799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4600
+A900
+7100
+2100
+6100
+A100
+4100
+0100
+0100
+0000
+ENDCHAR
+
+STARTCHAR uni0ED8
+ENCODING 3800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+A900
+4900
+0300
+0500
+0900
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0ED9
+ENCODING 3801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7100
+8900
+8900
+8900
+C900
+A900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EDC
+ENCODING 3804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4880
+B680
+6A80
+2A80
+4A80
+4A80
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni0EDD
+ENCODING 3805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4880
+B680
+6A80
+2A80
+4E80
+5A80
+2500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A0
+ENCODING 4256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1100
+2000
+4000
+4000
+4000
+4000
+4000
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A1
+ENCODING 4257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+8800
+8800
+8800
+9800
+6800
+0800
+0800
+0800
+0F00
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A2
+ENCODING 4258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+8800
+8800
+0800
+0800
+0800
+0800
+0800
+0800
+0F00
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A3
+ENCODING 4259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+7F00
+0900
+1400
+2200
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A4
+ENCODING 4260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4200
+4200
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A5
+ENCODING 4261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+8800
+8800
+0800
+0F00
+0900
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A6
+ENCODING 4262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+1000
+1000
+1600
+1900
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A7
+ENCODING 4263
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4400
+8400
+8400
+8700
+8500
+8400
+8400
+4400
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A8
+ENCODING 4264
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10A9
+ENCODING 4265
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+5E00
+6100
+4100
+4100
+4300
+3D00
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AA
+ENCODING 4266
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F000
+9000
+1000
+1600
+1900
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AB
+ENCODING 4267
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0800
+0800
+0800
+7F00
+8900
+8800
+8800
+8800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AC
+ENCODING 4268
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4000
+4000
+4000
+7E00
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AD
+ENCODING 4269
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+8800
+8800
+8800
+8800
+8800
+8800
+8900
+8D00
+7200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AE
+ENCODING 4270
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10AF
+ENCODING 4271
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7100
+1100
+2100
+2100
+2300
+1D00
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B0
+ENCODING 4272
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0A00
+0D00
+0900
+8900
+8800
+8800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B1
+ENCODING 4273
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4400
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B2
+ENCODING 4274
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4200
+4200
+4200
+7C00
+4000
+4000
+4000
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B3
+ENCODING 4275
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+8800
+8800
+8800
+8800
+8800
+8800
+8A00
+8D00
+7100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B4
+ENCODING 4276
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B5
+ENCODING 4277
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+4800
+7F00
+0900
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B6
+ENCODING 4278
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B7
+ENCODING 4279
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+4200
+4200
+4200
+4600
+3A00
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B8
+ENCODING 4280
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+4200
+4200
+4600
+3A00
+0200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10B9
+ENCODING 4281
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+7E00
+4200
+4200
+4200
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10BA
+ENCODING 4282
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2100
+4000
+4000
+4000
+4000
+4000
+4000
+2100
+1F00
+0200
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni10BB
+ENCODING 4283
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+7F00
+8900
+8800
+8800
+8800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10BC
+ENCODING 4284
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4200
+4200
+7C00
+4000
+7800
+4400
+4800
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10BD
+ENCODING 4285
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+2000
+1800
+0600
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10BE
+ENCODING 4286
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+7E00
+4000
+4000
+4000
+7E00
+0200
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10BF
+ENCODING 4287
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+4100
+2200
+1400
+0800
+1400
+2200
+4000
+8000
+8000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C0
+ENCODING 4288
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F000
+9000
+9000
+1000
+1000
+1000
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C1
+ENCODING 4289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+7000
+4800
+4600
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C2
+ENCODING 4290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5C00
+6200
+0100
+0100
+0100
+0100
+0100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C3
+ENCODING 4291
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+2200
+4200
+4200
+4600
+3A00
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C4
+ENCODING 4292
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+2200
+1C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10C5
+ENCODING 4293
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0900
+0900
+0E00
+0800
+7E00
+8900
+8800
+8800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D0
+ENCODING 4304
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+0C00
+0200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D1
+ENCODING 4305
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+3800
+0800
+0800
+1C00
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D2
+ENCODING 4306
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+4800
+0800
+3C00
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10D3
+ENCODING 4307
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6E00
+9100
+9100
+9100
+9100
+4E00
+2000
+7000
+8C00
+0200
+ENDCHAR
+
+STARTCHAR uni10D4
+ENCODING 4308
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+0200
+0200
+2200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10D5
+ENCODING 4309
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+0200
+0C00
+0200
+2200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10D6
+ENCODING 4310
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+9000
+9000
+7200
+1400
+1E00
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D7
+ENCODING 4311
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+8900
+8900
+8900
+8900
+8900
+7200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D8
+ENCODING 4312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4200
+4200
+4200
+4200
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10D9
+ENCODING 4313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0200
+0200
+0200
+0C00
+0200
+2200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10DA
+ENCODING 4314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6A00
+9500
+9500
+8100
+8100
+4200
+2000
+7800
+8400
+0200
+ENDCHAR
+
+STARTCHAR uni10DB
+ENCODING 4315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+2200
+0200
+1A00
+2600
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10DC
+ENCODING 4316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1A00
+2400
+2000
+2000
+2C00
+3200
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10DD
+ENCODING 4317
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4900
+4100
+4100
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10DE
+ENCODING 4318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0C00
+0200
+0200
+0C00
+0200
+2200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10DF
+ENCODING 4319
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0300
+1D00
+1100
+4900
+3100
+0100
+1100
+2100
+2100
+1E00
+ENDCHAR
+
+STARTCHAR uni10E0
+ENCODING 4320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0400
+3800
+4000
+7600
+4900
+4900
+4900
+4100
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10E1
+ENCODING 4321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4400
+4800
+4800
+4400
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10E2
+ENCODING 4322
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+2400
+2400
+9A00
+A500
+A500
+9900
+8100
+8100
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10E3
+ENCODING 4323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+0900
+0100
+0100
+0900
+1100
+1100
+1100
+0E00
+ENDCHAR
+
+STARTCHAR uni10E4
+ENCODING 4324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4900
+3200
+0100
+1100
+2100
+2100
+1E00
+ENDCHAR
+
+STARTCHAR uni10E5
+ENCODING 4325
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0600
+0200
+0200
+1A00
+2600
+1200
+0200
+0200
+2200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10E6
+ENCODING 4326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+4900
+4900
+4100
+4100
+2200
+1000
+7800
+0600
+0100
+ENDCHAR
+
+STARTCHAR uni10E7
+ENCODING 4327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1200
+2200
+2200
+2600
+1A00
+0200
+1200
+2200
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni10E8
+ENCODING 4328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+4900
+4900
+0100
+0D00
+1300
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10E9
+ENCODING 4329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2400
+3800
+2000
+2C00
+3200
+2200
+2200
+2200
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10EA
+ENCODING 4330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4800
+4400
+4200
+4200
+4C00
+4200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10EB
+ENCODING 4331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0200
+0200
+0200
+1A00
+2600
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10EC
+ENCODING 4332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+4900
+4900
+4200
+4000
+7F00
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni10ED
+ENCODING 4333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+3E00
+0200
+0400
+3500
+4E00
+4E00
+3500
+0400
+2200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10EE
+ENCODING 4334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+2400
+2800
+3C00
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10EF
+ENCODING 4335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6100
+9200
+9400
+0800
+1500
+6500
+1200
+9000
+6000
+0000
+ENDCHAR
+
+STARTCHAR uni10F0
+ENCODING 4336
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0C00
+0200
+0C00
+0200
+0C00
+0200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10F1
+ENCODING 4337
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5000
+4C00
+4200
+4C00
+4200
+4C00
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10F2
+ENCODING 4338
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+2200
+1400
+1C00
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10F3
+ENCODING 4339
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+0200
+0200
+0200
+0C00
+0200
+0200
+0200
+0400
+3800
+ENDCHAR
+
+STARTCHAR uni10F4
+ENCODING 4340
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1000
+1000
+0C00
+0200
+0200
+0C00
+0200
+2200
+4200
+4200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni10F5
+ENCODING 4341
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4400
+4400
+3E00
+0400
+3E00
+4400
+4400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10F6
+ENCODING 4342
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0800
+0800
+3E00
+4900
+4900
+4900
+3E00
+0800
+0800
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni10FB
+ENCODING 4347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+7000
+2200
+0700
+2200
+7000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1200
+ENCODING 4608
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+6300
+6300
+6300
+6300
+6300
+6700
+6600
+7E00
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1201
+ENCODING 4609
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C600
+C600
+C600
+C600
+C780
+C680
+CE00
+CC00
+FC00
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1202
+ENCODING 4610
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+C300
+C300
+C600
+7E00
+3C00
+0C00
+1800
+3000
+3300
+3F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1203
+ENCODING 4611
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+C300
+C300
+C600
+7E00
+3C00
+0C00
+1800
+3000
+3000
+3000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1204
+ENCODING 4612
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+C300
+C300
+C600
+7E00
+3C00
+0C00
+1800
+1E00
+1900
+0E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1205
+ENCODING 4613
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6300
+C300
+C300
+3300
+6300
+6300
+6300
+6300
+6300
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1206
+ENCODING 4614
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C700
+C480
+C700
+C600
+C600
+C600
+C600
+C600
+C600
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1208
+ENCODING 4616
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0C00
+1800
+3C00
+6600
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1209
+ENCODING 4617
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1800
+3000
+7800
+CC00
+C600
+C780
+C680
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120A
+ENCODING 4618
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1800
+3000
+7800
+CC00
+C600
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120B
+ENCODING 4619
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0C00
+1800
+3C00
+6600
+6300
+6300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120C
+ENCODING 4620
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1800
+3000
+7800
+CC00
+C600
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120D
+ENCODING 4621
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0C00
+1800
+3C00
+6600
+6300
+6300
+7300
+4B00
+7300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120E
+ENCODING 4622
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1800
+3000
+7800
+CC00
+C700
+C480
+C700
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni120F
+ENCODING 4623
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1800
+3000
+7800
+CC00
+C600
+C600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1210
+ENCODING 4624
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+DB00
+DB00
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1211
+ENCODING 4625
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1880
+7E80
+DB80
+DB00
+DB00
+DB00
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1212
+ENCODING 4626
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+DA00
+DA80
+DB80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1213
+ENCODING 4627
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1214
+ENCODING 4628
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+DA80
+DA80
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1215
+ENCODING 4629
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+7000
+3800
+1800
+7E00
+DB00
+DB00
+DB00
+DB00
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1216
+ENCODING 4630
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+C000
+C000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1217
+ENCODING 4631
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+7E00
+DB00
+DB00
+0300
+0300
+0300
+0F80
+0880
+0000
+ENDCHAR
+
+STARTCHAR uni1218
+ENCODING 4632
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+5500
+5500
+5500
+5500
+5500
+2200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1219
+ENCODING 4633
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7C00
+AA00
+AB80
+AA80
+AA00
+AA00
+4400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121A
+ENCODING 4634
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+AA00
+AA00
+AA00
+AA00
+4600
+0200
+0400
+0800
+1300
+1F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121B
+ENCODING 4635
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5500
+5500
+5500
+5500
+2300
+0100
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121C
+ENCODING 4636
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+AA00
+AA00
+AA00
+AA00
+4600
+0400
+0800
+0E00
+0900
+0E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121D
+ENCODING 4637
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5500
+5500
+5500
+5500
+3200
+1000
+3000
+6000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121E
+ENCODING 4638
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5500
+5500
+5500
+5500
+3200
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni121F
+ENCODING 4639
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5500
+5500
+5500
+5500
+2300
+0200
+0200
+0400
+0400
+1F00
+1100
+0000
+ENDCHAR
+
+STARTCHAR uni1220
+ENCODING 4640
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+DE00
+D800
+D800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1221
+ENCODING 4641
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB80
+DE80
+D880
+D800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1222
+ENCODING 4642
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+7E00
+0600
+0C00
+0D80
+0F80
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1223
+ENCODING 4643
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+7F00
+0300
+0300
+0300
+0300
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1224
+ENCODING 4644
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+7F00
+0300
+0300
+0480
+0300
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1225
+ENCODING 4645
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6D80
+6D80
+6D80
+6D80
+6D80
+6D80
+7F00
+6000
+C000
+C000
+C000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1226
+ENCODING 4646
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+7E00
+1800
+3000
+3000
+3000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1227
+ENCODING 4647
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DB00
+DB00
+DB00
+DB00
+DB00
+DB00
+7F00
+0300
+0300
+0300
+0F80
+0880
+0000
+ENDCHAR
+
+STARTCHAR uni1228
+ENCODING 4648
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+C000
+C000
+E300
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1229
+ENCODING 4649
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3000
+6000
+C000
+E000
+7F00
+3F00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122A
+ENCODING 4650
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+C600
+C300
+E300
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122B
+ENCODING 4651
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+C000
+C300
+E700
+7C00
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122C
+ENCODING 4652
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+C000
+C000
+E700
+7C80
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122D
+ENCODING 4653
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+7E00
+C600
+C000
+C000
+C000
+C000
+C300
+FF00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122E
+ENCODING 4654
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+7900
+C600
+C000
+C000
+C000
+C000
+C300
+FF00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni122F
+ENCODING 4655
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+1800
+1800
+3000
+6000
+C000
+C300
+E700
+7C00
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1230
+ENCODING 4656
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+3E00
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1231
+ENCODING 4657
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+3800
+7C00
+C600
+C780
+C680
+C600
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1232
+ENCODING 4658
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+3800
+7C00
+C600
+C600
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1233
+ENCODING 4659
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+3E00
+6300
+6300
+6300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1234
+ENCODING 4660
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+3800
+7C00
+C600
+C600
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1235
+ENCODING 4661
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+1800
+1C00
+3E00
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1236
+ENCODING 4662
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+3E00
+6300
+6300
+6300
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1237
+ENCODING 4663
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+3800
+7C00
+C600
+C600
+C600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1238
+ENCODING 4664
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+1C00
+3E00
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1239
+ENCODING 4665
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+1000
+3800
+7C00
+C600
+C780
+C680
+C600
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123A
+ENCODING 4666
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+1000
+3800
+7C00
+C600
+C600
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123B
+ENCODING 4667
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+1C00
+3E00
+6300
+6300
+6300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123C
+ENCODING 4668
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+1000
+3800
+7C00
+C600
+C600
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123D
+ENCODING 4669
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FC00
+3000
+1C00
+3E00
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123E
+ENCODING 4670
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+1C00
+3E00
+6300
+6300
+6300
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni123F
+ENCODING 4671
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+1000
+3800
+7C00
+C600
+C600
+C600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1240
+ENCODING 4672
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1241
+ENCODING 4673
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1F00
+1B00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1242
+ENCODING 4674
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1243
+ENCODING 4675
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1244
+ENCODING 4676
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1245
+ENCODING 4677
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+7800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1246
+ENCODING 4678
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+3C00
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1248
+ENCODING 4680
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1F00
+1C80
+1B00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni124A
+ENCODING 4682
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1880
+1880
+7E80
+DB00
+DB00
+7E00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni124B
+ENCODING 4683
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+1800
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni124C
+ENCODING 4684
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1E00
+1900
+7E00
+4000
+0000
+ENDCHAR
+
+STARTCHAR uni124D
+ENCODING 4685
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+DB00
+DB00
+7E80
+1880
+1880
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1250
+ENCODING 4688
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1251
+ENCODING 4689
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1F00
+1B00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1252
+ENCODING 4690
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1253
+ENCODING 4691
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1254
+ENCODING 4692
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1255
+ENCODING 4693
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FC00
+3000
+3800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1256
+ENCODING 4694
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2400
+3C00
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1258
+ENCODING 4696
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+7E00
+DB00
+DB00
+7E00
+1F00
+1C80
+1B00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni125A
+ENCODING 4698
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1880
+1880
+7E80
+DB00
+DB00
+7E00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni125B
+ENCODING 4699
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1800
+1800
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni125C
+ENCODING 4700
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E00
+1800
+1E00
+1900
+7E00
+4000
+0000
+ENDCHAR
+
+STARTCHAR uni125D
+ENCODING 4701
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+7E00
+DB00
+DB00
+7E80
+1880
+1880
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1260
+ENCODING 4704
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2300
+6300
+6300
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1261
+ENCODING 4705
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4600
+C600
+C600
+C600
+C780
+C680
+C600
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1262
+ENCODING 4706
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4600
+C600
+C600
+C600
+C600
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1263
+ENCODING 4707
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2300
+6300
+6300
+6300
+6300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1264
+ENCODING 4708
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4600
+C600
+C600
+C600
+C600
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1265
+ENCODING 4709
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1300
+3300
+3300
+3300
+F300
+B300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1266
+ENCODING 4710
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2300
+6300
+6300
+6300
+6300
+6000
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1267
+ENCODING 4711
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4600
+C600
+C600
+C600
+C600
+0600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1268
+ENCODING 4712
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+0000
+1E00
+2300
+6300
+6300
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1269
+ENCODING 4713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+3C00
+4600
+C600
+C780
+C680
+C600
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126A
+ENCODING 4714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+3C00
+4600
+C600
+C600
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126B
+ENCODING 4715
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+0000
+1E00
+2300
+6300
+6300
+6300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126C
+ENCODING 4716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+3C00
+4600
+C600
+C600
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126D
+ENCODING 4717
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+0000
+0E00
+1300
+3300
+F300
+B300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126E
+ENCODING 4718
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+0000
+1E00
+2300
+6300
+6300
+6300
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni126F
+ENCODING 4719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+3C00
+4600
+C600
+C600
+C600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1270
+ENCODING 4720
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1271
+ENCODING 4721
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+FF00
+9900
+1800
+1F00
+1B00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1272
+ENCODING 4722
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+FF00
+9900
+1800
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1273
+ENCODING 4723
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+FF00
+9900
+1800
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1274
+ENCODING 4724
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+FF00
+9900
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1275
+ENCODING 4725
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+7000
+3800
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1276
+ENCODING 4726
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+3C00
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1277
+ENCODING 4727
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1278
+ENCODING 4728
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1279
+ENCODING 4729
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+FF00
+9900
+1800
+1F00
+1B00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127A
+ENCODING 4730
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+1800
+FF00
+9900
+1800
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127B
+ENCODING 4731
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+1800
+FF00
+9900
+1800
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127C
+ENCODING 4732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+1800
+FF00
+9900
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127D
+ENCODING 4733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FE00
+B200
+1000
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127E
+ENCODING 4734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+A500
+3C00
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni127F
+ENCODING 4735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF00
+9900
+1800
+1800
+FF00
+9900
+1800
+1800
+1800
+1800
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1280
+ENCODING 4736
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+7C00
+6700
+0300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1281
+ENCODING 4737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0780
+0680
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1282
+ENCODING 4738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0600
+0600
+0600
+0680
+0780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1283
+ENCODING 4739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+7C00
+6700
+0300
+0300
+0300
+0600
+0C00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1284
+ENCODING 4740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0600
+0600
+0700
+0480
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1285
+ENCODING 4741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+3C00
+6700
+C300
+C300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1286
+ENCODING 4742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0700
+0C80
+1B00
+F800
+CE00
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1288
+ENCODING 4744
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0700
+0480
+0700
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni128A
+ENCODING 4746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+3000
+F000
+DD00
+0D00
+0F00
+0D00
+0C80
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni128B
+ENCODING 4747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni128C
+ENCODING 4748
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+F800
+CE00
+0600
+0600
+0600
+0600
+0700
+0480
+1F00
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni128D
+ENCODING 4749
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+3100
+F100
+DF00
+0C80
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1290
+ENCODING 4752
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+3000
+3000
+3E00
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1291
+ENCODING 4753
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+C000
+F800
+1800
+1F00
+1B00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1292
+ENCODING 4754
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+C000
+F800
+1800
+1800
+1800
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1293
+ENCODING 4755
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1294
+ENCODING 4756
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+C000
+F800
+1800
+1800
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1295
+ENCODING 4757
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+D800
+D800
+1F00
+0300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1296
+ENCODING 4758
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6900
+6600
+6000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1297
+ENCODING 4759
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+2100
+0000
+ENDCHAR
+
+STARTCHAR uni1298
+ENCODING 4760
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+1800
+1F00
+0300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1299
+ENCODING 4761
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FC00
+3000
+3000
+3C00
+0C00
+0F00
+0D00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129A
+ENCODING 4762
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FC00
+3000
+3000
+3C00
+0C00
+0C00
+0C00
+0C00
+0D00
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129B
+ENCODING 4763
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+3E00
+6300
+6300
+6000
+3C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129C
+ENCODING 4764
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FC00
+3000
+3000
+3E00
+0600
+0600
+0600
+0700
+0480
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129D
+ENCODING 4765
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+7800
+D800
+DF00
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129E
+ENCODING 4766
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+3E00
+6900
+6600
+6000
+3C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni129F
+ENCODING 4767
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+3E00
+6300
+6300
+6000
+3C00
+0C00
+0C00
+0C00
+3F00
+2100
+0000
+ENDCHAR
+
+STARTCHAR uni12A0
+ENCODING 4768
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+6000
+3800
+1800
+3C00
+6600
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A1
+ENCODING 4769
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+7000
+3000
+7800
+CC00
+C780
+C680
+C600
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A2
+ENCODING 4770
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+7000
+3000
+7800
+CC00
+C600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A3
+ENCODING 4771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+6000
+3800
+1800
+3C00
+6600
+6300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A4
+ENCODING 4772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+C000
+7000
+3000
+7800
+CC00
+C600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A5
+ENCODING 4773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+3800
+1C00
+1800
+3C00
+6600
+6300
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A6
+ENCODING 4774
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+6000
+3800
+1800
+3C00
+6600
+6300
+6300
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A7
+ENCODING 4775
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8400
+FC00
+3000
+3800
+1800
+3C00
+6600
+6300
+6300
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A8
+ENCODING 4776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+5E00
+3300
+3300
+3300
+3300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12A9
+ENCODING 4777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6600
+6780
+6680
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12AA
+ENCODING 4778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6600
+6600
+6600
+6600
+6680
+6780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12AB
+ENCODING 4779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+5E00
+3300
+3300
+3300
+3300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12AC
+ENCODING 4780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6600
+6600
+6600
+6700
+6480
+6700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12AD
+ENCODING 4781
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+5E00
+3300
+3300
+3B00
+1B00
+1B00
+1B00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12AE
+ENCODING 4782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+5E00
+3300
+3300
+3300
+3300
+3000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12B0
+ENCODING 4784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6700
+6480
+6700
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12B2
+ENCODING 4786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+B800
+6C00
+6D00
+6D00
+6F00
+6C80
+6C00
+6C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12B3
+ENCODING 4787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6600
+6600
+6600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni12B4
+ENCODING 4788
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+8000
+BC00
+6600
+6600
+6600
+6600
+0600
+0700
+0480
+1F00
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni12B5
+ENCODING 4789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8100
+8100
+BD00
+6680
+6600
+6600
+6600
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12B8
+ENCODING 4792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+7000
+4000
+5E00
+3300
+3300
+3300
+3300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12B9
+ENCODING 4793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6600
+6780
+6680
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12BA
+ENCODING 4794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6600
+6600
+6600
+6600
+6680
+6780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12BB
+ENCODING 4795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+7000
+4000
+5E00
+3300
+3300
+3300
+3300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12BC
+ENCODING 4796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6600
+6600
+6600
+6700
+6480
+6700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12BD
+ENCODING 4797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+7000
+4000
+5E00
+3300
+3300
+3B00
+1B00
+1B00
+1B00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12BE
+ENCODING 4798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+7000
+4000
+5E00
+3300
+3300
+3300
+3300
+3000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12C0
+ENCODING 4800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6700
+6480
+6700
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12C2
+ENCODING 4802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+B800
+6C00
+6D00
+6D00
+6F00
+6C80
+6C00
+6C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12C3
+ENCODING 4803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6600
+6600
+6600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni12C4
+ENCODING 4804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E000
+8000
+BC00
+6600
+6600
+6600
+6600
+0600
+0700
+0480
+1F00
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni12C5
+ENCODING 4805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+E100
+8100
+BD00
+6680
+6600
+6600
+6600
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12C8
+ENCODING 4808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2A00
+4900
+4900
+4900
+4900
+2A00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12C9
+ENCODING 4809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3800
+5400
+9200
+9200
+9200
+9200
+5480
+3F80
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12CA
+ENCODING 4810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2A00
+4900
+4900
+2A00
+1C00
+0800
+1800
+3300
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12CB
+ENCODING 4811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2A00
+4900
+4900
+2A00
+1C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12CC
+ENCODING 4812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2A00
+4900
+4900
+2A00
+1C00
+0800
+0E00
+0900
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12CD
+ENCODING 4813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3800
+5400
+9200
+9380
+9280
+9200
+5400
+3800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12CE
+ENCODING 4814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2A00
+4900
+4900
+2A00
+1C00
+0800
+1800
+3000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D0
+ENCODING 4816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+3600
+C600
+C600
+C600
+C600
+C600
+C600
+DE00
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D1
+ENCODING 4817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+3600
+C600
+C600
+C780
+C680
+C600
+C600
+DE00
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D2
+ENCODING 4818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+C600
+C600
+7F00
+0300
+0600
+0C00
+1900
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D3
+ENCODING 4819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+C600
+C600
+7F00
+0300
+0600
+0C00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D4
+ENCODING 4820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+C600
+C600
+7F00
+0300
+0600
+0E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D5
+ENCODING 4821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+1E00
+6300
+6300
+6300
+6300
+6300
+6F00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D6
+ENCODING 4822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6300
+3E00
+3000
+3000
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D8
+ENCODING 4824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6600
+6600
+6600
+7E00
+6600
+6600
+6600
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12D9
+ENCODING 4825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CC00
+CC00
+CC00
+FC00
+CC00
+CF00
+CD00
+CC00
+CC00
+CC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DA
+ENCODING 4826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CC00
+CC00
+CC00
+FC00
+CC00
+CC00
+CC00
+CC00
+CD00
+CF00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DB
+ENCODING 4827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6600
+6600
+6600
+7E00
+6600
+6600
+6600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DC
+ENCODING 4828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CC00
+CC00
+CC00
+FC00
+CC00
+CC00
+CC00
+CE00
+C900
+CE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DD
+ENCODING 4829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+F800
+2300
+3300
+3300
+3F00
+3300
+3300
+3300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DE
+ENCODING 4830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6600
+6600
+6600
+7E00
+6600
+6600
+6600
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12DF
+ENCODING 4831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CC00
+CC00
+CC00
+FC00
+CC00
+CC00
+CC00
+0C00
+0C00
+0C00
+3F00
+2100
+0000
+ENDCHAR
+
+STARTCHAR uni12E0
+ENCODING 4832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E1
+ENCODING 4833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6780
+6680
+6600
+6600
+6600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E2
+ENCODING 4834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+6600
+6680
+6780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E3
+ENCODING 4835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E4
+ENCODING 4836
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+6700
+6480
+6700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E5
+ENCODING 4837
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+F800
+2380
+7300
+3300
+3F00
+3300
+3300
+3300
+3300
+3300
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E6
+ENCODING 4838
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E7
+ENCODING 4839
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+6600
+6600
+7E00
+6600
+6600
+6600
+0600
+0600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni12E8
+ENCODING 4840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+3600
+6300
+6300
+3300
+1E00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12E9
+ENCODING 4841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6C00
+C600
+C600
+6600
+3C00
+1800
+1F00
+1B00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12EA
+ENCODING 4842
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6C00
+C600
+C600
+6600
+3C00
+1900
+1F00
+1900
+1880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12EB
+ENCODING 4843
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+3600
+6300
+6300
+3300
+1E00
+0C00
+0C00
+1800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12EC
+ENCODING 4844
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6C00
+C600
+6600
+3C00
+1800
+1E00
+1900
+1E00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12ED
+ENCODING 4845
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6C00
+C600
+6600
+3C00
+1900
+1B00
+7E00
+C000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12EE
+ENCODING 4846
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+6C00
+C600
+C780
+6680
+3C00
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F0
+ENCODING 4848
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F1
+ENCODING 4849
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1880
+7E80
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F2
+ENCODING 4850
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1800
+7C00
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F3
+ENCODING 4851
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1800
+7E00
+4300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F4
+ENCODING 4852
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1800
+7F00
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F5
+ENCODING 4853
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6380
+6680
+3800
+3000
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F6
+ENCODING 4854
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+6300
+6600
+3800
+3000
+1800
+7E00
+C200
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F7
+ENCODING 4855
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+C600
+CC00
+7000
+6000
+3000
+FC00
+8600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni12F8
+ENCODING 4856
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12F9
+ENCODING 4857
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1880
+7E80
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FA
+ENCODING 4858
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1800
+7C00
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FB
+ENCODING 4859
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1800
+7E00
+4300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FC
+ENCODING 4860
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1800
+7F00
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FD
+ENCODING 4861
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6680
+3880
+3000
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FE
+ENCODING 4862
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6600
+3800
+3000
+1800
+7E00
+C200
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni12FF
+ENCODING 4863
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+FE00
+CC00
+7000
+6000
+3000
+FC00
+8600
+0600
+1F80
+1080
+0000
+ENDCHAR
+
+STARTCHAR uni1300
+ENCODING 4864
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1301
+ENCODING 4865
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1880
+7E80
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1302
+ENCODING 4866
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7C00
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1303
+ENCODING 4867
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7E00
+4300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1304
+ENCODING 4868
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7F00
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1305
+ENCODING 4869
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6380
+6680
+3800
+1800
+7E00
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1306
+ENCODING 4870
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7E00
+C200
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1307
+ENCODING 4871
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+3E00
+6300
+6600
+3800
+1800
+7E00
+4200
+0F80
+0880
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1308
+ENCODING 4872
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1309
+ENCODING 4873
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0C00
+0F00
+0D00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni130A
+ENCODING 4874
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0D00
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni130B
+ENCODING 4875
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+0600
+0600
+0600
+0600
+0600
+0C00
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni130C
+ENCODING 4876
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0E00
+0900
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni130D
+ENCODING 4877
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+CB00
+7300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni130E
+ENCODING 4878
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+7C00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1310
+ENCODING 4880
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0E00
+0D00
+0D00
+0E00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1312
+ENCODING 4882
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0D00
+0D00
+0F00
+0C80
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1313
+ENCODING 4883
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+CC00
+0C00
+3E00
+3300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1314
+ENCODING 4884
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F800
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0E00
+0900
+3E00
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1315
+ENCODING 4885
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+F900
+0F00
+0C80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1318
+ENCODING 4888
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7E00
+0000
+7C00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1319
+ENCODING 4889
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FC00
+0000
+F800
+0C00
+0C00
+0C00
+0F00
+0D00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni131A
+ENCODING 4890
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FC00
+0000
+F800
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0D00
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni131B
+ENCODING 4891
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7E00
+0000
+7C00
+0600
+0600
+0600
+0600
+0C00
+1800
+3000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni131C
+ENCODING 4892
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FC00
+0000
+F800
+0C00
+0C00
+0C00
+0C00
+0C00
+0E00
+0900
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni131D
+ENCODING 4893
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+0000
+7E00
+CB00
+7300
+0300
+0300
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni131E
+ENCODING 4894
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+1800
+7C00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1320
+ENCODING 4896
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1321
+ENCODING 4897
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+A800
+A800
+A800
+AF00
+AB00
+A800
+A800
+A800
+A800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1322
+ENCODING 4898
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+A800
+A800
+A800
+A800
+A800
+A800
+A800
+AB00
+AF00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1323
+ENCODING 4899
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+4900
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1324
+ENCODING 4900
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+A800
+A800
+A800
+A800
+A800
+A800
+AE00
+A900
+AE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1325
+ENCODING 4901
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+0800
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1326
+ENCODING 4902
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+4900
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1327
+ENCODING 4903
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+9200
+9200
+9200
+9200
+9200
+0200
+0200
+0200
+0F80
+0880
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1328
+ENCODING 4904
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+9200
+9200
+9200
+DB00
+B680
+B680
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1329
+ENCODING 4905
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+9380
+9280
+9200
+DB00
+B680
+B680
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132A
+ENCODING 4906
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+9200
+9200
+9200
+DA00
+B680
+B680
+DB80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132B
+ENCODING 4907
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+DA00
+B600
+B600
+DB00
+0280
+0280
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132C
+ENCODING 4908
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9380
+9280
+9380
+9200
+DB00
+B680
+B680
+DB00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132D
+ENCODING 4909
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+D300
+B280
+B280
+DB00
+1400
+1400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132E
+ENCODING 4910
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+9B00
+9680
+9680
+DB00
+A000
+A000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni132F
+ENCODING 4911
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+D600
+9200
+DA00
+B600
+B600
+DA00
+0200
+0200
+0F80
+0880
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1330
+ENCODING 4912
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6600
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1331
+ENCODING 4913
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C80
+6680
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1332
+ENCODING 4914
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6600
+C280
+C380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1333
+ENCODING 4915
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6600
+4300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1334
+ENCODING 4916
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1335
+ENCODING 4917
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6780
+6680
+3C00
+3C00
+6600
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1336
+ENCODING 4918
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6600
+C200
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1337
+ENCODING 4919
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3C00
+6600
+6600
+3C00
+3C00
+6600
+4300
+0F80
+0880
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1338
+ENCODING 4920
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C00
+6600
+C300
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1339
+ENCODING 4921
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C80
+6680
+C380
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133A
+ENCODING 4922
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C00
+6600
+C600
+C680
+C780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133B
+ENCODING 4923
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C00
+6600
+C300
+0300
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133C
+ENCODING 4924
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C00
+6600
+C700
+C480
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133D
+ENCODING 4925
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6780
+6680
+3C00
+3C00
+6600
+C300
+C300
+C300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133E
+ENCODING 4926
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+6600
+6600
+6600
+3C00
+3C00
+6600
+C300
+C000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni133F
+ENCODING 4927
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+CC00
+CC00
+CC00
+7800
+7800
+CC00
+8600
+0600
+1F80
+1080
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1340
+ENCODING 4928
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+3600
+C600
+C600
+FE00
+C600
+C600
+C600
+DE00
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1341
+ENCODING 4929
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+3600
+C600
+C600
+FF80
+C680
+C600
+C600
+DE00
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1342
+ENCODING 4930
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+FE00
+C600
+7F00
+0300
+0600
+0C00
+1900
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1343
+ENCODING 4931
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+FE00
+C600
+7F00
+0300
+0600
+0C00
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1344
+ENCODING 4932
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+C600
+FE00
+C600
+7F00
+0300
+0600
+0E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1345
+ENCODING 4933
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+1E00
+6300
+6300
+7F00
+6300
+6300
+6F00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1346
+ENCODING 4934
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+7F00
+6300
+3E00
+3000
+3000
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1348
+ENCODING 4936
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+7000
+D800
+C800
+EB00
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1349
+ENCODING 4937
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+7800
+CC00
+EC00
+7F00
+3F00
+0C00
+0C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni134A
+ENCODING 4938
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+D600
+D300
+F300
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni134B
+ENCODING 4939
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+6000
+D000
+CB00
+EF00
+7C00
+3800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni134C
+ENCODING 4940
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+3000
+7000
+D000
+C800
+EF00
+7C80
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni134D
+ENCODING 4941
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+7E00
+C600
+C000
+C000
+F000
+C800
+CB00
+FF00
+7E00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni134E
+ENCODING 4942
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+7900
+C600
+C000
+C000
+F000
+C800
+CB00
+FF00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni134F
+ENCODING 4943
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+3000
+7000
+D000
+CB00
+EF00
+7C00
+3800
+1800
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1350
+ENCODING 4944
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1351
+ENCODING 4945
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1F00
+1B00
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1352
+ENCODING 4946
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1800
+1800
+1800
+1B00
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1353
+ENCODING 4947
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1800
+1800
+3000
+6000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1354
+ENCODING 4948
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1800
+1800
+1E00
+1900
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1355
+ENCODING 4949
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1E00
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1356
+ENCODING 4950
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+3000
+3000
+6000
+6000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1357
+ENCODING 4951
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+DB00
+DB00
+1800
+1800
+1800
+1800
+1800
+1800
+7E00
+4200
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1358
+ENCODING 4952
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+0800
+3E00
+5500
+5500
+5500
+5500
+2300
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1359
+ENCODING 4953
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+1800
+1800
+3000
+6000
+C600
+C300
+E300
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni135A
+ENCODING 4954
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+1800
+1800
+3000
+6000
+D600
+D300
+F300
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1361
+ENCODING 4961
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1362
+ENCODING 4962
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1363
+ENCODING 4963
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0300
+FF00
+C000
+1800
+1800
+0000
+0000
+1800
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1364
+ENCODING 4964
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0300
+FF00
+C000
+1800
+1800
+0000
+0000
+1800
+1800
+0300
+FF00
+C000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1365
+ENCODING 4965
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+1800
+0300
+FF00
+C000
+1800
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1366
+ENCODING 4966
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+1E00
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1367
+ENCODING 4967
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1368
+ENCODING 4968
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+1800
+C300
+DB00
+1800
+C300
+C300
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1369
+ENCODING 4969
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+3000
+6000
+6000
+7C00
+6600
+6600
+3C00
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni136A
+ENCODING 4970
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+3C00
+6600
+7C00
+6000
+7C00
+6600
+3C00
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni136B
+ENCODING 4971
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+7E00
+6600
+6000
+6000
+6000
+6000
+6000
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni136C
+ENCODING 4972
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+3C00
+6600
+6600
+6600
+6600
+6600
+3C00
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni136D
+ENCODING 4973
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+7F00
+0000
+1800
+1800
+3F00
+7300
+6000
+6300
+3F00
+0000
+7F00
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni136E
+ENCODING 4974
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+7F00
+0000
+3C00
+6600
+0600
+0C00
+0E00
+1B00
+1E00
+0000
+7F00
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni136F
+ENCODING 4975
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+7F00
+0000
+3C00
+6600
+0600
+0C00
+0C00
+1900
+1F00
+0000
+7F00
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni1370
+ENCODING 4976
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+7E00
+5A00
+1800
+1800
+1800
+7E00
+4200
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1371
+ENCODING 4977
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+6600
+6600
+7E00
+6600
+6600
+6400
+3800
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1372
+ENCODING 4978
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1373
+ENCODING 4979
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+7E00
+5A00
+1800
+1800
+3C00
+6600
+4200
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1374
+ENCODING 4980
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8100
+FF00
+0000
+CE00
+DB00
+DB00
+DB00
+DB00
+DB00
+7300
+0000
+FF00
+8100
+0000
+ENDCHAR
+
+STARTCHAR uni1375
+ENCODING 4981
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8100
+FF00
+0000
+DB00
+DB00
+DB00
+7F00
+0300
+0300
+0300
+0000
+FF00
+8100
+0000
+ENDCHAR
+
+STARTCHAR uni1376
+ENCODING 4982
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+3C00
+6600
+6600
+3E00
+0600
+0C00
+0C00
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1377
+ENCODING 4983
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+7E00
+5A00
+1800
+0C00
+0C00
+7E00
+4200
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni1378
+ENCODING 4984
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+7F00
+0000
+1E00
+3900
+6600
+6000
+6000
+7F00
+3F00
+0000
+7F00
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni1379
+ENCODING 4985
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+7F00
+0000
+7F00
+5500
+1400
+1400
+1400
+1400
+1400
+0000
+7F00
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni137A
+ENCODING 4986
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+7800
+6C00
+6C00
+1C00
+0600
+0C00
+0C00
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni137B
+ENCODING 4987
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4200
+7E00
+0000
+3C00
+6600
+6600
+7C00
+6000
+6000
+3000
+0000
+7E00
+4200
+0000
+ENDCHAR
+
+STARTCHAR uni137C
+ENCODING 4988
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8100
+FF00
+0000
+7600
+9900
+9900
+EE00
+8800
+8800
+4400
+0000
+FF00
+8100
+0000
+ENDCHAR
+
+STARTCHAR uni16A0
+ENCODING 5792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+1200
+1400
+1900
+1200
+1400
+1800
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A1
+ENCODING 5793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+1100
+1200
+1400
+1900
+1200
+1400
+1800
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A2
+ENCODING 5794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2800
+2400
+2400
+2200
+2200
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A3
+ENCODING 5795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+6000
+5000
+5000
+4800
+4400
+5400
+5200
+5100
+5100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A4
+ENCODING 5796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2800
+2400
+2400
+2200
+2A00
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A5
+ENCODING 5797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2800
+2400
+2400
+3200
+2A00
+2A00
+2A00
+2A00
+2A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A6
+ENCODING 5798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1E00
+1100
+1100
+1100
+1E00
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A7
+ENCODING 5799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1E00
+1100
+1500
+1500
+1100
+1E00
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A8
+ENCODING 5800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1400
+1200
+1000
+1800
+1400
+1200
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16A9
+ENCODING 5801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+1A00
+1400
+1100
+1A00
+1400
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AA
+ENCODING 5802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+1A00
+1400
+1000
+1800
+1400
+1200
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AB
+ENCODING 5803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0C00
+0A00
+0900
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AC
+ENCODING 5804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+2800
+1800
+0C00
+2A00
+1800
+0C00
+0A00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AD
+ENCODING 5805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0C00
+0A00
+0800
+0C00
+0A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AE
+ENCODING 5806
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+1800
+2800
+0800
+1800
+2800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16AF
+ENCODING 5807
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0A00
+0C00
+1800
+2A00
+0C00
+1800
+2800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B0
+ENCODING 5808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0A00
+0C00
+1800
+2800
+0800
+1800
+2800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B1
+ENCODING 5809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2C00
+2200
+2400
+2800
+3000
+2800
+2400
+2400
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B2
+ENCODING 5810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0400
+0800
+1000
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B3
+ENCODING 5811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+2000
+2000
+2000
+3000
+2800
+2400
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B4
+ENCODING 5812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+2400
+3800
+2000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B5
+ENCODING 5813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2A00
+2A00
+2400
+3800
+2000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B6
+ENCODING 5814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+2400
+7800
+7000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B7
+ENCODING 5815
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+1400
+1400
+0800
+0800
+1400
+1400
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B8
+ENCODING 5816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+1400
+1400
+2A00
+2A00
+1400
+1400
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16B9
+ENCODING 5817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2C00
+2200
+2400
+2800
+3000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BA
+ENCODING 5818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2100
+2100
+2100
+3100
+2900
+2500
+2300
+2100
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BB
+ENCODING 5819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2100
+2100
+3100
+2900
+2500
+3300
+2900
+2500
+2300
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BC
+ENCODING 5820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+2A00
+1C00
+0800
+1C00
+2A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BD
+ENCODING 5821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+1C00
+1C00
+1C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BE
+ENCODING 5822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+2800
+1800
+0800
+0C00
+0A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16BF
+ENCODING 5823
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0C00
+0A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C0
+ENCODING 5824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+2800
+1C00
+1C00
+1C00
+0A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C1
+ENCODING 5825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C2
+ENCODING 5826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+1C00
+1C00
+1C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C3
+ENCODING 5827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1000
+2000
+4400
+2200
+1100
+0200
+0400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C4
+ENCODING 5828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+2A00
+4900
+4900
+2A00
+1C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C5
+ENCODING 5829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0A00
+0C00
+0800
+1800
+2800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C6
+ENCODING 5830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+1800
+2800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C7
+ENCODING 5831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0800
+0800
+4800
+2800
+1800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C8
+ENCODING 5832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6200
+5400
+4800
+4000
+4000
+4800
+5400
+6200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16C9
+ENCODING 5833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+2A00
+1C00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CA
+ENCODING 5834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0800
+1000
+0800
+0400
+0400
+0800
+1000
+0800
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CB
+ENCODING 5835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2100
+2300
+2500
+2900
+3100
+2100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CC
+ENCODING 5836
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CD
+ENCODING 5837
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+1C00
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CE
+ENCODING 5838
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+2A00
+1C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16CF
+ENCODING 5839
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D0
+ENCODING 5840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1800
+2800
+4800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D1
+ENCODING 5841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1800
+2800
+4800
+0800
+1C00
+1C00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D2
+ENCODING 5842
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+2C00
+2200
+2400
+3800
+2800
+2400
+2200
+2C00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D3
+ENCODING 5843
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1400
+1800
+1000
+1400
+1800
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D4
+ENCODING 5844
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+2200
+2A00
+2200
+3C00
+2200
+2A00
+2A00
+2200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D5
+ENCODING 5845
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2100
+2200
+2400
+2800
+3000
+3000
+2800
+2400
+2200
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D6
+ENCODING 5846
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6300
+5500
+4900
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D7
+ENCODING 5847
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6300
+5500
+4900
+5500
+6300
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D8
+ENCODING 5848
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+2A00
+1C00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16D9
+ENCODING 5849
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+1C00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DA
+ENCODING 5850
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DB
+ENCODING 5851
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0800
+1C00
+1C00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DC
+ENCODING 5852
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DD
+ENCODING 5853
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+2200
+1400
+1C00
+2200
+2200
+1400
+1C00
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DE
+ENCODING 5854
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6300
+5500
+5500
+4900
+4900
+5500
+5500
+6300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16DF
+ENCODING 5855
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E0
+ENCODING 5856
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+5D00
+2A00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E1
+ENCODING 5857
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+4900
+2A00
+1C00
+0800
+1C00
+2A00
+4900
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E2
+ENCODING 5858
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0900
+0D00
+0A00
+0800
+0800
+0800
+0800
+2800
+5800
+4800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E3
+ENCODING 5859
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+1C00
+2A00
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E4
+ENCODING 5860
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+2A00
+1C00
+2A00
+2A00
+1C00
+2A00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E5
+ENCODING 5861
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6300
+5D00
+6300
+4100
+4100
+6300
+5D00
+6300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E6
+ENCODING 5862
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E7
+ENCODING 5863
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E8
+ENCODING 5864
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+0800
+0800
+0800
+0800
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16E9
+ENCODING 5865
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+1A00
+2200
+1200
+0A00
+0600
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16EA
+ENCODING 5866
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+7800
+2100
+2300
+2500
+2900
+3100
+2100
+0780
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16EB
+ENCODING 5867
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16EC
+ENCODING 5868
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16ED
+ENCODING 5869
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+7E00
+7E00
+1800
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16EE
+ENCODING 5870
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0800
+1800
+2800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16EF
+ENCODING 5871
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+3E00
+0800
+0800
+0800
+0800
+3E00
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni16F0
+ENCODING 5872
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+3E00
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E00
+ENCODING 7680
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4D00
+1200
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E01
+ENCODING 7681
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0C00
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni1E02
+ENCODING 7682
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+7E00
+2100
+2100
+2100
+3E00
+2100
+2100
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E03
+ENCODING 7683
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E04
+ENCODING 7684
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+3E00
+2100
+2100
+2100
+2100
+7E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E05
+ENCODING 7685
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E06
+ENCODING 7686
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+3E00
+2100
+2100
+2100
+2100
+7E00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E07
+ENCODING 7687
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E08
+ENCODING 7688
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR uni1E09
+ENCODING 7689
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0C00
+2400
+1800
+ENDCHAR
+
+STARTCHAR uni1E0A
+ENCODING 7690
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E0B
+ENCODING 7691
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E0C
+ENCODING 7692
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E0D
+ENCODING 7693
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E0E
+ENCODING 7694
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E0F
+ENCODING 7695
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E10
+ENCODING 7696
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0400
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni1E11
+ENCODING 7697
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0400
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni1E12
+ENCODING 7698
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E13
+ENCODING 7699
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E14
+ENCODING 7700
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+0000
+3E00
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E15
+ENCODING 7701
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+0000
+3E00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E16
+ENCODING 7702
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+3E00
+0000
+7F00
+4000
+4000
+7800
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E17
+ENCODING 7703
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+3E00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E18
+ENCODING 7704
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E19
+ENCODING 7705
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E1A
+ENCODING 7706
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0000
+3100
+4E00
+ENDCHAR
+
+STARTCHAR uni1E1B
+ENCODING 7707
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+3100
+4E00
+ENDCHAR
+
+STARTCHAR uni1E1C
+ENCODING 7708
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0400
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni1E1D
+ENCODING 7709
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0400
+1200
+0C00
+ENDCHAR
+
+STARTCHAR uni1E1E
+ENCODING 7710
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E1F
+ENCODING 7711
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+0E00
+1100
+1000
+1000
+7C00
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E20
+ENCODING 7712
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3E00
+4100
+4000
+4000
+4700
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E21
+ENCODING 7713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3D00
+4200
+4200
+4200
+3C00
+4000
+3E00
+4100
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni1E22
+ENCODING 7714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E23
+ENCODING 7715
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E24
+ENCODING 7716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E25
+ENCODING 7717
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E26
+ENCODING 7718
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E27
+ENCODING 7719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+1200
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E28
+ENCODING 7720
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+2000
+9000
+6000
+ENDCHAR
+
+STARTCHAR uni1E29
+ENCODING 7721
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+2000
+9000
+6000
+ENDCHAR
+
+STARTCHAR uni1E2A
+ENCODING 7722
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni1E2B
+ENCODING 7723
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni1E2C
+ENCODING 7724
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+1900
+2600
+ENDCHAR
+
+STARTCHAR uni1E2D
+ENCODING 7725
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+1900
+2600
+ENDCHAR
+
+STARTCHAR uni1E2E
+ENCODING 7726
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+2200
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E2F
+ENCODING 7727
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+2200
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E30
+ENCODING 7728
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E31
+ENCODING 7729
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+4800
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E32
+ENCODING 7730
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E33
+ENCODING 7731
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E34
+ENCODING 7732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E35
+ENCODING 7733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4100
+4600
+5800
+6000
+5800
+4600
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E36
+ENCODING 7734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E37
+ENCODING 7735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E38
+ENCODING 7736
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E39
+ENCODING 7737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E3A
+ENCODING 7738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E3B
+ENCODING 7739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E3C
+ENCODING 7740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E3D
+ENCODING 7741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0800
+1400
+2200
+ENDCHAR
+
+STARTCHAR uni1E3E
+ENCODING 7742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E3F
+ENCODING 7743
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E40
+ENCODING 7744
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E41
+ENCODING 7745
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E42
+ENCODING 7746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E43
+ENCODING 7747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E44
+ENCODING 7748
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E45
+ENCODING 7749
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E46
+ENCODING 7750
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E47
+ENCODING 7751
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E48
+ENCODING 7752
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E49
+ENCODING 7753
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E4A
+ENCODING 7754
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+5100
+4900
+4500
+4300
+4100
+4100
+4100
+0800
+1400
+0000
+ENDCHAR
+
+STARTCHAR uni1E4B
+ENCODING 7755
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0800
+1400
+0000
+ENDCHAR
+
+STARTCHAR uni1E4C
+ENCODING 7756
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+3100
+4E00
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E4D
+ENCODING 7757
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+3100
+4E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E4E
+ENCODING 7758
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+0000
+3100
+4E00
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E4F
+ENCODING 7759
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+0000
+3100
+4E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E50
+ENCODING 7760
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E51
+ENCODING 7761
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0800
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E52
+ENCODING 7762
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E53
+ENCODING 7763
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+0000
+3E00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E54
+ENCODING 7764
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+7E00
+4100
+4100
+7E00
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E55
+ENCODING 7765
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni1E56
+ENCODING 7766
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+7E00
+4100
+4100
+4100
+7E00
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E57
+ENCODING 7767
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0000
+5E00
+6100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni1E58
+ENCODING 7768
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+7E00
+4100
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E59
+ENCODING 7769
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E5A
+ENCODING 7770
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+4100
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni1E5B
+ENCODING 7771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E5C
+ENCODING 7772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+7E00
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1E5D
+ENCODING 7773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E5E
+ENCODING 7774
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4800
+4400
+4200
+4100
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E5F
+ENCODING 7775
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4E00
+3100
+2100
+2000
+2000
+2000
+2000
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E60
+ENCODING 7776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+3E00
+4100
+4000
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E61
+ENCODING 7777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E62
+ENCODING 7778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4000
+3800
+0600
+0100
+4100
+4100
+3E00
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E63
+ENCODING 7779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E64
+ENCODING 7780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1100
+1200
+0400
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E65
+ENCODING 7781
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+1200
+0400
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E66
+ENCODING 7782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2200
+1400
+0800
+3E00
+4100
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E67
+ENCODING 7783
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2200
+1400
+0800
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E68
+ENCODING 7784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+3E00
+4100
+4000
+4000
+3E00
+0100
+4100
+4100
+3E00
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E69
+ENCODING 7785
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0000
+3E00
+4100
+4000
+3E00
+0100
+4100
+3E00
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E6A
+ENCODING 7786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E6B
+ENCODING 7787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E6C
+ENCODING 7788
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E6D
+ENCODING 7789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni1E6E
+ENCODING 7790
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E6F
+ENCODING 7791
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E70
+ENCODING 7792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0800
+1400
+ENDCHAR
+
+STARTCHAR uni1E71
+ENCODING 7793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0800
+1400
+ENDCHAR
+
+STARTCHAR uni1E72
+ENCODING 7794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+2200
+2200
+ENDCHAR
+
+STARTCHAR uni1E73
+ENCODING 7795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+2400
+2400
+ENDCHAR
+
+STARTCHAR uni1E74
+ENCODING 7796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+1900
+2600
+ENDCHAR
+
+STARTCHAR uni1E75
+ENCODING 7797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+3200
+4C00
+ENDCHAR
+
+STARTCHAR uni1E76
+ENCODING 7798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+1400
+ENDCHAR
+
+STARTCHAR uni1E77
+ENCODING 7799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+1800
+2400
+ENDCHAR
+
+STARTCHAR uni1E78
+ENCODING 7800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0800
+1900
+2600
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E79
+ENCODING 7801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1000
+0000
+3200
+4C00
+0000
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E7A
+ENCODING 7802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+0000
+3E00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E7B
+ENCODING 7803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+0000
+7E00
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E7C
+ENCODING 7804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1900
+2600
+0000
+4100
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E7D
+ENCODING 7805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E7E
+ENCODING 7806
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E7F
+ENCODING 7807
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR Wgrave
+ENCODING 7808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+4100
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR wgrave
+ENCODING 7809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Wacute
+ENCODING 7810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+4100
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR wacute
+ENCODING 7811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Wdieresis
+ENCODING 7812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR wdieresis
+ENCODING 7813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E86
+ENCODING 7814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+4100
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E87
+ENCODING 7815
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E88
+ENCODING 7816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4900
+4900
+4900
+4900
+5500
+2200
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E89
+ENCODING 7817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E8A
+ENCODING 7818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0000
+8100
+4200
+2400
+1800
+1800
+2400
+4200
+8100
+8100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E8B
+ENCODING 7819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E8C
+ENCODING 7820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E8D
+ENCODING 7821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E8E
+ENCODING 7822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0000
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E8F
+ENCODING 7823
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni1E90
+ENCODING 7824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E91
+ENCODING 7825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E92
+ENCODING 7826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+7F00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E93
+ENCODING 7827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1E94
+ENCODING 7828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+7F00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E95
+ENCODING 7829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E96
+ENCODING 7830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni1E97
+ENCODING 7831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+2400
+0000
+1000
+7E00
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E98
+ENCODING 7832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+1200
+0C00
+0000
+4100
+4100
+4900
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E99
+ENCODING 7833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+2400
+1800
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni1E9A
+ENCODING 7834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0600
+0100
+0100
+0600
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1E9B
+ENCODING 7835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0000
+0E00
+1100
+1000
+1000
+7000
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA0
+ENCODING 7840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EA1
+ENCODING 7841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1EA2
+ENCODING 7842
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+0400
+0800
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA3
+ENCODING 7843
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+0400
+0800
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA4
+ENCODING 7844
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA5
+ENCODING 7845
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0080
+3100
+4A00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA6
+ENCODING 7846
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+4600
+2900
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA7
+ENCODING 7847
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+4600
+2900
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA8
+ENCODING 7848
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0600
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EA9
+ENCODING 7849
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0600
+0100
+3200
+4800
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EAA
+ENCODING 7850
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0A00
+1400
+1800
+2400
+3E00
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EAB
+ENCODING 7851
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+2800
+1800
+2400
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EAC
+ENCODING 7852
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EAD
+ENCODING 7853
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EAE
+ENCODING 7854
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+4900
+3200
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EAF
+ENCODING 7855
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0080
+4900
+3200
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB0
+ENCODING 7856
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+4900
+2600
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB1
+ENCODING 7857
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+4900
+2600
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB2
+ENCODING 7858
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2200
+1C00
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB3
+ENCODING 7859
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+2200
+1C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB4
+ENCODING 7860
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0A00
+1400
+2200
+1C00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB5
+ENCODING 7861
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0A00
+1400
+2200
+1C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EB6
+ENCODING 7862
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+3E00
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EB7
+ENCODING 7863
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3E00
+0100
+0100
+3F00
+4100
+4300
+3D00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EB8
+ENCODING 7864
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4000
+4000
+4000
+7C00
+4000
+4000
+4000
+4000
+7F00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EB9
+ENCODING 7865
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EBA
+ENCODING 7866
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EBB
+ENCODING 7867
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EBC
+ENCODING 7868
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1900
+2600
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EBD
+ENCODING 7869
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EBE
+ENCODING 7870
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+3100
+4A00
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EBF
+ENCODING 7871
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0080
+3100
+4A00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC0
+ENCODING 7872
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+4600
+2900
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC1
+ENCODING 7873
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+4600
+2900
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC2
+ENCODING 7874
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0600
+3100
+4A00
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC3
+ENCODING 7875
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+3100
+4A00
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC4
+ENCODING 7876
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3200
+4C00
+0800
+1400
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC5
+ENCODING 7877
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3200
+4C00
+1000
+2800
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC6
+ENCODING 7878
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+7F00
+4000
+4000
+7C00
+4000
+4000
+4000
+7F00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EC7
+ENCODING 7879
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+7F00
+4000
+4000
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EC8
+ENCODING 7880
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EC9
+ENCODING 7881
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ECA
+ENCODING 7882
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1ECB
+ENCODING 7883
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1ECC
+ENCODING 7884
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1ECD
+ENCODING 7885
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1ECE
+ENCODING 7886
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ECF
+ENCODING 7887
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED0
+ENCODING 7888
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED1
+ENCODING 7889
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0080
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED2
+ENCODING 7890
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+4600
+2900
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED3
+ENCODING 7891
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+4600
+2900
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED4
+ENCODING 7892
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0600
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED5
+ENCODING 7893
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+3100
+4A00
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED6
+ENCODING 7894
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1900
+2600
+1C00
+2200
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED7
+ENCODING 7895
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1900
+2600
+0000
+1C00
+2200
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1ED8
+ENCODING 7896
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1ED9
+ENCODING 7897
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EDA
+ENCODING 7898
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EDB
+ENCODING 7899
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EDC
+ENCODING 7900
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EDD
+ENCODING 7901
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EDE
+ENCODING 7902
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EDF
+ENCODING 7903
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE0
+ENCODING 7904
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1900
+2600
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE1
+ENCODING 7905
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE2
+ENCODING 7906
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EE3
+ENCODING 7907
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C80
+4280
+4300
+4200
+4200
+4200
+3C00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EE4
+ENCODING 7908
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EE5
+ENCODING 7909
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni1EE6
+ENCODING 7910
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE7
+ENCODING 7911
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+0800
+0000
+4200
+4200
+4200
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE8
+ENCODING 7912
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0400
+0800
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EE9
+ENCODING 7913
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EEA
+ENCODING 7914
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EEB
+ENCODING 7915
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+2000
+1000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EEC
+ENCODING 7916
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EED
+ENCODING 7917
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+0800
+1000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EEE
+ENCODING 7918
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+4C00
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EEF
+ENCODING 7919
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+4C00
+0000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EF0
+ENCODING 7920
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+4200
+3E00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EF1
+ENCODING 7921
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4280
+4280
+4300
+4200
+4200
+4200
+3D00
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR Ygrave
+ENCODING 7922
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0800
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ygrave
+ENCODING 7923
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni1EF4
+ENCODING 7924
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni1EF5
+ENCODING 7925
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4280
+3C80
+ENDCHAR
+
+STARTCHAR uni1EF6
+ENCODING 7926
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1800
+0400
+0800
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EF7
+ENCODING 7927
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+0800
+1000
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni1EF8
+ENCODING 7928
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1900
+2600
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1EF9
+ENCODING 7929
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3200
+4C00
+0000
+4200
+4200
+4200
+4200
+4200
+4600
+3A00
+0200
+4200
+3C00
+ENDCHAR
+
+STARTCHAR uni1F00
+ENCODING 7936
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F01
+ENCODING 7937
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F02
+ENCODING 7938
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F03
+ENCODING 7939
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F04
+ENCODING 7940
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F05
+ENCODING 7941
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F06
+ENCODING 7942
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F07
+ENCODING 7943
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F08
+ENCODING 7944
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+4A00
+9100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F09
+ENCODING 7945
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+8A00
+5100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0A
+ENCODING 7946
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E200
+5500
+8880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0B
+ENCODING 7947
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E200
+9500
+4880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0C
+ENCODING 7948
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D200
+6500
+8880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0D
+ENCODING 7949
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D200
+A500
+4880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0E
+ENCODING 7950
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+0A00
+D100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F0F
+ENCODING 7951
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+0A00
+D100
+9100
+5100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F10
+ENCODING 7952
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F11
+ENCODING 7953
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F12
+ENCODING 7954
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F13
+ENCODING 7955
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F14
+ENCODING 7956
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F15
+ENCODING 7957
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F18
+ENCODING 7960
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+5000
+9000
+1000
+1C00
+1000
+1000
+1000
+1000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F19
+ENCODING 7961
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+9000
+5000
+1000
+1C00
+1000
+1000
+1000
+1000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F1A
+ENCODING 7962
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+EF80
+5800
+8800
+0800
+0E00
+0800
+0800
+0800
+0800
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F1B
+ENCODING 7963
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+EF80
+9800
+4800
+0800
+0E00
+0800
+0800
+0800
+0800
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F1C
+ENCODING 7964
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF80
+6800
+8800
+0800
+0E00
+0800
+0800
+0800
+0800
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F1D
+ENCODING 7965
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF80
+A800
+4800
+0800
+0E00
+0800
+0800
+0800
+0800
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F20
+ENCODING 7968
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F21
+ENCODING 7969
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F22
+ENCODING 7970
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F23
+ENCODING 7971
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F24
+ENCODING 7972
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F25
+ENCODING 7973
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F26
+ENCODING 7974
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F27
+ENCODING 7975
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F28
+ENCODING 7976
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F29
+ENCODING 7977
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+9100
+5100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2A
+ENCODING 7978
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E880
+5880
+8880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2B
+ENCODING 7979
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E880
+9880
+4880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2C
+ENCODING 7980
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D880
+6880
+8880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2D
+ENCODING 7981
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D880
+A880
+4880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2E
+ENCODING 7982
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+1100
+D100
+5100
+9F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F2F
+ENCODING 7983
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+1100
+D100
+9100
+5F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F30
+ENCODING 7984
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0800
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F31
+ENCODING 7985
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+1000
+0800
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F32
+ENCODING 7986
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F33
+ENCODING 7987
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F34
+ENCODING 7988
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F35
+ENCODING 7989
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F36
+ENCODING 7990
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3400
+5800
+0800
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F37
+ENCODING 7991
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3400
+5800
+1000
+0800
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F38
+ENCODING 7992
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+4400
+8400
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F39
+ENCODING 7993
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+8400
+4400
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3A
+ENCODING 7994
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+EF80
+5200
+8200
+0200
+0200
+0200
+0200
+0200
+0200
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3B
+ENCODING 7995
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+EF80
+9200
+4200
+0200
+0200
+0200
+0200
+0200
+0200
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3C
+ENCODING 7996
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF80
+6200
+8200
+0200
+0200
+0200
+0200
+0200
+0200
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3D
+ENCODING 7997
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF80
+A200
+4200
+0200
+0200
+0200
+0200
+0200
+0200
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3E
+ENCODING 7998
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+0400
+C400
+4400
+8400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F3F
+ENCODING 7999
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DF00
+0400
+C400
+8400
+4400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F40
+ENCODING 8000
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F41
+ENCODING 8001
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F42
+ENCODING 8002
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F43
+ENCODING 8003
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F44
+ENCODING 8004
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F45
+ENCODING 8005
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F48
+ENCODING 8008
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+5100
+9100
+1100
+1100
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F49
+ENCODING 8009
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+9100
+5100
+1100
+1100
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F4A
+ENCODING 8010
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+5880
+8880
+0880
+0880
+0880
+0880
+0880
+0880
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F4B
+ENCODING 8011
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+9880
+4880
+0880
+0880
+0880
+0880
+0880
+0880
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F4C
+ENCODING 8012
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+6880
+8880
+0880
+0880
+0880
+0880
+0880
+0880
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F4D
+ENCODING 8013
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+A880
+4880
+0880
+0880
+0880
+0880
+0880
+0880
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F50
+ENCODING 8016
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F51
+ENCODING 8017
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F52
+ENCODING 8018
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F53
+ENCODING 8019
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F54
+ENCODING 8020
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F55
+ENCODING 8021
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F56
+ENCODING 8022
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F57
+ENCODING 8023
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F59
+ENCODING 8025
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+9100
+4A00
+0A00
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F5B
+ENCODING 8027
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E880
+9880
+4500
+0500
+0200
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F5D
+ENCODING 8029
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D880
+A880
+4500
+0500
+0200
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F5F
+ENCODING 8031
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+1100
+CA00
+8A00
+4400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F60
+ENCODING 8032
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F61
+ENCODING 8033
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F62
+ENCODING 8034
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F63
+ENCODING 8035
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F64
+ENCODING 8036
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F65
+ENCODING 8037
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F66
+ENCODING 8038
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F67
+ENCODING 8039
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F68
+ENCODING 8040
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+5100
+9100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F69
+ENCODING 8041
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+9100
+5100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6A
+ENCODING 8042
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+5880
+8880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6B
+ENCODING 8043
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+9880
+4880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6C
+ENCODING 8044
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+6880
+8880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6D
+ENCODING 8045
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+A880
+4880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6E
+ENCODING 8046
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+1100
+D100
+5100
+9100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F6F
+ENCODING 8047
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+1100
+D100
+9100
+5100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F70
+ENCODING 8048
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F71
+ENCODING 8049
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F72
+ENCODING 8050
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F73
+ENCODING 8051
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4000
+3C00
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F74
+ENCODING 8052
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F75
+ENCODING 8053
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1F76
+ENCODING 8054
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+2000
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F77
+ENCODING 8055
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F78
+ENCODING 8056
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F79
+ENCODING 8057
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F7A
+ENCODING 8058
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F7B
+ENCODING 8059
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F7C
+ENCODING 8060
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F7D
+ENCODING 8061
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1F80
+ENCODING 8064
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F81
+ENCODING 8065
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F82
+ENCODING 8066
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F83
+ENCODING 8067
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F84
+ENCODING 8068
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F85
+ENCODING 8069
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F86
+ENCODING 8070
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F87
+ENCODING 8071
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1F88
+ENCODING 8072
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+4A00
+9100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F89
+ENCODING 8073
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+8A00
+5100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F8A
+ENCODING 8074
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E200
+5500
+8880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F8B
+ENCODING 8075
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E200
+9500
+4880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F8C
+ENCODING 8076
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D200
+6500
+8880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F8D
+ENCODING 8077
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D200
+A500
+4880
+0880
+0880
+0880
+0F80
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F8E
+ENCODING 8078
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+0A00
+D100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F8F
+ENCODING 8079
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C400
+0A00
+D100
+9100
+5100
+1100
+1F00
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F90
+ENCODING 8080
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F91
+ENCODING 8081
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F92
+ENCODING 8082
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F93
+ENCODING 8083
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F94
+ENCODING 8084
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F95
+ENCODING 8085
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F96
+ENCODING 8086
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F97
+ENCODING 8087
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1F98
+ENCODING 8088
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F99
+ENCODING 8089
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+9100
+5100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F9A
+ENCODING 8090
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E880
+5880
+8880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F9B
+ENCODING 8091
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E880
+9880
+4880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F9C
+ENCODING 8092
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D880
+6880
+8880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F9D
+ENCODING 8093
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D880
+A880
+4880
+0880
+0F80
+0880
+0880
+0880
+0880
+0880
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1F9E
+ENCODING 8094
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+1100
+D100
+5100
+9F00
+1100
+1100
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1F9F
+ENCODING 8095
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D100
+1100
+D100
+9100
+5F00
+1100
+1100
+1100
+1100
+1100
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1FA0
+ENCODING 8096
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA1
+ENCODING 8097
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA2
+ENCODING 8098
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA3
+ENCODING 8099
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA4
+ENCODING 8100
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA5
+ENCODING 8101
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA6
+ENCODING 8102
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA7
+ENCODING 8103
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1A00
+2C00
+0800
+0400
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FA8
+ENCODING 8104
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+5100
+9100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1FA9
+ENCODING 8105
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+9100
+5100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1FAA
+ENCODING 8106
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+5880
+8880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1FAB
+ENCODING 8107
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+E700
+9880
+4880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1FAC
+ENCODING 8108
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+6880
+8880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1FAD
+ENCODING 8109
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+D700
+A880
+4880
+0880
+0880
+0880
+0880
+0500
+0500
+0D80
+0000
+0200
+0300
+ENDCHAR
+
+STARTCHAR uni1FAE
+ENCODING 8110
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+1100
+D100
+5100
+9100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1FAF
+ENCODING 8111
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+CE00
+1100
+D100
+9100
+5100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0400
+0600
+ENDCHAR
+
+STARTCHAR uni1FB0
+ENCODING 8112
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FB1
+ENCODING 8113
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FB2
+ENCODING 8114
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FB3
+ENCODING 8115
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FB4
+ENCODING 8116
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FB6
+ENCODING 8118
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FB7
+ENCODING 8119
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FB8
+ENCODING 8120
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FB9
+ENCODING 8121
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+1C00
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FBA
+ENCODING 8122
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8400
+4A00
+3100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FBB
+ENCODING 8123
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+4A00
+9100
+1100
+1100
+1100
+1F00
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FBC
+ENCODING 8124
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FBD
+ENCODING 8125
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FBE
+ENCODING 8126
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+1000
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FBF
+ENCODING 8127
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FC0
+ENCODING 8128
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1A00
+2C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FC1
+ENCODING 8129
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1A00
+2C00
+0000
+6600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FC2
+ENCODING 8130
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1FC3
+ENCODING 8131
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1FC4
+ENCODING 8132
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1FC6
+ENCODING 8134
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+0100
+0100
+ENDCHAR
+
+STARTCHAR uni1FC7
+ENCODING 8135
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+5E00
+6100
+4100
+4100
+4100
+4100
+4100
+0100
+4100
+6100
+ENDCHAR
+
+STARTCHAR uni1FC8
+ENCODING 8136
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+9F00
+5000
+3000
+1000
+1C00
+1000
+1000
+1000
+1000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FC9
+ENCODING 8137
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+5000
+9000
+1000
+1C00
+1000
+1000
+1000
+1000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FCA
+ENCODING 8138
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+9100
+5100
+3100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FCB
+ENCODING 8139
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+5100
+9100
+1100
+1F00
+1100
+1100
+1100
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FCC
+ENCODING 8140
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+4100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FCD
+ENCODING 8141
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+1200
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FCE
+ENCODING 8142
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+1400
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FCF
+ENCODING 8143
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1A00
+2C00
+0400
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD0
+ENCODING 8144
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4400
+3800
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD1
+ENCODING 8145
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7C00
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD2
+ENCODING 8146
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+9200
+8A00
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD3
+ENCODING 8147
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD6
+ENCODING 8150
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3200
+4C00
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD7
+ENCODING 8151
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3200
+4C00
+0000
+6600
+0000
+1000
+1000
+1000
+1000
+1000
+1200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD8
+ENCODING 8152
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FD9
+ENCODING 8153
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FDA
+ENCODING 8154
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+9F00
+4400
+2400
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FDB
+ENCODING 8155
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3F00
+4400
+8400
+0400
+0400
+0400
+0400
+0400
+0400
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FDD
+ENCODING 8157
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3400
+2200
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FDE
+ENCODING 8158
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3200
+2400
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FDF
+ENCODING 8159
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1A00
+2C00
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE0
+ENCODING 8160
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1C00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE1
+ENCODING 8161
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE2
+ENCODING 8162
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+4900
+4500
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE3
+ENCODING 8163
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE4
+ENCODING 8164
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0400
+0800
+0000
+3E00
+4100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni1FE5
+ENCODING 8165
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+3E00
+4100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni1FE6
+ENCODING 8166
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE7
+ENCODING 8167
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1900
+2600
+0000
+6300
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE8
+ENCODING 8168
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+1C00
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FE9
+ENCODING 8169
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FEA
+ENCODING 8170
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+9100
+5100
+2A00
+0A00
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FEB
+ENCODING 8171
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+5100
+8A00
+0A00
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FEC
+ENCODING 8172
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+DE00
+9100
+5100
+1100
+1E00
+1000
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FED
+ENCODING 8173
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+4900
+4500
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FEE
+ENCODING 8174
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+4900
+5100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FEF
+ENCODING 8175
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FF2
+ENCODING 8178
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FF3
+ENCODING 8179
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FF4
+ENCODING 8180
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0400
+0800
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FF6
+ENCODING 8182
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FF7
+ENCODING 8183
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1900
+2600
+0000
+4100
+4900
+4900
+4900
+4900
+4900
+3600
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FF8
+ENCODING 8184
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8E00
+5100
+3100
+1100
+1100
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FF9
+ENCODING 8185
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2E00
+5100
+9100
+1100
+1100
+1100
+1100
+1100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FFA
+ENCODING 8186
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8E00
+5100
+3100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FFB
+ENCODING 8187
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2E00
+5100
+9100
+1100
+1100
+1100
+1100
+0A00
+0A00
+1B00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FFC
+ENCODING 8188
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+4100
+3600
+1400
+7700
+0000
+0800
+0C00
+ENDCHAR
+
+STARTCHAR uni1FFD
+ENCODING 8189
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni1FFE
+ENCODING 8190
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0800
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2000
+ENCODING 8192
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2001
+ENCODING 8193
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2002
+ENCODING 8194
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2003
+ENCODING 8195
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2004
+ENCODING 8196
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2005
+ENCODING 8197
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2006
+ENCODING 8198
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2007
+ENCODING 8199
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2008
+ENCODING 8200
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2009
+ENCODING 8201
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni200A
+ENCODING 8202
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2010
+ENCODING 8208
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2011
+ENCODING 8209
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR figuredash
+ENCODING 8210
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR endash
+ENCODING 8211
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR emdash
+ENCODING 8212
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii00208
+ENCODING 8213
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2016
+ENCODING 8214
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR underscoredbl
+ENCODING 8215
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+7F00
+ENDCHAR
+
+STARTCHAR quoteleft
+ENCODING 8216
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1000
+1800
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quoteright
+ENCODING 8217
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotesinglbase
+ENCODING 8218
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+0800
+1000
+0000
+ENDCHAR
+
+STARTCHAR quotereversed
+ENCODING 8219
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1000
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotedblleft
+ENCODING 8220
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+2400
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotedblright
+ENCODING 8221
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+3600
+1200
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotedblbase
+ENCODING 8222
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+1200
+2400
+0000
+ENDCHAR
+
+STARTCHAR uni201F
+ENCODING 8223
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+3600
+2400
+1200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dagger
+ENCODING 8224
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+0800
+2A00
+7F00
+2A00
+0800
+1C00
+0800
+0800
+0800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR daggerdbl
+ENCODING 8225
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+0800
+2A00
+7F00
+2A00
+0800
+2A00
+7F00
+2A00
+0800
+1C00
+0800
+0000
+ENDCHAR
+
+STARTCHAR bullet
+ENCODING 8226
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+3E00
+3E00
+3E00
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2023
+ENCODING 8227
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+1800
+1C00
+1E00
+1C00
+1800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR onedotenleader
+ENCODING 8228
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR twodotenleader
+ENCODING 8229
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ellipsis
+ENCODING 8230
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2027
+ENCODING 8231
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni202F
+ENCODING 8239
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR perthousand
+ENCODING 8240
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2100
+5200
+5200
+2400
+0800
+0800
+1500
+2A80
+2A80
+4500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2031
+ENCODING 8241
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+A800
+A800
+5000
+2000
+2000
+5500
+AA80
+AA80
+9500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR minute
+ENCODING 8242
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR second
+ENCODING 8243
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+1200
+2400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2034
+ENCODING 8244
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4900
+4900
+9200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2035
+ENCODING 8245
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2036
+ENCODING 8246
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+1200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2037
+ENCODING 8247
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+9200
+9200
+4900
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2038
+ENCODING 8248
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+0000
+0000
+ENDCHAR
+
+STARTCHAR guilsinglleft
+ENCODING 8249
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0400
+0800
+1000
+1000
+0800
+0400
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR guilsinglright
+ENCODING 8250
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+1000
+0800
+0400
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni203B
+ENCODING 8251
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+2200
+1400
+4900
+1400
+2200
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR exclamdbl
+ENCODING 8252
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+0000
+0000
+2400
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni203D
+ENCODING 8253
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+0900
+0A00
+0C00
+0800
+0800
+0000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni203E
+ENCODING 8254
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni203F
+ENCODING 8255
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+C300
+3C00
+0000
+ENDCHAR
+
+STARTCHAR uni2040
+ENCODING 8256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3C00
+C300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2041
+ENCODING 8257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+0400
+0800
+1400
+2200
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2042
+ENCODING 8258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+2A00
+1C00
+2A00
+0800
+2200
+AA80
+7700
+AA80
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2043
+ENCODING 8259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3E00
+3E00
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fraction
+ENCODING 8260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0400
+0400
+0800
+0800
+1000
+1000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2045
+ENCODING 8261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1E00
+1000
+1000
+1000
+1000
+1C00
+1000
+1000
+1000
+1000
+1000
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2046
+ENCODING 8262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1E00
+0200
+0200
+0200
+0200
+0E00
+0200
+0200
+0200
+0200
+0200
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2048
+ENCODING 8264
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3900
+4500
+4500
+0500
+0500
+0900
+1100
+1100
+0000
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2049
+ENCODING 8265
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4E00
+5100
+5100
+4100
+4100
+4200
+4400
+4400
+0000
+4400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni204A
+ENCODING 8266
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7C00
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni204B
+ENCODING 8267
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+5100
+5100
+5100
+5E00
+5000
+5000
+5000
+5000
+5000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni204C
+ENCODING 8268
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1F00
+3D00
+3D00
+3D00
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni204D
+ENCODING 8269
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7C00
+5E00
+5E00
+5E00
+7C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zerosuperior
+ENCODING 8304
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+4800
+4800
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR foursuperior
+ENCODING 8308
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+3000
+5000
+7800
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fivesuperior
+ENCODING 8309
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+4000
+7000
+0800
+0800
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sixsuperior
+ENCODING 8310
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4000
+7000
+4800
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sevensuperior
+ENCODING 8311
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+0800
+1000
+1000
+2000
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eightsuperior
+ENCODING 8312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+3000
+4800
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ninesuperior
+ENCODING 8313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+4800
+4800
+3800
+0800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni207A
+ENCODING 8314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+7C00
+1000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni207B
+ENCODING 8315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni207C
+ENCODING 8316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7C00
+0000
+7C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenleftsuperior
+ENCODING 8317
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+2000
+2000
+2000
+2000
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenrightsuperior
+ENCODING 8318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1000
+1000
+1000
+1000
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR nsuperior
+ENCODING 8319
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+4800
+4800
+4800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zeroinferior
+ENCODING 8320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+4800
+4800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR oneinferior
+ENCODING 8321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+6000
+2000
+2000
+2000
+7000
+0000
+ENDCHAR
+
+STARTCHAR twoinferior
+ENCODING 8322
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+0800
+3000
+4000
+7800
+0000
+ENDCHAR
+
+STARTCHAR threeinferior
+ENCODING 8323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+1000
+0800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR fourinferior
+ENCODING 8324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+3000
+5000
+7800
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR fiveinferior
+ENCODING 8325
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7800
+4000
+7000
+0800
+0800
+7000
+0000
+ENDCHAR
+
+STARTCHAR sixinferior
+ENCODING 8326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4000
+7000
+4800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR seveninferior
+ENCODING 8327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7800
+0800
+1000
+1000
+2000
+2000
+0000
+ENDCHAR
+
+STARTCHAR eightinferior
+ENCODING 8328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+3000
+4800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR nineinferior
+ENCODING 8329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+4800
+3800
+0800
+3000
+0000
+ENDCHAR
+
+STARTCHAR uni208A
+ENCODING 8330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+7C00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni208B
+ENCODING 8331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni208C
+ENCODING 8332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7C00
+0000
+7C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenleftinferior
+ENCODING 8333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+2000
+2000
+2000
+2000
+1000
+0000
+ENDCHAR
+
+STARTCHAR parenrightinferior
+ENCODING 8334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2000
+1000
+1000
+1000
+1000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uni20A0
+ENCODING 8352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+8000
+8000
+8F00
+8800
+8800
+7E00
+0800
+0800
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR colonmonetary
+ENCODING 8353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+3E00
+4500
+4400
+4800
+4800
+5000
+5000
+6000
+6100
+7E00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20A2
+ENCODING 8354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4F00
+4800
+4800
+4800
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR franc
+ENCODING 8355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2000
+2000
+2000
+7B00
+2C00
+2800
+2800
+2800
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lira
+ENCODING 8356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+1000
+7C00
+1000
+7C00
+1000
+3000
+5100
+2E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20A5
+ENCODING 8357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0080
+7700
+4B00
+4D00
+4900
+5900
+6900
+4100
+8000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20A6
+ENCODING 8358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6100
+FF80
+4900
+FF80
+4300
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR peseta
+ENCODING 8359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+FF80
+4100
+7E00
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20A8
+ENCODING 8360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+4400
+FE00
+4400
+7B80
+6400
+5300
+4880
+4480
+4700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20A9
+ENCODING 8361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+FF80
+4900
+FF80
+4900
+4900
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57636
+ENCODING 8362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4500
+5500
+5500
+5500
+5500
+5500
+5500
+5100
+4E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dong
+ENCODING 8363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+3F00
+0100
+3D00
+4300
+4100
+4300
+3C00
+0000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Euro
+ENCODING 8364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0E00
+1100
+2000
+7C00
+2000
+7C00
+2000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20AD
+ENCODING 8365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+FE00
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20AE
+ENCODING 8366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0C00
+1800
+0800
+0C00
+1800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20AF
+ENCODING 8367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+3C00
+5200
+1100
+1100
+1100
+1100
+3100
+5900
+2600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D0
+ENCODING 8400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D1
+ENCODING 8401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D2
+ENCODING 8402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D3
+ENCODING 8403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D4
+ENCODING 8404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+5E00
+6100
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D5
+ENCODING 8405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3D00
+4300
+0700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D6
+ENCODING 8406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+7F00
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D7
+ENCODING 8407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+7F00
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D8
+ENCODING 8408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+1200
+1200
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20D9
+ENCODING 8409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1E00
+2100
+2100
+2500
+2D00
+1E00
+0C00
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20DA
+ENCODING 8410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1E00
+2100
+2100
+2900
+2D00
+1E00
+0C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20DB
+ENCODING 8411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2A00
+2A00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20DC
+ENCODING 8412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+5500
+5500
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20DD
+ENCODING 8413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1C00
+2200
+4100
+4100
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+4100
+4100
+2200
+1C00
+ENDCHAR
+
+STARTCHAR uni20DE
+ENCODING 8414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+FF80
+ENDCHAR
+
+STARTCHAR uni20DF
+ENCODING 8415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+1400
+2200
+4100
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+4100
+2200
+1400
+0800
+ENDCHAR
+
+STARTCHAR uni20E0
+ENCODING 8416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+9C00
+6200
+6100
+6100
+9080
+9080
+8880
+8880
+8880
+8480
+8480
+4300
+4300
+2300
+1C80
+ENDCHAR
+
+STARTCHAR uni20E1
+ENCODING 8417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+7F00
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni20E2
+ENCODING 8418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+4100
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+4100
+3E00
+ENDCHAR
+
+STARTCHAR uni20E3
+ENCODING 8419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+7F00
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+8080
+7F00
+ENDCHAR
+
+STARTCHAR uni2100
+ENCODING 8448
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4800
+4800
+4900
+3A00
+0400
+0B00
+1400
+2400
+4400
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2101
+ENCODING 8449
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4800
+4800
+4900
+3A00
+0400
+0B00
+1400
+2200
+4100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2102
+ENCODING 8450
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5100
+5000
+5000
+5000
+5000
+5000
+5000
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2103
+ENCODING 8451
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+AE00
+5100
+1000
+1000
+1000
+1000
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2104
+ENCODING 8452
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+3800
+5400
+5000
+5000
+5400
+3800
+1000
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii61248
+ENCODING 8453
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4200
+4200
+4400
+3800
+0A00
+1500
+2500
+2500
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2106
+ENCODING 8454
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+4200
+4200
+4400
+3800
+0D00
+1500
+2500
+2500
+4300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2107
+ENCODING 8455
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1E00
+2100
+2000
+2000
+1C00
+2000
+4000
+4100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2108
+ENCODING 8456
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5E00
+6100
+4100
+0900
+0F00
+0900
+0100
+4100
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2109
+ENCODING 8457
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+A000
+4000
+3F00
+2000
+2000
+3E00
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni210A
+ENCODING 8458
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+1100
+1100
+2200
+2200
+1380
+3C00
+2400
+4800
+7000
+ENDCHAR
+
+STARTCHAR uni210B
+ENCODING 8459
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5200
+3500
+1500
+1600
+2C00
+3800
+6800
+A800
+A800
+C600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni210C
+ENCODING 8460
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C700
+E600
+6600
+6600
+7E00
+6600
+6600
+6600
+6600
+C700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni210D
+ENCODING 8461
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5200
+5200
+5200
+5200
+5E00
+5200
+5200
+5200
+5200
+5200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni210E
+ENCODING 8462
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1000
+2000
+3E00
+2100
+2100
+4100
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni210F
+ENCODING 8463
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1C00
+7000
+2000
+3E00
+2100
+2100
+4100
+4200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2110
+ENCODING 8464
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2400
+4400
+0400
+0400
+0800
+0800
+4800
+4800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ifraktur
+ENCODING 8465
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+6600
+3600
+0600
+0200
+0300
+0300
+0300
+3300
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2112
+ENCODING 8466
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0A00
+3C00
+0800
+1000
+1000
+1000
+3800
+5400
+2300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii61289
+ENCODING 8467
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1400
+1400
+1400
+1400
+1800
+1800
+1000
+2C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2114
+ENCODING 8468
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2800
+7F80
+2800
+2A00
+2D00
+2900
+2900
+2900
+2D00
+2A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2115
+ENCODING 8469
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7100
+5100
+5900
+5900
+5500
+5500
+5500
+5300
+5300
+5100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii61352
+ENCODING 8470
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4800
+4800
+6800
+6800
+6900
+5A80
+5A80
+5900
+4800
+4B80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2117
+ENCODING 8471
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+B900
+A500
+B900
+A100
+A100
+4200
+3C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR weierstrass
+ENCODING 8472
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+8C00
+9200
+A100
+C100
+4100
+AA00
+A400
+A000
+A000
+4000
+ENDCHAR
+
+STARTCHAR uni2119
+ENCODING 8473
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+5100
+5100
+5100
+5100
+5E00
+5000
+5000
+5000
+5000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni211A
+ENCODING 8474
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5100
+5100
+5100
+5100
+5100
+5100
+5500
+5300
+3E00
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni211B
+ENCODING 8475
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+9100
+9100
+9100
+5E00
+1400
+1400
+1200
+5280
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Rfraktur
+ENCODING 8476
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7600
+DB00
+1B00
+1B00
+1A00
+1C00
+1E00
+3600
+3600
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni211D
+ENCODING 8477
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+5100
+5100
+5100
+5100
+5E00
+5800
+5400
+5200
+5100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR prescription
+ENCODING 8478
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4100
+4100
+4100
+7E00
+4880
+4500
+4200
+4500
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni211F
+ENCODING 8479
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0200
+7E00
+4500
+4500
+4500
+7E00
+4800
+4C00
+4A00
+4900
+4900
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni2120
+ENCODING 8480
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6880
+8D80
+4A80
+2880
+C880
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2121
+ENCODING 8481
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+FD00
+5100
+5D00
+5100
+5D80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR trademark
+ENCODING 8482
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E880
+4D80
+4A80
+4880
+4880
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2123
+ENCODING 8483
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+0C00
+4500
+4900
+5100
+3200
+2200
+2200
+5400
+5400
+9400
+8800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2124
+ENCODING 8484
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0500
+0500
+0A00
+1400
+1400
+2800
+5000
+5000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2125
+ENCODING 8485
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1F00
+0200
+0400
+0800
+1F00
+0200
+0400
+0800
+1E00
+0100
+0100
+2200
+1C00
+ENDCHAR
+
+STARTCHAR Omega
+ENCODING 8486
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1400
+1400
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2127
+ENCODING 8487
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7700
+1400
+1400
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2128
+ENCODING 8488
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4600
+0300
+3300
+1E00
+2300
+0300
+0300
+7600
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2129
+ENCODING 8489
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+2400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni212A
+ENCODING 8490
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4200
+4400
+4800
+7000
+5000
+4800
+4400
+4200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni212B
+ENCODING 8491
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+1C00
+1400
+2200
+4100
+4100
+7F00
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni212C
+ENCODING 8492
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+5100
+1100
+1200
+1C00
+1200
+1100
+1100
+A200
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni212D
+ENCODING 8493
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+C800
+D800
+CC00
+C600
+D200
+CC00
+C000
+7100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR estimated
+ENCODING 8494
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+6300
+6300
+7F00
+6000
+6300
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni212F
+ENCODING 8495
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+1100
+2200
+3C00
+4000
+4000
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2130
+ENCODING 8496
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1100
+2200
+2000
+1800
+2000
+4600
+4100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2131
+ENCODING 8497
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7100
+8E00
+0800
+0800
+3E00
+0800
+1000
+1000
+9000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2132
+ENCODING 8498
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+0200
+0200
+1E00
+0200
+0200
+0200
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2133
+ENCODING 8499
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+1B00
+1B00
+1500
+1500
+1100
+2100
+2100
+A100
+4080
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2134
+ENCODING 8500
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E80
+2500
+2300
+4200
+4200
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aleph
+ENCODING 8501
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2136
+ENCODING 8502
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FC00
+7E00
+0200
+0200
+0200
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2137
+ENCODING 8503
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0400
+1E00
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2138
+ENCODING 8504
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2139
+ENCODING 8505
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0C00
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni213A
+ENCODING 8506
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1D00
+2200
+4500
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR onethird
+ENCODING 8531
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2600
+7100
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR twothirds
+ENCODING 8532
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+5000
+1000
+1000
+2600
+7100
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2155
+ENCODING 8533
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2700
+7400
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2156
+ENCODING 8534
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+5000
+1000
+1000
+2700
+7400
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2157
+ENCODING 8535
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+1000
+6000
+1000
+1700
+6400
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2158
+ENCODING 8536
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+3000
+5000
+7000
+1700
+1400
+0600
+0100
+0100
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2159
+ENCODING 8537
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2300
+7400
+0600
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni215A
+ENCODING 8538
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+4000
+7000
+1000
+1300
+6400
+0600
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oneeighth
+ENCODING 8539
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2200
+7500
+0200
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR threeeighths
+ENCODING 8540
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+1000
+6000
+1000
+1200
+6500
+0200
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fiveeighths
+ENCODING 8541
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+4000
+7000
+1000
+1200
+6500
+0200
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR seveneighths
+ENCODING 8542
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+1000
+1000
+2000
+2200
+2500
+0200
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni215F
+ENCODING 8543
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+6000
+2000
+2000
+2000
+7000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2160
+ENCODING 8544
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2161
+ENCODING 8545
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2162
+ENCODING 8546
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2A00
+2A00
+2A00
+2A00
+2A00
+2A00
+2A00
+2A00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2163
+ENCODING 8547
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+F100
+5100
+5100
+4A00
+4A00
+4A00
+4A00
+4400
+4400
+E400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2164
+ENCODING 8548
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2165
+ENCODING 8549
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8F00
+8A00
+8A00
+5200
+5200
+5200
+5200
+2200
+2200
+2700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2166
+ENCODING 8550
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8F80
+8D00
+8D00
+5500
+5500
+5500
+5500
+2500
+2500
+2F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2167
+ENCODING 8551
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+BF80
+AA80
+AA80
+AA80
+AA80
+AA80
+4A80
+4A80
+4A80
+5F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2168
+ENCODING 8552
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7900
+2900
+2900
+2600
+2600
+2600
+2600
+2900
+2900
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2169
+ENCODING 8553
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+1400
+0800
+0800
+1400
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216A
+ENCODING 8554
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4F00
+4A00
+4A00
+3200
+3200
+3200
+3200
+4A00
+4A00
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216B
+ENCODING 8555
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+BF00
+AA00
+AA00
+4A00
+4A00
+4A00
+4A00
+AA00
+AA00
+BF00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216C
+ENCODING 8556
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216D
+ENCODING 8557
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216E
+ENCODING 8558
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni216F
+ENCODING 8559
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+6300
+5500
+5500
+4900
+4900
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2170
+ENCODING 8560
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2171
+ENCODING 8561
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6C00
+0000
+6C00
+2400
+2400
+2400
+2400
+2400
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2172
+ENCODING 8562
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2A00
+0000
+7E00
+2A00
+2A00
+2A00
+2A00
+2A00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2173
+ENCODING 8563
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+0000
+6900
+2900
+2900
+2900
+2600
+2600
+7600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2174
+ENCODING 8564
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2175
+ENCODING 8565
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0000
+4E00
+4A00
+4A00
+4A00
+3200
+3200
+3700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2176
+ENCODING 8566
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0A00
+0000
+BE00
+AA00
+AA00
+AA00
+4A00
+4A00
+5F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2177
+ENCODING 8567
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0A80
+0000
+BF80
+AA80
+AA80
+AA80
+4A80
+4A80
+5F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2178
+ENCODING 8568
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+0000
+6900
+2900
+2600
+2600
+2600
+2900
+7900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2179
+ENCODING 8569
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217A
+ENCODING 8570
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0000
+4E00
+4A00
+3200
+3200
+3200
+4A00
+4F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217B
+ENCODING 8571
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0500
+0000
+9F00
+9500
+6500
+6500
+6500
+9500
+9F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217C
+ENCODING 8572
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217D
+ENCODING 8573
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+4000
+4000
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217E
+ENCODING 8574
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0100
+3D00
+4300
+4100
+4100
+4100
+4300
+3D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni217F
+ENCODING 8575
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7600
+4900
+4900
+4900
+4900
+4900
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2180
+ENCODING 8576
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2181
+ENCODING 8577
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+2100
+3900
+2500
+2500
+2500
+2500
+3900
+2100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2182
+ENCODING 8578
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+8880
+9C80
+AA80
+AA80
+AA80
+AA80
+9C80
+8880
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2183
+ENCODING 8579
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+0100
+0100
+0100
+0100
+0100
+0100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowleft
+ENCODING 8592
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1000
+2000
+7F00
+2000
+1000
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowup
+ENCODING 8593
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowright
+ENCODING 8594
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0400
+0200
+7F00
+0200
+0400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdown
+ENCODING 8595
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowboth
+ENCODING 8596
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1400
+2200
+7F00
+2200
+1400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowupdn
+ENCODING 8597
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+0800
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2196
+ENCODING 8598
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7800
+6000
+5000
+4800
+0400
+0200
+0100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2197
+ENCODING 8599
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0F00
+0300
+0500
+0900
+1000
+2000
+4000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2198
+ENCODING 8600
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+2000
+1000
+0900
+0500
+0300
+0F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2199
+ENCODING 8601
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0200
+0400
+4800
+5000
+6000
+7800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219A
+ENCODING 8602
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2200
+4200
+FF00
+4400
+2400
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219B
+ENCODING 8603
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+2400
+2200
+FF00
+4200
+4400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219C
+ENCODING 8604
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2000
+4200
+F500
+4800
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219D
+ENCODING 8605
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0400
+4200
+AF00
+1200
+0400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219E
+ENCODING 8606
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1200
+2400
+4800
+FF00
+4800
+2400
+1200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni219F
+ENCODING 8607
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+1C00
+2A00
+4900
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A0
+ENCODING 8608
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4800
+2400
+1200
+FF00
+1200
+2400
+4800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A1
+ENCODING 8609
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+4900
+2A00
+1C00
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A2
+ENCODING 8610
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1100
+2200
+7C00
+2200
+1100
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A3
+ENCODING 8611
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4400
+2200
+1F00
+2200
+4400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A4
+ENCODING 8612
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1100
+2100
+7F00
+2100
+1100
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A5
+ENCODING 8613
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A6
+ENCODING 8614
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4400
+4200
+7F00
+4200
+4400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A7
+ENCODING 8615
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowupdnbse
+ENCODING 8616
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+4900
+2A00
+1C00
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21A9
+ENCODING 8617
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2200
+4100
+FE00
+4000
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AA
+ENCODING 8618
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4400
+8200
+7F00
+0200
+0400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AB
+ENCODING 8619
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2200
+4500
+FE00
+4400
+2400
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AC
+ENCODING 8620
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4400
+A200
+7F00
+2200
+2400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AD
+ENCODING 8621
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+4900
+F780
+4100
+2200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AE
+ENCODING 8622
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+4900
+FF80
+4900
+2200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21AF
+ENCODING 8623
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1000
+1200
+2E00
+3200
+0400
+0400
+2800
+1E00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B0
+ENCODING 8624
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+2000
+7E00
+2200
+1200
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B1
+ENCODING 8625
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0200
+7F00
+4200
+4400
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B2
+ENCODING 8626
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+0200
+0200
+1200
+2200
+7E00
+2000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B3
+ENCODING 8627
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4400
+4200
+7F00
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B4
+ENCODING 8628
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7C00
+0400
+0400
+0400
+0400
+1500
+0E00
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR carriagereturn
+ENCODING 8629
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+0100
+1100
+2100
+7F00
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B6
+ENCODING 8630
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0E00
+1100
+2080
+2080
+A880
+7000
+2000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B7
+ENCODING 8631
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3800
+4400
+8200
+8200
+8A80
+0700
+0200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B8
+ENCODING 8632
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+2000
+3800
+3000
+2800
+0400
+0400
+0200
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21B9
+ENCODING 8633
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+5000
+7F00
+5000
+4900
+0500
+7F00
+0500
+0900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BA
+ENCODING 8634
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3200
+4700
+8A80
+8200
+8200
+4400
+3800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BB
+ENCODING 8635
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2600
+7100
+A880
+2080
+2080
+1100
+0E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BC
+ENCODING 8636
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BD
+ENCODING 8637
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+2000
+1000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BE
+ENCODING 8638
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0C00
+0A00
+0900
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21BF
+ENCODING 8639
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1800
+2800
+4800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C0
+ENCODING 8640
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0400
+0200
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C1
+ENCODING 8641
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C2
+ENCODING 8642
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0900
+0A00
+0C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C3
+ENCODING 8643
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+4800
+2800
+1800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C4
+ENCODING 8644
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0200
+7F00
+0200
+1400
+2000
+7F00
+2000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C5
+ENCODING 8645
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+7200
+AA00
+2200
+2200
+2200
+2200
+2A80
+2700
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C6
+ENCODING 8646
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+2000
+7F00
+2000
+1400
+0200
+7F00
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C7
+ENCODING 8647
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+2000
+7F00
+2000
+1000
+1000
+2000
+7F00
+2000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C8
+ENCODING 8648
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+7700
+AA80
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21C9
+ENCODING 8649
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0200
+7F00
+0200
+0400
+0400
+0200
+7F00
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CA
+ENCODING 8650
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+AA80
+7700
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CB
+ENCODING 8651
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2000
+7F00
+0000
+7F00
+0200
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CC
+ENCODING 8652
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0200
+7F00
+0000
+7F00
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CD
+ENCODING 8653
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2100
+7F80
+8200
+7F80
+2400
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CE
+ENCODING 8654
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1400
+2200
+7F00
+8880
+7F00
+2200
+1400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21CF
+ENCODING 8655
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+1200
+FF00
+2080
+FF00
+4200
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdblleft
+ENCODING 8656
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2000
+7F80
+8000
+7F80
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdblup
+ENCODING 8657
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+3600
+5500
+1400
+1400
+1400
+1400
+1400
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdblright
+ENCODING 8658
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0200
+FF00
+0080
+FF00
+0200
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdbldown
+ENCODING 8659
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1400
+1400
+1400
+1400
+5500
+3600
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR arrowdblboth
+ENCODING 8660
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1400
+2200
+7F00
+8080
+7F00
+2200
+1400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21D5
+ENCODING 8661
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+3600
+5500
+1400
+1400
+5500
+3600
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21D6
+ENCODING 8662
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7E00
+4800
+4400
+6200
+5100
+4800
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21D7
+ENCODING 8663
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3F00
+0900
+1100
+2300
+4500
+0900
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21D8
+ENCODING 8664
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+0900
+4500
+2300
+1100
+0900
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21D9
+ENCODING 8665
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+4800
+5100
+6200
+4400
+4800
+7E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DA
+ENCODING 8666
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1000
+3F80
+4000
+FF80
+4000
+3F80
+1000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DB
+ENCODING 8667
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0400
+FE00
+0100
+FF80
+0100
+FE00
+0400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DC
+ENCODING 8668
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+2000
+4800
+F500
+4200
+2000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DD
+ENCODING 8669
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0400
+1200
+AF00
+4200
+0400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DE
+ENCODING 8670
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+4900
+0800
+3E00
+0800
+3E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21DF
+ENCODING 8671
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+3E00
+0800
+3E00
+0800
+4900
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E0
+ENCODING 8672
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1000
+2000
+5B00
+2000
+1000
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E1
+ENCODING 8673
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2A00
+4900
+0000
+0800
+0800
+0000
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E2
+ENCODING 8674
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0400
+0200
+6D00
+0200
+0400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E3
+ENCODING 8675
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0000
+0800
+0800
+0000
+4900
+2A00
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E4
+ENCODING 8676
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4800
+5000
+7F00
+5000
+4800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E5
+ENCODING 8677
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0900
+0500
+7F00
+0500
+0900
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E6
+ENCODING 8678
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+3000
+5F80
+8080
+5F80
+3000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E7
+ENCODING 8679
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7700
+1400
+1400
+1400
+1400
+1400
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E8
+ENCODING 8680
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0600
+FD00
+8080
+FD00
+0600
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21E9
+ENCODING 8681
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+1400
+1400
+1400
+1400
+1400
+7700
+2200
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21EA
+ENCODING 8682
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+7700
+1400
+1400
+1C00
+0000
+1C00
+1400
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21EB
+ENCODING 8683
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7700
+1400
+1400
+1400
+1400
+3600
+2200
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21EC
+ENCODING 8684
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7F00
+1400
+1400
+1400
+1400
+3600
+2200
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21ED
+ENCODING 8685
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7F00
+1C00
+1C00
+1C00
+1C00
+3E00
+2200
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21EE
+ENCODING 8686
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7700
+2200
+7700
+1400
+1400
+1400
+1400
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21EF
+ENCODING 8687
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7700
+2200
+7700
+1400
+1400
+3600
+2200
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21F0
+ENCODING 8688
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+8600
+FD00
+8080
+FD00
+8600
+8400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21F1
+ENCODING 8689
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+5E00
+5800
+5400
+5200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21F2
+ENCODING 8690
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+2500
+1500
+0D00
+3D00
+0100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni21F3
+ENCODING 8691
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+7700
+1400
+1400
+1400
+7700
+2200
+1400
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR universal
+ENCODING 8704
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+7F00
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2201
+ENCODING 8705
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+1000
+1000
+1000
+1000
+1000
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR partialdiff
+ENCODING 8706
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+0200
+1A00
+2600
+4200
+4200
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR existential
+ENCODING 8707
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0100
+0100
+1F00
+0100
+0100
+0100
+0100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2204
+ENCODING 8708
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0200
+0200
+7F00
+0500
+0500
+0500
+1F00
+0900
+0900
+0900
+0900
+7F00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR emptyset
+ENCODING 8709
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+1D00
+2200
+4500
+4500
+4900
+4900
+5100
+5100
+2200
+5C00
+4000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Delta
+ENCODING 8710
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+2200
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR gradient
+ENCODING 8711
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR element
+ENCODING 8712
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1F00
+2000
+4000
+7F00
+4000
+2000
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR notelement
+ENCODING 8713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+1F00
+2400
+4400
+7F00
+4800
+2800
+1F00
+1000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni220A
+ENCODING 8714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1E00
+2000
+3E00
+2000
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR suchthat
+ENCODING 8715
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7C00
+0200
+0100
+7F00
+0100
+0200
+7C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni220C
+ENCODING 8716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+7C00
+0A00
+0900
+7F00
+1100
+1200
+7C00
+2000
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni220D
+ENCODING 8717
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3C00
+0200
+3E00
+0200
+3C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni220E
+ENCODING 8718
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR product
+ENCODING 8719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+7700
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2210
+ENCODING 8720
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7700
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+7F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR summation
+ENCODING 8721
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+4000
+2000
+1000
+1000
+0800
+0800
+1000
+1000
+2000
+4000
+7F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR minus
+ENCODING 8722
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2213
+ENCODING 8723
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0000
+0800
+0800
+0800
+7F00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2214
+ENCODING 8724
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0000
+0800
+0800
+0800
+7F00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fraction
+ENCODING 8725
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0400
+0400
+0800
+0800
+1000
+1000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2216
+ENCODING 8726
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+1000
+1000
+0800
+0800
+0400
+0400
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asteriskmath
+ENCODING 8727
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+2A00
+1C00
+7F00
+1C00
+2A00
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2218
+ENCODING 8728
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 8729
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+3E00
+3E00
+3E00
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR radical
+ENCODING 8730
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0200
+0200
+0400
+0400
+4800
+2800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni221B
+ENCODING 8731
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+0900
+3100
+0A00
+3200
+0400
+0400
+4800
+2800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni221C
+ENCODING 8732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1900
+2900
+3A00
+0A00
+0400
+0400
+4800
+2800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR proportional
+ENCODING 8733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3B00
+4400
+4400
+4400
+3B00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR infinity
+ENCODING 8734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6300
+9480
+8880
+9480
+6300
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR orthogonal
+ENCODING 8735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR angle
+ENCODING 8736
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0200
+0400
+0800
+1000
+2000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2221
+ENCODING 8737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0200
+2400
+1800
+1800
+2400
+7F00
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni2222
+ENCODING 8738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+1400
+0800
+1800
+2400
+4400
+2400
+1800
+0800
+1400
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2223
+ENCODING 8739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2224
+ENCODING 8740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0A00
+0C00
+0800
+1800
+2800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2225
+ENCODING 8741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2226
+ENCODING 8742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1400
+1700
+1C00
+7400
+1400
+1400
+1400
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR logicaland
+ENCODING 8743
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR logicalor
+ENCODING 8744
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR intersection
+ENCODING 8745
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR union
+ENCODING 8746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR integral
+ENCODING 8747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0A00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+2800
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni222C
+ENCODING 8748
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+2400
+4800
+0000
+ENDCHAR
+
+STARTCHAR uni222D
+ENCODING 8749
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2480
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+9200
+0000
+ENDCHAR
+
+STARTCHAR uni222E
+ENCODING 8750
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0A00
+0800
+0800
+1C00
+2A00
+2A00
+1C00
+0800
+0800
+0800
+2800
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni222F
+ENCODING 8751
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1200
+2400
+2400
+2400
+7E00
+A500
+A500
+7E00
+2400
+2400
+2400
+2400
+4800
+0000
+ENDCHAR
+
+STARTCHAR uni2230
+ENCODING 8752
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1500
+2A00
+2A00
+2A00
+7F00
+AA80
+AA80
+7F00
+2A00
+2A00
+2A00
+2A00
+5400
+0000
+ENDCHAR
+
+STARTCHAR uni2231
+ENCODING 8753
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+1000
+1000
+7D00
+9300
+1700
+1000
+1000
+1000
+1000
+5000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uni2232
+ENCODING 8754
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+0500
+0400
+1F00
+2480
+7480
+AC80
+2480
+1F00
+0400
+0400
+1400
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2233
+ENCODING 8755
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+1000
+7C00
+9200
+9700
+9A80
+9200
+7C00
+1000
+1000
+5000
+2000
+0000
+ENDCHAR
+
+STARTCHAR therefore
+ENCODING 8756
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0000
+0000
+2200
+2200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2235
+ENCODING 8757
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+2200
+0000
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2236
+ENCODING 8758
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0000
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2237
+ENCODING 8759
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+2200
+0000
+0000
+2200
+2200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2238
+ENCODING 8760
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2239
+ENCODING 8761
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0200
+0200
+0000
+7800
+0000
+0200
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni223A
+ENCODING 8762
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2200
+2200
+0000
+7F00
+0000
+2200
+2200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni223B
+ENCODING 8763
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0400
+0000
+3000
+4900
+0600
+1000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR similar
+ENCODING 8764
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni223D
+ENCODING 8765
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+4900
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni223E
+ENCODING 8766
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3200
+4900
+2600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni223F
+ENCODING 8767
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+5000
+5000
+8800
+8800
+0880
+0880
+0500
+0500
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2240
+ENCODING 8768
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0400
+0400
+0800
+1000
+1000
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2241
+ENCODING 8769
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0200
+0400
+3400
+4900
+1600
+1000
+2000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2242
+ENCODING 8770
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+3000
+4900
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2243
+ENCODING 8771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2244
+ENCODING 8772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0200
+3400
+4D00
+0600
+0800
+7F00
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR congruent
+ENCODING 8773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2246
+ENCODING 8774
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+0400
+7F00
+0800
+7F00
+1000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2247
+ENCODING 8775
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+3200
+4D00
+0600
+0400
+7F00
+0800
+7F00
+1000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR approxequal
+ENCODING 8776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+3000
+4900
+0600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2249
+ENCODING 8777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0400
+3400
+4900
+0E00
+3800
+4900
+1600
+1000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224A
+ENCODING 8778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3000
+4900
+0600
+3000
+4900
+0600
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224B
+ENCODING 8779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+4900
+0600
+3000
+4900
+0600
+3000
+4900
+0600
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224C
+ENCODING 8780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4600
+4900
+3100
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224D
+ENCODING 8781
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6300
+1C00
+0000
+1C00
+6300
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224E
+ENCODING 8782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+1400
+7700
+0000
+7700
+1400
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni224F
+ENCODING 8783
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+1400
+7700
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2250
+ENCODING 8784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2251
+ENCODING 8785
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0000
+7F00
+0000
+7F00
+0000
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2252
+ENCODING 8786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4000
+0000
+7F00
+0000
+7F00
+0000
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2253
+ENCODING 8787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+0000
+7F00
+0000
+7F00
+0000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2254
+ENCODING 8788
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+5F00
+0000
+5F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2255
+ENCODING 8789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7D00
+0000
+7D00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2256
+ENCODING 8790
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+1400
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2257
+ENCODING 8791
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+0800
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2258
+ENCODING 8792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2259
+ENCODING 8793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225A
+ENCODING 8794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+1400
+0800
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225B
+ENCODING 8795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+3E00
+1C00
+1400
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225C
+ENCODING 8796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+3E00
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225D
+ENCODING 8797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+1200
+3F00
+5A00
+3600
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225E
+ENCODING 8798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3400
+2A00
+2A00
+2A00
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni225F
+ENCODING 8799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+0400
+0800
+0000
+0800
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR notequal
+ENCODING 8800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0400
+7F00
+0800
+7F00
+1000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR equivalence
+ENCODING 8801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2262
+ENCODING 8802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0200
+7F00
+0400
+7F00
+1000
+7F00
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2263
+ENCODING 8803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+0000
+7F00
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lessequal
+ENCODING 8804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+0300
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR greaterequal
+ENCODING 8805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6000
+0000
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2266
+ENCODING 8806
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+0300
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2267
+ENCODING 8807
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6000
+0000
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2268
+ENCODING 8808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+0300
+0400
+7F00
+0800
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2269
+ENCODING 8809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6000
+0400
+7F00
+0800
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226A
+ENCODING 8810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0900
+1200
+2400
+4800
+2400
+1200
+0900
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226B
+ENCODING 8811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4800
+2400
+1200
+0900
+1200
+2400
+4800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226C
+ENCODING 8812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1400
+0800
+0800
+1400
+1400
+1400
+1400
+1400
+1400
+0800
+0800
+1400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226D
+ENCODING 8813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0400
+6B00
+1C00
+0800
+1C00
+6B00
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226E
+ENCODING 8814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0700
+1C00
+6800
+1C00
+1300
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni226F
+ENCODING 8815
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+6400
+1C00
+0B00
+1C00
+7000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2270
+ENCODING 8816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0B00
+1C00
+6800
+1C00
+0B00
+0800
+7F00
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2271
+ENCODING 8817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+6800
+1C00
+0B00
+1C00
+6800
+0800
+7F00
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2272
+ENCODING 8818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+0300
+3000
+4900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2273
+ENCODING 8819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6000
+3000
+4900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2274
+ENCODING 8820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0B00
+1C00
+6800
+1C00
+0B00
+3800
+4900
+0E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2275
+ENCODING 8821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+6800
+1C00
+0B00
+1C00
+6800
+3800
+4900
+0E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2276
+ENCODING 8822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+6300
+1C00
+0300
+1C00
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2277
+ENCODING 8823
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6300
+1C00
+6000
+1C00
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2278
+ENCODING 8824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0B00
+1C00
+6800
+1C00
+6B00
+1C00
+0B00
+1C00
+6800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2279
+ENCODING 8825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+6800
+1C00
+0B00
+1C00
+6B00
+1C00
+6800
+1C00
+0B00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227A
+ENCODING 8826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0E00
+7000
+0E00
+0100
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227B
+ENCODING 8827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+3800
+0700
+3800
+4000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227C
+ENCODING 8828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0E00
+7000
+0E00
+7100
+0E00
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227D
+ENCODING 8829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+3800
+0700
+3800
+4700
+3800
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227E
+ENCODING 8830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0E00
+7000
+0E00
+0100
+3000
+4900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni227F
+ENCODING 8831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+3800
+0700
+3800
+4000
+0600
+4900
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2280
+ENCODING 8832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0500
+1E00
+7400
+1E00
+0900
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2281
+ENCODING 8833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+4800
+3C00
+1700
+3C00
+5000
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR propersubset
+ENCODING 8834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4000
+4000
+4000
+4000
+4000
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR propersuperset
+ENCODING 8835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+0100
+0100
+0100
+0100
+0100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR notsubset
+ENCODING 8836
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0200
+3F00
+4400
+4400
+4800
+4800
+4800
+3F00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni2285
+ENCODING 8837
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0200
+7E00
+0500
+0500
+0900
+0900
+0900
+7E00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR reflexsubset
+ENCODING 8838
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3F00
+4000
+4000
+4000
+4000
+3F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR reflexsuperset
+ENCODING 8839
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7E00
+0100
+0100
+0100
+0100
+7E00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2288
+ENCODING 8840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+3F00
+4800
+4800
+4800
+4800
+3F00
+1000
+7F00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni2289
+ENCODING 8841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+7E00
+0900
+0900
+0900
+0900
+7E00
+1000
+7F00
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni228A
+ENCODING 8842
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3F00
+4000
+4000
+4000
+4000
+3F00
+0800
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni228B
+ENCODING 8843
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7E00
+0100
+0100
+0100
+0100
+7E00
+0800
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni228C
+ENCODING 8844
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4900
+5100
+7F00
+5100
+4900
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni228D
+ENCODING 8845
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4900
+4900
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni228E
+ENCODING 8846
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4900
+5D00
+4900
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni228F
+ENCODING 8847
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+4000
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2290
+ENCODING 8848
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0100
+0100
+0100
+0100
+0100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2291
+ENCODING 8849
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+4000
+4000
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2292
+ENCODING 8850
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0100
+0100
+0100
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2293
+ENCODING 8851
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2294
+ENCODING 8852
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR circleplus
+ENCODING 8853
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2A00
+4900
+7F00
+4900
+2A00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2296
+ENCODING 8854
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+7F00
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR circlemultiply
+ENCODING 8855
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+5500
+4900
+5500
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2298
+ENCODING 8856
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4500
+4900
+5100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2299
+ENCODING 8857
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5D00
+4900
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229A
+ENCODING 8858
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5500
+4900
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229B
+ENCODING 8859
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2A00
+6B00
+5D00
+6B00
+2A00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229C
+ENCODING 8860
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+5D00
+4100
+5D00
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229D
+ENCODING 8861
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+5D00
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229E
+ENCODING 8862
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4900
+4900
+7F00
+4900
+4900
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni229F
+ENCODING 8863
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+7F00
+4100
+4100
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A0
+ENCODING 8864
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+6300
+5500
+4900
+5500
+6300
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A1
+ENCODING 8865
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4100
+4900
+5D00
+4900
+4100
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A2
+ENCODING 8866
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4000
+4000
+4000
+7F00
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A3
+ENCODING 8867
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+0100
+0100
+7F00
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A4
+ENCODING 8868
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR perpendicular
+ENCODING 8869
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A6
+ENCODING 8870
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+1000
+1000
+1E00
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A7
+ENCODING 8871
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+1000
+1E00
+1000
+1E00
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A8
+ENCODING 8872
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4000
+4000
+7F00
+4000
+7F00
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22A9
+ENCODING 8873
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5000
+5000
+5000
+5000
+5F00
+5000
+5000
+5000
+5000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AA
+ENCODING 8874
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5400
+5400
+5400
+5400
+5700
+5400
+5400
+5400
+5400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AB
+ENCODING 8875
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5000
+5000
+5000
+5F00
+5000
+5F00
+5000
+5000
+5000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AC
+ENCODING 8876
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4400
+4400
+4800
+7F00
+4800
+5000
+5000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AD
+ENCODING 8877
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+4400
+4400
+7F00
+4800
+7F00
+5000
+5000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AE
+ENCODING 8878
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5200
+5200
+5400
+5400
+5F00
+5800
+5000
+5000
+5000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22AF
+ENCODING 8879
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5200
+5200
+5200
+5F00
+5400
+5F00
+5400
+5400
+5400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B0
+ENCODING 8880
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0100
+0600
+7800
+0600
+0100
+0600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B1
+ENCODING 8881
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+4000
+3000
+0F00
+3000
+4000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B2
+ENCODING 8882
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0700
+1900
+6100
+1900
+0700
+0100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B3
+ENCODING 8883
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+7000
+4C00
+4300
+4C00
+7000
+4000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B4
+ENCODING 8884
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0700
+1900
+6100
+1900
+0700
+0100
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B5
+ENCODING 8885
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+7000
+4C00
+4300
+4C00
+7000
+4000
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B6
+ENCODING 8886
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+5F00
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B7
+ENCODING 8887
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+2200
+7D00
+2200
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B8
+ENCODING 8888
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+7D00
+0200
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22B9
+ENCODING 8889
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+0000
+6300
+0000
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BA
+ENCODING 8890
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BB
+ENCODING 8891
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BC
+ENCODING 8892
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BD
+ENCODING 8893
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0000
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BE
+ENCODING 8894
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+7000
+4800
+4800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22BF
+ENCODING 8895
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0300
+0500
+0900
+1100
+2100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C0
+ENCODING 8896
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+1400
+1400
+1400
+2200
+2200
+2200
+4100
+4100
+4100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C1
+ENCODING 8897
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+1400
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C2
+ENCODING 8898
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C3
+ENCODING 8899
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C4
+ENCODING 8900
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dotmath
+ENCODING 8901
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+1C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C6
+ENCODING 8902
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+7F00
+1C00
+1400
+2200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C7
+ENCODING 8903
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4900
+2200
+1400
+7F00
+1400
+2200
+4900
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C8
+ENCODING 8904
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+6300
+5500
+4900
+5500
+6300
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22C9
+ENCODING 8905
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+6200
+5400
+4800
+5400
+6200
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CA
+ENCODING 8906
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+2300
+1500
+0900
+1500
+2300
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CB
+ENCODING 8907
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+2000
+1000
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CC
+ENCODING 8908
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0200
+0400
+0800
+1400
+2200
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CD
+ENCODING 8909
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+4900
+3000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CE
+ENCODING 8910
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+1400
+1400
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22CF
+ENCODING 8911
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+1400
+1400
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D0
+ENCODING 8912
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3F00
+4000
+4F00
+5000
+4F00
+4000
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D1
+ENCODING 8913
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+0100
+7900
+0500
+7900
+0100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D2
+ENCODING 8914
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5500
+5500
+5500
+5500
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D3
+ENCODING 8915
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+5500
+5500
+5500
+5500
+5500
+4900
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D4
+ENCODING 8916
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+1C00
+2A00
+4900
+4900
+4900
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D5
+ENCODING 8917
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1400
+1400
+1400
+1400
+1400
+7F00
+1400
+7F00
+1400
+1400
+1400
+1400
+1400
+0000
+ENDCHAR
+
+STARTCHAR uni22D6
+ENCODING 8918
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0400
+0800
+1000
+2200
+1000
+0800
+0400
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D7
+ENCODING 8919
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+1000
+0800
+0400
+2200
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D8
+ENCODING 8920
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2480
+4900
+9200
+4900
+2480
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22D9
+ENCODING 8921
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+9200
+4900
+2480
+4900
+9200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22DA
+ENCODING 8922
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0300
+1C00
+6000
+1C00
+0300
+0000
+7F00
+0000
+6000
+1C00
+0300
+1C00
+6000
+0000
+ENDCHAR
+
+STARTCHAR uni22DB
+ENCODING 8923
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+1C00
+0300
+1C00
+6000
+0000
+7F00
+0000
+0300
+1C00
+6000
+1C00
+0300
+0000
+ENDCHAR
+
+STARTCHAR uni22DC
+ENCODING 8924
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+1C00
+6300
+1C00
+6000
+1C00
+0300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22DD
+ENCODING 8925
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6000
+1C00
+6300
+1C00
+0300
+1C00
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22DE
+ENCODING 8926
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0100
+0E00
+7100
+0E00
+7000
+0E00
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22DF
+ENCODING 8927
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+3800
+4700
+3800
+0700
+3800
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E0
+ENCODING 8928
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+1100
+1E00
+7000
+1E00
+7100
+1E00
+1100
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E1
+ENCODING 8929
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+4400
+3C00
+0700
+3C00
+4700
+3C00
+4400
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E2
+ENCODING 8930
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+7F00
+4800
+4800
+4800
+7F00
+0800
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni22E3
+ENCODING 8931
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+7F00
+0900
+0900
+0900
+7F00
+0800
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni22E4
+ENCODING 8932
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+4000
+4000
+7F00
+0400
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E5
+ENCODING 8933
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+0100
+0100
+0100
+7F00
+0400
+7F00
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E6
+ENCODING 8934
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+1C00
+6000
+1C00
+0B00
+3800
+4900
+0E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E7
+ENCODING 8935
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6000
+1C00
+0300
+1C00
+6800
+3800
+4900
+0E00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E8
+ENCODING 8936
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0E00
+7000
+0E00
+0500
+3400
+4900
+1600
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22E9
+ENCODING 8937
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+3800
+0700
+3800
+5000
+1600
+4900
+3400
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22EA
+ENCODING 8938
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+0500
+0700
+1900
+6900
+1900
+1700
+1100
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22EB
+ENCODING 8939
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+4400
+7400
+4C00
+4B00
+4C00
+7000
+5000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22EC
+ENCODING 8940
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0900
+0F00
+1900
+6900
+1900
+0F00
+0900
+0800
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni22ED
+ENCODING 8941
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+4800
+7800
+4C00
+4B00
+4C00
+7800
+4800
+0800
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni22EE
+ENCODING 8942
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0000
+0000
+0000
+0000
+0800
+0000
+0000
+0000
+0000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22EF
+ENCODING 8943
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4900
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22F0
+ENCODING 8944
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+0000
+0000
+0000
+0000
+0800
+0000
+0000
+0000
+0000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni22F1
+ENCODING 8945
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+0000
+0000
+0000
+0000
+0800
+0000
+0000
+0000
+0000
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2300
+ENCODING 8960
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1D00
+2200
+4500
+4900
+5100
+2200
+5C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2301
+ENCODING 8961
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+4C00
+2A00
+1900
+0800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR house
+ENCODING 8962
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2303
+ENCODING 8963
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+3600
+6300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2304
+ENCODING 8964
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6300
+3600
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2305
+ENCODING 8965
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0800
+1C00
+3600
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2306
+ENCODING 8966
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+0000
+7F00
+0000
+0800
+1C00
+3600
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2307
+ENCODING 8967
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0400
+0800
+1000
+0800
+0400
+0800
+1000
+0800
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2308
+ENCODING 8968
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1E00
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2309
+ENCODING 8969
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230A
+ENCODING 8970
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230B
+ENCODING 8971
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+3C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230C
+ENCODING 8972
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0380
+0000
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230D
+ENCODING 8973
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+E000
+0000
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230E
+ENCODING 8974
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+0000
+0380
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni230F
+ENCODING 8975
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+0000
+E000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR revlogicalnot
+ENCODING 8976
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+4000
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2311
+ENCODING 8977
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+3E00
+2200
+2200
+2200
+3E00
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2312
+ENCODING 8978
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2313
+ENCODING 8979
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2314
+ENCODING 8980
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2315
+ENCODING 8981
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+5100
+2200
+5C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2316
+ENCODING 8982
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1C00
+2A00
+FF80
+2A00
+1C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2317
+ENCODING 8983
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+2200
+FF80
+2200
+2200
+2200
+FF80
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2318
+ENCODING 8984
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6300
+9480
+9480
+7F00
+1400
+7F00
+9480
+9480
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2319
+ENCODING 8985
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni231A
+ENCODING 8986
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+2200
+3E00
+4900
+8880
+8880
+B880
+8080
+8080
+4100
+3E00
+2200
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uni231B
+ENCODING 8987
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+4100
+2200
+1C00
+0800
+1400
+2A00
+5500
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni231C
+ENCODING 8988
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni231D
+ENCODING 8989
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1F00
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni231E
+ENCODING 8990
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+4000
+4000
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni231F
+ENCODING 8991
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0100
+0100
+0100
+0100
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR integraltp
+ENCODING 8992
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0900
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR integralbt
+ENCODING 8993
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+4800
+3000
+0000
+ENDCHAR
+
+STARTCHAR uni2322
+ENCODING 8994
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2323
+ENCODING 8995
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2324
+ENCODING 8996
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+EB80
+1C00
+3600
+6300
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2325
+ENCODING 8997
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+E700
+1000
+0800
+0700
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2326
+ENCODING 8998
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+FC00
+C600
+A900
+9080
+A900
+C600
+FC00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2327
+ENCODING 8999
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+FF80
+A280
+9480
+8880
+9480
+A280
+FF80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2328
+ENCODING 9000
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+FF80
+8080
+AA80
+8080
+AA80
+8080
+FF80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR angleleft
+ENCODING 9001
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+0800
+0800
+1000
+1000
+0800
+0800
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR angleright
+ENCODING 9002
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+0800
+0800
+0400
+0400
+0800
+0800
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni232B
+ENCODING 9003
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1F80
+3180
+4A80
+8480
+4A80
+3180
+1F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni232C
+ENCODING 9004
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+2600
+6300
+6100
+6100
+2300
+1600
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni232D
+ENCODING 9005
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1800
+2480
+4300
+C200
+2400
+1800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni232E
+ENCODING 9006
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1200
+2100
+3F80
+5200
+8C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni232F
+ENCODING 9007
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+0000
+7F00
+0000
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2330
+ENCODING 9008
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0880
+1980
+1100
+1100
+2200
+2200
+4400
+7C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2331
+ENCODING 9009
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+3800
+5400
+9300
+9F80
+9300
+5400
+3800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2332
+ENCODING 9010
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+C000
+B000
+8C00
+FF00
+8C00
+B000
+C000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2333
+ENCODING 9011
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+C000
+B000
+8E00
+FF00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2334
+ENCODING 9012
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2335
+ENCODING 9013
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4100
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2336
+ENCODING 9014
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2337
+ENCODING 9015
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2338
+ENCODING 9016
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4100
+7F00
+4100
+7F00
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2339
+ENCODING 9017
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4900
+4100
+7F00
+4100
+4900
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233A
+ENCODING 9018
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4900
+5500
+5500
+6300
+6300
+5500
+5500
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233B
+ENCODING 9019
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4900
+5500
+5500
+4900
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233C
+ENCODING 9020
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+5D00
+6300
+4100
+4100
+6300
+5D00
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233D
+ENCODING 9021
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+2A00
+4900
+4900
+4900
+2A00
+1C00
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233E
+ENCODING 9022
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5500
+4900
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni233F
+ENCODING 9023
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0400
+0400
+7F00
+1000
+1000
+2000
+2000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2340
+ENCODING 9024
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+1000
+1000
+7F00
+0800
+0800
+0400
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2341
+ENCODING 9025
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4300
+4300
+4500
+4500
+4900
+5100
+5100
+6100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2342
+ENCODING 9026
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+6100
+6100
+5100
+5100
+4900
+4500
+4500
+4300
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2343
+ENCODING 9027
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4700
+5900
+6100
+5900
+4700
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2344
+ENCODING 9028
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+7100
+4D00
+4300
+4D00
+7100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2345
+ENCODING 9029
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+2800
+7F00
+2800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2346
+ENCODING 9030
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+0A00
+7F00
+0A00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2347
+ENCODING 9031
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+5100
+7F00
+5100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2348
+ENCODING 9032
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4500
+7F00
+4500
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2349
+ENCODING 9033
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+5C00
+2200
+5100
+4900
+4500
+2200
+1D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni234A
+ENCODING 9034
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni234B
+ENCODING 9035
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+1C00
+1C00
+2A00
+2A00
+4900
+4900
+7F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni234C
+ENCODING 9036
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+6300
+6300
+5500
+5500
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni234D
+ENCODING 9037
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4900
+4900
+5500
+5500
+6300
+7F00
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni234E
+ENCODING 9038
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+1C00
+2A00
+2A00
+1C00
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni234F
+ENCODING 9039
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+2A00
+0800
+7F00
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2350
+ENCODING 9040
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4900
+5D00
+6B00
+4900
+4900
+4900
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2351
+ENCODING 9041
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2352
+ENCODING 9042
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+7F00
+4900
+4900
+2A00
+2A00
+1C00
+1C00
+0800
+0800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2353
+ENCODING 9043
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4900
+4900
+5500
+5500
+6300
+6300
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2354
+ENCODING 9044
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+7F00
+6300
+5500
+5500
+4900
+4900
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2355
+ENCODING 9045
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0800
+0800
+1C00
+2A00
+2A00
+1C00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2356
+ENCODING 9046
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+7F00
+0800
+2A00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2357
+ENCODING 9047
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4900
+4900
+4900
+4900
+4900
+6B00
+5D00
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2358
+ENCODING 9048
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2359
+ENCODING 9049
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+4100
+7F00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235A
+ENCODING 9050
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1400
+2200
+4100
+2200
+1400
+0800
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235B
+ENCODING 9051
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+2200
+1C00
+0000
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235C
+ENCODING 9052
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235D
+ENCODING 9053
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+5D00
+6300
+6300
+6300
+5D00
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235E
+ENCODING 9054
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4900
+4900
+4900
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni235F
+ENCODING 9055
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2A00
+4900
+BE80
+9C80
+9C80
+6300
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2360
+ENCODING 9056
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4900
+4900
+4100
+4900
+4900
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2361
+ENCODING 9057
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2362
+ENCODING 9058
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2200
+2200
+0000
+7F00
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2363
+ENCODING 9059
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+2200
+0000
+0800
+0800
+3E00
+1C00
+1C00
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2364
+ENCODING 9060
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+1C00
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2365
+ENCODING 9061
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2366
+ENCODING 9062
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+4900
+4900
+4900
+4900
+4900
+4900
+2A00
+1C00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2367
+ENCODING 9063
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1F00
+2800
+4800
+4800
+4800
+2800
+1F00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2368
+ENCODING 9064
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2200
+2200
+0000
+3000
+4900
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2369
+ENCODING 9065
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+2200
+0000
+6000
+1800
+0600
+1800
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236A
+ENCODING 9066
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+1800
+0800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236B
+ENCODING 9067
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+4100
+4100
+3900
+6E00
+1200
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236C
+ENCODING 9068
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+2200
+4100
+4100
+7900
+4F00
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236D
+ENCODING 9069
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+3900
+4E00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236E
+ENCODING 9070
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+0C00
+3F00
+0400
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni236F
+ENCODING 9071
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4500
+7F00
+4900
+7F00
+5100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2370
+ENCODING 9072
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4900
+5500
+4500
+4900
+4100
+4900
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2371
+ENCODING 9073
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+4100
+2200
+3B00
+5E00
+1400
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2372
+ENCODING 9074
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+1400
+3B00
+6E00
+4100
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2373
+ENCODING 9075
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+0800
+0800
+0800
+0800
+0A00
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2374
+ENCODING 9076
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+6100
+5E00
+4000
+4000
+4000
+ENDCHAR
+
+STARTCHAR uni2375
+ENCODING 9077
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+4100
+4900
+4900
+4900
+4900
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2376
+ENCODING 9078
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+7F00
+0000
+ENDCHAR
+
+STARTCHAR uni2377
+ENCODING 9079
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E00
+2000
+4000
+7C00
+4000
+2000
+1E00
+0000
+7E00
+0000
+ENDCHAR
+
+STARTCHAR uni2378
+ENCODING 9080
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+0800
+0800
+0800
+0800
+0A00
+0400
+0000
+1E00
+0000
+ENDCHAR
+
+STARTCHAR uni2379
+ENCODING 9081
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+4100
+4900
+4900
+4900
+4900
+3600
+0000
+7F00
+0000
+ENDCHAR
+
+STARTCHAR uni237A
+ENCODING 9082
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3D00
+4300
+4100
+4100
+4300
+4500
+3900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni237B
+ENCODING 9083
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0100
+0200
+0F00
+0400
+0400
+2800
+2800
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni237D
+ENCODING 9085
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+6300
+2200
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni237E
+ENCODING 9086
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+7F00
+1400
+1400
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni237F
+ENCODING 9087
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+1C00
+1C00
+1C00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2380
+ENCODING 9088
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+0200
+0200
+1E00
+2200
+2200
+1E00
+4100
+2200
+1400
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2381
+ENCODING 9089
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7000
+0800
+0800
+7800
+8800
+8800
+7A80
+0000
+FF80
+0000
+ENDCHAR
+
+STARTCHAR uni2382
+ENCODING 9090
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+6300
+1080
+1080
+7380
+9480
+9480
+7380
+0000
+F780
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2383
+ENCODING 9091
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+9880
+4500
+0C00
+D580
+1400
+5500
+8C80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2384
+ENCODING 9092
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4E00
+5500
+5500
+5500
+5500
+5500
+5500
+4E00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2385
+ENCODING 9093
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+7F00
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+4900
+7F00
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2386
+ENCODING 9094
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+2800
+4400
+1200
+7900
+4480
+7900
+1200
+4400
+2800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2387
+ENCODING 9095
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0600
+0D00
+1600
+1400
+1000
+1000
+6700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2388
+ENCODING 9096
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+5D00
+2A00
+5D00
+4900
+5D00
+2A00
+5D00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2389
+ENCODING 9097
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+8080
+8080
+E380
+9480
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238A
+ENCODING 9098
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+FF80
+A280
+A280
+9480
+9480
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238B
+ENCODING 9099
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+EE00
+C100
+A080
+1080
+8880
+8080
+8080
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238C
+ENCODING 9100
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+5C00
+6200
+7100
+0100
+6300
+9480
+9480
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238D
+ENCODING 9101
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+2200
+2200
+2200
+2200
+6300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238E
+ENCODING 9102
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1F00
+1400
+1400
+1400
+1400
+7C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni238F
+ENCODING 9103
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0800
+1400
+2200
+4100
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2390
+ENCODING 9104
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+4100
+2200
+1400
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2391
+ENCODING 9105
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0800
+1400
+2200
+7F00
+2200
+1400
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2392
+ENCODING 9106
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1400
+2200
+7F00
+2200
+1400
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2393
+ENCODING 9107
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+0000
+DB00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2394
+ENCODING 9108
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+8100
+4200
+3C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2395
+ENCODING 9109
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2396
+ENCODING 9110
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+3E00
+3C00
+3C00
+3800
+3800
+3000
+3000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2397
+ENCODING 9111
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5400
+0000
+5F80
+1080
+5480
+0880
+5E80
+0880
+5480
+1080
+1F80
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2398
+ENCODING 9112
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4400
+5500
+4000
+4900
+4400
+5E00
+4400
+6900
+0000
+1500
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2399
+ENCODING 9113
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0E00
+1A00
+3A00
+2200
+6300
+A280
+A280
+BE80
+8080
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni239A
+ENCODING 9114
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7E00
+8100
+A500
+8900
+9100
+A500
+8100
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2400
+ENCODING 9216
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+A000
+A000
+B400
+B400
+1600
+1600
+0A00
+0200
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2401
+ENCODING 9217
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+8000
+4000
+2800
+D400
+1400
+1680
+0A80
+0380
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2402
+ENCODING 9218
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+8000
+4000
+3C00
+C800
+0800
+0A80
+0A80
+0100
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2403
+ENCODING 9219
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E000
+8000
+E000
+9C00
+E800
+0800
+0A80
+0A80
+0100
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2404
+ENCODING 9220
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E000
+8000
+E000
+8800
+F400
+1400
+1780
+0900
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2405
+ENCODING 9221
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E000
+8000
+C000
+9800
+F400
+1400
+1500
+1680
+0280
+0280
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2406
+ENCODING 9222
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+A000
+E000
+AC00
+B000
+1000
+1280
+0E80
+0300
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2407
+ENCODING 9223
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+C000
+BC00
+D000
+1800
+1200
+1E00
+0200
+0200
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2408
+ENCODING 9224
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+4800
+7000
+4800
+7000
+0700
+0800
+0600
+0100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2409
+ENCODING 9225
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4800
+4800
+7800
+4800
+4800
+0000
+1F00
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240A
+ENCODING 9226
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+4000
+4000
+4000
+7800
+0000
+0F00
+0800
+0E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240B
+ENCODING 9227
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4400
+4400
+2800
+2800
+1000
+0000
+1F00
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240C
+ENCODING 9228
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+4000
+7000
+4000
+4F00
+4800
+0E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240D
+ENCODING 9229
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4000
+4000
+4000
+3800
+0000
+0E00
+0900
+0E00
+0900
+0900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240E
+ENCODING 9230
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4000
+3000
+0800
+7000
+0600
+0900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240F
+ENCODING 9231
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3800
+4000
+3000
+0800
+7000
+0700
+0200
+0200
+0200
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2410
+ENCODING 9232
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+B000
+D000
+1000
+1380
+1E00
+0300
+0200
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2411
+ENCODING 9233
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+AC00
+D000
+1000
+1080
+0D80
+0080
+0080
+0080
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2412
+ENCODING 9234
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+AC00
+D000
+1100
+1280
+0C80
+0100
+0200
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2413
+ENCODING 9235
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+AC00
+D000
+1000
+1300
+0C80
+0100
+0080
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2414
+ENCODING 9236
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+AC00
+D000
+1000
+1280
+0E80
+0380
+0080
+0080
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2415
+ENCODING 9237
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+A800
+B400
+1C00
+1680
+1680
+0300
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2416
+ENCODING 9238
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+8000
+4000
+3400
+D400
+0800
+0B00
+0A80
+0280
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2417
+ENCODING 9239
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E000
+8000
+C000
+9C00
+E800
+0800
+0B00
+0A80
+0300
+0280
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2418
+ENCODING 9240
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+8000
+8000
+8800
+7400
+1C00
+1700
+1680
+0280
+0280
+0280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2419
+ENCODING 9241
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7800
+4000
+7000
+4000
+7800
+0000
+1100
+1B00
+1500
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241A
+ENCODING 9242
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6000
+8000
+4000
+3400
+D400
+1400
+1700
+0A80
+0300
+0280
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241B
+ENCODING 9243
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+E000
+8000
+E000
+8C00
+F000
+0800
+0580
+1A00
+0200
+0200
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241C
+ENCODING 9244
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7800
+4000
+7000
+4000
+4000
+4700
+0800
+0600
+0100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241D
+ENCODING 9245
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+4800
+4000
+5800
+4800
+3000
+0700
+0800
+0600
+0100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241E
+ENCODING 9246
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7000
+4800
+4800
+7000
+4800
+4800
+0700
+0800
+0600
+0100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni241F
+ENCODING 9247
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4800
+4800
+4800
+4800
+4800
+3000
+0700
+0800
+0600
+0100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2420
+ENCODING 9248
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3800
+4000
+3000
+0800
+7000
+0E00
+0900
+0900
+0E00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2421
+ENCODING 9249
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+C000
+A000
+A000
+BC00
+D000
+1800
+1200
+1E00
+0200
+0200
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2422
+ENCODING 9250
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2800
+3000
+2000
+6E00
+B100
+2100
+2100
+3100
+2E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2423
+ENCODING 9251
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2424
+ENCODING 9252
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4400
+6400
+5400
+4C00
+4400
+0000
+0800
+0800
+0800
+0800
+0F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2425
+ENCODING 9253
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+1200
+2400
+2400
+0800
+0800
+1200
+1200
+2400
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2426
+ENCODING 9254
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+4100
+4000
+2000
+1000
+0800
+0800
+0000
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2440
+ENCODING 9280
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0F00
+0900
+0900
+0900
+0900
+4900
+4800
+4800
+4800
+4800
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2441
+ENCODING 9281
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+0100
+0100
+0100
+0100
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2442
+ENCODING 9282
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+4100
+4100
+4100
+4100
+7F00
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2443
+ENCODING 9283
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+0800
+7F00
+4100
+4100
+4100
+4100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2444
+ENCODING 9284
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+4900
+4900
+0800
+0800
+0800
+0800
+0800
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2445
+ENCODING 9285
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+6300
+5500
+4900
+5500
+6300
+4100
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2446
+ENCODING 9286
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0700
+6700
+6700
+6000
+6000
+6700
+6700
+0700
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2447
+ENCODING 9287
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0300
+0300
+0B00
+0B00
+6B00
+6800
+6000
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2448
+ENCODING 9288
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0780
+0780
+5780
+5780
+5780
+5780
+5000
+5000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2449
+ENCODING 9289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+6D00
+6D00
+6D00
+6D00
+6D00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni244A
+ENCODING 9290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4800
+4800
+2400
+2400
+1200
+1200
+0900
+0900
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2460
+ENCODING 9312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8880
+9880
+8880
+8880
+8880
+8880
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2461
+ENCODING 9313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A280
+8280
+8480
+8880
+9080
+BE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2462
+ENCODING 9314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A280
+8280
+8C80
+8280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2463
+ENCODING 9315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8880
+9880
+A880
+BC80
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2464
+ENCODING 9316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+BE80
+A080
+A080
+BC80
+8280
+8280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2465
+ENCODING 9317
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A080
+A080
+BC80
+A280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2466
+ENCODING 9318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+BE80
+8280
+8480
+8480
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2467
+ENCODING 9319
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A280
+A280
+9C80
+A280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2468
+ENCODING 9320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A280
+A280
+9E80
+8280
+8280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2469
+ENCODING 9321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A480
+AA80
+AA80
+AA80
+AA80
+AA80
+A480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246A
+ENCODING 9322
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9480
+9480
+9480
+9480
+9480
+9480
+9480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246B
+ENCODING 9323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+AC80
+A280
+A280
+A480
+A880
+A880
+AE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246C
+ENCODING 9324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+AC80
+A280
+A280
+A480
+A280
+A280
+AC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246D
+ENCODING 9325
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A880
+A880
+AA80
+AE80
+A280
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246E
+ENCODING 9326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+AE80
+A880
+A880
+AC80
+A280
+A280
+AC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni246F
+ENCODING 9327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A680
+A880
+A880
+AC80
+AA80
+AA80
+A480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2470
+ENCODING 9328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+AE80
+A280
+A280
+A280
+A480
+A480
+A480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2471
+ENCODING 9329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A480
+AA80
+AA80
+A480
+AA80
+AA80
+A480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2472
+ENCODING 9330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A480
+AA80
+AA80
+A680
+A280
+A280
+AC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2473
+ENCODING 9331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A480
+9A80
+9A80
+9A80
+AA80
+AA80
+B480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2474
+ENCODING 9332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8880
+9880
+8880
+8880
+8880
+8880
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2475
+ENCODING 9333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9C80
+A280
+8280
+8480
+8880
+9080
+BE80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2476
+ENCODING 9334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9C80
+A280
+8280
+8C80
+8280
+A280
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2477
+ENCODING 9335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8880
+9880
+A880
+BC80
+8880
+8880
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2478
+ENCODING 9336
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+BE80
+A080
+A080
+BC80
+8280
+8280
+BC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2479
+ENCODING 9337
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9C80
+A080
+A080
+BC80
+A280
+A280
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247A
+ENCODING 9338
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+BE80
+8280
+8480
+8480
+8880
+8880
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247B
+ENCODING 9339
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9C80
+A280
+A280
+9C80
+A280
+A280
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247C
+ENCODING 9340
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9C80
+A280
+A280
+9E80
+8280
+8280
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247D
+ENCODING 9341
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A480
+AA80
+AA80
+AA80
+AA80
+AA80
+A480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247E
+ENCODING 9342
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9480
+9480
+9480
+9480
+9480
+9480
+9480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni247F
+ENCODING 9343
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+AC80
+A280
+A280
+A480
+A880
+A880
+AE80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2480
+ENCODING 9344
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+AC80
+A280
+A280
+A480
+A280
+A280
+AC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2481
+ENCODING 9345
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A880
+A880
+AA80
+AE80
+A280
+A280
+A280
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2482
+ENCODING 9346
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+AE80
+A880
+A880
+AC80
+A280
+A280
+AC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2483
+ENCODING 9347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A680
+A880
+A880
+AC80
+AA80
+AA80
+A480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2484
+ENCODING 9348
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+AE80
+A280
+A280
+A280
+A480
+A480
+A480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2485
+ENCODING 9349
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A480
+AA80
+AA80
+A480
+AA80
+AA80
+A480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2486
+ENCODING 9350
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A480
+AA80
+AA80
+A680
+A280
+A280
+AC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2487
+ENCODING 9351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A480
+9A80
+9A80
+9A80
+AA80
+AA80
+B480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2488
+ENCODING 9352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1000
+3000
+1000
+1000
+1000
+1300
+3B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2489
+ENCODING 9353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+8800
+0800
+1000
+2000
+4300
+FB00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248A
+ENCODING 9354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+8800
+0800
+3000
+0800
+8B00
+7300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248B
+ENCODING 9355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1800
+2800
+3C00
+0800
+0B00
+0B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248C
+ENCODING 9356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+F800
+8000
+8000
+F000
+0800
+0B00
+F300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248D
+ENCODING 9357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+8000
+8000
+F000
+8800
+8B00
+7300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248E
+ENCODING 9358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3E00
+0200
+0400
+0400
+0800
+0B00
+0B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni248F
+ENCODING 9359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+8800
+8800
+7000
+8800
+8B00
+7300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2490
+ENCODING 9360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7000
+8800
+8800
+7800
+0800
+0B00
+7300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2491
+ENCODING 9361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9000
+A800
+A800
+A800
+A800
+AB00
+9300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2492
+ENCODING 9362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2800
+2800
+2800
+2800
+2800
+2B00
+2B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2493
+ENCODING 9363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+B000
+8800
+8800
+9000
+A000
+A300
+BB00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2494
+ENCODING 9364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+B000
+8800
+8800
+9000
+8800
+8B00
+B300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2495
+ENCODING 9365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+A000
+A000
+A800
+B800
+8800
+8B00
+8B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2496
+ENCODING 9366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+B800
+A000
+A000
+B000
+8800
+8B00
+B300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2497
+ENCODING 9367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9800
+A000
+A000
+B000
+A800
+AB00
+9300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2498
+ENCODING 9368
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+5C00
+4400
+4400
+4400
+4800
+4B00
+4B00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2499
+ENCODING 9369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9000
+A800
+A800
+9000
+A800
+AB00
+9300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249A
+ENCODING 9370
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9000
+A800
+A800
+9800
+8800
+8B00
+B300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249B
+ENCODING 9371
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9000
+6800
+6800
+6800
+A800
+AB00
+D300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249C
+ENCODING 9372
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+9C80
+8280
+9E80
+A280
+A280
+9E80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249D
+ENCODING 9373
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A080
+A080
+BC80
+A280
+A280
+A280
+BC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249E
+ENCODING 9374
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9E80
+A080
+A080
+A080
+9E80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni249F
+ENCODING 9375
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8280
+8280
+9E80
+A280
+A280
+A280
+9E80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A0
+ENCODING 9376
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9C80
+A280
+BE80
+A080
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A1
+ENCODING 9377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8480
+8880
+8880
+9C80
+8880
+8880
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A2
+ENCODING 9378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9880
+A480
+A480
+A480
+9C80
+4500
+0400
+1800
+0000
+ENDCHAR
+
+STARTCHAR uni24A3
+ENCODING 9379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+A080
+A080
+BC80
+A280
+A280
+A280
+A280
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A4
+ENCODING 9380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8880
+8080
+8880
+8880
+8880
+8880
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A5
+ENCODING 9381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8880
+8080
+8880
+8880
+8880
+8880
+A880
+5100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A6
+ENCODING 9382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9080
+9080
+9280
+9480
+9880
+9480
+9280
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A7
+ENCODING 9383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9080
+9080
+9080
+9080
+9080
+9080
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A8
+ENCODING 9384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+B480
+AA80
+AA80
+AA80
+AA80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24A9
+ENCODING 9385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9880
+9480
+9480
+9480
+9480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24AA
+ENCODING 9386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+8880
+9480
+9480
+9480
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24AB
+ENCODING 9387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9880
+9480
+9480
+9480
+9880
+5100
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uni24AC
+ENCODING 9388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+8C80
+9480
+9480
+9480
+8C80
+4500
+0400
+0400
+0000
+ENDCHAR
+
+STARTCHAR uni24AD
+ENCODING 9389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9680
+9880
+9080
+9080
+9080
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24AE
+ENCODING 9390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+9E80
+A080
+9C80
+8280
+BC80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24AF
+ENCODING 9391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+9080
+9080
+B880
+9080
+9080
+9080
+8C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B0
+ENCODING 9392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+A480
+A480
+A480
+A480
+9C80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B1
+ENCODING 9393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+A280
+A280
+9480
+9480
+8880
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B2
+ENCODING 9394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+A280
+A280
+A280
+AA80
+9480
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B3
+ENCODING 9395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+A280
+9480
+8880
+9480
+A280
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B4
+ENCODING 9396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+A280
+A280
+A280
+A280
+9E80
+4300
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B5
+ENCODING 9397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+8080
+8080
+BE80
+8480
+8880
+9080
+BE80
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B6
+ENCODING 9398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+8880
+8880
+9480
+9C80
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B7
+ENCODING 9399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BC80
+A280
+BC80
+A280
+A280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B8
+ENCODING 9400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9C80
+A080
+A080
+A080
+A080
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24B9
+ENCODING 9401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BC80
+A280
+A280
+A280
+A280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BA
+ENCODING 9402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BE80
+A080
+BC80
+A080
+A080
+BE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BB
+ENCODING 9403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BE80
+A080
+BC80
+A080
+A080
+A080
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BC
+ENCODING 9404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9C80
+A280
+A080
+A680
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BD
+ENCODING 9405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+A280
+BE80
+A280
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BE
+ENCODING 9406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9C80
+8880
+8880
+8880
+8880
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24BF
+ENCODING 9407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9E80
+8280
+8280
+8280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C0
+ENCODING 9408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A480
+A880
+B080
+A880
+A480
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C1
+ENCODING 9409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A080
+A080
+A080
+A080
+A080
+BE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C2
+ENCODING 9410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+B680
+AA80
+A280
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C3
+ENCODING 9411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+B280
+AA80
+A680
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C4
+ENCODING 9412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9C80
+A280
+A280
+A280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C5
+ENCODING 9413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BC80
+A280
+A280
+BC80
+A080
+A080
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C6
+ENCODING 9414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9C80
+A280
+A280
+AA80
+A680
+9E80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C7
+ENCODING 9415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BC80
+A280
+BC80
+A280
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C8
+ENCODING 9416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+9E80
+A080
+9C80
+8280
+8280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24C9
+ENCODING 9417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BE80
+8880
+8880
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CA
+ENCODING 9418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+A280
+A280
+A280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CB
+ENCODING 9419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+A280
+9480
+9480
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CC
+ENCODING 9420
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+A280
+AA80
+AA80
+AA80
+9480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CD
+ENCODING 9421
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+9480
+8880
+8880
+9480
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CE
+ENCODING 9422
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+A280
+9480
+8880
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24CF
+ENCODING 9423
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+BE80
+8480
+8880
+9080
+A080
+BE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D0
+ENCODING 9424
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+9C80
+8280
+9E80
+A280
+A280
+9E80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D1
+ENCODING 9425
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A080
+A080
+BC80
+A280
+A280
+A280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D2
+ENCODING 9426
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9E80
+A080
+A080
+A080
+9E80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D3
+ENCODING 9427
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8280
+8280
+9E80
+A280
+A280
+A280
+9E80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D4
+ENCODING 9428
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9C80
+A280
+BE80
+A080
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D5
+ENCODING 9429
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8480
+8880
+8880
+9C80
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D6
+ENCODING 9430
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9880
+A480
+A480
+BC80
+8480
+5900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D7
+ENCODING 9431
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+A080
+A080
+BC80
+A280
+A280
+A280
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D8
+ENCODING 9432
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8880
+8080
+8880
+8880
+8880
+8880
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24D9
+ENCODING 9433
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8880
+8080
+8880
+8880
+8880
+8880
+A880
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DA
+ENCODING 9434
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9080
+9080
+9280
+9480
+9880
+9480
+9280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DB
+ENCODING 9435
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9080
+9080
+9080
+9080
+9080
+9080
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DC
+ENCODING 9436
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+B480
+AA80
+AA80
+AA80
+AA80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DD
+ENCODING 9437
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9880
+9480
+9480
+9480
+9480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DE
+ENCODING 9438
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+8880
+9480
+9480
+9480
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24DF
+ENCODING 9439
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9880
+9480
+9480
+9480
+9880
+5100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E0
+ENCODING 9440
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+8C80
+9480
+9480
+9480
+8C80
+4500
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E1
+ENCODING 9441
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9680
+9880
+9080
+9080
+9080
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E2
+ENCODING 9442
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+9E80
+A080
+9C80
+8280
+BC80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E3
+ENCODING 9443
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9080
+9080
+B880
+9080
+9080
+9080
+8C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E4
+ENCODING 9444
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+A480
+A480
+A480
+A480
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E5
+ENCODING 9445
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+A280
+A280
+9480
+9480
+8880
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E6
+ENCODING 9446
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+A280
+A280
+AA80
+AA80
+9480
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E7
+ENCODING 9447
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+A280
+9480
+8880
+9480
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E8
+ENCODING 9448
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+A280
+A280
+A280
+A280
+9E80
+4300
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24E9
+ENCODING 9449
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+8080
+8080
+BE80
+8480
+8880
+9080
+BE80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni24EA
+ENCODING 9450
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+4100
+9C80
+A280
+A280
+A280
+A280
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF100000
+ENCODING 9472
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2501
+ENCODING 9473
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF110000
+ENCODING 9474
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2503
+ENCODING 9475
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2504
+ENCODING 9476
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+DB00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2505
+ENCODING 9477
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+DB00
+DB00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2506
+ENCODING 9478
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0000
+0000
+0800
+0800
+0800
+0800
+0000
+0000
+0800
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2507
+ENCODING 9479
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0C00
+0C00
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uni2508
+ENCODING 9480
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+5500
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2509
+ENCODING 9481
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+5500
+5500
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni250A
+ENCODING 9482
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0000
+0800
+0800
+0800
+0000
+0800
+0800
+0800
+0000
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni250B
+ENCODING 9483
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0000
+0C00
+0C00
+0C00
+0000
+0C00
+0C00
+0C00
+0000
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF010000
+ENCODING 9484
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni250D
+ENCODING 9485
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni250E
+ENCODING 9486
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni250F
+ENCODING 9487
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF030000
+ENCODING 9488
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2511
+ENCODING 9489
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2512
+ENCODING 9490
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2513
+ENCODING 9491
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF020000
+ENCODING 9492
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2515
+ENCODING 9493
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2516
+ENCODING 9494
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2517
+ENCODING 9495
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF040000
+ENCODING 9496
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2519
+ENCODING 9497
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+F800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni251A
+ENCODING 9498
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni251B
+ENCODING 9499
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FC00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF080000
+ENCODING 9500
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni251D
+ENCODING 9501
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni251E
+ENCODING 9502
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni251F
+ENCODING 9503
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2520
+ENCODING 9504
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2521
+ENCODING 9505
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2522
+ENCODING 9506
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2523
+ENCODING 9507
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF090000
+ENCODING 9508
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2525
+ENCODING 9509
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2526
+ENCODING 9510
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2527
+ENCODING 9511
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2528
+ENCODING 9512
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2529
+ENCODING 9513
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FC00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uni252A
+ENCODING 9514
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0400
+0400
+0400
+0400
+0400
+0400
+FC00
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni252B
+ENCODING 9515
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FC00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF060000
+ENCODING 9516
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni252D
+ENCODING 9517
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni252E
+ENCODING 9518
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni252F
+ENCODING 9519
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2530
+ENCODING 9520
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2531
+ENCODING 9521
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2532
+ENCODING 9522
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2533
+ENCODING 9523
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR SF070000
+ENCODING 9524
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2535
+ENCODING 9525
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2536
+ENCODING 9526
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2537
+ENCODING 9527
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2538
+ENCODING 9528
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2539
+ENCODING 9529
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni253A
+ENCODING 9530
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni253B
+ENCODING 9531
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF050000
+ENCODING 9532
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni253D
+ENCODING 9533
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni253E
+ENCODING 9534
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni253F
+ENCODING 9535
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2540
+ENCODING 9536
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2541
+ENCODING 9537
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2542
+ENCODING 9538
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2543
+ENCODING 9539
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2544
+ENCODING 9540
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2545
+ENCODING 9541
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FC00
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2546
+ENCODING 9542
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2547
+ENCODING 9543
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2548
+ENCODING 9544
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni2549
+ENCODING 9545
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FC00
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni254A
+ENCODING 9546
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni254B
+ENCODING 9547
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni254C
+ENCODING 9548
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni254D
+ENCODING 9549
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7700
+7700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni254E
+ENCODING 9550
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni254F
+ENCODING 9551
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF430000
+ENCODING 9552
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF240000
+ENCODING 9553
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF510000
+ENCODING 9554
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0800
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF520000
+ENCODING 9555
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF390000
+ENCODING 9556
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+1000
+1780
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF220000
+ENCODING 9557
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+0800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF210000
+ENCODING 9558
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF250000
+ENCODING 9559
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+0400
+F400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF500000
+ENCODING 9560
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0800
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF490000
+ENCODING 9561
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF380000
+ENCODING 9562
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1780
+1000
+1F80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF280000
+ENCODING 9563
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0800
+F800
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF270000
+ENCODING 9564
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+FC00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF260000
+ENCODING 9565
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+F400
+0400
+FC00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF360000
+ENCODING 9566
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0F80
+0800
+0F80
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF370000
+ENCODING 9567
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+1780
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF420000
+ENCODING 9568
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1780
+1000
+1780
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF190000
+ENCODING 9569
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF200000
+ENCODING 9570
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+F400
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF230000
+ENCODING 9571
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+F400
+0400
+F400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF470000
+ENCODING 9572
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF480000
+ENCODING 9573
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF410000
+ENCODING 9574
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+0000
+F780
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF450000
+ENCODING 9575
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF460000
+ENCODING 9576
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF400000
+ENCODING 9577
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+F780
+0000
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF540000
+ENCODING 9578
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+FF80
+0800
+FF80
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF530000
+ENCODING 9579
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+FF80
+1400
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR SF440000
+ENCODING 9580
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1400
+1400
+1400
+1400
+1400
+1400
+F780
+0000
+F780
+1400
+1400
+1400
+1400
+1400
+1400
+ENDCHAR
+
+STARTCHAR uni256D
+ENCODING 9581
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0380
+0400
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni256E
+ENCODING 9582
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+E000
+1000
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni256F
+ENCODING 9583
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+1000
+E000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2570
+ENCODING 9584
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0400
+0380
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2571
+ENCODING 9585
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+0080
+0100
+0200
+0200
+0400
+0400
+0800
+1000
+1000
+2000
+2000
+4000
+8000
+8000
+ENDCHAR
+
+STARTCHAR uni2572
+ENCODING 9586
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+8000
+4000
+2000
+2000
+1000
+1000
+0800
+0400
+0400
+0200
+0200
+0100
+0080
+0080
+ENDCHAR
+
+STARTCHAR uni2573
+ENCODING 9587
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8080
+8080
+4100
+2200
+2200
+1400
+1400
+0800
+1400
+1400
+2200
+2200
+4100
+8080
+8080
+ENDCHAR
+
+STARTCHAR uni2574
+ENCODING 9588
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2575
+ENCODING 9589
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2576
+ENCODING 9590
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2577
+ENCODING 9591
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2578
+ENCODING 9592
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FC00
+FC00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2579
+ENCODING 9593
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni257A
+ENCODING 9594
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+0F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni257B
+ENCODING 9595
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni257C
+ENCODING 9596
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni257D
+ENCODING 9597
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+
+STARTCHAR uni257E
+ENCODING 9598
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni257F
+ENCODING 9599
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR upblock
+ENCODING 9600
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2581
+ENCODING 9601
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2582
+ENCODING 9602
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2583
+ENCODING 9603
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR dnblock
+ENCODING 9604
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2585
+ENCODING 9605
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2586
+ENCODING 9606
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2587
+ENCODING 9607
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR block
+ENCODING 9608
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni2589
+ENCODING 9609
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+FF00
+ENDCHAR
+
+STARTCHAR uni258A
+ENCODING 9610
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+FE00
+ENDCHAR
+
+STARTCHAR uni258B
+ENCODING 9611
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+FC00
+ENDCHAR
+
+STARTCHAR lfblock
+ENCODING 9612
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+ENDCHAR
+
+STARTCHAR uni258D
+ENCODING 9613
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+
+STARTCHAR uni258E
+ENCODING 9614
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+C000
+ENDCHAR
+
+STARTCHAR uni258F
+ENCODING 9615
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+8000
+ENDCHAR
+
+STARTCHAR rtblock
+ENCODING 9616
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+0780
+ENDCHAR
+
+STARTCHAR ltshade
+ENCODING 9617
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+AA80
+0000
+5500
+0000
+AA80
+0000
+5500
+0000
+AA80
+0000
+5500
+0000
+AA80
+0000
+5500
+ENDCHAR
+
+STARTCHAR shade
+ENCODING 9618
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+AA80
+5500
+AA80
+5500
+AA80
+5500
+AA80
+5500
+AA80
+5500
+AA80
+5500
+AA80
+5500
+AA80
+ENDCHAR
+
+STARTCHAR dkshade
+ENCODING 9619
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+5500
+FF80
+AA80
+FF80
+5500
+FF80
+AA80
+FF80
+5500
+FF80
+AA80
+FF80
+5500
+FF80
+ENDCHAR
+
+STARTCHAR uni2594
+ENCODING 9620
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2595
+ENCODING 9621
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+0080
+ENDCHAR
+
+STARTCHAR filledbox
+ENCODING 9632
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+7F00
+7F00
+7F00
+7F00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H22073
+ENCODING 9633
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A2
+ENCODING 9634
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4100
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A3
+ENCODING 9635
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+5D00
+5D00
+5D00
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A4
+ENCODING 9636
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+7F00
+4100
+7F00
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A5
+ENCODING 9637
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+5500
+5500
+5500
+5500
+5500
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A6
+ENCODING 9638
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+5500
+7F00
+5500
+7F00
+5500
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A7
+ENCODING 9639
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4900
+4500
+6300
+5100
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A8
+ENCODING 9640
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4900
+5100
+6300
+4500
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25A9
+ENCODING 9641
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FE00
+D600
+8A00
+D600
+A200
+D600
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H18543
+ENCODING 9642
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H18551
+ENCODING 9643
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+2200
+2200
+2200
+3E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR filledrect
+ENCODING 9644
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF80
+FF80
+FF80
+FF80
+FF80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25AD
+ENCODING 9645
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF80
+8080
+8080
+8080
+FF80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25AE
+ENCODING 9646
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25AF
+ENCODING 9647
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+2200
+2200
+2200
+2200
+2200
+2200
+2200
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B0
+ENCODING 9648
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F80
+7F80
+FF80
+FF00
+FF00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B1
+ENCODING 9649
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F80
+4080
+8080
+8100
+FF00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR triagup
+ENCODING 9650
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+1C00
+3E00
+3E00
+7F00
+7F00
+FF80
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B3
+ENCODING 9651
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+4100
+4100
+8080
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B4
+ENCODING 9652
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+1C00
+1C00
+3E00
+3E00
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B5
+ENCODING 9653
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B6
+ENCODING 9654
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+C000
+F000
+FC00
+FF00
+FF80
+FF00
+FC00
+F000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B7
+ENCODING 9655
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+C000
+B000
+8C00
+8300
+8080
+8300
+8C00
+B000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B8
+ENCODING 9656
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+7000
+7C00
+7F00
+7C00
+7000
+4000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25B9
+ENCODING 9657
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4000
+7000
+4C00
+4300
+4C00
+7000
+4000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR triagrt
+ENCODING 9658
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+E000
+FC00
+FF80
+FC00
+E000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25BB
+ENCODING 9659
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+E000
+9C00
+8380
+9C00
+E000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR triagdn
+ENCODING 9660
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF80
+FF80
+7F00
+7F00
+3E00
+3E00
+1C00
+1C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25BD
+ENCODING 9661
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+FF80
+8080
+4100
+4100
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25BE
+ENCODING 9662
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+3E00
+3E00
+1C00
+1C00
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25BF
+ENCODING 9663
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C0
+ENCODING 9664
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0180
+0780
+1F80
+7F80
+FF80
+7F80
+1F80
+0780
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C1
+ENCODING 9665
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0180
+0680
+1880
+6080
+8080
+6080
+1880
+0680
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C2
+ENCODING 9666
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0700
+1F00
+7F00
+1F00
+0700
+0100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C3
+ENCODING 9667
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0100
+0700
+1900
+6100
+1900
+0700
+0100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR triaglf
+ENCODING 9668
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0380
+1F80
+FF80
+1F80
+0380
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C5
+ENCODING 9669
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0380
+1C80
+E080
+1C80
+0380
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C6
+ENCODING 9670
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+3E00
+7F00
+FF80
+7F00
+3E00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C7
+ENCODING 9671
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1400
+2200
+4100
+8080
+4100
+2200
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C8
+ENCODING 9672
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1400
+2200
+4900
+9C80
+4900
+2200
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C9
+ENCODING 9673
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5D00
+4900
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR lozenge
+ENCODING 9674
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR circle
+ENCODING 9675
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25CC
+ENCODING 9676
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+2200
+0000
+4100
+0000
+2200
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25CD
+ENCODING 9677
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+3600
+5500
+5500
+5500
+3600
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25CE
+ENCODING 9678
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4900
+5500
+4900
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H18533
+ENCODING 9679
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+3E00
+7F00
+7F00
+7F00
+3E00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D0
+ENCODING 9680
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+3A00
+7900
+7900
+7900
+3A00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D1
+ENCODING 9681
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2E00
+4F00
+4F00
+4F00
+2E00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D2
+ENCODING 9682
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+7F00
+7F00
+3E00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D3
+ENCODING 9683
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+3E00
+7F00
+7F00
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D4
+ENCODING 9684
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2E00
+4F00
+4F00
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D5
+ENCODING 9685
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2E00
+4F00
+7F00
+7F00
+3E00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D6
+ENCODING 9686
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+3800
+7800
+7800
+7800
+3800
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25D7
+ENCODING 9687
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+0E00
+0F00
+0F00
+0F00
+0E00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR invbullet
+ENCODING 9688
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+E380
+C180
+C180
+C180
+E380
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR invcircle
+ENCODING 9689
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+FF80
+FF80
+E380
+DD80
+BE80
+BE80
+BE80
+DD80
+E380
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni25DA
+ENCODING 9690
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF80
+FF80
+FF80
+FF80
+E380
+DD80
+BE80
+BE80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25DB
+ENCODING 9691
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+BE80
+BE80
+DD80
+E380
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+
+STARTCHAR uni25DC
+ENCODING 9692
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+2000
+4000
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25DD
+ENCODING 9693
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+0200
+0100
+0100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25DE
+ENCODING 9694
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0100
+0100
+0200
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25DF
+ENCODING 9695
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+2000
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E0
+ENCODING 9696
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E1
+ENCODING 9697
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E2
+ENCODING 9698
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0080
+0080
+0180
+0180
+0380
+0380
+0780
+0780
+0F80
+1F80
+1F80
+3F80
+3F80
+7F80
+7F80
+ENDCHAR
+
+STARTCHAR uni25E3
+ENCODING 9699
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+8000
+C000
+C000
+E000
+E000
+F000
+F000
+F800
+FC00
+FC00
+FE00
+FE00
+FF00
+FF00
+ENDCHAR
+
+STARTCHAR uni25E4
+ENCODING 9700
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+FF00
+FF00
+FE00
+FE00
+FC00
+FC00
+F800
+F000
+F000
+E000
+E000
+C000
+C000
+8000
+8000
+ENDCHAR
+
+STARTCHAR uni25E5
+ENCODING 9701
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+7F80
+7F80
+3F80
+3F80
+1F80
+1F80
+0F80
+0780
+0780
+0380
+0380
+0180
+0180
+0080
+0080
+ENDCHAR
+
+STARTCHAR openbullet
+ENCODING 9702
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E7
+ENCODING 9703
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+7900
+7900
+7900
+7900
+7900
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E8
+ENCODING 9704
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4F00
+4F00
+4F00
+4F00
+4F00
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25E9
+ENCODING 9705
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+7F00
+7D00
+7900
+7100
+6100
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25EA
+ENCODING 9706
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4300
+4700
+4F00
+5F00
+7F00
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25EB
+ENCODING 9707
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+4900
+4900
+4900
+4900
+4900
+7F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25EC
+ENCODING 9708
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2A00
+5D00
+4900
+8080
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25ED
+ENCODING 9709
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+1C00
+3A00
+3A00
+7900
+7900
+F880
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25EE
+ENCODING 9710
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1C00
+1C00
+2E00
+2E00
+4F00
+4F00
+8F80
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25EF
+ENCODING 9711
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+8080
+8080
+8080
+8080
+8080
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F0
+ENCODING 9712
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4900
+4900
+7900
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F1
+ENCODING 9713
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+7900
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F2
+ENCODING 9714
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4100
+4100
+4F00
+4900
+4900
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F3
+ENCODING 9715
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7F00
+4900
+4900
+4F00
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F4
+ENCODING 9716
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4900
+4900
+7900
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F5
+ENCODING 9717
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+7900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F6
+ENCODING 9718
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4100
+4F00
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25F7
+ENCODING 9719
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4900
+4900
+4F00
+4100
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2600
+ENCODING 9728
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+4100
+1C00
+3E00
+BE80
+3E00
+1C00
+4100
+0800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2601
+ENCODING 9729
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+3E00
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2602
+ENCODING 9730
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+3E00
+7F00
+0800
+0800
+0800
+0800
+2800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2603
+ENCODING 9731
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1500
+9C00
+3680
+2200
+AA00
+1500
+2200
+4900
+4180
+C900
+4100
+3E80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2604
+ENCODING 9732
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+0800
+0900
+1200
+1200
+3480
+4900
+8600
+8400
+4800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2605
+ENCODING 9733
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1C00
+FF80
+7F00
+3E00
+3600
+6300
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2606
+ENCODING 9734
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+F780
+4100
+2200
+4900
+5500
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2607
+ENCODING 9735
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0200
+0400
+0800
+1000
+0800
+0500
+0300
+0700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2608
+ENCODING 9736
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+4200
+4400
+4800
+5000
+4800
+4500
+4300
+4700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2609
+ENCODING 9737
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4900
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260A
+ENCODING 9738
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+5500
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260B
+ENCODING 9739
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2200
+5500
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260C
+ENCODING 9740
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+3800
+4400
+4400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260D
+ENCODING 9741
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0E00
+1100
+1100
+1100
+0E00
+0800
+3800
+4400
+4400
+4400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260E
+ENCODING 9742
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+7F00
+C180
+DD80
+3600
+6300
+6300
+F780
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni260F
+ENCODING 9743
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3E00
+4100
+9C80
+AA80
+5500
+4900
+8080
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2610
+ENCODING 9744
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2611
+ENCODING 9745
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+4100
+4300
+4300
+4500
+4500
+6900
+6900
+5100
+5100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2612
+ENCODING 9746
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7F00
+6300
+6300
+5500
+5500
+4900
+5500
+5500
+6300
+6300
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2613
+ENCODING 9747
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+1400
+1400
+0800
+0800
+1400
+1400
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2619
+ENCODING 9753
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0E00
+1F00
+3F00
+7F00
+7E00
+7D00
+3900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261A
+ENCODING 9754
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF00
+3D00
+1D00
+1F00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261B
+ENCODING 9755
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF00
+BC00
+B800
+F800
+3000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261C
+ENCODING 9756
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF00
+2100
+1100
+1300
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261D
+ENCODING 9757
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0200
+0200
+0600
+1A00
+2200
+2200
+1200
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261E
+ENCODING 9758
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF00
+8400
+8800
+C800
+3000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni261F
+ENCODING 9759
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1E00
+1200
+2200
+2200
+1A00
+0600
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2620
+ENCODING 9760
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+4100
+5500
+2200
+1C00
+4900
+6300
+5500
+0800
+5500
+6300
+4100
+0000
+ENDCHAR
+
+STARTCHAR uni2621
+ENCODING 9761
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+0200
+0200
+0400
+0800
+1000
+2000
+4000
+4000
+3F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2622
+ENCODING 9762
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+6300
+F780
+F780
+FF80
+8880
+9C80
+5D00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2623
+ENCODING 9763
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+4100
+AA80
+1400
+2A00
+2A00
+1C00
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2624
+ENCODING 9764
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+FF80
+3E00
+8880
+7F00
+8880
+7F00
+4900
+3E00
+2A00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2625
+ENCODING 9765
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+2200
+2200
+2200
+1400
+1400
+7F00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2626
+ENCODING 9766
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+0800
+7F00
+0800
+0800
+1800
+0C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2627
+ENCODING 9767
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1E00
+1100
+1100
+1100
+1E00
+1000
+D600
+3800
+D600
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2628
+ENCODING 9768
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+0800
+7F00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2629
+ENCODING 9769
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+0800
+0800
+8880
+FF80
+8880
+0800
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni262A
+ENCODING 9770
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+7100
+6400
+6E00
+6400
+6A00
+6000
+7100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni262B
+ENCODING 9771
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2A00
+1400
+8080
+AA80
+AA80
+AA80
+AA80
+AA80
+9C80
+8880
+5D00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni262C
+ENCODING 9772
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+5D00
+8880
+9C80
+AA80
+AA80
+9C80
+C980
+FF80
+FF80
+EB80
+5D00
+2A00
+2A00
+0000
+ENDCHAR
+
+STARTCHAR uni262D
+ENCODING 9773
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3C00
+4200
+0900
+1900
+3100
+2900
+0500
+2200
+5D00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni262E
+ENCODING 9774
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4900
+8880
+8880
+9C80
+AA80
+C980
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni262F
+ENCODING 9775
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+8080
+F280
+F880
+DD80
+FF80
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2630
+ENCODING 9776
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+7F00
+0000
+0000
+7F00
+7F00
+0000
+0000
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2631
+ENCODING 9777
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7700
+7700
+0000
+0000
+7F00
+7F00
+0000
+0000
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2632
+ENCODING 9778
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+7F00
+0000
+0000
+7700
+7700
+0000
+0000
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2633
+ENCODING 9779
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7700
+7700
+0000
+0000
+7700
+7700
+0000
+0000
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2634
+ENCODING 9780
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+7F00
+0000
+0000
+7F00
+7F00
+0000
+0000
+7700
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2635
+ENCODING 9781
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7700
+7700
+0000
+0000
+7F00
+7F00
+0000
+0000
+7700
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2636
+ENCODING 9782
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+7F00
+0000
+0000
+7700
+7700
+0000
+0000
+7700
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2637
+ENCODING 9783
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7700
+7700
+0000
+0000
+7700
+7700
+0000
+0000
+7700
+7700
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2638
+ENCODING 9784
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+5D00
+2A00
+5D00
+FF80
+5D00
+2A00
+5D00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2639
+ENCODING 9785
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+9480
+8080
+8080
+9C80
+A280
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR smileface
+ENCODING 9786
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+9480
+8080
+8080
+A280
+9C80
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR invsmileface
+ENCODING 9787
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+7F00
+EB80
+FF80
+FF80
+DD80
+E380
+7F00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sun
+ENCODING 9788
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+3600
+2200
+C180
+2200
+3600
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni263D
+ENCODING 9789
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+0A00
+0900
+0480
+0480
+0480
+0900
+0A00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni263E
+ENCODING 9790
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0E00
+1400
+2400
+4800
+4800
+4800
+2400
+1400
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni263F
+ENCODING 9791
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4100
+2200
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0800
+0800
+3E00
+0800
+0800
+ENDCHAR
+
+STARTCHAR female
+ENCODING 9792
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0800
+0800
+3E00
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni2641
+ENCODING 9793
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+0800
+3E00
+0800
+0800
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR male
+ENCODING 9794
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0780
+0180
+0280
+1C80
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2643
+ENCODING 9795
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6200
+9200
+0A00
+0A00
+0A00
+0A00
+1200
+FF00
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2644
+ENCODING 9796
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7000
+2000
+2000
+2000
+2E00
+3100
+2100
+2200
+2400
+2400
+0500
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni2645
+ENCODING 9797
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4900
+4900
+4900
+7F00
+4900
+4900
+5500
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2646
+ENCODING 9798
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+4900
+EB80
+4900
+4900
+4900
+4900
+3E00
+0800
+3E00
+0800
+0800
+0000
+ENDCHAR
+
+STARTCHAR uni2647
+ENCODING 9799
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7C00
+4200
+4100
+4100
+4200
+7C00
+4000
+4000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2648
+ENCODING 9800
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2200
+5500
+5500
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2649
+ENCODING 9801
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8080
+8080
+4100
+2200
+1C00
+2200
+2200
+2200
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni264A
+ENCODING 9802
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+3E00
+1400
+1400
+1400
+1400
+1400
+3E00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni264B
+ENCODING 9803
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3E00
+4900
+4800
+3000
+0600
+0900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni264C
+ENCODING 9804
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0E00
+1100
+1100
+1100
+3100
+4A00
+4A00
+3200
+0400
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni264D
+ENCODING 9805
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+A800
+5400
+5400
+5600
+5500
+5500
+5600
+0400
+1A00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni264E
+ENCODING 9806
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+2200
+1400
+7700
+0000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni264F
+ENCODING 9807
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+A800
+5400
+5400
+5400
+5400
+5400
+5400
+5400
+0500
+0200
+0000
+ENDCHAR
+
+STARTCHAR uni2650
+ENCODING 9808
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1F00
+0300
+0500
+2900
+1100
+2800
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2651
+ENCODING 9809
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+8000
+8800
+5400
+5500
+5680
+2480
+2680
+0500
+3800
+0000
+ENDCHAR
+
+STARTCHAR uni2652
+ENCODING 9810
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2A80
+5500
+0000
+0000
+0000
+2A80
+5500
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2653
+ENCODING 9811
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+2200
+1400
+1400
+3E00
+1400
+1400
+2200
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2654
+ENCODING 9812
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+4900
+7700
+4100
+4100
+2200
+2200
+2200
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2655
+ENCODING 9813
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+6300
+5500
+4100
+4100
+2200
+2200
+2200
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2656
+ENCODING 9814
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5D00
+7700
+4100
+4100
+2200
+2200
+2200
+2200
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2657
+ENCODING 9815
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+2200
+2200
+2200
+2200
+1C00
+2200
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2658
+ENCODING 9816
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+3D00
+4100
+4100
+3100
+0900
+1100
+2100
+4100
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2659
+ENCODING 9817
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+2400
+2400
+1800
+2400
+2400
+4200
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265A
+ENCODING 9818
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+4900
+7F00
+7F00
+7F00
+3E00
+3E00
+3E00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265B
+ENCODING 9819
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+7F00
+5500
+7F00
+7F00
+3E00
+3E00
+3E00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265C
+ENCODING 9820
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5D00
+7F00
+7F00
+7F00
+3E00
+3E00
+3E00
+3E00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265D
+ENCODING 9821
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1C00
+3A00
+3A00
+3E00
+3E00
+1C00
+3E00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265E
+ENCODING 9822
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+3F00
+7B00
+7F00
+3F00
+0F00
+1F00
+3F00
+7F00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni265F
+ENCODING 9823
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1800
+3C00
+3C00
+1800
+3C00
+3C00
+7E00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR spade
+ENCODING 9824
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+1C00
+3E00
+3E00
+7F00
+7F00
+3E00
+0800
+1C00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2661
+ENCODING 9825
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+4900
+4900
+4100
+4100
+2200
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2662
+ENCODING 9826
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+1400
+2200
+2200
+4100
+2200
+2200
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR club
+ENCODING 9827
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+3E00
+3E00
+5D00
+FF80
+FF80
+FF80
+6B00
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2664
+ENCODING 9828
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+1400
+2200
+2200
+4100
+4100
+3600
+1400
+2200
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR heart
+ENCODING 9829
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+7F00
+7F00
+7F00
+7F00
+3E00
+3E00
+3E00
+1C00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR diamond
+ENCODING 9830
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1C00
+1C00
+3E00
+3E00
+7F00
+3E00
+3E00
+1C00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2667
+ENCODING 9831
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+1400
+2200
+2200
+7700
+9480
+8080
+9C80
+6B00
+0800
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2668
+ENCODING 9832
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2A00
+2A00
+2900
+2500
+1500
+2500
+2900
+AA80
+8080
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2669
+ENCODING 9833
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+1C00
+3C00
+3C00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR musicalnote
+ENCODING 9834
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+0A00
+0900
+0900
+0800
+0800
+3800
+7800
+7800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR musicalnotedbl
+ENCODING 9835
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0700
+3900
+2100
+2100
+2100
+2100
+2700
+E700
+E200
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni266C
+ENCODING 9836
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0700
+3900
+2700
+3900
+2100
+2100
+2700
+E700
+E200
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni266D
+ENCODING 9837
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+2000
+2E00
+3100
+2100
+2200
+2C00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni266E
+ENCODING 9838
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+2300
+2D00
+3100
+2300
+2D00
+3100
+0100
+0100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni266F
+ENCODING 9839
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+1400
+1700
+1C00
+7400
+1400
+1700
+1C00
+7400
+1400
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2670
+ENCODING 9840
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+0800
+4900
+3E00
+4900
+0800
+0800
+0800
+0800
+1400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2671
+ENCODING 9841
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+1400
+0800
+4900
+7700
+4900
+0800
+0800
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2701
+ENCODING 9985
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+2400
+2400
+1980
+6600
+9C00
+9200
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2702
+ENCODING 9986
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+9000
+9080
+6B00
+0400
+6B00
+9080
+9000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2703
+ENCODING 9987
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+9200
+9C00
+6600
+1980
+2400
+2400
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2704
+ENCODING 9988
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6100
+9280
+9500
+6A00
+1400
+6A00
+9500
+9280
+6100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2706
+ENCODING 9990
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+4200
+9D00
+9D00
+B100
+B100
+B900
+B900
+A200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2707
+ENCODING 9991
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4100
+9C80
+8880
+8080
+A280
+B680
+4100
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2708
+ENCODING 9992
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1000
+0800
+4C00
+7F00
+4C00
+0800
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2709
+ENCODING 9993
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FF80
+C180
+A280
+9C80
+A280
+C180
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2711
+ENCODING 10001
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+6900
+9880
+8380
+9880
+6900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2712
+ENCODING 10002
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+6F00
+FF80
+FC00
+FF80
+6F00
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2713
+ENCODING 10003
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+0100
+0200
+0200
+3400
+3400
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2714
+ENCODING 10004
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0300
+0300
+0300
+0600
+0600
+EC00
+EC00
+7800
+7800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2715
+ENCODING 10005
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+4100
+E380
+7700
+3E00
+1C00
+3E00
+7700
+E380
+4100
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2716
+ENCODING 10006
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+E380
+E380
+F780
+7F00
+1C00
+7F00
+F780
+F780
+E380
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2717
+ENCODING 10007
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1100
+0A00
+0400
+0A00
+1100
+1100
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2718
+ENCODING 10008
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3300
+1E00
+0C00
+0E00
+1B00
+1B00
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2719
+ENCODING 10009
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+2200
+EB80
+8880
+BE80
+8880
+EB80
+2200
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271A
+ENCODING 10010
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+1C00
+1C00
+FF80
+FF80
+FF80
+1C00
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271B
+ENCODING 10011
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0C00
+7380
+7380
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271C
+ENCODING 10012
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+1C00
+1C00
+E380
+E380
+E380
+1C00
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271D
+ENCODING 10013
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+7E00
+7E00
+1800
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271E
+ENCODING 10014
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+1600
+7700
+4100
+7700
+3700
+1600
+1600
+1600
+1E00
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni271F
+ENCODING 10015
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+3E00
+2200
+EB80
+8880
+BE80
+8880
+EB80
+2A00
+2A00
+2A00
+2200
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2720
+ENCODING 10016
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+1C00
+8880
+C980
+F780
+C980
+8880
+1C00
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2721
+ENCODING 10017
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1400
+FF80
+A280
+4100
+A280
+FF80
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2722
+ENCODING 10018
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+0800
+4900
+FF80
+4900
+0800
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2723
+ENCODING 10019
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+1C00
+6B00
+FF80
+6B00
+1C00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2724
+ENCODING 10020
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+1C00
+6B00
+FF80
+6B00
+1C00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2725
+ENCODING 10021
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+1C00
+6B00
+FF80
+6B00
+1C00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2726
+ENCODING 10022
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1C00
+3E00
+FF80
+3E00
+1C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2727
+ENCODING 10023
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1400
+1400
+6300
+8080
+6300
+1400
+1400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2729
+ENCODING 10025
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+F780
+4100
+2200
+4900
+5500
+6300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272A
+ENCODING 10026
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+F780
+F780
+E380
+0000
+8080
+C180
+C980
+9C80
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272B
+ENCODING 10027
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1C00
+E380
+6300
+2200
+3E00
+7700
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272C
+ENCODING 10028
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+EB80
+5D00
+2A00
+2200
+7F00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272D
+ENCODING 10029
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+EB80
+5D00
+2A00
+2200
+7F00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272E
+ENCODING 10030
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+EB80
+5D00
+2A00
+2200
+7F00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni272F
+ENCODING 10031
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1400
+F780
+4900
+3600
+2A00
+7F00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2730
+ENCODING 10032
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+1800
+2C00
+C700
+2E00
+3C00
+6600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2731
+ENCODING 10033
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+DB00
+FF00
+7E00
+1800
+7E00
+FF00
+DB00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2732
+ENCODING 10034
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+DB00
+FF00
+6600
+2400
+6600
+FF00
+DB00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2733
+ENCODING 10035
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+2A00
+1C00
+FF80
+1C00
+2A00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2734
+ENCODING 10036
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+3E00
+3E00
+FF80
+3E00
+3E00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2735
+ENCODING 10037
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+3600
+3E00
+D580
+3E00
+3600
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2736
+ENCODING 10038
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+8880
+6B00
+3E00
+1C00
+3E00
+6B00
+8880
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2737
+ENCODING 10039
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+1400
+9480
+7F00
+1C00
+7F00
+9480
+1400
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2738
+ENCODING 10040
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2200
+3600
+FF80
+7F00
+3E00
+7F00
+FF80
+3600
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2739
+ENCODING 10041
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2A00
+2A00
+DD80
+3E00
+FF80
+3E00
+DD80
+2A00
+2A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273A
+ENCODING 10042
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2A00
+2A00
+DD80
+2A00
+FF80
+2A00
+DD80
+2A00
+2A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273B
+ENCODING 10043
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+1C00
+C980
+C980
+2200
+0800
+2200
+C980
+C980
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273C
+ENCODING 10044
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+1C00
+C980
+C980
+3E00
+1400
+3E00
+C980
+C980
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273D
+ENCODING 10045
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+1C00
+C980
+C980
+3E00
+1C00
+3E00
+C980
+C980
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273E
+ENCODING 10046
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1C00
+1400
+C980
+C980
+3E00
+1400
+7F00
+AA80
+C980
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni273F
+ENCODING 10047
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+1800
+DB00
+FF00
+2400
+2400
+7E00
+E700
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2743
+ENCODING 10051
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+CB00
+BD00
+6E00
+1800
+7600
+BD00
+D300
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2744
+ENCODING 10052
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2A00
+5D00
+AA80
+6B00
+DD80
+DD80
+6B00
+AA80
+5D00
+2A00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2745
+ENCODING 10053
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2A00
+5D00
+AA80
+6B00
+DD80
+DD80
+6B00
+AA80
+5D00
+2A00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2746
+ENCODING 10054
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+2A00
+5D00
+AA80
+6B00
+DD80
+DD80
+6B00
+AA80
+5D00
+2A00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2747
+ENCODING 10055
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+2A00
+1400
+EB80
+1400
+2A00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2748
+ENCODING 10056
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+2A00
+1400
+EB80
+1400
+2A00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2749
+ENCODING 10057
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+DB00
+CB00
+3C00
+1800
+3C00
+D300
+DB00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni274A
+ENCODING 10058
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+2A00
+0000
+EB80
+0000
+2A00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni274B
+ENCODING 10059
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+4900
+2A00
+1C00
+FF80
+1C00
+2A00
+4900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni274D
+ENCODING 10061
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4300
+8180
+8180
+8180
+8180
+4300
+3E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni274F
+ENCODING 10063
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+FE00
+8200
+8380
+8380
+8380
+8380
+FF80
+3F80
+3F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2750
+ENCODING 10064
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3F80
+3F80
+FF80
+8380
+8380
+8380
+8380
+8200
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2751
+ENCODING 10065
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+FE00
+8300
+8300
+8300
+8300
+8300
+FF00
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2752
+ENCODING 10066
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+7F00
+FF00
+8300
+8300
+8300
+8300
+8300
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2756
+ENCODING 10070
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1C00
+0800
+4100
+E380
+4100
+0800
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2758
+ENCODING 10072
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2759
+ENCODING 10073
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni275A
+ENCODING 10074
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni275B
+ENCODING 10075
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0E00
+1000
+1C00
+1E00
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni275C
+ENCODING 10076
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0C00
+1E00
+1E00
+0E00
+0200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni275D
+ENCODING 10077
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+7380
+8400
+E700
+F780
+F780
+6300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni275E
+ENCODING 10078
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+6300
+F780
+F780
+7380
+1080
+E700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2761
+ENCODING 10081
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+3F00
+7200
+7200
+7200
+3E00
+0200
+3200
+3400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2762
+ENCODING 10082
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+3E00
+3E00
+1C00
+0800
+0800
+0000
+0800
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2763
+ENCODING 10083
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+3E00
+3E00
+1C00
+0800
+0800
+0000
+0800
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2764
+ENCODING 10084
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6300
+F780
+FF80
+FF80
+7F00
+3E00
+1C00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2765
+ENCODING 10085
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7000
+F800
+FC00
+7E00
+3F80
+7E00
+FC00
+F800
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2766
+ENCODING 10086
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0800
+7480
+9500
+0E00
+0400
+6B00
+F780
+FF80
+7F00
+3E00
+1C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2767
+ENCODING 10087
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+1000
+2900
+5200
+9C00
+2000
+5800
+7C00
+3C00
+FE00
+FE80
+FF00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2776
+ENCODING 10102
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+F780
+E780
+F780
+F780
+F780
+F780
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2777
+ENCODING 10103
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+FD80
+FB80
+F780
+ED80
+C180
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2778
+ENCODING 10104
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+FD80
+F380
+FD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2779
+ENCODING 10105
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+F380
+EB80
+DB80
+C180
+FB80
+FB80
+FB80
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277A
+ENCODING 10106
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+C180
+DF80
+DF80
+C380
+FD80
+FD80
+C380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277B
+ENCODING 10107
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E180
+DF80
+DF80
+C380
+DD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277C
+ENCODING 10108
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+C180
+FD80
+FB80
+FB80
+F780
+F780
+F780
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277D
+ENCODING 10109
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+DD80
+E380
+DD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277E
+ENCODING 10110
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E180
+DD80
+DD80
+E180
+FD80
+FD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni277F
+ENCODING 10111
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+DB80
+D580
+D580
+D580
+D580
+D580
+DB80
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2780
+ENCODING 10112
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+8880
+9880
+8880
+8880
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2781
+ENCODING 10113
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+9880
+8480
+8480
+8880
+9C80
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2782
+ENCODING 10114
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+9880
+8480
+8880
+8480
+9880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2783
+ENCODING 10115
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+8880
+9880
+A880
+BC80
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2784
+ENCODING 10116
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+9C80
+9080
+9880
+8480
+9880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2785
+ENCODING 10117
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+8C80
+9080
+9880
+9480
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2786
+ENCODING 10118
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+9C80
+8480
+8880
+8880
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2787
+ENCODING 10119
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+8880
+9480
+8880
+9480
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2788
+ENCODING 10120
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+8880
+9480
+8C80
+8480
+8880
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2789
+ENCODING 10121
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+8080
+A480
+AA80
+AA80
+AA80
+A480
+8080
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278A
+ENCODING 10122
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+F780
+E780
+F780
+F780
+F780
+F780
+F780
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278B
+ENCODING 10123
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+FD80
+FB80
+F780
+EF80
+C180
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278C
+ENCODING 10124
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+FD80
+F380
+FD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278D
+ENCODING 10125
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+F380
+EB80
+DB80
+C180
+FB80
+FB80
+FB80
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278E
+ENCODING 10126
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+C180
+DF80
+DF80
+C380
+FD80
+FD80
+C380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni278F
+ENCODING 10127
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E180
+DF80
+DF80
+C380
+DD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2790
+ENCODING 10128
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+C180
+FD80
+FB80
+FB80
+F780
+F780
+F780
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2791
+ENCODING 10129
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E380
+DD80
+DD80
+E380
+DD80
+DD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2792
+ENCODING 10130
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+E180
+DD80
+DD80
+E180
+FD80
+FD80
+E380
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2793
+ENCODING 10131
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+DB80
+D580
+D580
+D580
+D580
+D580
+DB80
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2794
+ENCODING 10132
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+0C00
+0600
+7F00
+7F00
+0600
+0C00
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2798
+ENCODING 10136
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7000
+7D00
+1F00
+0700
+0F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2799
+ENCODING 10137
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0600
+7300
+7F80
+7300
+0600
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279A
+ENCODING 10138
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F00
+0700
+1F00
+7D00
+7000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279B
+ENCODING 10139
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+1C00
+1F00
+FF80
+1F00
+1C00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279C
+ENCODING 10140
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+1E00
+0F00
+FF80
+FF80
+FF80
+0F00
+1E00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279D
+ENCODING 10141
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+0300
+FF80
+0300
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279E
+ENCODING 10142
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0400
+0600
+FF00
+FF80
+FF00
+0600
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni279F
+ENCODING 10143
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+B700
+B780
+B700
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A0
+ENCODING 10144
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+AB00
+AB80
+AB00
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A1
+ENCODING 10145
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0200
+FF00
+FF80
+FF00
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A2
+ENCODING 10146
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8000
+7000
+4E00
+2180
+1F80
+3E00
+7000
+8000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A3
+ENCODING 10147
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8000
+7000
+3E00
+1F80
+2180
+4E00
+7000
+8000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A4
+ENCODING 10148
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8000
+7000
+3E00
+1F80
+1F80
+3E00
+7000
+8000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A5
+ENCODING 10149
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+8400
+8600
+FF00
+FF80
+7F00
+0600
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A6
+ENCODING 10150
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0400
+0600
+7F00
+FF80
+FF00
+8600
+8400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A7
+ENCODING 10151
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0400
+3E00
+3E00
+3F00
+3E00
+3E00
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A8
+ENCODING 10152
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0400
+FE00
+FE00
+FF00
+FE00
+FE00
+0400
+0400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27A9
+ENCODING 10153
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+1C00
+1600
+F300
+8180
+F300
+1600
+1C00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AA
+ENCODING 10154
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+1C00
+1A00
+F900
+C080
+F900
+1A00
+1C00
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AB
+ENCODING 10155
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0080
+0180
+3E80
+4080
+8180
+F300
+EE00
+3C00
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AC
+ENCODING 10156
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3800
+3C00
+EE00
+F300
+8180
+4080
+3E80
+0180
+0080
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AD
+ENCODING 10157
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1800
+1400
+F200
+8100
+F300
+7600
+1C00
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AE
+ENCODING 10158
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+1C00
+7600
+F300
+8100
+F200
+1400
+1800
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27AF
+ENCODING 10159
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+FA00
+8100
+4080
+8180
+FB00
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B1
+ENCODING 10161
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0600
+FB00
+8180
+4080
+8100
+FA00
+0400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B2
+ENCODING 10162
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1C00
+7F00
+FB80
+0180
+0080
+0180
+FB80
+7F00
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B3
+ENCODING 10163
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+D200
+2B00
+7F80
+2B00
+D200
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B4
+ENCODING 10164
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+3800
+5C00
+EC00
+7400
+3C00
+0280
+0180
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B5
+ENCODING 10165
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+F200
+7B00
+0780
+7B00
+F200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B6
+ENCODING 10166
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0380
+0180
+0280
+3C00
+7400
+EC00
+5C00
+3800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B7
+ENCODING 10167
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1000
+1800
+1C00
+FC00
+7C00
+3C00
+0280
+0180
+0380
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B8
+ENCODING 10168
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+F200
+7B00
+7F80
+7B00
+F200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27B9
+ENCODING 10169
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0380
+0180
+0280
+3C00
+7C00
+FC00
+1C00
+1800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27BA
+ENCODING 10170
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0300
+0300
+7100
+FF80
+7100
+0300
+0300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27BB
+ENCODING 10171
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0200
+7300
+7900
+FF80
+7900
+7300
+0200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27BC
+ENCODING 10172
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+F200
+7B00
+3F80
+7B00
+F200
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27BD
+ENCODING 10173
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+E200
+F200
+7B00
+3F80
+7B00
+F200
+E200
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni27BE
+ENCODING 10174
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+1400
+0A00
+FD00
+0080
+FD00
+0A00
+1400
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2800
+ENCODING 10240
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2801
+ENCODING 10241
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2802
+ENCODING 10242
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2803
+ENCODING 10243
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2804
+ENCODING 10244
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2805
+ENCODING 10245
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2806
+ENCODING 10246
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2807
+ENCODING 10247
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2808
+ENCODING 10248
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2809
+ENCODING 10249
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280A
+ENCODING 10250
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280B
+ENCODING 10251
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280C
+ENCODING 10252
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280D
+ENCODING 10253
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280E
+ENCODING 10254
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni280F
+ENCODING 10255
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2810
+ENCODING 10256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2811
+ENCODING 10257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2812
+ENCODING 10258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2813
+ENCODING 10259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2814
+ENCODING 10260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2815
+ENCODING 10261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2816
+ENCODING 10262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2817
+ENCODING 10263
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2818
+ENCODING 10264
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2819
+ENCODING 10265
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281A
+ENCODING 10266
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281B
+ENCODING 10267
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281C
+ENCODING 10268
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281D
+ENCODING 10269
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281E
+ENCODING 10270
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni281F
+ENCODING 10271
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2820
+ENCODING 10272
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2821
+ENCODING 10273
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2822
+ENCODING 10274
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2823
+ENCODING 10275
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2824
+ENCODING 10276
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2825
+ENCODING 10277
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2826
+ENCODING 10278
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2827
+ENCODING 10279
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2828
+ENCODING 10280
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2829
+ENCODING 10281
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282A
+ENCODING 10282
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282B
+ENCODING 10283
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282C
+ENCODING 10284
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282D
+ENCODING 10285
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282E
+ENCODING 10286
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni282F
+ENCODING 10287
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2830
+ENCODING 10288
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2831
+ENCODING 10289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2832
+ENCODING 10290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2833
+ENCODING 10291
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2834
+ENCODING 10292
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2835
+ENCODING 10293
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2836
+ENCODING 10294
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2837
+ENCODING 10295
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2838
+ENCODING 10296
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2839
+ENCODING 10297
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283A
+ENCODING 10298
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283B
+ENCODING 10299
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283C
+ENCODING 10300
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283D
+ENCODING 10301
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283E
+ENCODING 10302
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni283F
+ENCODING 10303
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2840
+ENCODING 10304
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2841
+ENCODING 10305
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2842
+ENCODING 10306
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2843
+ENCODING 10307
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2844
+ENCODING 10308
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2845
+ENCODING 10309
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2846
+ENCODING 10310
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2847
+ENCODING 10311
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2848
+ENCODING 10312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2849
+ENCODING 10313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284A
+ENCODING 10314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284B
+ENCODING 10315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284C
+ENCODING 10316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284D
+ENCODING 10317
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284E
+ENCODING 10318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni284F
+ENCODING 10319
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2850
+ENCODING 10320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2851
+ENCODING 10321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2852
+ENCODING 10322
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2853
+ENCODING 10323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2854
+ENCODING 10324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2855
+ENCODING 10325
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2856
+ENCODING 10326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2857
+ENCODING 10327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2858
+ENCODING 10328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2859
+ENCODING 10329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285A
+ENCODING 10330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285B
+ENCODING 10331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285C
+ENCODING 10332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285D
+ENCODING 10333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285E
+ENCODING 10334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni285F
+ENCODING 10335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2860
+ENCODING 10336
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2861
+ENCODING 10337
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2862
+ENCODING 10338
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2863
+ENCODING 10339
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2864
+ENCODING 10340
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2865
+ENCODING 10341
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2866
+ENCODING 10342
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2867
+ENCODING 10343
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2868
+ENCODING 10344
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2869
+ENCODING 10345
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286A
+ENCODING 10346
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286B
+ENCODING 10347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286C
+ENCODING 10348
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286D
+ENCODING 10349
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286E
+ENCODING 10350
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni286F
+ENCODING 10351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2870
+ENCODING 10352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2871
+ENCODING 10353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2872
+ENCODING 10354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2873
+ENCODING 10355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2874
+ENCODING 10356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2875
+ENCODING 10357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2876
+ENCODING 10358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2877
+ENCODING 10359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2878
+ENCODING 10360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2879
+ENCODING 10361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287A
+ENCODING 10362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287B
+ENCODING 10363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287C
+ENCODING 10364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287D
+ENCODING 10365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287E
+ENCODING 10366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni287F
+ENCODING 10367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2880
+ENCODING 10368
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2881
+ENCODING 10369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2882
+ENCODING 10370
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2883
+ENCODING 10371
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2884
+ENCODING 10372
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2885
+ENCODING 10373
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2886
+ENCODING 10374
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2887
+ENCODING 10375
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2888
+ENCODING 10376
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2889
+ENCODING 10377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288A
+ENCODING 10378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288B
+ENCODING 10379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288C
+ENCODING 10380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288D
+ENCODING 10381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288E
+ENCODING 10382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni288F
+ENCODING 10383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2890
+ENCODING 10384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2891
+ENCODING 10385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2892
+ENCODING 10386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2893
+ENCODING 10387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2894
+ENCODING 10388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2895
+ENCODING 10389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2896
+ENCODING 10390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2897
+ENCODING 10391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2898
+ENCODING 10392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2899
+ENCODING 10393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289A
+ENCODING 10394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289B
+ENCODING 10395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289C
+ENCODING 10396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289D
+ENCODING 10397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289E
+ENCODING 10398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni289F
+ENCODING 10399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A0
+ENCODING 10400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A1
+ENCODING 10401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A2
+ENCODING 10402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A3
+ENCODING 10403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A4
+ENCODING 10404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A5
+ENCODING 10405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A6
+ENCODING 10406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A7
+ENCODING 10407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A8
+ENCODING 10408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28A9
+ENCODING 10409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AA
+ENCODING 10410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AB
+ENCODING 10411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AC
+ENCODING 10412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AD
+ENCODING 10413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AE
+ENCODING 10414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28AF
+ENCODING 10415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B0
+ENCODING 10416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B1
+ENCODING 10417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B2
+ENCODING 10418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B3
+ENCODING 10419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B4
+ENCODING 10420
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B5
+ENCODING 10421
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B6
+ENCODING 10422
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B7
+ENCODING 10423
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B8
+ENCODING 10424
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28B9
+ENCODING 10425
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BA
+ENCODING 10426
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BB
+ENCODING 10427
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BC
+ENCODING 10428
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BD
+ENCODING 10429
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BE
+ENCODING 10430
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28BF
+ENCODING 10431
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C0
+ENCODING 10432
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C1
+ENCODING 10433
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C2
+ENCODING 10434
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C3
+ENCODING 10435
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C4
+ENCODING 10436
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C5
+ENCODING 10437
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C6
+ENCODING 10438
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C7
+ENCODING 10439
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C8
+ENCODING 10440
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28C9
+ENCODING 10441
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CA
+ENCODING 10442
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CB
+ENCODING 10443
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CC
+ENCODING 10444
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CD
+ENCODING 10445
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CE
+ENCODING 10446
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28CF
+ENCODING 10447
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D0
+ENCODING 10448
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D1
+ENCODING 10449
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D2
+ENCODING 10450
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D3
+ENCODING 10451
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D4
+ENCODING 10452
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D5
+ENCODING 10453
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D6
+ENCODING 10454
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D7
+ENCODING 10455
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D8
+ENCODING 10456
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28D9
+ENCODING 10457
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DA
+ENCODING 10458
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DB
+ENCODING 10459
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DC
+ENCODING 10460
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DD
+ENCODING 10461
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DE
+ENCODING 10462
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28DF
+ENCODING 10463
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E0
+ENCODING 10464
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E1
+ENCODING 10465
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E2
+ENCODING 10466
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E3
+ENCODING 10467
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E4
+ENCODING 10468
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E5
+ENCODING 10469
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E6
+ENCODING 10470
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E7
+ENCODING 10471
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E8
+ENCODING 10472
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28E9
+ENCODING 10473
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28EA
+ENCODING 10474
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28EB
+ENCODING 10475
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28EC
+ENCODING 10476
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28ED
+ENCODING 10477
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28EE
+ENCODING 10478
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28EF
+ENCODING 10479
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F0
+ENCODING 10480
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F1
+ENCODING 10481
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F2
+ENCODING 10482
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F3
+ENCODING 10483
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F4
+ENCODING 10484
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F5
+ENCODING 10485
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F6
+ENCODING 10486
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F7
+ENCODING 10487
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+3000
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F8
+ENCODING 10488
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28F9
+ENCODING 10489
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FA
+ENCODING 10490
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FB
+ENCODING 10491
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FC
+ENCODING 10492
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FD
+ENCODING 10493
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FE
+ENCODING 10494
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0600
+0600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni28FF
+ENCODING 10495
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+3600
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3001
+ENCODING 12289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+2000
+3000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3002
+ENCODING 12290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+4800
+3000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni300A
+ENCODING 12298
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1200
+1200
+2400
+2400
+4800
+4800
+2400
+2400
+1200
+1200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni300B
+ENCODING 12299
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2400
+2400
+1200
+1200
+0900
+0900
+1200
+1200
+2400
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3013
+ENCODING 12307
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+FF80
+FF80
+FF80
+0000
+0000
+0000
+FF80
+FF80
+FF80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni301A
+ENCODING 12314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+2800
+2800
+2800
+2800
+2800
+2800
+2800
+2800
+2800
+2800
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni301B
+ENCODING 12315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3E00
+0A00
+0A00
+0A00
+0A00
+0A00
+0A00
+0A00
+0A00
+0A00
+0A00
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni301C
+ENCODING 12316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+8780
+7800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni303F
+ENCODING 12351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+6300
+5500
+5500
+4900
+4900
+5500
+5500
+6300
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3041
+ENCODING 12353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+1C00
+F000
+2400
+3C00
+5200
+B200
+C400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3042
+ENCODING 12354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1E00
+7000
+1000
+2400
+3E00
+2900
+5080
+9080
+B080
+D100
+0200
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3043
+ENCODING 12355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+8400
+4200
+4200
+5000
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3044
+ENCODING 12356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+8200
+8100
+8080
+8180
+5000
+6000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3045
+ENCODING 12357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+1800
+0000
+B800
+4400
+0400
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3046
+ENCODING 12358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0C00
+0000
+5C00
+2200
+0200
+0200
+0200
+0400
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3047
+ENCODING 12359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+1800
+0000
+1C00
+6800
+1000
+2000
+5000
+8E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3048
+ENCODING 12360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0C00
+0000
+4F00
+3200
+0400
+0800
+1000
+3800
+4800
+8780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3049
+ENCODING 12361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4400
+7200
+C000
+5800
+6400
+C400
+4800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304A
+ENCODING 12362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+2880
+3180
+6000
+2E00
+3100
+6080
+A080
+6100
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304B
+ENCODING 12363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1200
+9900
+6480
+2580
+4400
+4400
+8800
+A800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304C
+ENCODING 12364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+2280
+1100
+9A00
+6500
+2480
+4580
+4400
+8800
+A800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304D
+ENCODING 12365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1600
+7800
+0700
+7C00
+0200
+3F00
+4100
+4000
+2000
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304E
+ENCODING 12366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+4100
+2C00
+F000
+0E00
+F800
+0400
+7E00
+8200
+8000
+4000
+3800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni304F
+ENCODING 12367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0400
+0400
+0800
+3000
+4000
+4000
+2000
+1000
+0800
+0400
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3050
+ENCODING 12368
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0400
+0500
+0880
+3200
+4100
+4000
+2000
+1000
+0800
+0400
+0400
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3051
+ENCODING 12369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+8400
+4200
+4380
+4E00
+8200
+8200
+8200
+6400
+4400
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3052
+ENCODING 12370
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+0900
+8400
+4200
+4380
+4E00
+8200
+8200
+8200
+6400
+4400
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3053
+ENCODING 12371
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+1F00
+0400
+0800
+0000
+0000
+8000
+8000
+4080
+3F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3054
+ENCODING 12372
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+0100
+2000
+1F00
+0400
+0800
+0000
+0000
+8000
+8000
+4080
+3F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3055
+ENCODING 12373
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1300
+8C00
+7800
+0400
+0200
+3F00
+4100
+8000
+6000
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3056
+ENCODING 12374
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+2280
+1100
+8C00
+7800
+0400
+0200
+3F00
+4100
+8000
+6000
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3057
+ENCODING 12375
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+4000
+4000
+4000
+4000
+4000
+4000
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3058
+ENCODING 12376
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0200
+8900
+4400
+4000
+4000
+4000
+4000
+4000
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3059
+ENCODING 12377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0400
+8700
+7C00
+1C00
+2600
+2200
+1E00
+0400
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305A
+ENCODING 12378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0A80
+0500
+8700
+7C00
+1C00
+2600
+2200
+1E00
+0400
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305B
+ENCODING 12379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+2100
+2180
+AF00
+7100
+2100
+2300
+2100
+1000
+0F80
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305C
+ENCODING 12380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+0500
+0200
+4380
+5E00
+E200
+4200
+4600
+4200
+2000
+1F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305D
+ENCODING 12381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4F00
+3400
+0800
+1180
+3E00
+C400
+0800
+1000
+1000
+0800
+0600
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305E
+ENCODING 12382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+4D00
+3400
+0800
+1180
+3E00
+C400
+0800
+1000
+1000
+0800
+0600
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni305F
+ENCODING 12383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+2C00
+F000
+2700
+4180
+4200
+4000
+8000
+8800
+8780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3060
+ENCODING 12384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+4280
+2900
+F000
+2700
+4180
+4200
+4000
+8000
+8800
+8780
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3061
+ENCODING 12385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+9600
+7800
+2000
+2000
+2F00
+7080
+4080
+0080
+0300
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3062
+ENCODING 12386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2100
+1280
+9500
+7800
+2000
+2000
+2F00
+7080
+4080
+0080
+0300
+1C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3063
+ENCODING 12387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3800
+C400
+0400
+0400
+3800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3064
+ENCODING 12388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8E00
+7100
+0080
+0080
+0080
+0100
+0600
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3065
+ENCODING 12389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+0280
+0100
+8E00
+7100
+0080
+0080
+0080
+0100
+0600
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3066
+ENCODING 12390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0180
+8E00
+7400
+0800
+0800
+1000
+1000
+1000
+1000
+0800
+0600
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3067
+ENCODING 12391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+0180
+8F00
+7400
+0800
+0800
+1000
+1000
+1000
+1000
+0800
+0600
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3068
+ENCODING 12392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+1000
+1000
+1300
+1C00
+3000
+4000
+8000
+8000
+4000
+3F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3069
+ENCODING 12393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+2280
+1100
+1000
+1300
+1C00
+3000
+4000
+8000
+8000
+4000
+3F00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni306A
+ENCODING 12394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1400
+F800
+1300
+2080
+4100
+4200
+8200
+0E00
+1300
+1280
+0C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni306B
+ENCODING 12395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8000
+4700
+5980
+8200
+8000
+8000
+8000
+9000
+CF80
+4000
+4000
+0000
+ENDCHAR
+
+STARTCHAR uni306C
+ENCODING 12396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0400
+5E00
+6500
+4480
+A880
+A880
+9380
+B500
+5280
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni306D
+ENCODING 12397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+2000
+3600
+F900
+3100
+2100
+6100
+6100
+A700
+6980
+2600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni306E
+ENCODING 12398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1E00
+2900
+4880
+5080
+9080
+9080
+6100
+2200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni306F
+ENCODING 12399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0400
+8200
+5380
+4E00
+8200
+8200
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3070
+ENCODING 12400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+8500
+5380
+4E00
+8200
+8200
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3071
+ENCODING 12401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0480
+8480
+5380
+4E00
+8200
+8200
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3072
+ENCODING 12402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+1400
+F200
+2200
+2300
+4280
+4200
+4200
+2400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3073
+ENCODING 12403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+0500
+1400
+F200
+2200
+2300
+4280
+4200
+4200
+2400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3074
+ENCODING 12404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0480
+0480
+1300
+F200
+2200
+2300
+4280
+4200
+4200
+2400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3075
+ENCODING 12405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+0E00
+0400
+0800
+0800
+0400
+0B00
+B280
+5280
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3076
+ENCODING 12406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+1100
+0E00
+0400
+0800
+0800
+0400
+0B00
+B280
+5280
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3077
+ENCODING 12407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0480
+1480
+0F00
+0400
+0800
+0800
+0400
+0B00
+B280
+5280
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3078
+ENCODING 12408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+2800
+4400
+8200
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3079
+ENCODING 12409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0080
+0200
+3100
+2800
+4400
+8200
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307A
+ENCODING 12410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0300
+0480
+0480
+3300
+2800
+4400
+8200
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307B
+ENCODING 12411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1100
+8E00
+4200
+4380
+9E00
+8200
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307C
+ENCODING 12412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+0280
+9100
+4E00
+4380
+9E00
+8200
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307D
+ENCODING 12413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0480
+9480
+4F00
+4200
+8380
+9E00
+8200
+AE00
+5300
+5280
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307E
+ENCODING 12414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0800
+0400
+4780
+3C00
+0400
+2700
+1C00
+0400
+3C00
+4700
+4480
+3800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni307F
+ENCODING 12415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4400
+3C00
+0800
+0900
+1100
+7F00
+9100
+9280
+E200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3080
+ENCODING 12416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4000
+2000
+B800
+6200
+2100
+6180
+A000
+A200
+E100
+4100
+4100
+3E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3081
+ENCODING 12417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0400
+5E00
+6500
+4480
+A880
+A880
+9080
+B100
+5200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3082
+ENCODING 12418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+4800
+3C00
+1000
+A000
+6200
+3900
+2100
+2100
+1200
+0C00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3083
+ENCODING 12419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+B800
+4400
+C800
+2000
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3084
+ENCODING 12420
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0E00
+6000
+4700
+5880
+A080
+6080
+1300
+1000
+0800
+0800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3085
+ENCODING 12421
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3000
+9C00
+6A00
+4A00
+4A00
+1C00
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3086
+ENCODING 12422
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1800
+0400
+8E00
+5500
+6480
+4480
+4480
+1500
+0E00
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3087
+ENCODING 12423
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+1400
+1800
+1000
+7000
+9800
+6400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3088
+ENCODING 12424
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0800
+0980
+0E00
+0800
+0800
+0800
+7C00
+8B00
+8880
+7000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3089
+ENCODING 12425
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0C00
+1000
+2000
+2000
+4E00
+7100
+4100
+0100
+0600
+1800
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308A
+ENCODING 12426
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+8000
+4C00
+5200
+6100
+6100
+4100
+4100
+0200
+0200
+0400
+0800
+1000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308B
+ENCODING 12427
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4600
+3C00
+0800
+1000
+3C00
+6200
+8100
+1900
+2500
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308C
+ENCODING 12428
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+2000
+6C00
+B200
+2200
+6200
+6200
+A200
+2280
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308D
+ENCODING 12429
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2300
+1E00
+0400
+0800
+1E00
+3100
+4080
+0080
+0080
+0100
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308E
+ENCODING 12430
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+D800
+6400
+4400
+C400
+4800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni308F
+ENCODING 12431
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+2000
+2000
+B600
+7900
+3080
+6080
+6080
+A100
+6600
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3090
+ENCODING 12432
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4C00
+3400
+0800
+1E00
+3100
+5080
+A080
+A680
+4900
+4600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3091
+ENCODING 12433
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+4C00
+3800
+1000
+3C00
+4200
+8100
+1900
+2600
+1800
+2000
+6700
+9880
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3092
+ENCODING 12434
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+4B00
+3C00
+1000
+1100
+3980
+4600
+8C00
+1400
+2000
+2000
+1E00
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3093
+ENCODING 12435
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+1000
+0800
+0800
+1000
+1000
+2000
+3000
+4800
+4880
+8900
+8600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3094
+ENCODING 12436
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2100
+1A80
+0100
+B800
+4400
+0400
+0400
+0400
+0800
+0800
+1000
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni3099
+ENCODING 12441
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0100
+0080
+0200
+0100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni309A
+ENCODING 12442
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0300
+0480
+0480
+0300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni309B
+ENCODING 12443
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+4000
+2000
+8000
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni309C
+ENCODING 12444
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+6000
+9000
+9000
+6000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni309D
+ENCODING 12445
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+2000
+1000
+0800
+0C00
+1000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni309E
+ENCODING 12446
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0400
+0200
+2800
+2400
+1000
+0800
+0C00
+1000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE000
+ENCODING 57344
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1200
+1400
+0800
+1800
+2800
+6400
+1C00
+0600
+0380
+0200
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE001
+ENCODING 57345
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0500
+0900
+1100
+2100
+1900
+0780
+0100
+0100
+0200
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uniE002
+ENCODING 57346
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+1800
+2800
+4800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE003
+ENCODING 57347
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0800
+1800
+2400
+4400
+7200
+0E00
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE004
+ENCODING 57348
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+2400
+4C00
+1200
+2600
+0A00
+1100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE005
+ENCODING 57349
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+4100
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE006
+ENCODING 57350
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE007
+ENCODING 57351
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2100
+2100
+3F00
+2100
+3F00
+2100
+3F00
+2100
+2100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE008
+ENCODING 57352
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4900
+4900
+4900
+7F00
+4900
+4900
+4900
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE009
+ENCODING 57353
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+6000
+1800
+6800
+1800
+0800
+0900
+0A00
+0C00
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00A
+ENCODING 57354
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+4800
+2800
+1800
+2800
+4800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00B
+ENCODING 57355
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00C
+ENCODING 57356
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+3800
+0800
+0E00
+0200
+0200
+0200
+0200
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00D
+ENCODING 57357
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+1300
+1D00
+0100
+0200
+0200
+0400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00E
+ENCODING 57358
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+7F00
+0800
+7F00
+0800
+7F00
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE00F
+ENCODING 57359
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE010
+ENCODING 57360
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1E00
+2100
+4100
+0100
+0100
+0100
+0100
+0200
+0C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE011
+ENCODING 57361
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+5100
+6900
+4A00
+4400
+4000
+4000
+4000
+4000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE012
+ENCODING 57362
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+4900
+4900
+4900
+4900
+3E00
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE013
+ENCODING 57363
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3C00
+4400
+4400
+4400
+4200
+3A00
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE014
+ENCODING 57364
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4100
+4100
+4100
+4100
+4900
+5500
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE015
+ENCODING 57365
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+7F00
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE016
+ENCODING 57366
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE017
+ENCODING 57367
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE018
+ENCODING 57368
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+7F00
+0200
+0400
+0800
+1F80
+0100
+0200
+0400
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE019
+ENCODING 57369
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4000
+2100
+1200
+0C00
+0800
+1000
+2000
+4000
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE700
+ENCODING 59136
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3000
+0800
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE701
+ENCODING 59137
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+0600
+0A00
+1200
+2200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE702
+ENCODING 59138
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0100
+0100
+0100
+0D00
+1300
+2000
+2000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE703
+ENCODING 59139
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+0800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE704
+ENCODING 59140
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+0800
+0400
+1A00
+2100
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE705
+ENCODING 59141
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+2400
+2000
+1000
+0800
+0400
+0400
+2400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE706
+ENCODING 59142
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0400
+0800
+0800
+1000
+1000
+2000
+2000
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE707
+ENCODING 59143
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0200
+1C00
+6400
+0800
+0800
+1000
+1000
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE708
+ENCODING 59144
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+2000
+2000
+1000
+1000
+0800
+0400
+0400
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE709
+ENCODING 59145
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+2200
+1400
+0800
+1400
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE70A
+ENCODING 59146
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+2000
+2000
+2000
+2000
+2000
+2000
+1000
+0C00
+0000
+ENDCHAR
+
+STARTCHAR uniE70B
+ENCODING 59147
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+2000
+2000
+2000
+2200
+2400
+2800
+3000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uniE70C
+ENCODING 59148
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+0100
+0100
+3200
+2C00
+2000
+2000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uniE70D
+ENCODING 59149
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+0800
+1000
+1000
+1000
+1000
+1000
+1000
+1000
+0000
+ENDCHAR
+
+STARTCHAR uniE70E
+ENCODING 59150
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+4200
+2C00
+1000
+0800
+0600
+ENDCHAR
+
+STARTCHAR uniE70F
+ENCODING 59151
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+2400
+0400
+0800
+1000
+2000
+2000
+2400
+1800
+0000
+ENDCHAR
+
+STARTCHAR uniE710
+ENCODING 59152
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+0200
+0200
+0400
+0400
+0800
+0800
+1000
+0000
+ENDCHAR
+
+STARTCHAR uniE711
+ENCODING 59153
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+4400
+0400
+0400
+0800
+0800
+1300
+1C00
+2000
+0000
+ENDCHAR
+
+STARTCHAR uniE712
+ENCODING 59154
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0200
+0200
+0400
+0400
+0800
+1000
+1000
+2000
+2000
+0000
+ENDCHAR
+
+STARTCHAR uniE713
+ENCODING 59155
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+1400
+0800
+1400
+2200
+4100
+4100
+2200
+1C00
+0000
+ENDCHAR
+
+STARTCHAR uniE714
+ENCODING 59156
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E00
+2100
+4000
+4000
+4000
+2100
+1E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE715
+ENCODING 59157
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0300
+0400
+0800
+0800
+0800
+1000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE716
+ENCODING 59158
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE717
+ENCODING 59159
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+2000
+2000
+2000
+2000
+1000
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE718
+ENCODING 59160
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0200
+0200
+0200
+0200
+0200
+0400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE719
+ENCODING 59161
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0E00
+1000
+2000
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71A
+ENCODING 59162
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+0400
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71B
+ENCODING 59163
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2200
+2200
+2200
+1400
+1400
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71C
+ENCODING 59164
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0400
+0800
+1000
+2000
+1000
+0800
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71D
+ENCODING 59165
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+4000
+3C00
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71E
+ENCODING 59166
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+0100
+0100
+0100
+4200
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE71F
+ENCODING 59167
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+6000
+1000
+0800
+0800
+0800
+0400
+0300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE720
+ENCODING 59168
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+2400
+2C00
+3400
+2400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE721
+ENCODING 59169
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3200
+2C00
+2000
+2000
+2000
+1000
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE722
+ENCODING 59170
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2600
+1A00
+0200
+0200
+0200
+0400
+3800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE723
+ENCODING 59171
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0200
+0400
+0800
+1000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE724
+ENCODING 59172
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1C00
+2200
+4100
+4100
+4100
+2200
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE725
+ENCODING 59173
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+1400
+1400
+2200
+2200
+2200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE726
+ENCODING 59174
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+2000
+1000
+0800
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE727
+ENCODING 59175
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+4100
+0100
+1E00
+1000
+0800
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE728
+ENCODING 59176
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4100
+3100
+1100
+1100
+2600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE729
+ENCODING 59177
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3200
+4900
+0900
+3100
+2100
+1100
+0E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72A
+ENCODING 59178
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+0900
+0900
+0900
+3100
+4200
+4C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72B
+ENCODING 59179
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4600
+4100
+3100
+0900
+0900
+0900
+0600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72C
+ENCODING 59180
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3C00
+4200
+4100
+4100
+4100
+4200
+5C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72D
+ENCODING 59181
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4C00
+5200
+6100
+4100
+4100
+4200
+5C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72E
+ENCODING 59182
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1200
+1400
+1800
+1000
+1000
+1000
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniE72F
+ENCODING 59183
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4000
+4400
+2400
+2A00
+2A00
+1100
+1100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ff
+ENCODING 64256
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1B00
+2400
+2400
+2400
+2400
+7E00
+2400
+2400
+2400
+2400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fi
+ENCODING 64257
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1200
+1000
+1000
+1000
+7E00
+1200
+1200
+1200
+1200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR fl
+ENCODING 64258
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+1200
+1200
+1200
+1200
+7E00
+1200
+1200
+1200
+1200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ffi
+ENCODING 64259
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3600
+4900
+4800
+4800
+4800
+FF00
+4900
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ffl
+ENCODING 64260
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3700
+4900
+4900
+4900
+4900
+FF00
+4900
+4900
+4900
+4900
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB05
+ENCODING 64261
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2400
+2400
+2400
+6F00
+2400
+2400
+2400
+2480
+2300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB06
+ENCODING 64262
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+1800
+2800
+6E00
+8800
+8800
+6800
+1800
+1900
+E600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB13
+ENCODING 64275
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+5000
+3000
+5D00
+5500
+5500
+5500
+5500
+5500
+3300
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB14
+ENCODING 64276
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1700
+1400
+5500
+5500
+5500
+5500
+5500
+5500
+3600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB15
+ENCODING 64277
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0C00
+1400
+1400
+5600
+5500
+5500
+5500
+5500
+5500
+3500
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uniFB16
+ENCODING 64278
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+5000
+3C00
+1400
+5500
+5500
+5500
+5500
+5500
+5500
+3300
+1000
+1000
+1C00
+ENDCHAR
+
+STARTCHAR uniFB17
+ENCODING 64279
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1800
+2800
+2800
+AC80
+AA80
+AA80
+AA80
+AA80
+AA80
+6900
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uniFB1D
+ENCODING 64285
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+0400
+0000
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB1E
+ENCODING 64286
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2200
+2200
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57705
+ENCODING 64287
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+4400
+6600
+3300
+1100
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB20
+ENCODING 64288
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+E700
+7300
+4100
+2100
+1100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB21
+ENCODING 64289
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB22
+ENCODING 64290
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+0200
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB23
+ENCODING 64291
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+4200
+4200
+4200
+8200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB24
+ENCODING 64292
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+0100
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB25
+ENCODING 64293
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+4000
+4000
+7F00
+3F00
+0100
+0100
+0200
+0400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB26
+ENCODING 64294
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+8100
+8100
+8100
+FF00
+FF00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB27
+ENCODING 64295
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+0100
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB28
+ENCODING 64296
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+2100
+4100
+4100
+6100
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB29
+ENCODING 64297
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57694
+ENCODING 64298
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0000
+9200
+DB00
+4900
+8900
+9100
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57695
+ENCODING 64299
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+0000
+9200
+DB00
+4900
+8900
+9100
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB2C
+ENCODING 64300
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0600
+0000
+9200
+DB00
+4900
+8900
+9500
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB2D
+ENCODING 64301
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+C000
+0000
+9200
+DB00
+4900
+8900
+9500
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB2E
+ENCODING 64302
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+3E00
+0000
+ENDCHAR
+
+STARTCHAR uniFB2F
+ENCODING 64303
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+3E00
+0800
+ENDCHAR
+
+STARTCHAR uniFB30
+ENCODING 64304
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+1800
+0000
+ENDCHAR
+
+STARTCHAR uniFB31
+ENCODING 64305
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FC00
+7E00
+0200
+1A00
+0200
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB32
+ENCODING 64306
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+3400
+0400
+1E00
+3A00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB33
+ENCODING 64307
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+1A00
+0200
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB34
+ENCODING 64308
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+0200
+5A00
+4200
+4200
+8200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57723
+ENCODING 64309
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+3400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB36
+ENCODING 64310
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3C00
+1E00
+0800
+6800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB38
+ENCODING 64312
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+E300
+7700
+4500
+5900
+4100
+7F00
+7E00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB39
+ENCODING 64313
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+3400
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB3A
+ENCODING 64314
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0200
+3400
+0400
+0400
+0400
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uniFB3B
+ENCODING 64315
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+1900
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB3C
+ENCODING 64316
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+8000
+4000
+4000
+7F00
+3F00
+0100
+1900
+0200
+0400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB3E
+ENCODING 64318
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+DE00
+7F00
+4100
+9900
+8100
+9F00
+BE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB40
+ENCODING 64320
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+2000
+3800
+1C00
+0400
+3400
+0400
+1C00
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB41
+ENCODING 64321
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+4100
+5900
+4100
+7E00
+3C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB43
+ENCODING 64323
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+8200
+D400
+D400
+0400
+0400
+0400
+0400
+0400
+ENDCHAR
+
+STARTCHAR uniFB44
+ENCODING 64324
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FF00
+7F00
+4100
+6D00
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB46
+ENCODING 64326
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8400
+E700
+6300
+2400
+9800
+0600
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB47
+ENCODING 64327
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+2D00
+2100
+2600
+2800
+2000
+2000
+2000
+ENDCHAR
+
+STARTCHAR uniFB48
+ENCODING 64328
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+0100
+1900
+0100
+0100
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB49
+ENCODING 64329
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+9200
+DB00
+4900
+8900
+9500
+A200
+FE00
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB4A
+ENCODING 64330
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+8000
+FE00
+7F00
+2100
+4D00
+4100
+6100
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR afii57700
+ENCODING 64331
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3000
+0000
+2000
+3800
+1C00
+0400
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB4C
+ENCODING 64332
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3C00
+0000
+8000
+FC00
+7E00
+0200
+0200
+0200
+7F00
+FE00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB4D
+ENCODING 64333
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+8000
+FE00
+7F00
+0100
+0100
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB4E
+ENCODING 64334
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+8000
+FF00
+7F00
+4100
+6100
+0100
+7E00
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFB4F
+ENCODING 64335
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+8000
+C000
+8000
+8400
+C700
+6300
+3200
+DA00
+8E00
+4600
+6300
+E100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFE20
+ENCODING 65056
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0380
+1C00
+6000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFE21
+ENCODING 65057
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+E000
+1C00
+0300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFE22
+ENCODING 65058
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0F00
+3080
+4000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFE23
+ENCODING 65059
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0100
+8600
+7800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF61
+ENCODING 65377
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3000
+4800
+4800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF62
+ENCODING 65378
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0700
+0400
+0400
+0400
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF63
+ENCODING 65379
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+1000
+1000
+7000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF64
+ENCODING 65380
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF65
+ENCODING 65381
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF66
+ENCODING 65382
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+F800
+0800
+F800
+0800
+0800
+0800
+1000
+2000
+C000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF67
+ENCODING 65383
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7E00
+0200
+1400
+1800
+1000
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF68
+ENCODING 65384
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0300
+0C00
+1800
+6800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF69
+ENCODING 65385
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1000
+1000
+7C00
+4400
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6A
+ENCODING 65386
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3800
+1000
+1000
+1000
+1000
+1000
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6B
+ENCODING 65387
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+0800
+7E00
+1800
+2800
+4800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6C
+ENCODING 65388
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+4000
+4000
+F800
+4800
+4800
+2000
+2000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6D
+ENCODING 65389
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7800
+0800
+0800
+0800
+0800
+0800
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6E
+ENCODING 65390
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+7C00
+0400
+0400
+7C00
+0400
+0400
+7C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF6F
+ENCODING 65391
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+A800
+A800
+0800
+1000
+E000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF70
+ENCODING 65392
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF71
+ENCODING 65393
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0100
+0A00
+0C00
+0800
+0800
+1000
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF72
+ENCODING 65394
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0100
+0200
+0C00
+1800
+6800
+0800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF73
+ENCODING 65395
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+7F00
+4100
+4100
+0200
+0200
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF74
+ENCODING 65396
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+3E00
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF75
+ENCODING 65397
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0800
+0800
+FE00
+1800
+2800
+4800
+8800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF76
+ENCODING 65398
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+7F00
+1100
+1100
+1100
+1100
+2100
+2100
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF77
+ENCODING 65399
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0E00
+3800
+0800
+0F00
+7800
+0800
+0800
+0800
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF78
+ENCODING 65400
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1F00
+1100
+2100
+4200
+0200
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF79
+ENCODING 65401
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+3F00
+2400
+4400
+8400
+0800
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7A
+ENCODING 65402
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+FC00
+0400
+0400
+0400
+0400
+0400
+0400
+0400
+FC00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7B
+ENCODING 65403
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2200
+2200
+7F00
+2200
+2200
+0200
+0400
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7C
+ENCODING 65404
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3100
+0900
+6100
+1100
+0200
+0200
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7D
+ENCODING 65405
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0100
+0200
+0200
+0400
+0A00
+1200
+2100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7E
+ENCODING 65406
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+7E00
+2200
+2400
+2800
+2000
+2000
+2400
+1800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF7F
+ENCODING 65407
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+4100
+4100
+2100
+1200
+0200
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF80
+ENCODING 65408
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1F00
+1100
+2100
+5200
+0A00
+0400
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF81
+ENCODING 65409
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0E00
+3800
+0800
+0F00
+7800
+0800
+0800
+1000
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF82
+ENCODING 65410
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1100
+5100
+4900
+2100
+0200
+0200
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF83
+ENCODING 65411
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+0000
+0000
+7F00
+0800
+0800
+0800
+1000
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF84
+ENCODING 65412
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+3800
+2400
+2200
+2000
+2000
+2000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF85
+ENCODING 65413
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+7F00
+0800
+0800
+0800
+1000
+1000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF86
+ENCODING 65414
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3E00
+0000
+0000
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF87
+ENCODING 65415
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0200
+0200
+0200
+2400
+1400
+0800
+1400
+2200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF88
+ENCODING 65416
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+2000
+1000
+0000
+7E00
+0200
+0200
+0400
+0800
+1400
+2A00
+0900
+0800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF89
+ENCODING 65417
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+0200
+0400
+0400
+0800
+1000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8A
+ENCODING 65418
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1400
+1400
+1200
+1200
+2100
+2100
+2100
+4100
+4100
+8100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8B
+ENCODING 65419
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4000
+4000
+4C00
+7000
+4000
+4000
+4000
+4000
+4C00
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8C
+ENCODING 65420
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0200
+0200
+0200
+0400
+0400
+0800
+1000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8D
+ENCODING 65421
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0800
+1400
+1200
+1200
+2100
+2100
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8E
+ENCODING 65422
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+7F00
+0800
+2A00
+2A00
+4900
+4900
+0800
+1000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF8F
+ENCODING 65423
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0200
+0200
+0200
+2400
+1400
+0800
+0400
+0200
+0200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF90
+ENCODING 65424
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+6000
+1800
+0600
+6000
+1800
+0600
+6000
+1800
+0600
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF91
+ENCODING 65425
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0800
+0800
+1000
+1000
+2000
+2200
+4200
+4100
+FF00
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF92
+ENCODING 65426
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0200
+0200
+0200
+4200
+2400
+1400
+0800
+1400
+2200
+4200
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF93
+ENCODING 65427
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+FC00
+2000
+2000
+FC00
+2000
+2000
+2000
+2000
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF94
+ENCODING 65428
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+1000
+1000
+1F00
+7100
+1200
+1400
+1000
+0800
+0800
+0400
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF95
+ENCODING 65429
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+0000
+0000
+3C00
+0400
+0400
+0400
+0400
+0400
+0400
+7F00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF96
+ENCODING 65430
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+0100
+0100
+0100
+7F00
+0100
+0100
+0100
+7F00
+0100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF97
+ENCODING 65431
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+0000
+7E00
+0200
+0200
+0400
+0400
+0800
+1000
+2000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF98
+ENCODING 65432
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4200
+4200
+4200
+4200
+4400
+0400
+0800
+1000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF99
+ENCODING 65433
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2800
+2800
+2800
+2800
+2900
+2900
+2A00
+4A00
+4C00
+8800
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9A
+ENCODING 65434
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2000
+2000
+2000
+2000
+2100
+2100
+2200
+2400
+2800
+3000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9B
+ENCODING 65435
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7F00
+4100
+4100
+4100
+4100
+4100
+4100
+4100
+7F00
+4100
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9C
+ENCODING 65436
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+7E00
+4200
+4200
+4200
+0400
+0400
+0800
+1000
+2000
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9D
+ENCODING 65437
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+4100
+3100
+0900
+0100
+0200
+0200
+0400
+0800
+5000
+6000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9E
+ENCODING 65438
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+2000
+1000
+4000
+2000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFF9F
+ENCODING 65439
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+3000
+4800
+4800
+3000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFFFC
+ENCODING 65532
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+2500
+5100
+5000
+3900
+1500
+5800
+5700
+1900
+4100
+5600
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uniFFFD
+ENCODING 65533
+SWIDTH 576 0
+DWIDTH 9 0
+BBX 9 15 0 -3
+BITMAP
+0000
+0000
+3E00
+6300
+5D00
+7D00
+7B00
+7700
+7700
+7F00
+7700
+3E00
+0000
+0000
+0000
+ENDCHAR
+
+ENDFONT
diff --git a/konsole/fonts/Makefile.am b/konsole/fonts/Makefile.am
new file mode 100644
index 000000000..02f84b765
--- /dev/null
+++ b/konsole/fonts/Makefile.am
@@ -0,0 +1,16 @@
+fontdir = $(kde_datadir)/konsole/fonts
+font_DATA =console8x16.pcf.gz 9x15.pcf.gz
+
+EXTRA_DIST = $(font_DATA)
+
+# This uses -hook instead of -local so that it is run after fonts are installed
+install-data-hook:
+ -mkfontdir $(DESTDIR)$(fontdir)
+
+console8x16.pcf.gz: $(srcdir)/console8x16.bdf
+ bdftopcf -o console8x16.pcf $(srcdir)/console8x16.bdf
+ gzip --best console8x16.pcf
+
+9x15.pcf.gz: $(srcdir)/9x15.bdf
+ bdftopcf -o 9x15.pcf $(srcdir)/9x15.bdf
+ gzip --best 9x15.pcf
diff --git a/konsole/fonts/console8x16.bdf b/konsole/fonts/console8x16.bdf
new file mode 100644
index 000000000..070e12990
--- /dev/null
+++ b/konsole/fonts/console8x16.bdf
@@ -0,0 +1,15095 @@
+STARTFONT 2.1
+FONT -Misc-Console-Medium-R-Normal--16-160-72-72-C-80-ISO10646-1
+SIZE 16 72 72
+FONTBOUNDINGBOX 8 16 0 -4
+STARTPROPERTIES 22
+FOUNDRY "Misc"
+FAMILY_NAME "Console"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 16
+POINT_SIZE 160
+RESOLUTION_X 72
+RESOLUTION_Y 72
+SPACING "C"
+AVERAGE_WIDTH 80
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+WEIGHT 10
+X_HEIGHT 12
+QUAD_WIDTH 8
+_XMBDFED_INFO "Edited with xmbdfed 4.5."
+RESOLUTION 99
+DEFAULT_CHAR 65533
+FONT_ASCENT 12
+FONT_DESCENT 4
+ENDPROPERTIES
+CHARS 655
+STARTCHAR char32
+ENCODING 32
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char33
+ENCODING 33
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+3C
+3C
+3C
+18
+18
+18
+00
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char34
+ENCODING 34
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+66
+66
+66
+24
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char35
+ENCODING 35
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+6C
+6C
+FE
+6C
+6C
+6C
+FE
+6C
+6C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char36
+ENCODING 36
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+7C
+C6
+C2
+C0
+7C
+06
+06
+86
+C6
+7C
+18
+18
+00
+00
+ENDCHAR
+STARTCHAR char37
+ENCODING 37
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+C2
+C6
+0C
+18
+30
+60
+C6
+86
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char38
+ENCODING 38
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+6C
+6C
+38
+76
+DC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char39
+ENCODING 39
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+30
+30
+30
+60
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char40
+ENCODING 40
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+18
+30
+30
+30
+30
+30
+30
+18
+0C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char41
+ENCODING 41
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+30
+18
+0C
+0C
+0C
+0C
+0C
+0C
+18
+30
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char42
+ENCODING 42
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+66
+3C
+FF
+3C
+66
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char43
+ENCODING 43
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+18
+18
+7E
+18
+18
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char44
+ENCODING 44
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+18
+18
+18
+30
+00
+00
+00
+ENDCHAR
+STARTCHAR char45
+ENCODING 45
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char46
+ENCODING 46
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char47
+ENCODING 47
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+02
+06
+0C
+18
+30
+60
+C0
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char48
+ENCODING 48
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+6C
+C6
+C6
+D6
+D6
+C6
+C6
+6C
+38
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char49
+ENCODING 49
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+38
+78
+18
+18
+18
+18
+18
+18
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char50
+ENCODING 50
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+06
+0C
+18
+30
+60
+C0
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char51
+ENCODING 51
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+06
+06
+3C
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char52
+ENCODING 52
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+1C
+3C
+6C
+CC
+FE
+0C
+0C
+0C
+1E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char53
+ENCODING 53
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C0
+C0
+C0
+FC
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char54
+ENCODING 54
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+60
+C0
+C0
+FC
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char55
+ENCODING 55
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C6
+06
+06
+0C
+18
+30
+30
+30
+30
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char56
+ENCODING 56
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+7C
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char57
+ENCODING 57
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+7E
+06
+06
+06
+0C
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char58
+ENCODING 58
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+18
+18
+00
+00
+00
+18
+18
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char59
+ENCODING 59
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+18
+18
+00
+00
+00
+18
+18
+30
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char60
+ENCODING 60
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+06
+0C
+18
+30
+60
+30
+18
+0C
+06
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char61
+ENCODING 61
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7E
+00
+00
+7E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char62
+ENCODING 62
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+60
+30
+18
+0C
+06
+0C
+18
+30
+60
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char63
+ENCODING 63
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+0C
+18
+18
+18
+00
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char64
+ENCODING 64
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+C6
+C6
+DE
+DE
+DE
+DC
+C0
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char65
+ENCODING 65
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char66
+ENCODING 66
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+66
+66
+66
+66
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char67
+ENCODING 67
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+C2
+C0
+C0
+C0
+C0
+C2
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char68
+ENCODING 68
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F8
+6C
+66
+66
+66
+66
+66
+66
+6C
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char69
+ENCODING 69
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+66
+62
+68
+78
+68
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char70
+ENCODING 70
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+66
+62
+68
+78
+68
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char71
+ENCODING 71
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+C2
+C0
+C0
+DE
+C6
+C6
+66
+3A
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char72
+ENCODING 72
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char73
+ENCODING 73
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char74
+ENCODING 74
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+1E
+0C
+0C
+0C
+0C
+0C
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char75
+ENCODING 75
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E6
+66
+66
+6C
+78
+78
+6C
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char76
+ENCODING 76
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F0
+60
+60
+60
+60
+60
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char77
+ENCODING 77
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+EE
+FE
+FE
+D6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char78
+ENCODING 78
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char79
+ENCODING 79
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char80
+ENCODING 80
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+60
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char81
+ENCODING 81
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+D6
+DE
+7C
+0C
+0E
+00
+00
+ENDCHAR
+STARTCHAR char82
+ENCODING 82
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+6C
+66
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char83
+ENCODING 83
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+60
+38
+0C
+06
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char84
+ENCODING 84
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+7E
+5A
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char85
+ENCODING 85
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char86
+ENCODING 86
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+6C
+38
+10
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char87
+ENCODING 87
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+D6
+D6
+D6
+FE
+EE
+6C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char88
+ENCODING 88
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+6C
+7C
+38
+38
+7C
+6C
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char89
+ENCODING 89
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+66
+66
+66
+3C
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char90
+ENCODING 90
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C6
+86
+0C
+18
+30
+60
+C2
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char91
+ENCODING 91
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+30
+30
+30
+30
+30
+30
+30
+30
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char92
+ENCODING 92
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+80
+C0
+E0
+70
+38
+1C
+0E
+06
+02
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char93
+ENCODING 93
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+0C
+0C
+0C
+0C
+0C
+0C
+0C
+0C
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char94
+ENCODING 94
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+10
+38
+6C
+C6
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char95
+ENCODING 95
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+00
+ENDCHAR
+STARTCHAR char96
+ENCODING 96
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+30
+18
+0C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char97
+ENCODING 97
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char98
+ENCODING 98
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+60
+78
+6C
+66
+66
+66
+66
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char99
+ENCODING 99
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char100
+ENCODING 100
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+1C
+0C
+0C
+3C
+6C
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char101
+ENCODING 101
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char102
+ENCODING 102
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+1C
+36
+32
+30
+78
+30
+30
+30
+30
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char103
+ENCODING 103
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+CC
+78
+00
+ENDCHAR
+STARTCHAR char104
+ENCODING 104
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+60
+6C
+76
+66
+66
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char105
+ENCODING 105
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char106
+ENCODING 106
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+06
+06
+00
+0E
+06
+06
+06
+06
+06
+06
+66
+66
+3C
+00
+ENDCHAR
+STARTCHAR char107
+ENCODING 107
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+60
+66
+6C
+78
+78
+6C
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char108
+ENCODING 108
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char109
+ENCODING 109
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+EC
+FE
+D6
+D6
+D6
+D6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char110
+ENCODING 110
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+66
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char111
+ENCODING 111
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char112
+ENCODING 112
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+66
+66
+66
+66
+66
+7C
+60
+60
+F0
+00
+ENDCHAR
+STARTCHAR char113
+ENCODING 113
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+0C
+1E
+00
+ENDCHAR
+STARTCHAR char114
+ENCODING 114
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+76
+66
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char115
+ENCODING 115
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char116
+ENCODING 116
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+30
+30
+FC
+30
+30
+30
+30
+36
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char117
+ENCODING 117
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char118
+ENCODING 118
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+C6
+C6
+C6
+6C
+38
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char119
+ENCODING 119
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+D6
+D6
+D6
+FE
+6C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char120
+ENCODING 120
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+6C
+38
+38
+38
+6C
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char121
+ENCODING 121
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+7E
+06
+0C
+F8
+00
+ENDCHAR
+STARTCHAR char122
+ENCODING 122
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FE
+CC
+18
+30
+60
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char123
+ENCODING 123
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0E
+18
+18
+18
+70
+18
+18
+18
+18
+0E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char124
+ENCODING 124
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char125
+ENCODING 125
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+70
+18
+18
+18
+0E
+18
+18
+18
+18
+70
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char126
+ENCODING 126
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+76
+DC
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char160
+ENCODING 160
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char161
+ENCODING 161
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+18
+18
+18
+3C
+3C
+3C
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char162
+ENCODING 162
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+7C
+C6
+C0
+C0
+C6
+7C
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char163
+ENCODING 163
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+38
+6C
+64
+60
+F0
+60
+60
+60
+60
+E6
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char164
+ENCODING 164
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+C6
+7C
+C6
+C6
+C6
+C6
+7C
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char165
+ENCODING 165
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+66
+66
+3C
+18
+7E
+18
+7E
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char166
+ENCODING 166
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+18
+18
+18
+18
+00
+00
+18
+18
+18
+18
+18
+00
+00
+00
+ENDCHAR
+STARTCHAR char167
+ENCODING 167
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+7C
+C6
+60
+38
+6C
+C6
+C6
+6C
+38
+0C
+C6
+7C
+00
+00
+00
+ENDCHAR
+STARTCHAR char168
+ENCODING 168
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char169
+ENCODING 169
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+82
+9A
+A2
+A2
+A2
+9A
+82
+7C
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char170
+ENCODING 170
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+6C
+6C
+3E
+00
+7E
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char171
+ENCODING 171
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+36
+6C
+D8
+6C
+36
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char172
+ENCODING 172
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+FE
+06
+06
+06
+06
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char173
+ENCODING 173
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char174
+ENCODING 174
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+82
+B2
+AA
+B2
+AA
+AA
+82
+7C
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char175
+ENCODING 175
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char176
+ENCODING 176
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+38
+6C
+6C
+38
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char177
+ENCODING 177
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+18
+18
+7E
+18
+18
+00
+00
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char178
+ENCODING 178
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+3C
+66
+0C
+18
+32
+7E
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char179
+ENCODING 179
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+7C
+06
+3C
+06
+06
+7C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char180
+ENCODING 180
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char181
+ENCODING 181
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+66
+66
+66
+66
+66
+66
+7C
+60
+60
+C0
+00
+ENDCHAR
+STARTCHAR char182
+ENCODING 182
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7F
+DB
+DB
+DB
+7B
+1B
+1B
+1B
+1B
+1B
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char183
+ENCODING 183
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+18
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char184
+ENCODING 184
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+18
+0C
+78
+00
+00
+ENDCHAR
+STARTCHAR char185
+ENCODING 185
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+38
+18
+18
+18
+3C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char186
+ENCODING 186
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+6C
+6C
+38
+00
+7C
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char187
+ENCODING 187
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D8
+6C
+36
+6C
+D8
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char188
+ENCODING 188
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+E0
+62
+66
+6C
+18
+30
+66
+CE
+9A
+3F
+06
+06
+00
+00
+ENDCHAR
+STARTCHAR char189
+ENCODING 189
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+E0
+62
+66
+6C
+18
+30
+60
+DC
+86
+0C
+18
+3E
+00
+00
+ENDCHAR
+STARTCHAR char190
+ENCODING 190
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+E0
+30
+62
+36
+EC
+18
+30
+66
+CE
+9A
+3F
+06
+06
+00
+00
+ENDCHAR
+STARTCHAR char191
+ENCODING 191
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+30
+30
+00
+30
+30
+60
+C0
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char192
+ENCODING 192
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+06
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char193
+ENCODING 193
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+60
+C0
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char194
+ENCODING 194
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+7C
+C6
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char195
+ENCODING 195
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+76
+DC
+00
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char196
+ENCODING 196
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char197
+ENCODING 197
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+38
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char198
+ENCODING 198
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3E
+6C
+CC
+CC
+FE
+CC
+CC
+CC
+CC
+CE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char199
+ENCODING 199
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+C2
+C0
+C0
+C0
+C0
+C2
+66
+3C
+18
+70
+00
+00
+ENDCHAR
+STARTCHAR char200
+ENCODING 200
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+30
+18
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char201
+ENCODING 201
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char202
+ENCODING 202
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char203
+ENCODING 203
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char204
+ENCODING 204
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+30
+18
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char205
+ENCODING 205
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char206
+ENCODING 206
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+3C
+66
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char207
+ENCODING 207
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+66
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char208
+ENCODING 208
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F8
+6C
+66
+66
+F6
+66
+66
+66
+6C
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char209
+ENCODING 209
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+76
+DC
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char210
+ENCODING 210
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+30
+18
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char211
+ENCODING 211
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+30
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char212
+ENCODING 212
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char213
+ENCODING 213
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+76
+DC
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char214
+ENCODING 214
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char215
+ENCODING 215
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+6C
+38
+38
+6C
+C6
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char216
+ENCODING 216
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+04
+7C
+CE
+CE
+D6
+D6
+D6
+D6
+E6
+E6
+7C
+40
+00
+00
+00
+ENDCHAR
+STARTCHAR char217
+ENCODING 217
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+30
+18
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char218
+ENCODING 218
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+30
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char219
+ENCODING 219
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char220
+ENCODING 220
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char221
+ENCODING 221
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+00
+66
+66
+66
+66
+3C
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char222
+ENCODING 222
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F0
+60
+7C
+66
+66
+66
+66
+7C
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char223
+ENCODING 223
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+78
+CC
+CC
+CC
+D8
+CC
+C6
+C6
+C6
+CC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char224
+ENCODING 224
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+30
+18
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char225
+ENCODING 225
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+30
+60
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char226
+ENCODING 226
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char227
+ENCODING 227
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+76
+DC
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char228
+ENCODING 228
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+00
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char229
+ENCODING 229
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+38
+6C
+38
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char230
+ENCODING 230
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+EC
+36
+36
+7E
+D8
+D8
+6E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char231
+ENCODING 231
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+18
+70
+00
+00
+ENDCHAR
+STARTCHAR char232
+ENCODING 232
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+30
+18
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char233
+ENCODING 233
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char234
+ENCODING 234
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char235
+ENCODING 235
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+00
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char236
+ENCODING 236
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+30
+18
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char237
+ENCODING 237
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char238
+ENCODING 238
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+3C
+66
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char239
+ENCODING 239
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+00
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char240
+ENCODING 240
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+34
+18
+2C
+06
+3E
+66
+66
+66
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char241
+ENCODING 241
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+76
+DC
+00
+DC
+66
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char242
+ENCODING 242
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+30
+18
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char243
+ENCODING 243
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+30
+60
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char244
+ENCODING 244
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char245
+ENCODING 245
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+76
+DC
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char246
+ENCODING 246
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char247
+ENCODING 247
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+18
+00
+7E
+00
+18
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char248
+ENCODING 248
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+CE
+DE
+F6
+E6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char249
+ENCODING 249
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+60
+30
+18
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char250
+ENCODING 250
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+30
+60
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char251
+ENCODING 251
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+30
+78
+CC
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char252
+ENCODING 252
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+00
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char253
+ENCODING 253
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+C6
+C6
+C6
+C6
+C6
+C6
+7E
+06
+0C
+F8
+00
+ENDCHAR
+STARTCHAR char254
+ENCODING 254
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+60
+7C
+66
+66
+66
+66
+66
+7C
+60
+60
+F0
+00
+ENDCHAR
+STARTCHAR char255
+ENCODING 255
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+7E
+06
+0C
+78
+00
+ENDCHAR
+STARTCHAR char256
+ENCODING 256
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+7C
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char257
+ENCODING 257
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char258
+ENCODING 258
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+C6
+7C
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char259
+ENCODING 259
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+7C
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char260
+ENCODING 260
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+18
+30
+1E
+00
+ENDCHAR
+STARTCHAR char261
+ENCODING 261
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+78
+0C
+7C
+CC
+CC
+CC
+76
+18
+30
+1E
+00
+ENDCHAR
+STARTCHAR char262
+ENCODING 262
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+00
+3C
+66
+C2
+C0
+C0
+C0
+C2
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char263
+ENCODING 263
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char264
+ENCODING 264
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+3C
+66
+C2
+C0
+C0
+C0
+C2
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char265
+ENCODING 265
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char266
+ENCODING 266
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+00
+3C
+66
+C2
+C0
+C0
+C0
+C2
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char267
+ENCODING 267
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char268
+ENCODING 268
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+66
+3C
+00
+3C
+66
+C2
+C0
+C0
+C0
+C2
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char269
+ENCODING 269
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+6C
+38
+00
+7C
+C6
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char270
+ENCODING 270
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+F8
+6C
+66
+66
+66
+66
+66
+6C
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char271
+ENCODING 271
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+1C
+0C
+0C
+3C
+6C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char272
+ENCODING 272
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F8
+6C
+66
+66
+F6
+66
+66
+66
+6C
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char273
+ENCODING 273
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+0C
+7E
+0C
+3C
+6C
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char274
+ENCODING 274
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+7C
+00
+FE
+66
+62
+68
+78
+68
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char275
+ENCODING 275
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char278
+ENCODING 278
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char279
+ENCODING 279
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char280
+ENCODING 280
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+66
+62
+68
+78
+68
+60
+62
+66
+FE
+18
+30
+1E
+00
+ENDCHAR
+STARTCHAR char281
+ENCODING 281
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+30
+60
+3C
+00
+ENDCHAR
+STARTCHAR char282
+ENCODING 282
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+FE
+66
+62
+68
+78
+68
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char283
+ENCODING 283
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+3C
+00
+7C
+C6
+FE
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char284
+ENCODING 284
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+1C
+36
+00
+3C
+66
+C2
+C0
+DE
+C6
+C6
+66
+3A
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char285
+ENCODING 285
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+CC
+78
+00
+ENDCHAR
+STARTCHAR char286
+ENCODING 286
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+66
+3C
+00
+3C
+66
+C2
+C0
+DE
+C6
+C6
+66
+3A
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char287
+ENCODING 287
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+66
+3C
+00
+00
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+CC
+78
+00
+ENDCHAR
+STARTCHAR char288
+ENCODING 288
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+00
+3C
+66
+C2
+C0
+DE
+C6
+C6
+66
+3A
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char289
+ENCODING 289
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+30
+30
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+CC
+78
+00
+ENDCHAR
+STARTCHAR char290
+ENCODING 290
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+C2
+C0
+C0
+DE
+C6
+C6
+66
+3E
+0C
+78
+00
+00
+ENDCHAR
+STARTCHAR char291
+ENCODING 291
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+3C
+60
+30
+00
+76
+CC
+CC
+CC
+CC
+CC
+7C
+0C
+CC
+78
+00
+ENDCHAR
+STARTCHAR char292
+ENCODING 292
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+C6
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char293
+ENCODING 293
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+1C
+36
+00
+E0
+60
+60
+6C
+76
+66
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char294
+ENCODING 294
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+FF
+66
+66
+7E
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char295
+ENCODING 295
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+F0
+60
+6C
+76
+66
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char296
+ENCODING 296
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+76
+DC
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char297
+ENCODING 297
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+76
+DC
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char298
+ENCODING 298
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+3C
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char299
+ENCODING 299
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char302
+ENCODING 302
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+30
+1E
+00
+00
+ENDCHAR
+STARTCHAR char303
+ENCODING 303
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+38
+18
+18
+18
+18
+18
+3C
+30
+1C
+00
+00
+ENDCHAR
+STARTCHAR char304
+ENCODING 304
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char305
+ENCODING 305
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+38
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char308
+ENCODING 308
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+1C
+36
+00
+1E
+0C
+0C
+0C
+0C
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char309
+ENCODING 309
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0E
+1B
+00
+0E
+06
+06
+06
+06
+06
+06
+66
+66
+3C
+00
+ENDCHAR
+STARTCHAR char310
+ENCODING 310
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E6
+66
+66
+6C
+78
+78
+6C
+66
+66
+E6
+18
+F0
+00
+00
+ENDCHAR
+STARTCHAR char311
+ENCODING 311
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E0
+60
+60
+66
+6C
+78
+78
+6C
+66
+E6
+18
+F0
+00
+00
+ENDCHAR
+STARTCHAR char312
+ENCODING 312
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+E6
+6C
+78
+78
+6C
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char313
+ENCODING 313
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F6
+6C
+60
+60
+60
+60
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char314
+ENCODING 314
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E6
+6C
+60
+60
+60
+60
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char315
+ENCODING 315
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F0
+60
+60
+60
+60
+60
+60
+62
+66
+FE
+0C
+78
+00
+00
+ENDCHAR
+STARTCHAR char316
+ENCODING 316
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+0C
+78
+00
+00
+ENDCHAR
+STARTCHAR char317
+ENCODING 317
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+1B
+EE
+60
+60
+60
+60
+60
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char318
+ENCODING 318
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+1B
+EE
+60
+60
+60
+60
+60
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char321
+ENCODING 321
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F0
+64
+6C
+78
+70
+E0
+E0
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char322
+ENCODING 322
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+1A
+1E
+1C
+18
+38
+78
+58
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char323
+ENCODING 323
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char324
+ENCODING 324
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+DC
+66
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char325
+ENCODING 325
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+18
+70
+00
+00
+ENDCHAR
+STARTCHAR char326
+ENCODING 326
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+66
+66
+66
+66
+66
+66
+18
+70
+00
+00
+ENDCHAR
+STARTCHAR char327
+ENCODING 327
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char328
+ENCODING 328
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+6C
+38
+00
+DC
+66
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char330
+ENCODING 330
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+DC
+FE
+E6
+C6
+C6
+C6
+C6
+C6
+C6
+DC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char331
+ENCODING 331
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+DC
+FE
+E6
+C6
+C6
+C6
+06
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char332
+ENCODING 332
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+7C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char333
+ENCODING 333
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char336
+ENCODING 336
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+6C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char337
+ENCODING 337
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+36
+6C
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char340
+ENCODING 340
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+30
+00
+FC
+66
+66
+66
+7C
+6C
+66
+66
+F6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char341
+ENCODING 341
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+DC
+76
+66
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char342
+ENCODING 342
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+6C
+66
+66
+66
+F6
+18
+78
+00
+00
+ENDCHAR
+STARTCHAR char343
+ENCODING 343
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+76
+66
+60
+60
+60
+F0
+18
+F0
+00
+00
+ENDCHAR
+STARTCHAR char344
+ENCODING 344
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+FC
+66
+66
+66
+7C
+6C
+66
+66
+F6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char345
+ENCODING 345
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+6C
+38
+00
+DC
+76
+66
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char346
+ENCODING 346
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+30
+00
+7C
+C6
+C6
+60
+38
+0C
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char347
+ENCODING 347
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+18
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char348
+ENCODING 348
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+00
+7C
+C6
+C6
+60
+38
+0C
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char349
+ENCODING 349
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+38
+6C
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char350
+ENCODING 350
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+60
+38
+0C
+06
+C6
+C6
+7C
+18
+0C
+78
+00
+ENDCHAR
+STARTCHAR char351
+ENCODING 351
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+18
+0C
+78
+00
+ENDCHAR
+STARTCHAR char352
+ENCODING 352
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+7C
+C6
+C0
+60
+38
+0C
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char353
+ENCODING 353
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+6C
+38
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char354
+ENCODING 354
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+7E
+5A
+18
+18
+18
+18
+18
+18
+3C
+18
+0C
+78
+00
+ENDCHAR
+STARTCHAR char355
+ENCODING 355
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+30
+30
+FC
+30
+30
+30
+30
+36
+1C
+18
+0C
+78
+00
+ENDCHAR
+STARTCHAR char356
+ENCODING 356
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+66
+3C
+00
+7E
+7E
+5A
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char357
+ENCODING 357
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+10
+30
+30
+FC
+30
+30
+30
+36
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char358
+ENCODING 358
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+7E
+5A
+18
+1E
+3C
+78
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char359
+ENCODING 359
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+30
+30
+FC
+30
+3C
+78
+F0
+36
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char360
+ENCODING 360
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+76
+DC
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char361
+ENCODING 361
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+76
+DC
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char362
+ENCODING 362
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+7C
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char363
+ENCODING 363
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+78
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char364
+ENCODING 364
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+C6
+7C
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char365
+ENCODING 365
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+78
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char366
+ENCODING 366
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+38
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char367
+ENCODING 367
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+78
+CC
+78
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char368
+ENCODING 368
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+6C
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char369
+ENCODING 369
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+36
+6C
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char370
+ENCODING 370
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+60
+3C
+00
+00
+ENDCHAR
+STARTCHAR char371
+ENCODING 371
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+CC
+CC
+CC
+CC
+CC
+CC
+76
+60
+3C
+00
+00
+ENDCHAR
+STARTCHAR char377
+ENCODING 377
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+30
+00
+FE
+86
+0C
+18
+30
+60
+C2
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char378
+ENCODING 378
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+18
+30
+00
+FE
+CC
+18
+30
+60
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char379
+ENCODING 379
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+00
+FE
+86
+0C
+18
+30
+60
+C2
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char380
+ENCODING 380
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+00
+FE
+CC
+18
+30
+60
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char381
+ENCODING 381
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+38
+00
+FE
+C6
+8C
+18
+30
+60
+C2
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char382
+ENCODING 382
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+6C
+38
+00
+FE
+CC
+18
+30
+60
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char402
+ENCODING 402
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0E
+1B
+18
+18
+18
+7E
+18
+18
+18
+D8
+70
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char711
+ENCODING 711
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+6C
+38
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char728
+ENCODING 728
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C6
+7C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char729
+ENCODING 729
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+18
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char731
+ENCODING 731
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+30
+60
+3C
+00
+ENDCHAR
+STARTCHAR char733
+ENCODING 733
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+36
+6C
+D8
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char881
+ENCODING 881
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+30
+60
+60
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char882
+ENCODING 882
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+06
+06
+0C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char902
+ENCODING 902
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C0
+90
+B8
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char904
+ENCODING 904
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+BF
+B1
+30
+30
+3E
+30
+30
+31
+31
+3F
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char905
+ENCODING 905
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+B3
+B3
+33
+33
+3F
+33
+33
+33
+33
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char906
+ENCODING 906
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+BC
+98
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char908
+ENCODING 908
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+9E
+B3
+33
+33
+33
+33
+33
+33
+1E
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char910
+ENCODING 910
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+B3
+B3
+33
+33
+1E
+0C
+0C
+0C
+0C
+1E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char911
+ENCODING 911
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+9E
+B3
+21
+21
+21
+21
+21
+33
+12
+33
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char912
+ENCODING 912
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+08
+00
+66
+00
+18
+18
+18
+18
+18
+18
+0E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char913
+ENCODING 913
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+38
+6C
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char914
+ENCODING 914
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+66
+66
+66
+66
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char915
+ENCODING 915
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+62
+60
+60
+60
+60
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char916
+ENCODING 916
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+38
+6C
+C6
+C6
+C6
+C6
+C6
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char917
+ENCODING 917
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+66
+62
+68
+78
+68
+60
+62
+66
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char918
+ENCODING 918
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C6
+86
+0C
+18
+30
+60
+C2
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char919
+ENCODING 919
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char920
+ENCODING 920
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+FE
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char921
+ENCODING 921
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+18
+18
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char922
+ENCODING 922
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E6
+66
+66
+6C
+78
+78
+6C
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char923
+ENCODING 923
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+38
+6C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char924
+ENCODING 924
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+EE
+FE
+FE
+D6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char925
+ENCODING 925
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+E6
+F6
+FE
+DE
+CE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char926
+ENCODING 926
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+82
+00
+00
+7C
+00
+00
+00
+82
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char927
+ENCODING 927
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char928
+ENCODING 928
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char929
+ENCODING 929
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+66
+66
+66
+7C
+60
+60
+60
+60
+F0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char931
+ENCODING 931
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C0
+60
+30
+18
+18
+30
+60
+C0
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char932
+ENCODING 932
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+7E
+5A
+18
+18
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char933
+ENCODING 933
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+66
+66
+66
+3C
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char934
+ENCODING 934
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+18
+7E
+99
+99
+99
+7E
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char935
+ENCODING 935
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+6C
+7C
+38
+38
+7C
+6C
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char936
+ENCODING 936
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+DB
+DB
+DB
+DB
+DB
+7E
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char937
+ENCODING 937
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+C3
+C3
+C3
+C3
+C3
+66
+24
+E7
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char938
+ENCODING 938
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+C3
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char939
+ENCODING 939
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+C3
+00
+66
+66
+66
+66
+3C
+18
+18
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char940
+ENCODING 940
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+7B
+CE
+CC
+CC
+CC
+CC
+7B
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char941
+ENCODING 941
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+7C
+C6
+C0
+78
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char942
+ENCODING 942
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+DC
+66
+66
+66
+66
+66
+66
+06
+06
+06
+00
+ENDCHAR
+STARTCHAR char943
+ENCODING 943
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+18
+18
+18
+18
+18
+18
+0E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char944
+ENCODING 944
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+C3
+00
+00
+E7
+66
+66
+66
+66
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char945
+ENCODING 945
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7B
+CE
+CC
+CC
+CC
+CC
+7B
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char946
+ENCODING 946
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+C6
+C6
+FC
+C6
+C6
+C6
+FC
+C0
+C0
+C0
+00
+ENDCHAR
+STARTCHAR char947
+ENCODING 947
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C3
+66
+3C
+18
+3C
+66
+42
+66
+3C
+00
+00
+ENDCHAR
+STARTCHAR char948
+ENCODING 948
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+7C
+60
+30
+18
+78
+CC
+CC
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char949
+ENCODING 949
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C0
+78
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char950
+ENCODING 950
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+0C
+18
+30
+60
+C0
+C0
+C0
+C0
+78
+0C
+0C
+78
+00
+ENDCHAR
+STARTCHAR char951
+ENCODING 951
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+DC
+66
+66
+66
+66
+66
+66
+06
+06
+06
+00
+ENDCHAR
+STARTCHAR char952
+ENCODING 952
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3E
+63
+63
+63
+7F
+63
+63
+63
+63
+3E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char953
+ENCODING 953
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+18
+18
+18
+18
+18
+18
+0E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char954
+ENCODING 954
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+E6
+6C
+78
+78
+6C
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char955
+ENCODING 955
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+6C
+0C
+0C
+0C
+36
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char956
+ENCODING 956
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+66
+66
+66
+66
+66
+66
+7F
+60
+60
+60
+00
+ENDCHAR
+STARTCHAR char957
+ENCODING 957
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+82
+C6
+C6
+6C
+6C
+38
+38
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char958
+ENCODING 958
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+60
+C0
+78
+30
+60
+C0
+C0
+C0
+7C
+06
+06
+3C
+00
+ENDCHAR
+STARTCHAR char959
+ENCODING 959
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char960
+ENCODING 960
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FF
+66
+66
+66
+66
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char961
+ENCODING 961
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3C
+66
+66
+66
+66
+66
+7C
+60
+60
+60
+00
+ENDCHAR
+STARTCHAR char962
+ENCODING 962
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3E
+63
+C0
+C0
+60
+38
+0C
+C6
+7C
+00
+00
+ENDCHAR
+STARTCHAR char963
+ENCODING 963
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7F
+CC
+CC
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char964
+ENCODING 964
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+30
+30
+30
+30
+36
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char965
+ENCODING 965
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+E7
+66
+66
+66
+66
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char966
+ENCODING 966
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+5C
+D6
+D6
+D6
+D6
+D6
+7C
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR char967
+ENCODING 967
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+6C
+38
+38
+38
+6C
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char968
+ENCODING 968
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D6
+D6
+D6
+D6
+D6
+D6
+7C
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR char969
+ENCODING 969
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+66
+C3
+C3
+C3
+DB
+FF
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char970
+ENCODING 970
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C3
+00
+00
+18
+18
+18
+18
+18
+18
+0E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char971
+ENCODING 971
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C3
+00
+00
+E7
+66
+66
+66
+66
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char972
+ENCODING 972
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+7C
+C6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char973
+ENCODING 973
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+E7
+66
+66
+66
+66
+66
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char974
+ENCODING 974
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+10
+00
+66
+C3
+C3
+C3
+DB
+FF
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1011
+ENCODING 1011
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+06
+0C
+18
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1012
+ENCODING 1012
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+06
+0C
+18
+C3
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1025
+ENCODING 1025
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+00
+FC
+C0
+C0
+C0
+F8
+C0
+C0
+C0
+C0
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1026
+ENCODING 1026
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+30
+30
+30
+3C
+36
+36
+36
+36
+36
+06
+1C
+00
+00
+ENDCHAR
+STARTCHAR char1027
+ENCODING 1027
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1028
+ENCODING 1028
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C0
+C0
+FC
+C0
+C0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1029
+ENCODING 1029
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C6
+60
+38
+0C
+06
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1030
+ENCODING 1030
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+18
+00
+18
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1031
+ENCODING 1031
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+66
+66
+00
+18
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1032
+ENCODING 1032
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+0C
+0C
+0C
+0C
+0C
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1033
+ENCODING 1033
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+6C
+6C
+6C
+6C
+6E
+6A
+6A
+EA
+CE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1034
+ENCODING 1034
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+D8
+D8
+D8
+D8
+FC
+DE
+DA
+DA
+DA
+DE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1035
+ENCODING 1035
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+30
+30
+30
+3C
+36
+36
+36
+36
+36
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1036
+ENCODING 1036
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+18
+C6
+C6
+C6
+CC
+D8
+F8
+CC
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1038
+ENCODING 1038
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+6C
+10
+C6
+C6
+C6
+C6
+7E
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1039
+ENCODING 1039
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+FE
+10
+10
+00
+00
+ENDCHAR
+STARTCHAR char1040
+ENCODING 1040
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0E
+1E
+36
+66
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1041
+ENCODING 1041
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+C0
+C0
+C0
+FC
+C6
+C6
+C6
+C6
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1042
+ENCODING 1042
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F8
+CC
+CC
+CC
+FC
+C6
+C6
+C6
+C6
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1043
+ENCODING 1043
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1044
+ENCODING 1044
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+6C
+6C
+6C
+6C
+6C
+6C
+6C
+6C
+FE
+C6
+00
+00
+00
+ENDCHAR
+STARTCHAR char1045
+ENCODING 1045
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+C0
+C0
+C0
+F8
+C0
+C0
+C0
+C0
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1046
+ENCODING 1046
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+D6
+D6
+D6
+7C
+10
+7C
+D6
+D6
+D6
+D6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1047
+ENCODING 1047
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+06
+06
+3C
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1048
+ENCODING 1048
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+CE
+DE
+F6
+E6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1049
+ENCODING 1049
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+D6
+C6
+C6
+C6
+CE
+DE
+F6
+E6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1050
+ENCODING 1050
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+CC
+D8
+F8
+CC
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1051
+ENCODING 1051
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3E
+76
+66
+66
+66
+66
+66
+66
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1052
+ENCODING 1052
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+FE
+D6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1053
+ENCODING 1053
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+CC
+CC
+CC
+FC
+CC
+CC
+CC
+CC
+CC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1054
+ENCODING 1054
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+EE
+C6
+C6
+C6
+C6
+C6
+C6
+EE
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1055
+ENCODING 1055
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FE
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1056
+ENCODING 1056
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+FC
+C6
+C6
+C6
+FC
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1057
+ENCODING 1057
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+C2
+C0
+C0
+C0
+C0
+C2
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1058
+ENCODING 1058
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+7E
+18
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1059
+ENCODING 1059
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+7E
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1060
+ENCODING 1060
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+10
+7C
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+7C
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR char1061
+ENCODING 1061
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+6C
+7C
+38
+10
+7C
+6C
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1062
+ENCODING 1062
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+CC
+CC
+CC
+CC
+CC
+CC
+CC
+CC
+FE
+06
+0E
+00
+00
+ENDCHAR
+STARTCHAR char1063
+ENCODING 1063
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C6
+C6
+C6
+C6
+7E
+06
+06
+06
+06
+06
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1064
+ENCODING 1064
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1065
+ENCODING 1065
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+D6
+FE
+06
+0E
+00
+00
+ENDCHAR
+STARTCHAR char1066
+ENCODING 1066
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+F0
+30
+30
+38
+3C
+36
+36
+36
+36
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1067
+ENCODING 1067
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C2
+C2
+C2
+E2
+F2
+DA
+DA
+DA
+DA
+F2
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1068
+ENCODING 1068
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C0
+C0
+C0
+F0
+D8
+CC
+CC
+CC
+CC
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1069
+ENCODING 1069
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7C
+C6
+06
+06
+7E
+06
+06
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1070
+ENCODING 1070
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+9C
+B6
+B6
+B6
+F6
+B6
+B6
+B6
+B6
+9C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1071
+ENCODING 1071
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+C6
+C6
+C6
+7E
+36
+66
+66
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1072
+ENCODING 1072
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+78
+1C
+7C
+CC
+CC
+CC
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1073
+ENCODING 1073
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+06
+1C
+78
+C0
+F8
+CC
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1074
+ENCODING 1074
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+F8
+CC
+CC
+FC
+C6
+C6
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1075
+ENCODING 1075
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1076
+ENCODING 1076
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3C
+6C
+6C
+6C
+6C
+6C
+FE
+C6
+00
+00
+00
+ENDCHAR
+STARTCHAR char1077
+ENCODING 1077
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+FE
+C0
+C0
+C0
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1078
+ENCODING 1078
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D6
+54
+38
+10
+38
+54
+D6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1079
+ENCODING 1079
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+06
+1C
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1080
+ENCODING 1080
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+CE
+DE
+F6
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1081
+ENCODING 1081
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+28
+38
+00
+C6
+C6
+CE
+DE
+F6
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1082
+ENCODING 1082
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+CC
+D8
+F8
+CC
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1083
+ENCODING 1083
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3E
+76
+66
+66
+66
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1084
+ENCODING 1084
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+EE
+FE
+D6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1085
+ENCODING 1085
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+CC
+CC
+CC
+FC
+CC
+CC
+CC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1086
+ENCODING 1086
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+EE
+C6
+C6
+C6
+EE
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1087
+ENCODING 1087
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FE
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1088
+ENCODING 1088
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FC
+C6
+C6
+C6
+C6
+C6
+FC
+C0
+C0
+C0
+00
+ENDCHAR
+STARTCHAR char1089
+ENCODING 1089
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+E6
+C0
+C0
+C0
+E6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1090
+ENCODING 1090
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7E
+7E
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1091
+ENCODING 1091
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+7E
+06
+C6
+7C
+00
+ENDCHAR
+STARTCHAR char1092
+ENCODING 1092
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+10
+7C
+D6
+D6
+D6
+D6
+D6
+D6
+7C
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR char1093
+ENCODING 1093
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+6C
+38
+10
+38
+6C
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1094
+ENCODING 1094
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+CC
+CC
+CC
+CC
+CC
+CC
+FE
+06
+06
+00
+00
+ENDCHAR
+STARTCHAR char1095
+ENCODING 1095
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+C6
+7E
+06
+06
+06
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1096
+ENCODING 1096
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D6
+D6
+D6
+D6
+D6
+D6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1097
+ENCODING 1097
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D6
+D6
+D6
+D6
+D6
+D6
+FE
+06
+0E
+00
+00
+ENDCHAR
+STARTCHAR char1098
+ENCODING 1098
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+F0
+30
+3C
+36
+36
+36
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1099
+ENCODING 1099
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C2
+C2
+F2
+DA
+DA
+DA
+F2
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1100
+ENCODING 1100
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C0
+C0
+FC
+C6
+C6
+C6
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1101
+ENCODING 1101
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+06
+1E
+06
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1102
+ENCODING 1102
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+9C
+B6
+B6
+F6
+B6
+B6
+9C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1103
+ENCODING 1103
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7E
+C6
+C6
+7E
+36
+E6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1105
+ENCODING 1105
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+6C
+00
+7C
+C6
+FE
+C0
+C0
+C0
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1106
+ENCODING 1106
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+30
+FC
+30
+3C
+36
+36
+36
+06
+1C
+00
+00
+ENDCHAR
+STARTCHAR char1107
+ENCODING 1107
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0C
+18
+00
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1108
+ENCODING 1108
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+C0
+F0
+C0
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1109
+ENCODING 1109
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7C
+C6
+60
+38
+0C
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1110
+ENCODING 1110
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+18
+18
+00
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1111
+ENCODING 1111
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+66
+66
+00
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1112
+ENCODING 1112
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+06
+06
+00
+06
+06
+06
+06
+06
+66
+66
+3C
+00
+ENDCHAR
+STARTCHAR char1113
+ENCODING 1113
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3C
+6C
+6C
+6E
+6A
+EA
+CE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1114
+ENCODING 1114
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+D8
+D8
+DC
+FE
+DA
+DA
+DE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1115
+ENCODING 1115
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FC
+30
+3C
+36
+36
+36
+36
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1116
+ENCODING 1116
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+CC
+D8
+C0
+C6
+CC
+D8
+F8
+CC
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1118
+ENCODING 1118
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+6C
+10
+C6
+C6
+C6
+C6
+C6
+C6
+7E
+06
+C6
+7C
+00
+ENDCHAR
+STARTCHAR char1119
+ENCODING 1119
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+C6
+C6
+C6
+C6
+C6
+C6
+FE
+10
+10
+00
+00
+ENDCHAR
+STARTCHAR char1168
+ENCODING 1168
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+06
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1169
+ENCODING 1169
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+06
+FE
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1488
+ENCODING 1488
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+C6
+C6
+66
+76
+DC
+CC
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1489
+ENCODING 1489
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+F8
+0C
+0C
+0C
+0C
+0C
+0C
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1490
+ENCODING 1490
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+38
+0C
+0C
+0C
+0C
+1C
+36
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1491
+ENCODING 1491
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FE
+0C
+0C
+0C
+0C
+0C
+0C
+0C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1492
+ENCODING 1492
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+06
+06
+06
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1493
+ENCODING 1493
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+70
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1494
+ENCODING 1494
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+30
+30
+30
+18
+18
+30
+60
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1495
+ENCODING 1495
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+66
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1496
+ENCODING 1496
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+CC
+D6
+D6
+C6
+C6
+C6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1497
+ENCODING 1497
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+70
+18
+18
+18
+30
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1498
+ENCODING 1498
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+06
+06
+06
+0C
+0C
+0C
+0C
+0C
+0C
+0E
+00
+ENDCHAR
+STARTCHAR char1499
+ENCODING 1499
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+06
+06
+06
+06
+06
+06
+FC
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1500
+ENCODING 1500
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+C0
+C0
+FC
+06
+06
+06
+06
+0C
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1501
+ENCODING 1501
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+66
+C6
+C6
+C6
+C6
+C6
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1502
+ENCODING 1502
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+DC
+76
+66
+C6
+C6
+C6
+C6
+DE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1503
+ENCODING 1503
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+38
+0C
+0C
+18
+18
+18
+18
+18
+18
+18
+1C
+00
+ENDCHAR
+STARTCHAR char1504
+ENCODING 1504
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+38
+0C
+0C
+0C
+0C
+0C
+0C
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1505
+ENCODING 1505
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+66
+C6
+C6
+C6
+C6
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1506
+ENCODING 1506
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+EE
+66
+66
+66
+66
+66
+2C
+F8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1507
+ENCODING 1507
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+F8
+4C
+CC
+CC
+EC
+0C
+0C
+0C
+0C
+0C
+0E
+00
+ENDCHAR
+STARTCHAR char1508
+ENCODING 1508
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+46
+C6
+C6
+E6
+06
+06
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1509
+ENCODING 1509
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+EE
+66
+66
+6C
+78
+60
+60
+60
+60
+60
+70
+00
+ENDCHAR
+STARTCHAR char1510
+ENCODING 1510
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+EE
+66
+66
+34
+18
+0C
+06
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1511
+ENCODING 1511
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+06
+06
+66
+64
+6C
+6E
+60
+60
+60
+60
+00
+ENDCHAR
+STARTCHAR char1512
+ENCODING 1512
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+06
+06
+06
+06
+06
+06
+06
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1513
+ENCODING 1513
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+D6
+D6
+D6
+D6
+D6
+F6
+C6
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1514
+ENCODING 1514
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FC
+66
+66
+66
+66
+66
+E6
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1548
+ENCODING 1548
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+08
+10
+18
+18
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1563
+ENCODING 1563
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+08
+10
+18
+00
+18
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1567
+ENCODING 1567
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+3E
+41
+40
+20
+10
+08
+08
+00
+08
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1569
+ENCODING 1569
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+0E
+10
+16
+08
+10
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1570
+ENCODING 1570
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+1E
+60
+08
+0C
+0C
+08
+08
+08
+08
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1571
+ENCODING 1571
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+30
+40
+24
+46
+04
+04
+04
+04
+04
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1572
+ENCODING 1572
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+30
+40
+30
+40
+06
+09
+09
+0F
+01
+02
+44
+38
+00
+00
+00
+ENDCHAR
+STARTCHAR char1573
+ENCODING 1573
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+04
+06
+04
+04
+34
+44
+24
+40
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1574
+ENCODING 1574
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+03
+04
+02
+04
+00
+0C
+58
+8C
+84
+78
+00
+00
+00
+ENDCHAR
+STARTCHAR char1575
+ENCODING 1575
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+10
+18
+18
+10
+10
+10
+10
+10
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1576
+ENCODING 1576
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+02
+41
+81
+7E
+00
+00
+10
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1577
+ENCODING 1577
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+12
+00
+00
+0C
+12
+11
+11
+0E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1578
+ENCODING 1578
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+24
+00
+00
+02
+41
+81
+7E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1579
+ENCODING 1579
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+10
+00
+24
+00
+00
+02
+41
+81
+7E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1580
+ENCODING 1580
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+FC
+23
+40
+80
+88
+80
+41
+3E
+00
+00
+ENDCHAR
+STARTCHAR char1581
+ENCODING 1581
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+FC
+23
+40
+80
+80
+80
+41
+3E
+00
+00
+ENDCHAR
+STARTCHAR char1582
+ENCODING 1582
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+10
+00
+00
+FC
+23
+40
+80
+80
+80
+41
+3E
+00
+00
+ENDCHAR
+STARTCHAR char1583
+ENCODING 1583
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+04
+02
+01
+21
+3E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1584
+ENCODING 1584
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+10
+00
+04
+02
+01
+21
+3E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1585
+ENCODING 1585
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+02
+01
+01
+01
+02
+44
+38
+00
+00
+00
+ENDCHAR
+STARTCHAR char1586
+ENCODING 1586
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+08
+00
+00
+02
+01
+01
+01
+02
+44
+38
+00
+00
+00
+ENDCHAR
+STARTCHAR char1587
+ENCODING 1587
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+02
+91
+49
+76
+40
+40
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1588
+ENCODING 1588
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+20
+00
+48
+00
+02
+91
+49
+76
+40
+40
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1589
+ENCODING 1589
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+0E
+91
+61
+7E
+40
+40
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1590
+ENCODING 1590
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+20
+00
+0E
+91
+61
+7E
+40
+40
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1591
+ENCODING 1591
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+20
+20
+20
+20
+2E
+31
+21
+FE
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1592
+ENCODING 1592
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+20
+24
+20
+20
+2E
+31
+21
+FE
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1593
+ENCODING 1593
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+0E
+11
+10
+08
+1F
+20
+40
+80
+80
+80
+41
+3E
+00
+ENDCHAR
+STARTCHAR char1594
+ENCODING 1594
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+04
+00
+0E
+11
+10
+08
+1F
+20
+40
+80
+80
+80
+41
+3E
+00
+ENDCHAR
+STARTCHAR char1600
+ENCODING 1600
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1601
+ENCODING 1601
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+04
+00
+00
+0E
+09
+45
+83
+7E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1602
+ENCODING 1602
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+12
+00
+00
+0E
+09
+45
+83
+81
+82
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1603
+ENCODING 1603
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+01
+09
+11
+09
+41
+81
+81
+7E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1604
+ENCODING 1604
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+01
+01
+01
+01
+01
+01
+41
+81
+81
+82
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1605
+ENCODING 1605
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+0E
+11
+09
+7F
+80
+80
+40
+40
+20
+20
+00
+00
+ENDCHAR
+STARTCHAR char1606
+ENCODING 1606
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+08
+00
+00
+02
+41
+81
+81
+82
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1607
+ENCODING 1607
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+0C
+12
+11
+11
+0E
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1608
+ENCODING 1608
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+06
+09
+09
+0F
+01
+02
+44
+38
+00
+00
+00
+ENDCHAR
+STARTCHAR char1609
+ENCODING 1609
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+06
+09
+08
+46
+81
+81
+82
+7C
+00
+00
+00
+ENDCHAR
+STARTCHAR char1610
+ENCODING 1610
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+06
+09
+08
+46
+81
+81
+82
+7C
+00
+48
+00
+ENDCHAR
+STARTCHAR char1611
+ENCODING 1611
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0C
+38
+60
+0C
+38
+60
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1612
+ENCODING 1612
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+36
+36
+12
+12
+24
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1613
+ENCODING 1613
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0C
+38
+60
+0C
+38
+60
+00
+ENDCHAR
+STARTCHAR char1614
+ENCODING 1614
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0C
+38
+60
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1615
+ENCODING 1615
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+18
+18
+08
+08
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1616
+ENCODING 1616
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+0C
+38
+60
+00
+ENDCHAR
+STARTCHAR char1617
+ENCODING 1617
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+22
+49
+36
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char1618
+ENCODING 1618
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+06
+09
+11
+12
+0C
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8213
+ENCODING 8213
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8215
+ENCODING 8215
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+FF
+00
+ENDCHAR
+STARTCHAR char8226
+ENCODING 8226
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+18
+3C
+3C
+18
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8252
+ENCODING 8252
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+66
+66
+66
+66
+66
+66
+66
+00
+66
+66
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8254
+ENCODING 8254
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8319
+ENCODING 8319
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+6C
+36
+36
+36
+36
+36
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8359
+ENCODING 8359
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+F8
+CC
+CC
+F8
+C4
+CC
+DE
+CC
+CC
+CC
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8364
+ENCODING 8364
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+1C
+32
+60
+60
+FC
+60
+FC
+60
+60
+32
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8470
+ENCODING 8470
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+1E
+9E
+D8
+F8
+D8
+DA
+D8
+D8
+D8
+D8
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8486
+ENCODING 8486
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+38
+6C
+C6
+C6
+C6
+6C
+6C
+6C
+6C
+EE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8490
+ENCODING 8490
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+E6
+66
+66
+6C
+78
+78
+6C
+66
+66
+E6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8491
+ENCODING 8491
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+38
+6C
+38
+10
+38
+6C
+C6
+FE
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8592
+ENCODING 8592
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+30
+60
+FE
+60
+30
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8593
+ENCODING 8593
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+3C
+7E
+18
+18
+18
+18
+18
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8594
+ENCODING 8594
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+18
+0C
+FE
+0C
+18
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8595
+ENCODING 8595
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+18
+18
+18
+18
+18
+18
+7E
+3C
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8596
+ENCODING 8596
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+28
+6C
+FE
+6C
+28
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8597
+ENCODING 8597
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+3C
+7E
+18
+18
+18
+7E
+3C
+18
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8616
+ENCODING 8616
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+18
+3C
+7E
+18
+18
+18
+7E
+3C
+18
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8729
+ENCODING 8729
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+18
+18
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8730
+ENCODING 8730
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+0F
+0C
+0C
+0C
+0C
+0C
+EC
+6C
+6C
+3C
+1C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8734
+ENCODING 8734
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+7E
+DB
+DB
+DB
+7E
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8735
+ENCODING 8735
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+C0
+C0
+C0
+FE
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8745
+ENCODING 8745
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+7C
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+C6
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8776
+ENCODING 8776
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+76
+DC
+00
+76
+DC
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8801
+ENCODING 8801
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FE
+00
+00
+FE
+00
+00
+FE
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8804
+ENCODING 8804
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+0C
+18
+30
+60
+30
+18
+0C
+00
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8805
+ENCODING 8805
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+30
+18
+0C
+06
+0C
+18
+30
+00
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8962
+ENCODING 8962
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+10
+38
+6C
+C6
+C6
+C6
+FE
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8976
+ENCODING 8976
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+FE
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8985
+ENCODING 8985
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+C0
+C0
+C0
+FE
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char8992
+ENCODING 8992
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+0E
+1B
+1B
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char8993
+ENCODING 8993
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+18
+18
+D8
+D8
+D8
+70
+00
+00
+00
+ENDCHAR
+STARTCHAR char9472
+ENCODING 9472
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9474
+ENCODING 9474
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9484
+ENCODING 9484
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+1F
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9488
+ENCODING 9488
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+F8
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9492
+ENCODING 9492
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+1F
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9496
+ENCODING 9496
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+F8
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9500
+ENCODING 9500
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+1F
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9508
+ENCODING 9508
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+F8
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9516
+ENCODING 9516
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FF
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9524
+ENCODING 9524
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9532
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+18
+18
+FF
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9552
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FF
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9553
+ENCODING 9553
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9554
+ENCODING 9554
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+1F
+18
+1F
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9555
+ENCODING 9555
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+3F
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9556
+ENCODING 9556
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3F
+30
+37
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9557
+ENCODING 9557
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+F8
+18
+F8
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9558
+ENCODING 9558
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FE
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9559
+ENCODING 9559
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FE
+06
+F6
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9560
+ENCODING 9560
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+1F
+18
+1F
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9561
+ENCODING 9561
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+3F
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9562
+ENCODING 9562
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+37
+30
+3F
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9563
+ENCODING 9563
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+F8
+18
+F8
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9564
+ENCODING 9564
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9565
+ENCODING 9565
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+F6
+06
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9566
+ENCODING 9566
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+1F
+18
+1F
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9567
+ENCODING 9567
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+37
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9568
+ENCODING 9568
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+37
+30
+37
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9569
+ENCODING 9569
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+F8
+18
+F8
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9570
+ENCODING 9570
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+F6
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9571
+ENCODING 9571
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+F6
+06
+F6
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9572
+ENCODING 9572
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FF
+00
+FF
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9573
+ENCODING 9573
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FF
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9574
+ENCODING 9574
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+FF
+00
+F7
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9575
+ENCODING 9575
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+FF
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9576
+ENCODING 9576
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9577
+ENCODING 9577
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+F7
+00
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9578
+ENCODING 9578
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+18
+18
+18
+18
+18
+FF
+18
+FF
+18
+18
+18
+18
+18
+18
+18
+18
+ENDCHAR
+STARTCHAR char9579
+ENCODING 9579
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+36
+36
+FF
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9580
+ENCODING 9580
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+36
+36
+36
+36
+36
+F7
+00
+F7
+36
+36
+36
+36
+36
+36
+36
+36
+ENDCHAR
+STARTCHAR char9600
+ENCODING 9600
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9604
+ENCODING 9604
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR char9608
+ENCODING 9608
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR char9612
+ENCODING 9612
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR char9616
+ENCODING 9616
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+ENDCHAR
+STARTCHAR char9617
+ENCODING 9617
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+11
+44
+11
+44
+11
+44
+11
+44
+11
+44
+11
+44
+11
+44
+11
+44
+ENDCHAR
+STARTCHAR char9618
+ENCODING 9618
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+55
+AA
+55
+AA
+55
+AA
+55
+AA
+55
+AA
+55
+AA
+55
+AA
+55
+AA
+ENDCHAR
+STARTCHAR char9619
+ENCODING 9619
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+DD
+77
+DD
+77
+DD
+77
+DD
+77
+DD
+77
+DD
+77
+DD
+77
+DD
+77
+ENDCHAR
+STARTCHAR char9632
+ENCODING 9632
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+7E
+7E
+7E
+7E
+7E
+7E
+7E
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9644
+ENCODING 9644
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+FE
+FE
+FE
+FE
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9650
+ENCODING 9650
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+10
+38
+38
+7C
+7C
+FE
+FE
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9654
+ENCODING 9654
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+80
+C0
+E0
+F0
+F8
+FE
+F8
+F0
+E0
+C0
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9658
+ENCODING 9658
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+80
+C0
+E0
+F0
+F8
+FE
+F8
+F0
+E0
+C0
+80
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9660
+ENCODING 9660
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+FE
+FE
+7C
+7C
+38
+38
+10
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9664
+ENCODING 9664
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+02
+06
+0E
+1E
+3E
+FE
+3E
+1E
+0E
+06
+02
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9668
+ENCODING 9668
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+02
+06
+0E
+1E
+3E
+FE
+3E
+1E
+0E
+06
+02
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9670
+ENCODING 9670
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+10
+38
+7C
+FE
+7C
+38
+10
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9675
+ENCODING 9675
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+3C
+66
+42
+42
+66
+3C
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9688
+ENCODING 9688
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+FF
+FF
+FF
+FF
+FF
+FF
+E7
+C3
+C3
+E7
+FF
+FF
+FF
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR char9689
+ENCODING 9689
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+FF
+FF
+FF
+FF
+FF
+C3
+99
+BD
+BD
+99
+C3
+FF
+FF
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR char9786
+ENCODING 9786
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+81
+A5
+81
+81
+BD
+99
+81
+81
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9787
+ENCODING 9787
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7E
+FF
+DB
+FF
+FF
+C3
+E7
+FF
+FF
+7E
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9788
+ENCODING 9788
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+18
+18
+DB
+3C
+E7
+3C
+DB
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9792
+ENCODING 9792
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3C
+66
+66
+66
+66
+3C
+18
+7E
+18
+18
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9794
+ENCODING 9794
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+1E
+0E
+1A
+32
+78
+CC
+CC
+CC
+CC
+78
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9824
+ENCODING 9824
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+18
+3C
+7E
+FF
+FF
+7E
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9827
+ENCODING 9827
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+18
+3C
+3C
+E7
+E7
+E7
+18
+18
+3C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9829
+ENCODING 9829
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+6C
+FE
+FE
+FE
+FE
+7C
+38
+10
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9830
+ENCODING 9830
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+10
+38
+7C
+FE
+7C
+38
+10
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9834
+ENCODING 9834
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+3F
+33
+3F
+30
+30
+30
+30
+70
+F0
+E0
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR char9835
+ENCODING 9835
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7F
+63
+7F
+63
+63
+63
+63
+67
+E7
+E6
+C0
+00
+00
+00
+ENDCHAR
+STARTCHAR char9836
+ENCODING 9836
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+7F
+63
+7F
+63
+63
+63
+63
+67
+E7
+E6
+C0
+00
+00
+00
+ENDCHAR
+STARTCHAR char63492
+ENCODING 63492
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FF
+00
+00
+ENDCHAR
+STARTCHAR char65533
+ENCODING 65533
+SWIDTH 500 0
+DWIDTH 8 0
+BBX 8 16 0 -4
+BITMAP
+00
+00
+00
+00
+7E
+7E
+7E
+7E
+7E
+7E
+7E
+00
+00
+00
+00
+00
+ENDCHAR
+ENDFONT
diff --git a/konsole/fonts/cp437.charmap b/konsole/fonts/cp437.charmap
new file mode 100644
index 000000000..9c9dc97cf
--- /dev/null
+++ b/konsole/fonts/cp437.charmap
@@ -0,0 +1,264 @@
+<code_set_name> console
+<escape_char> /
+<comment_char> %
+%
+% converted from cp437.uni
+%
+CHARMAP
+<sym> /x00 <U0000> NULL (NUL)
+<sym> /x01 <U0001> WHITE SMILING FACE
+<sym> /x02 <U0002> BLACK SMILING FACE
+<sym> /x03 <U0003> BLACK HEART SUIT
+<sym> /x04 <U0004> BLACK DIAMOND SUIT
+<sym> /x05 <U0005> BLACK CLUB SUIT
+<sym> /x06 <U0006> BLACK SPADE SUIT
+<sym> /x07 <U0007> BULLET
+<sym> /x08 <U0008> INVERSE BULLET
+<sym> /x09 <U0009> WHITE CIRCLE
+<sym> /x0a <U000a> INVERSE WHITE CIRCLE
+<sym> /x0b <U000b> MALE SIGN
+<sym> /x0c <U000c> FEMALE SIGN
+<sym> /x0d <U000d> EIGHTH NOTE
+<sym> /x0e <U000e> BEAMED EIGHTH NOTES
+<sym> /x0f <U000f> WHITE SUN WITH RAYS
+<sym> /x10 <U0010> BLACK RIGHT-POINTING TRIANGLE
+<sym> /x11 <U0011> BLACK LEFT-POINTING TRIANGLE
+<sym> /x12 <U0012> UP DOWN ARROW
+<sym> /x13 <U0033> DOUBLE EXCLAMATION MARK
+<sym> /x14 <U0014> PILCROW SIGN
+<sym> /x15 <U0015> SECTION SIGN
+<sym> /x16 <U0016> BLACK RECTANGLE
+<sym> /x17 <U0017> UP DOWN ARROW WITH BASE
+<sym> /x18 <U0018> UPWARDS ARROW
+<sym> /x19 <U0019> DOWNWARDS ARROW
+<sym> /x1a <U001a> RIGHTWARDS ARROW
+<sym> /x1b <U001b> LEFTWARDS ARROW
+<sym> /x1c <U001c> RIGHT ANGLE
+<sym> /x1d <U001d> LEFT RIGHT ARROW
+<sym> /x1e <U001e> BLACK UP-POINTING TRIANGLE
+<sym> /x1f <U001f> BLACK DOWN-POINTING TRIANGLE
+<sym> /x20 <U0020> SPACE
+<sym> /x21 <U0021> EXCLAMATION MARK
+<sym> /x22 <U0022> QUOTATION MARK
+<sym> /x23 <U0023> NUMBER SIGN
+<sym> /x24 <U0024> DOLLAR SIGN
+<sym> /x25 <U0025> PERCENT SIGN
+<sym> /x26 <U0026> AMPERSAND
+<sym> /x27 <U0027> APOSTROPHE
+<sym> /x28 <U0028> LEFT PARENTHESIS
+<sym> /x29 <U0029> RIGHT PARENTHESIS
+<sym> /x2a <U002a> ASTERISK
+<sym> /x2b <U002b> PLUS SIGN
+<sym> /x2c <U002c> COMMA
+<sym> /x2d <U002d> HYPHEN-MINUS
+<sym> /x2e <U002e> FULL STOP
+<sym> /x2f <U002f> SOLIDUS
+<sym> /x30 <U0030> DIGIT ZERO
+<sym> /x31 <U0031> DIGIT ONE
+<sym> /x32 <U0032> DIGIT TWO
+<sym> /x33 <U0033> DIGIT THREE
+<sym> /x34 <U0034> DIGIT FOUR
+<sym> /x35 <U0035> DIGIT FIVE
+<sym> /x36 <U0036> DIGIT SIX
+<sym> /x37 <U0037> DIGIT SEVEN
+<sym> /x38 <U0038> DIGIT EIGHT
+<sym> /x39 <U0039> DIGIT NINE
+<sym> /x3a <U003a> COLON
+<sym> /x3b <U003b> SEMICOLON
+<sym> /x3c <U003c> LESS-THAN SIGN
+<sym> /x3d <U003d> EQUALS SIGN
+<sym> /x3e <U003e> GREATER-THAN SIGN
+<sym> /x3f <U003f> QUESTION MARK
+<sym> /x40 <U0040> COMMERCIAL AT
+<sym> /x41 <U0041> LATIN CAPITAL LETTER A
+<sym> /x42 <U0042> LATIN CAPITAL LETTER B
+<sym> /x43 <U0043> LATIN CAPITAL LETTER C
+<sym> /x44 <U0044> LATIN CAPITAL LETTER D
+<sym> /x45 <U0045> LATIN CAPITAL LETTER E
+<sym> /x46 <U0046> LATIN CAPITAL LETTER F
+<sym> /x47 <U0047> LATIN CAPITAL LETTER G
+<sym> /x48 <U0048> LATIN CAPITAL LETTER H
+<sym> /x49 <U0049> LATIN CAPITAL LETTER I
+<sym> /x4a <U004a> LATIN CAPITAL LETTER J
+<sym> /x4b <U004b> LATIN CAPITAL LETTER K
+<sym> /x4c <U004c> LATIN CAPITAL LETTER L
+<sym> /x4d <U004d> LATIN CAPITAL LETTER M
+<sym> /x4e <U004e> LATIN CAPITAL LETTER N
+<sym> /x4f <U004f> LATIN CAPITAL LETTER O
+<sym> /x50 <U0050> LATIN CAPITAL LETTER P
+<sym> /x51 <U0051> LATIN CAPITAL LETTER Q
+<sym> /x52 <U0052> LATIN CAPITAL LETTER R
+<sym> /x53 <U0053> LATIN CAPITAL LETTER S
+<sym> /x54 <U0054> LATIN CAPITAL LETTER T
+<sym> /x55 <U0055> LATIN CAPITAL LETTER U
+<sym> /x56 <U0056> LATIN CAPITAL LETTER V
+<sym> /x57 <U0057> LATIN CAPITAL LETTER W
+<sym> /x58 <U0058> LATIN CAPITAL LETTER X
+<sym> /x59 <U0059> LATIN CAPITAL LETTER Y
+<sym> /x5a <U005a> LATIN CAPITAL LETTER Z
+<sym> /x5b <U005b> LEFT SQUARE BRACKET
+<sym> /x5c <U005c> REVERSE SOLIDUS
+<sym> /x5d <U005d> RIGHT SQUARE BRACKET
+<sym> /x5e <U005e> CIRCUMFLEX ACCENT
+<sym> /x5f <U005f> LOW LINE
+<sym> /x60 <U0060> GRAVE ACCENT
+<sym> /x61 <U0061> LATIN SMALL LETTER A
+<sym> /x62 <U0062> LATIN SMALL LETTER B
+<sym> /x63 <U0063> LATIN SMALL LETTER C
+<sym> /x64 <U0064> LATIN SMALL LETTER D
+<sym> /x65 <U0065> LATIN SMALL LETTER E
+<sym> /x66 <U0066> LATIN SMALL LETTER F
+<sym> /x67 <U0067> LATIN SMALL LETTER G
+<sym> /x68 <U0068> LATIN SMALL LETTER H
+<sym> /x69 <U0069> LATIN SMALL LETTER I
+<sym> /x6a <U006a> LATIN SMALL LETTER J
+<sym> /x6b <U006b> LATIN SMALL LETTER K
+<sym> /x6c <U006c> LATIN SMALL LETTER L
+<sym> /x6d <U006d> LATIN SMALL LETTER M
+<sym> /x6e <U006e> LATIN SMALL LETTER N
+<sym> /x6f <U006f> LATIN SMALL LETTER O
+<sym> /x70 <U0070> LATIN SMALL LETTER P
+<sym> /x71 <U0071> LATIN SMALL LETTER Q
+<sym> /x72 <U0072> LATIN SMALL LETTER R
+<sym> /x73 <U0073> LATIN SMALL LETTER S
+<sym> /x74 <U0074> LATIN SMALL LETTER T
+<sym> /x75 <U0075> LATIN SMALL LETTER U
+<sym> /x76 <U0076> LATIN SMALL LETTER V
+<sym> /x77 <U0077> LATIN SMALL LETTER W
+<sym> /x78 <U0078> LATIN SMALL LETTER X
+<sym> /x79 <U0079> LATIN SMALL LETTER Y
+<sym> /x7a <U007a> LATIN SMALL LETTER Z
+<sym> /x7b <U007b> LEFT CURLY BRACKET
+<sym> /x7c <U007c> VERTICAL LINE
+<sym> /x7d <U007d> RIGHT CURLY BRACKET
+<sym> /x7e <U007e> TILDE
+<sym> /x7f <U2302> HOUSE
+<sym> /x80 <U00c7> LATIN CAPITAL LETTER C WITH CEDILLA
+<sym> /x81 <U00fc> LATIN SMALL LETTER U WITH DIAERESIS
+<sym> /x82 <U00e9> LATIN SMALL LETTER E WITH ACUTE
+<sym> /x83 <U00e2> LATIN SMALL LETTER A WITH CIRCUMFLEX
+<sym> /x84 <U00e4> LATIN SMALL LETTER A WITH DIAERESIS
+<sym> /x85 <U00e0> LATIN SMALL LETTER A WITH GRAVE
+<sym> /x86 <U00e5> LATIN SMALL LETTER A WITH RING ABOVE
+<sym> /x87 <U00e7> LATIN SMALL LETTER C WITH CEDILLA
+<sym> /x88 <U00ea> LATIN SMALL LETTER E WITH CIRCUMFLEX
+<sym> /x89 <U00eb> LATIN SMALL LETTER E WITH DIAERESIS
+<sym> /x8a <U00e8> LATIN SMALL LETTER E WITH GRAVE
+<sym> /x8b <U00ef> LATIN SMALL LETTER I WITH DIAERESIS
+<sym> /x8c <U00ee> LATIN SMALL LETTER I WITH CIRCUMFLEX
+<sym> /x8d <U00ec> LATIN SMALL LETTER I WITH GRAVE
+<sym> /x8e <U00c4> LATIN CAPITAL LETTER A WITH DIAERESIS
+<sym> /x8f <U00c5> LATIN CAPITAL LETTER A WITH RING ABOVE
+<sym> /x90 <U00c9> LATIN CAPITAL LETTER E WITH ACUTE
+<sym> /x91 <U00e6> LATIN SMALL LIGATURE AE
+<sym> /x92 <U00c6> LATIN CAPITAL LIGATURE AE
+<sym> /x93 <U00f4> LATIN SMALL LETTER O WITH CIRCUMFLEX
+<sym> /x94 <U00f6> LATIN SMALL LETTER O WITH DIAERESIS
+<sym> /x95 <U00f2> LATIN SMALL LETTER O WITH GRAVE
+<sym> /x96 <U00fb> LATIN SMALL LETTER U WITH CIRCUMFLEX
+<sym> /x97 <U00f9> LATIN SMALL LETTER U WITH GRAVE
+<sym> /x98 <U00ff> LATIN SMALL LETTER Y WITH DIAERESIS
+<sym> /x99 <U00d6> LATIN CAPITAL LETTER O WITH DIAERESIS
+<sym> /x9a <U00dc> LATIN CAPITAL LETTER U WITH DIAERESIS
+<sym> /x9b <U00a2> CENT SIGN
+<sym> /x9c <U00a3> POUND SIGN
+<sym> /x9d <U00a5> YEN SIGN
+<sym> /x9e <U20a7> PESETA SIGN
+<sym> /x9f <U0192> LATIN SMALL LETTER F WITH HOOK
+<sym> /xa0 <U00e1> LATIN SMALL LETTER A WITH ACUTE
+<sym> /xa1 <U00ed> LATIN SMALL LETTER I WITH ACUTE
+<sym> /xa2 <U00f3> LATIN SMALL LETTER O WITH ACUTE
+<sym> /xa3 <U00fa> LATIN SMALL LETTER U WITH ACUTE
+<sym> /xa4 <U00f1> LATIN SMALL LETTER N WITH TILDE
+<sym> /xa5 <U00d1> LATIN CAPITAL LETTER N WITH TILDE
+<sym> /xa6 <U00aa> FEMININE ORDINAL INDICATOR
+<sym> /xa7 <U00ba> MASCULINE ORDINAL INDICATOR
+<sym> /xa8 <U00bf> INVERTED QUESTION MARK
+<sym> /xa9 <U2310> REVERSED NOT SIGN
+<sym> /xaa <U00ac> NOT SIGN
+<sym> /xab <U00bd> VULGAR FRACTION ONE HALF
+<sym> /xac <U00bc> VULGAR FRACTION ONE QUARTER
+<sym> /xad <U00a1> INVERTED EXCLAMATION MARK
+<sym> /xae <U00ab> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<sym> /xaf <U00bb> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<sym> /xb0 <U2591> LIGHT SHADE
+<sym> /xb1 <U2592> MEDIUM SHADE
+<sym> /xb2 <U2593> DARK SHADE
+<sym> /xb3 <U2502> BOX DRAWINGS LIGHT VERTICAL
+<sym> /xb4 <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+<sym> /xb5 <U2561> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+<sym> /xb6 <U2562> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+<sym> /xb7 <U2556> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+<sym> /xb8 <U2555> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+<sym> /xb9 <U2563> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+<sym> /xba <U2551> BOX DRAWINGS DOUBLE VERTICAL
+<sym> /xbb <U2557> BOX DRAWINGS DOUBLE DOWN AND LEFT
+<sym> /xbc <U255d> BOX DRAWINGS DOUBLE UP AND LEFT
+<sym> /xbd <U255c> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+<sym> /xbe <U255b> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+<sym> /xbf <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT
+<sym> /xc0 <U2514> BOX DRAWINGS LIGHT UP AND RIGHT
+<sym> /xc1 <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+<sym> /xc2 <U252c> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+<sym> /xc3 <U251c> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+<sym> /xc4 <U2500> BOX DRAWINGS LIGHT HORIZONTAL
+<sym> /xc5 <U253c> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+<sym> /xc6 <U255e> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+<sym> /xc7 <U255f> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+<sym> /xc8 <U255a> BOX DRAWINGS DOUBLE UP AND RIGHT
+<sym> /xc9 <U2554> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+<sym> /xca <U2569> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+<sym> /xcb <U2566> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+<sym> /xcc <U2560> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+<sym> /xcd <U2550> BOX DRAWINGS DOUBLE HORIZONTAL
+<sym> /xce <U256c> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+<sym> /xcf <U2567> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+<sym> /xd0 <U2568> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+<sym> /xd1 <U2564> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+<sym> /xd2 <U2565> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+<sym> /xd3 <U2559> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+<sym> /xd4 <U2558> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+<sym> /xd5 <U2552> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+<sym> /xd6 <U2553> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+<sym> /xd7 <U256b> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+<sym> /xd8 <U256a> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+<sym> /xd9 <U2518> BOX DRAWINGS LIGHT UP AND LEFT
+<sym> /xda <U250c> BOX DRAWINGS LIGHT DOWN AND RIGHT
+<sym> /xdb <U2588> FULL BLOCK
+<sym> /xdc <U2584> LOWER HALF BLOCK
+<sym> /xdd <U258c> LEFT HALF BLOCK
+<sym> /xde <U2590> RIGHT HALF BLOCK
+<sym> /xdf <U2580> UPPER HALF BLOCK
+<sym> /xe0 <U03b1> GREEK SMALL LETTER ALPHA
+<sym> /xe1 <U00df> LATIN SMALL LETTER SHARP S
+<sym> /xe2 <U0393> GREEK CAPITAL LETTER GAMMA
+<sym> /xe3 <U03c0> GREEK SMALL LETTER PI
+<sym> /xe4 <U03a3> GREEK CAPITAL LETTER SIGMA
+<sym> /xe5 <U03c3> GREEK SMALL LETTER SIGMA
+<sym> /xe6 <U00b5> MICRO SIGN
+<sym> /xe7 <U03c4> GREEK SMALL LETTER TAU
+<sym> /xe8 <U03a6> GREEK CAPITAL LETTER PHI
+<sym> /xe9 <U0398> GREEK CAPITAL LETTER THETA
+<sym> /xea <U03a9> GREEK CAPITAL LETTER OMEGA
+<sym> /xeb <U03b4> GREEK SMALL LETTER DELTA
+<sym> /xec <U221e> INFINITY
+<sym> /xed <U03c6> GREEK SMALL LETTER PHI
+<sym> /xee <U03b5> GREEK SMALL LETTER EPSILON
+<sym> /xef <U2229> INTERSECTION
+<sym> /xf0 <U2261> IDENTICAL TO
+<sym> /xf1 <U00b1> PLUS-MINUS SIGN
+<sym> /xf2 <U2265> GREATER-THAN OR EQUAL TO
+<sym> /xf3 <U2264> LESS-THAN OR EQUAL TO
+<sym> /xf4 <U2320> TOP HALF INTEGRAL
+<sym> /xf5 <U2321> BOTTOM HALF INTEGRAL
+<sym> /xf6 <U00f7> DIVISION SIGN
+<sym> /xf7 <U2248> ALMOST EQUAL TO
+<sym> /xf8 <U00b0> DEGREE SIGN
+<sym> /xf9 <U2219> BULLET OPERATOR
+<sym> /xfa <U00b7> MIDDLE DOT
+<sym> /xfb <U221a> SQUARE ROOT
+<sym> /xfc <U207f> SUPERSCRIPT LATIN SMALL LETTER N
+<sym> /xfd <U00b2> SUPERSCRIPT TWO
+<sym> /xfe <U25a0> BLACK SQUARE
+<sym> /xff <U00a0> NO-BREAK SPACE
+END CHARMAP
diff --git a/konsole/kcmkonsole.desktop b/konsole/kcmkonsole.desktop
new file mode 100644
index 000000000..45c092281
--- /dev/null
+++ b/konsole/kcmkonsole.desktop
@@ -0,0 +1,230 @@
+[Desktop Entry]
+Exec=kcmkonsole
+Icon=konsole
+Type=Application
+
+X-KDE-ControlModuleType=User
+X-KDE-HideFromPanel=true
+
+Name=Console
+Name[af]=Konsole
+Name[ar]=لوحة الأوامر
+Name[az]=Konsol
+Name[be]=КанÑоль
+Name[bg]=Конзола
+Name[bn]=কনসোল
+Name[br]=Letrin
+Name[bs]=Konzola
+Name[ca]=Consola
+Name[cs]=Konsole
+Name[csb]=Kònsola
+Name[cy]=Terfynell
+Name[da]=Konsol
+Name[de]=Konsole
+Name[el]=Κονσόλα
+Name[eo]=Konzolo
+Name[es]=Consola
+Name[et]=Konsool
+Name[eu]=Kontsola
+Name[fa]=پیشانه
+Name[fi]=Konsoli
+Name[fy]=Konsole
+Name[ga]=Consól
+Name[gl]=Consola
+Name[he]=מסוף
+Name[hi]=कंसोल
+Name[hr]=Konzola
+Name[hu]=Konzol
+Name[is]=Skjáhermir
+Name[ja]=コンソール
+Name[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Name[kk]=КонÑоль
+Name[km]=កុងសូល
+Name[ko]=X 콘솔
+Name[lo]=ຄອນໂà»à»àºŠàº¥
+Name[lt]=KonsolÄ—
+Name[lv]=Konsole
+Name[mk]=Конзола
+Name[mn]=КонÑол
+Name[ms]=Konsol
+Name[mt]=Konsol
+Name[nb]=Konsoll
+Name[nds]=Konsool
+Name[ne]=कनà¥à¤¸à¥‹à¤²
+Name[nn]=Konsoll
+Name[oc]=Consola
+Name[pa]=ਕੰਨਸੋਲ
+Name[pl]=Konsola
+Name[pt]=Consola
+Name[ro]=Consolă
+Name[ru]=КонÑоль
+Name[rw]=Konsole
+Name[se]=Konsolla
+Name[sk]=Konzola
+Name[sl]=Konzola
+Name[sr]=Конзола
+Name[sr@Latn]=Konzola
+Name[sv]=Konsollen
+Name[ta]=கானà¯à®šà¯‹à®²à¯
+Name[te]=కంసోలà±
+Name[tg]=КонÑол
+Name[th]=คอนโซล
+Name[tr]=Konsol
+Name[tt]=Konsole
+Name[uk]=КонÑоль
+Name[uz]=Terminal
+Name[uz@cyrillic]=Терминал
+Name[vi]=Thiết bị cuối
+Name[wa]=Conzôle
+Name[xh]=Konsole
+Name[zh_CN]=控制å°
+Name[zh_TW]=主控å°
+Name[zu]=Ikhonsoli
+
+GenericName=All Konsole Settings
+GenericName[af]=Alle Konsole Instellings
+GenericName[ar]=كل اعدادات Konsole
+GenericName[az]=Bütün Konsol Qurğuları
+GenericName[be]=УÑе наÑтаўленні Konsole
+GenericName[bg]=ÐаÑтройване на конзолата
+GenericName[bn]=সব কনসোল সেটিংস
+GenericName[br]=Hollgefluniadur Konsole
+GenericName[bs]=Sve postavke za konzolu
+GenericName[ca]=Tot l'arranjament de la consola
+GenericName[cs]=Všechna nastavení programu Konsole
+GenericName[csb]=Wszëtczé nastôwë Kònsolë
+GenericName[cy]=Gosodiadau Llawn Konsole
+GenericName[da]=Alle Konsole-indstillinger
+GenericName[de]=Alle Einstellungen für die Konsole
+GenericName[el]=Όλες οι Ïυθμίσεις του Konsole
+GenericName[eo]=Agordo de la Konzolo
+GenericName[es]=Preferencias de Konsole
+GenericName[et]=Konsooli seadistused
+GenericName[eu]=Konsoleren ezarpen guztiak
+GenericName[fa]=همۀ تنظیمات Konsole
+GenericName[fi]=Kaikki konsolen asetukset
+GenericName[fr]=Configuration de Konsole
+GenericName[fy]=Alle Konsole-Ynstellings
+GenericName[ga]=Gach Socrú Konsole
+GenericName[gl]=Propriedades da Konsole
+GenericName[he]=כל ההגדרות של המסוף
+GenericName[hi]=सभी कंसोल विनà¥à¤¯à¤¾à¤¸
+GenericName[hr]=Sve postavke konzole
+GenericName[hu]=Konzolbeállítások
+GenericName[id]=Seting semua Konsole
+GenericName[is]=Stilla Konsole skjáherminn
+GenericName[it]=Tutte le impostazioni di Konsole
+GenericName[ja]=Konsole ã®ã™ã¹ã¦ã®è¨­å®šã§ã™
+GenericName[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრები
+GenericName[kk]=КонÑоль баптаулары
+GenericName[km]=ការ​កំណážáŸ‹â€‹áž€áž»áž„សូល​ទាំងអស់
+GenericName[lo]=ຕັ້ງຄ່າຄອນໂà»àºŠàº¥àº—ັ້ງຫມົດ
+GenericName[lt]=Visi Konsole nustatymai
+GenericName[lv]=Visi Konsoles UzstÄdÄ«jumi
+GenericName[mk]=Сите поÑтавувања на конзолата
+GenericName[mn]=КонÑолын бүх тохируулга
+GenericName[ms]=Semua Seting Konsol
+GenericName[mt]=Setings kollha tal-Konsole
+GenericName[nb]=Alle Konsoll-innstillinger
+GenericName[nds]=All Konsole-Instellen
+GenericName[ne]=सबै कनà¥à¤¸à¥‹à¤² सेटिङ
+GenericName[nl]=Alle Konsole-instellingen
+GenericName[nn]=Alle konsoll-innstillingar
+GenericName[nso]=Dipeakanyo Kamoka tsa Konsole
+GenericName[oc]=Tot l'arranjament de la consola
+GenericName[pa]=ਸਭ ਕੰਸੋਲ ਸੈਟਿੰਗ
+GenericName[pl]=Wszystkie ustawienia Konsoli
+GenericName[pt]=Configuração da Consola
+GenericName[pt_BR]=Todas as configurações do Konsole
+GenericName[ro]=Toate setările Konsole
+GenericName[ru]=ÐаÑтройка терминала
+GenericName[rw]=Amagenamiterere ya Konsole Zose
+GenericName[se]=Buot konsolla-heivehusat
+GenericName[sk]=VÅ¡etky nastavenia Konzoly
+GenericName[sl]=Vse nastavitve konzole
+GenericName[sr]=Све поÑтавке конзоле
+GenericName[sr@Latn]=Sve postavke konzole
+GenericName[ss]=Konkhe kuhleleka kwe Konsole
+GenericName[sv]=Alla inställningar för Konsole
+GenericName[ta]=எலà¯à®²à®¾ கானà¯à®šà¯‹à®²à¯ அமைபà¯à®ªà¯à®•à®³à¯à®®à¯
+GenericName[te]=à°…à°¨à±à°¨à°¿ కానà±à°¸à±Šà°²à± అమరికలà±
+GenericName[tg]=Тамоми танзимоти Konsole
+GenericName[th]=ตั้งค่าคอนโซลทั้งหมด
+GenericName[tr]=Tüm Konsol Ayarları
+GenericName[tt]=Bar Konsollar Caylawı
+GenericName[uk]=Ð’ÑÑ– параметри конÑолі
+GenericName[uz]=Terminalning hamma moslamalari
+GenericName[uz@cyrillic]=Терминалнинг ҳамма моÑламалари
+GenericName[ven]=Mavhekanyele a Konsole dzothe
+GenericName[vi]=Tất cả các thiết lập của Konsole
+GenericName[wa]=Tos ls apontiaedjes do terminå di KDE
+GenericName[xh]=Zonke izicwangciso ze Konsole
+GenericName[zh_CN]=Konsole 的全部设置
+GenericName[zh_TW]=所有的 Konsole 設定
+GenericName[zu]=Zonke Izilungiselelo zekhonsoli
+
+Keywords=konsole,console,terminal
+Keywords[ar]=konsole,سطر الأوامر,لوحة الأوامر,الطرÙية
+Keywords[az]=konsol,terminal,konsole,console
+Keywords[be]=КанÑоль,ТÑрмінал,ЭмулÑтар Ñ‚Ñрміналу,konsole,console,terminal
+Keywords[bg]=конзола, терминал, програма, терминална, konsole, console, terminal
+Keywords[br]=konsole,letrin,termenell
+Keywords[bs]=konsole,console,terminal,konzola
+Keywords[ca]=konsole,consola,terminal
+Keywords[cs]=Konsole,Console,Terminál
+Keywords[csb]=kònsole,kònsola,terminal
+Keywords[cy]=konsole,console,terfynell
+Keywords[da]=konsole,konsol,terminal
+Keywords[de]=Konsole,Console,Terminal
+Keywords[el]=konsole,κονσόλα,τεÏματικό
+Keywords[eo]=konzolo,pupitro,terminalo
+Keywords[es]=konsole,consola,terminal
+Keywords[et]=konsool,terminal
+Keywords[eu]=konsole,kontsola,terminala
+Keywords[fa]=konsole، پیشانه، پایانه
+Keywords[fi]=konsole,konsoli,pääte-emulaattori,komento,komentoikkuna
+Keywords[ga]=konsole,consól,teirminéal
+Keywords[gl]=konsole,consola,terminal
+Keywords[he]=Konsole,Console,מסוף,טרמינל,terminal,יוניקס
+Keywords[hi]=कंसोल,कंसोल,टरà¥à¤®à¤¿à¤¨à¤²
+Keywords[hr]=konsole,console,terminal,konzola
+Keywords[hu]=Konsole,konzol,terminál
+Keywords[is]=skjáhermir
+Keywords[it]=konsole,console,terminale
+Keywords[ja]=konsole,コンソール,ターミナル
+Keywords[km]=កុងសូល,ស្ážáž¶áž“ីយ
+Keywords[lo]=ຄອນໂà»àºŠàº¥,ເທີມິນອລ
+Keywords[lt]=konsolÄ—,consolÄ—,terminalas
+Keywords[lv]=konsole,console,terminÄls
+Keywords[mk]=konsole,console,terminal,конзола,терминал
+Keywords[mn]=КонÑол,Console,Терминал
+Keywords[nb]=konsole,konsoll,terminal
+Keywords[nds]=Konsole,Konsool,Terminal
+Keywords[ne]=केनà¥à¤¸à¥‹à¤², कनà¥à¤¸à¥‹à¤², टरà¥à¤®à¤¿à¤¨à¤²
+Keywords[nn]=konsole,konsoll,terminal,kommandolinje
+Keywords[oc]=konsole,consola,terminal
+Keywords[pa]=konsole,ਕੰਨਸੋਲ,ਟਰਮੀਨਲ
+Keywords[pl]=konsole,konsola,terminal
+Keywords[pt]=konsole,consola,terminal
+Keywords[ro]=konsole,consolă,terminal
+Keywords[ru]=konsole,console,terminal,терминал
+Keywords[rw]=konsole,konsole,igihera
+Keywords[se]=konsolla,console,konsole,terminála,gohÄÄunlinnjá
+Keywords[sk]=konsole,konzola,terminál
+Keywords[sl]=konsole,konzola,terminal
+Keywords[sr]=konsole,console,terminal,терминал,конзола
+Keywords[sr@Latn]=konsole,console,terminal,terminal,konzola
+Keywords[sv]=konsoll,konsol,konsole,terminal
+Keywords[ta]=கானà¯à®šà¯‹à®²à¯,கானà¯à®šà¯‹à®²à¯,கடைசி
+Keywords[te]=కానà±à°¸à±Šà°²à±,కంసోలà±,టెరà±à°®à°¿à°¨à°²à±
+Keywords[th]=คอนโซล,เทอร์มินัล
+Keywords[tr]=konsole,işletmen uç birimi,uç birim
+Keywords[uk]=konsole,конÑоль,термінал
+Keywords[uz]=konsole,konsol,terminal
+Keywords[uz@cyrillic]=konsole,конÑол,терминал
+Keywords[vi]=konsole,thiết bị cuối,đầu cuối
+Keywords[wa]=konsole,conzôle,terminå
+Keywords[xh]=konsole,isakhelo esiqulathe ibhodi yezitshixo,isiphelo sendlela
+Keywords[zh_CN]=konsole,console,terminal,终端,控制å°
+Keywords[zh_TW]=konsole,console,terminal,主控å°,終端機
+Keywords[zu]=ikhonsoli,ikhonsoli,okwangaphandle
diff --git a/konsole/konsole-script.desktop b/konsole/konsole-script.desktop
new file mode 100644
index 000000000..a1513a286
--- /dev/null
+++ b/konsole/konsole-script.desktop
@@ -0,0 +1,128 @@
+[Desktop Entry]
+Type=Service
+Exec=konsole --script
+Icon=konsole
+DocPath=konsole/index.html
+Terminal=false
+X-KDE-StartupNotify=true
+
+Name=Konsole
+Name[ar]=طرÙية التحكم
+Name[az]=Konsol
+Name[be]=КанÑоль
+Name[bg]=Конзола
+Name[bn]=কনসোল
+Name[bs]=Konzola
+Name[ca]=Consola
+Name[csb]=Kònsola
+Name[el]=Κονσόλα
+Name[eo]=Konzolo
+Name[et]=Konsool
+Name[eu]=Kontsola
+Name[he]=מסוף
+Name[hi]=कंसोल
+Name[hr]=Konzola
+Name[is]=Skjáhermir
+Name[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Name[lo]=ຄອນໂຊລ - K
+Name[mk]=Конзола
+Name[mn]=КонÑол
+Name[nb]=Konsoll
+Name[ne]=कनà¥à¤¸à¥‹à¤²
+Name[nn]=Konsoll
+Name[pa]=ਕੰਨਸੋਲ
+Name[pl]=Konsola
+Name[ro]=Consolă
+Name[se]=Konsolla
+Name[sk]=Konzola
+Name[sl]=Konzola
+Name[ta]=கானà¯à®šà¯‹à®²à¯
+Name[te]=కానà±à°¸à±‹à°²à±
+Name[tg]=КонÑол
+Name[th]=คอนโซล K
+Name[zu]=Ikhonsoli
+
+GenericName=Terminal Program
+GenericName[af]=Terminaal Program
+GenericName[ar]=برنامج مطراÙ
+GenericName[az]=Terminal Proqramı
+GenericName[be]=ТÑрмінал
+GenericName[bg]=Терминална програма
+GenericName[bn]=টারà§à¦®à¦¿à¦¨à¦¾à¦² পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®
+GenericName[br]=Goulev termenell
+GenericName[bs]=Terminalni program
+GenericName[ca]=Programa de terminal
+GenericName[cs]=Terminálový program
+GenericName[csb]=Programa terminala
+GenericName[cy]=Rhaglen Terfynell
+GenericName[da]=Terminalprogram
+GenericName[de]=Terminalprogramm
+GenericName[el]=ΠÏόγÏαμμα τεÏματικοÏ
+GenericName[eo]=Terminalimitaĵo
+GenericName[es]=Programa de terminal
+GenericName[et]=Terminaliemulaator
+GenericName[eu]=Terminal programa
+GenericName[fa]=برنامۀ پایانه
+GenericName[fi]=Komentoikkunaohjelma
+GenericName[fr]=Terminal
+GenericName[fy]=Terminalprogramma
+GenericName[ga]=Clár Teirminéil
+GenericName[gl]=Programa de Terminal
+GenericName[he]=תוכנית מסוף
+GenericName[hi]=टरà¥à¤®à¤¿à¤¨à¤² पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤®
+GenericName[hr]=Terminalski program
+GenericName[hu]=Parancsértelmező
+GenericName[id]=Program Terminal
+GenericName[is]=Skjáhermir
+GenericName[it]=Programma terminale
+GenericName[ja]=ターミナルプログラム
+GenericName[ka]=პრáƒáƒ’რáƒáƒ›áƒ ტერმინáƒáƒšáƒ˜áƒ¡áƒ—ვის
+GenericName[kk]=Терминал бағдарламаÑÑ‹
+GenericName[km]=កម្មវិធី​ស្ážáž¶áž“ីយ
+GenericName[ko]=í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨
+GenericName[lo]=ອັບພລິàºà»€àº„ເຊິນ ເທີມີນອນ
+GenericName[lt]=Terminalo programa
+GenericName[lv]=TerminÄla Programma
+GenericName[mk]=ТерминалÑка програма
+GenericName[mn]=Терминал-Програм
+GenericName[ms]=Program Terminal
+GenericName[mt]=Programm ta' terminal
+GenericName[nb]=Terminalprogram
+GenericName[nds]=Terminal-Programm
+GenericName[ne]=टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤®
+GenericName[nl]=Terminalprogramma
+GenericName[nn]=Terminalprogram
+GenericName[nso]=Lenaneo la Terminal
+GenericName[pa]=ਟਰਮੀਨਲ ਪਰੋਗਰਾਮ
+GenericName[pl]=Program terminala
+GenericName[pt]=Programa de Terminal
+GenericName[pt_BR]=Terminal
+GenericName[ro]=Program terminal
+GenericName[ru]=Терминал
+GenericName[rw]=Porogaramu Umukiriya
+GenericName[se]=Terminálaprográmma
+GenericName[sk]=Terminál
+GenericName[sl]=Terminalski program
+GenericName[sr]=ТерминалÑки програм
+GenericName[sr@Latn]=Terminalski program
+GenericName[ss]=Luhlelo lwesikhungo
+GenericName[sv]=Terminalprogram
+GenericName[ta]=கடைசி நிரலி
+GenericName[te]=టెరà±à°®à°¿à°¨à°²à± కారà±à°¯à°•à±à°°à°®à°‚
+GenericName[tg]=Барномаи поёна
+GenericName[th]=โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัล
+GenericName[tr]=Terminal Programı
+GenericName[tt]=Terminal Yazılımı
+GenericName[uk]=Програма терміналу
+GenericName[uz]=Terminal dasturi
+GenericName[uz@cyrillic]=Терминал даÑтури
+GenericName[ven]=Mbekanyamushumo ya Mafhedziselo
+GenericName[vi]=Trình đầu cuối
+GenericName[wa]=Programe di terminå
+GenericName[xh]=Inkqubo Yesixhobo sangaphandle sekhompyutha
+GenericName[zh_CN]=终端程åº
+GenericName[zh_TW]=終端機程å¼
+GenericName[zu]=Uhlelo lwemisebenzi lwangaohandle
+X-DCOP-ServiceType=Multi
+X-KDE-AuthorizeAction=shell_access
+Categories=Qt;KDE;System;TerminalEmulator;
diff --git a/konsole/konsole.desktop b/konsole/konsole.desktop
new file mode 100644
index 000000000..63cbc2d9d
--- /dev/null
+++ b/konsole/konsole.desktop
@@ -0,0 +1,128 @@
+[Desktop Entry]
+Type=Application
+Exec=konsole
+Icon=konsole
+DocPath=konsole/index.html
+Terminal=false
+X-KDE-StartupNotify=true
+
+Name=Konsole
+Name[ar]=طرÙية التحكم
+Name[az]=Konsol
+Name[be]=КанÑоль
+Name[bg]=Конзола
+Name[bn]=কনসোল
+Name[bs]=Konzola
+Name[ca]=Consola
+Name[csb]=Kònsola
+Name[el]=Κονσόλα
+Name[eo]=Konzolo
+Name[et]=Konsool
+Name[eu]=Kontsola
+Name[he]=מסוף
+Name[hi]=कंसोल
+Name[hr]=Konzola
+Name[is]=Skjáhermir
+Name[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Name[lo]=ຄອນໂຊລ - K
+Name[mk]=Конзола
+Name[mn]=КонÑол
+Name[nb]=Konsoll
+Name[ne]=कनà¥à¤¸à¥‹à¤²
+Name[nn]=Konsoll
+Name[pa]=ਕੰਨਸੋਲ
+Name[pl]=Konsola
+Name[ro]=Consolă
+Name[se]=Konsolla
+Name[sk]=Konzola
+Name[sl]=Konzola
+Name[ta]=கானà¯à®šà¯‹à®²à¯
+Name[te]=కానà±à°¸à±‹à°²à±
+Name[tg]=КонÑол
+Name[th]=คอนโซล K
+Name[zu]=Ikhonsoli
+
+GenericName=Terminal Program
+GenericName[af]=Terminaal Program
+GenericName[ar]=برنامج مطراÙ
+GenericName[az]=Terminal Proqramı
+GenericName[be]=ТÑрмінал
+GenericName[bg]=Терминална програма
+GenericName[bn]=টারà§à¦®à¦¿à¦¨à¦¾à¦² পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®
+GenericName[br]=Goulev termenell
+GenericName[bs]=Terminalni program
+GenericName[ca]=Programa de terminal
+GenericName[cs]=Terminálový program
+GenericName[csb]=Programa terminala
+GenericName[cy]=Rhaglen Terfynell
+GenericName[da]=Terminalprogram
+GenericName[de]=Terminalprogramm
+GenericName[el]=ΠÏόγÏαμμα τεÏματικοÏ
+GenericName[eo]=Terminalimitaĵo
+GenericName[es]=Programa de terminal
+GenericName[et]=Terminaliemulaator
+GenericName[eu]=Terminal programa
+GenericName[fa]=برنامۀ پایانه
+GenericName[fi]=Komentoikkunaohjelma
+GenericName[fr]=Terminal
+GenericName[fy]=Terminalprogramma
+GenericName[ga]=Clár Teirminéil
+GenericName[gl]=Programa de Terminal
+GenericName[he]=תוכנית מסוף
+GenericName[hi]=टरà¥à¤®à¤¿à¤¨à¤² पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤®
+GenericName[hr]=Terminalski program
+GenericName[hu]=Parancsértelmező
+GenericName[id]=Program Terminal
+GenericName[is]=Skjáhermir
+GenericName[it]=Programma terminale
+GenericName[ja]=ターミナルプログラム
+GenericName[ka]=პრáƒáƒ’რáƒáƒ›áƒ ტერმინáƒáƒšáƒ˜áƒ¡áƒ—ვის
+GenericName[kk]=Терминал бағдарламаÑÑ‹
+GenericName[km]=កម្មវិធី​ស្ážáž¶áž“ីយ
+GenericName[ko]=í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨
+GenericName[lo]=ອັບພລິàºà»€àº„ເຊິນ ເທີມີນອນ
+GenericName[lt]=Terminalo programa
+GenericName[lv]=TerminÄla Programma
+GenericName[mk]=ТерминалÑка програма
+GenericName[mn]=Терминал-Програм
+GenericName[ms]=Program Terminal
+GenericName[mt]=Programm ta' terminal
+GenericName[nb]=Terminalprogram
+GenericName[nds]=Terminal-Programm
+GenericName[ne]=टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤®
+GenericName[nl]=Terminalprogramma
+GenericName[nn]=Terminalprogram
+GenericName[nso]=Lenaneo la Terminal
+GenericName[pa]=ਟਰਮੀਨਲ ਪਰੋਗਰਾਮ
+GenericName[pl]=Program terminala
+GenericName[pt]=Programa de Terminal
+GenericName[pt_BR]=Terminal
+GenericName[ro]=Program terminal
+GenericName[ru]=Терминал
+GenericName[rw]=Porogaramu Umukiriya
+GenericName[se]=Terminálaprográmma
+GenericName[sk]=Terminál
+GenericName[sl]=Terminalski program
+GenericName[sr]=ТерминалÑки програм
+GenericName[sr@Latn]=Terminalski program
+GenericName[ss]=Luhlelo lwesikhungo
+GenericName[sv]=Terminalprogram
+GenericName[ta]=கடைசி நிரலி
+GenericName[te]=టెరà±à°®à°¿à°¨à°²à± కారà±à°¯à°•à±à°°à°®à°‚
+GenericName[tg]=Барномаи поёна
+GenericName[th]=โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัล
+GenericName[tr]=Terminal Programı
+GenericName[tt]=Terminal Yazılımı
+GenericName[uk]=Програма терміналу
+GenericName[uz]=Terminal dasturi
+GenericName[uz@cyrillic]=Терминал даÑтури
+GenericName[ven]=Mbekanyamushumo ya Mafhedziselo
+GenericName[vi]=Trình đầu cuối
+GenericName[wa]=Programe di terminå
+GenericName[xh]=Inkqubo Yesixhobo sangaphandle sekhompyutha
+GenericName[zh_CN]=终端程åº
+GenericName[zh_TW]=終端機程å¼
+GenericName[zu]=Uhlelo lwemisebenzi lwangaohandle
+X-DCOP-ServiceType=Multi
+X-KDE-AuthorizeAction=shell_access
+Categories=Qt;KDE;System;TerminalEmulator;
diff --git a/konsole/konsole.upd b/konsole/konsole.upd
new file mode 100644
index 000000000..0a30e3219
--- /dev/null
+++ b/konsole/konsole.upd
@@ -0,0 +1,13 @@
+# Hello world
+Id=kde2.2/r1
+File=konsolerc
+Group=options,Desktop Entry
+Key=has frame
+Key=schema
+Key=defaultfont
+Key=MenuBar
+Key=scrollbar
+Id=kde3.0/r1
+File=konsolerc
+Options=overwrite
+Script=schemaStrip.pl,perl
diff --git a/konsole/konsole/BlockArray.cpp b/konsole/konsole/BlockArray.cpp
new file mode 100644
index 000000000..5a978bc5e
--- /dev/null
+++ b/konsole/konsole/BlockArray.cpp
@@ -0,0 +1,327 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 2000 by Stephan Kulow <coolo@kde.org>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#include "BlockArray.h"
+#include <assert.h>
+#include <sys/mman.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <kdebug.h>
+
+static int blocksize = 0;
+
+BlockArray::BlockArray()
+ : size(0),
+ current(size_t(-1)),
+ index(size_t(-1)),
+ lastmap(0),
+ lastmap_index(size_t(-1)),
+ lastblock(0), ion(-1),
+ length(0)
+{
+ // lastmap_index = index = current = size_t(-1);
+ if (blocksize == 0)
+ blocksize = ((sizeof(Block) / getpagesize()) + 1) * getpagesize();
+
+}
+
+BlockArray::~BlockArray()
+{
+ setHistorySize(0);
+ assert(!lastblock);
+}
+
+size_t BlockArray::append(Block *block)
+{
+ if (!size)
+ return size_t(-1);
+
+ ++current;
+ if (current >= size) current = 0;
+
+ int rc;
+ rc = lseek(ion, current * blocksize, SEEK_SET); if (rc < 0) { perror("HistoryBuffer::add.seek"); setHistorySize(0); return size_t(-1); }
+ rc = write(ion, block, blocksize); if (rc < 0) { perror("HistoryBuffer::add.write"); setHistorySize(0); return size_t(-1); }
+
+ length++;
+ if (length > size) length = size;
+
+ ++index;
+
+ delete block;
+ return current;
+}
+
+size_t BlockArray::newBlock()
+{
+ if (!size)
+ return size_t(-1);
+ append(lastblock);
+
+ lastblock = new Block();
+ return index + 1;
+}
+
+Block *BlockArray::lastBlock() const
+{
+ return lastblock;
+}
+
+bool BlockArray::has(size_t i) const
+{
+ if (i == index + 1)
+ return true;
+
+ if (i > index)
+ return false;
+ if (index - i >= length)
+ return false;
+ return true;
+}
+
+const Block* BlockArray::at(size_t i)
+{
+ if (i == index + 1)
+ return lastblock;
+
+ if (i == lastmap_index)
+ return lastmap;
+
+ if (i > index) {
+ kdDebug(1211) << "BlockArray::at() i > index\n";
+ return 0;
+ }
+
+// if (index - i >= length) {
+// kdDebug(1211) << "BlockArray::at() index - i >= length\n";
+// return 0;
+// }
+
+ size_t j = i; // (current - (index - i) + (index/size+1)*size) % size ;
+
+ assert(j < size);
+ unmap();
+
+ Block *block = (Block*)mmap(0, blocksize, PROT_READ, MAP_PRIVATE, ion, j * blocksize);
+
+ if (block == (Block*)-1) { perror("mmap"); return 0; }
+
+ lastmap = block;
+ lastmap_index = i;
+
+ return block;
+}
+
+void BlockArray::unmap()
+{
+ if (lastmap) {
+ int res = munmap((char*)lastmap, blocksize);
+ if (res < 0) perror("munmap");
+ }
+ lastmap = 0;
+ lastmap_index = size_t(-1);
+}
+
+bool BlockArray::setSize(size_t newsize)
+{
+ return setHistorySize(newsize * 1024 / blocksize);
+}
+
+bool BlockArray::setHistorySize(size_t newsize)
+{
+// kdDebug(1211) << "setHistorySize " << size << " " << newsize << endl;
+
+ if (size == newsize)
+ return false;
+
+ unmap();
+
+ if (!newsize) {
+ delete lastblock;
+ lastblock = 0;
+ if (ion >= 0) close(ion);
+ ion = -1;
+ current = size_t(-1);
+ return true;
+ }
+
+ if (!size) {
+ FILE* tmp = tmpfile();
+ if (!tmp) {
+ perror("konsole: cannot open temp file.\n");
+ } else {
+ ion = dup(fileno(tmp));
+ if (ion<0) {
+ perror("konsole: cannot dup temp file.\n");
+ fclose(tmp);
+ }
+ }
+ if (ion < 0)
+ return false;
+
+ assert(!lastblock);
+
+ lastblock = new Block();
+ size = newsize;
+ return false;
+ }
+
+ if (newsize > size) {
+ increaseBuffer();
+ size = newsize;
+ return false;
+ } else {
+ decreaseBuffer(newsize);
+ ftruncate(ion, length*blocksize);
+ size = newsize;
+
+ return true;
+ }
+}
+
+void moveBlock(FILE *fion, int cursor, int newpos, char *buffer2)
+{
+ int res = fseek(fion, cursor * blocksize, SEEK_SET);
+ if (res)
+ perror("fseek");
+ res = fread(buffer2, blocksize, 1, fion);
+ if (res != 1)
+ perror("fread");
+
+ res = fseek(fion, newpos * blocksize, SEEK_SET);
+ if (res)
+ perror("fseek");
+ res = fwrite(buffer2, blocksize, 1, fion);
+ if (res != 1)
+ perror("fwrite");
+ // printf("moving block %d to %d\n", cursor, newpos);
+}
+
+void BlockArray::decreaseBuffer(size_t newsize)
+{
+ if (index < newsize) // still fits in whole
+ return;
+
+ int offset = (current - (newsize - 1) + size) % size;
+
+ if (!offset)
+ return;
+
+ // The Block constructor could do somthing in future...
+ char *buffer1 = new char[blocksize];
+
+ FILE *fion = fdopen(dup(ion), "w+b");
+ if (!fion) {
+ delete [] buffer1;
+ perror("fdopen/dup");
+ return;
+ }
+
+ int firstblock;
+ if (current <= newsize) {
+ firstblock = current + 1;
+ } else {
+ firstblock = 0;
+ }
+
+ size_t oldpos;
+ for (size_t i = 0, cursor=firstblock; i < newsize; i++) {
+ oldpos = (size + cursor + offset) % size;
+ moveBlock(fion, oldpos, cursor, buffer1);
+ if (oldpos < newsize) {
+ cursor = oldpos;
+ } else
+ cursor++;
+ }
+
+ current = newsize - 1;
+ length = newsize;
+
+ delete [] buffer1;
+
+ fclose(fion);
+
+}
+
+void BlockArray::increaseBuffer()
+{
+ if (index < size) // not even wrapped once
+ return;
+
+ int offset = (current + size + 1) % size;
+ if (!offset) // no moving needed
+ return;
+
+ // The Block constructor could do somthing in future...
+ char *buffer1 = new char[blocksize];
+ char *buffer2 = new char[blocksize];
+
+ int runs = 1;
+ int bpr = size; // blocks per run
+
+ if (size % offset == 0) {
+ bpr = size / offset;
+ runs = offset;
+ }
+
+ FILE *fion = fdopen(dup(ion), "w+b");
+ if (!fion) {
+ perror("fdopen/dup");
+ delete [] buffer1;
+ delete [] buffer2;
+ return;
+ }
+
+ int res;
+ for (int i = 0; i < runs; i++)
+ {
+ // free one block in chain
+ int firstblock = (offset + i) % size;
+ res = fseek(fion, firstblock * blocksize, SEEK_SET);
+ if (res)
+ perror("fseek");
+ res = fread(buffer1, blocksize, 1, fion);
+ if (res != 1)
+ perror("fread");
+ int newpos = 0;
+ for (int j = 1, cursor=firstblock; j < bpr; j++)
+ {
+ cursor = (cursor + offset) % size;
+ newpos = (cursor - offset + size) % size;
+ moveBlock(fion, cursor, newpos, buffer2);
+ }
+ res = fseek(fion, i * blocksize, SEEK_SET);
+ if (res)
+ perror("fseek");
+ res = fwrite(buffer1, blocksize, 1, fion);
+ if (res != 1)
+ perror("fwrite");
+ }
+ current = size - 1;
+ length = size;
+
+ delete [] buffer1;
+ delete [] buffer2;
+
+ fclose(fion);
+
+}
+
diff --git a/konsole/konsole/BlockArray.h b/konsole/konsole/BlockArray.h
new file mode 100644
index 000000000..3b977babb
--- /dev/null
+++ b/konsole/konsole/BlockArray.h
@@ -0,0 +1,119 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 2000 by Stephan Kulow <coolo@kde.org>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef BLOCKARRAY_H
+#define BLOCKARRAY_H
+
+#include <unistd.h>
+
+//#error Dont use in KDE 2.1
+
+#define BlockSize (1 << 12)
+#define ENTRIES ((BlockSize - sizeof(size_t) ) / sizeof(unsigned char))
+
+struct Block {
+ Block() { size = 0; }
+ unsigned char data[ENTRIES];
+ size_t size;
+};
+
+// ///////////////////////////////////////////////////////
+
+class BlockArray {
+public:
+ /**
+ * Creates a history file for holding
+ * maximal size blocks. If more blocks
+ * are requested, then it drops earlier
+ * added ones.
+ */
+ BlockArray();
+
+ /// destructor
+ ~BlockArray();
+
+ /**
+ * adds the Block at the end of history.
+ * This may drop other blocks.
+ *
+ * The ownership on the block is transfered.
+ * An unique index number is returned for accessing
+ * it later (if not yet droped then)
+ *
+ * Note, that the block may be dropped completely
+ * if history is turned off.
+ */
+ size_t append(Block *block);
+
+ /**
+ * gets the block at the index. Function may return
+ * 0 if the block isn't available any more.
+ *
+ * The returned block is strictly readonly as only
+ * maped in memory - and will be invalid on the next
+ * operation on this class.
+ */
+ const Block *at(size_t index);
+
+ /**
+ * reorders blocks as needed. If newsize is null,
+ * the history is emptied completely. The indices
+ * returned on append won't change their semantic,
+ * but they may not be valid after this call.
+ */
+ bool setHistorySize(size_t newsize);
+
+ size_t newBlock();
+
+ Block *lastBlock() const;
+
+ /**
+ * Convenient function to set the size in KBytes
+ * instead of blocks
+ */
+ bool setSize(size_t newsize);
+
+ size_t len() const { return length; }
+
+ bool has(size_t index) const;
+
+ size_t getCurrent() const { return current; }
+
+private:
+ void unmap();
+ void increaseBuffer();
+ void decreaseBuffer(size_t newsize);
+
+ size_t size;
+ // current always shows to the last inserted block
+ size_t current;
+ size_t index;
+
+ Block *lastmap;
+ size_t lastmap_index;
+ Block *lastblock;
+
+ int ion;
+ size_t length;
+
+};
+
+
+#endif
diff --git a/konsole/konsole/MakeDefaults b/konsole/konsole/MakeDefaults
new file mode 100755
index 000000000..1026e374f
--- /dev/null
+++ b/konsole/konsole/MakeDefaults
@@ -0,0 +1,7 @@
+#!/bin/sh
+# [MakeDefaults] Quote default configuration files
+
+# TODO. We should convert both schema and sessions
+# to the method demonstrated for keytrans.
+
+../tests/quote ../other/README.default.Keytab > default.keytab.h
diff --git a/konsole/konsole/Makefile.am b/konsole/konsole/Makefile.am
new file mode 100644
index 000000000..5b4876384
--- /dev/null
+++ b/konsole/konsole/Makefile.am
@@ -0,0 +1,80 @@
+# This file is part of Konsole - an X terminal for KDE
+
+# set the include path for X, qt and KDE
+INCLUDES = -I. $(all_includes)
+
+# you can add here more. This one gets installed
+# bin_PROGRAMS = kcmkonsole
+bin_PROGRAMS =
+noinst_PROGRAMS = fontembedder
+lib_LTLIBRARIES =
+kdeinit_LTLIBRARIES = konsole.la
+kde_module_LTLIBRARIES = libkonsolepart.la kded_kwrited.la
+
+libkonsolepart_la_SOURCES = TEPty.cpp BlockArray.cpp konsole_part.cpp \
+ schema.cpp \
+ session.cpp \
+ zmodem_dialog.cpp \
+ TEWidget.cpp \
+ TEmuVt102.cpp \
+ TEScreen.cpp konsole_wcwidth.cpp \
+ TEmulation.cpp \
+ TEHistory.cpp \
+ keytrans.cpp \
+ konsoleiface.skel \
+ sessioniface.skel
+
+libkonsolepart_la_LDFLAGS = $(KDE_PLUGIN) $(all_libraries)
+libkonsolepart_la_LIBADD = $(XTESTLIB) $(LIB_KPARTS)
+
+fontembedder_SOURCES = fontembedder.cpp
+fontembedder_LDFLAGS = $(all_libraries)
+fontembedder_LDADD = $(LIB_QT)
+
+# kwrited kded module
+kded_kwrited_la_SOURCES = kwrited.cpp TEPty.cpp kwrited.skel
+kded_kwrited_la_LIBADD = $(LIB_KDECORE)
+kded_kwrited_la_LDFLAGS = $(all_libraries) -module -avoid-version
+
+# konsole kdeinit module
+konsole_la_SOURCES = TEPty.cpp BlockArray.cpp main.cpp konsole.cpp schema.cpp session.cpp TEWidget.cpp TEmuVt102.cpp \
+ TEScreen.cpp TEmulation.cpp TEHistory.cpp keytrans.cpp konsoleiface.skel sessioniface.skel \
+ konsole_wcwidth.cpp konsolebookmarkhandler.cpp konsolebookmarkmenu.cpp \
+ zmodem_dialog.cpp printsettings.cpp
+konsole_la_LDFLAGS = $(all_libraries) -module -avoid-version
+konsole_la_LIBADD = $(LIB_KDEUI) $(LIB_KIO) $(LIB_KDEPRINT) $(LIBUTIL) $(XTESTLIB) $(LIB_XRENDER)
+
+# kcmkonsole_SOURCES = kcmkonsole.cpp schema.cpp
+# kcmkonsole_LDADD = $(LIB_KDEUI)
+# kcmkonsole_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+
+noinst_HEADERS = TEWidget.h TEPty.h TEmulation.h TEmuVt102.h \
+ TECommon.h TEScreen.h konsole.h schema.h session.h konsole_wcwidth.h \
+ kwrited.h TEHistory.h keytrans.h default.keytab.h BlockArray.h \
+ konsolebookmarkhandler.h konsolebookmarkmenu.h zmodem_dialog.h \
+ printsettings.h linefont.h
+
+METASOURCES = AUTO
+
+messages: rc.cpp
+ rm -f schemas.cpp
+ rm -f tips.cpp
+ (cd .. && $(PREPARETIPS) > konsole/tips.cpp)
+ for i in ../other/*.schema; do \
+ grep "^title" $$i | cut -d':' -f2- | sed -e 's#^title \(.*\)$$#i18n(\"\1\")#' >> schemas.cpp ;\
+ done
+ for i in ../other/*.Keytab ../other/*.keytab; do \
+ grep "^keyboard" $$i | sed -e 's#^keyboard \"\(.*\)\"$$#i18n(\"\1\")#' >> schemas.cpp ;\
+ done
+ $(XGETTEXT) *.cpp -o $(podir)/konsole.pot
+ rm -f schemas.cpp
+ rm -f tips.cpp
+
+# setting up x-application/konsole as a special mimetype
+mimedir = $(kde_mimedir)/application
+mime_DATA = x-konsole.desktop
+
+EXTRA_DIST = $(mime_DATA)
+
+fonts: fontembedder
+ ./fontembedder $(srcdir)/linefont.src > linefont.h
diff --git a/konsole/konsole/TECommon.h b/konsole/konsole/TECommon.h
new file mode 100644
index 000000000..c541fe0f1
--- /dev/null
+++ b/konsole/konsole/TECommon.h
@@ -0,0 +1,234 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*! \file TECommon.h
+ \brief Definitions shared between TEScreen and TEWidget.
+*/
+
+#ifndef TECOMMON_H
+#define TECOMMON_H
+
+#include <qcolor.h>
+
+#ifndef UINT8
+typedef unsigned char UINT8;
+#endif
+
+#ifndef UINT16
+typedef unsigned short UINT16;
+#endif
+
+// Color Table Elements ///////////////////////////////////////////////
+
+/*!
+*/
+struct ColorEntry
+{
+ ColorEntry(QColor c, bool tr, bool b) : color(c), transparent(tr), bold(b) {}
+ ColorEntry() : transparent(false), bold(false) {} // default constructors
+ void operator=(const ColorEntry& rhs) {
+ color = rhs.color;
+ transparent = rhs.transparent;
+ bold = rhs.bold;
+ }
+ QColor color;
+ bool transparent; // if used on bg
+ bool bold; // if used on fg
+};
+
+// Attributed Character Representations ///////////////////////////////
+
+// Colors
+
+#define BASE_COLORS (2+8)
+#define INTENSITIES 2
+#define TABLE_COLORS (INTENSITIES*BASE_COLORS)
+
+#define DEFAULT_FORE_COLOR 0
+#define DEFAULT_BACK_COLOR 1
+
+#define DEFAULT_RENDITION 0
+#define RE_BOLD (1 << 0)
+#define RE_BLINK (1 << 1)
+#define RE_UNDERLINE (1 << 2)
+#define RE_REVERSE (1 << 3) // Screen only
+#define RE_INTENSIVE (1 << 3) // Widget only
+#define RE_CURSOR (1 << 4)
+
+
+/* cacol is a union of the various color spaces.
+
+ Assignment is as follows:
+
+ Type - Space - Values
+
+ 0 - Undefined - u: 0, v:0 w:0
+ 1 - Default - u: 0..1 v:intense w:0
+ 2 - System - u: 0..7 v:intense w:0
+ 3 - Index(256) - u: 16..255 v:0 w:0
+ 4 - RGB - u: 0..255 v:0..256 w:0..256
+
+ Default colour space has two separate colours, namely
+ default foreground and default background colour.
+*/
+
+#define CO_UND 0
+#define CO_DFT 1
+#define CO_SYS 2
+#define CO_256 3
+#define CO_RGB 4
+
+class cacol
+{
+public:
+ cacol();
+ cacol(UINT8 space, int color);
+ UINT8 t; // color space indicator
+ UINT8 u; // various bytes representing the data in the respective ...
+ UINT8 v; // ... color space. C++ does not do unions, so we cannot ...
+ UINT8 w; // ... express ourselfs here, properly.
+ void toggleIntensive(); // Hack or helper?
+ QColor color(const ColorEntry* base) const;
+ friend bool operator == (cacol a, cacol b);
+ friend bool operator != (cacol a, cacol b);
+};
+
+#if 0
+inline cacol::cacol(UINT8 _t, UINT8 _u, UINT8 _v, UINT8 _w)
+: t(_t), u(_u), v(_v), w(_w)
+{
+}
+#else
+inline cacol::cacol(UINT8 ty, int co)
+: t(ty), u(0), v(0), w(0)
+{
+ switch (t)
+ {
+ case CO_UND: break;
+ case CO_DFT: u = co& 1; break;
+ case CO_SYS: u = co& 7; v = (co>>3)&1; break;
+ case CO_256: u = co&255; break;
+ case CO_RGB: u = co>>16; v = co>>8; w = co; break;
+ default : t = 0; break;
+ }
+}
+#endif
+
+inline cacol::cacol() // undefined, really
+: t(CO_UND), u(0), v(0), w(0)
+{
+}
+
+inline bool operator == (cacol a, cacol b)
+{
+ return a.t == b.t && a.u == b.u && a.v == b.v && a.w == b.w;
+}
+
+inline bool operator != (cacol a, cacol b)
+{
+ return a.t != b.t || a.u != b.u || a.v != b.v || a.w != b.w;
+}
+
+inline const QColor color256(UINT8 u, const ColorEntry* base)
+{
+ // 0.. 16: system colors
+ if (u < 8) return base[u+2 ].color; u -= 8;
+ if (u < 8) return base[u+2+BASE_COLORS].color; u -= 8;
+
+ // 16..231: 6x6x6 rgb color cube
+ if (u < 216) return QColor(255*((u/36)%6)/5,
+ 255*((u/ 6)%6)/5,
+ 255*((u/ 1)%6)/5); u -= 216;
+
+ // 232..255: gray, leaving out black and white
+ int gray = u*10+8; return QColor(gray,gray,gray);
+}
+
+inline QColor cacol::color(const ColorEntry* base) const
+{
+ switch (t)
+ {
+ case CO_DFT: return base[u+0+(v?BASE_COLORS:0)].color;
+ case CO_SYS: return base[u+2+(v?BASE_COLORS:0)].color;
+ case CO_256: return color256(u,base);
+ case CO_RGB: return QColor(u,v,w);
+ default : return QColor(255,0,0); // diagnostic catch all
+ }
+}
+
+inline void cacol::toggleIntensive()
+{
+ if (t == CO_SYS || t == CO_DFT)
+ {
+ v = !v;
+ }
+}
+
+/*! \class ca
+ * \brief a character with rendition attributes.
+*/
+
+class ca
+{
+public:
+ inline ca(UINT16 _c = ' ',
+ cacol _f = cacol(CO_DFT,DEFAULT_FORE_COLOR),
+ cacol _b = cacol(CO_DFT,DEFAULT_BACK_COLOR),
+ UINT8 _r = DEFAULT_RENDITION)
+ : c(_c), r(_r), f(_f), b(_b) {}
+public:
+ UINT16 c; // character
+ UINT8 r; // rendition
+ cacol f; // foreground color
+ cacol b; // background color
+public:
+ //FIXME: following a hack to cope with various color spaces
+ // it brings the rendition pipeline further out of balance,
+ // which it was anyway as the result of various additions.
+ bool isTransparent(const ColorEntry* base) const;
+ bool isBold(const ColorEntry* base) const;
+public:
+ friend bool operator == (ca a, ca b);
+ friend bool operator != (ca a, ca b);
+};
+
+inline bool operator == (ca a, ca b)
+{
+ return a.c == b.c && a.f == b.f && a.b == b.b && a.r == b.r;
+}
+
+inline bool operator != (ca a, ca b)
+{
+ return a.c != b.c || a.f != b.f || a.b != b.b || a.r != b.r;
+}
+
+inline bool ca::isTransparent(const ColorEntry* base) const
+{
+ return (b.t == CO_DFT) && base[b.u+0+(b.v?BASE_COLORS:0)].transparent
+ || (b.t == CO_SYS) && base[b.u+2+(b.v?BASE_COLORS:0)].transparent;
+}
+
+inline bool ca::isBold(const ColorEntry* base) const
+{
+ return (f.t == CO_DFT) && base[f.u+0+(f.v?BASE_COLORS:0)].bold
+ || (f.t == CO_SYS) && base[f.u+2+(f.v?BASE_COLORS:0)].bold;
+}
+
+#endif // TECOMMON_H
diff --git a/konsole/konsole/TEHistory.cpp b/konsole/konsole/TEHistory.cpp
new file mode 100644
index 000000000..5a0ee5477
--- /dev/null
+++ b/konsole/konsole/TEHistory.cpp
@@ -0,0 +1,626 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#include <iostream>
+#include "TEHistory.h"
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
+#include <kdebug.h>
+
+// Reasonable line size
+#define LINE_SIZE 1024
+
+/*
+ An arbitrary long scroll.
+
+ One can modify the scroll only by adding either cells
+ or newlines, but access it randomly.
+
+ The model is that of an arbitrary wide typewriter scroll
+ in that the scroll is a serie of lines and each line is
+ a serie of cells with no overwriting permitted.
+
+ The implementation provides arbitrary length and numbers
+ of cells and line/column indexed read access to the scroll
+ at constant costs.
+
+FIXME: some complain about the history buffer comsuming the
+ memory of their machines. This problem is critical
+ since the history does not behave gracefully in cases
+ where the memory is used up completely.
+
+ I put in a workaround that should handle it problem
+ now gracefully. I'm not satisfied with the solution.
+
+FIXME: Terminating the history is not properly indicated
+ in the menu. We should throw a signal.
+
+FIXME: There is noticeable decrease in speed, also. Perhaps,
+ there whole feature needs to be revisited therefore.
+ Disadvantage of a more elaborated, say block-oriented
+ scheme with wrap around would be it's complexity.
+*/
+
+//FIXME: tempory replacement for tmpfile
+// this is here one for debugging purpose.
+
+//#define tmpfile xTmpFile
+
+// History File ///////////////////////////////////////////
+
+/*
+ A Row(X) data type which allows adding elements to the end.
+*/
+
+HistoryFile::HistoryFile()
+ : ion(-1),
+ length(0)
+{
+ if (tmpFile.status() == 0)
+ {
+ tmpFile.unlink();
+ ion = tmpFile.handle();
+ }
+}
+
+HistoryFile::~HistoryFile()
+{
+}
+
+void HistoryFile::add(const unsigned char* bytes, int len)
+{
+ int rc = 0;
+
+ rc = lseek(ion,length,SEEK_SET); if (rc < 0) { perror("HistoryFile::add.seek"); return; }
+ rc = write(ion,bytes,len); if (rc < 0) { perror("HistoryFile::add.write"); return; }
+ length += rc;
+}
+
+void HistoryFile::get(unsigned char* bytes, int len, int loc)
+{
+ int rc = 0;
+
+ if (loc < 0 || len < 0 || loc + len > length)
+ fprintf(stderr,"getHist(...,%d,%d): invalid args.\n",len,loc);
+ rc = lseek(ion,loc,SEEK_SET); if (rc < 0) { perror("HistoryFile::get.seek"); return; }
+ rc = read(ion,bytes,len); if (rc < 0) { perror("HistoryFile::get.read"); return; }
+}
+
+int HistoryFile::len()
+{
+ return length;
+}
+
+
+// History Scroll abstract base class //////////////////////////////////////
+
+
+HistoryScroll::HistoryScroll(HistoryType* t)
+ : m_histType(t)
+{
+}
+
+HistoryScroll::~HistoryScroll()
+{
+ delete m_histType;
+}
+
+bool HistoryScroll::hasScroll()
+{
+ return true;
+}
+
+// History Scroll File //////////////////////////////////////
+
+/*
+ The history scroll makes a Row(Row(Cell)) from
+ two history buffers. The index buffer contains
+ start of line positions which refere to the cells
+ buffer.
+
+ Note that index[0] addresses the second line
+ (line #1), while the first line (line #0) starts
+ at 0 in cells.
+*/
+
+HistoryScrollFile::HistoryScrollFile(const QString &logFileName)
+ : HistoryScroll(new HistoryTypeFile(logFileName)),
+ m_logFileName(logFileName)
+{
+}
+
+HistoryScrollFile::~HistoryScrollFile()
+{
+}
+
+int HistoryScrollFile::getLines()
+{
+ return index.len() / sizeof(int);
+}
+
+int HistoryScrollFile::getLineLen(int lineno)
+{
+ return (startOfLine(lineno+1) - startOfLine(lineno)) / sizeof(ca);
+}
+
+bool HistoryScrollFile::isWrappedLine(int lineno)
+{
+ if (lineno>=0 && lineno <= getLines()) {
+ unsigned char flag;
+ lineflags.get((unsigned char*)&flag,sizeof(unsigned char),(lineno)*sizeof(unsigned char));
+ return flag;
+ }
+ return false;
+}
+
+int HistoryScrollFile::startOfLine(int lineno)
+{
+ if (lineno <= 0) return 0;
+ if (lineno <= getLines())
+ { int res;
+ index.get((unsigned char*)&res,sizeof(int),(lineno-1)*sizeof(int));
+ return res;
+ }
+ return cells.len();
+}
+
+void HistoryScrollFile::getCells(int lineno, int colno, int count, ca res[])
+{
+ cells.get((unsigned char*)res,count*sizeof(ca),startOfLine(lineno)+colno*sizeof(ca));
+}
+
+void HistoryScrollFile::addCells(ca text[], int count)
+{
+ cells.add((unsigned char*)text,count*sizeof(ca));
+}
+
+void HistoryScrollFile::addLine(bool previousWrapped)
+{
+ int locn = cells.len();
+ index.add((unsigned char*)&locn,sizeof(int));
+ unsigned char flags = previousWrapped ? 0x01 : 0x00;
+ lineflags.add((unsigned char*)&flags,sizeof(unsigned char));
+}
+
+
+// History Scroll Buffer //////////////////////////////////////
+HistoryScrollBuffer::HistoryScrollBuffer(unsigned int maxNbLines)
+ : HistoryScroll(new HistoryTypeBuffer(maxNbLines)),
+ m_histBuffer(maxNbLines),
+ m_wrappedLine(maxNbLines),
+ m_maxNbLines(maxNbLines),
+ m_nbLines(0),
+ m_arrayIndex(maxNbLines - 1)
+{
+}
+
+HistoryScrollBuffer::~HistoryScrollBuffer()
+{
+ for(size_t line = 0; line < m_nbLines; ++line) {
+ delete m_histBuffer[adjustLineNb(line)];
+ }
+}
+
+void HistoryScrollBuffer::addCells(ca a[], int count)
+{
+ histline* newLine = new histline;
+
+ newLine->duplicate(a, count);
+
+ ++m_arrayIndex;
+ if (m_arrayIndex >= m_maxNbLines) {
+ m_arrayIndex = 0;
+ }
+
+ if (m_nbLines < m_maxNbLines) ++m_nbLines;
+
+ delete m_histBuffer[m_arrayIndex];
+ m_histBuffer.insert(m_arrayIndex, newLine);
+ m_wrappedLine.clearBit(m_arrayIndex);
+}
+
+void HistoryScrollBuffer::addLine(bool previousWrapped)
+{
+ m_wrappedLine.setBit(m_arrayIndex,previousWrapped);
+}
+
+int HistoryScrollBuffer::getLines()
+{
+ return m_nbLines; // m_histBuffer.size();
+}
+
+int HistoryScrollBuffer::getLineLen(int lineno)
+{
+ if (lineno >= (int) m_maxNbLines) return 0;
+
+ lineno = adjustLineNb(lineno);
+
+ histline *l = m_histBuffer[lineno];
+
+ return l ? l->size() : 0;
+}
+
+bool HistoryScrollBuffer::isWrappedLine(int lineno)
+{
+ if (lineno >= (int) m_maxNbLines)
+ return 0;
+
+ return m_wrappedLine[adjustLineNb(lineno)];
+}
+
+void HistoryScrollBuffer::getCells(int lineno, int colno, int count, ca res[])
+{
+ if (!count) return;
+
+ assert (lineno < (int) m_maxNbLines);
+
+ lineno = adjustLineNb(lineno);
+
+ histline *l = m_histBuffer[lineno];
+
+ if (!l) {
+ memset(res, 0, count * sizeof(ca));
+ return;
+ }
+
+ assert(colno <= (int) l->size() - count);
+
+ memcpy(res, l->data() + colno, count * sizeof(ca));
+}
+
+void HistoryScrollBuffer::setMaxNbLines(unsigned int nbLines)
+{
+ QPtrVector<histline> newHistBuffer(nbLines);
+ QBitArray newWrappedLine(nbLines);
+
+ size_t preservedLines = (nbLines > m_nbLines ? m_nbLines : nbLines); //min
+
+ // delete any lines that will be lost
+ size_t lineOld;
+ for(lineOld = 0; lineOld < m_nbLines - preservedLines; ++lineOld) {
+ delete m_histBuffer[adjustLineNb(lineOld)];
+ }
+
+ // copy the lines to new arrays
+ size_t indexNew = 0;
+ while(indexNew < preservedLines) {
+ newHistBuffer.insert(indexNew, m_histBuffer[adjustLineNb(lineOld)]);
+ newWrappedLine.setBit(indexNew, m_wrappedLine[adjustLineNb(lineOld)]);
+ ++lineOld;
+ ++indexNew;
+ }
+ m_arrayIndex = preservedLines - 1;
+
+ m_histBuffer = newHistBuffer;
+ m_wrappedLine = newWrappedLine;
+
+ m_maxNbLines = nbLines;
+ if (m_nbLines > m_maxNbLines)
+ m_nbLines = m_maxNbLines;
+
+ delete m_histType;
+ m_histType = new HistoryTypeBuffer(nbLines);
+}
+
+int HistoryScrollBuffer::adjustLineNb(int lineno)
+{
+ // lineno = 0: oldest line
+ // lineno = getLines() - 1: newest line
+
+ return (m_arrayIndex + lineno - (m_nbLines - 1) + m_maxNbLines) % m_maxNbLines;
+}
+
+
+// History Scroll None //////////////////////////////////////
+
+HistoryScrollNone::HistoryScrollNone()
+ : HistoryScroll(new HistoryTypeNone())
+{
+}
+
+HistoryScrollNone::~HistoryScrollNone()
+{
+}
+
+bool HistoryScrollNone::hasScroll()
+{
+ return false;
+}
+
+int HistoryScrollNone::getLines()
+{
+ return 0;
+}
+
+int HistoryScrollNone::getLineLen(int)
+{
+ return 0;
+}
+
+bool HistoryScrollNone::isWrappedLine(int /*lineno*/)
+{
+ return false;
+}
+
+void HistoryScrollNone::getCells(int, int, int, ca [])
+{
+}
+
+void HistoryScrollNone::addCells(ca [], int)
+{
+}
+
+void HistoryScrollNone::addLine(bool)
+{
+}
+
+// History Scroll BlockArray //////////////////////////////////////
+
+HistoryScrollBlockArray::HistoryScrollBlockArray(size_t size)
+ : HistoryScroll(new HistoryTypeBlockArray(size))
+{
+ m_lineLengths.setAutoDelete(true);
+ m_blockArray.setHistorySize(size); // nb. of lines.
+}
+
+HistoryScrollBlockArray::~HistoryScrollBlockArray()
+{
+}
+
+int HistoryScrollBlockArray::getLines()
+{
+// kdDebug(1211) << "HistoryScrollBlockArray::getLines() : "
+// << m_lineLengths.count() << endl;
+
+ return m_lineLengths.count();
+}
+
+int HistoryScrollBlockArray::getLineLen(int lineno)
+{
+ size_t *pLen = m_lineLengths[lineno];
+ size_t res = pLen ? *pLen : 0;
+
+ return res;
+}
+
+bool HistoryScrollBlockArray::isWrappedLine(int /*lineno*/)
+{
+ return false;
+}
+
+void HistoryScrollBlockArray::getCells(int lineno, int colno,
+ int count, ca res[])
+{
+ if (!count) return;
+
+ const Block *b = m_blockArray.at(lineno);
+
+ if (!b) {
+ memset(res, 0, count * sizeof(ca)); // still better than random data
+ return;
+ }
+
+ assert(((colno + count) * sizeof(ca)) < ENTRIES);
+ memcpy(res, b->data + (colno * sizeof(ca)), count * sizeof(ca));
+}
+
+void HistoryScrollBlockArray::addCells(ca a[], int count)
+{
+ Block *b = m_blockArray.lastBlock();
+
+ if (!b) return;
+
+ // put cells in block's data
+ assert((count * sizeof(ca)) < ENTRIES);
+
+ memset(b->data, 0, ENTRIES);
+
+ memcpy(b->data, a, count * sizeof(ca));
+ b->size = count * sizeof(ca);
+
+ size_t res = m_blockArray.newBlock();
+ assert (res > 0);
+ Q_UNUSED( res );
+
+ // store line length
+ size_t *pLen = new size_t;
+ *pLen = count;
+
+ m_lineLengths.replace(m_blockArray.getCurrent(), pLen);
+}
+
+void HistoryScrollBlockArray::addLine(bool)
+{
+}
+
+//////////////////////////////////////////////////////////////////////
+// History Types
+//////////////////////////////////////////////////////////////////////
+
+HistoryType::HistoryType()
+{
+}
+
+HistoryType::~HistoryType()
+{
+}
+
+//////////////////////////////
+
+HistoryTypeNone::HistoryTypeNone()
+{
+}
+
+bool HistoryTypeNone::isOn() const
+{
+ return false;
+}
+
+HistoryScroll* HistoryTypeNone::getScroll(HistoryScroll *old) const
+{
+ delete old;
+ return new HistoryScrollNone();
+}
+
+unsigned int HistoryTypeNone::getSize() const
+{
+ return 0;
+}
+
+//////////////////////////////
+
+HistoryTypeBlockArray::HistoryTypeBlockArray(size_t size)
+ : m_size(size)
+{
+}
+
+bool HistoryTypeBlockArray::isOn() const
+{
+ return true;
+}
+
+unsigned int HistoryTypeBlockArray::getSize() const
+{
+ return m_size;
+}
+
+HistoryScroll* HistoryTypeBlockArray::getScroll(HistoryScroll *old) const
+{
+ delete old;
+ return new HistoryScrollBlockArray(m_size);
+}
+
+
+//////////////////////////////
+
+HistoryTypeBuffer::HistoryTypeBuffer(unsigned int nbLines)
+ : m_nbLines(nbLines)
+{
+}
+
+bool HistoryTypeBuffer::isOn() const
+{
+ return true;
+}
+
+unsigned int HistoryTypeBuffer::getSize() const
+{
+ return m_nbLines;
+}
+
+HistoryScroll* HistoryTypeBuffer::getScroll(HistoryScroll *old) const
+{
+ if (old)
+ {
+ HistoryScrollBuffer *oldBuffer = dynamic_cast<HistoryScrollBuffer*>(old);
+ if (oldBuffer)
+ {
+ oldBuffer->setMaxNbLines(m_nbLines);
+ return oldBuffer;
+ }
+
+ HistoryScroll *newScroll = new HistoryScrollBuffer(m_nbLines);
+ int lines = old->getLines();
+ int startLine = 0;
+ if (lines > (int) m_nbLines)
+ startLine = lines - m_nbLines;
+
+ ca line[LINE_SIZE];
+ for(int i = startLine; i < lines; i++)
+ {
+ int size = old->getLineLen(i);
+ if (size > LINE_SIZE)
+ {
+ ca *tmp_line = new ca[size];
+ old->getCells(i, 0, size, tmp_line);
+ newScroll->addCells(tmp_line, size);
+ newScroll->addLine(old->isWrappedLine(i));
+ delete tmp_line;
+ }
+ else
+ {
+ old->getCells(i, 0, size, line);
+ newScroll->addCells(line, size);
+ newScroll->addLine(old->isWrappedLine(i));
+ }
+ }
+ delete old;
+ return newScroll;
+ }
+ return new HistoryScrollBuffer(m_nbLines);
+}
+
+//////////////////////////////
+
+HistoryTypeFile::HistoryTypeFile(const QString& fileName)
+ : m_fileName(fileName)
+{
+}
+
+bool HistoryTypeFile::isOn() const
+{
+ return true;
+}
+
+const QString& HistoryTypeFile::getFileName() const
+{
+ return m_fileName;
+}
+
+HistoryScroll* HistoryTypeFile::getScroll(HistoryScroll *old) const
+{
+ if (dynamic_cast<HistoryFile *>(old))
+ return old; // Unchanged.
+
+ HistoryScroll *newScroll = new HistoryScrollFile(m_fileName);
+
+ ca line[LINE_SIZE];
+ int lines = old->getLines();
+ for(int i = 0; i < lines; i++)
+ {
+ int size = old->getLineLen(i);
+ if (size > LINE_SIZE)
+ {
+ ca *tmp_line = new ca[size];
+ old->getCells(i, 0, size, tmp_line);
+ newScroll->addCells(tmp_line, size);
+ newScroll->addLine(old->isWrappedLine(i));
+ delete tmp_line;
+ }
+ else
+ {
+ old->getCells(i, 0, size, line);
+ newScroll->addCells(line, size);
+ newScroll->addLine(old->isWrappedLine(i));
+ }
+ }
+
+ delete old;
+ return newScroll;
+}
+
+unsigned int HistoryTypeFile::getSize() const
+{
+ return 0;
+}
diff --git a/konsole/konsole/TEHistory.h b/konsole/konsole/TEHistory.h
new file mode 100644
index 000000000..c8fa2f379
--- /dev/null
+++ b/konsole/konsole/TEHistory.h
@@ -0,0 +1,273 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef TEHISTORY_H
+#define TEHISTORY_H
+
+#include <qcstring.h>
+#include <qptrvector.h>
+#include <qbitarray.h>
+
+#include <ktempfile.h>
+
+#include "TECommon.h"
+
+#if 1
+/*
+ An extendable tmpfile(1) based buffer.
+*/
+
+class HistoryFile
+{
+public:
+ HistoryFile();
+ virtual ~HistoryFile();
+
+ virtual void add(const unsigned char* bytes, int len);
+ virtual void get(unsigned char* bytes, int len, int loc);
+ virtual int len();
+
+private:
+ int ion;
+ int length;
+ KTempFile tmpFile;
+};
+#endif
+
+//////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////
+// Abstract base class for file and buffer versions
+//////////////////////////////////////////////////////////////////////
+class HistoryType;
+
+class HistoryScroll
+{
+public:
+ HistoryScroll(HistoryType*);
+ virtual ~HistoryScroll();
+
+ virtual bool hasScroll();
+
+ // access to history
+ virtual int getLines() = 0;
+ virtual int getLineLen(int lineno) = 0;
+ virtual void getCells(int lineno, int colno, int count, ca res[]) = 0;
+ virtual bool isWrappedLine(int lineno) = 0;
+
+ // backward compatibility (obsolete)
+ ca getCell(int lineno, int colno) { ca res; getCells(lineno,colno,1,&res); return res; }
+
+ // adding lines.
+ virtual void addCells(ca a[], int count) = 0;
+ virtual void addLine(bool previousWrapped=false) = 0;
+
+ const HistoryType& getType() { return *m_histType; }
+
+protected:
+ HistoryType* m_histType;
+
+};
+
+#if 1
+
+//////////////////////////////////////////////////////////////////////
+// File-based history (e.g. file log, no limitation in length)
+//////////////////////////////////////////////////////////////////////
+
+class HistoryScrollFile : public HistoryScroll
+{
+public:
+ HistoryScrollFile(const QString &logFileName);
+ virtual ~HistoryScrollFile();
+
+ virtual int getLines();
+ virtual int getLineLen(int lineno);
+ virtual void getCells(int lineno, int colno, int count, ca res[]);
+ virtual bool isWrappedLine(int lineno);
+
+ virtual void addCells(ca a[], int count);
+ virtual void addLine(bool previousWrapped=false);
+
+private:
+ int startOfLine(int lineno);
+
+ QString m_logFileName;
+ HistoryFile index; // lines Row(int)
+ HistoryFile cells; // text Row(ca)
+ HistoryFile lineflags; // flags Row(unsigned char)
+};
+
+
+//////////////////////////////////////////////////////////////////////
+// Buffer-based history (limited to a fixed nb of lines)
+//////////////////////////////////////////////////////////////////////
+class HistoryScrollBuffer : public HistoryScroll
+{
+public:
+ typedef QMemArray<ca> histline;
+
+ HistoryScrollBuffer(unsigned int maxNbLines = 1000);
+ virtual ~HistoryScrollBuffer();
+
+ virtual int getLines();
+ virtual int getLineLen(int lineno);
+ virtual void getCells(int lineno, int colno, int count, ca res[]);
+ virtual bool isWrappedLine(int lineno);
+
+ virtual void addCells(ca a[], int count);
+ virtual void addLine(bool previousWrapped=false);
+
+ void setMaxNbLines(unsigned int nbLines);
+ unsigned int maxNbLines() { return m_maxNbLines; }
+
+
+private:
+ int adjustLineNb(int lineno);
+
+ QPtrVector<histline> m_histBuffer;
+ QBitArray m_wrappedLine;
+ unsigned int m_maxNbLines;
+ unsigned int m_nbLines;
+ unsigned int m_arrayIndex;
+
+};
+
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// Nothing-based history (no history :-)
+//////////////////////////////////////////////////////////////////////
+class HistoryScrollNone : public HistoryScroll
+{
+public:
+ HistoryScrollNone();
+ virtual ~HistoryScrollNone();
+
+ virtual bool hasScroll();
+
+ virtual int getLines();
+ virtual int getLineLen(int lineno);
+ virtual void getCells(int lineno, int colno, int count, ca res[]);
+ virtual bool isWrappedLine(int lineno);
+
+ virtual void addCells(ca a[], int count);
+ virtual void addLine(bool previousWrapped=false);
+};
+
+//////////////////////////////////////////////////////////////////////
+// BlockArray-based history
+//////////////////////////////////////////////////////////////////////
+#include "BlockArray.h"
+#include <qintdict.h>
+class HistoryScrollBlockArray : public HistoryScroll
+{
+public:
+ HistoryScrollBlockArray(size_t size);
+ virtual ~HistoryScrollBlockArray();
+
+ virtual int getLines();
+ virtual int getLineLen(int lineno);
+ virtual void getCells(int lineno, int colno, int count, ca res[]);
+ virtual bool isWrappedLine(int lineno);
+
+ virtual void addCells(ca a[], int count);
+ virtual void addLine(bool previousWrapped=false);
+
+protected:
+ BlockArray m_blockArray;
+ QIntDict<size_t> m_lineLengths;
+};
+
+//////////////////////////////////////////////////////////////////////
+// History type
+//////////////////////////////////////////////////////////////////////
+
+class HistoryType
+{
+public:
+ HistoryType();
+ virtual ~HistoryType();
+
+ virtual bool isOn() const = 0;
+ virtual unsigned int getSize() const = 0;
+
+ virtual HistoryScroll* getScroll(HistoryScroll *) const = 0;
+};
+
+class HistoryTypeNone : public HistoryType
+{
+public:
+ HistoryTypeNone();
+
+ virtual bool isOn() const;
+ virtual unsigned int getSize() const;
+
+ virtual HistoryScroll* getScroll(HistoryScroll *) const;
+};
+
+class HistoryTypeBlockArray : public HistoryType
+{
+public:
+ HistoryTypeBlockArray(size_t size);
+
+ virtual bool isOn() const;
+ virtual unsigned int getSize() const;
+
+ virtual HistoryScroll* getScroll(HistoryScroll *) const;
+
+protected:
+ size_t m_size;
+};
+
+#if 1 // Disabled for now
+class HistoryTypeFile : public HistoryType
+{
+public:
+ HistoryTypeFile(const QString& fileName=QString::null);
+
+ virtual bool isOn() const;
+ virtual const QString& getFileName() const;
+ virtual unsigned int getSize() const;
+
+ virtual HistoryScroll* getScroll(HistoryScroll *) const;
+
+protected:
+ QString m_fileName;
+};
+
+
+class HistoryTypeBuffer : public HistoryType
+{
+public:
+ HistoryTypeBuffer(unsigned int nbLines);
+
+ virtual bool isOn() const;
+ virtual unsigned int getSize() const;
+
+ virtual HistoryScroll* getScroll(HistoryScroll *) const;
+
+protected:
+ unsigned int m_nbLines;
+};
+
+#endif
+
+#endif // TEHISTORY_H
diff --git a/konsole/konsole/TEPty.cpp b/konsole/konsole/TEPty.cpp
new file mode 100644
index 000000000..e68ea8ff5
--- /dev/null
+++ b/konsole/konsole/TEPty.cpp
@@ -0,0 +1,262 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/* If you're compiling konsole on non-Linux platforms and find
+ problems that you can track down to this file, please have
+ a look into ../README.ports, too.
+*/
+
+/*! \file
+*/
+
+
+/*! \class TEPty
+
+ \brief Ptys provide a pseudo terminal connection to a program.
+
+ Although closely related to pipes, these pseudo terminal connections have
+ some ability, that makes it nessesary to uses them. Most importent, they
+ know about changing screen sizes and UNIX job control.
+
+ Within the terminal emulation framework, this class represents the
+ host side of the terminal together with the connecting serial line.
+
+ One can create many instances of this class within a program.
+ As a side effect of using this class, a signal(2) handler is
+ installed on SIGCHLD.
+
+ \par FIXME
+
+ [NOTE: much of the technical stuff below will be replaced by forkpty.]
+
+ publish the SIGCHLD signal if not related to an instance.
+
+ clearify TEPty::done vs. TEPty::~TEPty semantics.
+ check if pty is restartable via run after done.
+
+ \par Pseudo terminals
+
+ Pseudo terminals are a unique feature of UNIX, and always come in form of
+ pairs of devices (/dev/ptyXX and /dev/ttyXX), which are connected to each
+ other by the operating system. One may think of them as two serial devices
+ linked by a null-modem cable. Being based on devices the number of
+ simultanous instances of this class is (globally) limited by the number of
+ those device pairs, which is 256.
+
+ Another technic are UNIX 98 PTY's. These are supported also, and preferred
+ over the (obsolete) predecessor.
+
+ There's a sinister ioctl(2), signal(2) and job control stuff
+ nessesary to make everything work as it should.
+
+ Much of the stuff can be simplified by using openpty from glibc2.
+ Compatibility issues with obsolete installations and other unixes
+ my prevent this.
+*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+#include <termios.h>
+
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kpty.h>
+
+#include "TEPty.h"
+
+
+void TEPty::donePty()
+{
+ emit done(exitStatus());
+}
+
+void TEPty::setSize(int lines, int cols)
+{
+ pty()->setWinSize(lines, cols);
+}
+
+void TEPty::setXonXoff(bool on)
+{
+ pty()->setXonXoff(on);
+}
+
+void TEPty::useUtf8(bool on)
+{
+ pty()->setUtf8Mode(on);
+}
+
+void TEPty::setErase(char erase)
+{
+ struct termios tios;
+ int fd = pty()->slaveFd();
+
+ if(tcgetattr(fd, &tios))
+ {
+ qWarning("Uh oh.. can't get terminal attributes..");
+ return;
+ }
+ tios.c_cc[VERASE] = erase;
+ if(tcsetattr(fd, TCSANOW, &tios))
+ qWarning("Uh oh.. can't set terminal attributes..");
+}
+
+/*!
+ start the client program.
+*/
+int TEPty::run(const char* _pgm, QStrList & _args, const char* _term, ulong winid, bool _addutmp,
+ const char* _konsole_dcop, const char* _konsole_dcop_session)
+{
+ clearArguments();
+
+ setBinaryExecutable(_pgm);
+
+ QStrListIterator it( _args );
+ for (; it.current(); ++it )
+ arguments.append(it.current());
+
+ if (_term && _term[0])
+ setEnvironment("TERM",_term);
+ if (_konsole_dcop && _konsole_dcop[0])
+ setEnvironment("KONSOLE_DCOP",_konsole_dcop);
+ if (_konsole_dcop_session && _konsole_dcop_session[0])
+ setEnvironment("KONSOLE_DCOP_SESSION", _konsole_dcop_session);
+ setEnvironment("WINDOWID", QString::number(winid));
+
+ setUsePty(All, _addutmp);
+
+ if ( start(NotifyOnExit, (Communication) (Stdin | Stdout)) == false )
+ return -1;
+
+ resume(); // Start...
+ return 0;
+
+}
+
+void TEPty::setWriteable(bool writeable)
+{
+ struct stat sbuf;
+ stat(pty()->ttyName(), &sbuf);
+ if (writeable)
+ chmod(pty()->ttyName(), sbuf.st_mode | S_IWGRP);
+ else
+ chmod(pty()->ttyName(), sbuf.st_mode & ~(S_IWGRP|S_IWOTH));
+}
+
+/*!
+ Create an instance.
+*/
+TEPty::TEPty()
+{
+ m_bufferFull = false;
+ connect(this, SIGNAL(receivedStdout(KProcess *, char *, int )),
+ this, SLOT(dataReceived(KProcess *,char *, int)));
+ connect(this, SIGNAL(processExited(KProcess *)),
+ this, SLOT(donePty()));
+ connect(this, SIGNAL(wroteStdin(KProcess *)),
+ this, SLOT(writeReady()));
+
+ setUsePty(All, false); // utmp will be overridden later
+}
+
+/*!
+ Destructor.
+*/
+TEPty::~TEPty()
+{
+}
+
+/*! sends a character through the line */
+void TEPty::send_byte(char c)
+{
+ send_bytes(&c,1);
+}
+
+/*! sends a 0 terminated string through the line */
+void TEPty::send_string(const char* s)
+{
+ send_bytes(s,strlen(s));
+}
+
+void TEPty::writeReady()
+{
+ pendingSendJobs.remove(pendingSendJobs.begin());
+ m_bufferFull = false;
+ doSendJobs();
+}
+
+void TEPty::doSendJobs() {
+ if(pendingSendJobs.isEmpty())
+ {
+ emit buffer_empty();
+ return;
+ }
+
+ SendJob& job = pendingSendJobs.first();
+ if (!writeStdin(job.buffer.data(), job.length))
+ {
+ qWarning("Uh oh.. can't write data..");
+ return;
+ }
+ m_bufferFull = true;
+}
+
+void TEPty::appendSendJob(const char* s, int len)
+{
+ pendingSendJobs.append(SendJob(s,len));
+}
+
+/*! sends len bytes through the line */
+void TEPty::send_bytes(const char* s, int len)
+{
+ appendSendJob(s,len);
+ if (!m_bufferFull)
+ doSendJobs();
+}
+
+/*! indicates that a block of data is received */
+void TEPty::dataReceived(KProcess *,char *buf, int len)
+{
+ emit block_in(buf,len);
+}
+
+void TEPty::lockPty(bool lock)
+{
+ if (lock)
+ suspend();
+ else
+ resume();
+}
+
+int TEPty::commSetupDoneC ()
+{
+ int ok = KProcess::commSetupDoneC ();
+ if ( ok ) {
+ emit forkedChild();
+ }
+ return ok;
+}
+
+#include "TEPty.moc"
diff --git a/konsole/konsole/TEPty.h b/konsole/konsole/TEPty.h
new file mode 100644
index 000000000..294fde8c7
--- /dev/null
+++ b/konsole/konsole/TEPty.h
@@ -0,0 +1,123 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef TE_PTY_H
+#define TE_PTY_H
+
+#include <config.h>
+
+#include <kprocess.h>
+#include <qsocketnotifier.h>
+#include <qstrlist.h>
+#include <qvaluelist.h>
+#include <qmemarray.h>
+
+class TEPty: public KProcess
+{
+Q_OBJECT
+
+ public:
+
+ TEPty();
+ ~TEPty();
+
+ public:
+
+ /*!
+ * having a `run' separate from the constructor allows to make
+ * the necessary connections to the signals and slots of the
+ * instance before starting the execution of the client.
+ */
+ int run( const char* pgm, QStrList & args, const char* term, ulong winid, bool _addutmp,
+ const char* konsole_dcop = "", const char* konsole_dcop_session = "" );
+ void setWriteable(bool writeable);
+ QString error() { return m_strError; }
+ void setXonXoff(bool on);
+ void setSize(int lines, int cols);
+ void setErase(char erase);
+
+ public slots:
+ void useUtf8(bool on);
+ void lockPty(bool lock);
+ void send_bytes(const char* s, int len);
+
+ signals:
+
+ /*!
+ emitted when the client program terminates.
+ */
+ void done(int returnCode);
+
+ /*!
+ emitted when a new block of data comes in.
+ \param s - the data
+ \param len - the length of the block
+ */
+ void block_in(const char* s, int len);
+
+ /*!
+ emitted when buffer_full becomes false
+ */
+ void buffer_empty();
+
+ // this will be emitted in the child process
+ // after forking (and, obviously, before exec())
+ void forkedChild();
+
+ public:
+
+ void send_byte(char s);
+ void send_string(const char* s);
+ bool buffer_full() { return m_bufferFull; }
+
+ // override from KProcess to allow the client of konsolePart
+ // to set up things after fork() but before exec()
+ virtual int commSetupDoneC();
+
+ protected slots:
+ void dataReceived(KProcess *, char *buf, int len);
+ public slots:
+ void donePty();
+
+ private:
+ void appendSendJob(const char* s, int len);
+
+ private slots:
+ void doSendJobs();
+ void writeReady();
+
+ private:
+
+ QString m_strError;
+
+ struct SendJob {
+ SendJob() {}
+ SendJob(const char* b, int len) {
+ buffer.duplicate(b,len);
+ length = len;
+ }
+ QMemArray<char> buffer;
+ int length;
+ };
+ QValueList<SendJob> pendingSendJobs;
+ bool m_bufferFull;
+};
+
+#endif
diff --git a/konsole/konsole/TEScreen.cpp b/konsole/konsole/TEScreen.cpp
new file mode 100644
index 000000000..dba8ebd22
--- /dev/null
+++ b/konsole/konsole/TEScreen.cpp
@@ -0,0 +1,1570 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*! \class TEScreen
+
+ \brief The image manipulated by the emulation.
+
+ This class implements the operations of the terminal emulation framework.
+ It is a complete passive device, driven by the emulation decoder
+ (TEmuVT102). By this it forms in fact an ADT, that defines operations
+ on a rectangular image.
+
+ It does neither know how to display its image nor about escape sequences.
+ It is further independent of the underlying toolkit. By this, one can even
+ use this module for an ordinary text surface.
+
+ Since the operations are called by a specific emulation decoder, one may
+ collect their different operations here.
+
+ The state manipulated by the operations is mainly kept in `image', though
+ it is a little more complex bejond this. See the header file of the class.
+
+ \sa TEWidget \sa VT102Emulation
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <kdebug.h>
+
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "konsole_wcwidth.h"
+#include "TEScreen.h"
+
+//FIXME: this is emulation specific. Use false for xterm, true for ANSI.
+//FIXME: see if we can get this from terminfo.
+#define BS_CLEARS false
+
+#ifndef loc
+#define loc(X,Y) ((Y)*columns+(X))
+#endif
+
+//#define REVERSE_WRAPPED_LINES // for wrapped line debug
+
+/*! creates a `TEScreen' of `lines' lines and `columns' columns.
+*/
+
+TEScreen::TEScreen(int l, int c)
+ : lines(l),
+ columns(c),
+ image(new ca[(lines+1)*columns]),
+ histCursor(0),
+ hist(new HistoryScrollNone()),
+ cuX(0), cuY(0),
+ cu_fg(cacol()), cu_bg(cacol()), cu_re(0),
+ tmargin(0), bmargin(0),
+ tabstops(0),
+ sel_begin(0), sel_TL(0), sel_BR(0),
+ sel_busy(false),
+ columnmode(false),
+ ef_fg(cacol()), ef_bg(cacol()), ef_re(0),
+ sa_cuX(0), sa_cuY(0),
+ sa_cu_re(0), sa_cu_fg(cacol()), sa_cu_bg(cacol()),
+ lastPos(-1)
+{
+ /*
+ this->lines = lines;
+ this->columns = columns;
+
+ // we add +1 here as under some weired circumstances konsole crashes
+ // reading out of bound. As a crash is worse, we afford the minimum
+ // of added memory
+ image = (ca*) malloc((lines+1)*columns*sizeof(ca));
+ tabstops = NULL; initTabStops();
+ cuX = cuY = sa_cu_re = cu_re = sa_cu_fg = cu_fg = sa_cu_bg = cu_bg = 0;
+
+ histCursor = 0;
+ */
+ line_wrapped.resize(lines+1);
+ initTabStops();
+ clearSelection();
+ reset();
+}
+
+/*! Destructor
+*/
+
+TEScreen::~TEScreen()
+{
+ delete[] image;
+ delete[] tabstops;
+ delete hist;
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Normalized Screen Operations */
+/* */
+/* ------------------------------------------------------------------------- */
+
+// Cursor Setting --------------------------------------------------------------
+
+/*! \section Cursor
+
+ The `cursor' is a location within the screen that is implicitely used in
+ many operations. The operations within this section allow to manipulate
+ the cursor explicitly and to obtain it's value.
+
+ The position of the cursor is guarantied to be between (including) 0 and
+ `columns-1' and `lines-1'.
+*/
+
+/*!
+ Move the cursor up.
+
+ The cursor will not be moved beyond the top margin.
+*/
+
+void TEScreen::cursorUp(int n)
+//=CUU
+{
+ if (n == 0) n = 1; // Default
+ int stop = cuY < tmargin ? 0 : tmargin;
+ cuX = QMIN(columns-1,cuX); // nowrap!
+ cuY = QMAX(stop,cuY-n);
+}
+
+/*!
+ Move the cursor down.
+
+ The cursor will not be moved beyond the bottom margin.
+*/
+
+void TEScreen::cursorDown(int n)
+//=CUD
+{
+ if (n == 0) n = 1; // Default
+ int stop = cuY > bmargin ? lines-1 : bmargin;
+ cuX = QMIN(columns-1,cuX); // nowrap!
+ cuY = QMIN(stop,cuY+n);
+}
+
+/*!
+ Move the cursor left.
+
+ The cursor will not move beyond the first column.
+*/
+
+void TEScreen::cursorLeft(int n)
+//=CUB
+{
+ if (n == 0) n = 1; // Default
+ cuX = QMIN(columns-1,cuX); // nowrap!
+ cuX = QMAX(0,cuX-n);
+}
+
+/*!
+ Move the cursor left.
+
+ The cursor will not move beyond the rightmost column.
+*/
+
+void TEScreen::cursorRight(int n)
+//=CUF
+{
+ if (n == 0) n = 1; // Default
+ cuX = QMIN(columns-1,cuX+n);
+}
+
+/*!
+ Set top and bottom margin.
+*/
+
+void TEScreen::setMargins(int top, int bot)
+//=STBM
+{
+ if (top == 0) top = 1; // Default
+ if (bot == 0) bot = lines; // Default
+ top = top - 1; // Adjust to internal lineno
+ bot = bot - 1; // Adjust to internal lineno
+ if ( !( 0 <= top && top < bot && bot < lines ) )
+ { kdDebug()<<" setRegion("<<top<<","<<bot<<") : bad range."<<endl;
+ return; // Default error action: ignore
+ }
+ tmargin = top;
+ bmargin = bot;
+ cuX = 0;
+ cuY = getMode(MODE_Origin) ? top : 0;
+}
+
+/*!
+ Move the cursor down one line.
+
+ If cursor is on bottom margin, the region between the
+ actual top and bottom margin is scrolled up instead.
+*/
+
+void TEScreen::index()
+//=IND
+{
+ if (cuY == bmargin)
+ {
+ scrollUp(1);
+ }
+ else if (cuY < lines-1)
+ cuY += 1;
+}
+
+/*!
+ Move the cursor up one line.
+
+ If cursor is on the top margin, the region between the
+ actual top and bottom margin is scrolled down instead.
+*/
+
+void TEScreen::reverseIndex()
+//=RI
+{
+ if (cuY == tmargin)
+ scrollDown(tmargin,1);
+ else if (cuY > 0)
+ cuY -= 1;
+}
+
+/*!
+ Move the cursor to the begin of the next line.
+
+ If cursor is on bottom margin, the region between the
+ actual top and bottom margin is scrolled up.
+*/
+
+void TEScreen::NextLine()
+//=NEL
+{
+ Return(); index();
+}
+
+// Line Editing ----------------------------------------------------------------
+
+/*! \section inserting / deleting characters
+*/
+
+/*! erase `n' characters starting from (including) the cursor position.
+
+ The line is filled in from the right with spaces.
+*/
+
+void TEScreen::eraseChars(int n)
+{
+ if (n == 0) n = 1; // Default
+ int p = QMAX(0,QMIN(cuX+n-1,columns-1));
+ clearImage(loc(cuX,cuY),loc(p,cuY),' ');
+}
+
+/*! delete `n' characters starting from (including) the cursor position.
+
+ The line is filled in from the right with spaces.
+*/
+
+void TEScreen::deleteChars(int n)
+{
+ if (n == 0) n = 1; // Default
+ if (n > columns) n = columns - 1;
+ int p = QMAX(0,QMIN(cuX+n,columns-1));
+ moveImage(loc(cuX,cuY),loc(p,cuY),loc(columns-1,cuY));
+ clearImage(loc(columns-n,cuY),loc(columns-1,cuY),' ');
+}
+
+/*! insert `n' spaces at the cursor position.
+
+ The cursor is not moved by the operation.
+*/
+
+void TEScreen::insertChars(int n)
+{
+ if (n == 0) n = 1; // Default
+ int p = QMAX(0,QMIN(columns-1-n,columns-1));
+ int q = QMAX(0,QMIN(cuX+n,columns-1));
+ moveImage(loc(q,cuY),loc(cuX,cuY),loc(p,cuY));
+ clearImage(loc(cuX,cuY),loc(q-1,cuY),' ');
+}
+
+/*! delete `n' lines starting from (including) the cursor position.
+
+ The cursor is not moved by the operation.
+*/
+
+void TEScreen::deleteLines(int n)
+{
+ if (n == 0) n = 1; // Default
+ scrollUp(cuY,n);
+}
+
+/*! insert `n' lines at the cursor position.
+
+ The cursor is not moved by the operation.
+*/
+
+void TEScreen::insertLines(int n)
+{
+ if (n == 0) n = 1; // Default
+ scrollDown(cuY,n);
+}
+
+// Mode Operations -----------------------------------------------------------
+
+/*! Set a specific mode. */
+
+void TEScreen::setMode(int m)
+{
+ currParm.mode[m] = true;
+ switch(m)
+ {
+ case MODE_Origin : cuX = 0; cuY = tmargin; break; //FIXME: home
+ }
+}
+
+/*! Reset a specific mode. */
+
+void TEScreen::resetMode(int m)
+{
+ currParm.mode[m] = false;
+ switch(m)
+ {
+ case MODE_Origin : cuX = 0; cuY = 0; break; //FIXME: home
+ }
+}
+
+/*! Save a specific mode. */
+
+void TEScreen::saveMode(int m)
+{
+ saveParm.mode[m] = currParm.mode[m];
+}
+
+/*! Restore a specific mode. */
+
+void TEScreen::restoreMode(int m)
+{
+ currParm.mode[m] = saveParm.mode[m];
+}
+
+//NOTE: this is a helper function
+/*! Return the setting a specific mode. */
+bool TEScreen::getMode(int m)
+{
+ return currParm.mode[m];
+}
+
+/*! Save the cursor position and the rendition attribute settings. */
+
+void TEScreen::saveCursor()
+{
+ sa_cuX = cuX;
+ sa_cuY = cuY;
+ sa_cu_re = cu_re;
+ sa_cu_fg = cu_fg;
+ sa_cu_bg = cu_bg;
+}
+
+/*! Restore the cursor position and the rendition attribute settings. */
+
+void TEScreen::restoreCursor()
+{
+ cuX = QMIN(sa_cuX,columns-1);
+ cuY = QMIN(sa_cuY,lines-1);
+ cu_re = sa_cu_re;
+ cu_fg = sa_cu_fg;
+ cu_bg = sa_cu_bg;
+ effectiveRendition();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Screen Operations */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*! Assing a new size to the screen.
+
+ The topmost left position is maintained, while lower lines
+ or right hand side columns might be removed or filled with
+ spaces to fit the new size.
+
+ The region setting is reset to the whole screen and the
+ tab positions reinitialized.
+*/
+
+void TEScreen::resizeImage(int new_lines, int new_columns)
+{
+ if ((new_lines==lines) && (new_columns==columns)) return;
+
+ if (cuY > new_lines-1)
+ { // attempt to preserve focus and lines
+ bmargin = lines-1; //FIXME: margin lost
+ for (int i = 0; i < cuY-(new_lines-1); i++)
+ {
+ addHistLine(); scrollUp(0,1);
+ }
+ }
+
+ // make new image
+
+ ca* newimg = new ca[(new_lines+1)*new_columns];
+ QBitArray newwrapped(new_lines+1);
+ clearSelection();
+
+ // clear new image
+ for (int y = 0; y < new_lines; y++) {
+ for (int x = 0; x < new_columns; x++)
+ {
+ newimg[y*new_columns+x].c = ' ';
+ newimg[y*new_columns+x].f = cacol(CO_DFT,DEFAULT_FORE_COLOR);
+ newimg[y*new_columns+x].b = cacol(CO_DFT,DEFAULT_BACK_COLOR);
+ newimg[y*new_columns+x].r = DEFAULT_RENDITION;
+ }
+ newwrapped[y]=false;
+ }
+ int cpy_lines = QMIN(new_lines, lines);
+ int cpy_columns = QMIN(new_columns,columns);
+ // copy to new image
+ for (int y = 0; y < cpy_lines; y++) {
+ for (int x = 0; x < cpy_columns; x++)
+ {
+ newimg[y*new_columns+x].c = image[loc(x,y)].c;
+ newimg[y*new_columns+x].f = image[loc(x,y)].f;
+ newimg[y*new_columns+x].b = image[loc(x,y)].b;
+ newimg[y*new_columns+x].r = image[loc(x,y)].r;
+ }
+ newwrapped[y]=line_wrapped[y];
+ }
+ delete[] image;
+ image = newimg;
+ line_wrapped = newwrapped;
+ lines = new_lines;
+ columns = new_columns;
+ cuX = QMIN(cuX,columns-1);
+ cuY = QMIN(cuY,lines-1);
+
+ // FIXME: try to keep values, evtl.
+ tmargin=0;
+ bmargin=lines-1;
+ initTabStops();
+ clearSelection();
+}
+
+/*
+ Clarifying rendition here and in TEWidget.
+
+ currently, TEWidget's color table is
+ 0 1 2 .. 9 10 .. 17
+ dft_fg, dft_bg, dim 0..7, intensive 0..7
+
+ cu_fg, cu_bg contain values 0..8;
+ - 0 = default color
+ - 1..8 = ansi specified color
+
+ re_fg, re_bg contain values 0..17
+ due to the TEWidget's color table
+
+ rendition attributes are
+
+ attr widget screen
+ -------------- ------ ------
+ RE_UNDERLINE XX XX affects foreground only
+ RE_BLINK XX XX affects foreground only
+ RE_BOLD XX XX affects foreground only
+ RE_REVERSE -- XX
+ RE_TRANSPARENT XX -- affects background only
+ RE_INTENSIVE XX -- affects foreground only
+
+ Note that RE_BOLD is used in both widget
+ and screen rendition. Since xterm/vt102
+ is to poor to distinguish between bold
+ (which is a font attribute) and intensive
+ (which is a color attribute), we translate
+ this and RE_BOLD in falls eventually appart
+ into RE_BOLD and RE_INTENSIVE.
+*/
+
+void TEScreen::reverseRendition(ca* p)
+{ cacol f = p->f; cacol b = p->b;
+ p->f = b; p->b = f; //p->r &= ~RE_TRANSPARENT;
+}
+
+void TEScreen::effectiveRendition()
+// calculate rendition
+{
+ ef_re = cu_re & (RE_UNDERLINE | RE_BLINK);
+ if (cu_re & RE_REVERSE)
+ {
+ ef_fg = cu_bg;
+ ef_bg = cu_fg;
+ }
+ else
+ {
+ ef_fg = cu_fg;
+ ef_bg = cu_bg;
+ }
+ if (cu_re & RE_BOLD)
+ ef_fg.toggleIntensive();
+}
+
+/*!
+ returns the image.
+
+ Get the size of the image by \sa getLines and \sa getColumns.
+
+ NOTE that the image returned by this function must later be
+ freed.
+
+*/
+
+ca* TEScreen::getCookedImage()
+{
+/*kdDebug() << "sel_begin=" << sel_begin << "(" << sel_begin/columns << "," << sel_begin%columns << ")"
+ << " sel_TL=" << sel_TL << "(" << sel_TL/columns << "," << sel_TL%columns << ")"
+ << " sel_BR=" << sel_BR << "(" << sel_BR/columns << "," << sel_BR%columns << ")"
+ << " histcursor=" << histCursor << endl;*/
+
+ int x,y;
+ ca* merged = (ca*)malloc((lines*columns+1)*sizeof(ca));
+ ca dft(' ',cacol(CO_DFT,DEFAULT_FORE_COLOR),cacol(CO_DFT,DEFAULT_BACK_COLOR),DEFAULT_RENDITION);
+ merged[lines*columns] = dft;
+
+// kdDebug(1211) << "InGetCookedImage" << endl;
+ for (y = 0; (y < lines) && (y < (hist->getLines()-histCursor)); y++)
+ {
+ int len = QMIN(columns,hist->getLineLen(y+histCursor));
+ int yp = y*columns;
+
+// kdDebug(1211) << "InGetCookedImage - In first For. Y =" << y << "histCursor = " << histCursor << endl;
+ hist->getCells(y+histCursor,0,len,merged+yp);
+ for (x = len; x < columns; x++) merged[yp+x] = dft;
+ if (sel_begin !=-1)
+ for (x = 0; x < columns; x++)
+ {
+#ifdef REVERSE_WRAPPED_LINES
+ if (hist->isWrappedLine(y+histCursor))
+ reverseRendition(&merged[p]);
+#endif
+ if (testIsSelected(x,y)) {
+ int p=x + yp;
+ reverseRendition(&merged[p]); // for selection
+ }
+ }
+ }
+ if (lines >= hist->getLines()-histCursor)
+ {
+ for (y = (hist->getLines()-histCursor); y < lines ; y++)
+ {
+ int yp = y*columns;
+ int yr = (y-hist->getLines()+histCursor)*columns;
+// kdDebug(1211) << "InGetCookedImage - In second For. Y =" << y << endl;
+ for (x = 0; x < columns; x++)
+ { int p = x + yp; int r = x + yr;
+ merged[p] = image[r];
+#ifdef REVERSE_WRAPPED_LINES
+ if (line_wrapped[y- hist->getLines() +histCursor])
+ reverseRendition(&merged[p]);
+#endif
+ if (sel_begin != -1 && testIsSelected(x,y))
+ reverseRendition(&merged[p]); // for selection
+ }
+
+ }
+ }
+ // evtl. inverse display
+ if (getMode(MODE_Screen))
+ {
+ for (int i = 0; i < lines*columns; i++)
+ reverseRendition(&merged[i]); // for reverse display
+ }
+// if (getMode(MODE_Cursor) && (cuY+(hist->getLines()-histCursor) < lines)) // cursor visible
+
+ int loc_ = loc(cuX, cuY+hist->getLines()-histCursor);
+ if(getMode(MODE_Cursor) && loc_ < columns*lines)
+ merged[loc(cuX,cuY+(hist->getLines()-histCursor))].r|=RE_CURSOR;
+ return merged;
+}
+
+QBitArray TEScreen::getCookedLineWrapped()
+{
+ QBitArray result(lines);
+
+ for (int y = 0; (y < lines) && (y < (hist->getLines()-histCursor)); y++)
+ result[y]=hist->isWrappedLine(y+histCursor);
+
+ if (lines >= hist->getLines()-histCursor)
+ for (int y = (hist->getLines()-histCursor); y < lines ; y++)
+ result[y]=line_wrapped[y- hist->getLines() +histCursor];
+
+ return result;
+}
+
+/*!
+*/
+
+void TEScreen::reset()
+{
+ setMode(MODE_Wrap ); saveMode(MODE_Wrap ); // wrap at end of margin
+ resetMode(MODE_Origin); saveMode(MODE_Origin); // position refere to [1,1]
+ resetMode(MODE_Insert); saveMode(MODE_Insert); // overstroke
+ setMode(MODE_Cursor); // cursor visible
+ resetMode(MODE_Screen); // screen not inverse
+ resetMode(MODE_NewLine);
+
+ tmargin=0;
+ bmargin=lines-1;
+
+ setDefaultRendition();
+ saveCursor();
+
+ clear();
+}
+
+/*! Clear the entire screen and home the cursor.
+*/
+
+void TEScreen::clear()
+{
+ clearEntireScreen();
+ home();
+}
+
+/*! Moves the cursor left one column.
+*/
+
+void TEScreen::BackSpace()
+{
+ cuX = QMAX(0,cuX-1);
+ if (BS_CLEARS) image[loc(cuX,cuY)].c = ' ';
+}
+
+/*!
+*/
+
+void TEScreen::Tabulate(int n)
+{
+ // note that TAB is a format effector (does not write ' ');
+ if (n == 0) n = 1;
+ while((n > 0) && (cuX < columns-1))
+ {
+ cursorRight(1); while((cuX < columns-1) && !tabstops[cuX]) cursorRight(1);
+ n--;
+ }
+}
+
+void TEScreen::backTabulate(int n)
+{
+ // note that TAB is a format effector (does not write ' ');
+ if (n == 0) n = 1;
+ while((n > 0) && (cuX > 0))
+ {
+ cursorLeft(1); while((cuX > 0) && !tabstops[cuX]) cursorLeft(1);
+ n--;
+ }
+}
+
+void TEScreen::clearTabStops()
+{
+ for (int i = 0; i < columns; i++) tabstops[i] = false;
+}
+
+void TEScreen::changeTabStop(bool set)
+{
+ if (cuX >= columns) return;
+ tabstops[cuX] = set;
+}
+
+void TEScreen::initTabStops()
+{
+ delete[] tabstops;
+ tabstops = new bool[columns];
+
+ // Arrg! The 1st tabstop has to be one longer than the other.
+ // i.e. the kids start counting from 0 instead of 1.
+ // Other programs might behave correctly. Be aware.
+ for (int i = 0; i < columns; i++) tabstops[i] = (i%8 == 0 && i != 0);
+}
+
+/*!
+ This behaves either as IND (Screen::Index) or as NEL (Screen::NextLine)
+ depending on the NewLine Mode (LNM). This mode also
+ affects the key sequence returned for newline ([CR]LF).
+*/
+
+void TEScreen::NewLine()
+{
+ if (getMode(MODE_NewLine)) Return();
+ index();
+}
+
+/*! put `c' literally onto the screen at the current cursor position.
+
+ VT100 uses the convention to produce an automatic newline (am)
+ with the *first* character that would fall onto the next line (xenl).
+*/
+
+void TEScreen::checkSelection(int from, int to)
+{
+ if (sel_begin == -1) return;
+ int scr_TL = loc(0, hist->getLines());
+ //Clear entire selection if it overlaps region [from, to]
+ if ( (sel_BR > (from+scr_TL) )&&(sel_TL < (to+scr_TL)) )
+ {
+ clearSelection();
+ }
+}
+
+void TEScreen::ShowCharacter(unsigned short c)
+{
+ // Note that VT100 does wrapping BEFORE putting the character.
+ // This has impact on the assumption of valid cursor positions.
+ // We indicate the fact that a newline has to be triggered by
+ // putting the cursor one right to the last column of the screen.
+
+ int w = konsole_wcwidth(c);
+
+ if (w <= 0)
+ return;
+
+ if (cuX+w > columns) {
+ if (getMode(MODE_Wrap)) {
+ line_wrapped[cuY]=true;
+ NextLine();
+ }
+ else
+ cuX = columns-w;
+ }
+
+ if (getMode(MODE_Insert)) insertChars(w);
+
+ int i = loc(cuX,cuY);
+
+ checkSelection(i, i); // check if selection is still valid.
+
+ image[i].c = c;
+ image[i].f = ef_fg;
+ image[i].b = ef_bg;
+ image[i].r = ef_re;
+
+ lastPos = i;
+
+ cuX += w--;
+
+ while(w)
+ {
+ i++;
+ image[i].c = 0;
+ image[i].f = ef_fg;
+ image[i].b = ef_bg;
+ image[i].r = ef_re;
+ w--;
+ }
+}
+
+void TEScreen::compose(QString compose)
+{
+ if (lastPos == -1)
+ return;
+
+ QChar c(image[lastPos].c);
+ compose.prepend(c);
+ compose.compose();
+ image[lastPos].c = compose[0].unicode();
+}
+
+// Region commands -------------------------------------------------------------
+
+void TEScreen::scrollUp(int n)
+{
+ if (n == 0) n = 1; // Default
+ if (tmargin == 0) addHistLine(); // hist.history
+ scrollUp(tmargin, n);
+}
+
+/*! scroll up `n' lines within current region.
+ The `n' new lines are cleared.
+ \sa setRegion \sa scrollDown
+*/
+
+void TEScreen::scrollUp(int from, int n)
+{
+ if (n <= 0 || from + n > bmargin) return;
+ //FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
+ moveImage(loc(0,from),loc(0,from+n),loc(columns-1,bmargin));
+ clearImage(loc(0,bmargin-n+1),loc(columns-1,bmargin),' ');
+}
+
+void TEScreen::scrollDown(int n)
+{
+ if (n == 0) n = 1; // Default
+ scrollDown(tmargin, n);
+}
+
+/*! scroll down `n' lines within current region.
+ The `n' new lines are cleared.
+ \sa setRegion \sa scrollUp
+*/
+
+void TEScreen::scrollDown(int from, int n)
+{
+//FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
+ if (n <= 0) return;
+ if (from > bmargin) return;
+ if (from + n > bmargin) n = bmargin - from;
+ moveImage(loc(0,from+n),loc(0,from),loc(columns-1,bmargin-n));
+ clearImage(loc(0,from),loc(columns-1,from+n-1),' ');
+}
+
+/*! position the cursor to a specific line and column. */
+void TEScreen::setCursorYX(int y, int x)
+{
+ setCursorY(y); setCursorX(x);
+}
+
+/*! Set the cursor to x-th line. */
+
+void TEScreen::setCursorX(int x)
+{
+ if (x == 0) x = 1; // Default
+ x -= 1; // Adjust
+ cuX = QMAX(0,QMIN(columns-1, x));
+}
+
+/*! Set the cursor to y-th line. */
+
+void TEScreen::setCursorY(int y)
+{
+ if (y == 0) y = 1; // Default
+ y -= 1; // Adjust
+ cuY = QMAX(0,QMIN(lines -1, y + (getMode(MODE_Origin) ? tmargin : 0) ));
+}
+
+/*! set cursor to the `left upper' corner of the screen (1,1).
+*/
+
+void TEScreen::home()
+{
+ cuX = 0;
+ cuY = 0;
+}
+
+/*! set cursor to the begin of the current line.
+*/
+
+void TEScreen::Return()
+{
+ cuX = 0;
+}
+
+/*! returns the current cursor columns.
+*/
+
+int TEScreen::getCursorX()
+{
+ return cuX;
+}
+
+/*! returns the current cursor line.
+*/
+
+int TEScreen::getCursorY()
+{
+ return cuY;
+}
+
+// Erasing ---------------------------------------------------------------------
+
+/*! \section Erasing
+
+ This group of operations erase parts of the screen contents by filling
+ it with spaces colored due to the current rendition settings.
+
+ Althought the cursor position is involved in most of these operations,
+ it is never modified by them.
+*/
+
+/*! fill screen between (including) `loca' and `loce' with spaces.
+
+ This is an internal helper functions. The parameter types are internal
+ addresses of within the screen image and make use of the way how the
+ screen matrix is mapped to the image vector.
+*/
+
+void TEScreen::clearImage(int loca, int loce, char c)
+{ int i;
+ int scr_TL=loc(0,hist->getLines());
+ //FIXME: check positions
+
+ //Clear entire selection if it overlaps region to be moved...
+ if ( (sel_BR > (loca+scr_TL) )&&(sel_TL < (loce+scr_TL)) )
+ {
+ clearSelection();
+ }
+
+ for (i = loca; i <= loce; i++)
+ {
+ // Use the current colors but the default rendition
+ // Check with: echo -e '\033[41;33;07m\033[2Khello world\033[00m'
+ image[i].c = c;
+ image[i].f = cu_fg;
+ image[i].b = cu_bg;
+ image[i].r = DEFAULT_RENDITION;
+ }
+
+ for (i = loca/columns; i<=loce/columns; i++)
+ line_wrapped[i]=false;
+}
+
+/*! move image between (including) `loca' and `loce' to 'dst'.
+
+ This is an internal helper functions. The parameter types are internal
+ addresses of within the screen image and make use of the way how the
+ screen matrix is mapped to the image vector.
+*/
+
+void TEScreen::moveImage(int dst, int loca, int loce)
+{
+//FIXME: check positions
+ if (loce < loca) {
+ kdDebug(1211) << "WARNING!!! call to TEScreen:moveImage with loce < loca!" << endl;
+ return;
+ }
+ //kdDebug(1211) << "Using memmove to scroll up" << endl;
+ memmove(&image[dst],&image[loca],(loce-loca+1)*sizeof(ca));
+ for (int i=0;i<=(loce-loca+1)/columns;i++)
+ line_wrapped[(dst/columns)+i]=line_wrapped[(loca/columns)+i];
+ if (lastPos != -1)
+ {
+ int diff = dst - loca; // Scroll by this amount
+ lastPos += diff;
+ if ((lastPos < 0) || (lastPos >= (lines*columns)))
+ lastPos = -1;
+ }
+ if (sel_begin != -1)
+ {
+ // Adjust selection to follow scroll.
+ bool beginIsTL = (sel_begin == sel_TL);
+ int diff = dst - loca; // Scroll by this amount
+ int scr_TL=loc(0,hist->getLines());
+ int srca = loca+scr_TL; // Translate index from screen to global
+ int srce = loce+scr_TL; // Translate index from screen to global
+ int desta = srca+diff;
+ int deste = srce+diff;
+
+ if ((sel_TL >= srca) && (sel_TL <= srce))
+ sel_TL += diff;
+ else if ((sel_TL >= desta) && (sel_TL <= deste))
+ sel_BR = -1; // Clear selection (see below)
+
+ if ((sel_BR >= srca) && (sel_BR <= srce))
+ sel_BR += diff;
+ else if ((sel_BR >= desta) && (sel_BR <= deste))
+ sel_BR = -1; // Clear selection (see below)
+
+ if (sel_BR < 0)
+ {
+ clearSelection();
+ }
+ else
+ {
+ if (sel_TL < 0)
+ sel_TL = 0;
+ }
+
+ if (beginIsTL)
+ sel_begin = sel_TL;
+ else
+ sel_begin = sel_BR;
+ }
+}
+
+/*! clear from (including) current cursor position to end of screen.
+*/
+
+void TEScreen::clearToEndOfScreen()
+{
+ clearImage(loc(cuX,cuY),loc(columns-1,lines-1),' ');
+}
+
+/*! clear from begin of screen to (including) current cursor position.
+*/
+
+void TEScreen::clearToBeginOfScreen()
+{
+ clearImage(loc(0,0),loc(cuX,cuY),' ');
+}
+
+/*! clear the entire screen.
+*/
+
+void TEScreen::clearEntireScreen()
+{
+ // Add entire screen to history
+ for (int i = 0; i < (lines-1); i++)
+ {
+ addHistLine(); scrollUp(0,1);
+ }
+
+ clearImage(loc(0,0),loc(columns-1,lines-1),' ');
+}
+
+/*! fill screen with 'E'
+ This is to aid screen alignment
+*/
+
+void TEScreen::helpAlign()
+{
+ clearImage(loc(0,0),loc(columns-1,lines-1),'E');
+}
+
+/*! clear from (including) current cursor position to end of current cursor line.
+*/
+
+void TEScreen::clearToEndOfLine()
+{
+ clearImage(loc(cuX,cuY),loc(columns-1,cuY),' ');
+}
+
+/*! clear from begin of current cursor line to (including) current cursor position.
+*/
+
+void TEScreen::clearToBeginOfLine()
+{
+ clearImage(loc(0,cuY),loc(cuX,cuY),' ');
+}
+
+/*! clears entire current cursor line
+*/
+
+void TEScreen::clearEntireLine()
+{
+ clearImage(loc(0,cuY),loc(columns-1,cuY),' ');
+}
+
+// Rendition ------------------------------------------------------------------
+
+/*!
+ set rendition mode
+*/
+
+void TEScreen::setRendition(int re)
+{
+ cu_re |= re;
+ effectiveRendition();
+}
+
+/*!
+ reset rendition mode
+*/
+
+void TEScreen::resetRendition(int re)
+{
+ cu_re &= ~re;
+ effectiveRendition();
+}
+
+/*!
+*/
+
+void TEScreen::setDefaultRendition()
+{
+ setForeColor(CO_DFT,DEFAULT_FORE_COLOR);
+ setBackColor(CO_DFT,DEFAULT_BACK_COLOR);
+ cu_re = DEFAULT_RENDITION;
+ effectiveRendition();
+}
+
+/*!
+*/
+void TEScreen::setForeColor(int space, int color)
+{
+ cu_fg = cacol(space, color);
+ effectiveRendition();
+}
+
+/*!
+*/
+void TEScreen::setBackColor(int space, int color)
+{
+ cu_bg = cacol(space, color);
+ effectiveRendition();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Marking & Selection */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEScreen::clearSelection()
+{
+ sel_BR = -1;
+ sel_TL = -1;
+ sel_begin = -1;
+}
+
+void TEScreen::setSelBeginXY(const int x, const int y, const bool mode)
+{
+// kdDebug(1211) << "setSelBeginXY(" << x << "," << y << ")" << endl;
+ sel_begin = loc(x,y+histCursor) ;
+
+ /* FIXME, HACK to correct for x too far to the right... */
+ if (x == columns) sel_begin--;
+
+ sel_BR = sel_begin;
+ sel_TL = sel_begin;
+ columnmode = mode;
+}
+
+void TEScreen::setSelExtentXY(const int x, const int y)
+{
+// kdDebug(1211) << "setSelExtentXY(" << x << "," << y << ")" << endl;
+ if (sel_begin == -1) return;
+ int l = loc(x,y + histCursor);
+
+ if (l < sel_begin)
+ {
+ sel_TL = l;
+ sel_BR = sel_begin;
+ }
+ else
+ {
+ /* FIXME, HACK to correct for x too far to the right... */
+ if (x == columns) l--;
+
+ sel_TL = sel_begin;
+ sel_BR = l;
+ }
+}
+
+bool TEScreen::testIsSelected(const int x,const int y)
+{
+ if (columnmode) {
+ int sel_Left,sel_Right;
+ if ( sel_TL % columns < sel_BR % columns ) {
+ sel_Left = sel_TL; sel_Right = sel_BR;
+ } else {
+ sel_Left = sel_BR; sel_Right = sel_TL;
+ }
+ return ( x >= sel_Left % columns ) && ( x <= sel_Right % columns ) &&
+ ( y+histCursor >= sel_TL / columns ) && ( y+histCursor <= sel_BR / columns );
+ }
+ else {
+ int pos = loc(x,y+histCursor);
+ return ( pos >= sel_TL && pos <= sel_BR );
+ }
+}
+
+static bool isSpace(UINT16 c)
+{
+ if ((c > 32) && (c < 127))
+ return false;
+ if ((c == 32) || (c == 0))
+ return true;
+ QChar qc(c);
+ return qc.isSpace();
+}
+
+QString TEScreen::getSelText(bool preserve_line_breaks)
+{
+ QString result;
+ QTextOStream stream(&result);
+ getSelText(preserve_line_breaks, &stream);
+ return result;
+}
+
+
+static QString makeString(int *m, int d, bool stripTrailingSpaces)
+{
+ QChar* qc = new QChar[d];
+
+ int last_space = -1;
+ int j = 0;
+
+ for (int i = 0; i < d; i++, j++)
+ {
+ if (m[i] == ' ')
+ {
+ if (last_space == -1)
+ last_space = j;
+ }
+ else
+ {
+ last_space = -1;
+ }
+ qc[j] = m[i];
+ }
+
+ if ((last_space != -1) && stripTrailingSpaces)
+ {
+ // Strip trailing spaces
+ j = last_space;
+ }
+
+ QString res(qc, j);
+ delete [] qc;
+ return res;
+}
+
+void TEScreen::getSelText(bool preserve_line_breaks, QTextStream *stream)
+{
+ if (sel_begin == -1)
+ return; // Selection got clear while selecting.
+
+ int *m; // buffer to fill.
+ int s, d; // source index, dest. index.
+ int hist_BR = loc(0, hist->getLines());
+ int hY = sel_TL / columns;
+ int hX = sel_TL % columns;
+ int eol; // end of line
+
+ s = sel_TL; // tracks copy in source.
+
+ // allocate buffer for maximum
+ // possible size...
+ d = (sel_BR - sel_TL) / columns + 1;
+ m = new int[columns + 3];
+ d = 0;
+
+#define LINE_END do { \
+ assert(d <= columns); \
+ *stream << makeString(m, d, true) << (preserve_line_breaks ? "\n" : " "); \
+ d = 0; \
+ } while(false)
+#define LINE_WRAP do { \
+ assert(d <= columns); \
+ *stream << makeString(m, d, false); \
+ d = 0; \
+ } while(false)
+#define LINE_FLUSH do { \
+ assert(d <= columns); \
+ *stream << makeString(m, d, false); \
+ d = 0; \
+ } while(false)
+
+ if (columnmode) {
+ bool newlineneeded=false;
+ preserve_line_breaks = true; // Just in case
+
+ int sel_Left, sel_Right;
+ if ( sel_TL % columns < sel_BR % columns ) {
+ sel_Left = sel_TL; sel_Right = sel_BR;
+ } else {
+ sel_Left = sel_BR; sel_Right = sel_TL;
+ }
+
+ while (s <= sel_BR) {
+ if (s < hist_BR) { // get lines from hist->history buffer.
+ hX = sel_Left % columns;
+ eol = hist->getLineLen(hY);
+ if (eol > columns)
+ eol = columns;
+ if ((hY == (sel_BR / columns)) &&
+ (eol > (sel_BR % columns)))
+ {
+ eol = sel_BR % columns + 1;
+ }
+
+ while (hX < eol && hX <= sel_Right % columns)
+ {
+ Q_UINT16 c = hist->getCell(hY, hX++).c;
+ if (c)
+ m[d++] = c;
+ s++;
+ }
+ LINE_END;
+
+ hY++;
+ s = hY * columns;
+ }
+ else { // or from screen image.
+ if (testIsSelected((s - hist_BR) % columns, (s - hist_BR) / columns)) {
+ Q_UINT16 c = image[s++ - hist_BR].c;
+ if (c) {
+ m[d++] = c;
+ newlineneeded = true;
+ }
+ if (((s - hist_BR) % columns == 0) && newlineneeded)
+ {
+ LINE_END;
+ newlineneeded = false;
+ }
+ }
+ else {
+ s++;
+ if (newlineneeded) {
+ LINE_END;
+ newlineneeded = false;
+ }
+ }
+ }
+ }
+ if (newlineneeded)
+ LINE_END;
+ }
+ else
+ {
+ while (s <= sel_BR)
+ {
+ if (s < hist_BR)
+ { // get lines from hist->history buffer.
+ eol = hist->getLineLen(hY);
+ if (eol > columns)
+ eol = columns;
+
+ if ((hY == (sel_BR / columns)) &&
+ (eol > (sel_BR % columns)))
+ {
+ eol = sel_BR % columns + 1;
+ }
+
+ while (hX < eol)
+ {
+ Q_UINT16 c = hist->getCell(hY, hX++).c;
+ if (c)
+ m[d++] = c;
+ s++;
+ }
+
+ if (s <= sel_BR)
+ { // The line break handling
+ bool wrap = false;
+ if (eol % columns == 0)
+ { // That's either a full or empty line
+ if ((eol != 0) && hist->isWrappedLine(hY))
+ wrap = true;
+ }
+ else if ((eol + 1) % columns == 0)
+ {
+ if (hist->isWrappedLine(hY))
+ wrap = true;
+ }
+
+ if (wrap)
+ {
+ LINE_WRAP;
+ }
+ else
+ {
+ LINE_END;
+ }
+
+ }
+ else
+ {
+ // Flush trailing stuff
+ LINE_FLUSH;
+ }
+
+ hY++;
+ hX = 0;
+ s = hY * columns;
+ }
+ else
+ { // or from screen image.
+ eol = (s / columns + 1) * columns - 1;
+
+ bool addNewLine = false;
+
+ if (eol < sel_BR)
+ {
+ while ((eol > s) &&
+ (!image[eol - hist_BR].c || isSpace(image[eol - hist_BR].c)) &&
+ !line_wrapped[(eol-hist_BR)/columns])
+ {
+ eol--;
+ }
+ }
+ else if (eol == sel_BR)
+ {
+ if (!line_wrapped[(eol - hist_BR)/columns])
+ addNewLine = true;
+ }
+ else
+ {
+ eol = sel_BR;
+ }
+
+ while (s <= eol)
+ {
+ Q_UINT16 c = image[s++ - hist_BR].c;
+ if (c)
+ m[d++] = c;
+ }
+
+ if (eol < sel_BR)
+ { // eol processing
+ bool wrap = false;
+ if ((eol + 1) % columns == 0)
+ { // the whole line is filled
+ if (line_wrapped[(eol - hist_BR)/columns])
+ wrap = true;
+ }
+ if (wrap)
+ {
+ LINE_WRAP;
+ }
+ else
+ {
+ LINE_END;
+ }
+ }
+ else
+ {
+ // Flush trailing stuff
+ if (addNewLine && preserve_line_breaks)
+ {
+ LINE_END;
+ }
+ else
+ {
+ LINE_FLUSH;
+ }
+ }
+
+ s = (eol / columns + 1) * columns;
+ }
+ }
+ }
+
+ assert(d == 0);
+
+ delete [] m;
+}
+
+void TEScreen::streamHistory(QTextStream* stream) {
+ sel_begin = 0;
+ sel_BR = sel_begin;
+ sel_TL = sel_begin;
+ setSelExtentXY(columns-1,lines-1+hist->getLines()-histCursor);
+ getSelText(true, stream);
+ clearSelection();
+}
+
+QString TEScreen::getHistoryLine(int no)
+{
+ sel_begin = loc(0,no);
+ sel_TL = sel_begin;
+ sel_BR = loc(columns-1,no);
+ return getSelText(false);
+}
+
+void TEScreen::addHistLine()
+{
+ assert(hasScroll() || histCursor == 0);
+
+ // add to hist buffer
+ // we have to take care about scrolling, too...
+
+ if (hasScroll())
+ { ca dft;
+
+ int end = columns-1;
+ while (end >= 0 && image[end] == dft && !line_wrapped[0])
+ end -= 1;
+
+ int oldHistLines = hist->getLines();
+
+ hist->addCells(image,end+1);
+ hist->addLine(line_wrapped[0]);
+
+ int newHistLines = hist->getLines();
+
+ bool beginIsTL = (sel_begin == sel_TL);
+
+ // adjust history cursor
+ if (newHistLines > oldHistLines)
+ {
+ histCursor++;
+ // Adjust selection for the new point of reference
+ if (sel_begin != -1)
+ {
+ sel_TL += columns;
+ sel_BR += columns;
+ }
+ }
+
+ // Scroll up if user is looking at the history and we can scroll up
+ if ((histCursor > 0) && // We can scroll up and...
+ ((histCursor != newHistLines) || // User is looking at history...
+ sel_busy)) // or user is selecting text.
+ {
+ histCursor--;
+ }
+
+ if (sel_begin != -1)
+ {
+ // Scroll selection in history up
+ int top_BR = loc(0, 1+newHistLines);
+
+ if (sel_TL < top_BR)
+ sel_TL -= columns;
+
+ if (sel_BR < top_BR)
+ sel_BR -= columns;
+
+ if (sel_BR < 0)
+ {
+ clearSelection();
+ }
+ else
+ {
+ if (sel_TL < 0)
+ sel_TL = 0;
+ }
+
+ if (beginIsTL)
+ sel_begin = sel_TL;
+ else
+ sel_begin = sel_BR;
+ }
+ }
+
+ if (!hasScroll()) histCursor = 0; //FIXME: a poor workaround
+}
+
+void TEScreen::setHistCursor(int cursor)
+{
+ histCursor = cursor; //FIXME:rangecheck
+}
+
+int TEScreen::getHistCursor()
+{
+ return histCursor;
+}
+
+int TEScreen::getHistLines()
+{
+ return hist->getLines();
+}
+
+void TEScreen::setScroll(const HistoryType& t)
+{
+ clearSelection();
+ hist = t.getScroll(hist);
+ histCursor = hist->getLines();
+}
+
+bool TEScreen::hasScroll()
+{
+ return hist->hasScroll();
+}
+
+const HistoryType& TEScreen::getScroll()
+{
+ return hist->getType();
+}
diff --git a/konsole/konsole/TEScreen.h b/konsole/konsole/TEScreen.h
new file mode 100644
index 000000000..55cbcb07c
--- /dev/null
+++ b/konsole/konsole/TEScreen.h
@@ -0,0 +1,279 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef TESCREEN_H
+#define TESCREEN_H
+
+#include "TECommon.h"
+#include "TEHistory.h"
+
+#define MODE_Origin 0
+#define MODE_Wrap 1
+#define MODE_Insert 2
+#define MODE_Screen 3
+#define MODE_Cursor 4
+#define MODE_NewLine 5
+#define MODES_SCREEN 6
+
+/*!
+*/
+struct ScreenParm
+{
+ int mode[MODES_SCREEN];
+};
+
+
+class TEScreen
+{
+public:
+ TEScreen(int lines, int columns);
+ ~TEScreen();
+
+public: // these are all `Screen' operations
+ //
+ // VT100/2 Operations ------------------
+ //
+ // Cursor Movement
+ //
+ void cursorUp (int n);
+ void cursorDown (int n);
+ void cursorLeft (int n);
+ void cursorRight (int n);
+ void setCursorY (int y);
+ void setCursorX (int x);
+ void setCursorYX (int y, int x);
+ void setMargins (int t, int b);
+ //
+ // Cursor Movement with Scrolling
+ //
+ void NewLine ();
+ void NextLine ();
+ void index ();
+ void reverseIndex();
+ //
+ // Scrolling
+ //
+ void scrollUp(int n);
+ void scrollDown(int n);
+ //
+ void Return ();
+ void BackSpace ();
+ void Tabulate (int n = 1);
+ void backTabulate(int n);
+ //
+ // Editing
+ //
+ void eraseChars (int n);
+ void deleteChars (int n);
+ void insertChars (int n);
+ void deleteLines (int n);
+ void insertLines (int n);
+ //
+ // -------------------------------------
+ //
+ void clearTabStops();
+ void changeTabStop(bool set);
+ //
+ void resetMode (int n);
+ void setMode (int n);
+ void saveMode (int n);
+ void restoreMode (int n);
+ //
+ void saveCursor ();
+ void restoreCursor();
+ //
+ // -------------------------------------
+ //
+ void clearEntireScreen();
+ void clearToEndOfScreen();
+ void clearToBeginOfScreen();
+ //
+ void clearEntireLine();
+ void clearToEndOfLine();
+ void clearToBeginOfLine();
+ //
+ void helpAlign ();
+ //
+ // -------------------------------------
+ //
+ void setRendition (int rendition);
+ void resetRendition(int rendition);
+ //
+ void setForeColor (int space, int color);
+ void setBackColor (int space, int color);
+ //
+ void setDefaultRendition();
+ //
+ // -------------------------------------
+ //
+ bool getMode (int n);
+ //
+ // only for report cursor position
+ //
+ int getCursorX();
+ int getCursorY();
+ //
+ // -------------------------------------
+ //
+ void clear();
+ void home();
+ void reset();
+ // Show character
+ void ShowCharacter(unsigned short c);
+
+ // Do composition with last shown character
+ void compose(QString compose);
+
+ //
+ void resizeImage(int new_lines, int new_columns);
+ //
+ ca* getCookedImage();
+ QBitArray getCookedLineWrapped();
+
+ /*! return the number of lines. */
+ int getLines() { return lines; }
+ /*! return the number of columns. */
+ int getColumns() { return columns; }
+
+ /*! set the position of the history cursor. */
+ void setHistCursor(int cursor);
+ /*! return the position of the history cursor. */
+
+ int getHistCursor();
+ int getHistLines ();
+ void setScroll(const HistoryType&);
+ const HistoryType& getScroll();
+ bool hasScroll();
+
+ //
+ // Selection
+ //
+ void setSelBeginXY(const int x, const int y, const bool columnmode);
+ void setSelExtentXY(const int x, const int y);
+ void clearSelection();
+ void setBusySelecting(bool busy) { sel_busy = busy; }
+ bool testIsSelected(const int x,const int y);
+
+ QString getSelText(bool preserve_line_breaks);
+ void getSelText(bool preserve_line_breaks, QTextStream* stream);
+ void streamHistory(QTextStream* stream);
+ QString getHistoryLine(int no);
+
+ void checkSelection(int from, int to);
+
+private: // helper
+
+ void clearImage(int loca, int loce, char c);
+ void moveImage(int dst, int loca, int loce);
+
+ void scrollUp(int from, int i);
+ void scrollDown(int from, int i);
+
+ void addHistLine();
+
+ void initTabStops();
+
+ void effectiveRendition();
+ void reverseRendition(ca* p);
+
+ /*
+ The state of the screen is more complex as one would
+ expect first. The screem does really do part of the
+ emulation providing state informations in form of modes,
+ margins, tabulators, cursor etc.
+
+ Even more unexpected are variables to save and restore
+ parts of the state.
+ */
+
+ // screen image ----------------
+
+ int lines;
+ int columns;
+ ca *image; // [lines][columns]
+ QBitArray line_wrapped; // [lines]
+
+ // history buffer ---------------
+
+ int histCursor; // display position relative to start of the history buffer
+ HistoryScroll *hist;
+
+ // cursor location
+
+ int cuX;
+ int cuY;
+
+ // cursor color and rendition info
+
+ cacol cu_fg; // foreground
+ cacol cu_bg; // background
+ UINT8 cu_re; // rendition
+
+ // margins ----------------
+
+ int tmargin; // top margin
+ int bmargin; // bottom margin
+
+ // states ----------------
+
+ ScreenParm currParm;
+
+ // ----------------------------
+
+ bool* tabstops;
+
+ // selection -------------------
+
+ int sel_begin; // The first location selected.
+ int sel_TL; // TopLeft Location.
+ int sel_BR; // Bottom Right Location.
+ bool sel_busy; // Busy making a selection.
+ bool columnmode; // Column selection mode
+
+ // effective colors and rendition ------------
+
+ cacol ef_fg; // These are derived from
+ cacol ef_bg; // the cu_* variables above
+ UINT8 ef_re; // to speed up operation
+
+ //
+ // save cursor, rendition & states ------------
+ //
+
+ // cursor location
+
+ int sa_cuX;
+ int sa_cuY;
+
+ // rendition info
+
+ UINT8 sa_cu_re;
+ cacol sa_cu_fg;
+ cacol sa_cu_bg;
+
+ // last position where we added a character
+ int lastPos;
+
+ // modes
+
+ ScreenParm saveParm;
+};
+
+#endif // TESCREEN_H
diff --git a/konsole/konsole/TEWidget.cpp b/konsole/konsole/TEWidget.cpp
new file mode 100644
index 000000000..03020a767
--- /dev/null
+++ b/konsole/konsole/TEWidget.cpp
@@ -0,0 +1,2326 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*! \class TEWidget
+
+ \brief Visible screen contents
+
+ This class is responsible to map the `image' of a terminal emulation to the
+ display. All the dependency of the emulation to a specific GUI or toolkit is
+ localized here. Further, this widget has no knowledge about being part of an
+ emulation, it simply work within the terminal emulation framework by exposing
+ size and key events and by being ordered to show a new image.
+
+ <ul>
+ <li> The internal image has the size of the widget (evtl. rounded up)
+ <li> The external image used in setImage can have any size.
+ <li> (internally) the external image is simply copied to the internal
+ when a setImage happens. During a resizeEvent no painting is done
+ a paintEvent is expected to follow anyway.
+ </ul>
+
+ \sa TEScreen \sa Emulation
+*/
+
+/* FIXME:
+ - 'image' may also be used uninitialized (it isn't in fact) in resizeEvent
+ - 'font_a' not used in mouse events
+ - add destructor
+*/
+
+/* TODO
+ - evtl. be sensitive to `paletteChange' while using default colors.
+ - set different 'rounding' styles? I.e. have a mode to show clipped
+ chars?
+*/
+
+#include "config.h"
+#include "TEWidget.h"
+#include "konsole_wcwidth.h"
+
+#include <qapplication.h>
+#include <qpainter.h>
+#include <qclipboard.h>
+#include <qstyle.h>
+#include <qfile.h>
+#include <qdragobject.h>
+#include <qlayout.h>
+#include <qregexp.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#include <assert.h>
+
+#include <krun.h>
+#include <kcursor.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <knotifyclient.h>
+#include <kglobalsettings.h>
+#include <kshortcut.h>
+#include <kurldrag.h>
+#include <kio/netaccess.h>
+#include <qlabel.h>
+#include <qtimer.h>
+
+#ifndef loc
+#define loc(X,Y) ((Y)*columns+(X))
+#endif
+
+#define SCRWIDTH 16 // width of the scrollbar
+
+#define yMouseScroll 1
+
+#define REPCHAR "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ "abcdefgjijklmnopqrstuvwxyz" \
+ "0123456789./+@"
+
+extern bool argb_visual; // declared in main.cpp and konsole_part.cpp
+
+// scroll increment used when dragging selection at top/bottom of window.
+
+// static
+bool TEWidget::s_antialias = true;
+bool TEWidget::s_standalone = false;
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Colors */
+/* */
+/* ------------------------------------------------------------------------- */
+
+//FIXME: the default color table is in session.C now.
+// We need a way to get rid of this one, here.
+static const ColorEntry base_color_table[TABLE_COLORS] =
+// The following are almost IBM standard color codes, with some slight
+// gamma correction for the dim colors to compensate for bright X screens.
+// It contains the 8 ansiterm/xterm colors in 2 intensities.
+{
+ // Fixme: could add faint colors here, also.
+ // normal
+ ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback
+ ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red
+ ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow
+ ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta
+ ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White
+ // intensiv
+ ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ),
+ ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ),
+ ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ),
+ ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0xFF), 0, 0 ),
+ ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 )
+};
+
+/* Note that we use ANSI color order (bgr), while IBMPC color order is (rgb)
+
+ Code 0 1 2 3 4 5 6 7
+ ----------- ------- ------- ------- ------- ------- ------- ------- -------
+ ANSI (bgr) Black Red Green Yellow Blue Magenta Cyan White
+ IBMPC (rgb) Black Blue Green Cyan Red Magenta Yellow White
+*/
+
+void TEWidget::setDefaultBackColor(const QColor& color)
+{
+ defaultBgColor = color;
+ if (qAlpha(blend_color) != 0xff && !backgroundPixmap())
+ setBackgroundColor(getDefaultBackColor());
+}
+
+QColor TEWidget::getDefaultBackColor()
+{
+ if (defaultBgColor.isValid())
+ return defaultBgColor;
+ return color_table[DEFAULT_BACK_COLOR].color;
+}
+
+const ColorEntry* TEWidget::getColorTable() const
+{
+ return color_table;
+}
+
+void TEWidget::setColorTable(const ColorEntry table[])
+{
+ for (int i = 0; i < TABLE_COLORS; i++) color_table[i] = table[i];
+ const QPixmap* pm = backgroundPixmap();
+ if (!pm)
+ if (!argb_visual || (qAlpha(blend_color) == 0xff))
+ setBackgroundColor(getDefaultBackColor());
+ else {
+ float alpha = qAlpha(blend_color) / 255.;
+ int pixel = qAlpha(blend_color) << 24 |
+ int(qRed(blend_color) * alpha) << 16 |
+ int(qGreen(blend_color) * alpha) << 8 |
+ int(qBlue(blend_color) * alpha);
+ setBackgroundColor(QColor(blend_color, pixel));
+ }
+ update();
+}
+
+//FIXME: add backgroundPixmapChanged.
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Font */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*
+ The VT100 has 32 special graphical characters. The usual vt100 extended
+ xterm fonts have these at 0x00..0x1f.
+
+ QT's iso mapping leaves 0x00..0x7f without any changes. But the graphicals
+ come in here as proper unicode characters.
+
+ We treat non-iso10646 fonts as VT100 extended and do the requiered mapping
+ from unicode to 0x00..0x1f. The remaining translation is then left to the
+ QCodec.
+*/
+
+static inline bool isLineChar(Q_UINT16 c) { return ((c & 0xFF80) == 0x2500);}
+
+// assert for i in [0..31] : vt100extended(vt100_graphics[i]) == i.
+
+unsigned short vt100_graphics[32] =
+{ // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15
+ 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0,
+ 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c,
+ 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534,
+ 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7
+};
+
+/*
+static QChar vt100extended(QChar c)
+{
+ switch (c.unicode())
+ {
+ case 0x25c6 : return 1;
+ case 0x2592 : return 2;
+ case 0x2409 : return 3;
+ case 0x240c : return 4;
+ case 0x240d : return 5;
+ case 0x240a : return 6;
+ case 0x00b0 : return 7;
+ case 0x00b1 : return 8;
+ case 0x2424 : return 9;
+ case 0x240b : return 10;
+ case 0x2518 : return 11;
+ case 0x2510 : return 12;
+ case 0x250c : return 13;
+ case 0x2514 : return 14;
+ case 0x253c : return 15;
+ case 0xf800 : return 16;
+ case 0xf801 : return 17;
+ case 0x2500 : return 18;
+ case 0xf803 : return 19;
+ case 0xf804 : return 20;
+ case 0x251c : return 21;
+ case 0x2524 : return 22;
+ case 0x2534 : return 23;
+ case 0x252c : return 24;
+ case 0x2502 : return 25;
+ case 0x2264 : return 26;
+ case 0x2265 : return 27;
+ case 0x03c0 : return 28;
+ case 0x2260 : return 29;
+ case 0x00a3 : return 30;
+ case 0x00b7 : return 31;
+ }
+ return c;
+}
+
+static QChar identicalMap(QChar c)
+{
+ return c;
+}
+*/
+
+void TEWidget::fontChange(const QFont &)
+{
+ QFontMetrics fm(font());
+ font_h = fm.height() + m_lineSpacing;
+
+ // waba TEWidget 1.123:
+ // "Base character width on widest ASCII character. This prevents too wide
+ // characters in the presence of double wide (e.g. Japanese) characters."
+ // Get the width from representative normal width characters
+ font_w = qRound((double)fm.width(REPCHAR)/(double)strlen(REPCHAR));
+
+ fixed_font = true;
+ int fw = fm.width(REPCHAR[0]);
+ for(unsigned int i=1; i< strlen(REPCHAR); i++){
+ if (fw != fm.width(REPCHAR[i])){
+ fixed_font = false;
+ break;
+ }
+ }
+
+ if (font_w>200) // don't trust unrealistic value, fallback to QFontMetrics::maxWidth()
+ font_w=fm.maxWidth();
+ if (font_w<1)
+ font_w=1;
+
+ font_a = fm.ascent();
+//printf("font: %s\n", font().toString().latin1());
+//printf("fixed: %s\n", font().fixedPitch() ? "yes" : "no");
+//printf("fixed_font: %d\n", fixed_font);
+//printf("font_h: %d\n",font_h);
+//printf("font_w: %d\n",font_w);
+//printf("fw: %d\n",fw);
+//printf("font_a: %d\n",font_a);
+//printf("rawname: %s\n",font().rawName().ascii());
+
+/*
+#if defined(Q_CC_GNU)
+#warning TODO: Review/fix vt100 extended font-mapping
+#endif
+*/
+
+// fontMap = identicalMap;
+ emit changedFontMetricSignal( font_h, font_w );
+ propagateSize();
+ update();
+}
+
+void TEWidget::setVTFont(const QFont& f)
+{
+ QFont font = f;
+
+ // the font must be small enough to allow at least one line and one character of text to fit
+ // on screen
+ QFontMetrics metrics(f);
+ if ( metrics.height() < height() && metrics.maxWidth() < width() )
+ {
+ if (!s_antialias)
+ font.setStyleStrategy( QFont::NoAntialias );
+ QFrame::setFont(font);
+ fontChange(font);
+ }
+}
+
+void TEWidget::setFont(const QFont &)
+{
+ // ignore font change request if not coming from konsole itself
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Constructor / Destructor */
+/* */
+/* ------------------------------------------------------------------------- */
+
+TEWidget::TEWidget(QWidget *parent, const char *name)
+:QFrame(parent,name,WNoAutoErase)
+,font_h(1)
+,font_w(1)
+,font_a(1)
+,lines(1)
+,columns(1)
+,contentHeight(1)
+,contentWidth(1)
+,image(0)
+,resizing(false)
+,terminalSizeHint(false)
+,terminalSizeStartup(true)
+,bidiEnabled(false)
+,actSel(0)
+,word_selection_mode(false)
+,line_selection_mode(false)
+,preserve_line_breaks(true)
+,column_selection_mode(false)
+,scrollLoc(SCRNONE)
+,word_characters(":@-./_~")
+,m_bellMode(BELLSYSTEM)
+,blinking(false)
+,cursorBlinking(false)
+,hasBlinkingCursor(false)
+,ctrldrag(false)
+,cuttobeginningofline(false)
+,isBlinkEvent(false)
+,isPrinting(false)
+,printerFriendly(false)
+,printerBold(false)
+,isFixedSize(false)
+,m_drop(0)
+,possibleTripleClick(false)
+,mResizeWidget(0)
+,mResizeLabel(0)
+,mResizeTimer(0)
+,m_lineSpacing(0)
+,colorsSwapped(false)
+,rimX(1)
+,rimY(1)
+,m_imPreeditText(QString::null)
+,m_imPreeditLength(0)
+,m_imStart(0)
+,m_imStartLine(0)
+,m_imEnd(0)
+,m_imSelStart(0)
+,m_imSelEnd(0)
+,m_cursorLine(0)
+,m_cursorCol(0)
+,m_isIMEdit(false)
+,m_isIMSel(false)
+,blend_color(qRgba(0,0,0,0xff))
+{
+ // The offsets are not yet calculated.
+ // Do not calculate these too often to be more smoothly when resizing
+ // konsole in opaque mode.
+ bY = bX = 1;
+
+ cb = QApplication::clipboard();
+ QObject::connect( (QObject*)cb, SIGNAL(selectionChanged()),
+ this, SLOT(onClearSelection()) );
+
+ scrollbar = new QScrollBar(this);
+ scrollbar->setCursor( arrowCursor );
+ connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int)));
+
+ blinkT = new QTimer(this);
+ connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent()));
+ blinkCursorT = new QTimer(this);
+ connect(blinkCursorT, SIGNAL(timeout()), this, SLOT(blinkCursorEvent()));
+
+ setMouseMarks(true);
+ setColorTable(base_color_table); // init color table
+
+ qApp->installEventFilter( this ); //FIXME: see below
+ KCursor::setAutoHideCursor( this, true );
+
+ // Init DnD ////////////////////////////////////////////////////////////////
+ setAcceptDrops(true); // attempt
+ dragInfo.state = diNone;
+
+ setFocusPolicy( WheelFocus );
+
+ // im
+ setInputMethodEnabled(true);
+
+ if (!argb_visual)
+ {
+ // Looks better at startup with KRootPixmap based pseudo-transparancy
+ setBackgroundMode(NoBackground);
+ }
+}
+
+//FIXME: make proper destructor
+// Here's a start (David)
+TEWidget::~TEWidget()
+{
+ qApp->removeEventFilter( this );
+ if (image) free(image);
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Display Operations */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/**
+ A table for emulating the simple (single width) unicode drawing chars.
+ It represents the 250x - 257x glyphs. If it's zero, we can't use it.
+ if it's not, it's encoded as follows: imagine a 5x5 grid where the points are numbered
+ 0 to 24 left to top, top to bottom. Each point is represented by the corresponding bit.
+
+ Then, the pixels basically have the following interpretation:
+ _|||_
+ -...-
+ -...-
+ -...-
+ _|||_
+
+where _ = none
+ | = vertical line.
+ - = horizontal line.
+ */
+
+
+enum LineEncode
+{
+ TopL = (1<<1),
+ TopC = (1<<2),
+ TopR = (1<<3),
+
+ LeftT = (1<<5),
+ Int11 = (1<<6),
+ Int12 = (1<<7),
+ Int13 = (1<<8),
+ RightT = (1<<9),
+
+ LeftC = (1<<10),
+ Int21 = (1<<11),
+ Int22 = (1<<12),
+ Int23 = (1<<13),
+ RightC = (1<<14),
+
+ LeftB = (1<<15),
+ Int31 = (1<<16),
+ Int32 = (1<<17),
+ Int33 = (1<<18),
+ RightB = (1<<19),
+
+ BotL = (1<<21),
+ BotC = (1<<22),
+ BotR = (1<<23)
+};
+
+#include "linefont.h"
+
+static void drawLineChar(QPainter& paint, int x, int y, int w, int h, uchar code)
+{
+ //Calculate cell midpoints, end points.
+ int cx = x + w/2;
+ int cy = y + h/2;
+ int ex = x + w - 1;
+ int ey = y + h - 1;
+
+ Q_UINT32 toDraw = LineChars[code];
+
+ //Top lines:
+ if (toDraw & TopL)
+ paint.drawLine(cx-1, y, cx-1, cy-2);
+ if (toDraw & TopC)
+ paint.drawLine(cx, y, cx, cy-2);
+ if (toDraw & TopR)
+ paint.drawLine(cx+1, y, cx+1, cy-2);
+
+ //Bot lines:
+ if (toDraw & BotL)
+ paint.drawLine(cx-1, cy+2, cx-1, ey);
+ if (toDraw & BotC)
+ paint.drawLine(cx, cy+2, cx, ey);
+ if (toDraw & BotR)
+ paint.drawLine(cx+1, cy+2, cx+1, ey);
+
+ //Left lines:
+ if (toDraw & LeftT)
+ paint.drawLine(x, cy-1, cx-2, cy-1);
+ if (toDraw & LeftC)
+ paint.drawLine(x, cy, cx-2, cy);
+ if (toDraw & LeftB)
+ paint.drawLine(x, cy+1, cx-2, cy+1);
+
+ //Right lines:
+ if (toDraw & RightT)
+ paint.drawLine(cx+2, cy-1, ex, cy-1);
+ if (toDraw & RightC)
+ paint.drawLine(cx+2, cy, ex, cy);
+ if (toDraw & RightB)
+ paint.drawLine(cx+2, cy+1, ex, cy+1);
+
+ //Intersection points.
+ if (toDraw & Int11)
+ paint.drawPoint(cx-1, cy-1);
+ if (toDraw & Int12)
+ paint.drawPoint(cx, cy-1);
+ if (toDraw & Int13)
+ paint.drawPoint(cx+1, cy-1);
+
+ if (toDraw & Int21)
+ paint.drawPoint(cx-1, cy);
+ if (toDraw & Int22)
+ paint.drawPoint(cx, cy);
+ if (toDraw & Int23)
+ paint.drawPoint(cx+1, cy);
+
+ if (toDraw & Int31)
+ paint.drawPoint(cx-1, cy+1);
+ if (toDraw & Int32)
+ paint.drawPoint(cx, cy+1);
+ if (toDraw & Int33)
+ paint.drawPoint(cx+1, cy+1);
+
+}
+
+void TEWidget::drawTextFixed(QPainter &paint, int x, int y,
+ QString& str, const ca *attr)
+{
+ QString drawstr;
+ unsigned int nc=0;
+ int w;
+ for(unsigned int i=0;i<str.length();i++)
+ {
+ drawstr = str.at(i);
+ // Add double of the width if next c is 0;
+ if ((attr+nc+1)->c) // This may access image[image_size] See makeImage()
+ {
+ w = font_w;
+ nc++;
+ }
+ else
+ {
+ w = font_w*2;
+ nc+=2;
+ }
+
+ //Check for line-drawing char
+ if (isLineChar(drawstr[0].unicode()))
+ {
+ uchar code = drawstr[0].cell();
+ if (LineChars[code])
+ {
+ drawLineChar(paint, x, y, w, font_h, code);
+ x += w;
+ continue;
+ }
+ }
+
+ paint.drawText(x,y, w, font_h, Qt::AlignHCenter | Qt::DontClip, drawstr, -1);
+ x += w;
+ }
+}
+
+
+/*!
+ attributed string draw primitive
+*/
+
+void TEWidget::drawAttrStr(QPainter &paint, QRect rect,
+ QString& str, const ca *attr, bool pm, bool clear)
+{
+ int a = font_a + m_lineSpacing / 2;
+ QColor fColor = printerFriendly ? Qt::black : attr->f.color(color_table);
+ QColor bColor = attr->b.color(color_table);
+ QString drawstr;
+
+ if ((attr->r & RE_CURSOR) && !isPrinting)
+ cursorRect = rect;
+
+ // Paint background
+ if (!printerFriendly)
+ {
+ if (attr->isTransparent(color_table))
+ {
+ if (pm)
+ paint.setBackgroundMode( TransparentMode );
+ if (clear || (blinking && (attr->r & RE_BLINK)))
+ erase(rect);
+ }
+ else
+ {
+ if (pm || clear || (blinking && (attr->r & RE_BLINK)) ||
+ attr->b == cacol(CO_DFT, colorsSwapped ? DEFAULT_FORE_COLOR : DEFAULT_BACK_COLOR) )
+
+ // draw background colors with 75% opacity
+ if ( argb_visual && qAlpha(blend_color) < 0xff ) {
+ QRgb col = bColor.rgb();
+
+ Q_UINT8 salpha = 192;
+ Q_UINT8 dalpha = 255 - salpha;
+
+ int a, r, g, b;
+ a = QMIN( (qAlpha (col) * salpha) / 255 + (qAlpha (blend_color) * dalpha) / 255, 255 );
+ r = QMIN( (qRed (col) * salpha) / 255 + (qRed (blend_color) * dalpha) / 255, 255 );
+ g = QMIN( (qGreen (col) * salpha) / 255 + (qGreen (blend_color) * dalpha) / 255, 255 );
+ b = QMIN( (qBlue (col) * salpha) / 255 + (qBlue (blend_color) * dalpha) / 255, 255 );
+
+ col = a << 24 | r << 16 | g << 8 | b;
+ int pixel = a << 24 | (r * a / 255) << 16 | (g * a / 255) << 8 | (b * a / 255);
+
+ paint.fillRect(rect, QColor(col, pixel));
+ } else
+ paint.fillRect(rect, bColor);
+ }
+
+ QString tmpStr = str.simplifyWhiteSpace();
+ if ( m_isIMEdit && !tmpStr.isEmpty() ) { // imput method edit area background color
+ QRect tmpRect = rect;
+ if ( str != m_imPreeditText ) { // ugly hack
+ tmpRect.setLeft( tmpRect.left() + font_w );
+ tmpRect.setWidth( tmpRect.width() + font_w );
+ }
+
+ paint.fillRect( tmpRect, Qt::darkCyan ); // currently use hard code color
+ }
+
+ if ( m_isIMSel && !tmpStr.isEmpty() ) { // imput method selection background color
+ int x = rect.left() + ( font_w * (m_imSelStart - m_imStart) );
+ int y = rect.top();
+ int w = font_w * (m_imSelEnd - m_imSelStart);
+ int h = font_h;
+
+ QRect tmpRect = QRect( x, y, w, h );
+ if ( str != m_imPreeditText ) { // ugly hack
+ tmpRect.setLeft( tmpRect.left() + font_w );
+ tmpRect.setWidth( tmpRect.width() + font_w );
+ }
+
+ paint.fillRect( tmpRect, Qt::darkGray ); // currently use hard code color
+ }
+ }
+
+ // Paint cursor
+ if ((attr->r & RE_CURSOR) && !isPrinting) {
+ paint.setBackgroundMode( TransparentMode );
+ int h = font_h - m_lineSpacing;
+ QRect r(rect.x(),rect.y()+m_lineSpacing/2,rect.width(),h);
+ if (hasFocus())
+ {
+ if (!cursorBlinking)
+ {
+ paint.fillRect(r, fColor);
+ fColor = bColor;
+ }
+ }
+ else
+ {
+ paint.setPen(fColor);
+ paint.drawRect(r);
+ }
+ }
+
+ if (!(blinking && (attr->r & RE_BLINK)))
+ {
+ // ### Disabled for now, since it causes problems with characters
+ // that use the full width and/or height of the character cells.
+ //bool shadow = ( !isPrinting && qAlpha(blend_color) < 0xff
+ // && qGray( fColor.rgb() ) > 64 );
+ bool shadow = false;
+ paint.setPen(fColor);
+ int x = rect.x();
+
+ if (attr->isBold(color_table) && printerBold)
+ {
+ // When printing we use a bold font for bold
+ paint.save();
+ QFont f = font();
+ f.setBold(true);
+ paint.setFont(f);
+ }
+
+ if(!fixed_font)
+ {
+ // The meaning of y differs between different versions of QPainter::drawText!!
+ int y = rect.y(); // top of rect
+
+ if ( shadow ) {
+ paint.setPen( Qt::black );
+ drawTextFixed(paint, x+1, y+1, str, attr);
+ paint.setPen(fColor);
+ }
+
+ drawTextFixed(paint, x, y, str, attr);
+ }
+ else
+ {
+ // The meaning of y differs between different versions of QPainter::drawText!!
+ int y = rect.y()+a; // baseline
+
+ if ( shadow ) {
+ paint.setPen( Qt::black );
+ paint.drawText(x+1,y+1, str, -1, bidiEnabled ? QPainter::Auto : QPainter::LTR );
+ paint.setPen(fColor);
+ }
+
+ paint.drawText(x,y, str, -1, bidiEnabled ? QPainter::Auto : QPainter::LTR );
+ }
+
+ if (attr->isBold(color_table) && isPrinting)
+ {
+ // When printing we use a bold font for bold
+ paint.restore();
+ }
+
+ if ( attr->isBold(color_table) && !printerBold)
+ {
+ paint.setClipRect(rect);
+ // On screen we use overstrike for bold
+ paint.setBackgroundMode( TransparentMode );
+ int x = rect.x()+1;
+ if(!fixed_font)
+ {
+ // The meaning of y differs between different versions of QPainter::drawText!!
+ int y = rect.y(); // top of rect
+ drawTextFixed(paint, x, y, str, attr);
+ }
+ else
+ {
+ // The meaning of y differs between different versions of QPainter::drawText!!
+ int y = rect.y()+a; // baseline
+ if (bidiEnabled)
+ paint.drawText(x,y, str, -1);
+ else
+ paint.drawText(x,y, str, -1, QPainter::LTR);
+ }
+ paint.setClipping(false);
+ }
+ if (attr->r & RE_UNDERLINE)
+ paint.drawLine(rect.left(), rect.y()+a+1,
+ rect.right(),rect.y()+a+1 );
+ }
+}
+
+/*!
+ Set XIM Position
+*/
+void TEWidget::setCursorPos(const int curx, const int cury)
+{
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ int xpos, ypos;
+ ypos = bY + tLy + font_h*(cury-1) + font_a;
+ xpos = bX + tLx + font_w*curx;
+ /* The hasFocus() check is to avoid crashes in QXIMInputContext on some systems.
+ See http://lists.kde.org/?l=kde-core-devel&m=115770546313922&w=2 . */
+ if (hasFocus())
+ setMicroFocusHint(xpos, ypos, 0, font_h);
+ // fprintf(stderr, "x/y = %d/%d\txpos/ypos = %d/%d\n", curx, cury, xpos, ypos);
+ m_cursorLine = cury;
+ m_cursorCol = curx;
+}
+
+/*!
+ The image can only be set completely.
+
+ The size of the new image may or may not match the size of the widget.
+*/
+
+void TEWidget::setImage(const ca* const newimg, int lines, int columns)
+{
+ if (!image)
+ updateImageSize(); // Create image
+
+ int y,x,len;
+ const QPixmap* pm = backgroundPixmap();
+ QPainter paint;
+ setUpdatesEnabled(false);
+ paint.begin( this );
+
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+ hasBlinker = false;
+
+ cacol cf; // undefined
+ cacol cb; // undefined
+ int cr = -1; // undefined
+
+ int lins = QMIN(this->lines, QMAX(0,lines ));
+ int cols = QMIN(this->columns,QMAX(0,columns));
+ QChar *disstrU = new QChar[cols];
+ char *dirtyMask = (char *) malloc(cols+2);
+
+//{ static int cnt = 0; printf("setImage %d\n",cnt++); }
+ for (y = 0; y < lins; y++)
+ {
+ const ca* lcl = &image[y*this->columns];
+ const ca* const ext = &newimg[y*columns];
+
+ // The dirty mask indicates which characters need repainting. We also
+ // mark surrounding neighbours dirty, in case the character exceeds
+ // its cell boundaries
+ memset(dirtyMask, 0, cols+2);
+ // Two extra so that we don't have to have to care about start and end conditions
+ for (x = 0; x < cols; x++)
+ {
+ if ( ( (m_imPreeditLength > 0) && ( ( m_imStartLine == y )
+ && ( ( m_imStart < m_imEnd ) && ( ( x > m_imStart ) ) && ( x < m_imEnd ) )
+ || ( ( m_imSelStart < m_imSelEnd ) && ( ( x > m_imSelStart ) ) ) ) )
+ || ext[x] != lcl[x])
+ {
+ dirtyMask[x] = dirtyMask[x+1] = dirtyMask[x+2] = 1;
+ }
+ }
+ dirtyMask++; // Position correctly
+
+ if (!resizing) // not while resizing, we're expecting a paintEvent
+ for (x = 0; x < cols; x++)
+ {
+ hasBlinker |= (ext[x].r & RE_BLINK);
+ // Start drawing if this character or the next one differs.
+ // We also take the next one into account to handle the situation
+ // where characters exceed their cell width.
+ if (dirtyMask[x])
+ {
+ Q_UINT16 c = ext[x+0].c;
+ if ( !c )
+ continue;
+ int p = 0;
+ disstrU[p++] = c; //fontMap(c);
+ bool lineDraw = isLineChar(c);
+ bool doubleWidth = (ext[x+1].c == 0);
+ cr = ext[x].r;
+ cb = ext[x].b;
+ if (ext[x].f != cf) cf = ext[x].f;
+ int lln = cols - x;
+ for (len = 1; len < lln; len++)
+ {
+ c = ext[x+len].c;
+ if (!c)
+ continue; // Skip trailing part of multi-col chars.
+
+ if (ext[x+len].f != cf || ext[x+len].b != cb || ext[x+len].r != cr ||
+ !dirtyMask[x+len] || isLineChar(c) != lineDraw || (ext[x+len+1].c == 0) != doubleWidth)
+ break;
+
+ disstrU[p++] = c; //fontMap(c);
+ }
+
+ QString unistr(disstrU, p);
+
+ // for XIM on the spot input style
+ m_isIMEdit = m_isIMSel = false;
+ if ( m_imStartLine == y ) {
+ if ( ( m_imStart < m_imEnd ) && ( x >= m_imStart-1 ) && ( x + int( unistr.length() ) <= m_imEnd ) )
+ m_isIMEdit = true;
+
+ if ( ( m_imSelStart < m_imSelEnd ) && ( x >= m_imStart-1 ) && ( x + int( unistr.length() ) <= m_imEnd ) )
+ m_isIMSel = true;
+ }
+ else if ( m_imStartLine < y ) { // for word worp
+ if ( ( m_imStart < m_imEnd ) )
+ m_isIMEdit = true;
+
+ if ( ( m_imSelStart < m_imSelEnd ) )
+ m_isIMSel = true;
+ }
+
+ bool save_fixed_font = fixed_font;
+ if (lineDraw)
+ fixed_font = false;
+ if (doubleWidth)
+ fixed_font = false;
+ drawAttrStr(paint,
+ QRect(bX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h),
+ unistr, &ext[x], pm != NULL, true);
+ fixed_font = save_fixed_font;
+ x += len - 1;
+ }
+ }
+
+ dirtyMask--; // Set back
+
+ // finally, make `image' become `newimg'.
+ memcpy((void*)lcl,(const void*)ext,cols*sizeof(ca));
+ }
+ drawFrame( &paint );
+ paint.end();
+ setUpdatesEnabled(true);
+ if ( hasBlinker && !blinkT->isActive()) blinkT->start(1000); // 1000 ms
+ if (!hasBlinker && blinkT->isActive()) { blinkT->stop(); blinking = false; }
+ free(dirtyMask);
+ delete [] disstrU;
+
+ if (resizing && terminalSizeHint)
+ {
+ if (terminalSizeStartup) {
+ terminalSizeStartup=false;
+ return;
+ }
+ if (!mResizeWidget)
+ {
+ mResizeWidget = new QFrame(this);
+ QFont f = KGlobalSettings::generalFont();
+ int fs = f.pointSize();
+ if (fs == -1)
+ fs = QFontInfo(f).pointSize();
+ f.setPointSize((fs*3)/2);
+ f.setBold(true);
+ mResizeWidget->setFont(f);
+ mResizeWidget->setFrameShape((QFrame::Shape) (QFrame::Box|QFrame::Raised));
+ mResizeWidget->setMidLineWidth(4);
+ QBoxLayout *l = new QVBoxLayout( mResizeWidget, 10);
+ mResizeLabel = new QLabel(i18n("Size: XXX x XXX"), mResizeWidget);
+ l->addWidget(mResizeLabel, 1, AlignCenter);
+ mResizeWidget->setMinimumWidth(mResizeLabel->fontMetrics().width(i18n("Size: XXX x XXX"))+20);
+ mResizeWidget->setMinimumHeight(mResizeLabel->sizeHint().height()+20);
+ mResizeTimer = new QTimer(this);
+ connect(mResizeTimer, SIGNAL(timeout()), mResizeWidget, SLOT(hide()));
+ }
+ QString sizeStr = i18n("Size: %1 x %2").arg(columns).arg(lines);
+ mResizeLabel->setText(sizeStr);
+ mResizeWidget->move((width()-mResizeWidget->width())/2,
+ (height()-mResizeWidget->height())/2+20);
+ mResizeWidget->show();
+ mResizeTimer->start(1000, true);
+ }
+}
+
+void TEWidget::setBlinkingCursor(bool blink)
+{
+ hasBlinkingCursor=blink;
+ if (blink && !blinkCursorT->isActive()) blinkCursorT->start(1000);
+ if (!blink && blinkCursorT->isActive()) {
+ blinkCursorT->stop();
+ if (cursorBlinking)
+ blinkCursorEvent();
+ else
+ cursorBlinking = false;
+ }
+}
+
+// paint Event ////////////////////////////////////////////////////
+
+/*!
+ The difference of this routine vs. the `setImage' is,
+ that the drawing does not include a difference analysis
+ between the old and the new image. Instead, the internal
+ image is used and the painting bound by the PaintEvent box.
+*/
+
+void TEWidget::paintEvent( QPaintEvent* pe )
+{
+ const QPixmap* pm = backgroundPixmap();
+ QPainter paint;
+ setUpdatesEnabled(false);
+ paint.begin( this );
+ paint.setBackgroundMode( TransparentMode );
+
+ // Note that the actual widget size can be slightly larger
+ // that the image (the size is truncated towards the smaller
+ // number of characters in `resizeEvent'. The paint rectangle
+ // can thus be larger than the image, but less then the size
+ // of one character.
+
+ QRect rect = pe->rect().intersect(contentsRect());
+
+ paintContents(paint, rect, pm != 0);
+
+ drawFrame( &paint );
+
+ // Since we're using WNoAutoErase, we have to make sure that
+ // every single pixel is painted by the paint event.
+ // To do this, we must figure out which pixels are left in the
+ // area between the terminal image and the frame border.
+
+ // Calculate the contents rect excluding scroll bar.
+ QRect innerRect = contentsRect();
+ if( scrollLoc != SCRNONE )
+ innerRect.setWidth( innerRect.width() - scrollbar->width() );
+
+ innerRect.setWidth( innerRect.width() + 3 );
+ innerRect.setHeight( innerRect.height() );
+
+ // Calculate the emulation rect (area needed for actual terminal contents)
+ QRect emurect( contentsRect().topLeft(), QSize( columns * font_w + 2 * rimX, lines * font_h + 2 * rimY ));
+
+ // Now erase() the remaining pixels on all sides of the emulation
+
+ // Top
+ QRect er( innerRect );
+ er.setBottom( emurect.top() );
+ erase( er );
+
+ // Bottom
+ er.setBottom( innerRect.bottom() );
+ er.setTop( emurect.bottom() );
+ erase( er );
+
+ // Left
+ er.setTop( emurect.top() );
+ er.setBottom( emurect.bottom() - 1 );
+ er.setRight( emurect.left() );
+ erase( er );
+
+ // Right
+ er.setRight( innerRect.right() );
+ er.setTop( emurect.top() );
+ er.setBottom( emurect.bottom() - 1 );
+ er.setLeft( emurect.right() );
+ erase( er );
+
+ paint.end();
+ setUpdatesEnabled(true);
+}
+
+void TEWidget::print(QPainter &paint, bool friendly, bool exact)
+{
+ bool save_fixed_font = fixed_font;
+ bool save_blinking = blinking;
+ fixed_font = false;
+ blinking = false;
+ paint.setFont(font());
+
+ isPrinting = true;
+ printerFriendly = friendly;
+ printerBold = !exact;
+
+ if (exact)
+ {
+ QPixmap pm(contentsRect().right(), contentsRect().bottom());
+ pm.fill();
+
+ QPainter pm_paint;
+ pm_paint.begin(&pm, this);
+ paintContents(pm_paint, contentsRect(), true);
+ pm_paint.end();
+ paint.drawPixmap(0, 0, pm);
+ }
+ else
+ {
+ paintContents(paint, contentsRect(), true);
+ }
+
+ printerFriendly = false;
+ isPrinting = false;
+ printerBold = false;
+
+ fixed_font = save_fixed_font;
+ blinking = save_blinking;
+}
+
+void TEWidget::paintContents(QPainter &paint, const QRect &rect, bool pm)
+{
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ int lux = QMIN(columns-1, QMAX(0,(rect.left() - tLx - bX ) / font_w));
+ int luy = QMIN(lines-1, QMAX(0,(rect.top() - tLy - bY ) / font_h));
+ int rlx = QMIN(columns-1, QMAX(0,(rect.right() - tLx - bX ) / font_w));
+ int rly = QMIN(lines-1, QMAX(0,(rect.bottom() - tLy - bY ) / font_h));
+
+ QChar *disstrU = new QChar[columns];
+ for (int y = luy; y <= rly; y++)
+ {
+ Q_UINT16 c = image[loc(lux,y)].c;
+ int x = lux;
+ if(!c && x)
+ x--; // Search for start of multi-col char
+ for (; x <= rlx; x++)
+ {
+ int len = 1;
+ int p = 0;
+ c = image[loc(x,y)].c;
+ if (c)
+ disstrU[p++] = c; //fontMap(c);
+ bool lineDraw = isLineChar(c);
+ bool doubleWidth = (image[loc(x,y)+1].c == 0);
+ cacol cf = image[loc(x,y)].f;
+ cacol cb = image[loc(x,y)].b;
+ int cr = image[loc(x,y)].r;
+ while (x+len <= rlx &&
+ image[loc(x+len,y)].f == cf &&
+ image[loc(x+len,y)].b == cb &&
+ image[loc(x+len,y)].r == cr &&
+ (image[loc(x+len,y)+1].c == 0) == doubleWidth &&
+ isLineChar( c = image[loc(x+len,y)].c) == lineDraw) // Assignment!
+ {
+ if (c)
+ disstrU[p++] = c; //fontMap(c);
+ if (doubleWidth) // assert((image[loc(x+len,y)+1].c == 0)), see above if condition
+ len++; // Skip trailing part of multi-column char
+ len++;
+ }
+ if ((x+len < columns) && (!image[loc(x+len,y)].c))
+ len++; // Adjust for trailing part of multi-column char
+
+ if (!isBlinkEvent || (cr & RE_BLINK))
+ {
+ bool save_fixed_font = fixed_font;
+ if (lineDraw)
+ fixed_font = false;
+ if (doubleWidth)
+ fixed_font = false;
+ QString unistr(disstrU,p);
+ drawAttrStr(paint,
+ QRect(bX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h),
+ unistr, &image[loc(x,y)], pm, !(isBlinkEvent || isPrinting));
+ fixed_font = save_fixed_font;
+ }
+ x += len - 1;
+ }
+ }
+ delete [] disstrU;
+}
+
+void TEWidget::blinkEvent()
+{
+ blinking = !blinking;
+ isBlinkEvent = true;
+ repaint(false);
+ isBlinkEvent = false;
+}
+
+void TEWidget::blinkCursorEvent()
+{
+ cursorBlinking = !cursorBlinking;
+ repaint(cursorRect, true);
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Resizing */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEWidget::resizeEvent(QResizeEvent*)
+{
+ updateImageSize();
+}
+
+void TEWidget::propagateSize()
+{
+ if (isFixedSize)
+ {
+ setSize(columns, lines);
+ QFrame::setFixedSize(sizeHint());
+ parentWidget()->adjustSize();
+ parentWidget()->setFixedSize(parentWidget()->sizeHint());
+ return;
+ }
+ if (image)
+ updateImageSize();
+}
+
+void TEWidget::updateImageSize()
+{
+ ca* oldimg = image;
+ int oldlin = lines;
+ int oldcol = columns;
+ makeImage();
+ // we copy the old image to reduce flicker
+ int lins = QMIN(oldlin,lines);
+ int cols = QMIN(oldcol,columns);
+ if (oldimg)
+ {
+ for (int lin = 0; lin < lins; lin++)
+ memcpy((void*)&image[columns*lin],
+ (void*)&oldimg[oldcol*lin],cols*sizeof(ca));
+ free(oldimg); //FIXME: try new,delete
+ }
+
+ //NOTE: control flows from the back through the chest right into the eye.
+ // `emu' will call back via `setImage'.
+
+ resizing = (oldlin!=lines) || (oldcol!=columns);
+ emit changedContentSizeSignal(contentHeight, contentWidth); // expose resizeEvent
+ resizing = false;
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Scrollbar */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEWidget::scrollChanged(int)
+{
+ emit changedHistoryCursor(scrollbar->value()); //expose
+}
+
+void TEWidget::setScroll(int cursor, int slines)
+{
+ //kdDebug(1211)<<"TEWidget::setScroll() disconnect()"<<endl;
+ disconnect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int)));
+ //kdDebug(1211)<<"TEWidget::setScroll() setRange()"<<endl;
+ scrollbar->setRange(0,slines);
+ //kdDebug(1211)<<"TEWidget::setScroll() setSteps()"<<endl;
+ scrollbar->setSteps(1,lines);
+ scrollbar->setValue(cursor);
+ connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int)));
+ //kdDebug(1211)<<"TEWidget::setScroll() done"<<endl;
+}
+
+void TEWidget::setScrollbarLocation(int loc)
+{
+ if (scrollLoc == loc) return; // quickly
+ bY = bX = 1;
+ scrollLoc = loc;
+ calcGeometry();
+ propagateSize();
+ update();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Mouse */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*!
+ Three different operations can be performed using the mouse, and the
+ routines in this section serve all of them:
+
+ 1) The press/release events are exposed to the application
+ 2) Marking (press and move left button) and Pasting (press middle button)
+ 3) The right mouse button is used from the configuration menu
+
+ NOTE: During the marking process we attempt to keep the cursor within
+ the bounds of the text as being displayed by setting the mouse position
+ whenever the mouse has left the text area.
+
+ Two reasons to do so:
+ 1) QT does not allow the `grabMouse' to confine-to the TEWidget.
+ Thus a `XGrapPointer' would have to be used instead.
+ 2) Even if so, this would not help too much, since the text area
+ of the TEWidget is normally not identical with it's bounds.
+
+ The disadvantage of the current handling is, that the mouse can visibly
+ leave the bounds of the widget and is then moved back. Because of the
+ current construction, and the reasons mentioned above, we cannot do better
+ without changing the overall construction.
+*/
+
+/*!
+*/
+
+void TEWidget::mousePressEvent(QMouseEvent* ev)
+{
+//printf("press [%d,%d] %d\n",ev->x()/font_w,ev->y()/font_h,ev->button());
+
+ if ( possibleTripleClick && (ev->button()==LeftButton) ) {
+ mouseTripleClickEvent(ev);
+ return;
+ }
+
+ if ( !contentsRect().contains(ev->pos()) ) return;
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ QPoint pos = QPoint((ev->x()-tLx-bX+(font_w/2))/font_w,(ev->y()-tLy-bY)/font_h);
+
+//printf("press top left [%d,%d] by=%d\n",tLx,tLy, bY);
+ if ( ev->button() == LeftButton)
+ {
+ line_selection_mode = false;
+ word_selection_mode = false;
+
+ emit isBusySelecting(true); // Keep it steady...
+ // Drag only when the Control key is hold
+ bool selected = false;
+ // The receiver of the testIsSelected() signal will adjust
+ // 'selected' accordingly.
+ emit testIsSelected(pos.x(), pos.y(), selected);
+ if ((!ctrldrag || ev->state() & ControlButton) && selected ) {
+ // The user clicked inside selected text
+ dragInfo.state = diPending;
+ dragInfo.start = ev->pos();
+ }
+ else {
+ // No reason to ever start a drag event
+ dragInfo.state = diNone;
+
+ preserve_line_breaks = !( ( ev->state() & ControlButton ) && !(ev->state() & AltButton) );
+ column_selection_mode = (ev->state() & AltButton) && (ev->state() & ControlButton);
+
+ if (mouse_marks || (ev->state() & ShiftButton))
+ {
+ emit clearSelectionSignal();
+ pos.ry() += scrollbar->value();
+ iPntSel = pntSel = pos;
+ actSel = 1; // left mouse button pressed but nothing selected yet.
+ grabMouse( /*crossCursor*/ ); // handle with care!
+ }
+ else
+ {
+ emit mouseSignal( 0, (ev->x()-tLx-bX)/font_w +1, (ev->y()-tLy-bY)/font_h +1 +scrollbar->value() -scrollbar->maxValue() );
+ }
+ }
+ }
+ else if ( ev->button() == MidButton )
+ {
+ if ( mouse_marks || (!mouse_marks && (ev->state() & ShiftButton)) )
+ emitSelection(true,ev->state() & ControlButton);
+ else
+ emit mouseSignal( 1, (ev->x()-tLx-bX)/font_w +1, (ev->y()-tLy-bY)/font_h +1 +scrollbar->value() -scrollbar->maxValue() );
+ }
+ else if ( ev->button() == RightButton )
+ {
+ if (mouse_marks || (ev->state() & ShiftButton)) {
+ configureRequestPoint = QPoint( ev->x(), ev->y() );
+ emit configureRequest( this, ev->state()&(ShiftButton|ControlButton), ev->x(), ev->y() );
+ }
+ else
+ emit mouseSignal( 2, (ev->x()-tLx-bX)/font_w +1, (ev->y()-tLy-bY)/font_h +1 +scrollbar->value() -scrollbar->maxValue() );
+ }
+}
+
+void TEWidget::mouseMoveEvent(QMouseEvent* ev)
+{
+ // for auto-hiding the cursor, we need mouseTracking
+ if (ev->state() == NoButton ) return;
+
+ if (dragInfo.state == diPending) {
+ // we had a mouse down, but haven't confirmed a drag yet
+ // if the mouse has moved sufficiently, we will confirm
+
+ int distance = KGlobalSettings::dndEventDelay();
+ if ( ev->x() > dragInfo.start.x() + distance || ev->x() < dragInfo.start.x() - distance ||
+ ev->y() > dragInfo.start.y() + distance || ev->y() < dragInfo.start.y() - distance) {
+ // we've left the drag square, we can start a real drag operation now
+ emit isBusySelecting(false); // Ok.. we can breath again.
+ emit clearSelectionSignal();
+ doDrag();
+ }
+ return;
+ } else if (dragInfo.state == diDragging) {
+ // this isn't technically needed because mouseMoveEvent is suppressed during
+ // Qt drag operations, replaced by dragMoveEvent
+ return;
+ }
+
+ if (actSel == 0) return;
+
+ // don't extend selection while pasting
+ if (ev->state() & MidButton) return;
+
+ extendSelection( ev->pos() );
+}
+
+void TEWidget::setSelectionEnd()
+{
+ extendSelection( configureRequestPoint );
+}
+
+void TEWidget::extendSelection( QPoint pos )
+{
+ //if ( !contentsRect().contains(ev->pos()) ) return;
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+ int scroll = scrollbar->value();
+
+ // we're in the process of moving the mouse with the left button pressed
+ // the mouse cursor will kept caught within the bounds of the text in
+ // this widget.
+
+ // Adjust position within text area bounds. See FIXME above.
+ QPoint oldpos = pos;
+ if ( pos.x() < tLx+bX ) pos.setX( tLx+bX );
+ if ( pos.x() > tLx+bX+columns*font_w-1 ) pos.setX( tLx+bX+columns*font_w );
+ if ( pos.y() < tLy+bY ) pos.setY( tLy+bY );
+ if ( pos.y() > tLy+bY+lines*font_h-1 ) pos.setY( tLy+bY+lines*font_h-1 );
+
+ // check if we produce a mouse move event by this
+ if ( pos != oldpos ) cursor().setPos(mapToGlobal(pos));
+
+ if ( pos.y() == tLy+bY+lines*font_h-1 )
+ {
+ scrollbar->setValue(scrollbar->value()+yMouseScroll); // scrollforward
+ }
+ if ( pos.y() == tLy+bY )
+ {
+ scrollbar->setValue(scrollbar->value()-yMouseScroll); // scrollback
+ }
+
+ QPoint here = QPoint((pos.x()-tLx-bX+(font_w/2))/font_w,(pos.y()-tLy-bY)/font_h);
+ QPoint ohere;
+ QPoint iPntSelCorr = iPntSel;
+ iPntSelCorr.ry() -= scrollbar->value();
+ QPoint pntSelCorr = pntSel;
+ pntSelCorr.ry() -= scrollbar->value();
+ bool swapping = false;
+
+ if ( word_selection_mode )
+ {
+ // Extend to word boundaries
+ int i;
+ int selClass;
+
+ bool left_not_right = ( here.y() < iPntSelCorr.y() ||
+ here.y() == iPntSelCorr.y() && here.x() < iPntSelCorr.x() );
+ bool old_left_not_right = ( pntSelCorr.y() < iPntSelCorr.y() ||
+ pntSelCorr.y() == iPntSelCorr.y() && pntSelCorr.x() < iPntSelCorr.x() );
+ swapping = left_not_right != old_left_not_right;
+
+ // Find left (left_not_right ? from here : from start)
+ QPoint left = left_not_right ? here : iPntSelCorr;
+ i = loc(left.x(),left.y());
+ if (i>=0 && i<=image_size) {
+ selClass = charClass(image[i].c);
+ while ( ((left.x()>0) || (left.y()>0 && m_line_wrapped[left.y()-1])) && charClass(image[i-1].c) == selClass )
+ { i--; if (left.x()>0) left.rx()--; else {left.rx()=columns-1; left.ry()--;} }
+ }
+
+ // Find left (left_not_right ? from start : from here)
+ QPoint right = left_not_right ? iPntSelCorr : here;
+ i = loc(right.x(),right.y());
+ if (i>=0 && i<=image_size) {
+ selClass = charClass(image[i].c);
+ while( ((right.x()<columns-1) || (right.y()<lines-1 && m_line_wrapped[right.y()])) && charClass(image[i+1].c) == selClass )
+ { i++; if (right.x()<columns-1) right.rx()++; else {right.rx()=0; right.ry()++; } }
+ }
+
+ // Pick which is start (ohere) and which is extension (here)
+ if ( left_not_right )
+ {
+ here = left; ohere = right;
+ }
+ else
+ {
+ here = right; ohere = left;
+ }
+ ohere.rx()++;
+ }
+
+ if ( line_selection_mode )
+ {
+ // Extend to complete line
+ bool above_not_below = ( here.y() < iPntSelCorr.y() );
+
+ QPoint above = above_not_below ? here : iPntSelCorr;
+ QPoint below = above_not_below ? iPntSelCorr : here;
+
+ while (above.y()>0 && m_line_wrapped[above.y()-1])
+ above.ry()--;
+ while (below.y()<lines-1 && m_line_wrapped[below.y()])
+ below.ry()++;
+
+ above.setX(0);
+ below.setX(columns-1);
+
+ // Pick which is start (ohere) and which is extension (here)
+ if ( above_not_below )
+ {
+ here = above; ohere = below;
+ }
+ else
+ {
+ here = below; ohere = above;
+ }
+
+ QPoint newSelBegin = QPoint( ohere.x(), ohere.y() );
+ swapping = !(tripleSelBegin==newSelBegin);
+ tripleSelBegin = newSelBegin;
+
+ ohere.rx()++;
+ }
+
+ int offset = 0;
+ if ( !word_selection_mode && !line_selection_mode )
+ {
+ int i;
+ int selClass;
+
+ bool left_not_right = ( here.y() < iPntSelCorr.y() ||
+ here.y() == iPntSelCorr.y() && here.x() < iPntSelCorr.x() );
+ bool old_left_not_right = ( pntSelCorr.y() < iPntSelCorr.y() ||
+ pntSelCorr.y() == iPntSelCorr.y() && pntSelCorr.x() < iPntSelCorr.x() );
+ swapping = left_not_right != old_left_not_right;
+
+ // Find left (left_not_right ? from here : from start)
+ QPoint left = left_not_right ? here : iPntSelCorr;
+
+ // Find left (left_not_right ? from start : from here)
+ QPoint right = left_not_right ? iPntSelCorr : here;
+ if ( right.x() > 0 && !column_selection_mode )
+ {
+ i = loc(right.x(),right.y());
+ if (i>=0 && i<=image_size) {
+ selClass = charClass(image[i-1].c);
+ if (selClass == ' ')
+ {
+ while ( right.x() < columns-1 && charClass(image[i+1].c) == selClass && (right.y()<lines-1) && !m_line_wrapped[right.y()])
+ { i++; right.rx()++; }
+ if (right.x() < columns-1)
+ right = left_not_right ? iPntSelCorr : here;
+ else
+ right.rx()++; // will be balanced later because of offset=-1;
+ }
+ }
+ }
+
+ // Pick which is start (ohere) and which is extension (here)
+ if ( left_not_right )
+ {
+ here = left; ohere = right; offset = 0;
+ }
+ else
+ {
+ here = right; ohere = left; offset = -1;
+ }
+ }
+
+ if ((here == pntSelCorr) && (scroll == scrollbar->value())) return; // not moved
+
+ if (here == ohere) return; // It's not left, it's not right.
+
+ if ( actSel < 2 || swapping )
+ if ( column_selection_mode && !line_selection_mode && !word_selection_mode )
+ emit beginSelectionSignal( ohere.x(), ohere.y(), true );
+ else
+ emit beginSelectionSignal( ohere.x()-1-offset, ohere.y(), false );
+
+ actSel = 2; // within selection
+ pntSel = here;
+ pntSel.ry() += scrollbar->value();
+
+ if ( column_selection_mode && !line_selection_mode && !word_selection_mode )
+ emit extendSelectionSignal( here.x(), here.y() );
+ else
+ emit extendSelectionSignal( here.x()+offset, here.y() );
+}
+
+void TEWidget::mouseReleaseEvent(QMouseEvent* ev)
+{
+//printf("release [%d,%d] %d\n",ev->x()/font_w,ev->y()/font_h,ev->button());
+ if ( ev->button() == LeftButton)
+ {
+ emit isBusySelecting(false); // Ok.. we can breath again.
+ if(dragInfo.state == diPending)
+ {
+ // We had a drag event pending but never confirmed. Kill selection
+ emit clearSelectionSignal();
+ }
+ else
+ {
+ if ( actSel > 1 )
+ emit endSelectionSignal(preserve_line_breaks);
+ actSel = 0;
+
+ //FIXME: emits a release event even if the mouse is
+ // outside the range. The procedure used in `mouseMoveEvent'
+ // applies here, too.
+
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ if (!mouse_marks && !(ev->state() & ShiftButton))
+ emit mouseSignal( 3, // release
+ (ev->x()-tLx-bX)/font_w + 1,
+ (ev->y()-tLy-bY)/font_h + 1 +scrollbar->value() -scrollbar->maxValue());
+ releaseMouse();
+ }
+ dragInfo.state = diNone;
+ }
+ if ( !mouse_marks && ((ev->button() == RightButton && !(ev->state() & ShiftButton))
+ || ev->button() == MidButton) ) {
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ emit mouseSignal( 3, (ev->x()-tLx-bX)/font_w +1, (ev->y()-tLy-bY)/font_h +1 +scrollbar->value() -scrollbar->maxValue() );
+ releaseMouse();
+ }
+}
+
+void TEWidget::mouseDoubleClickEvent(QMouseEvent* ev)
+{
+ if ( ev->button() != LeftButton) return;
+
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+ QPoint pos = QPoint((ev->x()-tLx-bX)/font_w,(ev->y()-tLy-bY)/font_h);
+
+ // pass on double click as two clicks.
+ if (!mouse_marks && !(ev->state() & ShiftButton))
+ {
+ // Send just _ONE_ click event, since the first click of the double click
+ // was already sent by the click handler!
+ emit mouseSignal( 0, pos.x()+1, pos.y()+1 +scrollbar->value() -scrollbar->maxValue() ); // left button
+ return;
+ }
+
+
+ emit clearSelectionSignal();
+ QPoint bgnSel = pos;
+ QPoint endSel = pos;
+ int i = loc(bgnSel.x(),bgnSel.y());
+ iPntSel = bgnSel;
+ iPntSel.ry() += scrollbar->value();
+
+ word_selection_mode = true;
+
+ // find word boundaries...
+ int selClass = charClass(image[i].c);
+ {
+ // set the start...
+ int x = bgnSel.x();
+ while ( ((x>0) || (bgnSel.y()>0 && m_line_wrapped[bgnSel.y()-1])) && charClass(image[i-1].c) == selClass )
+ { i--; if (x>0) x--; else {x=columns-1; bgnSel.ry()--;} }
+ bgnSel.setX(x);
+ emit beginSelectionSignal( bgnSel.x(), bgnSel.y(), false );
+
+ // set the end...
+ i = loc( endSel.x(), endSel.y() );
+ x = endSel.x();
+ while( ((x<columns-1) || (endSel.y()<lines-1 && m_line_wrapped[endSel.y()])) && charClass(image[i+1].c) == selClass )
+ { i++; if (x<columns-1) x++; else {x=0; endSel.ry()++; } }
+ endSel.setX(x);
+
+ // In word selection mode don't select @ (64) if at end of word.
+ if ( ( QChar( image[i].c ) == '@' ) && ( ( endSel.x() - bgnSel.x() ) > 0 ) )
+ endSel.setX( x - 1 );
+
+ actSel = 2; // within selection
+ emit extendSelectionSignal( endSel.x(), endSel.y() );
+ emit endSelectionSignal(preserve_line_breaks);
+ }
+
+ possibleTripleClick=true;
+ QTimer::singleShot(QApplication::doubleClickInterval(),this,SLOT(tripleClickTimeout()));
+}
+
+void TEWidget::wheelEvent( QWheelEvent* ev )
+{
+ if (ev->orientation() != Qt::Vertical)
+ return;
+
+ if ( mouse_marks )
+ QApplication::sendEvent(scrollbar, ev);
+ else
+ {
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+ QPoint pos = QPoint((ev->x()-tLx-bX)/font_w,(ev->y()-tLy-bY)/font_h);
+ emit mouseSignal( ev->delta() > 0 ? 4 : 5, pos.x() + 1, pos.y() + 1 +scrollbar->value() -scrollbar->maxValue() );
+ }
+}
+
+void TEWidget::tripleClickTimeout()
+{
+ possibleTripleClick=false;
+}
+
+void TEWidget::mouseTripleClickEvent(QMouseEvent* ev)
+{
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+ iPntSel = QPoint((ev->x()-tLx-bX)/font_w,(ev->y()-tLy-bY)/font_h);
+
+ emit clearSelectionSignal();
+
+ line_selection_mode = true;
+ word_selection_mode = false;
+
+ actSel = 2; // within selection
+ emit isBusySelecting(true); // Keep it steady...
+
+ while (iPntSel.y()>0 && m_line_wrapped[iPntSel.y()-1])
+ iPntSel.ry()--;
+ if (cuttobeginningofline) {
+ // find word boundary start
+ int i = loc(iPntSel.x(),iPntSel.y());
+ int selClass = charClass(image[i].c);
+ int x = iPntSel.x();
+ while ( ((x>0) || (iPntSel.y()>0 && m_line_wrapped[iPntSel.y()-1])) && charClass(image[i-1].c) == selClass )
+ { i--; if (x>0) x--; else {x=columns-1; iPntSel.ry()--;} }
+
+ emit beginSelectionSignal( x, iPntSel.y(), false );
+ tripleSelBegin = QPoint( x, iPntSel.y() );
+ }
+ else {
+ emit beginSelectionSignal( 0, iPntSel.y(), false );
+ tripleSelBegin = QPoint( 0, iPntSel.y() );
+ }
+
+ while (iPntSel.y()<lines-1 && m_line_wrapped[iPntSel.y()])
+ iPntSel.ry()++;
+ emit extendSelectionSignal( columns-1, iPntSel.y() );
+
+ emit endSelectionSignal(preserve_line_breaks);
+
+ iPntSel.ry() += scrollbar->value();
+}
+
+void TEWidget::focusInEvent( QFocusEvent * )
+{
+ repaint(cursorRect, true); // *do* erase area, to get rid of the
+ // hollow cursor rectangle.
+}
+
+
+void TEWidget::focusOutEvent( QFocusEvent * )
+{
+ repaint(cursorRect, true); // don't erase area
+}
+
+bool TEWidget::focusNextPrevChild( bool next )
+{
+ if (next)
+ return false; // This disables changing the active part in konqueror
+ // when pressing Tab
+ return QFrame::focusNextPrevChild( next );
+}
+
+
+int TEWidget::charClass(UINT16 ch) const
+{
+ QChar qch=QChar(ch);
+ if ( qch.isSpace() ) return ' ';
+
+ if ( qch.isLetterOrNumber() || word_characters.contains(qch, false) )
+ return 'a';
+
+ // Everything else is weird
+ return 1;
+}
+
+void TEWidget::setWordCharacters(QString wc)
+{
+ word_characters = wc;
+}
+
+void TEWidget::setMouseMarks(bool on)
+{
+ mouse_marks = on;
+ setCursor( mouse_marks ? ibeamCursor : arrowCursor );
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Clipboard */
+/* */
+/* ------------------------------------------------------------------------- */
+
+#undef KeyPress
+
+void TEWidget::emitText(QString text)
+{
+ if (!text.isEmpty()) {
+ QKeyEvent e(QEvent::KeyPress, 0,-1,0, text);
+ emit keyPressedSignal(&e); // expose as a big fat keypress event
+ }
+}
+
+void TEWidget::emitSelection(bool useXselection,bool appendReturn)
+// Paste Clipboard by simulating keypress events
+{
+ QApplication::clipboard()->setSelectionMode( useXselection );
+ QString text = QApplication::clipboard()->text();
+ if(appendReturn)
+ text.append("\r");
+ if ( ! text.isEmpty() )
+ {
+ text.replace("\n", "\r");
+ QKeyEvent e(QEvent::KeyPress, 0,-1,0, text);
+ emit keyPressedSignal(&e); // expose as a big fat keypress event
+ emit clearSelectionSignal();
+ }
+ QApplication::clipboard()->setSelectionMode( false );
+}
+
+void TEWidget::setSelection(const QString& t)
+{
+ // Disconnect signal while WE set the clipboard
+ QClipboard *cb = QApplication::clipboard();
+ QObject::disconnect( cb, SIGNAL(selectionChanged()),
+ this, SLOT(onClearSelection()) );
+
+ cb->setSelectionMode( true );
+ cb->setText(t);
+ cb->setSelectionMode( false );
+
+ QObject::connect( cb, SIGNAL(selectionChanged()),
+ this, SLOT(onClearSelection()) );
+}
+
+void TEWidget::copyClipboard()
+{
+ emit copySelectionSignal();
+}
+
+void TEWidget::pasteClipboard()
+{
+ emitSelection(false,false);
+}
+
+void TEWidget::pasteSelection()
+{
+ emitSelection(true,false);
+}
+
+void TEWidget::onClearSelection()
+{
+ emit clearSelectionSignal();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Keyboard */
+/* */
+/* ------------------------------------------------------------------------- */
+
+//FIXME: an `eventFilter' has been installed instead of a `keyPressEvent'
+// due to a bug in `QT' or the ignorance of the author to prevent
+// repaint events being emitted to the screen whenever one leaves
+// or reenters the screen to/from another application.
+//
+// Troll says one needs to change focusInEvent() and focusOutEvent(),
+// which would also let you have an in-focus cursor and an out-focus
+// cursor like xterm does.
+
+// for the auto-hide cursor feature, I added empty focusInEvent() and
+// focusOutEvent() so that update() isn't called.
+// For auto-hide, we need to get keypress-events, but we only get them when
+// we have focus.
+
+void TEWidget::doScroll(int lines)
+{
+ scrollbar->setValue(scrollbar->value()+lines);
+}
+
+bool TEWidget::eventFilter( QObject *obj, QEvent *e )
+{
+ if ( (e->type() == QEvent::Accel ||
+ e->type() == QEvent::AccelAvailable ) && qApp->focusWidget() == this )
+ {
+ static_cast<QKeyEvent *>( e )->ignore();
+ return false;
+ }
+ if ( obj != this /* when embedded */ && obj != parent() /* when standalone */ )
+ return false; // not us
+ if ( e->type() == QEvent::KeyPress )
+ {
+ QKeyEvent* ke = (QKeyEvent*)e;
+
+ actSel=0; // Key stroke implies a screen update, so TEWidget won't
+ // know where the current selection is.
+
+ if (hasBlinkingCursor) {
+ blinkCursorT->start(1000);
+ if (cursorBlinking)
+ blinkCursorEvent();
+ else
+ cursorBlinking = false;
+ }
+
+ emit keyPressedSignal(ke); // expose
+
+ // in Qt2 when key events were propagated up the tree
+ // (unhandled? -> parent widget) they passed the event filter only once at
+ // the beginning. in qt3 this has changed, that is, the event filter is
+ // called each time the event is sent (see loop in QApplication::notify,
+ // when internalNotify() is called for KeyPress, whereas internalNotify
+ // activates also the global event filter) . That's why we stop propagation
+ // here.
+ return true;
+ }
+ if ( e->type() == QEvent::Enter )
+ {
+ QObject::disconnect( (QObject*)cb, SIGNAL(dataChanged()),
+ this, SLOT(onClearSelection()) );
+ }
+ if ( e->type() == QEvent::Leave )
+ {
+ QObject::connect( (QObject*)cb, SIGNAL(dataChanged()),
+ this, SLOT(onClearSelection()) );
+ }
+ return QFrame::eventFilter( obj, e );
+}
+
+void TEWidget::imStartEvent( QIMEvent */*e*/ )
+{
+ m_imStart = m_cursorCol;
+ m_imStartLine = m_cursorLine;
+ m_imPreeditLength = 0;
+
+ m_imEnd = m_imSelStart = m_imSelEnd = 0;
+ m_isIMEdit = m_isIMSel = false;
+}
+
+void TEWidget::imComposeEvent( QIMEvent *e )
+{
+ QString text = QString::null;
+ if ( m_imPreeditLength > 0 ) {
+ text.fill( '\010', m_imPreeditLength );
+ }
+
+ m_imEnd = m_imStart + string_width( e->text() );
+
+ QString tmpStr = e->text().left( e->cursorPos() );
+ m_imSelStart = m_imStart + string_width( tmpStr );
+
+ tmpStr = e->text().mid( e->cursorPos(), e->selectionLength() );
+ m_imSelEnd = m_imSelStart + string_width( tmpStr );
+ m_imPreeditLength = e->text().length();
+ m_imPreeditText = e->text();
+ text += e->text();
+
+ if ( text.length() > 0 ) {
+ QKeyEvent ke( QEvent::KeyPress, 0, -1, 0, text );
+ emit keyPressedSignal( &ke );
+ }
+}
+
+void TEWidget::imEndEvent( QIMEvent *e )
+{
+ QString text = QString::null;
+ if ( m_imPreeditLength > 0 ) {
+ text.fill( '\010', m_imPreeditLength );
+ }
+
+ m_imEnd = m_imSelStart = m_imSelEnd = 0;
+ text += e->text();
+ if ( text.length() > 0 ) {
+ QKeyEvent ke( QEvent::KeyPress, 0, -1, 0, text );
+ emit keyPressedSignal( &ke );
+ }
+
+ QPoint tL = contentsRect().topLeft();
+ int tLx = tL.x();
+ int tLy = tL.y();
+
+ QRect repaintRect = QRect( bX+tLx, bY+tLy+font_h*m_imStartLine,
+ contentsRect().width(), contentsRect().height() );
+ m_imStart = 0;
+ m_imPreeditLength = 0;
+
+ m_isIMEdit = m_isIMSel = false;
+ repaint( repaintRect, true );
+}
+
+// Override any Ctrl+<key> accelerator when pressed with the keyboard
+// focus in TEWidget, so that the key will be passed to the terminal instead.
+bool TEWidget::event( QEvent *e )
+{
+ if ( e->type() == QEvent::AccelOverride )
+ {
+ QKeyEvent *ke = static_cast<QKeyEvent *>( e );
+ KKey key( ke );
+ int keyCodeQt = key.keyCodeQt();
+
+ if ( !standalone() && (ke->state() == Qt::ControlButton) )
+ {
+ ke->accept();
+ return true;
+ }
+
+ // Override any of the following accelerators:
+ switch ( keyCodeQt )
+ {
+ case Key_Tab:
+ case Key_Delete:
+ ke->accept();
+ return true;
+ }
+ }
+ return QFrame::event( e );
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Frame */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEWidget::frameChanged()
+{
+ propagateSize();
+ update();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Sound */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEWidget::setBellMode(int mode)
+{
+ m_bellMode=mode;
+}
+
+void TEWidget::Bell(bool visibleSession, QString message)
+{
+ if (bellTimer.isActive())
+ return;
+
+ //minimum delay in milliseconds between each bell event
+ //for the 3 different types of bells.
+ const int BELLSYSTEM_DELAY = 100;
+ const int BELLNOTIFY_DELAY = 500; //longer to avoid horrible noise with several audible system
+ //notifications in close succession
+ const int BELLVISUAL_DELAY = 500; //longer to avoid ugly flickering with several flashes in close
+ //succession
+
+ if (m_bellMode==BELLNONE) return;
+
+ if (m_bellMode==BELLSYSTEM) {
+ bellTimer.start(BELLSYSTEM_DELAY,true);
+ KNotifyClient::beep();
+ } else if (m_bellMode==BELLNOTIFY) {
+ bellTimer.start(BELLNOTIFY_DELAY,true);
+
+ if (visibleSession)
+ KNotifyClient::event(winId(), "BellVisible", message);
+ else
+ KNotifyClient::event(winId(), "BellInvisible", message);
+ } else if (m_bellMode==BELLVISUAL) {
+ bellTimer.start(BELLVISUAL_DELAY,true);
+
+ swapColorTable();
+ QTimer::singleShot(200,this,SLOT(swapColorTable()));
+ }
+}
+
+void TEWidget::swapColorTable()
+{
+ ColorEntry color = color_table[1];
+ color_table[1]=color_table[0];
+ color_table[0]= color;
+ colorsSwapped = !colorsSwapped;
+ update();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Auxiluary */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void TEWidget::clearImage()
+// initialize the image
+// for internal use only
+{
+ // We initialize image[image_size] too. See makeImage()
+ for (int i = 0; i <= image_size; i++)
+ {
+ image[i].c = ' ';
+ image[i].f = cacol(CO_DFT,DEFAULT_FORE_COLOR);
+ image[i].b = cacol(CO_DFT,DEFAULT_BACK_COLOR);
+ image[i].r = DEFAULT_RENDITION;
+ }
+}
+
+// Create Image ///////////////////////////////////////////////////////
+
+void TEWidget::calcGeometry()
+{
+ scrollbar->resize(QApplication::style().pixelMetric(QStyle::PM_ScrollBarExtent),
+ contentsRect().height());
+ switch(scrollLoc)
+ {
+ case SCRNONE :
+ bX = rimX;
+ contentWidth = contentsRect().width() - 2 * rimX;
+ scrollbar->hide();
+ break;
+ case SCRLEFT :
+ bX = rimX+scrollbar->width();
+ contentWidth = contentsRect().width() - 2 * rimX - scrollbar->width();
+ scrollbar->move(contentsRect().topLeft());
+ scrollbar->show();
+ break;
+ case SCRRIGHT:
+ bX = rimX;
+ contentWidth = contentsRect().width() - 2 * rimX - scrollbar->width();
+ scrollbar->move(contentsRect().topRight() - QPoint(scrollbar->width()-1,0));
+ scrollbar->show();
+ break;
+ }
+
+ //FIXME: support 'rounding' styles
+ bY = rimY;
+ contentHeight = contentsRect().height() - 2 * rimY + /* mysterious */ 1;
+
+ if (!isFixedSize)
+ {
+ columns = contentWidth / font_w;
+
+ if (columns<1) {
+ kdDebug(1211) << "TEWidget::calcGeometry: columns=" << columns << endl;
+ columns=1;
+ }
+ lines = contentHeight / font_h;
+ }
+}
+
+void TEWidget::makeImage()
+{
+ calcGeometry();
+ image_size=lines*columns;
+ // We over-commit 1 character so that we can be more relaxed in dealing with
+ // certain boundary conditions: image[image_size] is a valid but unused position
+ image = (ca*) malloc((image_size+1)*sizeof(ca));
+ clearImage();
+}
+
+// calculate the needed size
+void TEWidget::setSize(int cols, int lins)
+{
+ int frw = width() - contentsRect().width();
+ int frh = height() - contentsRect().height();
+ int scw = (scrollLoc==SCRNONE?0:scrollbar->width());
+ m_size = QSize(font_w*cols + 2*rimX + frw + scw, font_h*lins + 2*rimY + frh + /* mysterious */ 1);
+ updateGeometry();
+}
+
+void TEWidget::setFixedSize(int cols, int lins)
+{
+ isFixedSize = true;
+ columns = cols;
+ lines = lins;
+ if (image)
+ {
+ free(image);
+ makeImage();
+ }
+ setSize(cols, lins);
+ QFrame::setFixedSize(m_size);
+}
+
+QSize TEWidget::sizeHint() const
+{
+ return m_size;
+}
+
+void TEWidget::styleChange(QStyle &)
+{
+ propagateSize();
+}
+
+
+/* --------------------------------------------------------------------- */
+/* */
+/* Drag & Drop */
+/* */
+/* --------------------------------------------------------------------- */
+
+void TEWidget::dragEnterEvent(QDragEnterEvent* e)
+{
+ e->accept(QTextDrag::canDecode(e) ||
+ KURLDrag::canDecode(e));
+}
+
+enum dropPopupOptions { paste, cd, cp, ln, mv };
+
+void TEWidget::dropEvent(QDropEvent* event)
+{
+ if (m_drop==0)
+ {
+ m_drop = new KPopupMenu(this);
+ m_drop->insertItem( i18n("Paste"), paste );
+ m_drop->insertSeparator();
+ m_drop->insertItem( "cd", cd );
+ m_drop->insertItem( "cp", cp );
+ m_drop->insertItem( "ln", ln );
+ m_drop->insertItem( "mv", mv );
+ connect(m_drop, SIGNAL(activated(int)), SLOT(drop_menu_activated(int)));
+ };
+ // The current behaviour when url(s) are dropped is
+ // * if there is only ONE url and if it's a LOCAL one, ask for paste or cd/cp/ln/mv
+ // * if there are only LOCAL urls, ask for paste or cp/ln/mv
+ // * in all other cases, just paste
+ // (for non-local ones, or for a list of URLs, 'cd' is nonsense)
+ KURL::List urllist;
+ m_dnd_file_count = 0;
+ dropText = "";
+ bool justPaste = true;
+
+ if(KURLDrag::decode(event, urllist)) {
+ justPaste =false;
+ if (!urllist.isEmpty()) {
+ KURL::List::Iterator it;
+
+ m_drop->setItemEnabled( cd, true );
+ m_drop->setItemEnabled( ln, true );
+
+ for ( it = urllist.begin(); it != urllist.end(); ++it ) {
+ if(m_dnd_file_count++ > 0) {
+ dropText += " ";
+ m_drop->setItemEnabled(cd,false);
+ }
+ KURL url = KIO::NetAccess::mostLocalURL( *it, 0 );
+ QString tmp;
+ if (url.isLocalFile()) {
+ tmp = url.path(); // local URL : remove protocol. This helps "ln" & "cd" and doesn't harm the others
+ } else if ( url.protocol() == QString::fromLatin1( "mailto" ) ) {
+ justPaste = true;
+ break;
+ } else {
+ tmp = url.url();
+ m_drop->setItemEnabled( cd, false );
+ m_drop->setItemEnabled( ln, false );
+ }
+ if (urllist.count()>1)
+ KRun::shellQuote(tmp);
+ dropText += tmp;
+ }
+
+ if (!justPaste) m_drop->popup(mapToGlobal(event->pos()));
+ }
+ }
+ if(justPaste && QTextDrag::decode(event, dropText)) {
+ kdDebug(1211) << "Drop:" << dropText.local8Bit() << "\n";
+ emit sendStringToEmu(dropText.local8Bit());
+ // Paste it
+ }
+}
+
+void TEWidget::doDrag()
+{
+ dragInfo.state = diDragging;
+ dragInfo.dragObject = new QTextDrag(QApplication::clipboard()->text(QClipboard::Selection), this);
+ dragInfo.dragObject->dragCopy();
+ // Don't delete the QTextDrag object. Qt will delete it when it's done with it.
+}
+
+void TEWidget::drop_menu_activated(int item)
+{
+ switch (item)
+ {
+ case paste:
+ if (m_dnd_file_count==1)
+ KRun::shellQuote(dropText);
+ emit sendStringToEmu(dropText.local8Bit());
+ setActiveWindow();
+ break;
+ case cd:
+ emit sendStringToEmu("cd ");
+ struct stat statbuf;
+ if ( ::stat( QFile::encodeName( dropText ), &statbuf ) == 0 )
+ {
+ if ( !S_ISDIR(statbuf.st_mode) )
+ {
+ KURL url;
+ url.setPath( dropText );
+ dropText = url.directory( true, false ); // remove filename
+ }
+ }
+ KRun::shellQuote(dropText);
+ emit sendStringToEmu(dropText.local8Bit());
+ emit sendStringToEmu("\n");
+ setActiveWindow();
+ break;
+ case cp:
+ emit sendStringToEmu("kfmclient copy " );
+ break;
+ case ln:
+ emit sendStringToEmu("ln -s ");
+ break;
+ case mv:
+ emit sendStringToEmu("kfmclient move " );
+ break;
+ }
+ if (item>cd && item<=mv) {
+ if (m_dnd_file_count==1)
+ KRun::shellQuote(dropText);
+ emit sendStringToEmu(dropText.local8Bit());
+ emit sendStringToEmu(" .\n");
+ setActiveWindow();
+ }
+}
+
+uint TEWidget::lineSpacing() const
+{
+ return m_lineSpacing;
+}
+
+void TEWidget::setLineSpacing(uint i)
+{
+ m_lineSpacing = i;
+ setVTFont(font()); // Trigger an update.
+}
+
+#include "TEWidget.moc"
diff --git a/konsole/konsole/TEWidget.h b/konsole/konsole/TEWidget.h
new file mode 100644
index 000000000..bb4d2c610
--- /dev/null
+++ b/konsole/konsole/TEWidget.h
@@ -0,0 +1,335 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef TE_WIDGET_H
+#define TE_WIDGET_H
+
+#include <qbitarray.h>
+#include <qwidget.h>
+#include <qcolor.h>
+#include <qkeycode.h>
+#include <qtimer.h>
+#include <qscrollbar.h>
+
+#include <kpopupmenu.h>
+
+#include "TECommon.h"
+
+
+extern unsigned short vt100_graphics[32];
+
+class Konsole;
+class QLabel;
+class QTimer;
+
+class TEWidget : public QFrame
+// a widget representing attributed text
+{
+ Q_OBJECT
+
+ friend class Konsole;
+public:
+
+ TEWidget(QWidget *parent=0, const char *name=0);
+ virtual ~TEWidget();
+
+ void setBlendColor(const QRgb color) { blend_color = color; }
+
+ void setDefaultBackColor(const QColor& color);
+ QColor getDefaultBackColor();
+
+ const ColorEntry* getColorTable() const;
+ void setColorTable(const ColorEntry table[]);
+
+ void setScrollbarLocation(int loc);
+ int getScrollbarLocation() { return scrollLoc; }
+ enum { SCRNONE=0, SCRLEFT=1, SCRRIGHT=2 };
+
+ void setScroll(int cursor, int lines);
+ void doScroll(int lines);
+
+ bool blinkingCursor() { return hasBlinkingCursor; }
+ void setBlinkingCursor(bool blink);
+
+ void setCtrlDrag(bool enable) { ctrldrag=enable; }
+ bool ctrlDrag() { return ctrldrag; }
+
+ void setCutToBeginningOfLine(bool enable) { cuttobeginningofline=enable; }
+ bool cutToBeginningOfLine() { return cuttobeginningofline; }
+
+ void setLineSpacing(uint);
+ uint lineSpacing() const;
+
+ void emitSelection(bool useXselection,bool appendReturn);
+ void emitText(QString text);
+
+ void setImage(const ca* const newimg, int lines, int columns);
+ void setLineWrapped(QBitArray line_wrapped) { m_line_wrapped=line_wrapped; }
+
+ void setCursorPos(const int curx, const int cury);
+
+ int Lines() { return lines; }
+ int Columns() { return columns; }
+
+ int fontHeight() { return font_h; }
+ int fontWidth() { return font_w; }
+
+ void calcGeometry();
+ void propagateSize();
+ void updateImageSize();
+ void setSize(int cols, int lins);
+ void setFixedSize(int cols, int lins);
+ QSize sizeHint() const;
+
+ void setWordCharacters(QString wc);
+ QString wordCharacters() { return word_characters; }
+
+ void setBellMode(int mode);
+ int bellMode() { return m_bellMode; }
+ enum { BELLSYSTEM=0, BELLNOTIFY=1, BELLVISUAL=2, BELLNONE=3 };
+ void Bell(bool visibleSession, QString message);
+
+ void setSelection(const QString &t);
+
+ /**
+ * Reimplemented. Has no effect. Use setVTFont() to change the font
+ * used to draw characters in the display.
+ */
+ virtual void setFont(const QFont &);
+
+ /** Returns the font used to draw characters in the display */
+ QFont getVTFont() { return font(); }
+
+ /**
+ * Sets the font used to draw the display. Has no effect if @p font
+ * is larger than the size of the display itself.
+ */
+ void setVTFont(const QFont& font);
+
+ void setMouseMarks(bool on);
+ static void setAntialias( bool enable ) { s_antialias = enable; }
+ static bool antialias() { return s_antialias; }
+ static void setStandalone( bool standalone ) { s_standalone = standalone; }
+ static bool standalone() { return s_standalone; }
+
+ void setTerminalSizeHint(bool on) { terminalSizeHint=on; }
+ bool isTerminalSizeHint() { return terminalSizeHint; }
+ void setTerminalSizeStartup(bool on) { terminalSizeStartup=on; }
+
+ void setBidiEnabled(bool set) { bidiEnabled=set; }
+ bool isBidiEnabled() { return bidiEnabled; }
+
+ void print(QPainter &paint, bool friendly, bool exact);
+
+ void setRim(int rim) { rimX=rim; rimY=rim; }
+
+public slots:
+
+ void setSelectionEnd();
+ void copyClipboard();
+ void pasteClipboard();
+ void pasteSelection();
+ void onClearSelection();
+
+signals:
+
+ void keyPressedSignal(QKeyEvent *e);
+ void mouseSignal(int cb, int cx, int cy);
+ void changedFontMetricSignal(int height, int width);
+ void changedContentSizeSignal(int height, int width);
+ void changedHistoryCursor(int value);
+ void configureRequest( TEWidget*, int state, int x, int y );
+
+ void copySelectionSignal();
+ void clearSelectionSignal();
+ void beginSelectionSignal( const int x, const int y, const bool columnmode );
+ void extendSelectionSignal( const int x, const int y );
+ void endSelectionSignal(const bool preserve_line_breaks);
+ void isBusySelecting(bool);
+ void testIsSelected(const int x, const int y, bool &selected /* result */);
+ void sendStringToEmu(const char*);
+
+protected:
+
+ virtual void styleChange( QStyle& );
+
+ bool eventFilter( QObject *, QEvent * );
+ bool event( QEvent * );
+
+ void drawTextFixed(QPainter &paint, int x, int y,
+ QString& str, const ca *attr);
+
+ void drawAttrStr(QPainter &paint, QRect rect,
+ QString& str, const ca *attr, bool pm, bool clear);
+ void paintEvent( QPaintEvent * );
+
+ void paintContents(QPainter &paint, const QRect &rect, bool pm=false);
+
+ void resizeEvent(QResizeEvent*);
+
+ void fontChange(const QFont &font);
+ void frameChanged();
+
+ void mouseDoubleClickEvent(QMouseEvent* ev);
+ void mousePressEvent( QMouseEvent* );
+ void mouseReleaseEvent( QMouseEvent* );
+ void mouseMoveEvent( QMouseEvent* );
+ void extendSelection( QPoint pos );
+ void wheelEvent( QWheelEvent* );
+
+ void focusInEvent( QFocusEvent * );
+ void focusOutEvent( QFocusEvent * );
+ bool focusNextPrevChild( bool next );
+ // Dnd
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dropEvent(QDropEvent* event);
+ void doDrag();
+ enum DragState { diNone, diPending, diDragging };
+
+ struct _dragInfo {
+ DragState state;
+ QPoint start;
+ QTextDrag *dragObject;
+ } dragInfo;
+
+ virtual int charClass(UINT16) const;
+
+ void clearImage();
+
+ void mouseTripleClickEvent(QMouseEvent* ev);
+
+ void imStartEvent( QIMEvent *e );
+ void imComposeEvent( QIMEvent *e );
+ void imEndEvent( QIMEvent *e );
+
+protected slots:
+
+ void scrollChanged(int value);
+ void blinkEvent();
+ void blinkCursorEvent();
+
+private:
+
+// QChar (*fontMap)(QChar); // possible vt100 font extension
+
+ bool fixed_font; // has fixed pitch
+ int font_h; // height
+ int font_w; // width
+ int font_a; // ascend
+
+ int bX; // offset
+ int bY; // offset
+
+ int lines;
+ int columns;
+ int contentHeight;
+ int contentWidth;
+ ca *image; // [lines][columns]
+ int image_size;
+ QBitArray m_line_wrapped;
+
+ ColorEntry color_table[TABLE_COLORS];
+ QColor defaultBgColor;
+
+ bool resizing;
+ bool terminalSizeHint,terminalSizeStartup;
+ bool bidiEnabled;
+ bool mouse_marks;
+
+ void makeImage();
+
+ QPoint iPntSel; // initial selection point
+ QPoint pntSel; // current selection point
+ QPoint tripleSelBegin; // help avoid flicker
+ int actSel; // selection state
+ bool word_selection_mode;
+ bool line_selection_mode;
+ bool preserve_line_breaks;
+ bool column_selection_mode;
+
+ QClipboard* cb;
+ QScrollBar* scrollbar;
+ int scrollLoc;
+ QString word_characters;
+ QTimer bellTimer; //used to rate-limit bell events. started when a bell event occurs,
+ //and prevents further bell events until it stops
+ int m_bellMode;
+
+ bool blinking; // hide text in paintEvent
+ bool hasBlinker; // has characters to blink
+ bool cursorBlinking; // hide cursor in paintEvent
+ bool hasBlinkingCursor; // has blinking cursor enabled
+ bool ctrldrag; // require Ctrl key for drag
+ bool cuttobeginningofline; // triple click only selects forward
+ bool isBlinkEvent; // paintEvent due to blinking.
+ bool isPrinting; // Paint job is intended for printer
+ bool printerFriendly; // paint printer friendly, save ink
+ bool printerBold; // Use a bold font instead of overstrike for bold
+ bool isFixedSize; //Columns / lines are locked.
+ QTimer* blinkT; // active when hasBlinker
+ QTimer* blinkCursorT; // active when hasBlinkingCursor
+
+ KPopupMenu* m_drop;
+ QString dropText;
+ int m_dnd_file_count;
+
+ bool possibleTripleClick; // is set in mouseDoubleClickEvent and deleted
+ // after QApplication::doubleClickInterval() delay
+
+ static bool s_antialias; // do we antialias or not
+ static bool s_standalone; // are we part of a standalone konsole?
+
+ QFrame *mResizeWidget;
+ QLabel *mResizeLabel;
+ QTimer *mResizeTimer;
+
+ uint m_lineSpacing;
+
+ QRect cursorRect; //for quick changing of cursor
+
+ QPoint configureRequestPoint; // remember right mouse button click position
+ bool colorsSwapped; // true during visual bell
+
+ // the rim should normally be 1, 0 only when running in full screen mode.
+ int rimX; // left/right rim width
+ int rimY; // top/bottom rim high
+ QSize m_size;
+
+ QString m_imPreeditText;
+ int m_imPreeditLength;
+ int m_imStart;
+ int m_imStartLine;
+ int m_imEnd;
+ int m_imSelStart;
+ int m_imSelEnd;
+ int m_cursorLine;
+ int m_cursorCol;
+ bool m_isIMEdit;
+ bool m_isIMSel;
+
+ QRgb blend_color;
+
+private slots:
+ void drop_menu_activated(int item);
+ void swapColorTable();
+ void tripleClickTimeout(); // resets possibleTripleClick
+};
+
+#endif // TE_WIDGET_H
diff --git a/konsole/konsole/TEmuVt102.cpp b/konsole/konsole/TEmuVt102.cpp
new file mode 100644
index 000000000..47207de34
--- /dev/null
+++ b/konsole/konsole/TEmuVt102.cpp
@@ -0,0 +1,1430 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*! \class TEmuVt102
+
+ \brief Actual Emulation for Konsole
+
+ \sa TEWidget \sa TEScreen
+*/
+#include "config.h"
+
+// this allows konsole to be compiled without XKB and XTEST extensions
+// even though it might be available on a particular system.
+#if defined(AVOID_XKB)
+#undef HAVE_XKB
+#endif
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include "TEmuVt102.h"
+#include "TEWidget.h"
+#include "TEScreen.h"
+
+#include <stdio.h>
+#include <unistd.h>
+
+#include <assert.h>
+
+#include "TEmuVt102.moc"
+
+#include <kdebug.h>
+
+/* VT102 Terminal Emulation
+
+ This class puts together the screens, the pty and the widget to a
+ complete terminal emulation. Beside combining it's componentes, it
+ handles the emulations's protocol.
+
+ This module consists of the following sections:
+
+ - Constructor/Destructor
+ - Incoming Bytes Event pipeline
+ - Outgoing Bytes
+ - Mouse Events
+ - Keyboard Events
+ - Modes and Charset State
+ - Diagnostics
+*/
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Constructor / Destructor */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*
+ Nothing really intesting happens here.
+*/
+
+/*!
+*/
+
+TEmuVt102::TEmuVt102(TEWidget* gui) : TEmulation(gui)
+{
+ //kdDebug(1211)<<"TEmuVt102 ctor() connecting"<<endl;
+ QObject::connect(gui,SIGNAL(mouseSignal(int,int,int)),
+ this,SLOT(onMouse(int,int,int)));
+ QObject::connect(gui, SIGNAL(sendStringToEmu(const char*)),
+ this, SLOT(sendString(const char*)));
+ //kdDebug(1211)<<"TEmuVt102 ctor() initToken..."<<endl;
+ initTokenizer();
+ //kdDebug(1211)<<"TEmuVt102 ctor() reset()"<<endl;
+ reset();
+ //kdDebug(1211)<<"TEmuVt102 ctor() ctor done"<<endl;
+}
+
+/*!
+*/
+
+void TEmuVt102::changeGUI(TEWidget* newgui)
+{
+ if (static_cast<TEWidget *>( gui )==newgui) return;
+
+ if ( gui ) {
+ QObject::disconnect(gui,SIGNAL(mouseSignal(int,int,int)),
+ this,SLOT(onMouse(int,int,int)));
+ QObject::disconnect(gui, SIGNAL(sendStringToEmu(const char*)),
+ this, SLOT(sendString(const char*)));
+ }
+ TEmulation::changeGUI(newgui);
+ QObject::connect(gui,SIGNAL(mouseSignal(int,int,int)),
+ this,SLOT(onMouse(int,int,int)));
+ QObject::connect(gui, SIGNAL(sendStringToEmu(const char*)),
+ this, SLOT(sendString(const char*)));
+}
+
+/*!
+*/
+
+TEmuVt102::~TEmuVt102()
+{
+}
+
+/*!
+*/
+
+void TEmuVt102::clearEntireScreen()
+{
+ scr->clearEntireScreen();
+}
+
+void TEmuVt102::reset()
+{
+ //kdDebug(1211)<<"TEmuVt102::reset() resetToken()"<<endl;
+ resetToken();
+ //kdDebug(1211)<<"TEmuVt102::reset() resetModes()"<<endl;
+ resetModes();
+ //kdDebug(1211)<<"TEmuVt102::reset() resetCharSet()"<<endl;
+ resetCharset(0);
+ //kdDebug(1211)<<"TEmuVt102::reset() reset screen0()"<<endl;
+ screen[0]->reset();
+ //kdDebug(1211)<<"TEmuVt102::reset() resetCharSet()"<<endl;
+ resetCharset(1);
+ //kdDebug(1211)<<"TEmuVt102::reset() reset screen 1"<<endl;
+ screen[1]->reset();
+ //kdDebug(1211)<<"TEmuVt102::reset() setCodec()"<<endl;
+ setCodec(0);
+ //kdDebug(1211)<<"TEmuVt102::reset() done"<<endl;
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Processing the incoming byte stream */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/* Incoming Bytes Event pipeline
+
+ This section deals with decoding the incoming character stream.
+ Decoding means here, that the stream is first seperated into `tokens'
+ which are then mapped to a `meaning' provided as operations by the
+ `TEScreen' class or by the emulation class itself.
+
+ The pipeline proceeds as follows:
+
+ - Tokenizing the ESC codes (onRcvChar)
+ - VT100 code page translation of plain characters (applyCharset)
+ - Interpretation of ESC codes (tau)
+
+ The escape codes and their meaning are described in the
+ technical reference of this program.
+*/
+
+// Tokens ------------------------------------------------------------------ --
+
+/*
+ Since the tokens are the central notion if this section, we've put them
+ in front. They provide the syntactical elements used to represent the
+ terminals operations as byte sequences.
+
+ They are encodes here into a single machine word, so that we can later
+ switch over them easily. Depending on the token itself, additional
+ argument variables are filled with parameter values.
+
+ The tokens are defined below:
+
+ - CHR - Printable characters (32..255 but DEL (=127))
+ - CTL - Control characters (0..31 but ESC (= 27), DEL)
+ - ESC - Escape codes of the form <ESC><CHR but `[]()+*#'>
+ - ESC_DE - Escape codes of the form <ESC><any of `()+*#%'> C
+ - CSI_PN - Escape codes of the form <ESC>'[' {Pn} ';' {Pn} C
+ - CSI_PS - Escape codes of the form <ESC>'[' {Pn} ';' ... C
+ - CSI_PR - Escape codes of the form <ESC>'[' '?' {Pn} ';' ... C
+ - CSI_PE - Escape codes of the form <ESC>'[' '!' {Pn} ';' ... C
+ - VT52 - VT52 escape codes
+ - <ESC><Chr>
+ - <ESC>'Y'{Pc}{Pc}
+ - XTE_HA - Xterm hacks <ESC>`]' {Pn} `;' {Text} <BEL>
+ note that this is handled differently
+
+ The last two forms allow list of arguments. Since the elements of
+ the lists are treated individually the same way, they are passed
+ as individual tokens to the interpretation. Further, because the
+ meaning of the parameters are names (althought represented as numbers),
+ they are includes within the token ('N').
+
+*/
+
+#define TY_CONSTR(T,A,N) ( ((((int)N) & 0xffff) << 16) | ((((int)A) & 0xff) << 8) | (((int)T) & 0xff) )
+
+#define TY_CHR( ) TY_CONSTR(0,0,0)
+#define TY_CTL(A ) TY_CONSTR(1,A,0)
+#define TY_ESC(A ) TY_CONSTR(2,A,0)
+#define TY_ESC_CS(A,B) TY_CONSTR(3,A,B)
+#define TY_ESC_DE(A ) TY_CONSTR(4,A,0)
+#define TY_CSI_PS(A,N) TY_CONSTR(5,A,N)
+#define TY_CSI_PN(A ) TY_CONSTR(6,A,0)
+#define TY_CSI_PR(A,N) TY_CONSTR(7,A,N)
+
+#define TY_VT52(A ) TY_CONSTR(8,A,0)
+
+#define TY_CSI_PG(A ) TY_CONSTR(9,A,0)
+
+#define TY_CSI_PE(A ) TY_CONSTR(10,A,0)
+
+// Tokenizer --------------------------------------------------------------- --
+
+/* The tokenizers state
+
+ The state is represented by the buffer (pbuf, ppos),
+ and accompanied by decoded arguments kept in (argv,argc).
+ Note that they are kept internal in the tokenizer.
+*/
+
+void TEmuVt102::resetToken()
+{
+ ppos = 0; argc = 0; argv[0] = 0; argv[1] = 0;
+}
+
+void TEmuVt102::addDigit(int dig)
+{
+ argv[argc] = 10*argv[argc] + dig;
+}
+
+void TEmuVt102::addArgument()
+{
+ argc = QMIN(argc+1,MAXARGS-1);
+ argv[argc] = 0;
+}
+
+void TEmuVt102::pushToToken(int cc)
+{
+ pbuf[ppos] = cc;
+ ppos = QMIN(ppos+1,MAXPBUF-1);
+}
+
+// Character Classes used while decoding
+
+#define CTL 1
+#define CHR 2
+#define CPN 4
+#define DIG 8
+#define SCS 16
+#define GRP 32
+#define CPS 64
+
+void TEmuVt102::initTokenizer()
+{ int i; UINT8* s;
+ for(i = 0; i < 256; i++) tbl[ i] = 0;
+ for(i = 0; i < 32; i++) tbl[ i] |= CTL;
+ for(i = 32; i < 256; i++) tbl[ i] |= CHR;
+ for(s = (UINT8*)"@ABCDGHILMPSTXZcdfry"; *s; s++) tbl[*s] |= CPN;
+// resize = \e[8;<row>;<col>t
+ for(s = (UINT8*)"t"; *s; s++) tbl[*s] |= CPS;
+ for(s = (UINT8*)"0123456789" ; *s; s++) tbl[*s] |= DIG;
+ for(s = (UINT8*)"()+*%" ; *s; s++) tbl[*s] |= SCS;
+ for(s = (UINT8*)"()+*#[]%" ; *s; s++) tbl[*s] |= GRP;
+ resetToken();
+}
+
+/* Ok, here comes the nasty part of the decoder.
+
+ Instead of keeping an explicit state, we deduce it from the
+ token scanned so far. It is then immediately combined with
+ the current character to form a scanning decision.
+
+ This is done by the following defines.
+
+ - P is the length of the token scanned so far.
+ - L (often P-1) is the position on which contents we base a decision.
+ - C is a character or a group of characters (taken from 'tbl').
+
+ Note that they need to applied in proper order.
+*/
+
+#define lec(P,L,C) (p == (P) && s[(L)] == (C))
+#define lun( ) (p == 1 && cc >= 32 )
+#define les(P,L,C) (p == (P) && s[L] < 256 && (tbl[s[(L)]] & (C)) == (C))
+#define eec(C) (p >= 3 && cc == (C))
+#define ees(C) (p >= 3 && cc < 256 && (tbl[ cc ] & (C)) == (C))
+#define eps(C) (p >= 3 && s[2] != '?' && s[2] != '!' && s[2] != '>' && cc < 256 && (tbl[ cc ] & (C)) == (C))
+#define epp( ) (p >= 3 && s[2] == '?' )
+#define epe( ) (p >= 3 && s[2] == '!' )
+#define egt( ) (p >= 3 && s[2] == '>' )
+#define Xpe (ppos>=2 && pbuf[1] == ']' )
+#define Xte (Xpe && cc == 7 )
+#define ces(C) ( cc < 256 && (tbl[ cc ] & (C)) == (C) && !Xte)
+
+#define ESC 27
+#define CNTL(c) ((c)-'@')
+
+// process an incoming unicode character
+
+void TEmuVt102::onRcvChar(int cc)
+{ int i;
+ if (cc == 127) return; //VT100: ignore.
+
+ if (ces( CTL))
+ { // DEC HACK ALERT! Control Characters are allowed *within* esc sequences in VT100
+ // This means, they do neither a resetToken nor a pushToToken. Some of them, do
+ // of course. Guess this originates from a weakly layered handling of the X-on
+ // X-off protocol, which comes really below this level.
+ if (cc == CNTL('X') || cc == CNTL('Z') || cc == ESC) resetToken(); //VT100: CAN or SUB
+ if (cc != ESC) { tau( TY_CTL(cc+'@' ), 0, 0); return; }
+ }
+
+ pushToToken(cc); // advance the state
+
+ int* s = pbuf;
+ int p = ppos;
+
+ if (getMode(MODE_Ansi)) // decide on proper action
+ {
+ if (lec(1,0,ESC)) { return; }
+ if (lec(1,0,ESC+128)) { s[0] = ESC; onRcvChar('['); return; }
+ if (les(2,1,GRP)) { return; }
+ if (Xte ) { XtermHack(); resetToken(); return; }
+ if (Xpe ) { return; }
+ if (lec(3,2,'?')) { return; }
+ if (lec(3,2,'>')) { return; }
+ if (lec(3,2,'!')) { return; }
+ if (lun( )) { tau( TY_CHR(), applyCharset(cc), 0); resetToken(); return; }
+ if (lec(2,0,ESC)) { tau( TY_ESC(s[1]), 0, 0); resetToken(); return; }
+ if (les(3,1,SCS)) { tau( TY_ESC_CS(s[1],s[2]), 0, 0); resetToken(); return; }
+ if (lec(3,1,'#')) { tau( TY_ESC_DE(s[2]), 0, 0); resetToken(); return; }
+ if (eps( CPN)) { tau( TY_CSI_PN(cc), argv[0],argv[1]); resetToken(); return; }
+
+// resize = \e[8;<row>;<col>t
+ if (eps( CPS)) { tau( TY_CSI_PS(cc, argv[0]), argv[1], argv[2]); resetToken(); return; }
+
+ if (epe( )) { tau( TY_CSI_PE(cc), 0, 0); resetToken(); return; }
+ if (ees( DIG)) { addDigit(cc-'0'); return; }
+ if (eec( ';')) { addArgument(); return; }
+ for (i=0;i<=argc;i++)
+ if ( epp( )) { tau( TY_CSI_PR(cc,argv[i]), 0, 0); }
+ else if(egt( )) { tau( TY_CSI_PG(cc ), 0, 0); } // spec. case for ESC]>0c or ESC]>c
+ else if (cc == 'm' && argc - i >= 4 && (argv[i] == 38 || argv[i] == 48) && argv[i+1] == 2)
+ { // ESC[ ... 48;2;<red>;<green>;<blue> ... m -or- ESC[ ... 38;2;<red>;<green>;<blue> ... m
+ i += 2;
+ tau( TY_CSI_PS(cc, argv[i-2]), CO_RGB, (argv[i] << 16) | (argv[i+1] << 8) | argv[i+2]);
+ i += 2;
+ }
+ else if (cc == 'm' && argc - i >= 2 && (argv[i] == 38 || argv[i] == 48) && argv[i+1] == 5)
+ { // ESC[ ... 48;5;<index> ... m -or- ESC[ ... 38;5;<index> ... m
+ i += 2;
+ tau( TY_CSI_PS(cc, argv[i-2]), CO_256, argv[i]);
+ }
+ else { tau( TY_CSI_PS(cc,argv[i]), 0, 0); }
+ resetToken();
+ }
+ else // mode VT52
+ {
+ if (lec(1,0,ESC)) return;
+ if (les(1,0,CHR)) { tau( TY_CHR( ), s[0], 0); resetToken(); return; }
+ if (lec(2,1,'Y')) return;
+ if (lec(3,1,'Y')) return;
+ if (p < 4) { tau( TY_VT52(s[1] ), 0, 0); resetToken(); return; }
+ tau( TY_VT52(s[1] ), s[2],s[3]); resetToken(); return;
+ }
+}
+
+void TEmuVt102::XtermHack()
+{ int i,arg = 0;
+ for (i = 2; i < ppos && '0'<=pbuf[i] && pbuf[i]<'9' ; i++)
+ arg = 10*arg + (pbuf[i]-'0');
+ if (pbuf[i] != ';') { ReportErrorToken(); return; }
+ QChar *str = new QChar[ppos-i-2];
+ for (int j = 0; j < ppos-i-2; j++) str[j] = pbuf[i+1+j];
+ QString unistr(str,ppos-i-2);
+ // arg == 1 doesn't change the title. In XTerm it only changes the icon name
+ // (btw: arg=0 changes title and icon, arg=1 only icon, arg=2 only title
+ emit changeTitle(arg,unistr);
+ delete [] str;
+}
+
+// Interpreting Codes ---------------------------------------------------------
+
+/*
+ Now that the incoming character stream is properly tokenized,
+ meaning is assigned to them. These are either operations of
+ the current screen, or of the emulation class itself.
+
+ The token to be interpreteted comes in as a machine word
+ possibly accompanied by two parameters.
+
+ Likewise, the operations assigned to, come with up to two
+ arguments. One could consider to make up a proper table
+ from the function below.
+
+ The technical reference manual provides more informations
+ about this mapping.
+*/
+
+void TEmuVt102::tau( int token, int p, int q )
+{
+#if 0
+int N = (token>>0)&0xff;
+int A = (token>>8)&0xff;
+switch( N )
+{
+ case 0: printf("%c", (p < 128) ? p : '?');
+ break;
+ case 1: if (A == 'J') printf("\r");
+ else if (A == 'M') printf("\n");
+ else printf("CTL-%c ", (token>>8)&0xff);
+ break;
+ case 2: printf("ESC-%c ", (token>>8)&0xff);
+ break;
+ case 3: printf("ESC_CS-%c-%c ", (token>>8)&0xff, (token>>16)&0xff);
+ break;
+ case 4: printf("ESC_DE-%c ", (token>>8)&0xff);
+ break;
+ case 5: printf("CSI-PS-%c-%d", (token>>8)&0xff, (token>>16)&0xff );
+ break;
+ case 6: printf("CSI-PN-%c [%d]", (token>>8)&0xff, p);
+ break;
+ case 7: printf("CSI-PR-%c-%d", (token>>8)&0xff, (token>>16)&0xff );
+ break;
+ case 8: printf("VT52-%c", (token>>8)&0xff);
+ break;
+ case 9: printf("CSI-PG-%c", (token>>8)&0xff);
+ break;
+ case 10: printf("CSI-PE-%c", (token>>8)&0xff);
+ break;
+}
+#endif
+
+ switch (token)
+ {
+
+ case TY_CHR( ) : scr->ShowCharacter (p ); break; //UTF16
+
+ // 127 DEL : ignored on input
+
+ case TY_CTL('@' ) : /* NUL: ignored */ break;
+ case TY_CTL('A' ) : /* SOH: ignored */ break;
+ case TY_CTL('B' ) : /* STX: ignored */ break;
+ case TY_CTL('C' ) : /* ETX: ignored */ break;
+ case TY_CTL('D' ) : /* EOT: ignored */ break;
+ case TY_CTL('E' ) : reportAnswerBack ( ); break; //VT100
+ case TY_CTL('F' ) : /* ACK: ignored */ break;
+ case TY_CTL('G' ) : emit notifySessionState(NOTIFYBELL);
+ break; //VT100
+ case TY_CTL('H' ) : scr->BackSpace ( ); break; //VT100
+ case TY_CTL('I' ) : scr->Tabulate ( ); break; //VT100
+ case TY_CTL('J' ) : scr->NewLine ( ); break; //VT100
+ case TY_CTL('K' ) : scr->NewLine ( ); break; //VT100
+ case TY_CTL('L' ) : scr->NewLine ( ); break; //VT100
+ case TY_CTL('M' ) : scr->Return ( ); break; //VT100
+
+ case TY_CTL('N' ) : useCharset ( 1); break; //VT100
+ case TY_CTL('O' ) : useCharset ( 0); break; //VT100
+
+ case TY_CTL('P' ) : /* DLE: ignored */ break;
+ case TY_CTL('Q' ) : /* DC1: XON continue */ break; //VT100
+ case TY_CTL('R' ) : /* DC2: ignored */ break;
+ case TY_CTL('S' ) : /* DC3: XOFF halt */ break; //VT100
+ case TY_CTL('T' ) : /* DC4: ignored */ break;
+ case TY_CTL('U' ) : /* NAK: ignored */ break;
+ case TY_CTL('V' ) : /* SYN: ignored */ break;
+ case TY_CTL('W' ) : /* ETB: ignored */ break;
+ case TY_CTL('X' ) : scr->ShowCharacter ( 0x2592); break; //VT100
+ case TY_CTL('Y' ) : /* EM : ignored */ break;
+ case TY_CTL('Z' ) : scr->ShowCharacter ( 0x2592); break; //VT100
+ case TY_CTL('[' ) : /* ESC: cannot be seen here. */ break;
+ case TY_CTL('\\' ) : /* FS : ignored */ break;
+ case TY_CTL(']' ) : /* GS : ignored */ break;
+ case TY_CTL('^' ) : /* RS : ignored */ break;
+ case TY_CTL('_' ) : /* US : ignored */ break;
+
+ case TY_ESC('D' ) : scr->index ( ); break; //VT100
+ case TY_ESC('E' ) : scr->NextLine ( ); break; //VT100
+ case TY_ESC('H' ) : scr->changeTabStop (true ); break; //VT100
+ case TY_ESC('M' ) : scr->reverseIndex ( ); break; //VT100
+ case TY_ESC('Z' ) : reportTerminalType ( ); break;
+ case TY_ESC('c' ) : reset ( ); break;
+
+ case TY_ESC('n' ) : useCharset ( 2); break;
+ case TY_ESC('o' ) : useCharset ( 3); break;
+ case TY_ESC('7' ) : saveCursor ( ); break;
+ case TY_ESC('8' ) : restoreCursor ( ); break;
+
+ case TY_ESC('=' ) : setMode (MODE_AppKeyPad); break;
+ case TY_ESC('>' ) : resetMode (MODE_AppKeyPad); break;
+ case TY_ESC('<' ) : setMode (MODE_Ansi ); break; //VT100
+
+ case TY_ESC_CS('(', '0') : setCharset (0, '0'); break; //VT100
+ case TY_ESC_CS('(', 'A') : setCharset (0, 'A'); break; //VT100
+ case TY_ESC_CS('(', 'B') : setCharset (0, 'B'); break; //VT100
+
+ case TY_ESC_CS(')', '0') : setCharset (1, '0'); break; //VT100
+ case TY_ESC_CS(')', 'A') : setCharset (1, 'A'); break; //VT100
+ case TY_ESC_CS(')', 'B') : setCharset (1, 'B'); break; //VT100
+
+ case TY_ESC_CS('*', '0') : setCharset (2, '0'); break; //VT100
+ case TY_ESC_CS('*', 'A') : setCharset (2, 'A'); break; //VT100
+ case TY_ESC_CS('*', 'B') : setCharset (2, 'B'); break; //VT100
+
+ case TY_ESC_CS('+', '0') : setCharset (3, '0'); break; //VT100
+ case TY_ESC_CS('+', 'A') : setCharset (3, 'A'); break; //VT100
+ case TY_ESC_CS('+', 'B') : setCharset (3, 'B'); break; //VT100
+
+ case TY_ESC_CS('%', 'G') : setCodec (1 ); break; //LINUX
+ case TY_ESC_CS('%', '@') : setCodec (0 ); break; //LINUX
+
+ case TY_ESC_DE('3' ) : /* IGNORED: double high, top half */ break;
+ case TY_ESC_DE('4' ) : /* IGNORED: double high, bottom half */ break;
+ case TY_ESC_DE('5' ) : /* IGNORED: single width, single high*/ break;
+ case TY_ESC_DE('6' ) : /* IGNORED: double width, single high*/ break;
+ case TY_ESC_DE('8' ) : scr->helpAlign ( ); break;
+
+// resize = \e[8;<row>;<col>t
+ case TY_CSI_PS('t', 8) : changeColLin( q /* col */, p /* lin */ ); break;
+
+// change tab text color : \e[28;<color>t color: 0-16,777,215
+ case TY_CSI_PS('t', 28) : emit changeTabTextColor ( p ); break;
+
+ case TY_CSI_PS('K', 0) : scr->clearToEndOfLine ( ); break;
+ case TY_CSI_PS('K', 1) : scr->clearToBeginOfLine ( ); break;
+ case TY_CSI_PS('K', 2) : scr->clearEntireLine ( ); break;
+ case TY_CSI_PS('J', 0) : scr->clearToEndOfScreen ( ); break;
+ case TY_CSI_PS('J', 1) : scr->clearToBeginOfScreen ( ); break;
+ case TY_CSI_PS('J', 2) : scr->clearEntireScreen ( ); break;
+ case TY_CSI_PS('g', 0) : scr->changeTabStop (false ); break; //VT100
+ case TY_CSI_PS('g', 3) : scr->clearTabStops ( ); break; //VT100
+ case TY_CSI_PS('h', 4) : scr-> setMode (MODE_Insert ); break;
+ case TY_CSI_PS('h', 20) : setMode (MODE_NewLine ); break;
+ case TY_CSI_PS('i', 0) : /* IGNORE: attached printer */ break; //VT100
+ case TY_CSI_PS('l', 4) : scr-> resetMode (MODE_Insert ); break;
+ case TY_CSI_PS('l', 20) : resetMode (MODE_NewLine ); break;
+ case TY_CSI_PS('s', 0) : saveCursor ( ); break;
+ case TY_CSI_PS('u', 0) : restoreCursor ( ); break;
+
+ case TY_CSI_PS('m', 0) : scr->setDefaultRendition ( ); break;
+ case TY_CSI_PS('m', 1) : scr-> setRendition (RE_BOLD ); break; //VT100
+ case TY_CSI_PS('m', 4) : scr-> setRendition (RE_UNDERLINE); break; //VT100
+ case TY_CSI_PS('m', 5) : scr-> setRendition (RE_BLINK ); break; //VT100
+ case TY_CSI_PS('m', 7) : scr-> setRendition (RE_REVERSE ); break;
+ case TY_CSI_PS('m', 10) : /* IGNORED: mapping related */ break; //LINUX
+ case TY_CSI_PS('m', 11) : /* IGNORED: mapping related */ break; //LINUX
+ case TY_CSI_PS('m', 12) : /* IGNORED: mapping related */ break; //LINUX
+ case TY_CSI_PS('m', 22) : scr->resetRendition (RE_BOLD ); break;
+ case TY_CSI_PS('m', 24) : scr->resetRendition (RE_UNDERLINE); break;
+ case TY_CSI_PS('m', 25) : scr->resetRendition (RE_BLINK ); break;
+ case TY_CSI_PS('m', 27) : scr->resetRendition (RE_REVERSE ); break;
+
+ case TY_CSI_PS('m', 30) : scr->setForeColor (CO_SYS, 0); break;
+ case TY_CSI_PS('m', 31) : scr->setForeColor (CO_SYS, 1); break;
+ case TY_CSI_PS('m', 32) : scr->setForeColor (CO_SYS, 2); break;
+ case TY_CSI_PS('m', 33) : scr->setForeColor (CO_SYS, 3); break;
+ case TY_CSI_PS('m', 34) : scr->setForeColor (CO_SYS, 4); break;
+ case TY_CSI_PS('m', 35) : scr->setForeColor (CO_SYS, 5); break;
+ case TY_CSI_PS('m', 36) : scr->setForeColor (CO_SYS, 6); break;
+ case TY_CSI_PS('m', 37) : scr->setForeColor (CO_SYS, 7); break;
+
+ case TY_CSI_PS('m', 38) : scr->setForeColor (p, q); break;
+
+ case TY_CSI_PS('m', 39) : scr->setForeColor (CO_DFT, 0); break;
+
+ case TY_CSI_PS('m', 40) : scr->setBackColor (CO_SYS, 0); break;
+ case TY_CSI_PS('m', 41) : scr->setBackColor (CO_SYS, 1); break;
+ case TY_CSI_PS('m', 42) : scr->setBackColor (CO_SYS, 2); break;
+ case TY_CSI_PS('m', 43) : scr->setBackColor (CO_SYS, 3); break;
+ case TY_CSI_PS('m', 44) : scr->setBackColor (CO_SYS, 4); break;
+ case TY_CSI_PS('m', 45) : scr->setBackColor (CO_SYS, 5); break;
+ case TY_CSI_PS('m', 46) : scr->setBackColor (CO_SYS, 6); break;
+ case TY_CSI_PS('m', 47) : scr->setBackColor (CO_SYS, 7); break;
+
+ case TY_CSI_PS('m', 48) : scr->setBackColor (p, q); break;
+
+ case TY_CSI_PS('m', 49) : scr->setBackColor (CO_DFT, 1); break;
+
+ case TY_CSI_PS('m', 90) : scr->setForeColor (CO_SYS, 8); break;
+ case TY_CSI_PS('m', 91) : scr->setForeColor (CO_SYS, 9); break;
+ case TY_CSI_PS('m', 92) : scr->setForeColor (CO_SYS, 10); break;
+ case TY_CSI_PS('m', 93) : scr->setForeColor (CO_SYS, 11); break;
+ case TY_CSI_PS('m', 94) : scr->setForeColor (CO_SYS, 12); break;
+ case TY_CSI_PS('m', 95) : scr->setForeColor (CO_SYS, 13); break;
+ case TY_CSI_PS('m', 96) : scr->setForeColor (CO_SYS, 14); break;
+ case TY_CSI_PS('m', 97) : scr->setForeColor (CO_SYS, 15); break;
+
+ case TY_CSI_PS('m', 100) : scr->setBackColor (CO_SYS, 8); break;
+ case TY_CSI_PS('m', 101) : scr->setBackColor (CO_SYS, 9); break;
+ case TY_CSI_PS('m', 102) : scr->setBackColor (CO_SYS, 10); break;
+ case TY_CSI_PS('m', 103) : scr->setBackColor (CO_SYS, 11); break;
+ case TY_CSI_PS('m', 104) : scr->setBackColor (CO_SYS, 12); break;
+ case TY_CSI_PS('m', 105) : scr->setBackColor (CO_SYS, 13); break;
+ case TY_CSI_PS('m', 106) : scr->setBackColor (CO_SYS, 14); break;
+ case TY_CSI_PS('m', 107) : scr->setBackColor (CO_SYS, 15); break;
+
+ case TY_CSI_PS('n', 5) : reportStatus ( ); break;
+ case TY_CSI_PS('n', 6) : reportCursorPosition ( ); break;
+ case TY_CSI_PS('q', 0) : /* IGNORED: LEDs off */ break; //VT100
+ case TY_CSI_PS('q', 1) : /* IGNORED: LED1 on */ break; //VT100
+ case TY_CSI_PS('q', 2) : /* IGNORED: LED2 on */ break; //VT100
+ case TY_CSI_PS('q', 3) : /* IGNORED: LED3 on */ break; //VT100
+ case TY_CSI_PS('q', 4) : /* IGNORED: LED4 on */ break; //VT100
+ case TY_CSI_PS('x', 0) : reportTerminalParms ( 2); break; //VT100
+ case TY_CSI_PS('x', 1) : reportTerminalParms ( 3); break; //VT100
+
+ case TY_CSI_PN('@' ) : scr->insertChars (p ); break;
+ case TY_CSI_PN('A' ) : scr->cursorUp (p ); break; //VT100
+ case TY_CSI_PN('B' ) : scr->cursorDown (p ); break; //VT100
+ case TY_CSI_PN('C' ) : scr->cursorRight (p ); break; //VT100
+ case TY_CSI_PN('D' ) : scr->cursorLeft (p ); break; //VT100
+ case TY_CSI_PN('G' ) : scr->setCursorX (p ); break; //LINUX
+ case TY_CSI_PN('H' ) : scr->setCursorYX (p, q); break; //VT100
+ case TY_CSI_PN('I' ) : scr->Tabulate (p ); break;
+ case TY_CSI_PN('L' ) : scr->insertLines (p ); break;
+ case TY_CSI_PN('M' ) : scr->deleteLines (p ); break;
+ case TY_CSI_PN('P' ) : scr->deleteChars (p ); break;
+ case TY_CSI_PN('S' ) : scr->scrollUp (p ); break;
+ case TY_CSI_PN('T' ) : scr->scrollDown (p ); break;
+ case TY_CSI_PN('X' ) : scr->eraseChars (p ); break;
+ case TY_CSI_PN('Z' ) : scr->backTabulate (p ); break;
+ case TY_CSI_PN('c' ) : reportTerminalType ( ); break; //VT100
+ case TY_CSI_PN('d' ) : scr->setCursorY (p ); break; //LINUX
+ case TY_CSI_PN('f' ) : scr->setCursorYX (p, q); break; //VT100
+ case TY_CSI_PN('r' ) : setMargins (p, q); break; //VT100
+ case TY_CSI_PN('y' ) : /* IGNORED: Confidence test */ break; //VT100
+
+ case TY_CSI_PR('h', 1) : setMode (MODE_AppCuKeys); break; //VT100
+ case TY_CSI_PR('l', 1) : resetMode (MODE_AppCuKeys); break; //VT100
+ case TY_CSI_PR('s', 1) : saveMode (MODE_AppCuKeys); break; //FIXME
+ case TY_CSI_PR('r', 1) : restoreMode (MODE_AppCuKeys); break; //FIXME
+
+ case TY_CSI_PR('l', 2) : resetMode (MODE_Ansi ); break; //VT100
+
+ case TY_CSI_PR('h', 3) : setColumns ( 132); break; //VT100
+ case TY_CSI_PR('l', 3) : setColumns ( 80); break; //VT100
+
+ case TY_CSI_PR('h', 4) : /* IGNORED: soft scrolling */ break; //VT100
+ case TY_CSI_PR('l', 4) : /* IGNORED: soft scrolling */ break; //VT100
+
+ case TY_CSI_PR('h', 5) : scr-> setMode (MODE_Screen ); break; //VT100
+ case TY_CSI_PR('l', 5) : scr-> resetMode (MODE_Screen ); break; //VT100
+
+ case TY_CSI_PR('h', 6) : scr-> setMode (MODE_Origin ); break; //VT100
+ case TY_CSI_PR('l', 6) : scr-> resetMode (MODE_Origin ); break; //VT100
+ case TY_CSI_PR('s', 6) : scr-> saveMode (MODE_Origin ); break; //FIXME
+ case TY_CSI_PR('r', 6) : scr->restoreMode (MODE_Origin ); break; //FIXME
+
+ case TY_CSI_PR('h', 7) : scr-> setMode (MODE_Wrap ); break; //VT100
+ case TY_CSI_PR('l', 7) : scr-> resetMode (MODE_Wrap ); break; //VT100
+ case TY_CSI_PR('s', 7) : scr-> saveMode (MODE_Wrap ); break; //FIXME
+ case TY_CSI_PR('r', 7) : scr->restoreMode (MODE_Wrap ); break; //FIXME
+
+ case TY_CSI_PR('h', 8) : /* IGNORED: autorepeat on */ break; //VT100
+ case TY_CSI_PR('l', 8) : /* IGNORED: autorepeat off */ break; //VT100
+ case TY_CSI_PR('s', 8) : /* IGNORED: autorepeat on */ break; //VT100
+ case TY_CSI_PR('r', 8) : /* IGNORED: autorepeat off */ break; //VT100
+
+ case TY_CSI_PR('h', 9) : /* IGNORED: interlace */ break; //VT100
+ case TY_CSI_PR('l', 9) : /* IGNORED: interlace */ break; //VT100
+ case TY_CSI_PR('s', 9) : /* IGNORED: interlace */ break; //VT100
+ case TY_CSI_PR('r', 9) : /* IGNORED: interlace */ break; //VT100
+
+ case TY_CSI_PR('h', 12) : /* IGNORED: Cursor blink */ break; //att610
+ case TY_CSI_PR('l', 12) : /* IGNORED: Cursor blink */ break; //att610
+ case TY_CSI_PR('s', 12) : /* IGNORED: Cursor blink */ break; //att610
+ case TY_CSI_PR('r', 12) : /* IGNORED: Cursor blink */ break; //att610
+
+ case TY_CSI_PR('h', 25) : setMode (MODE_Cursor ); break; //VT100
+ case TY_CSI_PR('l', 25) : resetMode (MODE_Cursor ); break; //VT100
+ case TY_CSI_PR('s', 25) : saveMode (MODE_Cursor ); break; //VT100
+ case TY_CSI_PR('r', 25) : restoreMode (MODE_Cursor ); break; //VT100
+
+ case TY_CSI_PR('h', 41) : /* IGNORED: obsolete more(1) fix */ break; //XTERM
+ case TY_CSI_PR('l', 41) : /* IGNORED: obsolete more(1) fix */ break; //XTERM
+ case TY_CSI_PR('s', 41) : /* IGNORED: obsolete more(1) fix */ break; //XTERM
+ case TY_CSI_PR('r', 41) : /* IGNORED: obsolete more(1) fix */ break; //XTERM
+
+ case TY_CSI_PR('h', 47) : setMode (MODE_AppScreen); break; //VT100
+ case TY_CSI_PR('l', 47) : resetMode (MODE_AppScreen); break; //VT100
+ case TY_CSI_PR('s', 47) : saveMode (MODE_AppScreen); break; //XTERM
+ case TY_CSI_PR('r', 47) : restoreMode (MODE_AppScreen); break; //XTERM
+
+ case TY_CSI_PR('h', 67) : /* IGNORED: DECBKM */ break; //XTERM
+ case TY_CSI_PR('l', 67) : /* IGNORED: DECBKM */ break; //XTERM
+ case TY_CSI_PR('s', 67) : /* IGNORED: DECBKM */ break; //XTERM
+ case TY_CSI_PR('r', 67) : /* IGNORED: DECBKM */ break; //XTERM
+
+ // XTerm defines the following modes:
+ // SET_VT200_MOUSE 1000
+ // SET_VT200_HIGHLIGHT_MOUSE 1001
+ // SET_BTN_EVENT_MOUSE 1002
+ // SET_ANY_EVENT_MOUSE 1003
+ //
+ // FIXME: Modes 1000,1002 and 1003 have subtle differences which we don't
+ // support yet, we treat them all the same.
+
+ case TY_CSI_PR('h', 1000) : setMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('l', 1000) : resetMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('s', 1000) : saveMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('r', 1000) : restoreMode (MODE_Mouse1000); break; //XTERM
+
+ case TY_CSI_PR('h', 1001) : /* IGNORED: hilite mouse tracking */ break; //XTERM
+ case TY_CSI_PR('l', 1001) : resetMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('s', 1001) : /* IGNORED: hilite mouse tracking */ break; //XTERM
+ case TY_CSI_PR('r', 1001) : /* IGNORED: hilite mouse tracking */ break; //XTERM
+
+ case TY_CSI_PR('h', 1002) : setMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('l', 1002) : resetMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('s', 1002) : saveMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('r', 1002) : restoreMode (MODE_Mouse1000); break; //XTERM
+
+ case TY_CSI_PR('h', 1003) : setMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('l', 1003) : resetMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('s', 1003) : saveMode (MODE_Mouse1000); break; //XTERM
+ case TY_CSI_PR('r', 1003) : restoreMode (MODE_Mouse1000); break; //XTERM
+
+ case TY_CSI_PR('h', 1047) : setMode (MODE_AppScreen); break; //XTERM
+ case TY_CSI_PR('l', 1047) : screen[1]->clearEntireScreen(); resetMode(MODE_AppScreen); break; //XTERM
+ case TY_CSI_PR('s', 1047) : saveMode (MODE_AppScreen); break; //XTERM
+ case TY_CSI_PR('r', 1047) : restoreMode (MODE_AppScreen); break; //XTERM
+
+ //FIXME: Unitoken: save translations
+ case TY_CSI_PR('h', 1048) : saveCursor ( ); break; //XTERM
+ case TY_CSI_PR('l', 1048) : restoreCursor ( ); break; //XTERM
+ case TY_CSI_PR('s', 1048) : saveCursor ( ); break; //XTERM
+ case TY_CSI_PR('r', 1048) : restoreCursor ( ); break; //XTERM
+
+ //FIXME: every once new sequences like this pop up in xterm.
+ // Here's a guess of what they could mean.
+ case TY_CSI_PR('h', 1049) : saveCursor(); screen[1]->clearEntireScreen(); setMode(MODE_AppScreen); break; //XTERM
+ case TY_CSI_PR('l', 1049) : resetMode(MODE_AppScreen); restoreCursor(); break; //XTERM
+
+ //FIXME: weird DEC reset sequence
+ case TY_CSI_PE('p' ) : /* IGNORED: reset ( ) */ break;
+
+ //FIXME: when changing between vt52 and ansi mode evtl do some resetting.
+ case TY_VT52('A' ) : scr->cursorUp ( 1); break; //VT52
+ case TY_VT52('B' ) : scr->cursorDown ( 1); break; //VT52
+ case TY_VT52('C' ) : scr->cursorRight ( 1); break; //VT52
+ case TY_VT52('D' ) : scr->cursorLeft ( 1); break; //VT52
+
+ case TY_VT52('F' ) : setAndUseCharset (0, '0'); break; //VT52
+ case TY_VT52('G' ) : setAndUseCharset (0, 'B'); break; //VT52
+
+ case TY_VT52('H' ) : scr->setCursorYX (1,1 ); break; //VT52
+ case TY_VT52('I' ) : scr->reverseIndex ( ); break; //VT52
+ case TY_VT52('J' ) : scr->clearToEndOfScreen ( ); break; //VT52
+ case TY_VT52('K' ) : scr->clearToEndOfLine ( ); break; //VT52
+ case TY_VT52('Y' ) : scr->setCursorYX (p-31,q-31 ); break; //VT52
+ case TY_VT52('Z' ) : reportTerminalType ( ); break; //VT52
+ case TY_VT52('<' ) : setMode (MODE_Ansi ); break; //VT52
+ case TY_VT52('=' ) : setMode (MODE_AppKeyPad); break; //VT52
+ case TY_VT52('>' ) : resetMode (MODE_AppKeyPad); break; //VT52
+
+ case TY_CSI_PG('c' ) : reportSecondaryAttributes( ); break; //VT100
+
+ default : ReportErrorToken(); break;
+ };
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Terminal to Host protocol */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*
+ Outgoing bytes originate from several sources:
+
+ - Replies to Enquieries.
+ - Mouse Events
+ - Keyboard Events
+*/
+
+/*!
+*/
+
+void TEmuVt102::sendString(const char* s)
+{
+ emit sndBlock(s,strlen(s));
+}
+
+// Replies ----------------------------------------------------------------- --
+
+// This section copes with replies send as response to an enquiery control code.
+
+/*!
+*/
+
+void TEmuVt102::reportCursorPosition()
+{ char tmp[20];
+ sprintf(tmp,"\033[%d;%dR",scr->getCursorY()+1,scr->getCursorX()+1);
+ sendString(tmp);
+}
+
+/*
+ What follows here is rather obsolete and faked stuff.
+ The correspondent enquieries are neverthenless issued.
+*/
+
+/*!
+*/
+
+void TEmuVt102::reportTerminalType()
+{
+ // Primary device attribute response (Request was: ^[[0c or ^[[c (from TT321 Users Guide))
+ // VT220: ^[[?63;1;2;3;6;7;8c (list deps on emul. capabilities)
+ // VT100: ^[[?1;2c
+ // VT101: ^[[?1;0c
+ // VT102: ^[[?6v
+ if (getMode(MODE_Ansi))
+ sendString("\033[?1;2c"); // I'm a VT100
+ else
+ sendString("\033/Z"); // I'm a VT52
+}
+
+void TEmuVt102::reportSecondaryAttributes()
+{
+ // Seconday device attribute response (Request was: ^[[>0c or ^[[>c)
+ if (getMode(MODE_Ansi))
+ sendString("\033[>0;115;0c"); // Why 115? ;)
+ else
+ sendString("\033/Z"); // FIXME I don't think VT52 knows about it but kept for
+ // konsoles backward compatibility.
+}
+
+void TEmuVt102::reportTerminalParms(int p)
+// DECREPTPARM
+{ char tmp[100];
+ sprintf(tmp,"\033[%d;1;1;112;112;1;0x",p); // not really true.
+ sendString(tmp);
+}
+
+/*!
+*/
+
+void TEmuVt102::reportStatus()
+{
+ sendString("\033[0n"); //VT100. Device status report. 0 = Ready.
+}
+
+/*!
+*/
+
+#define ANSWER_BACK "" // This is really obsolete VT100 stuff.
+
+void TEmuVt102::reportAnswerBack()
+{
+ sendString(ANSWER_BACK);
+}
+
+// Mouse Handling ---------------------------------------------------------- --
+
+/*!
+ Mouse clicks are possibly reported to the client
+ application if it has issued interest in them.
+ They are normally consumed by the widget for copy
+ and paste, but may be propagated from the widget
+ when gui->setMouseMarks is set via setMode(MODE_Mouse1000).
+
+ `x',`y' are 1-based.
+ `ev' (event) indicates the button pressed (0-2)
+ or a general mouse release (3).
+*/
+
+void TEmuVt102::onMouse( int cb, int cx, int cy )
+{ char tmp[20];
+ if (!connected || cx<1 || cy<1) return;
+ // normal buttons are passed as 0x20 + button,
+ // mouse wheel (buttons 4,5) as 0x5c + button
+ if (cb >= 4) cb += 0x3c;
+ sprintf(tmp,"\033[M%c%c%c",cb+0x20,cx+0x20,cy+0x20);
+ sendString(tmp);
+}
+
+// Keyboard Handling ------------------------------------------------------- --
+
+#if defined(HAVE_XKB)
+static void scrolllock_set_off();
+static void scrolllock_set_on();
+#endif
+
+void TEmuVt102::scrollLock(const bool lock)
+{
+ if (lock)
+ {
+ holdScreen = true;
+ emit lockPty(true);
+ }
+ else
+ {
+ holdScreen = false;
+ emit lockPty(false);
+ }
+#if defined(HAVE_XKB)
+ if (holdScreen)
+ scrolllock_set_on();
+ else
+ scrolllock_set_off();
+#endif
+}
+
+void TEmuVt102::onScrollLock()
+{
+ bool switchlock = !holdScreen;
+ scrollLock(switchlock);
+}
+
+#define encodeMode(M,B) BITS(B,getMode(M))
+#define encodeStat(M,B) BITS(B,((ev->state() & (M)) == (M)))
+
+/*
+ Keyboard event handling has been simplified somewhat by pushing
+ the complications towards a configuration file [see KeyTrans class].
+*/
+
+void TEmuVt102::onKeyPress( QKeyEvent* ev )
+{
+ if (!listenToKeyPress) return; // someone else gets the keys
+ emit notifySessionState(NOTIFYNORMAL);
+
+//printf("State/Key: 0x%04x 0x%04x (%d,%d)\n",ev->state(),ev->key(),ev->text().length(),ev->text().length()?ev->text().ascii()[0]:0);
+
+ // lookup in keyboard translation table ...
+ int cmd = CMD_none;
+ const char* txt;
+ int len;
+ bool metaspecified;
+ if (keytrans->findEntry(ev->key(), encodeMode(MODE_NewLine , BITS_NewLine ) + // OLD,
+ encodeMode(MODE_Ansi , BITS_Ansi ) + // OBSOLETE,
+ encodeMode(MODE_AppCuKeys, BITS_AppCuKeys ) + // VT100 stuff
+ encodeMode(MODE_AppScreen, BITS_AppScreen ) + // VT100 stuff
+ encodeStat(ControlButton , BITS_Control ) +
+ encodeStat(ShiftButton , BITS_Shift ) +
+ encodeStat(AltButton , BITS_Alt ),
+ &cmd, &txt, &len, &metaspecified ))
+//printf("cmd: %d, %s, %d\n",cmd,txt,len);
+ if (connected)
+ {
+ switch(cmd) // ... and execute if found.
+ {
+ case CMD_scrollPageUp : gui->doScroll(-gui->Lines()/2); return;
+ case CMD_scrollPageDown : gui->doScroll(+gui->Lines()/2); return;
+ case CMD_scrollLineUp : gui->doScroll(-1 ); return;
+ case CMD_scrollLineDown : gui->doScroll(+1 ); return;
+ case CMD_scrollLock : onScrollLock( ); return;
+ }
+ }
+ if (holdScreen)
+ {
+ switch(ev->key())
+ {
+ case Key_Down : gui->doScroll(+1); return;
+ case Key_Up : gui->doScroll(-1); return;
+ case Key_PageUp : gui->doScroll(-gui->Lines()/2); return;
+ case Key_PageDown : gui->doScroll(gui->Lines()/2); return;
+ }
+ }
+
+ // revert to non-history when typing
+ if (scr->getHistCursor() != scr->getHistLines() && (!ev->text().isEmpty()
+ || ev->key()==Key_Down || ev->key()==Key_Up || ev->key()==Key_Left || ev->key()==Key_Right
+ || ev->key()==Key_PageUp || ev->key()==Key_PageDown))
+ scr->setHistCursor(scr->getHistLines());
+
+ if (cmd==CMD_send) {
+ if ((ev->state() & AltButton) && !metaspecified ) sendString("\033");
+ emit sndBlock(txt,len);
+ return;
+ }
+
+ // fall back handling
+ if (!ev->text().isEmpty())
+ {
+ if (ev->state() & AltButton) sendString("\033"); // ESC, this is the ALT prefix
+ QCString s = m_codec->fromUnicode(ev->text()); // encode for application
+ // FIXME: In Qt 2, QKeyEvent::text() would return "\003" for Ctrl-C etc.
+ // while in Qt 3 it returns the actual key ("c" or "C") which caused
+ // the ControlButton to be ignored. This hack seems to work for
+ // latin1 locales at least. Please anyone find a clean solution (malte)
+ if (ev->state() & ControlButton)
+ s.fill(ev->ascii(), 1);
+ emit sndBlock(s.data(),s.length()); // we may well have s.length() > 1
+ return;
+ }
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* VT100 Charsets */
+/* */
+/* ------------------------------------------------------------------------- */
+
+// Character Set Conversion ------------------------------------------------ --
+
+/*
+ The processing contains a VT100 specific code translation layer.
+ It's still in use and mainly responsible for the line drawing graphics.
+
+ These and some other glyphs are assigned to codes (0x5f-0xfe)
+ normally occupied by the latin letters. Since this codes also
+ appear within control sequences, the extra code conversion
+ does not permute with the tokenizer and is placed behind it
+ in the pipeline. It only applies to tokens, which represent
+ plain characters.
+
+ This conversion it eventually continued in TEWidget.C, since
+ it might involve VT100 enhanced fonts, which have these
+ particular glyphs allocated in (0x00-0x1f) in their code page.
+*/
+
+#define CHARSET charset[scr==screen[1]]
+
+// Apply current character map.
+
+unsigned short TEmuVt102::applyCharset(unsigned short c)
+{
+ if (CHARSET.graphic && 0x5f <= c && c <= 0x7e) return vt100_graphics[c-0x5f];
+ if (CHARSET.pound && c == '#' ) return 0xa3; //This mode is obsolete
+ return c;
+}
+
+/*
+ "Charset" related part of the emulation state.
+ This configures the VT100 charset filter.
+
+ While most operation work on the current screen,
+ the following two are different.
+*/
+
+void TEmuVt102::resetCharset(int scrno)
+{
+ charset[scrno].cu_cs = 0;
+ strncpy(charset[scrno].charset,"BBBB",4);
+ charset[scrno].sa_graphic = false;
+ charset[scrno].sa_pound = false;
+ charset[scrno].graphic = false;
+ charset[scrno].pound = false;
+}
+
+/*!
+*/
+
+void TEmuVt102::setCharset(int n, int cs) // on both screens.
+{
+ charset[0].charset[n&3] = cs; useCharset(charset[0].cu_cs);
+ charset[1].charset[n&3] = cs; useCharset(charset[1].cu_cs);
+}
+
+/*!
+*/
+
+void TEmuVt102::setAndUseCharset(int n, int cs)
+{
+ CHARSET.charset[n&3] = cs;
+ useCharset(n&3);
+}
+
+/*!
+*/
+
+void TEmuVt102::useCharset(int n)
+{
+ CHARSET.cu_cs = n&3;
+ CHARSET.graphic = (CHARSET.charset[n&3] == '0');
+ CHARSET.pound = (CHARSET.charset[n&3] == 'A'); //This mode is obsolete
+}
+
+void TEmuVt102::setMargins(int t, int b)
+{
+ screen[0]->setMargins(t, b);
+ screen[1]->setMargins(t, b);
+}
+
+/*! Save the cursor position and the rendition attribute settings. */
+
+void TEmuVt102::saveCursor()
+{
+ CHARSET.sa_graphic = CHARSET.graphic;
+ CHARSET.sa_pound = CHARSET.pound; //This mode is obsolete
+ // we are not clear about these
+ //sa_charset = charsets[cScreen->charset];
+ //sa_charset_num = cScreen->charset;
+ scr->saveCursor();
+}
+
+/*! Restore the cursor position and the rendition attribute settings. */
+
+void TEmuVt102::restoreCursor()
+{
+ CHARSET.graphic = CHARSET.sa_graphic;
+ CHARSET.pound = CHARSET.sa_pound; //This mode is obsolete
+ scr->restoreCursor();
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Mode Operations */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*
+ Some of the emulations state is either added to the state of the screens.
+
+ This causes some scoping problems, since different emulations choose to
+ located the mode either to the current screen or to both.
+
+ For strange reasons, the extend of the rendition attributes ranges over
+ all screens and not over the actual screen.
+
+ We decided on the precise precise extend, somehow.
+*/
+
+// "Mode" related part of the state. These are all booleans.
+
+void TEmuVt102::resetModes()
+{
+ resetMode(MODE_Mouse1000); saveMode(MODE_Mouse1000);
+ resetMode(MODE_AppScreen); saveMode(MODE_AppScreen);
+ // here come obsolete modes
+ resetMode(MODE_AppCuKeys); saveMode(MODE_AppCuKeys);
+ resetMode(MODE_NewLine );
+ setMode(MODE_Ansi );
+ holdScreen = false;
+}
+
+void TEmuVt102::setMode(int m)
+{
+ currParm.mode[m] = true;
+ switch (m)
+ {
+ case MODE_Mouse1000 : if (connected) gui->setMouseMarks(false);
+ break;
+
+ case MODE_AppScreen : screen[1]->clearSelection();
+ setScreen(1);
+ break;
+ }
+ if (m < MODES_SCREEN || m == MODE_NewLine)
+ {
+ screen[0]->setMode(m);
+ screen[1]->setMode(m);
+ }
+}
+
+void TEmuVt102::resetMode(int m)
+{
+ currParm.mode[m] = false;
+ switch (m)
+ {
+ case MODE_Mouse1000 : if (connected) gui->setMouseMarks(true);
+ break;
+
+ case MODE_AppScreen : screen[0]->clearSelection();
+ setScreen(0);
+ break;
+ }
+ if (m < MODES_SCREEN || m == MODE_NewLine)
+ {
+ screen[0]->resetMode(m);
+ screen[1]->resetMode(m);
+ }
+}
+
+void TEmuVt102::saveMode(int m)
+{
+ saveParm.mode[m] = currParm.mode[m];
+}
+
+void TEmuVt102::restoreMode(int m)
+{
+ if(saveParm.mode[m]) setMode(m); else resetMode(m);
+}
+
+bool TEmuVt102::getMode(int m)
+{
+ return currParm.mode[m];
+}
+
+void TEmuVt102::setConnect(bool c)
+{
+ TEmulation::setConnect(c);
+ if (gui)
+ {
+ QObject::disconnect(gui, SIGNAL(sendStringToEmu(const char*)),
+ this, SLOT(sendString(const char*)));
+ }
+ if (c)
+ { // refresh mouse mode
+ if (getMode(MODE_Mouse1000))
+ setMode(MODE_Mouse1000);
+ else
+ resetMode(MODE_Mouse1000);
+#if defined(HAVE_XKB)
+ if (holdScreen)
+ scrolllock_set_on();
+ else
+ scrolllock_set_off();
+#endif
+ QObject::connect(gui, SIGNAL(sendStringToEmu(const char*)),
+ this, SLOT(sendString(const char*)));
+ }
+}
+
+char TEmuVt102::getErase()
+{
+ int cmd = CMD_none;
+ const char* txt;
+ int len;
+ bool metaspecified;
+
+ if (keytrans->findEntry(Qt::Key_Backspace, 0, &cmd, &txt, &len,
+ &metaspecified) && (cmd==CMD_send) && (len == 1))
+ return txt[0];
+
+ return '\b';
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Diagnostic */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*! shows the contents of the scan buffer.
+
+ This functions is used for diagnostics. It is called by \e ReportErrorToken
+ to inform about strings that cannot be decoded or handled by the emulation.
+
+ \sa ReportErrorToken
+*/
+
+/*!
+*/
+
+static void hexdump(int* s, int len)
+{ int i;
+ for (i = 0; i < len; i++)
+ {
+ if (s[i] == '\\')
+ printf("\\\\");
+ else
+ if ((s[i]) > 32 && s[i] < 127)
+ printf("%c",s[i]);
+ else
+ printf("\\%04x(hex)",s[i]);
+ }
+}
+
+void TEmuVt102::scan_buffer_report()
+{
+ if (ppos == 0 || ppos == 1 && (pbuf[0] & 0xff) >= 32) return;
+ printf("token: "); hexdump(pbuf,ppos); printf("\n");
+}
+
+/*!
+*/
+
+void TEmuVt102::ReportErrorToken()
+{
+#ifndef NDEBUG
+ printf("undecodable "); scan_buffer_report();
+#endif
+}
+
+/*
+ Originally comes from NumLockX http://dforce.sh.cvut.cz/~seli/en/numlockx
+
+ NumLockX
+
+ Copyright (C) 2000-2001 Lubos Lunak <l.lunak@kde.org>
+ Copyright (C) 2001 Oswald Buddenhagen <ossi@kde.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+****************************************************************************/
+
+#if defined(HAVE_XKB)
+
+#include <X11/Xlib.h>
+
+#define explicit myexplicit
+#include <X11/XKBlib.h>
+#undef explicit
+
+#include <X11/keysym.h>
+
+/* the XKB stuff is based on code created by Oswald Buddenhagen <ossi@kde.org> */
+static int xkb_init()
+{
+ int xkb_opcode, xkb_event, xkb_error;
+ int xkb_lmaj = XkbMajorVersion;
+ int xkb_lmin = XkbMinorVersion;
+ return XkbLibraryVersion( &xkb_lmaj, &xkb_lmin )
+ && XkbQueryExtension( qt_xdisplay(), &xkb_opcode, &xkb_event, &xkb_error,
+ &xkb_lmaj, &xkb_lmin );
+}
+
+#if 0
+// This method doesn't work in all cases. The atom "ScrollLock" doesn't seem
+// to exist on all XFree versions (at least it's not here with my 3.3.6) - DF
+static unsigned int xkb_mask_modifier( XkbDescPtr xkb, const char *name )
+{
+ int i;
+ if( !xkb || !xkb->names )
+ return 0;
+
+ Atom atom = XInternAtom( xkb->dpy, name, true );
+ if (atom == None)
+ return 0;
+
+ for( i = 0;
+ i < XkbNumVirtualMods;
+ i++ )
+ {
+ if (atom == xkb->names->vmods[i] )
+ {
+ unsigned int mask;
+ XkbVirtualModsToReal( xkb, 1 << i, &mask );
+ return mask;
+ }
+ }
+ return 0;
+}
+
+static unsigned int xkb_scrolllock_mask()
+{
+ XkbDescPtr xkb;
+ if(( xkb = XkbGetKeyboard( qt_xdisplay(), XkbAllComponentsMask, XkbUseCoreKbd )) != NULL )
+ {
+ unsigned int mask = xkb_mask_modifier( xkb, "ScrollLock" );
+ XkbFreeKeyboard( xkb, 0, True );
+ return mask;
+ }
+ return 0;
+}
+
+#else
+static unsigned int xkb_scrolllock_mask()
+{
+ int scrolllock_mask = 0;
+ XModifierKeymap* map = XGetModifierMapping( qt_xdisplay() );
+ KeyCode scrolllock_keycode = XKeysymToKeycode( qt_xdisplay(), XK_Scroll_Lock );
+ if( scrolllock_keycode == NoSymbol ) {
+ XFreeModifiermap(map);
+ return 0;
+ }
+ for( int i = 0;
+ i < 8;
+ ++i )
+ {
+ if( map->modifiermap[ map->max_keypermod * i ] == scrolllock_keycode )
+ scrolllock_mask += 1 << i;
+ }
+
+ XFreeModifiermap(map);
+ return scrolllock_mask;
+}
+#endif
+
+
+static unsigned int scrolllock_mask = 0;
+
+static int xkb_set_on()
+{
+ if (!scrolllock_mask)
+ {
+ if( !xkb_init())
+ return 0;
+ scrolllock_mask = xkb_scrolllock_mask();
+ if( scrolllock_mask == 0 )
+ return 0;
+ }
+ XkbLockModifiers ( qt_xdisplay(), XkbUseCoreKbd, scrolllock_mask, scrolllock_mask);
+ return 1;
+}
+
+static int xkb_set_off()
+{
+ if (!scrolllock_mask)
+ {
+ if( !xkb_init())
+ return 0;
+ scrolllock_mask = xkb_scrolllock_mask();
+ if( scrolllock_mask == 0 )
+ return 0;
+ }
+ XkbLockModifiers ( qt_xdisplay(), XkbUseCoreKbd, scrolllock_mask, 0);
+ return 1;
+}
+
+static void scrolllock_set_on()
+{
+ xkb_set_on();
+}
+
+static void scrolllock_set_off()
+{
+ xkb_set_off();
+}
+#endif // defined(HAVE_XKB)
diff --git a/konsole/konsole/TEmuVt102.h b/konsole/konsole/TEmuVt102.h
new file mode 100644
index 000000000..cd49cc089
--- /dev/null
+++ b/konsole/konsole/TEmuVt102.h
@@ -0,0 +1,146 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef VT102EMU_H
+#define VT102EMU_H
+
+#include "TEWidget.h"
+#include "TEScreen.h"
+#include "TEmulation.h"
+#include <stdio.h>
+
+//
+
+#define MODE_AppScreen (MODES_SCREEN+0)
+#define MODE_AppCuKeys (MODES_SCREEN+1)
+#define MODE_AppKeyPad (MODES_SCREEN+2)
+#define MODE_Mouse1000 (MODES_SCREEN+3)
+#define MODE_Ansi (MODES_SCREEN+4)
+#define MODE_total (MODES_SCREEN+5)
+
+struct DECpar
+{
+ bool mode[MODE_total];
+};
+
+struct CharCodes
+{
+ // coding info
+ char charset[4]; //
+ int cu_cs; // actual charset.
+ bool graphic; // Some VT100 tricks
+ bool pound ; // Some VT100 tricks
+ bool sa_graphic; // saved graphic
+ bool sa_pound; // saved pound
+};
+
+class TEmuVt102 : public TEmulation
+{ Q_OBJECT
+
+public:
+
+ TEmuVt102(TEWidget* gui);
+ void changeGUI(TEWidget* newgui);
+ ~TEmuVt102();
+
+ virtual void onKeyPress(QKeyEvent*);
+public slots: // signals incoming from TEWidget
+
+ void onMouse(int cb, int cx, int cy);
+
+signals:
+
+ void changeTitle(int,const QString&);
+
+public:
+
+ void clearEntireScreen();
+ void reset();
+
+ void onRcvChar(int cc);
+public slots:
+ void sendString(const char *);
+
+public:
+
+ bool getMode (int m);
+
+ void setMode (int m);
+ void resetMode (int m);
+ void saveMode (int m);
+ void restoreMode(int m);
+ void resetModes();
+
+ void setConnect(bool r);
+
+ char getErase();
+
+private:
+
+ void resetToken();
+#define MAXPBUF 80
+ void pushToToken(int cc);
+ int pbuf[MAXPBUF]; //FIXME: overflow?
+ int ppos;
+#define MAXARGS 15
+ void addDigit(int dig);
+ void addArgument();
+ int argv[MAXARGS];
+ int argc;
+ void initTokenizer();
+ int tbl[256];
+
+ void scan_buffer_report(); //FIXME: rename
+ void ReportErrorToken(); //FIXME: rename
+
+ void tau(int code, int p, int q);
+ void XtermHack();
+
+ //
+
+ void reportTerminalType();
+ void reportSecondaryAttributes();
+ void reportStatus();
+ void reportAnswerBack();
+ void reportCursorPosition();
+ void reportTerminalParms(int p);
+
+ void onScrollLock();
+ void scrollLock(const bool lock);
+
+protected:
+
+ unsigned short applyCharset(unsigned short c);
+ void setCharset(int n, int cs);
+ void useCharset(int n);
+ void setAndUseCharset(int n, int cs);
+ void saveCursor();
+ void restoreCursor();
+ void resetCharset(int scrno);
+ void setMargins(int t, int b);
+
+ CharCodes charset[2];
+
+ DECpar currParm;
+ DECpar saveParm;
+ bool holdScreen;
+};
+
+#endif // ifndef ANSIEMU_H
diff --git a/konsole/konsole/TEmulation.cpp b/konsole/konsole/TEmulation.cpp
new file mode 100644
index 000000000..0ff2a5163
--- /dev/null
+++ b/konsole/konsole/TEmulation.cpp
@@ -0,0 +1,550 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1996 by Matthias Ettrich <ettrich@kde.org>
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*! \class TEmulation
+
+ \brief Mediator between TEWidget and TEScreen.
+
+ This class is responsible to scan the escapes sequences of the terminal
+ emulation and to map it to their corresponding semantic complements.
+ Thus this module knows mainly about decoding escapes sequences and
+ is a stateless device w.r.t. the semantics.
+
+ It is also responsible to refresh the TEWidget by certain rules.
+
+ \sa TEWidget \sa TEScreen
+
+ \par A note on refreshing
+
+ Although the modifications to the current screen image could immediately
+ be propagated via `TEWidget' to the graphical surface, we have chosen
+ another way here.
+
+ The reason for doing so is twofold.
+
+ First, experiments show that directly displaying the operation results
+ in slowing down the overall performance of emulations. Displaying
+ individual characters using X11 creates a lot of overhead.
+
+ Second, by using the following refreshing method, the screen operations
+ can be completely separated from the displaying. This greatly simplifies
+ the programmer's task of coding and maintaining the screen operations,
+ since one need not worry about differential modifications on the
+ display affecting the operation of concern.
+
+ We use a refreshing algorithm here that has been adoped from rxvt/kvt.
+
+ By this, refreshing is driven by a timer, which is (re)started whenever
+ a new bunch of data to be interpreted by the emulation arives at `onRcvBlock'.
+ As soon as no more data arrive for `BULK_TIMEOUT' milliseconds, we trigger
+ refresh. This rule suits both bulk display operation as done by curses as
+ well as individual characters typed.
+
+ We start also a second time which is never restarted. If repeatedly
+ restarting of the first timer could delay continuous output indefinitly,
+ the second timer guarantees that the output is refreshed with at least
+ a fixed rate.
+*/
+
+/* FIXME
+ - evtl. the bulk operations could be made more transparent.
+*/
+
+#include "TEmulation.h"
+#include "TEWidget.h"
+#include "TEScreen.h"
+#include <kdebug.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <qregexp.h>
+#include <qclipboard.h>
+
+#include <assert.h>
+
+#include "TEmulation.moc"
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* TEmulation */
+/* */
+/* ------------------------------------------------------------------------- */
+
+#define CNTL(c) ((c)-'@')
+
+/*!
+*/
+
+TEmulation::TEmulation(TEWidget* w)
+: gui(w),
+ scr(0),
+ connected(false),
+ listenToKeyPress(false),
+ m_codec(0),
+ decoder(0),
+ keytrans(0),
+ m_findPos(-1)
+{
+
+ screen[0] = new TEScreen(gui->Lines(),gui->Columns());
+ screen[1] = new TEScreen(gui->Lines(),gui->Columns());
+ scr = screen[0];
+
+ QObject::connect(&bulk_timer1, SIGNAL(timeout()), this, SLOT(showBulk()) );
+ QObject::connect(&bulk_timer2, SIGNAL(timeout()), this, SLOT(showBulk()) );
+ connectGUI();
+ setKeymap(0); // Default keymap
+}
+
+/*!
+*/
+
+void TEmulation::connectGUI()
+{
+ QObject::connect(gui,SIGNAL(changedHistoryCursor(int)),
+ this,SLOT(onHistoryCursorChange(int)));
+ QObject::connect(gui,SIGNAL(keyPressedSignal(QKeyEvent*)),
+ this,SLOT(onKeyPress(QKeyEvent*)));
+ QObject::connect(gui,SIGNAL(beginSelectionSignal(const int,const int,const bool)),
+ this,SLOT(onSelectionBegin(const int,const int,const bool)) );
+ QObject::connect(gui,SIGNAL(extendSelectionSignal(const int,const int)),
+ this,SLOT(onSelectionExtend(const int,const int)) );
+ QObject::connect(gui,SIGNAL(endSelectionSignal(const bool)),
+ this,SLOT(setSelection(const bool)) );
+ QObject::connect(gui,SIGNAL(copySelectionSignal()),
+ this,SLOT(copySelection()) );
+ QObject::connect(gui,SIGNAL(clearSelectionSignal()),
+ this,SLOT(clearSelection()) );
+ QObject::connect(gui,SIGNAL(isBusySelecting(bool)),
+ this,SLOT(isBusySelecting(bool)) );
+ QObject::connect(gui,SIGNAL(testIsSelected(const int, const int, bool &)),
+ this,SLOT(testIsSelected(const int, const int, bool &)) );
+}
+
+/*!
+*/
+
+void TEmulation::changeGUI(TEWidget* newgui)
+{
+ if (static_cast<TEWidget *>( gui )==newgui) return;
+
+ if ( gui ) {
+ QObject::disconnect(gui,SIGNAL(changedHistoryCursor(int)),
+ this,SLOT(onHistoryCursorChange(int)));
+ QObject::disconnect(gui,SIGNAL(keyPressedSignal(QKeyEvent*)),
+ this,SLOT(onKeyPress(QKeyEvent*)));
+ QObject::disconnect(gui,SIGNAL(beginSelectionSignal(const int,const int,const bool)),
+ this,SLOT(onSelectionBegin(const int,const int,const bool)) );
+ QObject::disconnect(gui,SIGNAL(extendSelectionSignal(const int,const int)),
+ this,SLOT(onSelectionExtend(const int,const int)) );
+ QObject::disconnect(gui,SIGNAL(endSelectionSignal(const bool)),
+ this,SLOT(setSelection(const bool)) );
+ QObject::disconnect(gui,SIGNAL(copySelectionSignal()),
+ this,SLOT(copySelection()) );
+ QObject::disconnect(gui,SIGNAL(clearSelectionSignal()),
+ this,SLOT(clearSelection()) );
+ QObject::disconnect(gui,SIGNAL(isBusySelecting(bool)),
+ this,SLOT(isBusySelecting(bool)) );
+ QObject::disconnect(gui,SIGNAL(testIsSelected(const int, const int, bool &)),
+ this,SLOT(testIsSelected(const int, const int, bool &)) );
+ }
+ gui=newgui;
+ connectGUI();
+}
+
+/*!
+*/
+
+TEmulation::~TEmulation()
+{
+ delete screen[0];
+ delete screen[1];
+ delete decoder;
+}
+
+/*! change between primary and alternate screen
+*/
+
+void TEmulation::setScreen(int n)
+{
+ TEScreen *old = scr;
+ scr = screen[n&1];
+ if (scr != old)
+ old->setBusySelecting(false);
+}
+
+void TEmulation::setHistory(const HistoryType& t)
+{
+ screen[0]->setScroll(t);
+
+ if (!connected) return;
+ showBulk();
+}
+
+const HistoryType& TEmulation::history()
+{
+ return screen[0]->getScroll();
+}
+
+void TEmulation::setCodec(const QTextCodec * qtc)
+{
+ m_codec = qtc;
+ delete decoder;
+ decoder = m_codec->makeDecoder();
+ emit useUtf8(utf8());
+}
+
+void TEmulation::setCodec(int c)
+{
+ setCodec(c ? QTextCodec::codecForName("utf8")
+ : QTextCodec::codecForLocale());
+}
+
+void TEmulation::setKeymap(int no)
+{
+ keytrans = KeyTrans::find(no);
+}
+
+void TEmulation::setKeymap(const QString &id)
+{
+ keytrans = KeyTrans::find(id);
+}
+
+QString TEmulation::keymap()
+{
+ return keytrans->id();
+}
+
+int TEmulation::keymapNo()
+{
+ return keytrans->numb();
+}
+
+// Interpreting Codes ---------------------------------------------------------
+
+/*
+ This section deals with decoding the incoming character stream.
+ Decoding means here, that the stream is first seperated into `tokens'
+ which are then mapped to a `meaning' provided as operations by the
+ `Screen' class.
+*/
+
+/*!
+*/
+
+void TEmulation::onRcvChar(int c)
+// process application unicode input to terminal
+// this is a trivial scanner
+{
+ c &= 0xff;
+ switch (c)
+ {
+ case '\b' : scr->BackSpace(); break;
+ case '\t' : scr->Tabulate(); break;
+ case '\n' : scr->NewLine(); break;
+ case '\r' : scr->Return(); break;
+ case 0x07 : emit notifySessionState(NOTIFYBELL);
+ break;
+ default : scr->ShowCharacter(c); break;
+ };
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Keyboard Handling */
+/* */
+/* ------------------------------------------------------------------------- */
+
+/*!
+*/
+
+void TEmulation::onKeyPress( QKeyEvent* ev )
+{
+ if (!listenToKeyPress) return; // someone else gets the keys
+ emit notifySessionState(NOTIFYNORMAL);
+ if (scr->getHistCursor() != scr->getHistLines() && !ev->text().isEmpty())
+ scr->setHistCursor(scr->getHistLines());
+ if (!ev->text().isEmpty())
+ { // A block of text
+ // Note that the text is proper unicode.
+ // We should do a conversion here, but since this
+ // routine will never be used, we simply emit plain ascii.
+ emit sndBlock(ev->text().ascii(),ev->text().length());
+ }
+ else if (ev->ascii()>0)
+ { unsigned char c[1];
+ c[0] = ev->ascii();
+ emit sndBlock((char*)c,1);
+ }
+}
+
+// Unblocking, Byte to Unicode translation --------------------------------- --
+
+/*
+ We are doing code conversion from locale to unicode first.
+*/
+
+void TEmulation::onRcvBlock(const char *s, int len)
+{
+ emit notifySessionState(NOTIFYACTIVITY);
+
+ bulkStart();
+
+ QString r;
+ int i, l;
+
+ for (i = 0; i < len; i++)
+ {
+ // If we get a control code halfway a multi-byte sequence
+ // we flush the decoder and continue with the control code.
+ if ((unsigned char) s[i] < 32)
+ {
+ if (!r.length()) {
+ QString tmp;
+ // Flush decoder
+ while(!tmp.length())
+ tmp = decoder->toUnicode(" ",1);
+ }
+
+ onRcvChar((unsigned char) s[i]);
+
+ if (s[i] == '\030' && (len-i-1 > 3) && (strncmp(s+i+1, "B00", 3) == 0))
+ emit zmodemDetected();
+
+ continue;
+ }
+
+ // Otherwise, bulk decode until the next control code
+ for(l = i; l < len; l++)
+ if ((unsigned char) s[l+1] < 32)
+ break;
+
+ r = decoder->toUnicode(&s[i],l-i+1);
+ int reslen = r.length();
+
+ for (int j = 0; j < reslen; j++)
+ {
+ if (r[j].category() == QChar::Mark_NonSpacing)
+ scr->compose(r.mid(j,1));
+ else
+ onRcvChar(r[j].unicode());
+ }
+ i = l;
+ }
+}
+
+// Selection --------------------------------------------------------------- --
+
+void TEmulation::onSelectionBegin(const int x, const int y, const bool columnmode) {
+ if (!connected) return;
+ scr->setSelBeginXY(x,y,columnmode);
+ showBulk();
+}
+
+void TEmulation::onSelectionExtend(const int x, const int y) {
+ if (!connected) return;
+ scr->setSelExtentXY(x,y);
+ showBulk();
+}
+
+void TEmulation::setSelection(const bool preserve_line_breaks) {
+ if (!connected) return;
+ QString t = scr->getSelText(preserve_line_breaks);
+ if (!t.isNull()) gui->setSelection(t);
+}
+
+void TEmulation::isBusySelecting(bool busy)
+{
+ if (!connected) return;
+ scr->setBusySelecting(busy);
+}
+
+void TEmulation::testIsSelected(const int x, const int y, bool &selected)
+{
+ if (!connected) return;
+ selected=scr->testIsSelected(x,y);
+}
+
+void TEmulation::clearSelection() {
+ if (!connected) return;
+ scr->clearSelection();
+ showBulk();
+}
+
+void TEmulation::copySelection() {
+ if (!connected) return;
+ QString t = scr->getSelText(true);
+ QApplication::clipboard()->setText(t);
+}
+
+void TEmulation::streamHistory(QTextStream* stream) {
+ scr->streamHistory(stream);
+}
+
+void TEmulation::findTextBegin()
+{
+ m_findPos = -1;
+}
+
+bool TEmulation::findTextNext( const QString &str, bool forward, bool caseSensitive, bool regExp )
+{
+ int pos = -1;
+ QString string;
+
+ if (forward) {
+ for (int i = (m_findPos==-1?0:m_findPos+1); i<(scr->getHistLines()+scr->getLines()); i++) {
+ string = scr->getHistoryLine(i);
+ if (regExp)
+ pos = string.find( QRegExp(str,caseSensitive) );
+ else
+ pos = string.find(str, 0, caseSensitive);
+ if(pos!=-1) {
+ m_findPos=i;
+ if(i>scr->getHistLines())
+ scr->setHistCursor(scr->getHistLines());
+ else
+ scr->setHistCursor(i);
+ showBulk();
+ return true;
+ }
+ }
+ }
+ else { // searching backwards
+ for(int i = (m_findPos==-1?(scr->getHistLines()+scr->getLines()):m_findPos-1); i>=0; i--) {
+ string = scr->getHistoryLine(i);
+ if (regExp)
+ pos = string.find( QRegExp(str,caseSensitive) );
+ else
+ pos = string.find(str, 0, caseSensitive);
+ if(pos!=-1) {
+ m_findPos=i;
+ if(i>scr->getHistLines())
+ scr->setHistCursor(scr->getHistLines());
+ else
+ scr->setHistCursor(i);
+ showBulk();
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+// Refreshing -------------------------------------------------------------- --
+
+#define BULK_TIMEOUT1 10
+#define BULK_TIMEOUT2 40
+
+/*!
+*/
+
+void TEmulation::showBulk()
+{
+ bulk_timer1.stop();
+ bulk_timer2.stop();
+
+ if (connected)
+ {
+ ca* image = scr->getCookedImage(); // get the image
+ gui->setImage(image,
+ scr->getLines(),
+ scr->getColumns()); // actual refresh
+ gui->setCursorPos(scr->getCursorX(), scr->getCursorY()); // set XIM position
+ free(image);
+ //FIXME: check that we do not trigger other draw event here.
+ gui->setLineWrapped( scr->getCookedLineWrapped() );
+ //kdDebug(1211)<<"TEmulation::showBulk(): setScroll()"<<endl;
+ gui->setScroll(scr->getHistCursor(),scr->getHistLines());
+ //kdDebug(1211)<<"TEmulation::showBulk(): setScroll() done"<<endl;
+ }
+}
+
+void TEmulation::bulkStart()
+{
+ bulk_timer1.start(BULK_TIMEOUT1,true);
+ if (!bulk_timer2.isActive())
+ bulk_timer2.start(BULK_TIMEOUT2, true);
+}
+
+void TEmulation::setConnect(bool c)
+{
+ //kdDebug(1211)<<"TEmulation::setConnect()"<<endl;
+ connected = c;
+ if ( connected)
+ {
+ showBulk();
+ }
+}
+
+char TEmulation::getErase()
+{
+ return '\b';
+}
+
+void TEmulation::setListenToKeyPress(bool l)
+{
+ listenToKeyPress=l;
+}
+
+// ---------------------------------------------------------------------------
+
+/*! triggered by image size change of the TEWidget `gui'.
+
+ This event is simply propagated to the attached screens
+ and to the related serial line.
+*/
+
+void TEmulation::onImageSizeChange(int lines, int columns)
+{
+ assert( lines > 0 && columns > 0 );
+
+ //kdDebug(1211)<<"TEmulation::onImageSizeChange()"<<endl;
+ screen[0]->resizeImage(lines,columns);
+ screen[1]->resizeImage(lines,columns);
+
+ if (!connected) return;
+ //kdDebug(1211)<<"TEmulation::onImageSizeChange() showBulk()"<<endl;
+ showBulk();
+ //kdDebug(1211)<<"TEmulation::onImageSizeChange() showBulk() done"<<endl;
+ emit ImageSizeChanged(columns, lines); // propagate event
+ //kdDebug(1211)<<"TEmulation::onImageSizeChange() done"<<endl;
+}
+
+QSize TEmulation::imageSize()
+{
+ return QSize(scr->getColumns(), scr->getLines());
+}
+
+void TEmulation::onHistoryCursorChange(int cursor)
+{
+ if (!connected) return;
+ scr->setHistCursor(cursor);
+
+ bulkStart();
+}
+
+void TEmulation::setColumns(int columns)
+{
+ //FIXME: this goes strange ways.
+ // Can we put this straight or explain it at least?
+ emit changeColumns(columns);
+}
diff --git a/konsole/konsole/TEmulation.h b/konsole/konsole/TEmulation.h
new file mode 100644
index 000000000..53f05c6e7
--- /dev/null
+++ b/konsole/konsole/TEmulation.h
@@ -0,0 +1,149 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef EMULATION_H
+#define EMULATION_H
+
+#include "TEWidget.h"
+#include "TEScreen.h"
+#include <qtimer.h>
+#include <stdio.h>
+#include <qtextcodec.h>
+#include <qguardedptr.h>
+#include <keytrans.h>
+
+enum { NOTIFYNORMAL=0, NOTIFYBELL=1, NOTIFYACTIVITY=2, NOTIFYSILENCE=3 };
+
+class TEmulation : public QObject
+{ Q_OBJECT
+
+public:
+
+ TEmulation(TEWidget* gui);
+ virtual void changeGUI(TEWidget* newgui);
+ ~TEmulation();
+
+public:
+ QSize imageSize();
+ virtual void setHistory(const HistoryType&);
+ const QTextCodec *codec() { return m_codec; }
+ void setCodec(const QTextCodec *);
+ virtual const HistoryType& history();
+ virtual void streamHistory(QTextStream*);
+
+ virtual void findTextBegin();
+ virtual bool findTextNext( const QString &str, bool forward, bool caseSensitive, bool regExp );
+
+public slots: // signals incoming from TEWidget
+
+ virtual void onImageSizeChange(int lines, int columns);
+ virtual void onHistoryCursorChange(int cursor);
+ virtual void onKeyPress(QKeyEvent*);
+
+ virtual void clearSelection();
+ virtual void copySelection();
+ virtual void onSelectionBegin(const int x, const int y, const bool columnmode);
+ virtual void onSelectionExtend(const int x, const int y);
+ virtual void setSelection(const bool preserve_line_breaks);
+ virtual void isBusySelecting(bool busy);
+ virtual void testIsSelected(const int x, const int y, bool &selected);
+
+public slots: // signals incoming from data source
+
+ void onRcvBlock(const char* txt,int len);
+
+signals:
+
+ void lockPty(bool);
+ void useUtf8(bool);
+ void sndBlock(const char* txt,int len);
+ void ImageSizeChanged(int lines, int columns);
+ void changeColumns(int columns);
+ void changeColLin(int columns, int lines);
+ void changeTitle(int arg, const char* str);
+ void notifySessionState(int state);
+ void zmodemDetected();
+ void changeTabTextColor(int color);
+
+public:
+
+ virtual void onRcvChar(int);
+
+ virtual void setMode (int) = 0;
+ virtual void resetMode(int) = 0;
+
+ virtual void sendString(const char*) = 0;
+
+ virtual void setConnect(bool r);
+ bool isConnected() { return connected; }
+
+ bool utf8() { return m_codec->mibEnum() == 106; }
+
+ virtual char getErase();
+
+ virtual void setListenToKeyPress(bool l);
+ void setColumns(int columns);
+
+ void setKeymap(int no);
+ void setKeymap(const QString &id);
+ int keymapNo();
+ QString keymap();
+
+ virtual void clearEntireScreen() =0;
+ virtual void reset() =0;
+
+protected:
+
+ QGuardedPtr<TEWidget> gui;
+ TEScreen* scr; // referes to one `screen'
+ TEScreen* screen[2]; // 0 = primary, 1 = alternate
+ void setScreen(int n); // set `scr' to `screen[n]'
+
+ bool connected; // communicate with widget
+ bool listenToKeyPress; // listen to input
+
+ void setCodec(int c); // codec number, 0 = locale, 1=utf8
+
+ const QTextCodec* m_codec;
+ QTextDecoder* decoder;
+
+ KeyTrans* keytrans;
+
+// refreshing related material.
+// this is localized in the class.
+private slots: // triggered by timer
+
+ void showBulk();
+
+private:
+
+ void connectGUI();
+
+ void bulkStart();
+
+private:
+
+ QTimer bulk_timer1;
+ QTimer bulk_timer2;
+
+ int m_findPos;
+};
+
+#endif // ifndef EMULATION_H
diff --git a/konsole/konsole/default.keytab.h b/konsole/konsole/default.keytab.h
new file mode 100644
index 000000000..855b4d320
--- /dev/null
+++ b/konsole/konsole/default.keytab.h
@@ -0,0 +1,76 @@
+ /* generated by '../tests/quote ../other/README.default.Keytab' */
+
+ "keyboard \"XTerm (XFree 4.x.x)\"\n"
+ "key Escape : \"\\E\"\n"
+ "key Tab -Shift : \"\\t\"\n"
+ "key Tab +Shift+Ansi : \"\\E[Z\"\n"
+ "key Tab +Shift-Ansi : \"\\t\"\n"
+ "key Backtab +Ansi : \"\\E[Z\"\n"
+ "key Backtab -Ansi : \"\\t\"\n"
+ "key Return-Shift-NewLine : \"\\r\"\n"
+ "key Return-Shift+NewLine : \"\\r\\n\"\n"
+ "key Return+Shift : \"\\EOM\"\n"
+ "key Backspace : \"\\x7f\"\n"
+ "key Up -Shift-Ansi : \"\\EA\"\n"
+ "key Down -Shift-Ansi : \"\\EB\"\n"
+ "key Right-Shift-Ansi : \"\\EC\"\n"
+ "key Left -Shift-Ansi : \"\\ED\"\n"
+ "key Up -Shift-AnyMod+Ansi+AppCuKeys : \"\\EOA\"\n"
+ "key Down -Shift-AnyMod+Ansi+AppCuKeys : \"\\EOB\"\n"
+ "key Right -Shift-AnyMod+Ansi+AppCuKeys : \"\\EOC\"\n"
+ "key Left -Shift-AnyMod+Ansi+AppCuKeys : \"\\EOD\"\n"
+ "key Up -Shift-AnyMod+Ansi-AppCuKeys : \"\\E[A\"\n"
+ "key Down -Shift-AnyMod+Ansi-AppCuKeys : \"\\E[B\"\n"
+ "key Right -Shift-AnyMod+Ansi-AppCuKeys : \"\\E[C\"\n"
+ "key Left -Shift-AnyMod+Ansi-AppCuKeys : \"\\E[D\"\n"
+ "key Up -Shift+AnyMod+Ansi : \"\\E[1;*A\"\n"
+ "key Down -Shift+AnyMod+Ansi : \"\\E[1;*B\"\n"
+ "key Right -Shift+AnyMod+Ansi : \"\\E[1;*C\"\n"
+ "key Left -Shift+AnyMod+Ansi : \"\\E[1;*D\"\n"
+ "key Enter+NewLine : \"\\r\\n\"\n"
+ "key Enter-NewLine : \"\\r\"\n"
+ "key Home -AnyMod -AppCuKeys : \"\\E[H\" \n"
+ "key End -AnyMod -AppCuKeys : \"\\E[F\" \n"
+ "key Home -AnyMod +AppCuKeys : \"\\EOH\" \n"
+ "key End -AnyMod +AppCuKeys : \"\\EOF\" \n"
+ "key Home +AnyMod : \"\\E[1;*H\"\n"
+ "key End +AnyMod : \"\\E[1;*F\"\n"
+ "key Insert -AnyMod : \"\\E[2~\"\n"
+ "key Delete -AnyMod : \"\\E[3~\"\n"
+ "key Insert +AnyMod : \"\\E[2;*~\"\n"
+ "key Delete +AnyMod : \"\\E[3;*~\"\n"
+ "key Prior -Shift-AnyMod : \"\\E[5~\"\n"
+ "key Next -Shift-AnyMod : \"\\E[6~\"\n"
+ "key Prior -Shift+AnyMod : \"\\E[5;*~\"\n"
+ "key Next -Shift+AnyMod : \"\\E[6;*~\"\n"
+ "key F1 -AnyMod : \"\\EOP\"\n"
+ "key F2 -AnyMod : \"\\EOQ\"\n"
+ "key F3 -AnyMod : \"\\EOR\"\n"
+ "key F4 -AnyMod : \"\\EOS\"\n"
+ "key F5 -AnyMod : \"\\E[15~\"\n"
+ "key F6 -AnyMod : \"\\E[17~\"\n"
+ "key F7 -AnyMod : \"\\E[18~\"\n"
+ "key F8 -AnyMod : \"\\E[19~\"\n"
+ "key F9 -AnyMod : \"\\E[20~\"\n"
+ "key F10 -AnyMod : \"\\E[21~\"\n"
+ "key F11 -AnyMod : \"\\E[23~\"\n"
+ "key F12 -AnyMod : \"\\E[24~\"\n"
+ "key F1 +AnyMod : \"\\EO*P\"\n"
+ "key F2 +AnyMod : \"\\EO*Q\"\n"
+ "key F3 +AnyMod : \"\\EO*R\"\n"
+ "key F4 +AnyMod : \"\\EO*S\"\n"
+ "key F5 +AnyMod : \"\\E[15;*~\"\n"
+ "key F6 +AnyMod : \"\\E[17;*~\"\n"
+ "key F7 +AnyMod : \"\\E[18;*~\"\n"
+ "key F8 +AnyMod : \"\\E[19;*~\"\n"
+ "key F9 +AnyMod : \"\\E[20;*~\"\n"
+ "key F10 +AnyMod : \"\\E[21;*~\"\n"
+ "key F11 +AnyMod : \"\\E[23;*~\"\n"
+ "key F12 +AnyMod : \"\\E[24;*~\"\n"
+ "key Space +Control : \"\\x00\"\n"
+ "key Up +Shift-AppScreen : scrollLineUp\n"
+ "key Prior +Shift-AppScreen : scrollPageUp\n"
+ "key Down +Shift-AppScreen : scrollLineDown\n"
+ "key Next +Shift-AppScreen : scrollPageDown\n"
+ "key ScrollLock : scrollLock\n"
+ ""
diff --git a/konsole/konsole/fontembedder.cpp b/konsole/konsole/fontembedder.cpp
new file mode 100644
index 000000000..f2a189598
--- /dev/null
+++ b/konsole/konsole/fontembedder.cpp
@@ -0,0 +1,119 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 2005 by Maksim Orlovich <maksim@kde.org>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#include <qfile.h>
+#include <qtextstream.h>
+#include <stdlib.h>
+#include <iostream>
+#include <iomanip>
+
+using namespace std;
+
+static Q_UINT32 charVal(QChar val)
+{
+ if (val == ' ')
+ return 0;
+ else
+ return 1;
+}
+
+static Q_UINT32 readGlyphLine(QTextStream& input)
+{
+ QString line = input.readLine();
+ while (line.length() < 5)
+ line += ' ';
+
+ Q_UINT32 val = charVal(line[0]) |
+ (charVal(line[1]) << 1) |
+ (charVal(line[2]) << 2) |
+ (charVal(line[3]) << 3) |
+ (charVal(line[4]) << 4);
+ return val;
+}
+
+static Q_UINT32 readGlyph(QTextStream& input)
+{
+ return readGlyphLine(input) |
+ (readGlyphLine(input) << 5) |
+ (readGlyphLine(input) << 10) |
+ (readGlyphLine(input) << 15) |
+ (readGlyphLine(input) << 20);
+}
+
+int main(int argc, char **argv)
+{
+ if (argc < 1)
+ {
+ qWarning("usage: fontembedder font.src > font.h");
+ exit(1);
+ }
+ QFile inFile(argv[1]);
+ if (!inFile.open(IO_ReadOnly))
+ {
+ qFatal("Can not open %s", argv[1]);
+ }
+
+ QTextStream input(&inFile);
+
+ Q_UINT32 glyphStates[128];
+ for (int i = 0; i < 128; ++i)
+ glyphStates[i] = 0; //nothing..
+
+ while (!input.atEnd())
+ {
+ QString line = input.readLine();
+ line = line.stripWhiteSpace();
+ if (line.isEmpty())
+ continue; //Skip empty lines
+ if (line[0] == '#')
+ continue; //Skip comments
+
+ //Must be a glyph ID.
+ int glyph = line.toInt(0, 16);
+ if ((glyph < 0x2500) || (glyph > 0x257f))
+ qFatal("Invalid glyph number");
+
+ glyph = glyph - 0x2500;
+
+ glyphStates[glyph] = readGlyph(input);
+ }
+
+ //Output.
+ cout<<"// WARNING: Autogenerated by \"fontembedder " << argv[1] << "\".\n";
+ cout<<"// You probably do not want to hand-edit this!\n\n";
+ cout<<"static const Q_UINT32 LineChars[] = {\n";
+
+ //Nicely formatted: 8 per line, 16 lines
+ for (int line = 0; line < 128; line += 8)
+ {
+ cout<<"\t";
+ for (int col = line; col < line + 8; ++col)
+ {
+ cout<<"0x"<<hex<<setw(8)<<setfill('0')<<glyphStates[col];
+ if (col != 127)
+ cout<<", ";
+ }
+ cout<<"\n";
+ }
+ cout<<"};\n";
+ return 0;
+}
+
+//kate: indent-width 4; tab-width 4; space-indent on;
diff --git a/konsole/konsole/keytrans.cpp b/konsole/konsole/keytrans.cpp
new file mode 100644
index 000000000..7632520ba
--- /dev/null
+++ b/konsole/konsole/keytrans.cpp
@@ -0,0 +1,755 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+/*
+ The keyboard translation table allows to configure konsoles behavior
+ on key strokes.
+
+ FIXME: some bug crept in, disallowing '\0' to be emitted.
+*/
+
+#include "keytrans.h"
+#include <qbuffer.h>
+#include <qobject.h>
+#include <qintdict.h>
+#include <qfile.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+
+#include <stdio.h>
+#include <stddef.h>
+
+/* KeyEntry
+
+ instances represent the individual assignments
+*/
+
+KeyTrans::KeyEntry::KeyEntry(int _ref, int _key, int _bits, int _mask, int _cmd, QString _txt)
+: ref(_ref), key(_key), bits(_bits), mask(_mask), cmd(_cmd), txt(_txt)
+{
+}
+
+KeyTrans::KeyEntry::~KeyEntry()
+{
+}
+
+bool KeyTrans::KeyEntry::matches(int _key, int _bits, int _mask)
+{ int m = mask & _mask;
+ return _key == key && (bits & m) == (_bits & m);
+}
+
+bool KeyTrans::KeyEntry::metaspecified(void)
+{
+ return ((mask & (1 << BITS_Alt)) && (bits & (1 << BITS_Alt))) ||
+ ((mask & (1 << BITS_AnyMod)) && (bits & (1 << BITS_AnyMod)));
+}
+
+bool KeyTrans::KeyEntry::anymodspecified(void)
+{
+ return (mask & (1 << BITS_AnyMod)) && (bits & (1 << BITS_AnyMod));
+}
+
+QString KeyTrans::KeyEntry::text()
+{
+ return txt;
+}
+
+/* KeyTrans
+
+ combines the individual assignments to a proper map
+ Takes part in a collection themself.
+*/
+
+KeyTrans::KeyTrans(const QString& path)
+:m_path(path)
+,m_numb(0)
+,m_fileRead(false)
+{
+ tableX.setAutoDelete(true);
+ if (m_path=="[buildin]")
+ {
+ m_id = "default";
+ }
+ else
+ {
+ m_id = m_path;
+ int i = m_id.findRev('/');
+ if (i > -1)
+ m_id = m_id.mid(i+1);
+ i = m_id.findRev('.');
+ if (i > -1)
+ m_id = m_id.left(i);
+ }
+}
+
+KeyTrans::KeyTrans()
+{
+/* table.setAutoDelete(true);
+ path = "";
+ numb = 0;*/
+}
+
+KeyTrans::~KeyTrans()
+{
+}
+
+KeyTrans::KeyEntry* KeyTrans::addEntry(int ref, int key, int bits, int mask, int cmd, QString txt)
+// returns conflicting entry
+{
+ for (QPtrListIterator<KeyEntry> it(tableX); it.current(); ++it)
+ {
+ if (it.current()->matches(key,bits,mask))
+ {
+ return it.current();
+ }
+ }
+ tableX.append(new KeyEntry(ref,key,bits,mask,cmd,txt));
+ return (KeyEntry*)NULL;
+}
+
+bool KeyTrans::findEntry(int key, int bits, int* cmd, const char** txt, int* len,
+ bool* metaspecified)
+{
+ if (!m_fileRead) readConfig();
+
+ if (bits & ((1<<BITS_Shift)|(1<<BITS_Alt)|(1<<BITS_Control)))
+ bits |= (1<<BITS_AnyMod);
+
+ for (QPtrListIterator<KeyEntry> it(tableX); it.current(); ++it)
+ if (it.current()->matches(key,bits,0xffff))
+ {
+ *cmd = it.current()->cmd;
+ *len = it.current()->txt.length();
+ if ((*cmd==CMD_send) && it.current()->anymodspecified() && (*len < 16))
+ {
+ static char buf[16];
+ char *c, mask = '1' + BITS(0, bits&(1<<BITS_Shift)) +
+ BITS(1, bits&(1<<BITS_Alt)) + BITS(2, bits&(1<<BITS_Control));
+ strcpy(buf, it.current()->txt.ascii());
+ c = strchr(buf, '*');
+ if (c) *c = mask;
+ *txt = buf;
+ }
+ else
+ *txt = it.current()->txt.ascii();
+ *metaspecified = it.current()->metaspecified();
+ return true;
+ }
+ return false;
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Scanner for keyboard configuration */
+/* */
+/* ------------------------------------------------------------------------- */
+
+// regular tokenizer
+/* Tokens
+ - Spaces
+ - Name (A-Za-z0-9)+
+ - String
+ - Opr on of +-:
+*/
+
+#define SYMName 0
+#define SYMString 1
+#define SYMEol 2
+#define SYMEof 3
+#define SYMOpr 4
+#define SYMError 5
+
+#define inRange(L,X,H) ((L <= X) && (X <= H))
+#define isNibble(X) (inRange('A',X,'F')||inRange('a',X,'f')||inRange('0',X,'9'))
+#define convNibble(X) (inRange('0',X,'9')?X-'0':X+10-(inRange('A',X,'F')?'A':'a'))
+
+class KeytabReader
+{
+public:
+ KeytabReader(QString p, QIODevice &d);
+public:
+ void getCc();
+ void getSymbol();
+ void parseTo(KeyTrans* kt);
+ void ReportError(const char* msg);
+ void ReportToken(); // diagnostic
+private:
+ int sym;
+ QString res;
+ int len;
+ int slinno;
+ int scolno;
+private:
+ int cc;
+ int linno;
+ int colno;
+ QIODevice* buf;
+ QString path;
+};
+
+
+KeytabReader::KeytabReader(QString p, QIODevice &d)
+{
+ path = p;
+ buf = &d;
+ cc = 0;
+ colno = 0;
+}
+
+void KeytabReader::getCc()
+{
+ if (cc == '\n') { linno += 1; colno = 0; }
+ if (cc < 0) return;
+ cc = buf->getch();
+ colno += 1;
+}
+
+void KeytabReader::getSymbol()
+{
+ res = ""; len = 0; sym = SYMError;
+ while (cc == ' ') getCc(); // skip spaces
+ if (cc == '#') // skip comment
+ {
+ while (cc != '\n' && cc > 0) getCc();
+ }
+ slinno = linno;
+ scolno = colno;
+ if (cc <= 0)
+ {
+ sym = SYMEof; // eos
+ }
+ else if (cc == '\n')
+ {
+ getCc();
+ sym = SYMEol; // eol
+ }
+ else if (inRange('A',cc,'Z')||inRange('a',cc,'z')||inRange('0',cc,'9')||(cc=='_'))
+ {
+ while (inRange('A',cc,'Z') || inRange('a',cc,'z') || inRange('0',cc,'9') || (cc=='_'))
+ {
+ res = res + (char)cc;
+ getCc();
+ }
+ sym = SYMName;
+ }
+ else if (strchr("+-:",cc))
+ {
+ res = "";
+ res = res + (char)cc;
+ getCc();
+ sym = SYMOpr;
+ }
+ else if (cc == '"')
+ {
+ getCc();
+ while (cc >= ' ' && cc != '"')
+ { int sc;
+ if (cc == '\\') // handle quotation
+ {
+ getCc();
+ switch (cc)
+ {
+ case 'E' : sc = 27; getCc(); break;
+ case 'b' : sc = 8; getCc(); break;
+ case 'f' : sc = 12; getCc(); break;
+ case 't' : sc = 9; getCc(); break;
+ case 'r' : sc = 13; getCc(); break;
+ case 'n' : sc = 10; getCc(); break;
+ case '\\' : // fall thru
+ case '"' : sc = cc; getCc(); break;
+ case 'x' : getCc();
+ sc = 0;
+ if (!isNibble(cc)) return; sc = 16*sc + convNibble(cc); getCc();
+ if (!isNibble(cc)) return; sc = 16*sc + convNibble(cc); getCc();
+ break;
+ default : return;
+ }
+ }
+ else
+ {
+ // regular char
+ sc = cc; getCc();
+ }
+ res = res + (char)sc;
+ len = len + 1;
+ }
+ if (cc != '"') return;
+ getCc();
+ sym = SYMString;
+ }
+ else
+ {
+ // cc was an invalid char. Get next cc or we will loop forever.
+ getCc();
+ }
+}
+
+void KeytabReader::ReportToken() // diagnostic
+{
+ printf("sym(%d): ",slinno);
+ switch(sym)
+ {
+ case SYMEol : printf("End of line"); break;
+ case SYMEof : printf("End of file"); break;
+ case SYMName : printf("Name: %s",res.latin1()); break;
+ case SYMOpr : printf("Opr : %s",res.latin1()); break;
+ case SYMString : printf("String len %d,%d ",res.length(),len);
+ for (unsigned i = 0; i < res.length(); i++)
+ printf(" %02x(%c)",res.latin1()[i],res.latin1()[i]>=' '?res.latin1()[i]:'?');
+ break;
+ }
+ printf("\n");
+}
+
+void KeytabReader::ReportError(const char* msg) // diagnostic
+{
+ fprintf(stderr,"%s(%d,%d):error: %s.\n",path.ascii(),slinno,scolno,msg);
+}
+
+// local symbol tables ---------------------------------------------------------------------
+
+class KeyTransSymbols
+{
+public:
+ KeyTransSymbols();
+protected:
+ void defOprSyms();
+ void defModSyms();
+ void defKeySyms();
+ void defKeySym(const char* key, int val);
+ void defOprSym(const char* key, int val);
+ void defModSym(const char* key, int val);
+public:
+ QDict<QObject> keysyms;
+ QDict<QObject> modsyms;
+ QDict<QObject> oprsyms;
+};
+
+static KeyTransSymbols * syms = 0L;
+
+// parser ----------------------------------------------------------------------------------
+/* Syntax
+ - Line :: [KeyName { ("+" | "-") ModeName } ":" (String|CommandName)] "\n"
+ - Comment :: '#' (any but \n)*
+*/
+
+void KeyTrans::readConfig()
+{
+ if (m_fileRead) return;
+ m_fileRead=true;
+ QIODevice* buf(0);
+ if (m_path=="[buildin]")
+ {
+ QCString txt =
+#include "default.keytab.h"
+;
+ buf=new QBuffer(txt);
+ }
+ else
+ {
+ buf=new QFile(m_path);
+ };
+ KeytabReader ktr(m_path,*buf);
+ ktr.parseTo(this);
+ delete buf;
+}
+
+#define assertSyntax(Cond,Message) if (!(Cond)) { ReportError(Message); goto ERROR; }
+
+void KeytabReader::parseTo(KeyTrans* kt)
+{
+ // Opening sequence
+
+ buf->open(IO_ReadOnly);
+ getCc();
+ linno = 1;
+ colno = 1;
+ getSymbol();
+
+Loop:
+ // syntax: ["key" KeyName { ("+" | "-") ModeName } ":" String/CommandName] ["#" Comment]
+ if (sym == SYMName && !strcmp(res.latin1(),"keyboard"))
+ {
+ getSymbol(); assertSyntax(sym == SYMString, "Header expected")
+ kt->m_hdr = i18n(res.latin1());
+ getSymbol(); assertSyntax(sym == SYMEol, "Text unexpected")
+ getSymbol(); // eoln
+ goto Loop;
+ }
+ if (sym == SYMName && !strcmp(res.latin1(),"key"))
+ {
+//printf("line %3d: ",startofsym);
+ getSymbol(); assertSyntax(sym == SYMName, "Name expected")
+ assertSyntax(syms->keysyms[res], "Unknown key name")
+ ptrdiff_t key = (ptrdiff_t)(syms->keysyms[res]) - 1;
+//printf(" key %s (%04x)",res.latin1(),(int)syms->keysyms[res]-1);
+ getSymbol(); // + - :
+ int mode = 0;
+ int mask = 0;
+ while (sym == SYMOpr && (!strcmp(res.latin1(),"+") || !strcmp(res.latin1(),"-")))
+ {
+ bool on = !strcmp(res.latin1(),"+");
+ getSymbol();
+ // mode name
+ assertSyntax(sym == SYMName, "Name expected")
+ assertSyntax(syms->modsyms[res], "Unknown mode name")
+ ptrdiff_t bits = (ptrdiff_t)(syms->modsyms[res]) - 1;
+ if (mask & (1 << bits))
+ {
+ fprintf(stderr,"%s(%d,%d): mode name used multiple times.\n",path.ascii(),slinno,scolno);
+ }
+ else
+ {
+ mode |= (on << bits);
+ mask |= (1 << bits);
+ }
+//printf(", mode %s(%d) %s",res.latin1(),(int)syms->modsyms[res]-1,on?"on":"off");
+ getSymbol();
+ }
+ assertSyntax(sym == SYMOpr && !strcmp(res.latin1(),":"), "':' expected")
+ getSymbol();
+ // string or command
+ assertSyntax(sym == SYMName || sym == SYMString,"Command or string expected")
+ ptrdiff_t cmd = 0;
+ if (sym == SYMName)
+ {
+ assertSyntax(syms->oprsyms[res], "Unknown operator name")
+ cmd = (ptrdiff_t)(syms->oprsyms[res]) - 1;
+//printf(": do %s(%d)",res.latin1(),(int)syms->oprsyms[res]-1);
+ }
+ if (sym == SYMString)
+ {
+ cmd = CMD_send;
+//printf(": send");
+//for (unsigned i = 0; i < res.length(); i++)
+//printf(" %02x(%c)",res.latin1()[i],res.latin1()[i]>=' '?res.latin1()[i]:'?');
+ }
+//printf(". summary %04x,%02x,%02x,%d\n",key,mode,mask,cmd);
+ KeyTrans::KeyEntry* ke = kt->addEntry(slinno,key,mode,mask,cmd,res);
+ if (ke)
+ {
+ fprintf(stderr,"%s(%d): keystroke already assigned in line %d.\n",path.ascii(),slinno,ke->ref);
+ }
+ getSymbol();
+ assertSyntax(sym == SYMEol, "Unexpected text")
+ goto Loop;
+ }
+ if (sym == SYMEol)
+ {
+ getSymbol();
+ goto Loop;
+ }
+
+ assertSyntax(sym == SYMEof, "Undecodable Line")
+
+ buf->close();
+ return;
+
+ERROR:
+ while (sym != SYMEol && sym != SYMEof) getSymbol(); // eoln
+ goto Loop;
+}
+
+
+// local symbol tables ---------------------------------------------------------------------
+// material needed for parsing the config file.
+// This is incomplete work.
+
+void KeyTransSymbols::defKeySym(const char* key, int val)
+{
+ keysyms.insert(key,(QObject*)(val+1));
+}
+
+void KeyTransSymbols::defOprSym(const char* key, int val)
+{
+ oprsyms.insert(key,(QObject*)(val+1));
+}
+
+void KeyTransSymbols::defModSym(const char* key, int val)
+{
+ modsyms.insert(key,(QObject*)(val+1));
+}
+
+void KeyTransSymbols::defOprSyms()
+{
+ // Modifier
+ defOprSym("scrollLineUp", CMD_scrollLineUp );
+ defOprSym("scrollLineDown",CMD_scrollLineDown);
+ defOprSym("scrollPageUp", CMD_scrollPageUp );
+ defOprSym("scrollPageDown",CMD_scrollPageDown);
+ defOprSym("scrollLock", CMD_scrollLock);
+}
+
+void KeyTransSymbols::defModSyms()
+{
+ // Modifier
+ defModSym("Shift", BITS_Shift );
+ defModSym("Control", BITS_Control );
+ defModSym("Alt", BITS_Alt );
+ // Modes
+ defModSym("BsHack", BITS_BsHack ); // deprecated
+ defModSym("Ansi", BITS_Ansi );
+ defModSym("NewLine", BITS_NewLine );
+ defModSym("AppCuKeys", BITS_AppCuKeys );
+ defModSym("AppScreen", BITS_AppScreen );
+ // Special (Any Modifier)
+ defModSym("AnyMod", BITS_AnyMod );
+}
+
+void KeyTransSymbols::defKeySyms()
+{
+ // Grey keys
+ defKeySym("Escape", Qt::Key_Escape );
+ defKeySym("Tab", Qt::Key_Tab );
+ defKeySym("Backtab", Qt::Key_Backtab );
+ defKeySym("Backspace", Qt::Key_Backspace );
+ defKeySym("Return", Qt::Key_Return );
+ defKeySym("Enter", Qt::Key_Enter );
+ defKeySym("Insert", Qt::Key_Insert );
+ defKeySym("Delete", Qt::Key_Delete );
+ defKeySym("Pause", Qt::Key_Pause );
+ defKeySym("Print", Qt::Key_Print );
+ defKeySym("SysReq", Qt::Key_SysReq );
+ defKeySym("Home", Qt::Key_Home );
+ defKeySym("End", Qt::Key_End );
+ defKeySym("Left", Qt::Key_Left );
+ defKeySym("Up", Qt::Key_Up );
+ defKeySym("Right", Qt::Key_Right );
+ defKeySym("Down", Qt::Key_Down );
+ defKeySym("Prior", Qt::Key_Prior );
+ defKeySym("Next", Qt::Key_Next );
+ defKeySym("Shift", Qt::Key_Shift );
+ defKeySym("Control", Qt::Key_Control );
+ defKeySym("Meta", Qt::Key_Meta );
+ defKeySym("Alt", Qt::Key_Alt );
+ defKeySym("CapsLock", Qt::Key_CapsLock );
+ defKeySym("NumLock", Qt::Key_NumLock );
+ defKeySym("ScrollLock", Qt::Key_ScrollLock );
+ defKeySym("F1", Qt::Key_F1 );
+ defKeySym("F2", Qt::Key_F2 );
+ defKeySym("F3", Qt::Key_F3 );
+ defKeySym("F4", Qt::Key_F4 );
+ defKeySym("F5", Qt::Key_F5 );
+ defKeySym("F6", Qt::Key_F6 );
+ defKeySym("F7", Qt::Key_F7 );
+ defKeySym("F8", Qt::Key_F8 );
+ defKeySym("F9", Qt::Key_F9 );
+ defKeySym("F10", Qt::Key_F10 );
+ defKeySym("F11", Qt::Key_F11 );
+ defKeySym("F12", Qt::Key_F12 );
+ defKeySym("F13", Qt::Key_F13 );
+ defKeySym("F14", Qt::Key_F14 );
+ defKeySym("F15", Qt::Key_F15 );
+ defKeySym("F16", Qt::Key_F16 );
+ defKeySym("F17", Qt::Key_F17 );
+ defKeySym("F18", Qt::Key_F18 );
+ defKeySym("F19", Qt::Key_F19 );
+ defKeySym("F20", Qt::Key_F20 );
+ defKeySym("F21", Qt::Key_F21 );
+ defKeySym("F22", Qt::Key_F22 );
+ defKeySym("F23", Qt::Key_F23 );
+ defKeySym("F24", Qt::Key_F24 );
+ defKeySym("F25", Qt::Key_F25 );
+ defKeySym("F26", Qt::Key_F26 );
+ defKeySym("F27", Qt::Key_F27 );
+ defKeySym("F28", Qt::Key_F28 );
+ defKeySym("F29", Qt::Key_F29 );
+ defKeySym("F30", Qt::Key_F30 );
+ defKeySym("F31", Qt::Key_F31 );
+ defKeySym("F32", Qt::Key_F32 );
+ defKeySym("F33", Qt::Key_F33 );
+ defKeySym("F34", Qt::Key_F34 );
+ defKeySym("F35", Qt::Key_F35 );
+ defKeySym("Super_L", Qt::Key_Super_L );
+ defKeySym("Super_R", Qt::Key_Super_R );
+ defKeySym("Menu", Qt::Key_Menu );
+ defKeySym("Hyper_L", Qt::Key_Hyper_L );
+ defKeySym("Hyper_R", Qt::Key_Hyper_R );
+
+ // Regular keys
+ defKeySym("Space", Qt::Key_Space );
+ defKeySym("Exclam", Qt::Key_Exclam );
+ defKeySym("QuoteDbl", Qt::Key_QuoteDbl );
+ defKeySym("NumberSign", Qt::Key_NumberSign );
+ defKeySym("Dollar", Qt::Key_Dollar );
+ defKeySym("Percent", Qt::Key_Percent );
+ defKeySym("Ampersand", Qt::Key_Ampersand );
+ defKeySym("Apostrophe", Qt::Key_Apostrophe );
+ defKeySym("ParenLeft", Qt::Key_ParenLeft );
+ defKeySym("ParenRight", Qt::Key_ParenRight );
+ defKeySym("Asterisk", Qt::Key_Asterisk );
+ defKeySym("Plus", Qt::Key_Plus );
+ defKeySym("Comma", Qt::Key_Comma );
+ defKeySym("Minus", Qt::Key_Minus );
+ defKeySym("Period", Qt::Key_Period );
+ defKeySym("Slash", Qt::Key_Slash );
+ defKeySym("0", Qt::Key_0 );
+ defKeySym("1", Qt::Key_1 );
+ defKeySym("2", Qt::Key_2 );
+ defKeySym("3", Qt::Key_3 );
+ defKeySym("4", Qt::Key_4 );
+ defKeySym("5", Qt::Key_5 );
+ defKeySym("6", Qt::Key_6 );
+ defKeySym("7", Qt::Key_7 );
+ defKeySym("8", Qt::Key_8 );
+ defKeySym("9", Qt::Key_9 );
+ defKeySym("Colon", Qt::Key_Colon );
+ defKeySym("Semicolon", Qt::Key_Semicolon );
+ defKeySym("Less", Qt::Key_Less );
+ defKeySym("Equal", Qt::Key_Equal );
+ defKeySym("Greater", Qt::Key_Greater );
+ defKeySym("Question", Qt::Key_Question );
+ defKeySym("At", Qt::Key_At );
+ defKeySym("A", Qt::Key_A );
+ defKeySym("B", Qt::Key_B );
+ defKeySym("C", Qt::Key_C );
+ defKeySym("D", Qt::Key_D );
+ defKeySym("E", Qt::Key_E );
+ defKeySym("F", Qt::Key_F );
+ defKeySym("G", Qt::Key_G );
+ defKeySym("H", Qt::Key_H );
+ defKeySym("I", Qt::Key_I );
+ defKeySym("J", Qt::Key_J );
+ defKeySym("K", Qt::Key_K );
+ defKeySym("L", Qt::Key_L );
+ defKeySym("M", Qt::Key_M );
+ defKeySym("N", Qt::Key_N );
+ defKeySym("O", Qt::Key_O );
+ defKeySym("P", Qt::Key_P );
+ defKeySym("Q", Qt::Key_Q );
+ defKeySym("R", Qt::Key_R );
+ defKeySym("S", Qt::Key_S );
+ defKeySym("T", Qt::Key_T );
+ defKeySym("U", Qt::Key_U );
+ defKeySym("V", Qt::Key_V );
+ defKeySym("W", Qt::Key_W );
+ defKeySym("X", Qt::Key_X );
+ defKeySym("Y", Qt::Key_Y );
+ defKeySym("Z", Qt::Key_Z );
+ defKeySym("BracketLeft", Qt::Key_BracketLeft );
+ defKeySym("Backslash", Qt::Key_Backslash );
+ defKeySym("BracketRight", Qt::Key_BracketRight);
+ defKeySym("AsciiCircum", Qt::Key_AsciiCircum );
+ defKeySym("Underscore", Qt::Key_Underscore );
+ defKeySym("QuoteLeft", Qt::Key_QuoteLeft );
+ defKeySym("BraceLeft", Qt::Key_BraceLeft );
+ defKeySym("Bar", Qt::Key_Bar );
+ defKeySym("BraceRight", Qt::Key_BraceRight );
+ defKeySym("AsciiTilde", Qt::Key_AsciiTilde );
+}
+
+KeyTransSymbols::KeyTransSymbols()
+{
+ defModSyms();
+ defOprSyms();
+ defKeySyms();
+}
+
+// Global material -----------------------------------------------------------
+
+static int keytab_serial = 0; //FIXME: remove,localize
+
+static QIntDict<KeyTrans> * numb2keymap = 0L;
+
+KeyTrans* KeyTrans::find(int numb)
+{
+ KeyTrans* res = numb2keymap->find(numb);
+ return res ? res : numb2keymap->find(0);
+}
+
+KeyTrans* KeyTrans::find(const QString &id)
+{
+ QIntDictIterator<KeyTrans> it(*numb2keymap);
+ while(it.current())
+ {
+ if (it.current()->id() == id)
+ return it.current();
+ ++it;
+ }
+ return numb2keymap->find(0);
+}
+
+int KeyTrans::count()
+{
+ return numb2keymap->count();
+}
+
+void KeyTrans::addKeyTrans()
+{
+ m_numb = keytab_serial ++;
+ numb2keymap->insert(m_numb,this);
+}
+
+void KeyTrans::loadAll()
+{
+ if (!numb2keymap)
+ numb2keymap = new QIntDict<KeyTrans>;
+ else { // Needed for konsole_part.
+ numb2keymap->clear();
+ keytab_serial = 0;
+ }
+
+ if (!syms)
+ syms = new KeyTransSymbols;
+
+ //defaultKeyTrans()->addKeyTrans();
+ KeyTrans* sc = new KeyTrans("[buildin]");
+ sc->addKeyTrans();
+
+ QStringList lst = KGlobal::dirs()->findAllResources("data", "konsole/*.keytab");
+
+ for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it )
+ {
+ //QFile file(QFile::encodeName(*it));
+ sc = new KeyTrans(QFile::encodeName(*it));
+ //KeyTrans* sc = KeyTrans::fromDevice(QFile::encodeName(*it),file);
+ if (sc) sc->addKeyTrans();
+ }
+}
+
+// Debugging material -----------------------------------------------------------
+/*
+void TestTokenizer(QBuffer &buf)
+{
+ // opening sequence
+
+ buf.open(IO_ReadOnly);
+ cc = buf.getch();
+ lineno = 1;
+
+ // Test tokenizer
+
+ while (getSymbol(buf)) ReportToken();
+
+ buf.close();
+}
+
+void test()
+{
+ // Opening sequence
+
+ QCString txt =
+#include "default.keytab.h"
+ ;
+ QBuffer buf(txt);
+ if (0) TestTokenizer(buf);
+ if (1) { KeyTrans kt; kt.scanTable(buf); }
+}
+*/
diff --git a/konsole/konsole/keytrans.h b/konsole/konsole/keytrans.h
new file mode 100644
index 000000000..62ccc9c72
--- /dev/null
+++ b/konsole/konsole/keytrans.h
@@ -0,0 +1,100 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef KEYTRANS_H
+#define KEYTRANS_H
+
+#include <qstring.h>
+#include <qptrlist.h>
+#include <qiodevice.h>
+
+#define BITS_NewLine 0
+#define BITS_BsHack 1
+#define BITS_Ansi 2
+#define BITS_AppCuKeys 3
+#define BITS_Control 4
+#define BITS_Shift 5
+#define BITS_Alt 6
+#define BITS_AppScreen 7
+#define BITS_COUNT 8
+#define BITS_AnyMod 9
+
+#define CMD_none -1
+#define CMD_send 0
+#define CMD_scrollPageUp 2
+#define CMD_scrollPageDown 3
+#define CMD_scrollLineUp 4
+#define CMD_scrollLineDown 5
+#define CMD_scrollLock 6
+
+#define BITS(x,v) ((((v)!=0)<<(x)))
+
+class KeytabReader;
+
+class KeyTrans
+{
+ friend class KeytabReader;
+ public:
+ static KeyTrans* find(int numb);
+ static KeyTrans* find(const QString &id);
+ static int count();
+ static void loadAll();
+
+ KeyTrans(const QString& p);
+ ~KeyTrans();
+ bool findEntry(int key, int bits, int* cmd, const char** txt, int* len,
+ bool* metaspecified);
+ const QString& hdr() {if (!m_fileRead) readConfig(); return m_hdr;}
+ int numb() {return m_numb;}
+ const QString& id() { return m_id;}
+
+ class KeyEntry
+ {
+ public:
+ KeyEntry(int ref, int key, int bits, int mask, int cmd, QString txt);
+ ~KeyEntry();
+ bool matches(int key, int bits, int mask);
+ bool metaspecified(void);
+ bool anymodspecified(void);
+ QString text();
+ int ref;
+ private:
+ int key;
+ int bits;
+ int mask;
+ public:
+ int cmd;
+ QString txt;
+ };
+
+ private:
+ KeyEntry* addEntry(int ref, int key, int bits, int mask, int cmd, QString txt);
+ void addKeyTrans();
+ void readConfig();
+ QPtrList<KeyEntry> tableX;
+ QString m_hdr;
+ QString m_path;
+ QString m_id;
+ int m_numb;
+ bool m_fileRead;
+ KeyTrans();
+};
+
+#endif
diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp
new file mode 100644
index 000000000..2f9abdf52
--- /dev/null
+++ b/konsole/konsole/konsole.cpp
@@ -0,0 +1,4341 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1996 by Matthias Ettrich <ettrich@kde.org>
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+/* The material contained in here more or less directly orginates from */
+/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */
+/* */
+
+/*! \class Konsole
+
+ \brief Konsole's main class and program
+
+ The class Konsole handles the application level. Mainly, it is responsible
+ for the configuration, taken from several files, from the command line
+ and from the user. It hardly does anything interesting.
+ Everything is created as late as possible to make it startup fast.
+*/
+
+/*TODO:
+ - allow to set codec
+ - officially declare this file to be hacked to death. ;^)
+ - merge into konsole_part.
+*/
+
+/*STATE:
+
+ konsole/kwin session management, parts stuff, config, menues
+ are all in bad need for a complete rewrite.
+
+ While the emulation core (TEmulation, TEVt102, TEScreen, TEWidget)
+ are pretty stable, the upper level material has certainly drifted.
+
+ Everything related to Sessions, Configuration has to be redesigned.
+ It seems that the konsole now falls apart into individual sessions
+ and a session manager.
+
+Time to start a requirement list.
+
+ - Rework the Emulation::setConnect logic.
+ Together with session changing (Shift-Left/Right, Ctrl-D) it allows
+ key events to propagate to other sessions.
+
+ - Get rid of the unconfigurable, uncallable initial "Konsole" session.
+ Leads to code replication in konsole_part and other issues. Related
+ to the booting of konsole, thus matter of redesign.
+*/
+
+/*FIXME:
+ - All the material in here badly sufferes from the fact that the
+ configuration can originate from many places, so all is duplicated
+ and falls out of service. Especially the command line is badly broken.
+ The sources are:
+ - command line
+ - menu
+ - configuration files
+ - other events (e.g. resizing)
+ We have to find a single-place method to better maintain this.
+ - In general, the material contained in here and in session.C
+ should be rebalanced. Much more material now comes from configuration
+ files and the overall routines should better respect this.
+ - Font+Size list should go to a configuration file, too.
+ - Controlling the widget is currently done by individual attributes.
+ This lead to quite some amount of flicker when a whole bunch of
+ attributes has to be set, e.g. in session swapping.
+*/
+
+#include <config.h>
+
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qimage.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qhbox.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <kfiledialog.h>
+#include <kurlrequesterdlg.h>
+
+#include <kfontdialog.h>
+#include <kkeydialog.h>
+#include <kstandarddirs.h>
+#include <qpainter.h>
+#include <kmenubar.h>
+#include <kmessagebox.h>
+#include <krootpixmap.h>
+#include <krun.h>
+#include <kstdaction.h>
+#include <kinputdialog.h>
+#include <kdebug.h>
+#include <kipc.h>
+#include <dcopclient.h>
+#include <kglobalsettings.h>
+#include <knotifydialog.h>
+#include <kprinter.h>
+#include <kaccelmanager.h>
+
+#include <kaction.h>
+#include <kshell.h>
+#include <qlabel.h>
+#include <kpopupmenu.h>
+#include <klocale.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <signal.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <assert.h>
+
+#include <kiconloader.h>
+#include <kstringhandler.h>
+#include <ktip.h>
+#include <kprocctrl.h>
+#include <ktabwidget.h>
+#include <kregexpeditorinterface.h>
+#include <kparts/componentfactory.h>
+#include <kcharsets.h>
+#include <kcolordialog.h>
+#include <kio/netaccess.h>
+
+#include "konsole.h"
+#include <netwm.h>
+#include "printsettings.h"
+
+#define KONSOLEDEBUG kdDebug(1211)
+
+#define POPUP_NEW_SESSION_ID 121
+#define POPUP_SETTINGS_ID 212
+
+#define SESSION_NEW_WINDOW_ID 1
+#define SESSION_NEW_SHELL_ID 100
+
+extern bool argb_visual; // declared in main.cpp and konsole_part.cpp
+
+// KonsoleFontSelectAction is now also used for selectSize!
+class KonsoleFontSelectAction : public KSelectAction {
+public:
+ KonsoleFontSelectAction(const QString &text, int accel,
+ const QObject* receiver, const char* slot,
+ QObject* parent, const char* name = 0 )
+ : KSelectAction(text, accel, receiver, slot, parent, name) {}
+ KonsoleFontSelectAction( const QString &text, const QIconSet& pix,
+ int accel, const QObject* receiver,
+ const char* slot, QObject* parent,
+ const char* name = 0 )
+ : KSelectAction(text, pix, accel, receiver, slot, parent, name) {}
+
+ virtual void slotActivated( int index );
+};
+
+void KonsoleFontSelectAction::slotActivated(int index) {
+ // emit even if it's already activated
+ if (currentItem() == index) {
+ KSelectAction::slotActivated();
+ return;
+ } else {
+ KSelectAction::slotActivated(index);
+ }
+}
+
+template class QPtrDict<TESession>;
+template class QIntDict<KSimpleConfig>;
+template class QPtrDict<KRadioAction>;
+
+#define DEFAULT_HISTORY_SIZE 1000
+
+Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bool frameon, bool scrollbaron,
+ QCString type, bool b_inRestore, const int wanted_tabbar, const QString &workdir )
+:DCOPObject( "konsole" )
+,KMainWindow(0, name)
+,m_defaultSession(0)
+,m_defaultSessionFilename("")
+,tabwidget(0)
+,te(0)
+,se(0)
+,se_previous(0)
+,m_initialSession(0)
+,colors(0)
+,kWinModule(0)
+,menubar(0)
+,statusbar(0)
+,m_session(0)
+,m_edit(0)
+,m_view(0)
+,m_bookmarks(0)
+,m_bookmarksSession(0)
+,m_options(0)
+,m_schema(0)
+,m_keytab(0)
+,m_tabbarSessionsCommands(0)
+,m_signals(0)
+,m_help(0)
+,m_rightButton(0)
+,m_zmodemUpload(0)
+,monitorActivity(0)
+,monitorSilence(0)
+,masterMode(0)
+,showMenubar(0)
+,m_fullscreen(0)
+,selectSize(0)
+,selectFont(0)
+,selectScrollbar(0)
+,selectTabbar(0)
+,selectBell(0)
+,selectSetEncoding(0)
+,m_clearHistory(0)
+,m_findHistory(0)
+,m_saveHistory(0)
+,m_detachSession(0)
+,m_moveSessionLeft(0)
+,m_moveSessionRight(0)
+,bookmarkHandler(0)
+,bookmarkHandlerSession(0)
+,m_finddialog(0)
+,m_find_pattern("")
+,cmd_serial(0)
+,cmd_first_screen(-1)
+,n_keytab(0)
+,n_defaultKeytab(0)
+,n_render(0)
+,curr_schema(0)
+,wallpaperSource(0)
+,sessionIdCounter(0)
+,monitorSilenceSeconds(10)
+,s_kconfigSchema("")
+,m_tabViewMode(ShowIconAndText)
+,b_dynamicTabHide(false)
+,b_autoResizeTabs(false)
+,b_installBitmapFonts(false)
+,b_framevis(true)
+,b_fullscreen(false)
+,m_menuCreated(false)
+,b_warnQuit(false)
+,b_allowResize(true) // Whether application may resize
+,b_fixedSize(false) // Whether user may resize
+,b_addToUtmp(true)
+,b_xonXoff(false)
+,b_bidiEnabled(false)
+,b_fullScripting(false)
+,b_showstartuptip(true)
+,b_sessionShortcutsEnabled(false)
+,b_sessionShortcutsMapped(false)
+,b_matchTabWinTitle(false)
+,m_histSize(DEFAULT_HISTORY_SIZE)
+,m_separator_id(-1)
+,m_newSessionButton(0)
+,m_removeSessionButton(0)
+,sessionNumberMapper(0)
+,sl_sessionShortCuts(0)
+,s_workDir(workdir)
+{
+ isRestored = b_inRestore;
+ connect( &m_closeTimeout, SIGNAL(timeout()), this, SLOT(slotCouldNotClose()));
+
+ no2command.setAutoDelete(true);
+ menubar = menuBar();
+
+ KAcceleratorManager::setNoAccel( menubar );
+
+ sessionNumberMapper = new QSignalMapper( this );
+ connect( sessionNumberMapper, SIGNAL( mapped( int ) ),
+ this, SLOT( newSessionTabbar( int ) ) );
+
+ colors = new ColorSchemaList();
+ colors->checkSchemas();
+ colors->sort();
+
+ KeyTrans::loadAll();
+
+ // create applications /////////////////////////////////////////////////////
+ // read and apply default values ///////////////////////////////////////////
+ resize(321, 321); // Dummy.
+ QSize currentSize = size();
+ KConfig * config = KGlobal::config();
+ config->setDesktopGroup();
+ applyMainWindowSettings(config);
+ if (currentSize != size())
+ defaultSize = size();
+
+ KSimpleConfig *co;
+ if (!type.isEmpty())
+ setDefaultSession(type+".desktop");
+ co = defaultSession();
+
+ co->setDesktopGroup();
+ QString schema = co->readEntry("Schema");
+ readProperties(config, schema, false);
+
+ makeBasicGUI();
+
+ if (isRestored) {
+ n_tabbar = wanted_tabbar;
+ KConfig *c = KApplication::kApplication()->sessionConfig();
+// c->setDesktopGroup(); // Reads from wrong group
+ b_dynamicTabHide = c->readBoolEntry("DynamicTabHide", false);
+ }
+
+ if (!tabbaron)
+ n_tabbar = TabNone;
+
+ makeTabWidget();
+ setCentralWidget(tabwidget);
+
+ if (b_dynamicTabHide || n_tabbar==TabNone)
+ tabwidget->setTabBarHidden(true);
+
+ if (!histon)
+ b_histEnabled=false;
+
+ if (!menubaron)
+ menubar->hide();
+ if (!frameon) {
+ b_framevis=false;
+ if (te) te->setFrameStyle( QFrame::NoFrame );
+ }
+ if (!scrollbaron) {
+ n_scroll = TEWidget::SCRNONE;
+ if (te) te->setScrollbarLocation(TEWidget::SCRNONE);
+ }
+
+// connect(kapp, SIGNAL(kdisplayFontChanged()), this, SLOT(slotFontChanged()));
+
+ kapp->dcopClient()->setDefaultObject( "konsole" );
+}
+
+
+Konsole::~Konsole()
+{
+ sessions.first();
+ while(sessions.current())
+ {
+ sessions.current()->closeSession();
+ sessions.next();
+ }
+
+ // Wait a bit for all childs to clean themselves up.
+ while(sessions.count() && KProcessController::theKProcessController->waitForProcessExit(1))
+ ;
+
+ sessions.setAutoDelete(true);
+
+ resetScreenSessions();
+ if (no2command.isEmpty())
+ delete m_defaultSession;
+
+ delete colors;
+ colors=0;
+
+ delete kWinModule;
+ kWinModule = 0;
+}
+
+void Konsole::setAutoClose(bool on)
+{
+ if (sessions.first())
+ sessions.first()->setAutoClose(on);
+}
+
+void Konsole::showTip()
+{
+ KTipDialog::showTip(this,QString::null,true);
+}
+
+void Konsole::showTipOnStart()
+{
+ if (b_showstartuptip)
+ KTipDialog::showTip(this);
+}
+
+/* ------------------------------------------------------------------------- */
+/* Make menu */
+/* ------------------------------------------------------------------------- */
+
+void Konsole::updateRMBMenu()
+{
+ if (!m_rightButton) return;
+ int index = 0;
+ if (!showMenubar->isChecked() && m_options)
+ {
+ // Only show when menubar is hidden
+ if (!showMenubar->isPlugged( m_rightButton ))
+ {
+ showMenubar->plug ( m_rightButton, index );
+ m_rightButton->insertSeparator( index+1 );
+ }
+ index = 2;
+ m_rightButton->setItemVisible(POPUP_NEW_SESSION_ID,true);
+ if (m_separator_id != -1)
+ m_rightButton->setItemVisible(m_separator_id,true);
+ m_rightButton->setItemVisible(POPUP_SETTINGS_ID,true);
+ }
+ else
+ {
+ if (showMenubar->isPlugged( m_rightButton ))
+ {
+ showMenubar->unplug ( m_rightButton );
+ m_rightButton->removeItemAt(index);
+ }
+ index = 0;
+ m_rightButton->setItemVisible(POPUP_NEW_SESSION_ID,false);
+ m_rightButton->setItemVisible(m_separator_id,false);
+ m_rightButton->setItemVisible(POPUP_SETTINGS_ID,false);
+ }
+
+ if (!m_fullscreen)
+ return;
+ if (b_fullscreen)
+ {
+ if (!m_fullscreen->isPlugged( m_rightButton ))
+ {
+ m_fullscreen->plug ( m_rightButton, index );
+ m_rightButton->insertSeparator( index+1 );
+ }
+ }
+ else
+ {
+ if (m_fullscreen->isPlugged( m_rightButton ))
+ {
+ m_fullscreen->unplug ( m_rightButton );
+ m_rightButton->removeItemAt(index);
+ }
+ }
+}
+
+// Be carefull !!
+// This function consumes a lot of time, that's why it is called delayed on demand.
+// Be careful not to introduce function calls which lead to the execution of this
+// function when starting konsole
+// Be careful not to access stuff which is created in this function before this
+// function was called ! you can check this using m_menuCreated, aleXXX
+void Konsole::makeGUI()
+{
+ if (m_menuCreated) return;
+
+ if (m_tabbarSessionsCommands)
+ disconnect(m_tabbarSessionsCommands,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ disconnect(m_session,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_options)
+ disconnect(m_options,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_help)
+ disconnect(m_help,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_rightButton)
+ disconnect(m_rightButton,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ disconnect(m_edit,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ disconnect(m_view,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_bookmarks)
+ disconnect(m_bookmarks,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_bookmarksSession)
+ disconnect(m_bookmarksSession,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_tabbarSessionsCommands)
+ connect(m_tabbarSessionsCommands,SIGNAL(aboutToShow()),this,SLOT(loadScreenSessions()));
+ connect(m_session,SIGNAL(aboutToShow()),this,SLOT(loadScreenSessions()));
+ m_menuCreated=true;
+
+ // Remove the empty separator Qt inserts if the menu is empty on popup,
+ // not sure if this will be "fixed" in Qt, for now use this hack (malte)
+ if(!(isRestored)) {
+ if (sender() && sender()->inherits("QPopupMenu") &&
+ static_cast<const QPopupMenu *>(sender())->count() == 1)
+ const_cast<QPopupMenu *>(static_cast<const QPopupMenu *>(sender()))->removeItemAt(0);
+ }
+
+ KActionCollection* actions = actionCollection();
+
+ // Send Signal Menu -------------------------------------------------------------
+ if (kapp->authorizeKAction("send_signal"))
+ {
+ m_signals = new KPopupMenu(this);
+ m_signals->insertItem( i18n( "&Suspend Task" ) + " (STOP)", SIGSTOP);
+ m_signals->insertItem( i18n( "&Continue Task" ) + " (CONT)", SIGCONT);
+ m_signals->insertItem( i18n( "&Hangup" ) + " (HUP)", SIGHUP);
+ m_signals->insertItem( i18n( "&Interrupt Task" ) + " (INT)", SIGINT);
+ m_signals->insertItem( i18n( "&Terminate Task" ) + " (TERM)", SIGTERM);
+ m_signals->insertItem( i18n( "&Kill Task" ) + " (KILL)", SIGKILL);
+ m_signals->insertItem( i18n( "User Signal &1") + " (USR1)", SIGUSR1);
+ m_signals->insertItem( i18n( "User Signal &2") + " (USR2)", SIGUSR2);
+ connect(m_signals, SIGNAL(activated(int)), SLOT(sendSignal(int)));
+ KAcceleratorManager::manage( m_signals );
+ }
+
+ // Edit Menu ----------------------------------------------------------------
+ m_copyClipboard->plug(m_edit);
+ m_pasteClipboard->plug(m_edit);
+
+ m_edit->setCheckable(true);
+ if (m_signals)
+ m_edit->insertItem( i18n("&Send Signal"), m_signals );
+
+ if ( m_zmodemUpload ) {
+ m_edit->insertSeparator();
+ m_zmodemUpload->plug( m_edit );
+ }
+
+ m_edit->insertSeparator();
+ m_clearTerminal->plug(m_edit);
+
+ m_resetClearTerminal->plug(m_edit);
+
+ m_edit->insertSeparator();
+ m_findHistory->plug(m_edit);
+ m_findNext->plug(m_edit);
+ m_findPrevious->plug(m_edit);
+ m_saveHistory->plug(m_edit);
+ m_edit->insertSeparator();
+ m_clearHistory->plug(m_edit);
+ m_clearAllSessionHistories->plug(m_edit);
+
+ // View Menu
+ m_detachSession->plug(m_view);
+ m_renameSession->plug(m_view);
+
+ m_view->insertSeparator();
+ monitorActivity->plug ( m_view );
+ monitorSilence->plug ( m_view );
+
+ masterMode->plug ( m_view );
+
+ m_view->insertSeparator();
+ m_moveSessionLeft->setEnabled( false );
+ m_moveSessionLeft->plug(m_view);
+
+ m_moveSessionRight->setEnabled( false );
+ m_moveSessionRight->plug(m_view);
+
+ m_view->insertSeparator();
+ KRadioAction *ra = session2action.find(se);
+ if (ra!=0) ra->plug(m_view);
+
+ //bookmarks menu
+ if (bookmarkHandler)
+ connect( bookmarkHandler, SIGNAL( openURL( const QString&, const QString& )),
+ SLOT( enterURL( const QString&, const QString& )));
+ if (bookmarkHandlerSession)
+ connect( bookmarkHandlerSession, SIGNAL( openURL( const QString&, const QString& )),
+ SLOT( newSession( const QString&, const QString& )));
+ if (m_bookmarks)
+ connect(m_bookmarks, SIGNAL(aboutToShow()), SLOT(bookmarks_menu_check()));
+ if (m_bookmarksSession)
+ connect(m_bookmarksSession, SIGNAL(aboutToShow()), SLOT(bookmarks_menu_check()));
+
+ // Schema Options Menu -----------------------------------------------------
+ m_schema = new KPopupMenu(this);
+ m_schema->setCheckable(true);
+ KAcceleratorManager::manage( m_schema );
+ connect(m_schema, SIGNAL(activated(int)), SLOT(schema_menu_activated(int)));
+ connect(m_schema, SIGNAL(aboutToShow()), SLOT(schema_menu_check()));
+
+ // Keyboard Options Menu ---------------------------------------------------
+ m_keytab = new KPopupMenu(this);
+ m_keytab->setCheckable(true);
+ KAcceleratorManager::manage( m_keytab );
+ connect(m_keytab, SIGNAL(activated(int)), SLOT(keytab_menu_activated(int)));
+
+ //options menu
+ if (m_options)
+ {
+ // Menubar on/off
+ showMenubar->plug ( m_options );
+
+ // Tabbar
+ selectTabbar = new KSelectAction(i18n("&Tab Bar"), 0, this,
+ SLOT(slotSelectTabbar()), actions, "tabbar" );
+ QStringList tabbaritems;
+ tabbaritems << i18n("&Hide") << i18n("&Top") << i18n("&Bottom");
+ selectTabbar->setItems(tabbaritems);
+ selectTabbar->plug(m_options);
+
+ // Scrollbar
+ selectScrollbar = new KSelectAction(i18n("Sc&rollbar"), 0, this,
+ SLOT(slotSelectScrollbar()), actions, "scrollbar" );
+ QStringList scrollitems;
+ scrollitems << i18n("&Hide") << i18n("&Left") << i18n("&Right");
+ selectScrollbar->setItems(scrollitems);
+ selectScrollbar->plug(m_options);
+
+ // Fullscreen
+ m_options->insertSeparator();
+ if (m_fullscreen)
+ {
+ m_fullscreen->plug(m_options);
+ m_options->insertSeparator();
+ }
+
+ // Select Bell
+ selectBell = new KSelectAction(i18n("&Bell"), SmallIconSet( "bell"), 0 , this,
+ SLOT(slotSelectBell()), actions, "bell");
+ QStringList bellitems;
+ bellitems << i18n("System &Bell")
+ << i18n("System &Notification")
+ << i18n("&Visible Bell")
+ << i18n("N&one");
+ selectBell->setItems(bellitems);
+ selectBell->plug(m_options);
+
+ checkBitmapFonts();
+ KActionMenu* m_fontsizes = new KActionMenu( i18n( "Font" ),
+ SmallIconSet( "text" ),
+ actions, 0L );
+ m_fontsizes->insert( new KAction( i18n( "&Enlarge Font" ),
+ SmallIconSet( "fontsizeup" ), 0, this,
+ SLOT( biggerFont() ), actions,
+ "enlarge_font" ) );
+ m_fontsizes->insert( new KAction( i18n( "&Shrink Font" ),
+ SmallIconSet( "fontsizedown" ), 0, this,
+ SLOT( smallerFont() ), actions,
+ "shrink_font" ) );
+ m_fontsizes->insert( new KAction( i18n( "Se&lect..." ),
+ SmallIconSet( "font" ), 0, this,
+ SLOT( slotSelectFont() ), actions,
+ "select_font" ) );
+ if ( b_installBitmapFonts )
+ {
+ m_fontsizes->insert( new KAction( i18n( "&Install Bitmap..." ),
+ SmallIconSet( "font" ), 0, this,
+ SLOT( slotInstallBitmapFonts() ), actions,
+ "install_fonts" ) );
+ }
+ m_fontsizes->plug(m_options);
+
+ // encoding menu, start with default checked !
+ selectSetEncoding = new KSelectAction( i18n( "&Encoding" ), SmallIconSet( "charset" ), 0, this, SLOT(slotSetEncoding()), actions, "set_encoding" );
+ QStringList list = KGlobal::charsets()->descriptiveEncodingNames();
+ list.prepend( i18n( "Default" ) );
+ selectSetEncoding->setItems(list);
+ selectSetEncoding->setCurrentItem (0);
+ selectSetEncoding->plug(m_options);
+
+ if (kapp->authorizeKAction("keyboard"))
+ m_options->insertItem( SmallIconSet( "key_bindings" ), i18n( "&Keyboard" ), m_keytab );
+
+ // Schema
+ if (kapp->authorizeKAction("schema"))
+ m_options->insertItem( SmallIconSet( "colorize" ), i18n( "Sch&ema" ), m_schema);
+
+ // Select size
+ if (!b_fixedSize)
+ {
+ selectSize = new KonsoleFontSelectAction(i18n("S&ize"), 0, this,
+ SLOT(slotSelectSize()), actions, "size");
+ QStringList sizeitems;
+ sizeitems << i18n("40x15 (&Small)")
+ << i18n("80x24 (&VT100)")
+ << i18n("80x25 (&IBM PC)")
+ << i18n("80x40 (&XTerm)")
+ << i18n("80x52 (IBM V&GA)")
+ << ""
+ << i18n("&Custom...");
+ selectSize->setItems(sizeitems);
+ selectSize->plug(m_options);
+ }
+
+ KAction *historyType = new KAction(i18n("Hist&ory..."), "history", 0, this,
+ SLOT(slotHistoryType()), actions, "history");
+ historyType->plug(m_options);
+
+ m_options->insertSeparator();
+
+ KAction *save_settings = new KAction(i18n("&Save as Default"), "filesave", 0, this,
+ SLOT(slotSaveSettings()), actions, "save_default");
+ save_settings->plug(m_options);
+
+ m_options->insertSeparator();
+
+ m_saveProfile->plug(m_options);
+
+ m_options->insertSeparator();
+
+ KStdAction::configureNotifications(this, SLOT(slotConfigureNotifications()), actionCollection())->plug(m_options);
+ KStdAction::keyBindings(this, SLOT(slotConfigureKeys()), actionCollection())->plug(m_options);
+ KAction *configure = KStdAction::preferences(this, SLOT(slotConfigure()), actions);
+ configure->plug(m_options);
+
+ if (KGlobalSettings::insertTearOffHandle())
+ m_options->insertTearOffHandle();
+ }
+
+ //help menu
+ if (m_help)
+ {
+ m_help->insertSeparator(1);
+ m_help->insertItem(SmallIcon( "idea" ), i18n("&Tip of the Day"),
+ this, SLOT(showTip()), 0, -1, 2);
+ }
+
+ //the different session menus
+ buildSessionMenus();
+
+ connect(m_session, SIGNAL(activated(int)), SLOT(newSession(int)));
+
+ // Right mouse button menu
+ if (m_rightButton)
+ {
+ updateRMBMenu(); // show menubar / exit fullscreen
+
+ KAction* selectionEnd = new KAction(i18n("Set Selection End"), 0, this,
+ SLOT(slotSetSelectionEnd()), actions, "selection_end");
+ selectionEnd->plug(m_rightButton);
+
+ m_copyClipboard->plug(m_rightButton);
+ m_pasteClipboard->plug(m_rightButton);
+ if (m_signals)
+ m_rightButton->insertItem(i18n("&Send Signal"), m_signals);
+
+ m_rightButton->insertSeparator();
+ if (m_tabbarSessionsCommands)
+ m_rightButton->insertItem( i18n("New Sess&ion"), m_tabbarSessionsCommands, POPUP_NEW_SESSION_ID );
+ m_detachSession->plug(m_rightButton);
+ m_renameSession->plug(m_rightButton);
+
+ if (m_bookmarks)
+ {
+ m_rightButton->insertSeparator();
+ m_rightButton->insertItem(i18n("&Bookmarks"), m_bookmarks);
+ }
+
+ if (m_options)
+ {
+ m_separator_id=m_rightButton->insertSeparator();
+ m_rightButton->insertItem(i18n("S&ettings"), m_options, POPUP_SETTINGS_ID);
+ }
+ m_rightButton->insertSeparator();
+ m_closeSession->plug(m_rightButton );
+ if (KGlobalSettings::insertTearOffHandle())
+ m_rightButton->insertTearOffHandle();
+ }
+
+ delete colors;
+ colors = new ColorSchemaList();
+ colors->checkSchemas();
+ colors->sort();
+ updateSchemaMenu();
+ ColorSchema *sch=colors->find(s_schema);
+ if (sch)
+ curr_schema=sch->numb();
+ else
+ curr_schema = 0;
+ for (uint i=0; i<m_schema->count(); i++)
+ m_schema->setItemChecked(i,false);
+
+ m_schema->setItemChecked(curr_schema,true);
+ while (se == NULL) {}
+ se->setSchemaNo(curr_schema);
+
+ // insert keymaps into menu
+ // This sorting seems a bit cumbersome; but it is not called often.
+ QStringList kt_titles;
+ typedef QMap<QString,KeyTrans*> QStringKeyTransMap;
+ QStringKeyTransMap kt_map;
+
+ for (int i = 0; i < KeyTrans::count(); i++)
+ {
+ KeyTrans* ktr = KeyTrans::find(i);
+ assert( ktr );
+ QString title=ktr->hdr().lower();
+ kt_titles << title;
+ kt_map[title] = ktr;
+ }
+ kt_titles.sort();
+ for ( QStringList::Iterator it = kt_titles.begin(); it != kt_titles.end(); ++it ) {
+ KeyTrans* ktr = kt_map[*it];
+ assert( ktr );
+ QString title=ktr->hdr();
+ m_keytab->insertItem(title.replace('&',"&&"),ktr->numb());
+ }
+
+ applySettingsToGUI();
+ isRestored = false;
+
+
+ // Fill tab context menu
+ m_tabPopupMenu = new KPopupMenu( this );
+ KAcceleratorManager::manage( m_tabPopupMenu );
+
+ m_tabDetachSession= new KAction( i18n("&Detach Session"), SmallIconSet("tab_breakoff"), 0, this, SLOT(slotTabDetachSession()), this );
+ m_tabDetachSession->plug(m_tabPopupMenu);
+
+ m_tabPopupMenu->insertItem( i18n("&Rename Session..."), this,
+ SLOT(slotTabRenameSession()) );
+ m_tabPopupMenu->insertSeparator();
+
+ m_tabMonitorActivity = new KToggleAction ( i18n( "Monitor for &Activity" ),
+ SmallIconSet("activity"), 0, this, SLOT( slotTabToggleMonitor() ), this );
+ m_tabMonitorActivity->setCheckedState( KGuiItem( i18n( "Stop Monitoring for &Activity" ) ) );
+ m_tabMonitorActivity->plug(m_tabPopupMenu);
+
+ m_tabMonitorSilence = new KToggleAction ( i18n( "Monitor for &Silence" ),
+ SmallIconSet("silence"), 0, this, SLOT( slotTabToggleMonitor() ), this );
+ m_tabMonitorSilence->setCheckedState( KGuiItem( i18n( "Stop Monitoring for &Silence" ) ) );
+ m_tabMonitorSilence->plug(m_tabPopupMenu);
+
+ m_tabMasterMode = new KToggleAction ( i18n( "Send &Input to All Sessions" ), "remote", 0, this,
+ SLOT( slotTabToggleMasterMode() ), this);
+ m_tabMasterMode->plug(m_tabPopupMenu);
+
+ m_tabPopupMenu->insertSeparator();
+ m_tabPopupMenu->insertItem( SmallIconSet("colors"), i18n("Select &Tab Color..."), this, SLOT(slotTabSelectColor()) );
+
+ m_tabPopupMenu->insertSeparator();
+ m_tabPopupTabsMenu = new KPopupMenu( m_tabPopupMenu );
+ m_tabPopupMenu->insertItem( i18n("Switch to Tab" ), m_tabPopupTabsMenu );
+ connect( m_tabPopupTabsMenu, SIGNAL( activated ( int ) ),
+ SLOT( activateSession( int ) ) );
+
+ m_tabPopupMenu->insertSeparator();
+ m_tabPopupMenu->insertItem( SmallIcon("fileclose"), i18n("C&lose Session"), this,
+ SLOT(slotTabCloseSession()) );
+
+ if (m_options) {
+ // Fill tab bar context menu
+ m_tabbarPopupMenu = new KPopupMenu( this );
+ KAcceleratorManager::manage( m_tabbarPopupMenu );
+ selectTabbar->plug(m_tabbarPopupMenu);
+
+ KSelectAction *viewOptions = new KSelectAction(this);
+ viewOptions->setText(i18n("Tab &Options"));
+ QStringList options;
+ options << i18n("&Text && Icons") << i18n("Text &Only") << i18n("&Icons Only");
+ viewOptions->setItems(options);
+ viewOptions->setCurrentItem(m_tabViewMode);
+ viewOptions->plug(m_tabbarPopupMenu);
+ connect(viewOptions, SIGNAL(activated(int)), this, SLOT(slotTabSetViewOptions(int)));
+ slotTabSetViewOptions(m_tabViewMode);
+
+ KToggleAction *dynamicTabHideOption = new KToggleAction ( i18n( "&Dynamic Hide" ), 0, this,
+ SLOT( slotTabbarToggleDynamicHide() ), this);
+ dynamicTabHideOption->setChecked(b_dynamicTabHide);
+ dynamicTabHideOption->plug(m_tabbarPopupMenu);
+
+ KToggleAction *m_autoResizeTabs = new KToggleAction( i18n("&Auto Resize Tabs"),
+ 0, this, SLOT( slotToggleAutoResizeTabs() ), this);
+ m_autoResizeTabs->setChecked(b_autoResizeTabs);
+ m_autoResizeTabs->plug(m_tabbarPopupMenu);
+ }
+}
+
+// Called via menu
+void Konsole::slotSetEncoding()
+{
+ if (!se) return;
+
+ QTextCodec * qtc;
+ if (selectSetEncoding->currentItem() == 0)
+ {
+ qtc = QTextCodec::codecForLocale();
+ }
+ else
+ {
+ bool found;
+ QString enc = KGlobal::charsets()->encodingForName(selectSetEncoding->currentText());
+ qtc = KGlobal::charsets()->codecForName(enc, found);
+
+ // BR114535 : Remove jis7 due to infinite loop.
+ if ( enc == "jis7" ) {
+ kdWarning()<<"Encoding Japanese (jis7) currently does not work! BR114535"<<endl;
+ qtc = QTextCodec::codecForLocale();
+ selectSetEncoding->setCurrentItem( 0 );
+ }
+
+ if(!found)
+ {
+ kdWarning() << "Codec " << selectSetEncoding->currentText() << " not found! Using default..." << endl;
+ qtc = QTextCodec::codecForLocale();
+ selectSetEncoding->setCurrentItem( 0 );
+ }
+ }
+
+ se->setEncodingNo(selectSetEncoding->currentItem());
+ se->getEmulation()->setCodec(qtc);
+}
+
+void Konsole::makeTabWidget()
+{
+ tabwidget = new KTabWidget(this);
+ tabwidget->setTabReorderingEnabled(true);
+ tabwidget->setAutomaticResizeTabs( b_autoResizeTabs );
+ tabwidget->setTabCloseActivatePrevious( true );
+
+ if (n_tabbar==TabTop)
+ tabwidget->setTabPosition(QTabWidget::Top);
+ else
+ tabwidget->setTabPosition(QTabWidget::Bottom);
+
+ KAcceleratorManager::setNoAccel( tabwidget );
+
+ connect(tabwidget, SIGNAL(movedTab(int,int)), SLOT(slotMovedTab(int,int)));
+ connect(tabwidget, SIGNAL(mouseDoubleClick(QWidget*)), SLOT(slotRenameSession()));
+ connect(tabwidget, SIGNAL(currentChanged(QWidget*)), SLOT(activateSession(QWidget*)));
+ connect( tabwidget, SIGNAL(contextMenu(QWidget*, const QPoint &)),
+ SLOT(slotTabContextMenu(QWidget*, const QPoint &)));
+ connect( tabwidget, SIGNAL(contextMenu(const QPoint &)),
+ SLOT(slotTabbarContextMenu(const QPoint &)));
+
+ if (kapp->authorize("shell_access")) {
+ connect(tabwidget, SIGNAL(mouseDoubleClick()), SLOT(newSession()));
+
+ m_newSessionButton = new QToolButton( tabwidget );
+ QToolTip::add(m_newSessionButton,i18n("Click for new standard session\nClick and hold for session menu"));
+ m_newSessionButton->setIconSet( SmallIcon( "tab_new" ) );
+ m_newSessionButton->adjustSize();
+ m_newSessionButton->setPopup( m_tabbarSessionsCommands );
+ connect(m_newSessionButton, SIGNAL(clicked()), SLOT(newSession()));
+ tabwidget->setCornerWidget( m_newSessionButton, BottomLeft );
+ m_newSessionButton->installEventFilter(this);
+
+ m_removeSessionButton = new QToolButton( tabwidget );
+ QToolTip::add(m_removeSessionButton,i18n("Close the current session"));
+ m_removeSessionButton->setIconSet( SmallIconSet( "tab_remove" ) );
+ m_removeSessionButton->adjustSize();
+ m_removeSessionButton->setEnabled(false);
+ connect(m_removeSessionButton, SIGNAL(clicked()), SLOT(confirmCloseCurrentSession()));
+ tabwidget->setCornerWidget( m_removeSessionButton, BottomRight );
+
+ }
+}
+
+bool Konsole::eventFilter( QObject *o, QEvent *ev )
+{
+ if (o == m_newSessionButton)
+ {
+ // Popup the menu when the left mousebutton is pressed and the mouse
+ // is moved by a small distance.
+ if (ev->type() == QEvent::MouseButtonPress)
+ {
+ QMouseEvent* mev = static_cast<QMouseEvent*>(ev);
+ m_newSessionButtonMousePressPos = mev->pos();
+ }
+ else if (ev->type() == QEvent::MouseMove)
+ {
+ QMouseEvent* mev = static_cast<QMouseEvent*>(ev);
+ if ((mev->pos() - m_newSessionButtonMousePressPos).manhattanLength()
+ > KGlobalSettings::dndEventDelay())
+ {
+ m_newSessionButton->openPopup();
+ return true;
+ }
+ }
+ else if (ev->type() == QEvent::ContextMenu)
+ {
+ QMouseEvent* mev = static_cast<QMouseEvent*>(ev);
+ slotTabbarContextMenu(mev->globalPos());
+ return true;
+ }
+ }
+ return KMainWindow::eventFilter(o, ev);
+}
+
+void Konsole::makeBasicGUI()
+{
+ if (kapp->authorize("shell_access")) {
+ m_tabbarSessionsCommands = new KPopupMenu( this );
+ KAcceleratorManager::manage( m_tabbarSessionsCommands );
+ connect(m_tabbarSessionsCommands, SIGNAL(activated(int)), SLOT(newSessionTabbar(int)));
+ }
+
+ m_session = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_session );
+ m_edit = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_edit );
+ m_view = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_view );
+ if (kapp->authorizeKAction("bookmarks"))
+ {
+ bookmarkHandler = new KonsoleBookmarkHandler( this, true );
+ m_bookmarks = bookmarkHandler->menu();
+ // call manually to disable accelerator c-b for add-bookmark initially.
+ bookmarks_menu_check();
+ }
+
+ if (kapp->authorizeKAction("settings")) {
+ m_options = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_options );
+ }
+
+ if (kapp->authorizeKAction("help"))
+ m_help = helpMenu(0, false);
+
+ if (kapp->authorizeKAction("konsole_rmb")) {
+ m_rightButton = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_rightButton );
+ }
+
+ if (kapp->authorizeKAction("bookmarks"))
+ {
+ // Bookmarks that open new sessions.
+ bookmarkHandlerSession = new KonsoleBookmarkHandler( this, false );
+ m_bookmarksSession = bookmarkHandlerSession->menu();
+ }
+
+ // For those who would like to add shortcuts here, be aware that
+ // ALT-key combinations are heavily used by many programs. Thus,
+ // activating shortcuts here means deactivating them in the other
+ // programs.
+
+ if (m_tabbarSessionsCommands)
+ connect(m_tabbarSessionsCommands,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ connect(m_session,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_options)
+ connect(m_options,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_help)
+ connect(m_help,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_rightButton)
+ connect(m_rightButton,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ connect(m_edit,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ connect(m_view,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_bookmarks)
+ connect(m_bookmarks,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+ if (m_bookmarksSession)
+ connect(m_bookmarksSession,SIGNAL(aboutToShow()),this,SLOT(makeGUI()));
+
+ menubar->insertItem(i18n("Session") , m_session);
+ menubar->insertItem(i18n("Edit"), m_edit);
+ menubar->insertItem(i18n("View"), m_view);
+ if (m_bookmarks)
+ menubar->insertItem(i18n("Bookmarks"), m_bookmarks);
+ if (m_options)
+ menubar->insertItem(i18n("Settings"), m_options);
+ if (m_help)
+ menubar->insertItem(i18n("Help"), m_help);
+
+ m_shortcuts = new KActionCollection(this);
+
+ m_copyClipboard = new KAction(i18n("&Copy"), "editcopy", 0, this,
+ SLOT(slotCopyClipboard()), m_shortcuts, "edit_copy");
+ m_pasteClipboard = new KAction(i18n("&Paste"), "editpaste", Qt::SHIFT+Qt::Key_Insert, this,
+ SLOT(slotPasteClipboard()), m_shortcuts, "edit_paste");
+ m_pasteSelection = new KAction(i18n("Paste Selection"), Qt::CTRL+Qt::SHIFT+Qt::Key_Insert, this,
+ SLOT(slotPasteSelection()), m_shortcuts, "pasteselection");
+
+ m_clearTerminal = new KAction(i18n("C&lear Terminal"), 0, this,
+ SLOT(slotClearTerminal()), m_shortcuts, "clear_terminal");
+ m_resetClearTerminal = new KAction(i18n("&Reset && Clear Terminal"), 0, this,
+ SLOT(slotResetClearTerminal()), m_shortcuts, "reset_clear_terminal");
+ m_findHistory = new KAction(i18n("&Find in History..."), "find", 0, this,
+ SLOT(slotFindHistory()), m_shortcuts, "find_history");
+ m_findHistory->setEnabled(b_histEnabled);
+
+ m_findNext = new KAction(i18n("Find &Next"), "next", 0, this,
+ SLOT(slotFindNext()), m_shortcuts, "find_next");
+ m_findNext->setEnabled(b_histEnabled);
+
+ m_findPrevious = new KAction(i18n("Find Pre&vious"), "previous", 0, this,
+ SLOT(slotFindPrevious()), m_shortcuts, "find_previous");
+ m_findPrevious->setEnabled( b_histEnabled );
+
+ m_saveHistory = new KAction(i18n("S&ave History As..."), "filesaveas", 0, this,
+ SLOT(slotSaveHistory()), m_shortcuts, "save_history");
+ m_saveHistory->setEnabled(b_histEnabled );
+
+ m_clearHistory = new KAction(i18n("Clear &History"), "history_clear", 0, this,
+ SLOT(slotClearHistory()), m_shortcuts, "clear_history");
+ m_clearHistory->setEnabled(b_histEnabled);
+
+ m_clearAllSessionHistories = new KAction(i18n("Clear All H&istories"), "history_clear", 0,
+ this, SLOT(slotClearAllSessionHistories()), m_shortcuts, "clear_all_histories");
+
+ m_detachSession = new KAction(i18n("&Detach Session"), SmallIconSet("tab_breakoff"), 0, this,
+ SLOT(slotDetachSession()), m_shortcuts, "detach_session");
+ m_detachSession->setEnabled(false);
+
+ m_renameSession = new KAction(i18n("&Rename Session..."), Qt::CTRL+Qt::ALT+Qt::Key_S, this,
+ SLOT(slotRenameSession()), m_shortcuts, "rename_session");
+
+ if (kapp->authorizeKAction("zmodem_upload"))
+ m_zmodemUpload = new KAction( i18n( "&ZModem Upload..." ),
+ Qt::CTRL+Qt::ALT+Qt::Key_U, this,
+ SLOT( slotZModemUpload() ),
+ m_shortcuts, "zmodem_upload" );
+
+ monitorActivity = new KToggleAction ( i18n( "Monitor for &Activity" ),
+ SmallIconSet("activity"), 0, this,
+ SLOT( slotToggleMonitor() ), m_shortcuts, "monitor_activity" );
+ monitorActivity->setCheckedState( KGuiItem( i18n( "Stop Monitoring for &Activity" ) ) );
+
+ monitorSilence = new KToggleAction ( i18n( "Monitor for &Silence" ),
+ SmallIconSet("silence"), 0, this,
+ SLOT( slotToggleMonitor() ), m_shortcuts, "monitor_silence" );
+ monitorSilence->setCheckedState( KGuiItem( i18n( "Stop Monitoring for &Silence" ) ) );
+
+ masterMode = new KToggleAction ( i18n( "Send &Input to All Sessions" ), "remote", 0, this,
+ SLOT( slotToggleMasterMode() ), m_shortcuts, "send_input_to_all_sessions" );
+
+ showMenubar = new KToggleAction ( i18n( "Show &Menubar" ), "showmenu", 0, this,
+ SLOT( slotToggleMenubar() ), m_shortcuts, "show_menubar" );
+ showMenubar->setCheckedState( KGuiItem( i18n("Hide &Menubar"), "showmenu", QString::null, QString::null ) );
+
+ m_fullscreen = KStdAction::fullScreen(0, 0, m_shortcuts, this );
+ connect( m_fullscreen,SIGNAL(toggled(bool)), this,SLOT(updateFullScreen(bool)));
+ m_fullscreen->setChecked(b_fullscreen);
+
+ m_saveProfile = new KAction( i18n( "Save Sessions &Profile..." ), SmallIconSet("filesaveas"), 0, this,
+ SLOT( slotSaveSessionsProfile() ), m_shortcuts, "save_sessions_profile" );
+
+ //help menu
+ if (m_help)
+ m_help->setAccel(QKeySequence(),m_help->idAt(0));
+ // Don't steal F1 (handbook) accel (esp. since it not visible in
+ // "Configure Shortcuts").
+
+ m_closeSession = new KAction(i18n("C&lose Session"), "fileclose", 0, this,
+ SLOT(confirmCloseCurrentSession()), m_shortcuts, "close_session");
+ m_print = new KAction(i18n("&Print Screen..."), "fileprint", 0, this, SLOT( slotPrint() ), m_shortcuts, "file_print");
+ m_quit = new KAction(i18n("&Quit"), "exit", 0, this, SLOT( close() ), m_shortcuts, "file_quit");
+
+ KShortcut shortcut(Qt::CTRL+Qt::ALT+Qt::Key_N);
+ shortcut.append(KShortcut(Qt::CTRL+Qt::SHIFT+Qt::Key_N));
+ new KAction(i18n("New Session"), shortcut, this, SLOT(newSession()), m_shortcuts, "new_session");
+ new KAction(i18n("Activate Menu"), Qt::CTRL+Qt::ALT+Qt::Key_M, this, SLOT(activateMenu()), m_shortcuts, "activate_menu");
+ new KAction(i18n("List Sessions"), 0, this, SLOT(listSessions()), m_shortcuts, "list_sessions");
+
+ m_moveSessionLeft = new KAction(i18n("&Move Session Left"), QApplication::reverseLayout() ? "forward" : "back",
+ QApplication::reverseLayout() ? Qt::CTRL+Qt::SHIFT+Qt::Key_Right : Qt::CTRL+Qt::SHIFT+Qt::Key_Left, this,
+ SLOT(moveSessionLeft()), m_shortcuts, "move_session_left");
+ m_moveSessionRight = new KAction(i18n("M&ove Session Right"), QApplication::reverseLayout() ? "back" : "forward",
+ QApplication::reverseLayout() ? Qt::CTRL+Qt::SHIFT+Qt::Key_Left : Qt::CTRL+Qt::SHIFT+Qt::Key_Right, this,
+ SLOT(moveSessionRight()), m_shortcuts, "move_session_right");
+
+ new KAction(i18n("Go to Previous Session"), QApplication::reverseLayout() ? Qt::SHIFT+Qt::Key_Right : Qt::SHIFT+Qt::Key_Left,
+ this, SLOT(prevSession()), m_shortcuts, "previous_session");
+ new KAction(i18n("Go to Next Session"), QApplication::reverseLayout() ? Qt::SHIFT+Qt::Key_Left : Qt::SHIFT+Qt::Key_Right,
+ this, SLOT(nextSession()), m_shortcuts, "next_session");
+
+ for (int i=1;i<13;i++) { // Due to 12 function keys?
+ new KAction(i18n("Switch to Session %1").arg(i), 0, this, SLOT(switchToSession()), m_shortcuts, QString().sprintf("switch_to_session_%02d", i).latin1());
+ }
+
+ new KAction(i18n("Enlarge Font"), 0, this, SLOT(biggerFont()), m_shortcuts, "bigger_font");
+ new KAction(i18n("Shrink Font"), 0, this, SLOT(smallerFont()), m_shortcuts, "smaller_font");
+
+ new KAction(i18n("Toggle Bidi"), Qt::CTRL+Qt::ALT+Qt::Key_B, this, SLOT(toggleBidi()), m_shortcuts, "toggle_bidi");
+
+ // Should we load all *.desktop files now? Required for Session shortcuts.
+ if ( KConfigGroup(KGlobal::config(), "General").readBoolEntry("SessionShortcutsEnabled", false) ) {
+ b_sessionShortcutsEnabled = true;
+ loadSessionCommands();
+ loadScreenSessions();
+ }
+ m_shortcuts->readShortcutSettings();
+
+ m_sessionList = new KPopupMenu(this);
+ KAcceleratorManager::manage( m_sessionList );
+ connect(m_sessionList, SIGNAL(activated(int)), SLOT(activateSession(int)));
+}
+
+/**
+ Make menubar available via escape sequence (Default: Ctrl+Alt+m)
+ */
+void Konsole::activateMenu()
+{
+ menubar->activateItemAt(0);
+ if ( !showMenubar->isChecked() ) {
+ menubar->show();
+ showMenubar->setChecked(true);
+ }
+}
+
+/**
+ Ask for Quit confirmation - Martijn Klingens
+ Asks for confirmation if there are still open shells when the 'Warn on
+ Quit' option is set.
+ */
+bool Konsole::queryClose()
+{
+ if(kapp->sessionSaving())
+ // saving session - do not even think about doing any kind of cleanup here
+ return true;
+
+ if (sessions.count() == 0)
+ return true;
+
+ if ( b_warnQuit)
+ {
+ if(sessions.count()>1) {
+ switch (
+ KMessageBox::warningYesNoCancel(
+ this,
+ i18n( "You have open sessions (besides the current one). "
+ "These will be killed if you continue.\n"
+ "Are you sure you want to quit?" ),
+ i18n("Really Quit?"),
+ KStdGuiItem::quit(),
+ KGuiItem(i18n("C&lose Session"),"fileclose")
+ )
+ ) {
+ case KMessageBox::Yes :
+ break;
+ case KMessageBox::No :
+ { closeCurrentSession();
+ return false;
+ }
+ break;
+ case KMessageBox::Cancel : return false;
+ }
+ }
+ }
+
+ // WABA: Don't close if there are any sessions left.
+ // Tell them to go away.
+ sessions.first();
+ while(sessions.current())
+ {
+ sessions.current()->closeSession();
+ sessions.next();
+ }
+
+ m_closeTimeout.start(1500, true);
+ return false;
+}
+
+void Konsole::slotCouldNotClose()
+{
+ int result = KMessageBox::warningContinueCancel(this,
+ i18n("The application running in Konsole does not respond to the close request. "
+ "Do you want Konsole to close anyway?"),
+ i18n("Application Does Not Respond"),
+ KStdGuiItem::close());
+ if (result == KMessageBox::Continue)
+ {
+ while(sessions.first())
+ {
+ doneSession(sessions.current());
+ }
+ }
+}
+
+/**
+ sets application window to a size based on columns X lines of the te
+ guest widget. Call with (0,0) for setting default size.
+*/
+
+void Konsole::setColLin(int columns, int lines)
+{
+ if ((columns==0) || (lines==0))
+ {
+ if (b_fixedSize || defaultSize.isEmpty())
+ {
+ // not in config file : set default value
+ columns = 80;
+ lines = 24;
+ }
+ }
+
+ if ((columns==0) || (lines==0))
+ {
+ resize(defaultSize);
+ }
+ else
+ {
+ if (b_fixedSize)
+ te->setFixedSize(columns, lines);
+ else
+ te->setSize(columns, lines);
+ adjustSize();
+ if (b_fixedSize)
+ setFixedSize(sizeHint());
+ notifySize(columns, lines); // set menu items
+ }
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void Konsole::configureRequest(TEWidget* _te, int state, int x, int y)
+{
+ if (!m_menuCreated)
+ makeGUI();
+ KPopupMenu *menu = (state & ControlButton) ? m_session : m_rightButton;
+ if (menu)
+ menu->popup(_te->mapToGlobal(QPoint(x,y)));
+}
+
+void Konsole::slotTabContextMenu(QWidget* _te, const QPoint & pos)
+{
+ if (!m_menuCreated)
+ makeGUI();
+
+ m_contextMenuSession = sessions.at( tabwidget->indexOf( _te ) );
+
+ m_tabDetachSession->setEnabled( tabwidget->count()>1 );
+
+ m_tabMonitorActivity->setChecked( m_contextMenuSession->isMonitorActivity() );
+ m_tabMonitorSilence->setChecked( m_contextMenuSession->isMonitorSilence() );
+ m_tabMasterMode->setChecked( m_contextMenuSession->isMasterMode() );
+
+ m_tabPopupTabsMenu->clear();
+ int counter=0;
+ for (TESession *ses = sessions.first(); ses; ses = sessions.next()) {
+ QString title=ses->Title();
+ m_tabPopupTabsMenu->insertItem(SmallIcon(ses->IconName()),title.replace('&',"&&"),counter++);
+ }
+
+ m_tabPopupMenu->popup( pos );
+}
+
+void Konsole::slotTabDetachSession() {
+ detachSession( m_contextMenuSession );
+}
+
+void Konsole::slotTabRenameSession() {
+ renameSession(m_contextMenuSession);
+}
+
+void Konsole::slotTabSelectColor()
+{
+ QColor color = tabwidget->tabColor( m_contextMenuSession->widget() );
+ int result = KColorDialog::getColor( color );
+
+ if ( result == KColorDialog::Accepted )
+ tabwidget->setTabColor(m_contextMenuSession->widget(), color);
+}
+
+void Konsole::slotTabToggleMonitor()
+{
+ m_contextMenuSession->setMonitorActivity( m_tabMonitorActivity->isChecked() );
+ m_contextMenuSession->setMonitorSilence( m_tabMonitorSilence->isChecked() );
+ notifySessionState( m_contextMenuSession, NOTIFYNORMAL );
+ if (m_contextMenuSession==se) {
+ monitorActivity->setChecked( m_tabMonitorActivity->isChecked() );
+ monitorSilence->setChecked( m_tabMonitorSilence->isChecked() );
+ }
+}
+
+void Konsole::slotTabToggleMasterMode()
+{
+ setMasterMode( m_tabMasterMode->isChecked(), m_contextMenuSession );
+}
+
+void Konsole::slotTabCloseSession()
+{
+ confirmCloseCurrentSession(m_contextMenuSession);
+}
+
+void Konsole::slotTabbarContextMenu(const QPoint & pos)
+{
+ if (!m_menuCreated)
+ makeGUI();
+
+ if ( m_tabbarPopupMenu ) m_tabbarPopupMenu->popup( pos );
+}
+
+void Konsole::slotTabSetViewOptions(int mode)
+{
+ m_tabViewMode = TabViewModes(mode);
+
+ for(int i = 0; i < tabwidget->count(); i++) {
+
+ QWidget *page = tabwidget->page(i);
+ QIconSet icon = iconSetForSession(sessions.at(i));
+ QString title;
+ if (b_matchTabWinTitle)
+ title = sessions.at(i)->fullTitle();
+ else
+ title = sessions.at(i)->Title();
+
+ title=title.replace('&',"&&");
+ switch(mode) {
+ case ShowIconAndText:
+ tabwidget->changeTab(page, icon, title);
+ break;
+ case ShowTextOnly:
+ tabwidget->changeTab(page, QIconSet(), title);
+ break;
+ case ShowIconOnly:
+ tabwidget->changeTab(page, icon, QString::null);
+ break;
+ }
+ }
+}
+
+void Konsole::slotToggleAutoResizeTabs()
+{
+ b_autoResizeTabs = !b_autoResizeTabs;
+
+ tabwidget->setAutomaticResizeTabs( b_autoResizeTabs );
+}
+
+void Konsole::slotTabbarToggleDynamicHide()
+{
+ b_dynamicTabHide=!b_dynamicTabHide;
+ if (b_dynamicTabHide && tabwidget->count()==1)
+ tabwidget->setTabBarHidden(true);
+ else
+ tabwidget->setTabBarHidden(false);
+}
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* Configuration */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void Konsole::slotSaveSessionsProfile()
+{
+ bool ok;
+
+ QString prof = KInputDialog::getText( i18n( "Save Sessions Profile" ),
+ i18n( "Enter name under which the profile should be saved:" ),
+ QString::null, &ok, this );
+ if ( ok ) {
+ QString path = locateLocal( "data",
+ QString::fromLatin1( "konsole/profiles/" ) + prof,
+ KGlobal::instance() );
+
+ if ( QFile::exists( path ) )
+ QFile::remove( path );
+
+ KSimpleConfig cfg( path );
+ savePropertiesInternal(&cfg,1);
+ saveMainWindowSettings(&cfg);
+ }
+}
+
+void Konsole::saveProperties(KConfig* config) {
+ uint counter=0;
+ uint active=0;
+ QString key;
+
+ if (config != KGlobal::config())
+ {
+ // called by the session manager
+ config->writeEntry("numSes",sessions.count());
+ sessions.first();
+ while(counter < sessions.count())
+ {
+ key = QString("Title%1").arg(counter);
+
+ config->writeEntry(key, sessions.current()->Title());
+ key = QString("Schema%1").arg(counter);
+ config->writeEntry(key, colors->find( sessions.current()->schemaNo() )->relPath());
+ key = QString("Encoding%1").arg(counter);
+ config->writeEntry(key, sessions.current()->encodingNo());
+ key = QString("Args%1").arg(counter);
+ config->writeEntry(key, sessions.current()->getArgs());
+ key = QString("Pgm%1").arg(counter);
+ config->writeEntry(key, sessions.current()->getPgm());
+ key = QString("SessionFont%1").arg(counter);
+ config->writeEntry(key, (sessions.current()->widget())->getVTFont());
+ key = QString("Term%1").arg(counter);
+ config->writeEntry(key, sessions.current()->Term());
+ key = QString("KeyTab%1").arg(counter);
+ config->writeEntry(key, sessions.current()->keymap());
+ key = QString("Icon%1").arg(counter);
+ config->writeEntry(key, sessions.current()->IconName());
+ key = QString("MonitorActivity%1").arg(counter);
+ config->writeEntry(key, sessions.current()->isMonitorActivity());
+ key = QString("MonitorSilence%1").arg(counter);
+ config->writeEntry(key, sessions.current()->isMonitorSilence());
+ key = QString("MasterMode%1").arg(counter);
+ config->writeEntry(key, sessions.current()->isMasterMode());
+ key = QString("TabColor%1").arg(counter);
+ config->writeEntry(key, tabwidget->tabColor((sessions.current())->widget()));
+ key = QString("History%1").arg(counter);
+ config->writeEntry(key, sessions.current()->history().getSize());
+ key = QString("HistoryEnabled%1").arg(counter);
+ config->writeEntry(key, sessions.current()->history().isOn());
+
+ QString cwd=sessions.current()->getCwd();
+ if (cwd.isEmpty())
+ cwd=sessions.current()->getInitial_cwd();
+ key = QString("Cwd%1").arg(counter);
+ config->writePathEntry(key, cwd);
+
+ if (sessions.current()==se)
+ active=counter;
+ sessions.next();
+ counter++;
+ }
+ }
+ else
+ {
+ config->setDesktopGroup();
+ config->writeEntry("TabColor", tabwidget->tabColor(se->widget()));
+ }
+ config->writeEntry("Fullscreen",b_fullscreen);
+ config->writeEntry("defaultfont", (se->widget())->getVTFont());
+ s_kconfigSchema = colors->find( se->schemaNo() )->relPath();
+ config->writeEntry("schema",s_kconfigSchema);
+ config->writeEntry("scrollbar",n_scroll);
+ config->writeEntry("tabbar",n_tabbar);
+ config->writeEntry("bellmode",n_bell);
+ config->writeEntry("keytab",KeyTrans::find(n_defaultKeytab)->id());
+ config->writeEntry("ActiveSession", active);
+ config->writeEntry("DefaultSession", m_defaultSessionFilename);
+ config->writeEntry("TabViewMode", int(m_tabViewMode));
+ config->writeEntry("DynamicTabHide", b_dynamicTabHide);
+ config->writeEntry("AutoResizeTabs", b_autoResizeTabs);
+
+ if (selectSetEncoding)
+ {
+ QString encoding = KGlobal::charsets()->encodingForName(selectSetEncoding->currentText());
+ config->writeEntry("EncodingName", encoding);
+ } else { // This will not always work (ie 'winsami' saves as 'ws2')
+ if (se) config->writeEntry("EncodingName", se->encoding());
+ }
+
+ if (se) {
+ config->writeEntry("history", se->history().getSize());
+ config->writeEntry("historyenabled", b_histEnabled);
+ }
+
+ config->writeEntry("class",name());
+ if (config != KGlobal::config())
+ {
+ saveMainWindowSettings(config);
+ }
+
+ if (!s_workDir.isEmpty())
+ config->writePathEntry("workdir", s_workDir);
+
+ // Set the new default font
+ defaultFont = se->widget()->getVTFont();
+}
+
+
+// Called by constructor (with config = KGlobal::config())
+// and by session-management (with config = sessionconfig).
+// So it has to apply the settings when reading them.
+void Konsole::readProperties(KConfig* config)
+{
+ readProperties(config, QString::null, false);
+}
+
+// If --type option was given, load the corresponding schema instead of
+// default
+//
+// When globalConfigOnly is true only the options that are shared among all
+// konsoles are being read.
+void Konsole::readProperties(KConfig* config, const QString &schema, bool globalConfigOnly)
+{
+
+ if (config==KGlobal::config())
+ {
+ config->setDesktopGroup();
+ b_warnQuit=config->readBoolEntry( "WarnQuit", true );
+ b_allowResize=config->readBoolEntry( "AllowResize", false);
+ b_bidiEnabled = config->readBoolEntry("EnableBidi",false);
+ s_word_seps= config->readEntry("wordseps",":@-./_~");
+ b_framevis = config->readBoolEntry("has frame",true);
+ QPtrList<TEWidget> tes = activeTEs();
+ for (TEWidget *_te = tes.first(); _te; _te = tes.next()) {
+ _te->setWordCharacters(s_word_seps);
+ _te->setTerminalSizeHint( config->readBoolEntry("TerminalSizeHint",false) );
+ _te->setFrameStyle( b_framevis?(QFrame::WinPanel|QFrame::Sunken):QFrame::NoFrame );
+ _te->setBlinkingCursor(config->readBoolEntry("BlinkingCursor",false));
+ _te->setCtrlDrag(config->readBoolEntry("CtrlDrag",true));
+ _te->setCutToBeginningOfLine(config->readBoolEntry("CutToBeginningOfLine",false));
+ _te->setLineSpacing( config->readUnsignedNumEntry( "LineSpacing", 0 ) );
+ _te->setBidiEnabled(b_bidiEnabled);
+ }
+
+ monitorSilenceSeconds=config->readUnsignedNumEntry("SilenceSeconds", 10);
+ for (TESession *ses = sessions.first(); ses; ses = sessions.next())
+ ses->setMonitorSilenceSeconds(monitorSilenceSeconds);
+
+ b_xonXoff = config->readBoolEntry("XonXoff",false);
+ b_matchTabWinTitle = config->readBoolEntry("MatchTabWinTitle",false);
+ config->setGroup("UTMP");
+ b_addToUtmp = config->readBoolEntry("AddToUtmp",true);
+ config->setDesktopGroup();
+
+ // Do not set a default value; this allows the System-wide Scheme
+ // to set the tab text color.
+ m_tabColor = config->readColorEntry("TabColor");
+ }
+
+ if (!globalConfigOnly)
+ {
+ n_defaultKeytab=KeyTrans::find(config->readEntry("keytab","default"))->numb(); // act. the keytab for this session
+ b_fullscreen = config->readBoolEntry("Fullscreen",false);
+ n_scroll = QMIN(config->readUnsignedNumEntry("scrollbar",TEWidget::SCRRIGHT),2);
+ n_tabbar = QMIN(config->readUnsignedNumEntry("tabbar",TabBottom),2);
+ n_bell = QMIN(config->readUnsignedNumEntry("bellmode",TEWidget::BELLSYSTEM),3);
+
+ // Options that should be applied to all sessions /////////////
+
+ // (1) set menu items and Konsole members
+
+ QFont tmpFont = KGlobalSettings::fixedFont();
+ defaultFont = config->readFontEntry("defaultfont", &tmpFont);
+
+ //set the schema
+ s_kconfigSchema=config->readEntry("schema");
+ ColorSchema* sch = colors->find(schema.isEmpty() ? s_kconfigSchema : schema);
+ if (!sch)
+ {
+ sch = (ColorSchema*)colors->at(0); //the default one
+ kdWarning() << "Could not find schema named " <<s_kconfigSchema<<"; using "<<sch->relPath()<<endl;
+ s_kconfigSchema = sch->relPath();
+ }
+ if (sch->hasSchemaFileChanged()) sch->rereadSchemaFile();
+ s_schema = sch->relPath();
+ curr_schema = sch->numb();
+ pmPath = sch->imagePath();
+
+ if (te) {
+ if (sch->useTransparency())
+ {
+ if (!rootxpms[te])
+ rootxpms.insert( te, new KRootPixmap(te) );
+ rootxpms[te]->setFadeEffect(sch->tr_x(), QColor(sch->tr_r(), sch->tr_g(), sch->tr_b()));
+ }
+ else
+ {
+ if (rootxpms[te]) {
+ delete rootxpms[te];
+ rootxpms.remove(te);
+ }
+ pixmap_menu_activated(sch->alignment());
+ }
+
+ te->setColorTable(sch->table()); //FIXME: set twice here to work around a bug
+ te->setColorTable(sch->table());
+ te->setScrollbarLocation(n_scroll);
+ te->setBellMode(n_bell);
+ }
+
+ // History
+ m_histSize = config->readNumEntry("history",DEFAULT_HISTORY_SIZE);
+ b_histEnabled = config->readBoolEntry("historyenabled",true);
+
+ // Tab View Mode
+ m_tabViewMode = TabViewModes(config->readNumEntry("TabViewMode", ShowIconAndText));
+ b_dynamicTabHide = config->readBoolEntry("DynamicTabHide", false);
+ b_autoResizeTabs = config->readBoolEntry("AutoResizeTabs", false);
+
+ s_encodingName = config->readEntry( "EncodingName", "" ).lower();
+
+ // The scrollbar location only needs to be changed when the given
+ // profile scrollbar entry differs from the konsolerc scrollbar entry.
+ QPtrList<TEWidget> tes = activeTEs();
+ for (TEWidget *_te = tes.first(); _te; _te = tes.next()) {
+ if (_te->getScrollbarLocation() != n_scroll)
+ _te->setScrollbarLocation(n_scroll);
+ }
+ }
+
+ if (m_menuCreated)
+ {
+ applySettingsToGUI();
+ activateSession();
+ };
+}
+
+void Konsole::applySettingsToGUI()
+{
+ if (!m_menuCreated) return;
+ if (m_options)
+ {
+// setFont();
+ notifySize(te->Columns(), te->Lines());
+ selectTabbar->setCurrentItem(n_tabbar);
+ showMenubar->setChecked(!menuBar()->isHidden());
+ selectScrollbar->setCurrentItem(n_scroll);
+ selectBell->setCurrentItem(n_bell);
+ selectSetEncoding->setCurrentItem( se->encodingNo() );
+ updateRMBMenu();
+ }
+ updateKeytabMenu();
+ tabwidget->setAutomaticResizeTabs( b_autoResizeTabs );
+}
+
+
+/* ------------------------------------------------------------------------- */
+/* */
+/* */
+/* ------------------------------------------------------------------------- */
+
+void Konsole::bookmarks_menu_check()
+{
+ bool state = false;
+ if ( se )
+ state = !(se->getCwd().isEmpty());
+
+ KAction *addBookmark = actionCollection()->action( "add_bookmark" );
+ if ( !addBookmark )
+ {
+ return;
+ }
+ addBookmark->setEnabled( state );
+}
+
+void Konsole::pixmap_menu_activated(int item, TEWidget* tewidget)
+{
+ if (!tewidget)
+ tewidget=te;
+ if (item <= 1) pmPath = "";
+ QPixmap pm(pmPath);
+ if (pm.isNull()) {
+ pmPath = "";
+ item = 1;
+ tewidget->setBackgroundColor(tewidget->getDefaultBackColor());
+ return;
+ }
+ // FIXME: respect scrollbar (instead of te->size)
+ n_render= item;
+ switch (item)
+ {
+ case 1: // none
+ case 2: // tile
+ tewidget->setBackgroundPixmap(pm);
+ break;
+ case 3: // center
+ { QPixmap bgPixmap;
+ bgPixmap.resize(tewidget->size());
+ bgPixmap.fill(tewidget->getDefaultBackColor());
+ bitBlt( &bgPixmap, ( tewidget->size().width() - pm.width() ) / 2,
+ ( tewidget->size().height() - pm.height() ) / 2,
+ &pm, 0, 0,
+ pm.width(), pm.height() );
+
+ tewidget->setBackgroundPixmap(bgPixmap);
+ }
+ break;
+ case 4: // full
+ {
+ float sx = (float)tewidget->size().width() / pm.width();
+ float sy = (float)tewidget->size().height() / pm.height();
+ QWMatrix matrix;
+ matrix.scale( sx, sy );
+ tewidget->setBackgroundPixmap(pm.xForm( matrix ));
+ }
+ break;
+ default: // oops
+ n_render = 1;
+ }
+}
+
+void Konsole::slotSelectBell() {
+ n_bell = selectBell->currentItem();
+ te->setBellMode(n_bell);
+}
+
+void Konsole::slotSelectScrollbar() {
+ if (m_menuCreated)
+ n_scroll = selectScrollbar->currentItem();
+
+ QPtrList<TEWidget> tes = activeTEs();
+ for (TEWidget *_te = tes.first(); _te; _te = tes.next())
+ _te->setScrollbarLocation(n_scroll);
+ activateSession(); // maybe helps in bg
+}
+
+void Konsole::checkBitmapFonts()
+{
+ {
+ QFont f;
+ f.setRawName("-misc-console-medium-r-normal--16-160-72-72-c-80-iso10646-1");
+ QFontInfo fi( f );
+ if ( !fi.exactMatch() )
+ b_installBitmapFonts = true;
+ }
+ {
+ QFont f;
+ f.setRawName("-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1");
+ QFontInfo fi( f );
+ if ( !fi.exactMatch() )
+ b_installBitmapFonts = true;
+ }
+}
+
+// In KDE 3.5, Konsole only allows the user to pick a font via
+// KFontDialog. This causes problems with the bdf/pcf files
+// distributed with Konsole (console8x16 and 9x15).
+void Konsole::slotInstallBitmapFonts()
+{
+ if ( !b_installBitmapFonts )
+ return;
+
+ QStringList sl_installFonts;
+ {
+ QFont f;
+ f.setRawName("-misc-console-medium-r-normal--16-160-72-72-c-80-iso10646-1");
+ QFontInfo fi( f );
+ if ( !fi.exactMatch() )
+ sl_installFonts << "console8x16.pcf.gz";
+ }
+ {
+ QFont f;
+ f.setRawName("-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1");
+ QFontInfo fi( f );
+ if ( !fi.exactMatch() )
+ sl_installFonts << "9x15.pcf.gz";
+ }
+
+ if ( !sl_installFonts.isEmpty() )
+ {
+ if ( KMessageBox::questionYesNoList( this,
+ i18n( "If you want to use the bitmap fonts distributed with Konsole, they must be installed. After installation, you must restart Konsole to use them. Do you want to install the fonts listed below into fonts:/Personal?" ),
+ sl_installFonts,
+ i18n( "Install Bitmap Fonts?" ),
+ KGuiItem( i18n("&Install" ) ),
+ i18n("Do Not Install") ) == KMessageBox::Yes )
+ {
+ for ( QStringList::iterator it = sl_installFonts.begin();
+ it != sl_installFonts.end(); ++it )
+ {
+ QString sf = "fonts/" + *it;
+ if ( KIO::NetAccess::copy( locate( "appdata", sf ),
+ "fonts:/Personal/", 0 ) )
+ {
+ b_installBitmapFonts = false;
+ // TODO: Remove the Install from the Fonts sub-menu.
+ } else {
+ KMessageBox::error( this, i18n( "Could not install %1 into fonts:/Personal/" ).arg( *it ), i18n( "Error" ) );
+ }
+ }
+ }
+ }
+
+}
+
+void Konsole::slotSelectFont() {
+ if ( !se ) return;
+
+ QFont font = se->widget()->getVTFont();
+ if ( KFontDialog::getFont( font, true ) != QDialog::Accepted )
+ return;
+
+ se->widget()->setVTFont( font );
+// activateSession(); // activates the current
+}
+
+void Konsole::schema_menu_activated(int item)
+{
+ if (!se) return;
+ setSchema(item);
+ activateSession(); // activates the current
+}
+
+/* slot */ void Konsole::schema_menu_check()
+{
+ if (colors->checkSchemas())
+ {
+ colors->sort();
+ updateSchemaMenu();
+ }
+}
+
+void Konsole::updateSchemaMenu()
+{
+ m_schema->clear();
+ for (int i = 0; i < (int) colors->count(); i++)
+ {
+ ColorSchema* s = (ColorSchema*)colors->at(i);
+ assert( s );
+ QString title=s->title();
+ m_schema->insertItem(title.replace('&',"&&"),s->numb(),0);
+ }
+
+ if (te && se)
+ {
+ m_schema->setItemChecked(se->schemaNo(),true);
+ }
+
+}
+
+void Konsole::updateKeytabMenu()
+{
+ if (m_menuCreated)
+ {
+ m_keytab->setItemChecked(n_keytab,false);
+ m_keytab->setItemChecked(se->keymapNo(),true);
+ };
+ n_keytab = se->keymapNo();
+}
+
+void Konsole::keytab_menu_activated(int item)
+{
+ se->setKeymapNo(item);
+ n_defaultKeytab = item;
+ updateKeytabMenu();
+}
+
+/**
+ Toggle the Menubar visibility
+ */
+void Konsole::slotToggleMenubar() {
+ if ( showMenubar->isChecked() )
+ menubar->show();
+ else
+ menubar->hide();
+ if (b_fixedSize)
+ {
+ adjustSize();
+ setFixedSize(sizeHint());
+ }
+ if (!showMenubar->isChecked()) {
+ setCaption(i18n("Use the right mouse button to bring back the menu"));
+ QTimer::singleShot(5000,this,SLOT(updateTitle()));
+ }
+ updateRMBMenu();
+}
+
+void Konsole::initTEWidget(TEWidget* new_te, TEWidget* default_te)
+{
+ new_te->setWordCharacters(default_te->wordCharacters());
+ new_te->setTerminalSizeHint(default_te->isTerminalSizeHint());
+ new_te->setTerminalSizeStartup(false);
+ new_te->setFrameStyle(b_framevis?(QFrame::WinPanel|QFrame::Sunken):QFrame::NoFrame);
+ new_te->setBlinkingCursor(default_te->blinkingCursor());
+ new_te->setCtrlDrag(default_te->ctrlDrag());
+ new_te->setCutToBeginningOfLine(default_te->cutToBeginningOfLine());
+ new_te->setLineSpacing(default_te->lineSpacing());
+ new_te->setBidiEnabled(b_bidiEnabled);
+
+ new_te->setVTFont(default_te->font());
+ new_te->setScrollbarLocation(n_scroll);
+ new_te->setBellMode(default_te->bellMode());
+
+ new_te->setMinimumSize(150,70);
+}
+
+void Konsole::createSessionTab(TEWidget *widget, const QIconSet &iconSet,
+ const QString &text, int index)
+{
+ switch(m_tabViewMode) {
+ case ShowIconAndText:
+ tabwidget->insertTab(widget, iconSet, text, index);
+ break;
+ case ShowTextOnly:
+ tabwidget->insertTab(widget, QIconSet(), text, index);
+ break;
+ case ShowIconOnly:
+ tabwidget->insertTab(widget, iconSet, QString::null, index);
+ break;
+ }
+ if ( m_tabColor.isValid() )
+ tabwidget->setTabColor(widget, m_tabColor);
+}
+
+QIconSet Konsole::iconSetForSession(TESession *session) const
+{
+ if (m_tabViewMode == ShowTextOnly)
+ return QIconSet();
+ return SmallIconSet(session->isMasterMode() ? "remote" : session->IconName());
+}
+
+
+/**
+ Toggle the Tabbar visibility
+ */
+void Konsole::slotSelectTabbar() {
+ if (m_menuCreated)
+ n_tabbar = selectTabbar->currentItem();
+
+ if ( n_tabbar == TabNone ) { // Hide tabbar
+ tabwidget->setTabBarHidden( true );
+ } else {
+ if ( tabwidget->isTabBarHidden() )
+ tabwidget->setTabBarHidden( false );
+ if ( n_tabbar == TabTop )
+ tabwidget->setTabPosition( QTabWidget::Top );
+ else
+ tabwidget->setTabPosition( QTabWidget::Bottom );
+ }
+
+/* FIXME: Still necessary ? */
+ QPtrDictIterator<KRootPixmap> it(rootxpms);
+ for (;it.current();++it)
+ it.current()->repaint(true);
+
+ if (b_fixedSize)
+ {
+ adjustSize();
+ setFixedSize(sizeHint());
+ }
+}
+
+void Konsole::slotSaveSettings()
+{
+ KConfig *config = KGlobal::config();
+ config->setDesktopGroup();
+ saveProperties(config);
+ saveMainWindowSettings(config);
+ config->sync();
+}
+
+void Konsole::slotConfigureNotifications()
+{
+ KNotifyDialog::configure(this, "Notification Configuration Dialog");
+}
+
+void Konsole::slotConfigureKeys()
+{
+ KKeyDialog::configure(m_shortcuts);
+ m_shortcuts->writeShortcutSettings();
+
+ QStringList ctrlKeys;
+
+ for ( uint i = 0; i < m_shortcuts->count(); i++ )
+ {
+ KShortcut shortcut = (m_shortcuts->action( i ))->shortcut();
+ for( uint j = 0; j < shortcut.count(); j++)
+ {
+ const KKey &key = shortcut.seq(j).key(0); // First Key of KeySequence
+ if (key.modFlags() == KKey::CTRL)
+ ctrlKeys += key.toString();
+ }
+
+ // Are there any shortcuts for Session Menu entries?
+ if ( !b_sessionShortcutsEnabled &&
+ m_shortcuts->action( i )->shortcut().count() &&
+ QString(m_shortcuts->action( i )->name()).startsWith("SSC_") ) {
+ b_sessionShortcutsEnabled = true;
+ KConfigGroup group(KGlobal::config(), "General");
+ group.writeEntry("SessionShortcutsEnabled", true);
+ }
+ }
+
+ if (!ctrlKeys.isEmpty())
+ {
+ ctrlKeys.sort();
+ KMessageBox::informationList( this, i18n( "You have chosen one or more Ctrl+<key> combinations to be used as shortcuts. "
+ "As a result these key combinations will no longer be passed to the command shell "
+ "or to applications that run inside Konsole. "
+ "This can have the unintended consequence that functionality that would otherwise be "
+ "bound to these key combinations is no longer accessible."
+ "\n\n"
+ "You may wish to reconsider your choice of keys and use Alt+Ctrl+<key> or Ctrl+Shift+<key> instead."
+ "\n\n"
+ "You are currently using the following Ctrl+<key> combinations:" ),
+ ctrlKeys,
+ i18n( "Choice of Shortcut Keys" ), 0);
+ }
+}
+
+void Konsole::slotConfigure()
+{
+ QStringList args;
+ args << "kcmkonsole";
+ KApplication::kdeinitExec( "kcmshell", args );
+}
+
+void Konsole::reparseConfiguration()
+{
+ KGlobal::config()->reparseConfiguration();
+ readProperties(KGlobal::config(), QString::null, true);
+
+ // The .desktop files may have been changed by user...
+ b_sessionShortcutsMapped = false;
+
+ // Mappings may have to be changed...get a fresh mapper.
+ disconnect( sessionNumberMapper, SIGNAL( mapped( int ) ),
+ this, SLOT( newSessionTabbar( int ) ) );
+ delete sessionNumberMapper;
+ sessionNumberMapper = new QSignalMapper( this );
+ connect( sessionNumberMapper, SIGNAL( mapped( int ) ),
+ this, SLOT( newSessionTabbar( int ) ) );
+
+ sl_sessionShortCuts.clear();
+ buildSessionMenus();
+
+ // FIXME: Should be a better way to traverse KActionCollection
+ uint count = m_shortcuts->count();
+ for ( uint i = 0; i < count; i++ )
+ {
+ KAction* action = m_shortcuts->action( i );
+ bool b_foundSession = false;
+ if ( QString(action->name()).startsWith("SSC_") ) {
+ QString name = QString(action->name());
+
+ // Check to see if shortcut's session has been loaded.
+ for ( QStringList::Iterator it = sl_sessionShortCuts.begin(); it != sl_sessionShortCuts.end(); ++it ) {
+ if ( QString::compare( *it, name ) == 0 ) {
+ b_foundSession = true;
+ break;
+ }
+ }
+ if ( ! b_foundSession ) {
+ action->setShortcut( KShortcut() ); // Clear shortcut
+ m_shortcuts->writeShortcutSettings();
+ delete action; // Remove Action and Accel
+ if ( i == 0 ) i = 0; // Reset index
+ else i--;
+ count--; // = m_shortcuts->count();
+ }
+ }
+ }
+
+ m_shortcuts->readShortcutSettings();
+
+ // User may have changed Schema->Set as default schema
+ s_kconfigSchema = KGlobal::config()->readEntry("schema");
+ ColorSchema* sch = colors->find(s_kconfigSchema);
+ if (!sch)
+ {
+ sch = (ColorSchema*)colors->at(0); //the default one
+ kdWarning() << "Could not find schema named " <<s_kconfigSchema<<"; using "<<sch->relPath()<<endl;
+ s_kconfigSchema = sch->relPath();
+ }
+ if (sch->hasSchemaFileChanged()) sch->rereadSchemaFile();
+ s_schema = sch->relPath();
+ curr_schema = sch->numb();
+ pmPath = sch->imagePath();
+
+ for (TESession *_se = sessions.first(); _se; _se = sessions.next()) {
+ ColorSchema* s = colors->find( _se->schemaNo() );
+ if (s) {
+ if (s->hasSchemaFileChanged())
+ s->rereadSchemaFile();
+ setSchema(s,_se->widget());
+ }
+ }
+}
+
+// Called via emulation via session
+void Konsole::changeTabTextColor( TESession* ses, int rgb )
+{
+ if ( !ses ) return;
+ QColor color;
+ color.setRgb( rgb );
+ if ( !color.isValid() ) {
+ kdWarning()<<" Invalid RGB color "<<rgb<<endl;
+ return;
+ }
+ tabwidget->setTabColor( ses->widget(), color );
+}
+
+// Called from emulation
+void Konsole::changeColLin(int columns, int lines)
+{
+ if (b_allowResize && !b_fixedSize) {
+ setColLin(columns, lines);
+ te->update();
+ }
+}
+
+// Called from emulation
+void Konsole::changeColumns(int columns)
+{
+ if (b_allowResize) {
+ setColLin(columns,te->Lines());
+ te->update();
+ }
+}
+
+void Konsole::slotSelectSize() {
+ int item = selectSize->currentItem();
+ if (b_fullscreen)
+ setFullScreen( false );
+
+ switch (item) {
+ case 0: setColLin(40,15); break;
+ case 1: setColLin(80,24); break;
+ case 2: setColLin(80,25); break;
+ case 3: setColLin(80,40); break;
+ case 4: setColLin(80,52); break;
+ case 6: SizeDialog dlg(te->Columns(), te->Lines(), this);
+ if (dlg.exec())
+ setColLin(dlg.columns(),dlg.lines());
+ break;
+ }
+}
+
+void Konsole::notifySize(int columns, int lines)
+{
+ if (selectSize)
+ {
+ selectSize->blockSignals(true);
+ selectSize->setCurrentItem(-1);
+ if (columns==40&&lines==15)
+ selectSize->setCurrentItem(0);
+ else if (columns==80&&lines==24)
+ selectSize->setCurrentItem(1);
+ else if (columns==80&&lines==25)
+ selectSize->setCurrentItem(2);
+ else if (columns==80&&lines==40)
+ selectSize->setCurrentItem(3);
+ else if (columns==80&&lines==52)
+ selectSize->setCurrentItem(4);
+ else
+ selectSize->setCurrentItem(5);
+ selectSize->blockSignals(false);
+ }
+
+ if (n_render >= 3) pixmap_menu_activated(n_render);
+}
+
+void Konsole::updateTitle(TESession* _se)
+{
+ if ( !_se )
+ _se = se;
+
+ if (_se == se)
+ {
+ setCaption( _se->fullTitle() );
+ setIconText( _se->IconText() );
+ }
+ tabwidget->setTabIconSet(_se->widget(), iconSetForSession(_se));
+ QString icon = _se->IconName();
+ KRadioAction *ra = session2action.find(_se);
+ if (ra && (ra->icon() != icon))
+ ra->setIcon(icon);
+ if (m_tabViewMode == ShowIconOnly)
+ tabwidget->changeTab( _se->widget(), QString::null );
+ else if (b_matchTabWinTitle)
+ tabwidget->setTabLabel( _se->widget(), _se->fullTitle().replace('&',"&&"));
+}
+
+void Konsole::initSessionFont(QFont font) {
+ te->setVTFont( font );
+}
+
+void Konsole::initSessionKeyTab(const QString &keyTab) {
+ se->setKeymap(keyTab);
+ updateKeytabMenu();
+}
+
+void Konsole::initFullScreen()
+{
+ //This function is to be called from main.C to initialize the state of the Konsole (fullscreen or not). It doesn't appear to work
+ //from inside the Konsole constructor
+ if (b_fullscreen) {
+ setColLin(0,0);
+ }
+ setFullScreen(b_fullscreen);
+}
+
+void Konsole::toggleFullScreen()
+{
+ setFullScreen(!b_fullscreen);
+}
+
+bool Konsole::fullScreen()
+{
+ return b_fullscreen;
+}
+
+void Konsole::setFullScreen(bool on)
+{
+ if( on )
+ showFullScreen();
+ else {
+ if( isFullScreen()) // showNormal() may also do unminimize, unmaximize etc. :(
+ showNormal();
+ }
+}
+
+// don't call this directly
+void Konsole::updateFullScreen( bool on )
+{
+ b_fullscreen = on;
+ if( on )
+ showFullScreen();
+ else {
+ if( isFullScreen()) // showNormal() may also do unminimize, unmaximize etc. :(
+ showNormal();
+ updateTitle(); // restore caption of window
+ }
+ updateRMBMenu();
+ te->setFrameStyle( b_framevis && !b_fullscreen ?(QFrame::WinPanel|QFrame::Sunken):QFrame::NoFrame );
+}
+
+/* --| sessions |------------------------------------------------------------ */
+
+//FIXME: activating sessions creates a lot flicker in the moment.
+// it comes from setting the attributes of a session individually.
+// ONE setImage call should actually be enough to match all cases.
+// These can be quite different:
+// - The screen size might have changed while the session was
+// detached. A propagation of the resize should in this case
+// make the drawEvent.
+// - font, background image and color palette should be set in one go.
+
+void Konsole::disableMasterModeConnections()
+{
+ QPtrListIterator<TESession> from_it(sessions);
+ for (; from_it.current(); ++from_it) {
+ TESession *from = from_it.current();
+ if (from->isMasterMode()) {
+ QPtrListIterator<TESession> to_it(sessions);
+ for (; to_it.current(); ++to_it) {
+ TESession *to = to_it.current();
+ if (to!=from)
+ disconnect(from->widget(),SIGNAL(keyPressedSignal(QKeyEvent*)),
+ to->getEmulation(),SLOT(onKeyPress(QKeyEvent*)));
+ }
+ }
+ }
+}
+
+void Konsole::enableMasterModeConnections()
+{
+ QPtrListIterator<TESession> from_it(sessions);
+ for (; from_it.current(); ++from_it) {
+ TESession *from = from_it.current();
+ if (from->isMasterMode()) {
+ QPtrListIterator<TESession> to_it(sessions);
+ for (; to_it.current(); ++to_it) {
+ TESession *to = to_it.current();
+ if (to!=from) {
+ connect(from->widget(),SIGNAL(keyPressedSignal(QKeyEvent*)),
+ to->getEmulation(),SLOT(onKeyPress(QKeyEvent*)));
+ }
+ }
+ }
+ from->setListenToKeyPress(true);
+ }
+}
+
+void Konsole::feedAllSessions(const QString &text)
+{
+ if (!te) return;
+ bool oldMasterMode = se->isMasterMode();
+ setMasterMode(true);
+ te->emitText(text);
+ if (!oldMasterMode)
+ setMasterMode(false);
+}
+
+void Konsole::sendAllSessions(const QString &text)
+{
+ QString newtext=text;
+ newtext.append("\r");
+ feedAllSessions(newtext);
+}
+
+KURL Konsole::baseURL() const
+{
+ KURL url;
+ url.setPath(se->getCwd()+"/");
+ return url;
+}
+
+void Konsole::enterURL(const QString& URL, const QString&)
+{
+ QString path, login, host, newtext;
+
+ if (URL.startsWith("file:")) {
+ KURL uglyurl(URL);
+ newtext=uglyurl.path();
+ KRun::shellQuote(newtext);
+ te->emitText("cd "+newtext+"\r");
+ }
+ else if (URL.contains("://", true)) {
+ KURL u(URL);
+ newtext = u.protocol();
+ bool isSSH = (newtext == "ssh");
+ if (u.port() && isSSH)
+ newtext += " -p " + QString().setNum(u.port());
+ if (u.hasUser())
+ newtext += " -l " + u.user();
+
+ /*
+ * If we have a host, connect.
+ */
+ if (u.hasHost()) {
+ newtext = newtext + " " + u.host();
+ if (u.port() && !isSSH)
+ newtext += QString(" %1").arg(u.port());
+ se->setUserTitle(31,""); // we don't know remote cwd
+ te->emitText(newtext + "\r");
+ }
+ }
+ else
+ te->emitText(URL);
+}
+
+void Konsole::slotClearTerminal()
+{
+ if (se) {
+ se->getEmulation()->clearEntireScreen();
+ se->getEmulation()->clearSelection();
+ }
+}
+
+void Konsole::slotResetClearTerminal()
+{
+ if (se) {
+ se->getEmulation()->reset();
+ se->getEmulation()->clearSelection();
+ }
+}
+
+void Konsole::sendSignal(int sn)
+{
+ if (se) se->sendSignal(sn);
+}
+
+void Konsole::runSession(TESession* s)
+{
+ KRadioAction *ra = session2action.find(s);
+ ra->setChecked(true);
+ activateSession(s);
+
+ // give some time to get through the
+ // resize events before starting up.
+ QTimer::singleShot(100,s,SLOT(run()));
+}
+
+void Konsole::addSession(TESession* s)
+{
+ QString newTitle = s->Title();
+
+ bool nameOk;
+ int count = 1;
+ do {
+ nameOk = true;
+ for (TESession *ses = sessions.first(); ses; ses = sessions.next())
+ {
+ if (newTitle == ses->Title())
+ {
+ nameOk = false;
+ break;
+ }
+ }
+ if (!nameOk)
+ {
+ count++;
+ newTitle = i18n("abbreviation of number","%1 No. %2").arg(s->Title()).arg(count);
+ }
+ }
+ while (!nameOk);
+
+ s->setTitle(newTitle);
+
+ // create an action for the session
+ KRadioAction *ra = new KRadioAction(newTitle.replace('&',"&&"),
+ s->IconName(),
+ 0,
+ this,
+ SLOT(activateSession()),
+ m_shortcuts);
+ ra->setExclusiveGroup("sessions");
+ ra->setChecked(true);
+
+ action2session.insert(ra, s);
+ session2action.insert(s,ra);
+ sessions.append(s);
+ if (sessions.count()>1) {
+ if (!m_menuCreated)
+ makeGUI();
+ m_detachSession->setEnabled(true);
+ }
+
+ if (m_menuCreated)
+ ra->plug(m_view);
+
+ createSessionTab(te, SmallIconSet(s->IconName()), newTitle);
+ setSchema(s->schemaNo());
+ tabwidget->setCurrentPage(tabwidget->count()-1);
+ disableMasterModeConnections(); // no duplicate connections, remove old
+ enableMasterModeConnections();
+ if( m_removeSessionButton )
+ m_removeSessionButton->setEnabled(tabwidget->count()>1);
+}
+
+QString Konsole::currentSession()
+{
+ return se->SessionId();
+}
+
+QString Konsole::sessionId(const int position)
+{
+ if (position<=0 || position>(int)sessions.count())
+ return "";
+
+ return sessions.at(position-1)->SessionId();
+}
+
+void Konsole::listSessions()
+{
+ int counter=0;
+ m_sessionList->clear();
+ m_sessionList->insertTitle(i18n("Session List"));
+ m_sessionList->setKeyboardShortcutsEnabled(true);
+ for (TESession *ses = sessions.first(); ses; ses = sessions.next()) {
+ QString title=ses->Title();
+ m_sessionList->insertItem(SmallIcon(ses->IconName()),title.replace('&',"&&"),counter++);
+ }
+ m_sessionList->adjustSize();
+ m_sessionList->popup(mapToGlobal(QPoint((width()/2)-(m_sessionList->width()/2),(height()/2)-(m_sessionList->height()/2))));
+}
+
+void Konsole::switchToSession()
+{
+ activateSession( QString( sender()->name() ).right( 2 ).toInt() -1 );
+}
+
+void Konsole::activateSession(int position)
+{
+ if (position<0 || position>=(int)sessions.count())
+ return;
+ activateSession( sessions.at(position) );
+}
+
+void Konsole::activateSession(QWidget* w)
+{
+ activateSession(tabwidget->indexOf(w));
+ w->setFocus();
+}
+
+void Konsole::activateSession(const QString &sessionId)
+{
+ TESession* activate=NULL;
+
+ sessions.first();
+ while(sessions.current())
+ {
+ if (sessions.current()->SessionId()==sessionId)
+ activate=sessions.current();
+ sessions.next();
+ }
+
+ if (activate)
+ activateSession( activate );
+}
+
+/**
+ Activates a session from the menu
+ */
+void Konsole::activateSession()
+{
+ TESession* s = NULL;
+ // finds the session based on which button was activated
+ QPtrDictIterator<TESession> it( action2session ); // iterator for dict
+ while ( it.current() )
+ {
+ KRadioAction *ra = (KRadioAction*)it.currentKey();
+ if (ra->isChecked()) { s = it.current(); break; }
+ ++it;
+ }
+ if (s!=NULL) activateSession(s);
+}
+
+void Konsole::activateSession(TESession *s)
+{
+ if (se)
+ {
+ se->setConnect(false);
+ se->setListenToKeyPress(true);
+ notifySessionState(se,NOTIFYNORMAL);
+ // Delete the session if isn't in the session list any longer.
+ if (sessions.find(se) == -1)
+ delete se;
+ }
+ if (se != s)
+ se_previous = se;
+ se = s;
+
+ // Set the required schema variables for the current session
+ ColorSchema* cs = colors->find( se->schemaNo() );
+ if (!cs)
+ cs = (ColorSchema*)colors->at(0); //the default one
+ s_schema = cs->relPath();
+ curr_schema = cs->numb();
+ pmPath = cs->imagePath();
+ n_render = cs->alignment();
+
+// BR 106464 temporary fix...
+// only 2 sessions opened, 2nd session viewable, right-click on 1st tab and
+// select 'Detach', close original Konsole window... crash
+// s is not set properly on original Konsole window
+ KRadioAction *ra = session2action.find(se);
+ if (!ra) {
+ se=sessions.first(); // Get new/correct TESession
+ ra = session2action.find(se);
+ }
+ ra->setChecked(true);
+
+ QTimer::singleShot(1,this,SLOT(allowPrevNext())); // hack, hack, hack
+
+ tabwidget->showPage( se->widget() );
+ te = se->widget();
+ if (m_menuCreated) {
+ if (selectBell) selectBell->setCurrentItem(te->bellMode());
+ updateSchemaMenu();
+ }
+
+ if (rootxpms[te])
+ rootxpms[te]->start();
+ notifySize(te->Columns(), te->Lines()); // set menu items
+ se->setConnect(true);
+ updateTitle();
+ if (!m_menuCreated)
+ return;
+
+ if (selectSetEncoding) selectSetEncoding->setCurrentItem(se->encodingNo());
+ updateKeytabMenu(); // act. the keytab for this session
+ if (m_clearHistory) m_clearHistory->setEnabled( se->history().isOn() );
+ if (m_findHistory) m_findHistory->setEnabled( se->history().isOn() );
+ if (m_findNext) m_findNext->setEnabled( se->history().isOn() );
+ if (m_findPrevious) m_findPrevious->setEnabled( se->history().isOn() );
+ se->getEmulation()->findTextBegin();
+ if (m_saveHistory) m_saveHistory->setEnabled( se->history().isOn() );
+ if (monitorActivity) monitorActivity->setChecked( se->isMonitorActivity() );
+ if (monitorSilence) monitorSilence->setChecked( se->isMonitorSilence() );
+ masterMode->setChecked( se->isMasterMode() );
+ sessions.find(se);
+ uint position=sessions.at();
+ if (m_moveSessionLeft) m_moveSessionLeft->setEnabled(position>0);
+ if (m_moveSessionRight) m_moveSessionRight->setEnabled(position<sessions.count()-1);
+}
+
+void Konsole::slotUpdateSessionConfig(TESession *session)
+{
+ if (session == se)
+ activateSession(se);
+}
+
+void Konsole::slotResizeSession(TESession *session, QSize size)
+{
+ TESession *oldSession = se;
+ if (se != session)
+ activateSession(session);
+ setColLin(size.width(), size.height());
+ activateSession(oldSession);
+}
+
+// Called by newSession and DCOP function below
+void Konsole::setSessionEncoding( const QString &encoding, TESession *session )
+{
+ if ( encoding.isEmpty() )
+ return;
+
+ if ( !session )
+ session = se;
+
+ bool found = false;
+ QString enc = KGlobal::charsets()->encodingForName(encoding);
+ QTextCodec * qtc = KGlobal::charsets()->codecForName(enc, found);
+ if ( !found || !qtc )
+ return;
+
+ // Encoding was found; now try to figure out which Encoding menu item
+ // it corresponds to.
+ int i = 0;
+ bool found_encoding = false;
+ QStringList encodingNames = KGlobal::charsets()->descriptiveEncodingNames();
+ QStringList::ConstIterator it = encodingNames.begin();
+ QString t_encoding = encoding.lower();
+
+ while ( it != encodingNames.end() && !found_encoding )
+ {
+ if ( QString::compare( KGlobal::charsets()->encodingForName(*it),
+ t_encoding ) == 0 ) {
+ found_encoding = true;
+ }
+ i++; it++;
+ }
+
+ // BR114535 : Remove jis7 due to infinite loop.
+ if ( enc == "jis7" ) {
+ kdWarning()<<"Encoding Japanese (jis7) currently does not work! BR114535"<<endl;
+ return;
+ }
+
+ if ( found_encoding )
+ {
+ session->setEncodingNo( i );
+ session->getEmulation()->setCodec(qtc);
+ if (se == session)
+ activateSession(se);
+ }
+}
+
+// Called via DCOP only
+void Konsole::slotSetSessionEncoding(TESession *session, const QString &encoding)
+{
+ setSessionEncoding( encoding, session );
+}
+
+void Konsole::slotGetSessionSchema(TESession *session, QString &schema)
+{
+ int no = session->schemaNo();
+ ColorSchema* s = colors->find( no );
+ schema = s->relPath();
+}
+
+void Konsole::slotSetSessionSchema(TESession *session, const QString &schema)
+{
+ ColorSchema* s = colors->find( schema );
+ setSchema(s, session->widget());
+}
+
+void Konsole::allowPrevNext()
+{
+ if (!se) return;
+ notifySessionState(se,NOTIFYNORMAL);
+}
+
+KSimpleConfig *Konsole::defaultSession()
+{
+ if (!m_defaultSession) {
+ KConfig * config = KGlobal::config();
+ config->setDesktopGroup();
+ setDefaultSession(config->readEntry("DefaultSession","shell.desktop"));
+ }
+ return m_defaultSession;
+}
+
+void Konsole::setDefaultSession(const QString &filename)
+{
+ delete m_defaultSession;
+ m_defaultSession = new KSimpleConfig(locate("appdata", filename), true /* read only */);
+ m_defaultSession->setDesktopGroup();
+ b_showstartuptip = m_defaultSession->readBoolEntry("Tips", true);
+
+ m_defaultSessionFilename=filename;
+}
+
+void Konsole::newSession(const QString &pgm, const QStrList &args, const QString &term, const QString &icon, const QString &title, const QString &cwd)
+{
+ KSimpleConfig *co = defaultSession();
+ newSession(co, pgm, args, term, icon, title, cwd);
+}
+
+QString Konsole::newSession()
+{
+ KSimpleConfig *co = defaultSession();
+ return newSession(co, QString::null, QStrList());
+}
+
+void Konsole::newSession(int i)
+{
+ if (i == SESSION_NEW_WINDOW_ID)
+ {
+ // TODO: "type" isn't passed properly
+ Konsole* konsole = new Konsole(name(), b_histEnabled, !menubar->isHidden(), n_tabbar != TabNone, b_framevis,
+ n_scroll != TEWidget::SCRNONE, 0, false, 0);
+ konsole->newSession();
+ konsole->enableFullScripting(b_fullScripting);
+ konsole->enableFixedSize(b_fixedSize);
+ konsole->setColLin(0,0); // Use defaults
+ konsole->initFullScreen();
+ konsole->show();
+ return;
+ }
+
+ KSimpleConfig* co = no2command.find(i);
+ if (co) {
+ newSession(co);
+ resetScreenSessions();
+ }
+}
+
+void Konsole::newSessionTabbar(int i)
+{
+ if (i == SESSION_NEW_WINDOW_ID)
+ {
+ // TODO: "type" isn't passed properly
+ Konsole* konsole = new Konsole(name(), b_histEnabled, !menubar->isHidden(), n_tabbar != TabNone, b_framevis,
+ n_scroll != TEWidget::SCRNONE, 0, false, 0);
+ konsole->newSession();
+ konsole->enableFullScripting(b_fullScripting);
+ konsole->enableFixedSize(b_fixedSize);
+ konsole->setColLin(0,0); // Use defaults
+ konsole->initFullScreen();
+ konsole->show();
+ return;
+ }
+
+ KSimpleConfig* co = no2command.find(i);
+ if (co) {
+ newSession(co);
+ resetScreenSessions();
+ }
+}
+
+QString Konsole::newSession(const QString &type)
+{
+ KSimpleConfig *co;
+ if (type.isEmpty())
+ co = defaultSession();
+ else
+ co = new KSimpleConfig(locate("appdata", type + ".desktop"), true /* read only */);
+ return newSession(co);
+}
+
+QString Konsole::newSession(KSimpleConfig *co, QString program, const QStrList &args,
+ const QString &_term,const QString &_icon,
+ const QString &_title, const QString &_cwd)
+{
+ QString emu = "xterm";
+ QString icon = "konsole";
+ QString key;
+ QString sch = s_kconfigSchema;
+ QString txt;
+ QString cwd;
+ QFont font = defaultFont;
+ QStrList cmdArgs;
+
+ if (co) {
+ co->setDesktopGroup();
+ emu = co->readEntry("Term", emu);
+ key = co->readEntry("KeyTab", key);
+ sch = co->readEntry("Schema", sch);
+ txt = co->readEntry("Name");
+ font = co->readFontEntry("SessionFont", &font);
+ icon = co->readEntry("Icon", icon);
+ cwd = co->readPathEntry("Cwd");
+ }
+
+ if (!_term.isEmpty())
+ emu = _term;
+
+ if (!_icon.isEmpty())
+ icon = _icon;
+
+ if (!_title.isEmpty())
+ txt = _title;
+
+ // apply workdir only when the session config does not have a directory
+ if (cwd.isEmpty())
+ cwd = s_workDir;
+ // bookmarks take precedence over workdir
+ // however, --workdir option has precedence in the very first session
+ if (!_cwd.isEmpty())
+ cwd = _cwd;
+
+ if (!program.isEmpty()) {
+ cmdArgs = args;
+ }
+ else {
+ program = QFile::decodeName(konsole_shell(cmdArgs));
+
+ if (co) {
+ co->setDesktopGroup();
+ QString cmd = co->readPathEntry("Exec");
+ if (!cmd.isEmpty()) {
+ cmdArgs.append("-c");
+ cmdArgs.append(QFile::encodeName(cmd));
+ }
+ }
+ }
+
+ ColorSchema* schema = colors->find(sch);
+ if (!schema)
+ schema=(ColorSchema*)colors->at(0); //the default one
+ int schmno = schema->numb();
+
+ if (sessions.count()==1 && n_tabbar!=TabNone)
+ tabwidget->setTabBarHidden( false );
+
+ TEWidget* te_old = te;
+ te=new TEWidget(tabwidget);
+
+ connect( te, SIGNAL(configureRequest(TEWidget*, int, int, int)),
+ this, SLOT(configureRequest(TEWidget*,int,int,int)) );
+ if (te_old) {
+ initTEWidget(te, te_old);
+ }
+ else {
+ readProperties(KGlobal::config(), "", true);
+ te->setVTFont(font);
+ te->setScrollbarLocation(n_scroll);
+ te->setBellMode(n_bell);
+ }
+
+ te->setMinimumSize(150,70);
+
+ QString sessionId="session-"+QString::number(++sessionIdCounter);
+ TESession* s = new TESession(te, emu,winId(),sessionId,cwd);
+ s->setProgram(QFile::encodeName(program),cmdArgs);
+ s->setMonitorSilenceSeconds(monitorSilenceSeconds);
+ s->enableFullScripting(b_fullScripting);
+ // If you add any new signal-slot connection below, think about doing it in konsolePart too
+ connect( s,SIGNAL(done(TESession*)),
+ this,SLOT(doneSession(TESession*)) );
+ connect( s, SIGNAL( updateTitle(TESession*) ),
+ this, SLOT( updateTitle(TESession*) ) );
+ connect( s, SIGNAL( notifySessionState(TESession*, int) ),
+ this, SLOT( notifySessionState(TESession*, int)) );
+ connect( s, SIGNAL(disableMasterModeConnections()),
+ this, SLOT(disableMasterModeConnections()) );
+ connect( s, SIGNAL(enableMasterModeConnections()),
+ this, SLOT(enableMasterModeConnections()) );
+ connect( s, SIGNAL(renameSession(TESession*,const QString&)),
+ this, SLOT(slotRenameSession(TESession*, const QString&)) );
+ connect( s->getEmulation(), SIGNAL(changeColumns(int)),
+ this, SLOT(changeColumns(int)) );
+ connect( s->getEmulation(), SIGNAL(changeColLin(int,int)),
+ this, SLOT(changeColLin(int,int)) );
+ connect( s->getEmulation(), SIGNAL(ImageSizeChanged(int,int)),
+ this, SLOT(notifySize(int,int)));
+ connect( s, SIGNAL(zmodemDetected(TESession*)),
+ this, SLOT(slotZModemDetected(TESession*)));
+ connect( s, SIGNAL(updateSessionConfig(TESession*)),
+ this, SLOT(slotUpdateSessionConfig(TESession*)));
+ connect( s, SIGNAL(resizeSession(TESession*, QSize)),
+ this, SLOT(slotResizeSession(TESession*, QSize)));
+ connect( s, SIGNAL(setSessionEncoding(TESession*, const QString &)),
+ this, SLOT(slotSetSessionEncoding(TESession*, const QString &)));
+ connect( s, SIGNAL(getSessionSchema(TESession*, QString &)),
+ this, SLOT(slotGetSessionSchema(TESession*, QString &)));
+ connect( s, SIGNAL(setSessionSchema(TESession*, const QString &)),
+ this, SLOT(slotSetSessionSchema(TESession*, const QString &)));
+ connect( s, SIGNAL(changeTabTextColor(TESession*, int)),
+ this,SLOT(changeTabTextColor(TESession*, int)) );
+
+ s->widget()->setVTFont(defaultFont);// Hack to set font again after newSession
+ s->setSchemaNo(schmno);
+ if (key.isEmpty())
+ s->setKeymapNo(n_defaultKeytab);
+ else {
+ // TODO: Fixes BR77018, see BR83000.
+ if (key.endsWith(".keytab"))
+ key.remove(".keytab");
+ s->setKeymap(key);
+ }
+
+ s->setTitle(txt);
+ s->setIconName(icon);
+ s->setAddToUtmp(b_addToUtmp);
+ s->setXonXoff(b_xonXoff);
+
+ if (b_histEnabled && m_histSize)
+ s->setHistory(HistoryTypeBuffer(m_histSize));
+ else if (b_histEnabled && !m_histSize)
+ s->setHistory(HistoryTypeFile());
+ else
+ s->setHistory(HistoryTypeNone());
+
+ setSessionEncoding( s_encodingName, s );
+
+ addSession(s);
+ runSession(s); // activate and run
+ return sessionId;
+}
+
+/*
+ * Starts a new session based on URL.
+ */
+void Konsole::newSession(const QString& sURL, const QString& title)
+{
+ QStrList args;
+ QString protocol, path, login, host;
+
+ KURL url = KURL(sURL);
+ if ((url.protocol() == "file") && (url.hasPath())) {
+ KSimpleConfig *co = defaultSession();
+ path = url.path();
+ newSession(co, QString::null, QStrList(), QString::null, QString::null,
+ title.isEmpty() ? path : title, path);
+ return;
+ }
+ else if ((!url.protocol().isEmpty()) && (url.hasHost())) {
+ protocol = url.protocol();
+ bool isSSH = (protocol == "ssh");
+ args.append( protocol.latin1() ); /* argv[0] == command to run. */
+ host = url.host();
+ if (url.port() && isSSH) {
+ args.append("-p");
+ args.append(QCString().setNum(url.port()));
+ }
+ if (url.hasUser()) {
+ login = url.user();
+ args.append("-l");
+ args.append(login.latin1());
+ }
+ args.append(host.latin1());
+ if (url.port() && !isSSH)
+ args.append(QCString().setNum(url.port()));
+ newSession( NULL, protocol.latin1() /* protocol */, args /* arguments */,
+ QString::null /*term*/, QString::null /*icon*/,
+ title.isEmpty() ? path : title /*title*/, QString::null /*cwd*/);
+ return;
+ }
+ /*
+ * We can't create a session without a protocol.
+ * We should ideally popup a warning.
+ */
+}
+
+void Konsole::confirmCloseCurrentSession( TESession* _se )
+{
+ if ( !_se )
+ _se = se;
+ if (KMessageBox::warningContinueCancel(this,
+ i18n("Are you sure that you want to close the current session?"),
+ i18n("Close Confirmation"), KGuiItem(i18n("C&lose Session"),"tab_remove"),
+ "ConfirmCloseSession")==KMessageBox::Continue)
+ _se->closeSession();
+}
+
+void Konsole::closeCurrentSession()
+{
+ se->closeSession();
+}
+
+//FIXME: If a child dies during session swap,
+// this routine might be called before
+// session swap is completed.
+
+void Konsole::doneSession(TESession* s)
+{
+
+ if (s == se_previous)
+ se_previous = 0;
+
+ if (se_previous)
+ activateSession(se_previous);
+
+ KRadioAction *ra = session2action.find(s);
+ ra->unplug(m_view);
+ tabwidget->removePage( s->widget() );
+ if (rootxpms[s->widget()]) {
+ delete rootxpms[s->widget()];
+ rootxpms.remove(s->widget());
+ }
+ delete s->widget();
+ if(m_removeSessionButton )
+ m_removeSessionButton->setEnabled(tabwidget->count()>1);
+ session2action.remove(s);
+ action2session.remove(ra);
+ int sessionIndex = sessions.findRef(s);
+ sessions.remove(s);
+ delete ra; // will the toolbar die?
+
+ s->setConnect(false);
+ delete s;
+
+ if (s == se_previous)
+ se_previous = 0;
+
+ if (s == se)
+ { // pick a new session
+ se = 0;
+ if (sessions.count())
+ {
+ se = sessions.at(sessionIndex ? sessionIndex - 1 : 0);
+
+ session2action.find(se)->setChecked(true);
+ //FIXME: this Timer stupidity originated from the connected
+ // design of Emulations. By this the newly activated
+ // session might get a Ctrl(D) if the session has be
+ // terminated by this keypress. A likely problem
+ // can be found in the CMD_prev/nextSession processing.
+ // Since the timer approach only works at good weather,
+ // the whole construction is not suited to what it
+ // should do. Affected is the TEEmulation::setConnect.
+ QTimer::singleShot(1,this,SLOT(activateSession()));
+ }
+ else
+ close();
+ }
+ else {
+ sessions.find(se);
+ uint position=sessions.at();
+ m_moveSessionLeft->setEnabled(position>0);
+ m_moveSessionRight->setEnabled(position<sessions.count()-1);
+ }
+ if (sessions.count()==1) {
+ m_detachSession->setEnabled(false);
+ if (b_dynamicTabHide && !tabwidget->isTabBarHidden())
+ tabwidget->setTabBarHidden(true);
+ }
+}
+
+/*! Cycle to previous session (if any) */
+
+void Konsole::prevSession()
+{
+ sessions.find(se); sessions.prev();
+ if (!sessions.current()) sessions.last();
+ if (sessions.current() && sessions.count() > 1)
+ activateSession(sessions.current());
+}
+
+/*! Cycle to next session (if any) */
+
+void Konsole::nextSession()
+{
+ sessions.find(se); sessions.next();
+ if (!sessions.current()) sessions.first();
+ if (sessions.current() && sessions.count() > 1)
+ activateSession(sessions.current());
+}
+
+void Konsole::slotMovedTab(int from, int to)
+{
+
+ TESession* _se = sessions.take(from);
+ sessions.remove(_se);
+ sessions.insert(to,_se);
+
+ KRadioAction *ra = session2action.find(_se);
+ ra->unplug(m_view);
+ ra->plug(m_view,(m_view->count()-sessions.count()+1)+to);
+
+ if (to==tabwidget->currentPageIndex()) {
+ if (!m_menuCreated)
+ makeGUI();
+ m_moveSessionLeft->setEnabled(to>0);
+ m_moveSessionRight->setEnabled(to<(int)sessions.count()-1);
+ }
+}
+
+/* Move session forward in session list if possible */
+void Konsole::moveSessionLeft()
+{
+ sessions.find(se);
+ uint position=sessions.at();
+ if (position==0)
+ return;
+
+ sessions.remove(position);
+ sessions.insert(position-1,se);
+
+ KRadioAction *ra = session2action.find(se);
+ ra->unplug(m_view);
+ ra->plug(m_view,(m_view->count()-sessions.count()+1)+position-1);
+
+ QColor oldcolor = tabwidget->tabColor(se->widget());
+
+ tabwidget->blockSignals(true);
+ tabwidget->removePage(se->widget());
+ tabwidget->blockSignals(false);
+ QString title = se->Title();
+ createSessionTab(se->widget(), iconSetForSession(se),
+ title.replace('&', "&&"), position-1);
+ tabwidget->showPage(se->widget());
+ tabwidget->setTabColor(se->widget(),oldcolor);
+
+ if (!m_menuCreated)
+ makeGUI();
+ m_moveSessionLeft->setEnabled(position-1>0);
+ m_moveSessionRight->setEnabled(true);
+}
+
+/* Move session back in session list if possible */
+void Konsole::moveSessionRight()
+{
+ sessions.find(se);
+ uint position=sessions.at();
+
+ if (position==sessions.count()-1)
+ return;
+
+ sessions.remove(position);
+ sessions.insert(position+1,se);
+
+ KRadioAction *ra = session2action.find(se);
+ ra->unplug(m_view);
+ ra->plug(m_view,(m_view->count()-sessions.count()+1)+position+1);
+
+ QColor oldcolor = tabwidget->tabColor(se->widget());
+
+ tabwidget->blockSignals(true);
+ tabwidget->removePage(se->widget());
+ tabwidget->blockSignals(false);
+ QString title = se->Title();
+ createSessionTab(se->widget(), iconSetForSession(se),
+ title.replace('&', "&&"), position+1);
+ tabwidget->showPage(se->widget());
+ tabwidget->setTabColor(se->widget(),oldcolor);
+
+ if (!m_menuCreated)
+ makeGUI();
+ m_moveSessionLeft->setEnabled(true);
+ m_moveSessionRight->setEnabled(position+1<sessions.count()-1);
+}
+
+void Konsole::initMonitorActivity(bool state)
+{
+ monitorActivity->setChecked(state);
+ slotToggleMonitor();
+}
+
+void Konsole::initMonitorSilence(bool state)
+{
+ monitorSilence->setChecked(state);
+ slotToggleMonitor();
+}
+
+void Konsole::slotToggleMonitor()
+{
+ se->setMonitorActivity( monitorActivity->isChecked() );
+ se->setMonitorSilence( monitorSilence->isChecked() );
+ notifySessionState(se,NOTIFYNORMAL);
+}
+
+void Konsole::initMasterMode(bool state)
+{
+ masterMode->setChecked(state);
+ slotToggleMasterMode();
+}
+
+void Konsole::initTabColor(QColor color)
+{
+ if ( color.isValid() )
+ tabwidget->setTabColor( se->widget(), color );
+}
+
+void Konsole::initHistory(int lines, bool enable)
+{
+ // If no History#= is given in the profile, use the history
+ // parameter saved in konsolerc.
+ if ( lines < 0 ) lines = m_histSize;
+
+ if ( enable && lines > 0 )
+ se->setHistory( HistoryTypeBuffer( lines ) );
+ else if ( enable ) // Unlimited buffer
+ se->setHistory(HistoryTypeFile());
+ else
+ se->setHistory( HistoryTypeNone() );
+}
+
+void Konsole::slotToggleMasterMode()
+{
+ setMasterMode( masterMode->isChecked() );
+}
+
+void Konsole::setMasterMode(bool _state, TESession* _se)
+{
+ if (!_se)
+ _se = se;
+ if (_se->isMasterMode() == _state)
+ return;
+
+ if (_se==se)
+ masterMode->setChecked( _state );
+
+ disableMasterModeConnections();
+
+ _se->setMasterMode( _state );
+
+ if (_state)
+ enableMasterModeConnections();
+
+ notifySessionState(_se,NOTIFYNORMAL);
+}
+
+void Konsole::notifySessionState(TESession* session, int state)
+{
+ QString state_iconname;
+ switch(state)
+ {
+ case NOTIFYNORMAL : if(session->isMasterMode())
+ state_iconname = "remote";
+ else
+ state_iconname = session->IconName();
+ break;
+ case NOTIFYBELL : state_iconname = "bell";
+ break;
+ case NOTIFYACTIVITY: state_iconname = "activity";
+ break;
+ case NOTIFYSILENCE : state_iconname = "silence";
+ break;
+ }
+ if (!state_iconname.isEmpty()
+ && session->testAndSetStateIconName(state_iconname)
+ && m_tabViewMode != ShowTextOnly) {
+
+ QPixmap normal = KGlobal::instance()->iconLoader()->loadIcon(state_iconname,
+ KIcon::Small, 0, KIcon::DefaultState, 0L, true);
+ QPixmap active = KGlobal::instance()->iconLoader()->loadIcon(state_iconname,
+ KIcon::Small, 0, KIcon::ActiveState, 0L, true);
+
+ // make sure they are not larger than 16x16
+ if (normal.width() > 16 || normal.height() > 16)
+ normal.convertFromImage(normal.convertToImage().smoothScale(16,16));
+ if (active.width() > 16 || active.height() > 16)
+ active.convertFromImage(active.convertToImage().smoothScale(16,16));
+
+ QIconSet iconset;
+ iconset.setPixmap(normal, QIconSet::Small, QIconSet::Normal);
+ iconset.setPixmap(active, QIconSet::Small, QIconSet::Active);
+
+ tabwidget->setTabIconSet(session->widget(), iconset);
+ }
+}
+
+// --| Session support |-------------------------------------------------------
+
+void Konsole::buildSessionMenus()
+{
+ m_session->clear();
+ if (m_tabbarSessionsCommands)
+ m_tabbarSessionsCommands->clear();
+
+ loadSessionCommands();
+ loadScreenSessions();
+
+ createSessionMenus();
+
+ if (kapp->authorizeKAction("file_print"))
+ {
+ m_session->insertSeparator();
+ m_print->plug(m_session);
+ }
+
+ m_session->insertSeparator();
+ m_closeSession->plug(m_session);
+
+ m_session->insertSeparator();
+ m_quit->plug(m_session);
+}
+
+static void insertItemSorted(KPopupMenu *menu, const QIconSet &iconSet, const QString &txt, int id)
+{
+ const int defaultId = SESSION_NEW_SHELL_ID; // The id of the 'new' item.
+ int index = menu->indexOf(defaultId);
+ int count = menu->count();
+ if (index >= 0)
+ {
+ index++; // Skip New Window
+ index++; // Skip separator
+ while(true)
+ {
+ index++;
+ if (index >= count)
+ {
+ index = -1; // Insert at end
+ break;
+ }
+ if (menu->text(menu->idAt(index)) > txt)
+ break; // Insert before this item
+ }
+ }
+ menu->insertItem(iconSet, txt, id, index);
+}
+
+void Konsole::addSessionCommand(const QString &path)
+{
+ KSimpleConfig* co;
+ if (path.isEmpty())
+ co = new KSimpleConfig(locate("appdata", "shell.desktop"), true /* read only */);
+ else
+ co = new KSimpleConfig(path,true);
+ co->setDesktopGroup();
+ QString typ = co->readEntry("Type");
+ QString txt = co->readEntry("Name");
+
+ // try to locate the binary
+ QString exec= co->readPathEntry("Exec");
+ if (exec.startsWith("su -c \'")) {
+ exec = exec.mid(7,exec.length()-8);
+ }
+
+ exec = KRun::binaryName(exec, false);
+ exec = KShell::tildeExpand(exec);
+ QString pexec = KGlobal::dirs()->findExe(exec);
+
+ if (typ.isEmpty() || txt.isEmpty() || typ != "KonsoleApplication"
+ || ( !exec.isEmpty() && pexec.isEmpty() ) )
+ {
+ if (!path.isEmpty())
+ delete co;
+ kdWarning()<<"Unable to use "<<path.latin1()<<endl;
+ return; // ignore
+ }
+
+ no2command.insert(++cmd_serial,co);
+
+ // Add shortcuts only once and not for 'New Shell'.
+ if ( ( b_sessionShortcutsMapped == true ) || ( cmd_serial == SESSION_NEW_SHELL_ID ) ) return;
+
+ // Add an empty shortcut for each Session.
+ QString comment = co->readEntry("Comment");
+ if (comment.isEmpty())
+ comment=txt.prepend(i18n("New "));
+
+ QString name = comment;
+ name.prepend("SSC_"); // Allows easy searching for Session ShortCuts
+ name.replace(" ", "_");
+ sl_sessionShortCuts << name;
+
+ // Is there already this shortcut?
+ KAction* sessionAction;
+ if ( m_shortcuts->action( name.latin1() ) ) {
+ sessionAction = m_shortcuts->action( name.latin1() );
+ } else {
+ sessionAction = new KAction( comment, 0, this, 0, m_shortcuts, name.latin1() );
+ }
+ connect( sessionAction, SIGNAL( activated() ), sessionNumberMapper, SLOT( map() ) );
+ sessionNumberMapper->setMapping( sessionAction, cmd_serial );
+
+}
+
+void Konsole::loadSessionCommands()
+{
+ no2command.clear();
+
+ cmd_serial = 99;
+ cmd_first_screen = -1;
+
+ if (!kapp->authorize("shell_access"))
+ return;
+
+ addSessionCommand(QString::null);
+
+ QStringList lst = KGlobal::dirs()->findAllResources("appdata", "*.desktop", false, true);
+
+ for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it )
+ if (!(*it).endsWith("/shell.desktop"))
+ addSessionCommand(*it);
+
+ b_sessionShortcutsMapped = true;
+}
+
+void Konsole::createSessionMenus()
+{
+ if (no2command.isEmpty()) { // All sessions have been deleted
+ m_session->insertItem(SmallIconSet("window_new"),
+ i18n("New &Window"), SESSION_NEW_WINDOW_ID);
+ m_tabbarSessionsCommands->insertItem(SmallIconSet("window_new"),
+ i18n("New &Window"), SESSION_NEW_WINDOW_ID);
+ return;
+ }
+
+ KSimpleConfig *cfg = no2command[SESSION_NEW_SHELL_ID];
+ QString txt = cfg->readEntry("Name");
+ QString icon = cfg->readEntry("Icon", "konsole");
+ insertItemSorted(m_tabbarSessionsCommands, SmallIconSet(icon),
+ txt.replace('&',"&&"), SESSION_NEW_SHELL_ID );
+
+ QString comment = cfg->readEntry("Comment");
+ if (comment.isEmpty())
+ comment=txt.prepend(i18n("New "));
+ insertItemSorted(m_session, SmallIconSet(icon),
+ comment.replace('&',"&&"), SESSION_NEW_SHELL_ID);
+ m_session->insertItem(SmallIconSet("window_new"),
+ i18n("New &Window"), SESSION_NEW_WINDOW_ID);
+ m_tabbarSessionsCommands->insertItem(SmallIconSet("window_new"),
+ i18n("New &Window"), SESSION_NEW_WINDOW_ID);
+ m_session->insertSeparator();
+ m_tabbarSessionsCommands->insertSeparator();
+
+ QIntDictIterator<KSimpleConfig> it( no2command );
+ for ( ; it.current(); ++it ) {
+ if ( it.currentKey() == SESSION_NEW_SHELL_ID )
+ continue;
+
+ QString txt = (*it).readEntry("Name");
+ QString icon = (*it).readEntry("Icon", "konsole");
+ insertItemSorted(m_tabbarSessionsCommands, SmallIconSet(icon),
+ txt.replace('&',"&&"), it.currentKey() );
+ QString comment = (*it).readEntry("Comment");
+ if (comment.isEmpty())
+ comment=txt.prepend(i18n("New "));
+ insertItemSorted(m_session, SmallIconSet(icon),
+ comment.replace('&',"&&"), it.currentKey());
+ }
+
+ if (m_bookmarksSession)
+ {
+ m_session->insertSeparator();
+ m_session->insertItem(SmallIconSet("keditbookmarks"),
+ i18n("New Shell at Bookmark"), m_bookmarksSession);
+ m_tabbarSessionsCommands->insertSeparator();
+ m_tabbarSessionsCommands->insertItem(SmallIconSet("keditbookmarks"),
+ i18n("Shell at Bookmark"), m_bookmarksSession);
+ }
+}
+
+void Konsole::addScreenSession(const QString &path, const QString &socket)
+{
+ KTempFile *tmpFile = new KTempFile();
+ tmpFile->setAutoDelete(true);
+ KSimpleConfig *co = new KSimpleConfig(tmpFile->name());
+ co->setDesktopGroup();
+ co->writeEntry("Name", socket);
+ QString txt = i18n("Screen is a program controlling screens!", "Screen at %1").arg(socket);
+ co->writeEntry("Comment", txt);
+ co->writePathEntry("Exec", QString::fromLatin1("SCREENDIR=%1 screen -r %2")
+ .arg(path).arg(socket));
+ QString icon = "konsole";
+ cmd_serial++;
+ m_session->insertItem( SmallIconSet( icon ), txt, cmd_serial, cmd_serial - 1 );
+ m_tabbarSessionsCommands->insertItem( SmallIconSet( icon ), txt, cmd_serial );
+ no2command.insert(cmd_serial,co);
+}
+
+void Konsole::loadScreenSessions()
+{
+ if (!kapp->authorize("shell_access"))
+ return;
+ QCString screenDir = getenv("SCREENDIR");
+ if (screenDir.isEmpty())
+ screenDir = QFile::encodeName(QDir::homeDirPath()) + "/.screen/";
+ // Some distributions add a shell function called screen that sets
+ // $SCREENDIR to ~/tmp. In this case the variable won't be set here.
+ if (!QFile::exists(screenDir))
+ screenDir = QFile::encodeName(QDir::homeDirPath()) + "/tmp/";
+ QStringList sessions;
+ // Can't use QDir as it doesn't support FIFOs :(
+ DIR *dir = opendir(screenDir);
+ if (dir)
+ {
+ struct dirent *entry;
+ while ((entry = readdir(dir)))
+ {
+ QCString path = screenDir + "/" + entry->d_name;
+ struct stat st;
+ if (stat(path, &st) != 0)
+ continue;
+
+ int fd;
+ if (S_ISFIFO(st.st_mode) && !(st.st_mode & 0111) && // xbit == attached
+ (fd = open(path, O_WRONLY | O_NONBLOCK)) != -1)
+ {
+ ::close(fd);
+ sessions.append(QFile::decodeName(entry->d_name));
+ }
+ }
+ closedir(dir);
+ }
+ resetScreenSessions();
+ for (QStringList::ConstIterator it = sessions.begin(); it != sessions.end(); ++it)
+ addScreenSession(screenDir, *it);
+}
+
+void Konsole::resetScreenSessions()
+{
+ if (cmd_first_screen == -1)
+ cmd_first_screen = cmd_serial + 1;
+ else
+ {
+ for (int i = cmd_first_screen; i <= cmd_serial; ++i)
+ {
+ m_session->removeItem(i);
+ if (m_tabbarSessionsCommands)
+ m_tabbarSessionsCommands->removeItem(i);
+ no2command.remove(i);
+ }
+ cmd_serial = cmd_first_screen - 1;
+ }
+}
+
+// --| Schema support |-------------------------------------------------------
+
+void Konsole::setSchema(int numb, TEWidget* tewidget)
+{
+ ColorSchema* s = colors->find(numb);
+ if (!s)
+ {
+ s = (ColorSchema*)colors->at(0);
+ kdWarning() << "No schema with serial #"<<numb<<", using "<<s->relPath()<<" (#"<<s->numb()<<")." << endl;
+ s_kconfigSchema = s->relPath();
+ }
+
+ if (s->hasSchemaFileChanged())
+ {
+ const_cast<ColorSchema *>(s)->rereadSchemaFile();
+ }
+ if (s) setSchema(s, tewidget);
+}
+
+void Konsole::setSchema(const QString & path)
+{
+ ColorSchema* s = colors->find(path);
+ if (!s)
+ {
+ s = (ColorSchema*)colors->at(0); //the default one
+ kdWarning() << "No schema with the name " <<path<<", using "<<s->relPath()<<endl;
+ s_kconfigSchema = s->relPath();
+ }
+ if (s->hasSchemaFileChanged())
+ {
+ const_cast<ColorSchema *>(s)->rereadSchemaFile();
+ }
+ if (s) setSchema(s);
+}
+
+// Called via main.cpp for session manager.
+void Konsole::setEncoding(int index)
+{
+ if ( selectSetEncoding ) {
+ selectSetEncoding->setCurrentItem(index);
+ slotSetEncoding();
+ }
+}
+
+void Konsole::setSchema(ColorSchema* s, TEWidget* tewidget)
+{
+ if (!s) return;
+ if (!tewidget) tewidget=te;
+
+ if (tewidget==te) {
+ if (m_schema)
+ {
+ m_schema->setItemChecked(curr_schema,false);
+ m_schema->setItemChecked(s->numb(),true);
+ }
+
+ s_schema = s->relPath();
+ curr_schema = s->numb();
+ pmPath = s->imagePath();
+ }
+ tewidget->setColorTable(s->table()); //FIXME: set twice here to work around a bug
+
+ if (s->useTransparency()) {
+ if (!argb_visual) {
+ if (!rootxpms[tewidget])
+ rootxpms.insert( tewidget, new KRootPixmap(tewidget) );
+ rootxpms[tewidget]->setFadeEffect(s->tr_x(), QColor(s->tr_r(), s->tr_g(), s->tr_b()));
+ } else {
+ tewidget->setBlendColor(qRgba(s->tr_r(), s->tr_g(), s->tr_b(), int(s->tr_x() * 255)));
+ tewidget->setErasePixmap( QPixmap() ); // make sure any background pixmap is unset
+ }
+ } else {
+ if (rootxpms[tewidget]) {
+ delete rootxpms[tewidget];
+ rootxpms.remove(tewidget);
+ }
+ pixmap_menu_activated(s->alignment(), tewidget);
+ tewidget->setBlendColor(qRgba(0, 0, 0, 0xff));
+ }
+
+ tewidget->setColorTable(s->table());
+ QPtrListIterator<TESession> ses_it(sessions);
+ for (; ses_it.current(); ++ses_it)
+ if (tewidget==ses_it.current()->widget()) {
+ ses_it.current()->setSchemaNo(s->numb());
+ break;
+ }
+}
+
+void Konsole::slotDetachSession()
+{
+ detachSession();
+}
+
+void Konsole::detachSession(TESession* _se) {
+ if (!_se) _se=se;
+
+ KRadioAction *ra = session2action.find(_se);
+ ra->unplug(m_view);
+ TEWidget* se_widget = _se->widget();
+ session2action.remove(_se);
+ action2session.remove(ra);
+ int sessionIndex = sessions.findRef(_se);
+ sessions.remove(_se);
+ delete ra;
+
+ if ( _se->isMasterMode() ) {
+ // Disable master mode when detaching master
+ setMasterMode(false);
+ } else {
+ QPtrListIterator<TESession> from_it(sessions);
+ for(; from_it.current(); ++from_it) {
+ TESession *from = from_it.current();
+ if(from->isMasterMode())
+ disconnect(from->widget(), SIGNAL(keyPressedSignal(QKeyEvent*)),
+ _se->getEmulation(), SLOT(onKeyPress(QKeyEvent*)));
+ }
+ }
+
+ QColor se_tabtextcolor = tabwidget->tabColor( _se->widget() );
+
+ disconnect( _se,SIGNAL(done(TESession*)),
+ this,SLOT(doneSession(TESession*)) );
+
+ disconnect( _se->getEmulation(),SIGNAL(ImageSizeChanged(int,int)), this,SLOT(notifySize(int,int)));
+ disconnect( _se->getEmulation(),SIGNAL(changeColLin(int, int)), this,SLOT(changeColLin(int,int)) );
+ disconnect( _se->getEmulation(),SIGNAL(changeColumns(int)), this,SLOT(changeColumns(int)) );
+ disconnect( _se, SIGNAL(changeTabTextColor(TESession*, int)), this, SLOT(changeTabTextColor(TESession*, int)) );
+
+ disconnect( _se,SIGNAL(updateTitle(TESession*)), this,SLOT(updateTitle(TESession*)) );
+ disconnect( _se,SIGNAL(notifySessionState(TESession*,int)), this,SLOT(notifySessionState(TESession*,int)) );
+ disconnect( _se,SIGNAL(disableMasterModeConnections()), this,SLOT(disableMasterModeConnections()) );
+ disconnect( _se,SIGNAL(enableMasterModeConnections()), this,SLOT(enableMasterModeConnections()) );
+ disconnect( _se,SIGNAL(renameSession(TESession*,const QString&)), this,SLOT(slotRenameSession(TESession*,const QString&)) );
+
+ // TODO: "type" isn't passed properly
+ Konsole* konsole = new Konsole(name(), b_histEnabled, !menubar->isHidden(), n_tabbar != TabNone, b_framevis,
+ n_scroll != TEWidget::SCRNONE, 0, false, 0);
+ konsole->enableFullScripting(b_fullScripting);
+ // TODO; Make this work: konsole->enableFixedSize(b_fixedSize);
+ konsole->resize(size());
+ konsole->show();
+ konsole->attachSession(_se);
+ konsole->activateSession(_se);
+ konsole->changeTabTextColor( _se, se_tabtextcolor.rgb() );//restore prev color
+ konsole->slotTabSetViewOptions(m_tabViewMode);
+
+ if (_se==se) {
+ if (se == se_previous)
+ se_previous=NULL;
+
+ // pick a new session
+ if (se_previous)
+ se = se_previous;
+ else
+ se = sessions.at(sessionIndex ? sessionIndex - 1 : 0);
+ session2action.find(se)->setChecked(true);
+ QTimer::singleShot(1,this,SLOT(activateSession()));
+ }
+
+ if (sessions.count()==1)
+ m_detachSession->setEnabled(false);
+
+ tabwidget->removePage( se_widget );
+ if (rootxpms[se_widget]) {
+ delete rootxpms[se_widget];
+ rootxpms.remove(se_widget);
+ }
+ delete se_widget;
+ if (b_dynamicTabHide && tabwidget->count()==1)
+ tabwidget->setTabBarHidden(true);
+
+ if( m_removeSessionButton )
+ m_removeSessionButton->setEnabled(tabwidget->count()>1);
+}
+
+void Konsole::attachSession(TESession* session)
+{
+ if (b_dynamicTabHide && sessions.count()==1 && n_tabbar!=TabNone)
+ tabwidget->setTabBarHidden(false);
+
+ TEWidget* se_widget = session->widget();
+
+ te=new TEWidget(tabwidget);
+
+ connect( te, SIGNAL(configureRequest(TEWidget*, int, int, int)),
+ this, SLOT(configureRequest(TEWidget*,int,int,int)) );
+
+ te->resize(se_widget->size());
+ te->setSize(se_widget->Columns(), se_widget->Lines());
+ initTEWidget(te, se_widget);
+ session->changeWidget(te);
+ te->setFocus();
+ createSessionTab(te, SmallIconSet(session->IconName()), session->Title());
+ setSchema(session->schemaNo());
+ if (session->isMasterMode()) {
+ disableMasterModeConnections(); // no duplicate connections, remove old
+ enableMasterModeConnections();
+ }
+
+ QString title=session->Title();
+ KRadioAction *ra = new KRadioAction(title.replace('&',"&&"), session->IconName(),
+ 0, this, SLOT(activateSession()), m_shortcuts);
+
+ ra->setExclusiveGroup("sessions");
+ ra->setChecked(true);
+
+ action2session.insert(ra, session);
+ session2action.insert(session,ra);
+ sessions.append(session);
+ if (sessions.count()>1)
+ m_detachSession->setEnabled(true);
+
+ if (m_menuCreated)
+ ra->plug(m_view);
+
+ connect( session,SIGNAL(done(TESession*)),
+ this,SLOT(doneSession(TESession*)) );
+
+ connect( session,SIGNAL(updateTitle(TESession*)), this,SLOT(updateTitle(TESession*)) );
+ connect( session,SIGNAL(notifySessionState(TESession*,int)), this,SLOT(notifySessionState(TESession*,int)) );
+
+ connect( session,SIGNAL(disableMasterModeConnections()), this,SLOT(disableMasterModeConnections()) );
+ connect( session,SIGNAL(enableMasterModeConnections()), this,SLOT(enableMasterModeConnections()) );
+ connect( session,SIGNAL(renameSession(TESession*,const QString&)), this,SLOT(slotRenameSession(TESession*,const QString&)) );
+ connect( session->getEmulation(),SIGNAL(ImageSizeChanged(int,int)), this,SLOT(notifySize(int,int)));
+ connect( session->getEmulation(),SIGNAL(changeColumns(int)), this,SLOT(changeColumns(int)) );
+ connect( session->getEmulation(),SIGNAL(changeColLin(int, int)), this,SLOT(changeColLin(int,int)) );
+
+ connect( session, SIGNAL(changeTabTextColor(TESession*, int)), this, SLOT(changeTabTextColor(TESession*, int)) );
+
+ activateSession(session);
+}
+
+void Konsole::setSessionTitle( QString& title, TESession* ses )
+{
+ if ( !ses )
+ ses = se;
+ ses->setTitle( title );
+ slotRenameSession( ses, title );
+}
+
+void Konsole::renameSession(TESession* ses) {
+ QString title = ses->Title();
+ bool ok;
+
+ title = KInputDialog::getText( i18n( "Rename Session" ),
+ i18n( "Session name:" ), title, &ok, this );
+
+ if (!ok) return;
+
+ ses->setTitle(title);
+ slotRenameSession(ses,title);
+}
+
+void Konsole::slotRenameSession() {
+ renameSession(se);
+}
+
+void Konsole::slotRenameSession(TESession* ses, const QString &name)
+{
+ KRadioAction *ra = session2action.find(ses);
+ QString title=name;
+ title=title.replace('&',"&&");
+ ra->setText(title);
+ ra->setIcon( ses->IconName() ); // I don't know why it is needed here
+ if (m_tabViewMode!=ShowIconOnly)
+ tabwidget->setTabLabel( ses->widget(), title );
+ updateTitle();
+}
+
+
+void Konsole::slotClearAllSessionHistories() {
+ for (TESession *_se = sessions.first(); _se; _se = sessions.next())
+ _se->clearHistory();
+}
+
+//////////////////////////////////////////////////////////////////////
+
+HistoryTypeDialog::HistoryTypeDialog(const HistoryType& histType,
+ unsigned int histSize,
+ QWidget *parent)
+ : KDialogBase(Plain, i18n("History Configuration"),
+ Help | Default | Ok | Cancel, Ok,
+ parent, 0, true, true)
+{
+ QFrame *mainFrame = plainPage();
+
+ QHBoxLayout *hb = new QHBoxLayout(mainFrame);
+
+ m_btnEnable = new QCheckBox(i18n("&Enable"), mainFrame);
+ connect(m_btnEnable, SIGNAL(toggled(bool)), SLOT(slotHistEnable(bool)));
+
+ m_label = new QLabel(i18n("&Number of lines: "), mainFrame);
+
+ m_size = new QSpinBox(0, 10 * 1000 * 1000, 100, mainFrame);
+ m_size->setValue(histSize);
+ m_size->setSpecialValueText(i18n("Unlimited (number of lines)", "Unlimited"));
+
+ m_label->setBuddy( m_size );
+
+ m_setUnlimited = new QPushButton(i18n("&Set Unlimited"), mainFrame);
+ connect( m_setUnlimited,SIGNAL(clicked()), this,SLOT(slotSetUnlimited()) );
+
+ hb->addWidget(m_btnEnable);
+ hb->addSpacing(10);
+ hb->addWidget(m_label);
+ hb->addWidget(m_size);
+ hb->addSpacing(10);
+ hb->addWidget(m_setUnlimited);
+
+ if ( ! histType.isOn()) {
+ m_btnEnable->setChecked(false);
+ slotHistEnable(false);
+ } else {
+ m_btnEnable->setChecked(true);
+ m_size->setValue(histType.getSize());
+ slotHistEnable(true);
+ }
+ setHelp("configure-history");
+}
+
+void HistoryTypeDialog::slotDefault()
+{
+ m_btnEnable->setChecked(true);
+ m_size->setValue(DEFAULT_HISTORY_SIZE);
+ slotHistEnable(true);
+}
+
+void HistoryTypeDialog::slotHistEnable(bool b)
+{
+ m_label->setEnabled(b);
+ m_size->setEnabled(b);
+ m_setUnlimited->setEnabled(b);
+ if (b) m_size->setFocus();
+}
+
+void HistoryTypeDialog::slotSetUnlimited()
+{
+ m_size->setValue(0);
+}
+
+unsigned int HistoryTypeDialog::nbLines() const
+{
+ return m_size->value();
+}
+
+bool HistoryTypeDialog::isOn() const
+{
+ return m_btnEnable->isChecked();
+}
+
+void Konsole::slotHistoryType()
+{
+ if (!se) return;
+
+ HistoryTypeDialog dlg(se->history(), m_histSize, this);
+ if (dlg.exec()) {
+ m_clearHistory->setEnabled( dlg.isOn() );
+ m_findHistory->setEnabled( dlg.isOn() );
+ m_findNext->setEnabled( dlg.isOn() );
+ m_findPrevious->setEnabled( dlg.isOn() );
+ m_saveHistory->setEnabled( dlg.isOn() );
+ if (dlg.isOn()) {
+ if (dlg.nbLines() > 0) {
+ se->setHistory(HistoryTypeBuffer(dlg.nbLines()));
+ m_histSize = dlg.nbLines();
+ b_histEnabled = true;
+
+ } else {
+
+ se->setHistory(HistoryTypeFile());
+ m_histSize = 0;
+ b_histEnabled = true;
+
+ }
+
+ } else {
+
+ se->setHistory(HistoryTypeNone());
+ m_histSize = dlg.nbLines();
+ b_histEnabled = false;
+
+ }
+ }
+}
+
+void Konsole::slotClearHistory()
+{
+ se->clearHistory();
+}
+
+void Konsole::slotFindHistory()
+{
+ if( !m_finddialog ) {
+ m_finddialog = new KonsoleFind( this, "konsolefind", false);
+ connect(m_finddialog,SIGNAL(search()),this,SLOT(slotFind()));
+ connect(m_finddialog,SIGNAL(done()),this,SLOT(slotFindDone()));
+ }
+
+ QString string;
+ string = m_finddialog->getText();
+ m_finddialog->setText(string.isEmpty() ? m_find_pattern : string);
+
+ m_find_first = true;
+ m_find_found = false;
+
+ m_finddialog->show();
+ m_finddialog->result();
+}
+
+void Konsole::slotFindNext()
+{
+ if( !m_finddialog ) {
+ slotFindHistory();
+ return;
+ }
+
+ QString string;
+ string = m_finddialog->getText();
+ m_finddialog->setText(string.isEmpty() ? m_find_pattern : string);
+
+ slotFind();
+}
+
+void Konsole::slotFindPrevious()
+{
+ if( !m_finddialog ) {
+ slotFindHistory();
+ return;
+ }
+
+ QString string;
+ string = m_finddialog->getText();
+ m_finddialog->setText(string.isEmpty() ? m_find_pattern : string);
+
+ m_finddialog->setDirection( !m_finddialog->get_direction() );
+ slotFind();
+ m_finddialog->setDirection( !m_finddialog->get_direction() );
+}
+
+void Konsole::slotFind()
+{
+ if (m_find_first) {
+ se->getEmulation()->findTextBegin();
+ m_find_first = false;
+ }
+
+ bool forward = !m_finddialog->get_direction();
+ m_find_pattern = m_finddialog->getText();
+
+ if (se->getEmulation()->findTextNext(m_find_pattern,forward,
+ m_finddialog->case_sensitive(),m_finddialog->reg_exp()))
+ m_find_found = true;
+ else
+ if (m_find_found) {
+ if (forward) {
+ if ( KMessageBox::questionYesNo( m_finddialog,
+ i18n("End of history reached.\n" "Continue from the beginning?"),
+ i18n("Find"), KStdGuiItem::cont(), KStdGuiItem::cancel() ) == KMessageBox::Yes ) {
+ m_find_first = true;
+ slotFind();
+ }
+ }
+ else {
+ if ( KMessageBox::questionYesNo( m_finddialog,
+ i18n("Beginning of history reached.\n" "Continue from the end?"),
+ i18n("Find"), KStdGuiItem::cont(), KStdGuiItem::cancel() ) == KMessageBox::Yes ) {
+ m_find_first = true;
+ slotFind();
+ }
+ }
+ }
+ else
+ KMessageBox::information( m_finddialog,
+ i18n( "Search string '%1' not found." ).arg(KStringHandler::csqueeze(m_find_pattern)),
+ i18n( "Find" ) );
+}
+
+void Konsole::slotFindDone()
+{
+ if (!m_finddialog)
+ return;
+
+ se->getEmulation()->clearSelection();
+ m_finddialog->hide();
+}
+
+void Konsole::slotSaveHistory()
+{
+ // FIXME - mostLocalURL can't handle non-existing files yet, so this
+ // code doesn't work.
+ KURL s_url = KFileDialog::getSaveURL(QString::null, QString::null, 0L, i18n("Save History"));
+ if( s_url.isEmpty())
+ return;
+ KURL url = KIO::NetAccess::mostLocalURL( s_url, 0 );
+
+ if( !url.isLocalFile() ) {
+ KMessageBox::sorry(this, i18n("This is not a local file.\n"));
+ return;
+ }
+
+ int query = KMessageBox::Continue;
+ QFileInfo info;
+ QString name( url.path() );
+ info.setFile( name );
+ if( info.exists() )
+ query = KMessageBox::warningContinueCancel( this,
+ i18n( "A file with this name already exists.\nDo you want to overwrite it?" ), i18n("File Exists"), i18n("Overwrite") );
+
+ if (query==KMessageBox::Continue) {
+ QFile file(url.path());
+ if(!file.open(IO_WriteOnly)) {
+ KMessageBox::sorry(this, i18n("Unable to write to file."));
+ return;
+ }
+
+ QTextStream textStream(&file);
+ assert( se && se->getEmulation() );
+ se->getEmulation()->streamHistory( &textStream );
+
+ file.close();
+ if(file.status()) {
+ KMessageBox::sorry(this, i18n("Could not save history."));
+ return;
+ }
+ }
+}
+
+void Konsole::slotZModemUpload()
+{
+ if (se->zmodemIsBusy())
+ {
+ KMessageBox::sorry(this,
+ i18n("<p>The current session already has a ZModem file transfer in progress."));
+ return;
+ }
+ QString zmodem = KGlobal::dirs()->findExe("sz");
+ if (zmodem.isEmpty())
+ zmodem = KGlobal::dirs()->findExe("lsz");
+ if (zmodem.isEmpty())
+ {
+ KMessageBox::sorry(this,
+ i18n("<p>No suitable ZModem software was found on "
+ "the system.\n"
+ "<p>You may wish to install the 'rzsz' or 'lrzsz' package.\n"));
+ return;
+ }
+
+ QStringList files = KFileDialog::getOpenFileNames(QString::null, QString::null, this,
+ i18n("Select Files to Upload"));
+ if (files.isEmpty())
+ return;
+
+ se->startZModem(zmodem, QString::null, files);
+}
+
+void Konsole::slotZModemDetected(TESession *session)
+{
+ if (!kapp->authorize("zmodem_download")) return;
+
+ if(se != session)
+ activateSession(session);
+
+ QString zmodem = KGlobal::dirs()->findExe("rz");
+ if (zmodem.isEmpty())
+ zmodem = KGlobal::dirs()->findExe("lrz");
+ if (zmodem.isEmpty())
+ {
+ KMessageBox::information(this,
+ i18n("<p>A ZModem file transfer attempt has been detected, "
+ "but no suitable ZModem software was found on "
+ "the system.\n"
+ "<p>You may wish to install the 'rzsz' or 'lrzsz' package.\n"));
+ return;
+ }
+ KURLRequesterDlg dlg(KGlobalSettings::documentPath(),
+ i18n("A ZModem file transfer attempt has been detected.\n"
+ "Please specify the folder you want to store the file(s):"),
+ this, "zmodem_dlg");
+ dlg.setButtonOK(KGuiItem( i18n("&Download"),
+ i18n("Start downloading file to specified folder."),
+ i18n("Start downloading file to specified folder.")));
+ if (!dlg.exec())
+ {
+ session->cancelZModem();
+ }
+ else
+ {
+ const KURL &url = dlg.selectedURL();
+ session->startZModem(zmodem, url.path(), QStringList());
+ }
+}
+
+void Konsole::slotPrint()
+{
+ KPrinter printer;
+ printer.addDialogPage(new PrintSettings());
+ if (printer.setup(this, i18n("Print %1").arg(se->Title())))
+ {
+ printer.setFullPage(false);
+ printer.setCreator("Konsole");
+ QPainter paint;
+ paint.begin(&printer);
+ se->print(paint, printer.option("app-konsole-printfriendly") == "true",
+ printer.option("app-konsole-printexact") == "true");
+ paint.end();
+ }
+}
+
+void Konsole::toggleBidi()
+{
+ b_bidiEnabled=!b_bidiEnabled;
+ QPtrList<TEWidget> tes = activeTEs();
+ for (TEWidget *_te = tes.first(); _te; _te = tes.next()) {
+ _te->setBidiEnabled(b_bidiEnabled);
+ _te->repaint();
+ }
+}
+
+//////////////////////////////////////////////////////////////////////
+
+SizeDialog::SizeDialog(const unsigned int columns,
+ const unsigned int lines,
+ QWidget *parent)
+ : KDialogBase(Plain, i18n("Size Configuration"),
+ Help | Default | Ok | Cancel, Ok,
+ parent)
+{
+ QFrame *mainFrame = plainPage();
+
+ QHBoxLayout *hb = new QHBoxLayout(mainFrame);
+
+ m_columns = new QSpinBox(20,1000,1,mainFrame);
+ m_columns->setValue(columns);
+
+ m_lines = new QSpinBox(4,1000,1,mainFrame);
+ m_lines->setValue(lines);
+
+ hb->addWidget(new QLabel(i18n("Number of columns:"), mainFrame));
+ hb->addWidget(m_columns);
+ hb->addSpacing(10);
+ hb->addWidget(new QLabel(i18n("Number of lines:"), mainFrame));
+ hb->addWidget(m_lines);
+
+ setHelp("configure-size");
+}
+
+void SizeDialog::slotDefault()
+{
+ m_columns->setValue(80);
+ m_lines->setValue(24);
+}
+
+unsigned int SizeDialog::columns() const
+{
+ return m_columns->value();
+}
+
+unsigned int SizeDialog::lines() const
+{
+ return m_lines->value();
+}
+
+//////////////////////////////////////////////////////////////////////
+
+KonsoleFind::KonsoleFind( QWidget *parent, const char *name, bool /*modal*/ )
+ : KEdFind( parent, name, false ), m_editorDialog(0), m_editRegExp(0)
+{
+ QHBox* row = new QHBox( (QWidget*)group );
+ m_asRegExp = new QCheckBox( i18n("As &regular expression"), row, "asRegexp" );
+
+ if (!KTrader::self()->query("KRegExpEditor/KRegExpEditor").isEmpty()) {
+ m_editRegExp = new QPushButton( i18n("&Edit..."), row, "editRegExp" );
+ connect( m_asRegExp, SIGNAL( toggled(bool) ), m_editRegExp, SLOT( setEnabled(bool) ) );
+ connect( m_editRegExp, SIGNAL( clicked() ), this, SLOT( slotEditRegExp() ) );
+ m_editRegExp->setEnabled( false );
+ }
+}
+
+void KonsoleFind::slotEditRegExp()
+{
+ if ( m_editorDialog == 0 )
+ m_editorDialog = KParts::ComponentFactory::createInstanceFromQuery<QDialog>( "KRegExpEditor/KRegExpEditor", QString::null, this );
+
+ assert( m_editorDialog );
+
+ KRegExpEditorInterface *iface = dynamic_cast<KRegExpEditorInterface *>( m_editorDialog );
+ assert( iface );
+
+ iface->setRegExp( getText() );
+ bool ret = m_editorDialog->exec();
+ if ( ret == QDialog::Accepted)
+ setText( iface->regExp() );
+}
+
+bool KonsoleFind::reg_exp() const
+{
+ return m_asRegExp->isChecked();
+}
+
+///////////////////////////////////////////////////////////
+// This was to apply changes made to KControl fixed font to all TEs...
+// kvh - 03/10/2005 - We don't do this anymore...
+void Konsole::slotFontChanged()
+{
+ TEWidget *oldTe = te;
+ QPtrList<TEWidget> tes = activeTEs();
+ for (TEWidget *_te = tes.first(); _te; _te = tes.next()) {
+ te = _te;
+// setFont(n_font);
+ }
+ te = oldTe;
+}
+
+void Konsole::biggerFont(void) {
+ if ( !se ) return;
+
+ QFont f = te->getVTFont();
+ f.setPointSize( f.pointSize() + 1 );
+ te->setVTFont( f );
+ activateSession();
+}
+
+void Konsole::smallerFont(void) {
+ if ( !se ) return;
+
+ QFont f = te->getVTFont();
+ if ( f.pointSize() < 6 ) return; // A minimum size
+ f.setPointSize( f.pointSize() - 1 );
+ te->setVTFont( f );
+ activateSession();
+}
+
+bool Konsole::processDynamic(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData)
+{
+ if (b_fullScripting)
+ {
+ if (fun == "feedAllSessions(QString)")
+ {
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ feedAllSessions(arg0);
+ replyType = "void";
+ return true;
+ }
+ else if (fun == "sendAllSessions(QString)")
+ {
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ sendAllSessions(arg0);
+ replyType = "void";
+ return true;
+ }
+ }
+ return KonsoleIface::processDynamic(fun, data, replyType, replyData);
+}
+
+QCStringList Konsole::functionsDynamic()
+{
+ QCStringList funcs = KonsoleIface::functionsDynamic();
+ if (b_fullScripting)
+ {
+ funcs << "void feedAllSessions(QString text)";
+ funcs << "void sendAllSessions(QString text)";
+ }
+ return funcs;
+}
+
+void Konsole::enableFullScripting(bool b)
+{
+ b_fullScripting = b;
+ for (TESession *_se = sessions.first(); _se; _se = sessions.next())
+ _se->enableFullScripting(b);
+}
+
+void Konsole::enableFixedSize(bool b)
+{
+ b_fixedSize = b;
+ if (b_fixedSize)
+ {
+ delete m_fullscreen;
+ m_fullscreen = 0;
+ }
+}
+
+QPtrList<TEWidget> Konsole::activeTEs()
+{
+ QPtrList<TEWidget> ret;
+ if (sessions.count()>0)
+ for (TESession *_se = sessions.first(); _se; _se = sessions.next())
+ ret.append(_se->widget());
+ else if (te) // check for startup initalization case in newSession()
+ ret.append(te);
+ return ret;
+}
+
+#include "konsole.moc"
diff --git a/konsole/konsole/konsole.h b/konsole/konsole/konsole.h
new file mode 100644
index 000000000..df9157f7b
--- /dev/null
+++ b/konsole/konsole/konsole.h
@@ -0,0 +1,501 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1996 by Matthias Ettrich <ettrich@kde.org>
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+/* The material contained in here more or less directly orginates from */
+/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */
+/* */
+
+#ifndef KONSOLE_H
+#define KONSOLE_H
+
+
+#include <kmainwindow.h>
+#include <kdialogbase.h>
+#include <ksimpleconfig.h>
+#include <keditcl.h>
+
+#include <kwinmodule.h>
+
+#include <qstrlist.h>
+#include <qintdict.h>
+#include <qptrdict.h>
+#include <qsignalmapper.h>
+
+#include "TEPty.h"
+#include "TEWidget.h"
+#include "TEmuVt102.h"
+#include "session.h"
+#include "schema.h"
+#include "konsolebookmarkmenu.h"
+#include "konsolebookmarkhandler.h"
+
+#include "konsoleiface.h"
+
+#define KONSOLE_VERSION "1.6.6"
+
+class KRootPixmap;
+class QLabel;
+class QCheckBox;
+class KonsoleFind;
+class KPopupMenu;
+class KAction;
+class KToggleAction;
+class KSelectAction;
+class KRadioAction;
+class KTabWidget;
+class QToolButton;
+
+// Defined in main.C
+const char *konsole_shell(QStrList &args);
+
+class Konsole : public KMainWindow, virtual public KonsoleIface
+{
+ Q_OBJECT
+
+ friend class KonsoleSessionManaged;
+public:
+
+ Konsole(const char * name, int histon, bool menubaron, bool tabbaron,
+ bool frameon, bool scrollbaron,
+ QCString type = 0, bool b_inRestore = false, const int wanted_tabbar = 0,
+ const QString &workdir=QString::null);
+
+ ~Konsole();
+ void setColLin(int columns, int lines);
+ void setAutoClose(bool on);
+ void initFullScreen();
+ void initSessionFont(int fontNo);
+ void initSessionFont(QFont f);
+ void initSessionKeyTab(const QString &keyTab);
+ void initMonitorActivity(bool on);
+ void initMonitorSilence(bool on);
+ void initMasterMode(bool on);
+ void initTabColor(QColor color);
+ void initHistory(int lines, bool enable);
+ void newSession(const QString &program, const QStrList &args, const QString &term, const QString &icon, const QString &title, const QString &cwd);
+ void setSchema(const QString & path);
+ void setEncoding(int);
+ void setSessionTitle(QString&, TESession* = 0);
+ void setSessionEncoding(const QString&, TESession* = 0);
+
+ void enableFullScripting(bool b);
+ void enableFixedSize(bool b);
+
+ void setDefaultSession(const QString &filename);
+ void showTipOnStart();
+
+ // Additional functions for DCOP
+ int sessionCount() { return sessions.count(); }
+
+ QString currentSession();
+ QString newSession(const QString &type);
+ QString sessionId(const int position);
+
+ void activateSession(const QString& sessionId);
+ void feedAllSessions(const QString &text);
+ void sendAllSessions(const QString &text);
+
+ KURL baseURL() const;
+
+ virtual bool processDynamic(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData);
+ virtual QCStringList functionsDynamic();
+
+ void callReadPropertiesInternal(KConfig *config, int number) { readPropertiesInternal(config,number); }
+
+ enum TabPosition { TabNone, TabTop, TabBottom };
+ enum TabViewModes { ShowIconAndText = 0, ShowTextOnly = 1, ShowIconOnly = 2 };
+
+public slots:
+ void activateSession(int position);
+ void activateSession(QWidget*);
+ void slotUpdateSessionConfig(TESession *session);
+ void slotResizeSession(TESession*, QSize);
+ void slotSetSessionEncoding(TESession *session, const QString &encoding);
+ void slotGetSessionSchema(TESession *session, QString &schema);
+ void slotSetSessionSchema(TESession *session, const QString &schema);
+
+ void makeGUI();
+ QString newSession();
+
+protected:
+
+ bool queryClose();
+ void saveProperties(KConfig* config);
+ void readProperties(KConfig* config);
+
+private slots:
+ void configureRequest(TEWidget*,int,int,int);
+ void activateSession();
+ void activateSession(TESession*);
+ void closeCurrentSession();
+ void confirmCloseCurrentSession(TESession* _se=0);
+ void doneSession(TESession*);
+ void slotCouldNotClose();
+ void toggleFullScreen();
+ bool fullScreen();
+ void setFullScreen(bool on);
+ void schema_menu_activated(int item);
+ void pixmap_menu_activated(int item, TEWidget* tewidget=0);
+ void keytab_menu_activated(int item);
+ void schema_menu_check();
+ void attachSession(TESession*);
+ void slotDetachSession();
+ void bookmarks_menu_check();
+ void newSession(int kind);
+ void newSessionTabbar(int kind);
+ void updateSchemaMenu();
+ void updateKeytabMenu();
+ void updateRMBMenu();
+
+ void changeTabTextColor(TESession*, int);
+ void changeColumns(int);
+ void changeColLin(int columns, int lines);
+ void notifySessionState(TESession* session,int state);
+ void notifySize(int columns, int lines);
+ void updateTitle(TESession* _se=0);
+ void prevSession();
+ void nextSession();
+ void activateMenu();
+ void slotMovedTab(int,int);
+ void moveSessionLeft();
+ void moveSessionRight();
+ void allowPrevNext();
+ void setSchema(int n, TEWidget* tewidget=0); // no slot necessary?
+ void sendSignal(int n);
+ void slotClearTerminal();
+ void slotResetClearTerminal();
+ void slotSelectTabbar();
+ void slotToggleMenubar();
+ void slotRenameSession();
+ void slotRenameSession(TESession* ses, const QString &name);
+ void slotToggleMonitor();
+ void slotToggleMasterMode();
+ void slotClearAllSessionHistories();
+ void slotHistoryType();
+ void slotClearHistory();
+ void slotFindHistory();
+ void slotSaveHistory();
+ void slotSelectBell();
+ void slotSelectSize();
+ void slotSelectFont();
+ void slotInstallBitmapFonts();
+ void slotSelectScrollbar();
+ void loadScreenSessions();
+ void updateFullScreen(bool on);
+
+ void slotSaveSettings();
+ void slotSaveSessionsProfile();
+ void slotConfigureNotifications();
+ void slotConfigureKeys();
+ void slotConfigure();
+ void reparseConfiguration();
+
+ void disableMasterModeConnections();
+ void enableMasterModeConnections();
+ void enterURL( const QString&, const QString& );
+ void newSession( const QString&, const QString& );
+
+ void slotFind();
+ void slotFindDone();
+ void slotFindNext();
+ void slotFindPrevious();
+
+ void showTip();
+
+ void slotSetSelectionEnd() { te->setSelectionEnd(); }
+ void slotCopyClipboard() { te->copyClipboard(); }
+ void slotPasteClipboard() { te->pasteClipboard(); }
+ void slotPasteSelection() { te->pasteSelection(); }
+
+ void listSessions();
+ void switchToSession();
+
+ void biggerFont();
+ void smallerFont();
+
+ void slotZModemDetected(TESession *session);
+ void slotZModemUpload();
+
+ void slotPrint();
+
+ void toggleBidi();
+
+ void slotTabContextMenu(QWidget*, const QPoint &);
+ void slotTabDetachSession();
+ void slotTabRenameSession();
+ void slotTabSelectColor();
+ void slotTabCloseSession();
+ void slotTabToggleMonitor();
+ void slotTabToggleMasterMode();
+ void slotTabbarContextMenu(const QPoint &);
+ void slotTabSetViewOptions(int);
+ void slotTabbarToggleDynamicHide();
+ void slotToggleAutoResizeTabs();
+ void slotFontChanged();
+
+ void slotSetEncoding();
+private:
+ KSimpleConfig *defaultSession();
+ QString newSession(KSimpleConfig *co, QString pgm = QString::null, const QStrList &args = QStrList(),
+ const QString &_term = QString::null, const QString &_icon = QString::null,
+ const QString &_title = QString::null, const QString &_cwd = QString::null);
+ void readProperties(KConfig *config, const QString &schema, bool globalConfigOnly);
+ void applySettingsToGUI();
+ void makeTabWidget();
+ void makeBasicGUI();
+ void runSession(TESession* s);
+ void addSession(TESession* s);
+ void detachSession(TESession* _se=0);
+ void setColorPixmaps();
+ void renameSession(TESession* ses);
+
+ void setSchema(ColorSchema* s, TEWidget* tewidget=0);
+ void setMasterMode(bool _state, TESession* _se=0);
+
+ void buildSessionMenus();
+ void addSessionCommand(const QString & path);
+ void loadSessionCommands();
+ void createSessionMenus();
+ void addScreenSession(const QString & path, const QString & socket);
+ void resetScreenSessions();
+ void checkBitmapFonts();
+
+ void initTEWidget(TEWidget* new_te, TEWidget* default_te);
+
+ void createSessionTab(TEWidget *widget, const QIconSet& iconSet,
+ const QString &text, int index = -1);
+ QIconSet iconSetForSession(TESession *session) const;
+
+ bool eventFilter( QObject *o, QEvent *e );
+
+ QPtrList<TEWidget> activeTEs();
+
+ QPtrDict<TESession> action2session;
+ QPtrDict<KRadioAction> session2action;
+ QPtrList<TESession> sessions;
+
+ QIntDict<KSimpleConfig> no2command; //QT4 - convert to QList
+
+ KSimpleConfig* m_defaultSession;
+ QString m_defaultSessionFilename;
+
+ KTabWidget* tabwidget;
+ TEWidget* te; // the visible TEWidget, either sole one or one of many
+ TESession* se;
+ TESession* se_previous;
+ TESession* m_initialSession;
+ ColorSchemaList* colors;
+ QString s_encodingName;
+
+ QPtrDict<KRootPixmap> rootxpms;
+ KWinModule* kWinModule;
+
+ KMenuBar* menubar;
+ KStatusBar* statusbar;
+
+ KPopupMenu* m_session;
+ KPopupMenu* m_edit;
+ KPopupMenu* m_view;
+ KPopupMenu* m_bookmarks;
+ KPopupMenu* m_bookmarksSession;
+ KPopupMenu* m_options;
+ KPopupMenu* m_schema;
+ KPopupMenu* m_keytab;
+ KPopupMenu* m_tabbarSessionsCommands;
+ KPopupMenu* m_signals;
+ KPopupMenu* m_help;
+ KPopupMenu* m_rightButton;
+ KPopupMenu* m_sessionList;
+ KPopupMenu* m_tabPopupMenu;
+ KPopupMenu* m_tabPopupTabsMenu;
+ KPopupMenu* m_tabbarPopupMenu;
+
+ KAction *m_zmodemUpload;
+ KToggleAction *monitorActivity, *m_tabMonitorActivity;
+ KToggleAction *monitorSilence, *m_tabMonitorSilence;
+ KToggleAction *masterMode, *m_tabMasterMode;
+ KToggleAction *showMenubar;
+ KToggleAction *m_fullscreen;
+
+ KSelectAction *selectSize;
+ KSelectAction *selectFont;
+ KSelectAction *selectScrollbar;
+ KSelectAction *selectTabbar;
+ KSelectAction *selectBell;
+ KSelectAction *selectSetEncoding;
+
+ KAction *m_clearHistory;
+ KAction *m_findHistory;
+ KAction *m_findNext;
+ KAction *m_findPrevious;
+ KAction *m_saveHistory;
+ KAction *m_detachSession;
+ KAction *m_moveSessionLeft;
+ KAction *m_moveSessionRight;
+
+ KAction *m_copyClipboard;
+ KAction *m_pasteClipboard;
+ KAction *m_pasteSelection;
+ KAction *m_clearTerminal;
+ KAction *m_resetClearTerminal;
+ KAction *m_clearAllSessionHistories;
+ KAction *m_renameSession;
+ KAction *m_saveProfile;
+ KAction *m_closeSession;
+ KAction *m_print;
+ KAction *m_quit;
+ KAction *m_tabDetachSession;
+
+ KActionCollection *m_shortcuts;
+
+ KonsoleBookmarkHandler *bookmarkHandler;
+ KonsoleBookmarkHandler *bookmarkHandlerSession;
+
+ KonsoleFind* m_finddialog;
+ bool m_find_first;
+ bool m_find_found;
+ QString m_find_pattern;
+
+ int cmd_serial;
+ int cmd_first_screen;
+ int n_keytab;
+ int n_defaultKeytab;
+ int n_scroll;
+ int n_tabbar;
+ int n_bell;
+ int n_render;
+ int curr_schema; // current schema no
+ int wallpaperSource;
+ int sessionIdCounter;
+ int monitorSilenceSeconds;
+
+ QString s_schema;
+ QString s_kconfigSchema;
+ QString s_word_seps; // characters that are considered part of a word
+ QString pmPath; // pixmap path
+ QString dropText;
+ QFont defaultFont;
+ QSize defaultSize;
+
+ QRect _saveGeometry;
+
+ QTimer m_closeTimeout;
+
+ TabViewModes m_tabViewMode;
+ bool b_dynamicTabHide;
+ bool b_autoResizeTabs;
+ bool b_installBitmapFonts;
+
+ bool b_framevis:1;
+ bool b_fullscreen:1;
+ bool m_menuCreated:1;
+ bool b_warnQuit:1;
+ bool isRestored:1;
+ bool b_allowResize:1; // Whether application may resize
+ bool b_fixedSize:1; // Whether user may resize
+ bool b_addToUtmp:1;
+ bool b_xonXoff:1;
+ bool b_bidiEnabled:1;
+
+ bool b_histEnabled:1;
+ bool b_fullScripting:1;
+ bool b_showstartuptip:1;
+ bool b_sessionShortcutsEnabled:1;
+ bool b_sessionShortcutsMapped:1;
+ bool b_matchTabWinTitle:1;
+
+ unsigned int m_histSize;
+ int m_separator_id;
+
+ TESession* m_contextMenuSession;
+
+ QToolButton* m_newSessionButton;
+ QToolButton* m_removeSessionButton;
+ QPoint m_newSessionButtonMousePressPos;
+
+ QSignalMapper* sessionNumberMapper;
+ QStringList sl_sessionShortCuts;
+ QString s_workDir;
+
+ QColor m_tabColor;
+};
+
+class QSpinBox;
+
+class HistoryTypeDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ HistoryTypeDialog(const HistoryType& histType,
+ unsigned int histSize,
+ QWidget *parent);
+
+public slots:
+
+ void slotHistEnable(bool);
+ void slotDefault();
+ void slotSetUnlimited();
+
+ unsigned int nbLines() const;
+ bool isOn() const;
+
+protected:
+ QLabel* m_label;
+ QSpinBox* m_size;
+ QCheckBox* m_btnEnable;
+ QPushButton* m_setUnlimited;
+};
+
+class SizeDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ SizeDialog(unsigned int const columns,
+ unsigned int const lines,
+ QWidget *parent);
+
+public slots:
+ void slotDefault();
+
+ unsigned int columns() const;
+ unsigned int lines() const;
+
+protected:
+ QSpinBox* m_columns;
+ QSpinBox* m_lines;
+};
+
+class KonsoleFind : public KEdFind
+{
+ Q_OBJECT
+public:
+ KonsoleFind( QWidget *parent = 0, const char *name=0, bool modal=true );
+ bool reg_exp() const;
+
+private slots:
+ void slotEditRegExp();
+
+private:
+ QCheckBox* m_asRegExp;
+ QDialog* m_editorDialog;
+ QPushButton* m_editRegExp;
+};
+
+#endif
diff --git a/konsole/konsole/konsole_part.cpp b/konsole/konsole/konsole_part.cpp
new file mode 100644
index 000000000..bfb183935
--- /dev/null
+++ b/konsole/konsole/konsole_part.cpp
@@ -0,0 +1,1133 @@
+/*
+ This file is part of the KDE system
+ Copyright (C) 1999,2000 Boloni Laszlo <lboloni@cpe.ucf.edu>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ */
+
+#include "konsole_part.h"
+
+#include <assert.h>
+
+#include <qfile.h>
+#include <qlayout.h>
+#include <qwmatrix.h>
+
+#include <kaboutdata.h>
+#include <kcharsets.h>
+#include <kdebug.h>
+#include <kfontdialog.h>
+#include <kglobalsettings.h>
+#include <kiconloader.h>
+#include <kinputdialog.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <krun.h>
+#include <kstdaction.h>
+#include <qlabel.h>
+#include <kprocctrl.h>
+
+#include <qcheckbox.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+#include <kpopupmenu.h>
+#include <krootpixmap.h>
+#include <kconfig.h>
+#include <kaction.h>
+
+// We can't use the ARGB32 visual when embedded in another application
+bool argb_visual = false;
+
+K_EXPORT_COMPONENT_FACTORY( libkonsolepart, konsoleFactory )
+
+/**
+ * We need one static instance of the factory for our C 'main' function
+ */
+KInstance *konsoleFactory::s_instance = 0L;
+KAboutData *konsoleFactory::s_aboutData = 0;
+
+konsoleFactory::konsoleFactory()
+{
+}
+
+konsoleFactory::~konsoleFactory()
+{
+ if (s_instance)
+ delete s_instance;
+
+ if ( s_aboutData )
+ delete s_aboutData;
+
+ s_instance = 0;
+ s_aboutData = 0;
+}
+
+KParts::Part *konsoleFactory::createPartObject(QWidget *parentWidget, const char *widgetName,
+ QObject *parent, const char *name, const char *classname,
+ const QStringList&)
+{
+// kdDebug(1211) << "konsoleFactory::createPart parentWidget=" << parentWidget << " parent=" << parent << endl;
+ KParts::Part *obj = new konsolePart(parentWidget, widgetName, parent, name, classname);
+ return obj;
+}
+
+KInstance *konsoleFactory::instance()
+{
+ if ( !s_instance )
+ {
+ s_aboutData = new KAboutData("konsole", I18N_NOOP("Konsole"), "1.5");
+ s_instance = new KInstance( s_aboutData );
+ }
+ return s_instance;
+}
+
+#define DEFAULT_HISTORY_SIZE 1000
+
+konsolePart::konsolePart(QWidget *_parentWidget, const char *widgetName, QObject *parent, const char *name, const char *classname)
+ : KParts::ReadOnlyPart(parent, name)
+,te(0)
+,se(0)
+,colors(0)
+,rootxpm(0)
+,blinkingCursor(0)
+,showFrame(0)
+,m_useKonsoleSettings(0)
+,selectBell(0)
+,selectLineSpacing(0)
+,selectScrollbar(0)
+,m_keytab(0)
+,m_schema(0)
+,m_signals(0)
+,m_options(0)
+,m_popupMenu(0)
+,b_useKonsoleSettings(false)
+,b_autoDestroy(true)
+,b_autoStartShell(true)
+,m_histSize(DEFAULT_HISTORY_SIZE)
+,m_runningShell( false )
+{
+ parentWidget=_parentWidget;
+ setInstance(konsoleFactory::instance());
+
+ m_extension = new konsoleBrowserExtension(this);
+
+ // This is needed since only konsole.cpp does it
+ // Without this -> crash on keypress... (David)
+ KeyTrans::loadAll();
+
+ m_streamEnabled = ( classname && strcmp( classname, "TerminalEmulator" ) == 0 );
+
+ QStrList eargs;
+
+
+ const char* shell = getenv("SHELL");
+ if (shell == NULL || *shell == '\0') shell = "/bin/sh";
+ eargs.append(shell);
+ te = new TEWidget(parentWidget,widgetName);
+ te->setMinimumSize(150,70); // allow resizing, cause resize in TEWidget
+
+ setWidget(te);
+ te->setFocus();
+ connect( te,SIGNAL(configureRequest(TEWidget*,int,int,int)),
+ this,SLOT(configureRequest(TEWidget*,int,int,int)) );
+
+ colors = new ColorSchemaList();
+ colors->checkSchemas();
+ colors->sort();
+
+ // Check to see which config file we use: konsolepartrc or konsolerc
+ KConfig* config = new KConfig("konsolepartrc", true);
+ config->setDesktopGroup();
+ b_useKonsoleSettings = config->readBoolEntry("use_konsole_settings", false);
+ delete config;
+
+ readProperties();
+
+ makeGUI();
+
+ if (m_schema)
+ {
+ updateSchemaMenu();
+
+ ColorSchema *sch=colors->find(s_schema);
+ if (sch)
+ curr_schema=sch->numb();
+ else
+ curr_schema = 0;
+
+ for (uint i=0; i<m_schema->count(); i++)
+ m_schema->setItemChecked(i,false);
+
+ m_schema->setItemChecked(curr_schema,true);
+ }
+
+ // insert keymaps into menu
+ if (m_keytab)
+ {
+ m_keytab->clear();
+
+ QStringList kt_titles;
+ typedef QMap<QString,KeyTrans*> QStringKeyTransMap;
+ QStringKeyTransMap kt_map;
+
+ for (int i = 0; i < KeyTrans::count(); i++)
+ {
+ KeyTrans* ktr = KeyTrans::find(i);
+ assert( ktr );
+ QString title=ktr->hdr().lower();
+ kt_titles << title;
+ kt_map[title] = ktr;
+ }
+ kt_titles.sort();
+ for ( QStringList::Iterator it = kt_titles.begin(); it != kt_titles.end(); ++it ) {
+ KeyTrans* ktr = kt_map[*it];
+ assert( ktr );
+ QString title=ktr->hdr();
+ m_keytab->insertItem(title.replace('&',"&&"),ktr->numb());
+ }
+ }
+
+ applySettingsToGUI();
+
+ QTimer::singleShot( 0, this, SLOT( autoShowShell() ) );
+}
+
+void konsolePart::autoShowShell()
+{
+ // possibly clear the screen?
+ if (b_autoStartShell)
+ showShell();
+}
+
+void konsolePart::setAutoDestroy( bool enabled )
+{
+ b_autoDestroy = enabled;
+}
+
+void konsolePart::setAutoStartShell( bool enabled )
+{
+ b_autoStartShell = enabled;
+}
+
+void konsolePart::doneSession(TESession*)
+{
+ // see doneSession in konsole.cpp
+ if (se && b_autoDestroy)
+ {
+// kdDebug(1211) << "doneSession - disconnecting done" << endl;
+ disconnect( se,SIGNAL(done(TESession*)),
+ this,SLOT(doneSession(TESession*)) );
+ se->setConnect(false);
+ //QTimer::singleShot(100,se,SLOT(terminate()));
+// kdDebug(1211) << "se->terminate()" << endl;
+ se->terminate();
+ }
+}
+
+void konsolePart::sessionDestroyed()
+{
+// kdDebug(1211) << "sessionDestroyed()" << endl;
+ disconnect( se, SIGNAL( destroyed() ), this, SLOT( sessionDestroyed() ) );
+ se = 0;
+ if (b_autoDestroy)
+ delete this;
+}
+
+void konsolePart::configureRequest(TEWidget*_te,int,int x,int y)
+{
+ if (m_popupMenu)
+ m_popupMenu->popup(_te->mapToGlobal(QPoint(x,y)));
+}
+
+konsolePart::~konsolePart()
+{
+// kdDebug(1211) << "konsolePart::~konsolePart() this=" << this << endl;
+ if ( se ) {
+ setAutoDestroy(false);
+ se->closeSession();
+
+ // Wait a bit for all childs to clean themselves up.
+ while(se && KProcessController::theKProcessController->waitForProcessExit(1))
+ ;
+
+ disconnect( se, SIGNAL( destroyed() ), this, SLOT( sessionDestroyed() ) );
+// kdDebug(1211) << "Deleting se session" << endl;
+ delete se;
+ se=0;
+ }
+
+ if (colors) delete colors;
+ colors=0;
+
+ //te is deleted by the framework
+}
+
+bool konsolePart::openURL( const KURL & url )
+{
+ //kdDebug(1211) << "konsolePart::openURL " << url.prettyURL() << endl;
+
+ if (currentURL==url) {
+ emit completed();
+ return true;
+ }
+
+ m_url = url;
+ emit setWindowCaption( url.prettyURL() );
+// kdDebug(1211) << "Set Window Caption to " << url.prettyURL() << "\n";
+ emit started( 0 );
+
+ if ( url.isLocalFile() ) {
+ struct stat buff;
+ stat( QFile::encodeName( url.path() ), &buff );
+ QString text = ( S_ISDIR( buff.st_mode ) ? url.path() : url.directory() );
+ showShellInDir( text );
+ }
+
+ emit completed();
+ return true;
+}
+
+void konsolePart::emitOpenURLRequest(const QString &cwd)
+{
+ KURL url;
+ url.setPath(cwd);
+ if (url==currentURL)
+ return;
+ currentURL=url;
+ m_extension->emitOpenURLRequest(url);
+}
+
+
+void konsolePart::makeGUI()
+{
+ if (!kapp->authorizeKAction("konsole_rmb"))
+ return;
+
+ actions = new KActionCollection( (KMainWindow*)parentWidget );
+ settingsActions = new KActionCollection( (KMainWindow*)parentWidget );
+
+ // Send Signal Menu -------------------------------------------------------------
+ if (kapp->authorizeKAction("send_signal"))
+ {
+ m_signals = new KPopupMenu((KMainWindow*)parentWidget);
+ m_signals->insertItem( i18n( "&Suspend Task" ) + " (STOP)", SIGSTOP);
+ m_signals->insertItem( i18n( "&Continue Task" ) + " (CONT)", SIGCONT);
+ m_signals->insertItem( i18n( "&Hangup" ) + " (HUP)", SIGHUP);
+ m_signals->insertItem( i18n( "&Interrupt Task" ) + " (INT)", SIGINT);
+ m_signals->insertItem( i18n( "&Terminate Task" ) + " (TERM)", SIGTERM);
+ m_signals->insertItem( i18n( "&Kill Task" ) + " (KILL)", SIGKILL);
+ m_signals->insertItem( i18n( "User Signal &1") + " (USR1)", SIGUSR1);
+ m_signals->insertItem( i18n( "User Signal &2") + " (USR2)", SIGUSR2);
+ connect(m_signals, SIGNAL(activated(int)), SLOT(sendSignal(int)));
+ }
+
+ // Settings Menu ----------------------------------------------------------------
+ if (kapp->authorizeKAction("settings"))
+ {
+ m_options = new KPopupMenu((KMainWindow*)parentWidget);
+
+ // Scrollbar
+ selectScrollbar = new KSelectAction(i18n("Sc&rollbar"), 0, this,
+ SLOT(slotSelectScrollbar()), settingsActions);
+
+ QStringList scrollitems;
+ scrollitems << i18n("&Hide") << i18n("&Left") << i18n("&Right");
+ selectScrollbar->setItems(scrollitems);
+ selectScrollbar->plug(m_options);
+
+ // Select Bell
+ m_options->insertSeparator();
+ selectBell = new KSelectAction(i18n("&Bell"), SmallIconSet( "bell"), 0 , this,
+ SLOT(slotSelectBell()), settingsActions, "bell");
+
+ QStringList bellitems;
+ bellitems << i18n("System &Bell")
+ << i18n("System &Notification")
+ << i18n("&Visible Bell")
+ << i18n("N&one");
+ selectBell->setItems(bellitems);
+ selectBell->plug(m_options);
+
+ m_fontsizes = new KActionMenu( i18n( "Font" ), SmallIconSet( "text" ), settingsActions, 0L );
+ m_fontsizes->insert( new KAction( i18n( "&Enlarge Font" ), SmallIconSet( "viewmag+" ), 0, this, SLOT( biggerFont() ), settingsActions, "enlarge_font" ) );
+ m_fontsizes->insert( new KAction( i18n( "&Shrink Font" ), SmallIconSet( "viewmag-" ), 0, this, SLOT( smallerFont() ), settingsActions, "shrink_font" ) );
+ m_fontsizes->insert( new KAction( i18n( "Se&lect..." ), SmallIconSet( "font" ), 0, this, SLOT( slotSelectFont() ), settingsActions, "select_font" ) );
+ m_fontsizes->plug(m_options);
+
+ // encoding menu, start with default checked !
+ selectSetEncoding = new KSelectAction( i18n( "&Encoding" ), SmallIconSet("charset" ), 0, this, SLOT(slotSetEncoding()), settingsActions, "set_encoding" );
+ QStringList list = KGlobal::charsets()->descriptiveEncodingNames();
+ list.prepend( i18n( "Default" ) );
+ selectSetEncoding->setItems(list);
+ selectSetEncoding->setCurrentItem (0);
+ selectSetEncoding->plug(m_options);
+
+ // Keyboard Options Menu ---------------------------------------------------
+ if (kapp->authorizeKAction("keyboard"))
+ {
+ m_keytab = new KPopupMenu((KMainWindow*)parentWidget);
+ m_keytab->setCheckable(true);
+ connect(m_keytab, SIGNAL(activated(int)), SLOT(keytab_menu_activated(int)));
+ m_options->insertItem( SmallIconSet( "key_bindings" ), i18n( "&Keyboard" ), m_keytab );
+ }
+
+ // Schema Options Menu -----------------------------------------------------
+ if (kapp->authorizeKAction("schema"))
+ {
+ m_schema = new KPopupMenu((KMainWindow*)parentWidget);
+ m_schema->setCheckable(true);
+ connect(m_schema, SIGNAL(activated(int)), SLOT(schema_menu_activated(int)));
+ connect(m_schema, SIGNAL(aboutToShow()), SLOT(schema_menu_check()));
+ m_options->insertItem( SmallIconSet( "colorize" ), i18n( "Sch&ema" ), m_schema);
+ }
+
+
+ KAction *historyType = new KAction(i18n("&History..."), "history", 0, this,
+ SLOT(slotHistoryType()), settingsActions, "history");
+ historyType->plug(m_options);
+ m_options->insertSeparator();
+
+ // Select line spacing
+ selectLineSpacing = new KSelectAction(i18n("Li&ne Spacing"),
+ SmallIconSet("leftjust"), 0, this,
+ SLOT(slotSelectLineSpacing()), settingsActions );
+
+ QStringList lineSpacingList;
+ lineSpacingList
+ << i18n("&0")
+ << i18n("&1")
+ << i18n("&2")
+ << i18n("&3")
+ << i18n("&4")
+ << i18n("&5")
+ << i18n("&6")
+ << i18n("&7")
+ << i18n("&8");
+ selectLineSpacing->setItems(lineSpacingList);
+ selectLineSpacing->plug(m_options);
+
+ // Blinking Cursor
+ blinkingCursor = new KToggleAction (i18n("Blinking &Cursor"),
+ 0, this,SLOT(slotBlinkingCursor()), settingsActions);
+ blinkingCursor->plug(m_options);
+
+ // Frame on/off
+ showFrame = new KToggleAction(i18n("Show Fr&ame"), 0,
+ this, SLOT(slotToggleFrame()), settingsActions);
+ showFrame->setCheckedState(i18n("Hide Fr&ame"));
+ showFrame->plug(m_options);
+
+ // Word Connectors
+ KAction *WordSeps = new KAction(i18n("Wor&d Connectors..."), 0, this,
+ SLOT(slotWordSeps()), settingsActions);
+ WordSeps->plug(m_options);
+
+ // Use Konsole's Settings
+ m_options->insertSeparator();
+ m_useKonsoleSettings = new KToggleAction( i18n("&Use Konsole's Settings"),
+ 0, this, SLOT(slotUseKonsoleSettings()), 0, "use_konsole_settings" );
+ m_useKonsoleSettings->plug(m_options);
+
+ // Save Settings
+ m_options->insertSeparator();
+ KAction *saveSettings = new KAction(i18n("&Save as Default"), "filesave", 0, this,
+ SLOT(saveProperties()), actions, "save_default");
+ saveSettings->plug(m_options);
+ if (KGlobalSettings::insertTearOffHandle())
+ m_options->insertTearOffHandle();
+ }
+
+ // Popup Menu -------------------------------------------------------------------
+ m_popupMenu = new KPopupMenu((KMainWindow*)parentWidget);
+ KAction* selectionEnd = new KAction(i18n("Set Selection End"), 0, te,
+ SLOT(setSelectionEnd()), actions, "selection_end");
+ selectionEnd->plug(m_popupMenu);
+
+ KAction *copyClipboard = new KAction(i18n("&Copy"), "editcopy", 0,
+ te, SLOT(copyClipboard()), actions, "edit_copy");
+ copyClipboard->plug(m_popupMenu);
+
+ KAction *pasteClipboard = new KAction(i18n("&Paste"), "editpaste", 0,
+ te, SLOT(pasteClipboard()), actions, "edit_paste");
+ pasteClipboard->plug(m_popupMenu);
+
+ if (m_signals)
+ {
+ m_popupMenu->insertItem(i18n("&Send Signal"), m_signals);
+ m_popupMenu->insertSeparator();
+ }
+
+ if (m_options)
+ {
+ m_popupMenu->insertItem(i18n("S&ettings"), m_options);
+ m_popupMenu->insertSeparator();
+ }
+
+ KAction *closeSession = new KAction(i18n("&Close Terminal Emulator"), "fileclose", 0, this,
+ SLOT(closeCurrentSession()), actions, "close_session");
+ closeSession->plug(m_popupMenu);
+ if (KGlobalSettings::insertTearOffHandle())
+ m_popupMenu->insertTearOffHandle();
+}
+
+void konsolePart::applySettingsToGUI()
+{
+ m_useKonsoleSettings->setChecked( b_useKonsoleSettings );
+ setSettingsMenuEnabled( !b_useKonsoleSettings );
+
+ applyProperties();
+
+ if ( b_useKonsoleSettings )
+ return; // Don't change Settings menu items
+
+ if (showFrame)
+ showFrame->setChecked( b_framevis );
+ if (selectScrollbar)
+ selectScrollbar->setCurrentItem(n_scroll);
+ updateKeytabMenu();
+ if (selectBell)
+ selectBell->setCurrentItem(n_bell);
+ if (selectLineSpacing)
+ selectLineSpacing->setCurrentItem(te->lineSpacing());
+ if (blinkingCursor)
+ blinkingCursor->setChecked(te->blinkingCursor());
+ if (m_schema)
+ m_schema->setItemChecked(curr_schema,true);
+ if (selectSetEncoding)
+ selectSetEncoding->setCurrentItem(n_encoding);
+}
+
+void konsolePart::applyProperties()
+{
+ if ( !se ) return;
+
+ if ( b_histEnabled && m_histSize )
+ se->setHistory( HistoryTypeBuffer(m_histSize ) );
+ else if ( b_histEnabled && !m_histSize )
+ se->setHistory(HistoryTypeFile() );
+ else
+ se->setHistory( HistoryTypeNone() );
+ se->setKeymapNo( n_keytab );
+
+ // FIXME: Move this somewhere else...
+ KConfig* config = new KConfig("konsolerc",true);
+ config->setGroup("UTMP");
+ se->setAddToUtmp( config->readBoolEntry("AddToUtmp",true));
+ delete config;
+
+ se->widget()->setVTFont( defaultFont );
+ se->setSchemaNo( curr_schema );
+ slotSetEncoding();
+}
+
+void konsolePart::setSettingsMenuEnabled( bool enable )
+{
+ uint count = settingsActions->count();
+ for ( uint i = 0; i < count; i++ )
+ {
+ settingsActions->action( i )->setEnabled( enable );
+ }
+
+ // FIXME: These are not in settingsActions.
+ // When disabled, the icons are not 'grey-ed' out.
+ m_keytab->setEnabled( enable );
+ m_schema->setEnabled( enable );
+}
+
+void konsolePart::readProperties()
+{
+ KConfig* config;
+
+ if ( b_useKonsoleSettings )
+ config = new KConfig( "konsolerc", true );
+ else
+ config = new KConfig( "konsolepartrc", true );
+
+ config->setDesktopGroup();
+
+ b_framevis = config->readBoolEntry("has frame",false);
+ b_histEnabled = config->readBoolEntry("historyenabled",true);
+ n_bell = QMIN(config->readUnsignedNumEntry("bellmode",TEWidget::BELLSYSTEM),3);
+ n_keytab=config->readNumEntry("keytab",0); // act. the keytab for this session
+ n_scroll = QMIN(config->readUnsignedNumEntry("scrollbar",TEWidget::SCRRIGHT),2);
+ m_histSize = config->readNumEntry("history",DEFAULT_HISTORY_SIZE);
+ s_word_seps= config->readEntry("wordseps",":@-./_~");
+
+ n_encoding = config->readNumEntry("encoding",0);
+
+ QFont tmpFont = KGlobalSettings::fixedFont();
+ defaultFont = config->readFontEntry("defaultfont", &tmpFont);
+
+ QString schema = config->readEntry("Schema");
+
+ s_kconfigSchema=config->readEntry("schema");
+ ColorSchema* sch = colors->find(schema.isEmpty() ? s_kconfigSchema : schema);
+ if (!sch) {
+ sch=(ColorSchema*)colors->at(0); //the default one
+ }
+ if (sch->hasSchemaFileChanged()) sch->rereadSchemaFile();
+ s_schema = sch->relPath();
+ curr_schema = sch->numb();
+ pmPath = sch->imagePath();
+ te->setColorTable(sch->table()); //FIXME: set twice here to work around a bug
+
+ if (sch->useTransparency()) {
+ if (!rootxpm)
+ rootxpm = new KRootPixmap(te);
+ rootxpm->setFadeEffect(sch->tr_x(), QColor(sch->tr_r(), sch->tr_g(), sch->tr_b()));
+ rootxpm->start();
+ rootxpm->repaint(true);
+ }
+ else {
+ if (rootxpm) {
+ rootxpm->stop();
+ delete rootxpm;
+ rootxpm=0;
+ }
+ pixmap_menu_activated(sch->alignment());
+ }
+
+ te->setBellMode(n_bell);
+ te->setBlinkingCursor(config->readBoolEntry("BlinkingCursor",false));
+ te->setFrameStyle( b_framevis?(QFrame::WinPanel|QFrame::Sunken):QFrame::NoFrame );
+ te->setLineSpacing( config->readUnsignedNumEntry( "LineSpacing", 0 ) );
+ te->setScrollbarLocation(n_scroll);
+ te->setWordCharacters(s_word_seps);
+
+ delete config;
+
+ config = new KConfig("konsolerc",true);
+ config->setDesktopGroup();
+ te->setTerminalSizeHint( config->readBoolEntry("TerminalSizeHint",true) );
+ delete config;
+}
+
+void konsolePart::saveProperties()
+{
+ KConfig* config = new KConfig("konsolepartrc");
+ config->setDesktopGroup();
+
+ if ( b_useKonsoleSettings ) { // Don't save Settings if using konsolerc
+ config->writeEntry("use_konsole_settings", m_useKonsoleSettings->isChecked());
+ } else {
+ config->writeEntry("bellmode",n_bell);
+ config->writeEntry("BlinkingCursor", te->blinkingCursor());
+ config->writeEntry("defaultfont", (se->widget())->getVTFont());
+ config->writeEntry("history", se->history().getSize());
+ config->writeEntry("historyenabled", b_histEnabled);
+ config->writeEntry("keytab",n_keytab);
+ config->writeEntry("has frame",b_framevis);
+ config->writeEntry("LineSpacing", te->lineSpacing());
+ config->writeEntry("schema",s_kconfigSchema);
+ config->writeEntry("scrollbar",n_scroll);
+ config->writeEntry("wordseps",s_word_seps);
+ config->writeEntry("encoding",n_encoding);
+ config->writeEntry("use_konsole_settings",m_useKonsoleSettings->isChecked());
+ }
+
+ config->sync();
+ delete config;
+}
+
+void konsolePart::sendSignal(int sn)
+{
+ if (se) se->sendSignal(sn);
+}
+
+void konsolePart::closeCurrentSession()
+{
+ if ( se ) se->closeSession();
+}
+
+void konsolePart::slotToggleFrame()
+{
+ b_framevis = showFrame->isChecked();
+ te->setFrameStyle( b_framevis?(QFrame::WinPanel|QFrame::Sunken):QFrame::NoFrame);
+}
+
+void konsolePart::slotSelectScrollbar()
+{
+ if ( ! se ) return;
+ n_scroll = selectScrollbar->currentItem();
+ te->setScrollbarLocation(n_scroll);
+}
+
+void konsolePart::slotSelectFont() {
+ if ( !se ) return;
+
+ QFont font = se->widget()->getVTFont();
+ if ( KFontDialog::getFont( font, true ) != QDialog::Accepted )
+ return;
+
+ se->widget()->setVTFont( font );
+}
+
+void konsolePart::biggerFont(void) {
+ if ( !se ) return;
+
+ QFont f = te->getVTFont();
+ f.setPointSize( f.pointSize() + 1 );
+ te->setVTFont( f );
+}
+
+void konsolePart::smallerFont(void) {
+ if ( !se ) return;
+
+ QFont f = te->getVTFont();
+ if ( f.pointSize() < 6 ) return; // A minimum size
+ f.setPointSize( f.pointSize() - 1 );
+ te->setVTFont( f );
+}
+
+void konsolePart::updateKeytabMenu()
+{
+ if ( se && m_keytab ) {
+ m_keytab->setItemChecked(n_keytab,false);
+ m_keytab->setItemChecked(se->keymapNo(),true);
+ n_keytab = se->keymapNo();
+ } else if ( m_keytab ) { // no se yet, happens at startup
+ m_keytab->setItemChecked(n_keytab, true);
+ }
+}
+
+void konsolePart::keytab_menu_activated(int item)
+{
+ if ( ! se ) return;
+ se->setKeymapNo(item);
+ updateKeytabMenu();
+}
+
+void konsolePart::schema_menu_activated(int item)
+{
+ setSchema(item);
+ s_kconfigSchema = s_schema; // This is the new default
+}
+
+void konsolePart::schema_menu_check()
+{
+ if (colors->checkSchemas()) {
+ colors->sort();
+ updateSchemaMenu();
+ }
+}
+
+void konsolePart::updateSchemaMenu()
+{
+ if (!m_schema) return;
+
+ m_schema->clear();
+ for (int i = 0; i < (int) colors->count(); i++) {
+ ColorSchema* s = (ColorSchema*)colors->at(i);
+ QString title=s->title();
+ m_schema->insertItem(title.replace('&',"&&"),s->numb(),0);
+ }
+
+ if (te && se) {
+ m_schema->setItemChecked(se->schemaNo(),true);
+ }
+}
+
+void konsolePart::setSchema(int numb)
+{
+ ColorSchema* s = colors->find(numb);
+ if (!s) {
+ kdWarning() << "No schema found. Using default." << endl;
+ s=(ColorSchema*)colors->at(0);
+ }
+ if (s->numb() != numb) {
+ kdWarning() << "No schema with number " << numb << endl;
+ }
+
+ if (s->hasSchemaFileChanged()) {
+ const_cast<ColorSchema *>(s)->rereadSchemaFile();
+ }
+ if (s) setSchema(s);
+}
+
+void konsolePart::setSchema(ColorSchema* s)
+{
+ if (!se) return;
+ if (!s) return;
+
+ if (m_schema) {
+ m_schema->setItemChecked(curr_schema,false);
+ m_schema->setItemChecked(s->numb(),true);
+ }
+
+ s_schema = s->relPath();
+ curr_schema = s->numb();
+ pmPath = s->imagePath();
+ te->setColorTable(s->table()); //FIXME: set twice here to work around a bug
+
+ if (s->useTransparency()) {
+ if (!rootxpm)
+ rootxpm = new KRootPixmap(te);
+ rootxpm->setFadeEffect(s->tr_x(), QColor(s->tr_r(), s->tr_g(), s->tr_b()));
+ rootxpm->start();
+ rootxpm->repaint(true);
+ }
+ else {
+ if (rootxpm) {
+ rootxpm->stop();
+ delete rootxpm;
+ rootxpm=0;
+ }
+ pixmap_menu_activated(s->alignment());
+ }
+
+ te->setColorTable(s->table());
+ se->setSchemaNo(s->numb());
+}
+
+void konsolePart::notifySize(int /* columns */, int /* lines */)
+{
+ ColorSchema *sch=colors->find(s_schema);
+
+ if (sch && sch->alignment() >= 3)
+ pixmap_menu_activated(sch->alignment());
+}
+
+void konsolePart::pixmap_menu_activated(int item)
+{
+ if (item <= 1) pmPath = "";
+ QPixmap pm(pmPath);
+ if (pm.isNull()) {
+ pmPath = "";
+ item = 1;
+ te->setBackgroundColor(te->getDefaultBackColor());
+ return;
+ }
+ // FIXME: respect scrollbar (instead of te->size)
+ n_render= item;
+ switch (item) {
+ case 1: // none
+ case 2: // tile
+ te->setBackgroundPixmap(pm);
+ break;
+ case 3: // center
+ { QPixmap bgPixmap;
+ bgPixmap.resize(te->size());
+ bgPixmap.fill(te->getDefaultBackColor());
+ bitBlt( &bgPixmap, ( te->size().width() - pm.width() ) / 2,
+ ( te->size().height() - pm.height() ) / 2,
+ &pm, 0, 0,
+ pm.width(), pm.height() );
+
+ te->setBackgroundPixmap(bgPixmap);
+ }
+ break;
+ case 4: // full
+ {
+ float sx = (float)te->size().width() / pm.width();
+ float sy = (float)te->size().height() / pm.height();
+ QWMatrix matrix;
+ matrix.scale( sx, sy );
+ te->setBackgroundPixmap(pm.xForm( matrix ));
+ }
+ break;
+ default: // oops
+ n_render = 1;
+ }
+}
+
+void konsolePart::slotHistoryType()
+{
+ if ( ! se ) return;
+ HistoryTypeDialog dlg(se->history(), m_histSize, (KMainWindow*)parentWidget);
+ if (dlg.exec()) {
+ if (dlg.isOn()) {
+ if (dlg.nbLines() > 0) {
+ se->setHistory(HistoryTypeBuffer(dlg.nbLines()));
+ m_histSize = dlg.nbLines();
+ b_histEnabled = true;
+ }
+ else {
+ se->setHistory(HistoryTypeFile());
+ m_histSize = 0;
+ b_histEnabled = true;
+ }
+ }
+ else {
+ se->setHistory(HistoryTypeNone());
+ m_histSize = dlg.nbLines();
+ b_histEnabled = false;
+ }
+ }
+}
+
+void konsolePart::slotSelectBell() {
+ n_bell = selectBell->currentItem();
+ te->setBellMode(n_bell);
+}
+
+void konsolePart::slotSetEncoding()
+{
+ if (!se) return;
+
+ bool found;
+ QString enc = KGlobal::charsets()->encodingForName(selectSetEncoding->currentText());
+ QTextCodec * qtc = KGlobal::charsets()->codecForName(enc, found);
+ if(!found)
+ {
+ kdDebug() << "Codec " << selectSetEncoding->currentText() << " not found!" << endl;
+ qtc = QTextCodec::codecForLocale();
+ }
+
+ n_encoding = selectSetEncoding->currentItem();
+ se->setEncodingNo(selectSetEncoding->currentItem());
+ se->getEmulation()->setCodec(qtc);
+}
+
+void konsolePart::slotSelectLineSpacing()
+{
+ te->setLineSpacing( selectLineSpacing->currentItem() );
+}
+
+void konsolePart::slotBlinkingCursor()
+{
+ te->setBlinkingCursor(blinkingCursor->isChecked());
+}
+
+void konsolePart::slotUseKonsoleSettings()
+{
+ b_useKonsoleSettings = m_useKonsoleSettings->isChecked();
+
+ setSettingsMenuEnabled( !b_useKonsoleSettings );
+
+ readProperties();
+
+ applySettingsToGUI();
+}
+
+void konsolePart::slotWordSeps() {
+ bool ok;
+
+ QString seps = KInputDialog::getText( i18n( "Word Connectors" ),
+ i18n( "Characters other than alphanumerics considered part of a word when double clicking:" ), s_word_seps, &ok, parentWidget );
+ if ( ok )
+ {
+ s_word_seps = seps;
+ te->setWordCharacters(s_word_seps);
+ }
+}
+
+void konsolePart::enableMasterModeConnections()
+{
+ if ( se ) se->setListenToKeyPress(true);
+}
+
+void konsolePart::updateTitle(TESession *)
+{
+ if ( se ) emit setWindowCaption( se->fullTitle() );
+}
+
+void konsolePart::guiActivateEvent( KParts::GUIActivateEvent * )
+{
+ // Don't let ReadOnlyPart::guiActivateEvent reset the window caption
+}
+
+bool konsolePart::doOpenStream( const QString& )
+{
+ return m_streamEnabled;
+}
+
+bool konsolePart::doWriteStream( const QByteArray& data )
+{
+ if ( m_streamEnabled )
+ {
+ QString cmd = QString::fromLocal8Bit( data.data(), data.size() );
+ se->sendSession( cmd );
+ return true;
+ }
+ return false;
+}
+
+bool konsolePart::doCloseStream()
+{
+ return m_streamEnabled;
+}
+
+//////////////////////////////////////////////////////////////////////
+
+HistoryTypeDialog::HistoryTypeDialog(const HistoryType& histType,
+ unsigned int histSize,
+ QWidget *parent)
+ : KDialogBase(Plain, i18n("History Configuration"),
+ Help | Default | Ok | Cancel, Ok,
+ parent)
+{
+ QFrame *mainFrame = plainPage();
+
+ QHBoxLayout *hb = new QHBoxLayout(mainFrame);
+
+ m_btnEnable = new QCheckBox(i18n("&Enable"), mainFrame);
+
+ QObject::connect(m_btnEnable, SIGNAL(toggled(bool)),
+ this, SLOT(slotHistEnable(bool)));
+
+ m_size = new QSpinBox(0, 10 * 1000 * 1000, 100, mainFrame);
+ m_size->setValue(histSize);
+ m_size->setSpecialValueText(i18n("Unlimited (number of lines)", "Unlimited"));
+
+ m_setUnlimited = new QPushButton(i18n("&Set Unlimited"), mainFrame);
+ connect( m_setUnlimited,SIGNAL(clicked()), this,SLOT(slotSetUnlimited()) );
+
+ hb->addWidget(m_btnEnable);
+ hb->addSpacing(10);
+ hb->addWidget(new QLabel(i18n("Number of lines:"), mainFrame));
+ hb->addWidget(m_size);
+ hb->addSpacing(10);
+ hb->addWidget(m_setUnlimited);
+
+ if ( ! histType.isOn()) {
+ m_btnEnable->setChecked(false);
+ slotHistEnable(false);
+ } else {
+ m_btnEnable->setChecked(true);
+ m_size->setValue(histType.getSize());
+ slotHistEnable(true);
+ }
+ setHelp("configure-history");
+}
+
+void HistoryTypeDialog::slotDefault()
+{
+ m_btnEnable->setChecked(true);
+ m_size->setValue(DEFAULT_HISTORY_SIZE);
+ slotHistEnable(true);
+}
+
+void HistoryTypeDialog::slotHistEnable(bool b)
+{
+ m_size->setEnabled(b);
+ m_setUnlimited->setEnabled(b);
+ if (b) m_size->setFocus();
+}
+
+void HistoryTypeDialog::slotSetUnlimited()
+{
+ m_size->setValue(0);
+}
+
+unsigned int HistoryTypeDialog::nbLines() const
+{
+ return m_size->value();
+}
+
+bool HistoryTypeDialog::isOn() const
+{
+ return m_btnEnable->isChecked();
+}
+
+konsoleBrowserExtension::konsoleBrowserExtension(konsolePart *parent)
+ : KParts::BrowserExtension(parent, "konsoleBrowserExtension")
+{
+}
+
+konsoleBrowserExtension::~konsoleBrowserExtension()
+{
+}
+
+void konsoleBrowserExtension::emitOpenURLRequest(const KURL &url)
+{
+ emit openURLRequest(url);
+}
+
+const char* sensibleShell()
+{
+ const char* shell = getenv("SHELL");
+ if (shell == NULL || *shell == '\0') shell = "/bin/sh";
+ return shell;
+}
+
+void konsolePart::startProgram( const QString& program,
+ const QStrList& args )
+{
+// kdDebug(1211) << "konsolePart::startProgram for " << program << endl;
+ if ( !se )
+ newSession();
+ se->setProgram( program, args );
+ se->run();
+}
+
+void konsolePart::newSession()
+{
+ if ( se ) delete se;
+ se = new TESession(te, "xterm", parentWidget->winId());
+ connect( se,SIGNAL(done(TESession*)),
+ this,SLOT(doneSession(TESession*)) );
+ connect( se,SIGNAL(openURLRequest(const QString &)),
+ this,SLOT(emitOpenURLRequest(const QString &)) );
+ connect( se, SIGNAL( updateTitle(TESession*) ),
+ this, SLOT( updateTitle(TESession*) ) );
+ connect( se, SIGNAL(enableMasterModeConnections()),
+ this, SLOT(enableMasterModeConnections()) );
+ connect( se, SIGNAL( processExited(KProcess *) ),
+ this, SIGNAL( processExited(KProcess *) ) );
+ connect( se, SIGNAL( receivedData( const QString& ) ),
+ this, SIGNAL( receivedData( const QString& ) ) );
+ connect( se, SIGNAL( forkedChild() ),
+ this, SIGNAL( forkedChild() ));
+
+ // We ignore the following signals
+ //connect( se, SIGNAL(renameSession(TESession*,const QString&)),
+ // this, SLOT(slotRenameSession(TESession*, const QString&)) );
+ //connect( se->getEmulation(), SIGNAL(changeColumns(int)),
+ // this, SLOT(changeColumns(int)) );
+ //connect( se, SIGNAL(disableMasterModeConnections()),
+ // this, SLOT(disableMasterModeConnections()) );
+
+ applyProperties();
+
+ se->setConnect(true);
+ // se->run();
+ connect( se, SIGNAL( destroyed() ), this, SLOT( sessionDestroyed() ) );
+// setFont( n_font ); // we do this here, to make TEWidget recalculate
+ // its geometry..
+}
+
+void konsolePart::showShellInDir( const QString& dir )
+{
+ if ( ! m_runningShell )
+ {
+ const char* s = sensibleShell();
+ QStrList args;
+ args.append( s );
+ startProgram( s, args );
+ m_runningShell = true;
+ };
+
+ if ( ! dir.isNull() )
+ {
+ QString text = dir;
+ KRun::shellQuote(text);
+ text = QString::fromLatin1("cd ") + text + '\n';
+ te->emitText( text );
+ };
+}
+
+void konsolePart::showShell()
+{
+ if ( ! se ) showShellInDir( QString::null );
+}
+
+void konsolePart::sendInput( const QString& text )
+{
+ te->emitText( text );
+}
+
+#include "konsole_part.moc"
diff --git a/konsole/konsole/konsole_part.h b/konsole/konsole/konsole_part.h
new file mode 100644
index 000000000..6f410d3c3
--- /dev/null
+++ b/konsole/konsole/konsole_part.h
@@ -0,0 +1,241 @@
+/* -*- C++ -*-
+ This file is part of the KDE system
+ Copyright (C) 1999,2000 Boloni Laszlo <lboloni@cpe.ucf.edu>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KONSOLE_PART_H
+#define KONSOLE_PART_H
+
+#include <kparts/browserextension.h>
+#include <kparts/factory.h>
+
+
+#include <kdialogbase.h>
+
+#include <kde_terminal_interface.h>
+
+#include "schema.h"
+#include "session.h"
+
+class KInstance;
+class konsoleBrowserExtension;
+class QPushButton;
+class QSpinBox;
+class KPopupMenu;
+class KActionMenu;
+class QCheckBox;
+class KRootPixmap;
+class KToggleAction;
+class KSelectAction;
+
+namespace KParts { class GUIActivateEvent; }
+
+class konsoleFactory : public KParts::Factory
+{
+ Q_OBJECT
+public:
+ konsoleFactory();
+ virtual ~konsoleFactory();
+
+ virtual KParts::Part* createPartObject(QWidget *parentWidget = 0, const char *widgetName = 0,
+ QObject* parent = 0, const char* name = 0,
+ const char* classname = "KParts::Part",
+ const QStringList &args = QStringList());
+
+ static KInstance *instance();
+
+ private:
+ static KInstance *s_instance;
+ static KAboutData *s_aboutData;
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class konsolePart: public KParts::ReadOnlyPart, public TerminalInterface, public ExtTerminalInterface
+{
+ Q_OBJECT
+ public:
+ konsolePart(QWidget *parentWidget, const char *widgetName, QObject * parent, const char *name, const char *classname = 0);
+ virtual ~konsolePart();
+
+signals:
+ void processExited( KProcess * );
+ void receivedData( const QString& s );
+ void forkedChild();
+ protected:
+ virtual bool openURL( const KURL & url );
+ virtual bool openFile() {return false;} // never used
+ virtual bool closeURL() {return true;}
+ virtual void guiActivateEvent( KParts::GUIActivateEvent * event );
+
+ protected slots:
+ void showShell();
+
+ void doneSession(TESession*);
+ void sessionDestroyed();
+ void configureRequest(TEWidget*,int,int x,int y);
+ void updateTitle(TESession*);
+ void enableMasterModeConnections();
+
+ private slots:
+ void emitOpenURLRequest(const QString &url);
+
+ void readProperties();
+ void saveProperties();
+ void applyProperties();
+ void setSettingsMenuEnabled( bool );
+
+ void sendSignal(int n);
+ void closeCurrentSession();
+
+ void notifySize(int /*columns*/, int /*lines*/);
+
+ void slotToggleFrame();
+ void slotSelectScrollbar();
+ void slotSelectFont();
+ void schema_menu_check();
+ void keytab_menu_activated(int item);
+ void updateSchemaMenu();
+ void setSchema(int n);
+ void pixmap_menu_activated(int item);
+ void schema_menu_activated(int item);
+ void slotHistoryType();
+ void slotSelectBell();
+ void slotSelectLineSpacing();
+ void slotBlinkingCursor();
+ void slotUseKonsoleSettings();
+ void slotWordSeps();
+ void slotSetEncoding();
+ void biggerFont();
+ void smallerFont();
+
+ void autoShowShell();
+
+ private:
+ konsoleBrowserExtension *m_extension;
+ KURL currentURL;
+
+ void makeGUI();
+ void applySettingsToGUI();
+
+ void setSchema(ColorSchema* s);
+ void updateKeytabMenu();
+
+ bool doOpenStream( const QString& );
+ bool doWriteStream( const QByteArray& );
+ bool doCloseStream();
+
+ QWidget* parentWidget;
+ TEWidget* te;
+ TESession* se;
+ ColorSchemaList* colors;
+ KRootPixmap* rootxpm;
+
+ KActionCollection* actions;
+ KActionCollection* settingsActions;
+
+ KToggleAction* blinkingCursor;
+ KToggleAction* showFrame;
+ KToggleAction* m_useKonsoleSettings;
+
+ KSelectAction* selectBell;
+ KSelectAction* selectLineSpacing;
+ KSelectAction* selectScrollbar;
+ KSelectAction* selectSetEncoding;
+
+ KActionMenu* m_fontsizes;
+
+ KPopupMenu* m_keytab;
+ KPopupMenu* m_schema;
+ KPopupMenu* m_signals;
+ KPopupMenu* m_options;
+ KPopupMenu* m_popupMenu;
+
+ QFont defaultFont;
+
+ QString pmPath; // pixmap path
+ QString s_schema;
+ QString s_kconfigSchema;
+ QString s_word_seps; // characters that are considered part of a word
+
+ bool b_framevis:1;
+ bool b_histEnabled:1;
+ bool b_useKonsoleSettings:1;
+ bool b_autoDestroy:1;
+ bool b_autoStartShell:1;
+
+ int curr_schema; // current schema no
+ int n_bell;
+ int n_keytab;
+ int n_render;
+ int n_scroll;
+ unsigned m_histSize;
+ bool m_runningShell;
+ bool m_streamEnabled;
+ int n_encoding;
+
+public:
+ // these are the implementations for the TermEmuInterface
+ // functions...
+ void startProgram( const QString& program,
+ const QStrList& args );
+ void newSession();
+ void showShellInDir( const QString& dir );
+ void sendInput( const QString& text );
+ void setAutoDestroy( bool );
+ void setAutoStartShell( bool );
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class HistoryTypeDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ HistoryTypeDialog(const HistoryType& histType,
+ unsigned int histSize,
+ QWidget *parent);
+
+public slots:
+ void slotDefault();
+ void slotSetUnlimited();
+ void slotHistEnable(bool);
+
+ unsigned int nbLines() const;
+ bool isOn() const;
+
+protected:
+ QCheckBox* m_btnEnable;
+ QSpinBox* m_size;
+ QPushButton* m_setUnlimited;
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class konsoleBrowserExtension : public KParts::BrowserExtension
+{
+ Q_OBJECT
+ friend class konsolePart;
+ public:
+ konsoleBrowserExtension(konsolePart *parent);
+ virtual ~konsoleBrowserExtension();
+
+ void emitOpenURLRequest(const KURL &url);
+};
+
+#endif
diff --git a/konsole/konsole/konsole_wcwidth.cpp b/konsole/konsole/konsole_wcwidth.cpp
new file mode 100644
index 000000000..eeb82f4a2
--- /dev/null
+++ b/konsole/konsole/konsole_wcwidth.cpp
@@ -0,0 +1,216 @@
+/* $XFree86: xc/programs/xterm/wcwidth.c,v 1.3 2001/07/29 22:08:16 tsi Exp $ */
+/*
+ * This is an implementation of wcwidth() and wcswidth() as defined in
+ * "The Single UNIX Specification, Version 2, The Open Group, 1997"
+ * <http://www.UNIX-systems.org/online.html>
+ *
+ * Markus Kuhn -- 2001-01-12 -- public domain
+ */
+
+#include "konsole_wcwidth.h"
+
+struct interval {
+ unsigned short first;
+ unsigned short last;
+};
+
+/* auxiliary function for binary search in interval table */
+static int bisearch(Q_UINT16 ucs, const struct interval *table, int max) {
+ int min = 0;
+ int mid;
+
+ if (ucs < table[0].first || ucs > table[max].last)
+ return 0;
+ while (max >= min) {
+ mid = (min + max) / 2;
+ if (ucs > table[mid].last)
+ min = mid + 1;
+ else if (ucs < table[mid].first)
+ max = mid - 1;
+ else
+ return 1;
+ }
+
+ return 0;
+}
+
+
+/* The following functions define the column width of an ISO 10646
+ * character as follows:
+ *
+ * - The null character (U+0000) has a column width of 0.
+ *
+ * - Other C0/C1 control characters and DEL will lead to a return
+ * value of -1.
+ *
+ * - Non-spacing and enclosing combining characters (general
+ * category code Mn or Me in the Unicode database) have a
+ * column width of 0.
+ *
+ * - Other format characters (general category code Cf in the Unicode
+ * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0.
+ *
+ * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)
+ * have a column width of 0.
+ *
+ * - Spacing characters in the East Asian Wide (W) or East Asian
+ * FullWidth (F) category as defined in Unicode Technical
+ * Report #11 have a column width of 2.
+ *
+ * - All remaining characters (including all printable
+ * ISO 8859-1 and WGL4 characters, Unicode control characters,
+ * etc.) have a column width of 1.
+ *
+ * This implementation assumes that Q_UINT16 characters are encoded
+ * in ISO 10646.
+ */
+
+int konsole_wcwidth(Q_UINT16 ucs)
+{
+ /* sorted list of non-overlapping intervals of non-spacing characters */
+ static const struct interval combining[] = {
+ { 0x0300, 0x034E }, { 0x0360, 0x0362 }, { 0x0483, 0x0486 },
+ { 0x0488, 0x0489 }, { 0x0591, 0x05A1 }, { 0x05A3, 0x05B9 },
+ { 0x05BB, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C4 }, { 0x064B, 0x0655 }, { 0x0670, 0x0670 },
+ { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
+ { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 }, { 0x0901, 0x0902 }, { 0x093C, 0x093C },
+ { 0x0941, 0x0948 }, { 0x094D, 0x094D }, { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, { 0x09BC, 0x09BC },
+ { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 },
+ { 0x0A02, 0x0A02 }, { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 },
+ { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, { 0x0A70, 0x0A71 },
+ { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, { 0x0AC1, 0x0AC5 },
+ { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, { 0x0B01, 0x0B01 },
+ { 0x0B3C, 0x0B3C }, { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 },
+ { 0x0B4D, 0x0B4D }, { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 },
+ { 0x0BC0, 0x0BC0 }, { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 }, { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 },
+ { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD },
+ { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, { 0x0DCA, 0x0DCA },
+ { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, { 0x0F80, 0x0F84 },
+ { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, { 0x1032, 0x1032 },
+ { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, { 0x1058, 0x1059 },
+ { 0x1160, 0x11FF }, { 0x17B7, 0x17BD }, { 0x17C6, 0x17C6 },
+ { 0x17C9, 0x17D3 }, { 0x180B, 0x180E }, { 0x18A9, 0x18A9 },
+ { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x206A, 0x206F },
+ { 0x20D0, 0x20E3 }, { 0x302A, 0x302F }, { 0x3099, 0x309A },
+ { 0xFB1E, 0xFB1E }, { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF },
+ { 0xFFF9, 0xFFFB }
+ };
+
+ /* test for 8-bit control characters */
+ if (ucs == 0)
+ return 0;
+ if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))
+ return -1;
+
+ /* binary search in table of non-spacing characters */
+ if (bisearch(ucs, combining,
+ sizeof(combining) / sizeof(struct interval) - 1))
+ return 0;
+
+ /* if we arrive here, ucs is not a combining or C0/C1 control character */
+
+ return 1 +
+ (ucs >= 0x1100 &&
+ (ucs <= 0x115f || /* Hangul Jamo init. consonants */
+ (ucs >= 0x2e80 && ucs <= 0xa4cf && (ucs & ~0x0011) != 0x300a &&
+ ucs != 0x303f) || /* CJK ... Yi */
+ (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
+ (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
+ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
+ (ucs >= 0xff00 && ucs <= 0xff5f) || /* Fullwidth Forms */
+ (ucs >= 0xffe0 && ucs <= 0xffe6) /* do not compare UINT16 with 0x20000 ||
+ (ucs >= 0x20000 && ucs <= 0x2ffff) */));
+}
+
+#if 0
+/*
+ * The following function is the same as konsole_wcwidth(), except that
+ * spacing characters in the East Asian Ambiguous (A) category as
+ * defined in Unicode Technical Report #11 have a column width of 2.
+ * This experimental variant might be useful for users of CJK legacy
+ * encodings who want to migrate to UCS. It is not otherwise
+ * recommended for general use.
+ */
+int konsole_wcwidth_cjk(Q_UINT16 ucs)
+{
+ /* sorted list of non-overlapping intervals of East Asian Ambiguous
+ * characters */
+ static const struct interval ambiguous[] = {
+ { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 },
+ { 0x00AA, 0x00AA }, { 0x00AD, 0x00AD }, { 0x00B0, 0x00B4 },
+ { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 },
+ { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 },
+ { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED },
+ { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA },
+ { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 },
+ { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B },
+ { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 },
+ { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 },
+ { 0x0148, 0x014A }, { 0x014D, 0x014D }, { 0x0152, 0x0153 },
+ { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE },
+ { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 },
+ { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA },
+ { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 },
+ { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, { 0x02CD, 0x02CD },
+ { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, { 0x02DD, 0x02DD },
+ { 0x0391, 0x03A1 }, { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 },
+ { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 }, { 0x0410, 0x044F },
+ { 0x0451, 0x0451 }, { 0x2010, 0x2010 }, { 0x2013, 0x2016 },
+ { 0x2018, 0x2019 }, { 0x201C, 0x201D }, { 0x2020, 0x2021 },
+ { 0x2025, 0x2027 }, { 0x2030, 0x2030 }, { 0x2032, 0x2033 },
+ { 0x2035, 0x2035 }, { 0x203B, 0x203B }, { 0x2074, 0x2074 },
+ { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC },
+ { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 },
+ { 0x2113, 0x2113 }, { 0x2121, 0x2122 }, { 0x2126, 0x2126 },
+ { 0x212B, 0x212B }, { 0x2154, 0x2155 }, { 0x215B, 0x215B },
+ { 0x215E, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 },
+ { 0x2190, 0x2199 }, { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 },
+ { 0x2200, 0x2200 }, { 0x2202, 0x2203 }, { 0x2207, 0x2208 },
+ { 0x220B, 0x220B }, { 0x220F, 0x220F }, { 0x2211, 0x2211 },
+ { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 },
+ { 0x2223, 0x2223 }, { 0x2225, 0x2225 }, { 0x2227, 0x222C },
+ { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D },
+ { 0x2248, 0x2248 }, { 0x224C, 0x224C }, { 0x2252, 0x2252 },
+ { 0x2260, 0x2261 }, { 0x2264, 0x2267 }, { 0x226A, 0x226B },
+ { 0x226E, 0x226F }, { 0x2282, 0x2283 }, { 0x2286, 0x2287 },
+ { 0x2295, 0x2295 }, { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 },
+ { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, { 0x2460, 0x24BF },
+ { 0x24D0, 0x24E9 }, { 0x2500, 0x254B }, { 0x2550, 0x2574 },
+ { 0x2580, 0x258F }, { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 },
+ { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 },
+ { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 },
+ { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 },
+ { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, { 0x2609, 0x2609 },
+ { 0x260E, 0x260F }, { 0x261C, 0x261C }, { 0x261E, 0x261E },
+ { 0x2640, 0x2640 }, { 0x2642, 0x2642 }, { 0x2660, 0x2661 },
+ { 0x2663, 0x2665 }, { 0x2667, 0x266A }, { 0x266C, 0x266D },
+ { 0x266F, 0x266F }, { 0x300A, 0x300B }, { 0x301A, 0x301B },
+ { 0xE000, 0xF8FF }, { 0xFFFD, 0xFFFD }
+ };
+
+ /* binary search in table of non-spacing characters */
+ if (bisearch(ucs, ambiguous,
+ sizeof(ambiguous) / sizeof(struct interval) - 1))
+ return 2;
+
+ return konsole_wcwidth(ucs);
+}
+#endif
+
+// single byte char: +1, multi byte char: +2
+int string_width( const QString &txt )
+{
+ int w = 0;
+ for ( uint i = 0; i < txt.length(); ++i )
+ w += konsole_wcwidth( txt[ i ].unicode() );
+ return w;
+}
diff --git a/konsole/konsole/konsole_wcwidth.h b/konsole/konsole/konsole_wcwidth.h
new file mode 100644
index 000000000..274fc5b7d
--- /dev/null
+++ b/konsole/konsole/konsole_wcwidth.h
@@ -0,0 +1,19 @@
+/* $XFree86: xc/programs/xterm/wcwidth.h,v 1.2 2001/06/18 19:09:27 dickey Exp $ */
+
+/* Markus Kuhn -- 2001-01-12 -- public domain */
+/* Adaptions for KDE by Waldo Bastian <bastian@kde.org> */
+
+#ifndef _KONSOLE_WCWIDTH_H_
+#define _KONSOLE_WCWIDTH_H_
+
+#include <qglobal.h>
+#include <qstring.h>
+
+int konsole_wcwidth(Q_UINT16 ucs);
+#if 0
+int konsole_wcwidth_cjk(Q_UINT16 ucs);
+#endif
+
+int string_width( const QString &txt );
+
+#endif
diff --git a/konsole/konsole/konsolebookmarkhandler.cpp b/konsole/konsole/konsolebookmarkhandler.cpp
new file mode 100644
index 000000000..27bdb4f87
--- /dev/null
+++ b/konsole/konsole/konsolebookmarkhandler.cpp
@@ -0,0 +1,104 @@
+/* This file was part of the KDE libraries
+ Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@kde.org>
+
+ library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation, version 2.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+// Born as kdelibs/kio/kfile/kfilebookmarkhandler.cpp
+
+#include <kpopupmenu.h>
+#include <kstandarddirs.h>
+#include <kshell.h>
+#include <kio/job.h>
+#include <kio/netaccess.h>
+#include <kdebug.h>
+#include <qfile.h>
+
+#include "konsole.h"
+#include "konsolebookmarkmenu.h"
+#include "konsolebookmarkhandler.h"
+
+KonsoleBookmarkHandler::KonsoleBookmarkHandler( Konsole *konsole, bool toplevel )
+ : QObject( konsole, "KonsoleBookmarkHandler" ),
+ KBookmarkOwner(),
+ m_konsole( konsole )
+{
+ m_menu = new KPopupMenu( konsole, "bookmark menu" );
+
+ // KDE3.5 - Konsole's bookmarks are now in konsole/bookmarks.xml
+ // TODO: Consider removing for KDE4
+ QString new_bm_file = locateLocal( "data", "konsole/bookmarks.xml" );
+ if ( !QFile::exists( new_bm_file ) ) {
+ QString old_bm_file = locateLocal( "data", "kfile/bookmarks.xml" );
+ if ( QFile::exists( old_bm_file ) )
+ // We want sync here...
+ if ( !KIO::NetAccess::copy( KURL( old_bm_file ),
+ KURL ( new_bm_file ), 0 ) ) {
+ kdWarning()<<KIO::NetAccess::lastErrorString()<<endl;
+ }
+ }
+
+ m_file = locate( "data", "konsole/bookmarks.xml" );
+ if ( m_file.isEmpty() )
+ m_file = locateLocal( "data", "konsole/bookmarks.xml" );
+
+ KBookmarkManager *manager = KBookmarkManager::managerForFile( m_file, false);
+ manager->setEditorOptions(kapp->caption(), false);
+ manager->setUpdate( true );
+ manager->setShowNSBookmarks( false );
+
+ connect( manager, SIGNAL( changed(const QString &, const QString &) ),
+ SLOT( slotBookmarksChanged(const QString &, const QString &) ) );
+
+ if (toplevel) {
+ m_bookmarkMenu = new KonsoleBookmarkMenu( manager, this, m_menu,
+ konsole->actionCollection(), true );
+ } else {
+ m_bookmarkMenu = new KonsoleBookmarkMenu( manager, this, m_menu,
+ NULL, false /* Not toplevel */
+ ,false /* No 'Add Bookmark' */);
+ }
+}
+
+KonsoleBookmarkHandler::~KonsoleBookmarkHandler()
+{
+ delete m_bookmarkMenu;
+}
+
+QString KonsoleBookmarkHandler::currentURL() const
+{
+ return m_konsole->baseURL().prettyURL();
+}
+
+QString KonsoleBookmarkHandler::currentTitle() const
+{
+ const KURL &u = m_konsole->baseURL();
+ if (u.isLocalFile())
+ {
+ QString path = u.path();
+ path = KShell::tildeExpand(path);
+ return path;
+ }
+ return u.prettyURL();
+}
+
+void KonsoleBookmarkHandler::slotBookmarksChanged( const QString &,
+ const QString &)
+{
+ // This is called when someone changes bookmarks in konsole....
+ m_bookmarkMenu->slotBookmarksChanged("");
+}
+
+#include "konsolebookmarkhandler.moc"
diff --git a/konsole/konsole/konsolebookmarkhandler.h b/konsole/konsole/konsolebookmarkhandler.h
new file mode 100644
index 000000000..63ab747d9
--- /dev/null
+++ b/konsole/konsole/konsolebookmarkhandler.h
@@ -0,0 +1,62 @@
+/* This file wass part of the KDE libraries
+ Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@kde.org>
+
+ library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation, version 2.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+// Born as kdelibs/kio/kfile/kfilebookmarkhandler.h
+
+#ifndef KONSOLEBOOKMARKHANDLER_H
+#define KONSOLEBOOKMARKHANDLER_H
+
+#include <kbookmarkmanager.h>
+#include "konsolebookmarkmenu.h"
+
+class KPopupMenu;
+class KonsoleBookmarkMenu;
+class KBookmarkManager;
+
+class KonsoleBookmarkHandler : public QObject, public KBookmarkOwner
+{
+ Q_OBJECT
+
+public:
+ KonsoleBookmarkHandler( Konsole *konsole, bool toplevel );
+ ~KonsoleBookmarkHandler();
+
+ QPopupMenu * popupMenu();
+
+ // KBookmarkOwner interface:
+ virtual void openBookmarkURL( const QString& url, const QString& title )
+ { emit openURL( url, title ); }
+ virtual QString currentURL() const;
+ virtual QString currentTitle() const;
+
+ KPopupMenu *menu() const { return m_menu; }
+
+private slots:
+ void slotBookmarksChanged( const QString &, const QString & caller );
+
+signals:
+ void openURL( const QString& url, const QString& title );
+
+private:
+ Konsole *m_konsole;
+ KPopupMenu *m_menu;
+ KonsoleBookmarkMenu *m_bookmarkMenu;
+ QString m_file;
+};
+
+#endif // KONSOLEBOOKMARKHANDLER_H
diff --git a/konsole/konsole/konsolebookmarkmenu.cpp b/konsole/konsole/konsolebookmarkmenu.cpp
new file mode 100644
index 000000000..ea82a75e3
--- /dev/null
+++ b/konsole/konsole/konsolebookmarkmenu.cpp
@@ -0,0 +1,156 @@
+/* This file was part of the KDE libraries
+ Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@kde.org>
+
+ library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation, version 2.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include <kpopupmenu.h>
+#include <kstandarddirs.h>
+#include <kaction.h>
+
+#include "konsole.h"
+#include "konsolebookmarkmenu.h"
+#include "konsolebookmarkhandler.h"
+
+KonsoleBookmarkMenu::KonsoleBookmarkMenu( KBookmarkManager* mgr,
+ KonsoleBookmarkHandler * _owner, KPopupMenu * _parentMenu,
+ KActionCollection *collec, bool _isRoot, bool _add,
+ const QString & parentAddress )
+: KBookmarkMenu( mgr, _owner, _parentMenu, collec, _isRoot, _add,
+ parentAddress),
+ m_kOwner(_owner)
+{
+ m_bAddShortcuts = false;
+ /*
+ * First, we disconnect KBookmarkMenu::slotAboutToShow()
+ * Then, we connect KonsoleBookmarkMenu::slotAboutToShow().
+ * They are named differently because the SLOT() macro thinks we want
+ * KonsoleBookmarkMenu::KBookmarkMenu::slotAboutToShow()
+ * Could this be solved if slotAboutToShow() is virtual in KBookmarMenu?
+ */
+ disconnect( _parentMenu, SIGNAL( aboutToShow() ), this,
+ SLOT( slotAboutToShow() ) );
+ connect( _parentMenu, SIGNAL( aboutToShow() ),
+ SLOT( slotAboutToShow2() ) );
+}
+
+/*
+ * Duplicate this exactly because KBookmarkMenu::slotBookmarkSelected can't
+ * be overrided. I would have preferred to NOT have to do this.
+ *
+ * Why did I do this?
+ * - when KBookmarkMenu::fillbBookmarkMenu() creates sub-KBookmarkMenus.
+ * - when ... adds KActions, it uses KBookmarkMenu::slotBookmarkSelected()
+ * instead of KonsoleBookmarkMenu::slotBookmarkSelected().
+ */
+void KonsoleBookmarkMenu::slotAboutToShow2()
+{
+ // Did the bookmarks change since the last time we showed them ?
+ if ( m_bDirty )
+ {
+ m_bDirty = false;
+ refill();
+ }
+}
+
+void KonsoleBookmarkMenu::refill()
+{
+ m_lstSubMenus.clear();
+ QPtrListIterator<KAction> it( m_actions );
+ for (; it.current(); ++it )
+ it.current()->unplug( m_parentMenu );
+ m_parentMenu->clear();
+ m_actions.clear();
+ fillBookmarkMenu();
+ m_parentMenu->adjustSize();
+}
+
+void KonsoleBookmarkMenu::fillBookmarkMenu()
+{
+ if ( m_bIsRoot )
+ {
+ if ( m_bAddBookmark )
+ addAddBookmark();
+
+ addEditBookmarks();
+
+ if ( m_bAddBookmark )
+ addNewFolder();
+ }
+
+ KBookmarkGroup parentBookmark = m_pManager->findByAddress( m_parentAddress ).toGroup();
+ Q_ASSERT(!parentBookmark.isNull());
+ bool separatorInserted = false;
+ for ( KBookmark bm = parentBookmark.first(); !bm.isNull();
+ bm = parentBookmark.next(bm) )
+ {
+ QString text = bm.text();
+ text.replace( '&', "&&" );
+ if ( !separatorInserted && m_bIsRoot) { // inserted before the first konq bookmark, to avoid the separator if no konq bookmark
+ m_parentMenu->insertSeparator();
+ separatorInserted = true;
+ }
+ if ( !bm.isGroup() )
+ {
+ if ( bm.isSeparator() )
+ {
+ m_parentMenu->insertSeparator();
+ }
+ else
+ {
+ // kdDebug(1203) << "Creating URL bookmark menu item for " << bm.text() << endl;
+ // create a normal URL item, with ID as a name
+ KAction * action = new KAction( text, bm.icon(), 0,
+ this, SLOT( slotBookmarkSelected() ),
+ m_actionCollection, bm.url().url().utf8() );
+
+ action->setStatusText( bm.url().prettyURL() );
+
+ action->plug( m_parentMenu );
+ m_actions.append( action );
+ }
+ }
+ else
+ {
+ // kdDebug(1203) << "Creating bookmark submenu named " << bm.text() << endl;
+ KActionMenu * actionMenu = new KActionMenu( text, bm.icon(),
+ m_actionCollection, 0L );
+ actionMenu->plug( m_parentMenu );
+ m_actions.append( actionMenu );
+ KonsoleBookmarkMenu *subMenu = new KonsoleBookmarkMenu( m_pManager,
+ m_kOwner, actionMenu->popupMenu(),
+ m_actionCollection, false,
+ m_bAddBookmark, bm.address() );
+ m_lstSubMenus.append( subMenu );
+ }
+ }
+
+ if ( !m_bIsRoot && m_bAddBookmark )
+ {
+ if ( m_parentMenu->count() > 0 )
+ m_parentMenu->insertSeparator();
+ addAddBookmark();
+ addNewFolder();
+ }
+}
+
+void KonsoleBookmarkMenu::slotBookmarkSelected()
+{
+ if ( !m_pOwner ) return; // this view doesn't handle bookmarks...
+ m_kOwner->openBookmarkURL( QString::fromUtf8(sender()->name()), /* URL */
+ ( (KAction *)sender() )->text() /* Title */ );
+}
+
+#include "konsolebookmarkmenu.moc"
diff --git a/konsole/konsole/konsolebookmarkmenu.h b/konsole/konsole/konsolebookmarkmenu.h
new file mode 100644
index 000000000..e4540da69
--- /dev/null
+++ b/konsole/konsole/konsolebookmarkmenu.h
@@ -0,0 +1,72 @@
+/* This file was part of the KDE libraries
+ Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@kde.org>
+
+ library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation, version 2.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KONSOLEBOOKMARKMENU_H
+#define KONSOLEBOOKMARKMENU_H
+
+#include <qptrlist.h>
+#include <kbookmark.h>
+#include <kbookmarkmenu.h>
+
+#include "konsolebookmarkhandler.h"
+
+
+class QString;
+class KBookmark;
+class KAction;
+class KActionMenu;
+class KActionCollection;
+class KBookmarkOwner;
+class KBookmarkMenu;
+class KPopupMenu;
+class KonsoleBookmarkMenu;
+
+class KonsoleBookmarkMenu : public KBookmarkMenu
+{
+ Q_OBJECT
+
+public:
+ KonsoleBookmarkMenu( KBookmarkManager* mgr,
+ KonsoleBookmarkHandler * _owner, KPopupMenu * _parentMenu,
+ KActionCollection *collec, bool _isRoot,
+ bool _add = true, const QString & parentAddress = "");
+
+ void fillBookmarkMenu();
+
+public slots:
+
+signals:
+
+private slots:
+
+private:
+ KonsoleBookmarkHandler * m_kOwner;
+
+protected slots:
+ void slotAboutToShow2();
+ void slotBookmarkSelected();
+
+protected:
+ void refill();
+
+private:
+ class KonsoleBookmarkMenuPrivate;
+ KonsoleBookmarkMenuPrivate *d;
+};
+
+#endif // KONSOLEBOOKMARKMENU_H
diff --git a/konsole/konsole/konsoleiface.h b/konsole/konsole/konsoleiface.h
new file mode 100644
index 000000000..fc3002a35
--- /dev/null
+++ b/konsole/konsole/konsoleiface.h
@@ -0,0 +1,49 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 2001 by Stephan Binner <binner@kde.org>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef KONSOLEIFACE_H
+#define KONSOLEIFACE_H
+
+#include <dcopobject.h>
+
+class KonsoleIface : virtual public DCOPObject
+{
+ K_DCOP
+ k_dcop:
+
+ virtual int sessionCount() = 0;
+
+ virtual QString currentSession() = 0;
+ virtual QString newSession() = 0;
+ virtual QString newSession(const QString &type) = 0;
+ virtual QString sessionId(const int position) = 0;
+
+ virtual void activateSession(const QString &sessionId) = 0;
+
+ virtual void nextSession() = 0;
+ virtual void prevSession() = 0;
+ virtual void moveSessionLeft() = 0;
+ virtual void moveSessionRight() = 0;
+ virtual bool fullScreen() = 0;
+ virtual void setFullScreen(bool on) = 0;
+ virtual ASYNC reparseConfiguration() = 0;
+};
+
+#endif // KONSOLEIFACE_H
diff --git a/konsole/konsole/kwrited.cpp b/konsole/konsole/kwrited.cpp
new file mode 100644
index 000000000..7b0e1167b
--- /dev/null
+++ b/konsole/konsole/kwrited.cpp
@@ -0,0 +1,143 @@
+/*
+ kwrited is a write(1) receiver for KDE.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+// System
+#include <iostream>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <signal.h>
+
+// X11
+#include <X11/Xlib.h>
+#include <fixx11h.h>
+
+// Qt
+#include <dcopclient.h>
+#include <qsocketnotifier.h>
+
+// KDE
+#include <kuniqueapplication.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <kglobalsettings.h>
+#include <kdebug.h>
+#include <kcrash.h>
+#include <kpty.h>
+#include <kuser.h>
+#include <kglobal.h>
+
+// kwrited
+#include "kwrited.h"
+#include <config.h>
+
+/* TODO
+ for anyone who likes to do improvements here, go ahead.
+ - check FIXMEs below
+ - add Menu
+ - accept messages (on/off)
+ - pop up on incoming messages
+ - clear messages
+ - allow max. lines
+ - add CORBA interface?
+ - add session awareness.
+ - add client complements.
+*/
+
+KWrited::KWrited() : QTextEdit()
+{
+ int pref_width, pref_height;
+
+ setFont(KGlobalSettings::fixedFont());
+ pref_width = (2 * KGlobalSettings::desktopGeometry(0).width()) / 3;
+ pref_height = fontMetrics().lineSpacing() * 10;
+ setMinimumWidth(pref_width);
+ setMinimumHeight(pref_height);
+ setReadOnly(true);
+ setFocusPolicy(QWidget::NoFocus);
+ setWordWrap(QTextEdit::WidgetWidth);
+ setTextFormat(Qt::PlainText);
+
+ pty = new KPty();
+ pty->open();
+ pty->login(KUser().loginName().local8Bit().data(), getenv("DISPLAY"));
+ QSocketNotifier *sn = new QSocketNotifier(pty->masterFd(), QSocketNotifier::Read, this);
+ connect(sn, SIGNAL(activated(int)), this, SLOT(block_in(int)));
+
+ QString txt = i18n("KWrited - Listening on Device %1").arg(pty->ttyName());
+ setCaption(txt);
+
+ kdDebug() << txt << endl;
+}
+
+KWrited::~KWrited()
+{
+ pty->logout();
+ delete pty;
+}
+
+void KWrited::block_in(int fd)
+{
+ char buf[4096];
+ int len = read(fd, buf, 4096);
+ if (len <= 0)
+ return;
+
+ insert( QString::fromLocal8Bit( buf, len ).remove('\r') );
+ show();
+ raise();
+}
+
+void KWrited::clearText()
+{
+ clear();
+}
+
+QPopupMenu *KWrited::createPopupMenu( const QPoint &pos )
+{
+ QPopupMenu *menu = QTextEdit::createPopupMenu( pos );
+
+ menu->insertItem( i18n( "Clear Messages" ),
+ this, SLOT( clearText() ),
+ 0, -1, 0 );
+
+ return menu;
+}
+
+KWritedModule::KWritedModule( const QCString& obj )
+ : KDEDModule( obj )
+{
+ KGlobal::locale()->insertCatalogue("konsole");
+ pro = new KWrited;
+}
+
+KWritedModule::~KWritedModule()
+{
+ delete pro;
+ KGlobal::locale()->removeCatalogue("konsole");
+}
+
+extern "C"
+KDE_EXPORT KDEDModule* create_kwrited( const QCString& obj )
+ {
+ return new KWritedModule( obj );
+ }
+
+#include "kwrited.moc"
diff --git a/konsole/konsole/kwrited.h b/konsole/konsole/kwrited.h
new file mode 100644
index 000000000..71da6eff1
--- /dev/null
+++ b/konsole/konsole/kwrited.h
@@ -0,0 +1,56 @@
+/*
+ kwrited is a write(1) receiver for KDE.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef KWRITED_H
+#define KWRITED_H
+
+#include <qtextedit.h>
+#include <kdedmodule.h>
+#include <qpopupmenu.h>
+#include <qtextedit.h>
+
+class KPty;
+
+class KWrited : public QTextEdit
+{ Q_OBJECT
+public:
+ KWrited();
+ ~KWrited();
+protected:
+ virtual QPopupMenu *createPopupMenu(const QPoint &);
+private slots:
+ void block_in(int fd);
+ void clearText(void);
+private:
+ KPty* pty;
+};
+
+class KWritedModule : public KDEDModule
+{
+ Q_OBJECT
+ K_DCOP
+public:
+ KWritedModule( const QCString& obj );
+ ~KWritedModule();
+private:
+ KWrited* pro;
+};
+
+#endif
diff --git a/konsole/konsole/linefont.h b/konsole/konsole/linefont.h
new file mode 100644
index 000000000..9873c43d4
--- /dev/null
+++ b/konsole/konsole/linefont.h
@@ -0,0 +1,21 @@
+// WARNING: Autogenerated by "fontembedder ./linefont.src".
+// You probably do not want to hand-edit this!
+
+static const Q_UINT32 LineChars[] = {
+ 0x00007c00, 0x000fffe0, 0x00421084, 0x00e739ce, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00427000, 0x004e7380, 0x00e77800, 0x00ef7bc0,
+ 0x00421c00, 0x00439ce0, 0x00e73c00, 0x00e7bde0, 0x00007084, 0x000e7384, 0x000079ce, 0x000f7bce,
+ 0x00001c84, 0x00039ce4, 0x00003dce, 0x0007bdee, 0x00427084, 0x004e7384, 0x004279ce, 0x00e77884,
+ 0x00e779ce, 0x004f7bce, 0x00ef7bc4, 0x00ef7bce, 0x00421c84, 0x00439ce4, 0x00423dce, 0x00e73c84,
+ 0x00e73dce, 0x0047bdee, 0x00e7bde4, 0x00e7bdee, 0x00427c00, 0x0043fce0, 0x004e7f80, 0x004fffe0,
+ 0x004fffe0, 0x00e7fde0, 0x006f7fc0, 0x00efffe0, 0x00007c84, 0x0003fce4, 0x000e7f84, 0x000fffe4,
+ 0x00007dce, 0x0007fdee, 0x000f7fce, 0x000fffee, 0x00427c84, 0x0043fce4, 0x004e7f84, 0x004fffe4,
+ 0x00427dce, 0x00e77c84, 0x00e77dce, 0x0047fdee, 0x004e7fce, 0x00e7fde4, 0x00ef7f84, 0x004fffee,
+ 0x00efffe4, 0x00e7fdee, 0x00ef7fce, 0x00efffee, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x000f83e0, 0x00a5294a, 0x004e1380, 0x00a57800, 0x00ad0bc0, 0x004390e0, 0x00a53c00, 0x00a5a1e0,
+ 0x000e1384, 0x0000794a, 0x000f0b4a, 0x000390e4, 0x00003d4a, 0x0007a16a, 0x004e1384, 0x00a5694a,
+ 0x00ad2b4a, 0x004390e4, 0x00a52d4a, 0x00a5a16a, 0x004f83e0, 0x00a57c00, 0x00ad83e0, 0x000f83e4,
+ 0x00007d4a, 0x000f836a, 0x004f93e4, 0x00a57d4a, 0x00ad836a, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00001084, 0x00007000, 0x00421000,
+ 0x00039ce0, 0x000039ce, 0x000e7380, 0x00e73800, 0x000e7f80, 0x00e73884, 0x0003fce0, 0x004239ce
+};
diff --git a/konsole/konsole/linefont.src b/konsole/konsole/linefont.src
new file mode 100644
index 000000000..6835253f4
--- /dev/null
+++ b/konsole/konsole/linefont.src
@@ -0,0 +1,786 @@
+#2500: single horizontal line
+2500
+
+
+-----
+
+
+
+#2501: triple horizontal line
+2501
+
+-----
+-----
+-----
+
+
+#2502: single vertical line
+2502
+ |
+ |
+ |
+ |
+ |
+
+#2503: triple vertical line
+2503
+ |||
+ |||
+ |||
+ |||
+ |||
+
+#2504-250B are dashed - not handled
+
+#250C: top-left corner (lines on bottom + right)
+250C
+
+
+ .--
+ |
+ |
+
+#250D: as above, but top line triple-width
+250D
+
+ .--
+ .--
+ |--
+ |
+
+#250E: now the vert line triple-width
+250E
+
+
+ ..--
+ |||
+ |||
+
+#250F: and now both lines triple-width
+250F
+
+ .___
+ |.--
+ ||._
+ |||
+
+#2510: top-right corner
+2510
+
+
+--.
+ |
+ |
+
+2511
+
+==.
+==.
+==|
+ |
+
+2512
+
+
+==..
+ |||
+ |||
+
+2513
+
+===.
+==.|
+=.||
+ |||
+
+#2514: bottom-left corner
+2514
+ |
+ |
+ .==
+
+
+
+2515
+ |
+ |==
+ |==
+ ===
+
+
+
+2516
+ |||
+ |||
+ |.==
+
+
+
+2517
+ |||
+ ||.=
+ |.==
+ .===
+
+
+#2518: bottm-right corner
+2518
+ |
+ |
+==.
+
+
+
+2519
+ |
+==|
+==|
+===
+
+
+
+251A
+ |||
+ |||
+====
+
+
+
+251B
+ |||
+=.||
+==.|
+===.
+
+
+#251C: Join of vertical line and one from the right
+251C
+ |
+ |
+ |==
+ |
+ |
+
+251D
+ |
+ |==
+ |==
+ |==
+ |
+
+251E
+ |||
+ |||
+ ||==
+ |
+ |
+
+251F
+ |
+ |
+ ||==
+ |||
+ |||
+
+
+2520
+ |||
+ |||
+ ||==
+ |||
+ |||
+
+2521
+ |||
+ |||=
+ ||==
+ .|==
+ |
+
+2522
+ |
+ .|==
+ ||==
+ |||=
+ |||
+
+2523
+ |||
+ ||.=
+ ||==
+ ||.=
+ |||
+
+#2524: Join of vertical line and one from the left
+2524
+ |
+ |
+==|
+ |
+ |
+
+2525
+ |
+==|
+==|
+==|
+ |
+
+2526
+ |||
+ |||
+==+|
+ |
+ |
+
+2527
+ |
+ |
+==+|
+ |||
+ |||
+
+2528
+ |||
+ |||
+==+|
+ |||
+ |||
+
+2529
+ |||
+=+||
+==+|
+===+
+ |
+
+252A
+ |
+=+||
+==+|
+===+
+ |||
+
+252B
+ |||
+=+||
+==+|
+=+||
+ |||
+
+#252C: horizontal line joined to from below
+252C
+
+
+=====
+ |
+ |
+
+252D
+
+===
+==|==
+==|
+ |
+
+252E
+
+ ===
+==|==
+ |==
+ |
+
+252F
+
+==+==
+==|==
+==|==
+ |
+
+2530
+
+=====
+=====
+==|==
+ |
+
+2531
+
+===|
+==||=
+=|||
+ |||
+
+2532
+
+ |===
+=||==
+ ||==
+ ||
+
+2533
+
+=====
+==|==
+=+|+=
+ |||
+
+#2534: bottom line, connected to from top
+2534
+ |
+ |
+=====
+
+
+
+2535
+ |
+==|
+=====
+===
+
+
+2536
+ |
+ |==
+=====
+ ===
+
+
+2537
+ |
+==|==
+=====
+=====
+
+
+2538
+ |||
+ |||
+=====
+
+
+
+2539
+ |||
+==||
+=====
+===|
+
+
+
+253A
+ |||
+ ||==
+=|===
+ |===
+
+
+253B
+ |||
+==|==
+=====
+=====
+
+
+#253C: vertical + horizontal lines intersecting
+253C
+ |
+ |
+=====
+ |
+ |
+
+253D
+ |
+==|
+=====
+==|
+ |
+
+253E
+ |
+ |==
+=====
+ |==
+ |
+
+253F
+ |
+==|==
+=====
+==|==
+ |
+
+2540
+ |||
+ |||
+=====
+ |
+ |
+
+2541
+ |
+ |
+=====
+ |||
+ |||
+
+2542
+ |||
+ |||
+=====
+ |||
+ |||
+
+2543
+ |||
+=|||
+=====
+==|+
+ |
+
+2544
+ |||
+ ||==
+=====
+ |==
+ |
+
+2545
+ |
+==|+
+=====
+=|||
+ |||
+
+2546
+ |
+ |==
+=====
+ ||==
+ |||
+
+2547
+ |||
+=|||=
+=====
+=|||=
+ |
+
+2548
+ |
+=|||=
+=====
+=|||=
+ |||
+
+2549
+ |||
+=|||
+=====
+=|||
+ |||
+
+254A
+ |||
+ |||=
+=====
+ |||=
+ |||
+
+254B
+ |||
+=|||=
+=====
+=|||=
+ |||
+
+#254C-254F are dashed
+2550
+
+_____
+
+_____
+
+
+2551
+ | |
+ | |
+ | |
+ | |
+ | |
+
+2552
+
+ |--
+ |
+ |--
+ |
+
+2553
+
+
+ ----
+ | |
+ | |
+
+2554
+
+ +---
+ |
+ + +-
+ | |
+
+2555
+
+--+
+ |
+--+
+ |
+
+2556
+
+
+-+-+
+ | |
+ | |
+
+2557
+
+---+
+ |
+-+ |
+ | |
+
+2558
+ |
+ +--
+ |
+ +--
+
+2559
+ | |
+ | |
+ +-+-
+
+
+
+255A
+ | |
+ | +-
+ |
+ +---
+
+
+255B
+ |
+--+
+ |
+--+
+
+
+255C
+ | |
+ | |
+-+-+
+
+
+255D
+ | |
+-+ |
+ |
+---+
+
+
+255E
+ |
+ +--
+ |
+ +--
+ |
+
+255F
+ | |
+ | |
+ | +-
+ | |
+ | |
+
+2560
+ | |
+ | +-
+ | |
+ | +-
+ | |
+
+2561
+ |
+--+
+ |
+--+
+ |
+
+2562
+ | |
+ | |
+-+ +
+ | |
+ | |
+
+2563
+ | |
+-+ |
+ |
+-+ |
+ | |
+
+2564
+
+-----
+
+--+--
+ |
+
+2565
+
+
+-+-+-
+ | |
+ | |
+
+2566
+
+-----
+
+-+ +-
+ | |
+
+2567
+ |
+--+--
+
+-----
+
+
+2568
+ | |
+ | |
+-+-+-
+
+
+
+2569
+ | |
+-+ +-
+
+-----
+
+
+256A
+ |
+--+--
+ |
+--+--
+ |
+
+256B
+ | |
+ | |
+-+-+-
+ | |
+ | |
+
+256C
+ | |
+-+ +-
+
+-+ +-
+ | |
+
+#256F-2570 are curly,
+#2571-2573 are slashes and X
+
+2574
+
+
+___
+
+
+
+2575
+ |
+ |
+ |
+
+
+
+2576
+
+
+ ___
+
+
+
+2577
+
+
+ |
+ |
+ |
+
+2578
+
+___
+___
+___
+
+
+2579
+ |||
+ |||
+ |||
+
+
+
+257A
+
+ ___
+ ___
+ ___
+
+
+257B
+
+
+ |||
+ |||
+ |||
+
+257C
+
+ ___
+_____
+ ___
+
+
+257D
+ |
+ |
+ |||
+ |||
+ |||
+
+257E
+
+___
+_____
+___
+
+
+257F
+ |||
+ |||
+ |||
+ |
+ |
diff --git a/konsole/konsole/main.cpp b/konsole/konsole/main.cpp
new file mode 100644
index 000000000..48e9eab2a
--- /dev/null
+++ b/konsole/konsole/main.cpp
@@ -0,0 +1,671 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1996 by Matthias Ettrich <ettrich@kde.org>
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+/* The material contained in here more or less directly orginates from */
+/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */
+/* */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <qdir.h>
+#include <qsessionmanager.h>
+#include <qwidgetlist.h>
+
+#include <dcopclient.h>
+
+#include <klocale.h>
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <kimageio.h>
+#include <kdebug.h>
+#include <kstandarddirs.h>
+#include <kglobalsettings.h>
+#include <kio/netaccess.h>
+#include <kmessagebox.h>
+
+#include <config.h>
+
+#include "konsole.h"
+
+#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
+#define COMPOSITE
+#endif
+
+#ifdef COMPOSITE
+# include <X11/Xlib.h>
+# include <X11/extensions/Xrender.h>
+# include <fixx11h.h>
+# include <dlfcn.h>
+#endif
+
+static const char description[] =
+ I18N_NOOP("X terminal for use with KDE.");
+
+// { "T <title>", 0, 0 },
+static KCmdLineOptions options[] =
+{
+ { "name <name>", I18N_NOOP("Set window class"), 0 },
+ { "ls", I18N_NOOP("Start login shell"), 0 },
+ { "T <title>", I18N_NOOP("Set the window title"), 0 },
+ { "tn <terminal>", I18N_NOOP("Specify terminal type as set in the TERM\nenvironment variable"), "xterm" },
+ { "noclose", I18N_NOOP("Do not close Konsole when command exits"), 0 },
+ { "nohist", I18N_NOOP("Do not save lines in history"), 0 },
+ { "nomenubar", I18N_NOOP("Do not display menubar"), 0 },
+ { "notabbar", 0, 0 },
+ { "notoolbar", I18N_NOOP("Do not display tab bar"), 0 },
+ { "noframe", I18N_NOOP("Do not display frame"), 0 },
+ { "noscrollbar", I18N_NOOP("Do not display scrollbar"), 0 },
+ { "noxft", I18N_NOOP("Do not use Xft (anti-aliasing)"), 0 },
+#ifdef COMPOSITE
+ { "real-transparency", I18N_NOOP("Enable experimental support for real transparency"), 0 },
+#endif
+ { "vt_sz CCxLL", I18N_NOOP("Terminal size in columns x lines"), 0 },
+ { "noresize", I18N_NOOP("Terminal size is fixed"), 0 },
+ { "type <type>", I18N_NOOP("Start with given session type"), 0 },
+ { "types", I18N_NOOP("List available session types"), 0 },
+ { "keytab <name>", I18N_NOOP("Set keytab to 'name'"), 0 },
+ { "keytabs", I18N_NOOP("List available keytabs"), 0 },
+ { "profile <name>", I18N_NOOP("Start with given session profile"), 0 },
+ { "profiles", I18N_NOOP("List available session profiles"), 0 },
+ { "schema <name> | <file>", I18N_NOOP("Set schema to 'name' or use 'file'"), 0 },
+ { "schemas", 0, 0 },
+ { "schemata", I18N_NOOP("List available schemata"), 0 },
+ { "script", I18N_NOOP("Enable extended DCOP Qt functions"), 0 },
+ { "workdir <dir>", I18N_NOOP("Change working directory to 'dir'"), 0 },
+ { "!e <command>", I18N_NOOP("Execute 'command' instead of shell"), 0 },
+ // WABA: All options after -e are treated as arguments.
+ { "+[args]", I18N_NOOP("Arguments for 'command'"), 0 },
+ KCmdLineLastOption
+};
+
+static bool has_noxft = false;
+static bool login_shell = false;
+static bool full_script = false;
+static bool auto_close = true;
+static bool fixed_size = false;
+
+bool argb_visual = false;
+
+const char *konsole_shell(QStrList &args)
+{
+ const char* shell = getenv("SHELL");
+ if (shell == NULL || *shell == '\0') shell = "/bin/sh";
+ if (login_shell)
+ {
+ char* t = (char*)strrchr(shell,'/');
+ if (t) // see sh(1)
+ {
+ t = strdup(t);
+ *t = '-';
+ args.append(t);
+ free(t);
+ }
+ else
+ args.append(shell);
+ }
+ else
+ args.append(shell);
+ return shell;
+}
+
+/**
+ The goal of this class is to add "--noxft" and "--ls" to the restoreCommand
+ if konsole was started with any of those options.
+ */
+class KonsoleSessionManaged: public KSessionManaged {
+public:
+ bool saveState( QSessionManager&sm) {
+ QStringList restartCommand = sm.restartCommand();
+ if (has_noxft)
+ restartCommand.append("--noxft");
+ if (login_shell)
+ restartCommand.append("--ls");
+ if (full_script)
+ restartCommand.append("--script");
+ if (!auto_close)
+ restartCommand.append("--noclose");
+ if (fixed_size)
+ restartCommand.append("--noresize");
+ sm.setRestartCommand(restartCommand);
+ return true;
+ }
+};
+
+
+
+/* --| main |------------------------------------------------------ */
+extern "C" int KDE_EXPORT kdemain(int argc, char* argv[])
+{
+ setgid(getgid()); setuid(getuid()); // drop privileges
+
+ // deal with shell/command ////////////////////////////
+ bool histon = true;
+ bool menubaron = true;
+ bool tabbaron = true;
+ bool frameon = true;
+ bool scrollbaron = true;
+ bool showtip = true;
+
+ KAboutData aboutData( "konsole", I18N_NOOP("Konsole"),
+ KONSOLE_VERSION, description, KAboutData::License_GPL_V2,
+ "Copyright (c) 1997-2006, Lars Doelle");
+ aboutData.addAuthor("Robert Knight",I18N_NOOP("Maintainer"), "robertknight@gmail.com");
+ aboutData.addAuthor("Lars Doelle",I18N_NOOP("Author"), "lars.doelle@on-line.de");
+ aboutData.addCredit("Kurt V. Hindenburg",
+ I18N_NOOP("bug fixing and improvements"),
+ "kurt.hindenburg@gmail.com");
+ aboutData.addCredit("Waldo Bastian",
+ I18N_NOOP("bug fixing and improvements"),
+ "bastian@kde.org");
+ aboutData.addCredit("Stephan Binner",
+ I18N_NOOP("bug fixing and improvements"),
+ "binner@kde.org");
+ aboutData.addCredit("Chris Machemer",
+ I18N_NOOP("bug fixing"),
+ "machey@ceinetworks.com");
+ aboutData.addCredit("Stephan Kulow",
+ I18N_NOOP("Solaris support and work on history"),
+ "coolo@kde.org");
+ aboutData.addCredit("Alexander Neundorf",
+ I18N_NOOP("faster startup, bug fixing"),
+ "neundorf@kde.org");
+ aboutData.addCredit("Peter Silva",
+ I18N_NOOP("decent marking"),
+ "peter.silva@videotron.ca");
+ aboutData.addCredit("Lotzi Boloni",
+ I18N_NOOP("partification\n"
+ "Toolbar and session names"),
+ "boloni@cs.purdue.edu");
+ aboutData.addCredit("David Faure",
+ I18N_NOOP("partification\n"
+ "overall improvements"),
+ "David.Faure@insa-lyon.fr");
+ aboutData.addCredit("Antonio Larrosa",
+ I18N_NOOP("transparency"),
+ "larrosa@kde.org");
+ aboutData.addCredit("Matthias Ettrich",
+ I18N_NOOP("most of main.C donated via kvt\n"
+ "overall improvements"),
+ "ettrich@kde.org");
+ aboutData.addCredit("Warwick Allison",
+ I18N_NOOP("schema and selection improvements"),
+ "warwick@troll.no");
+ aboutData.addCredit("Dan Pilone",
+ I18N_NOOP("SGI Port"),
+ "pilone@slac.com");
+ aboutData.addCredit("Kevin Street",
+ I18N_NOOP("FreeBSD port"),
+ "street@iname.com");
+ aboutData.addCredit("Sven Fischer",
+ I18N_NOOP("bug fixing"),
+ "herpes@kawo2.rwth-aachen.de");
+ aboutData.addCredit("Dale M. Flaven",
+ I18N_NOOP("bug fixing"),
+ "dflaven@netport.com");
+ aboutData.addCredit("Martin Jones",
+ I18N_NOOP("bug fixing"),
+ "mjones@powerup.com.au");
+ aboutData.addCredit("Lars Knoll",
+ I18N_NOOP("bug fixing"),
+ "knoll@mpi-hd.mpg.de");
+ aboutData.addCredit("",I18N_NOOP("Thanks to many others.\n"
+ "The above list only reflects the contributors\n"
+ "I managed to keep track of."));
+
+ KCmdLineArgs::init( argc, argv, &aboutData );
+ KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+ //1.53 sec
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ KCmdLineArgs *qtargs = KCmdLineArgs::parsedArgs("qt");
+ has_noxft = !args->isSet("xft");
+ TEWidget::setAntialias( !has_noxft );
+ TEWidget::setStandalone( true );
+
+ // The following Qt options have no effect; warn users.
+ if( qtargs->isSet("background") )
+ kdWarning() << "The Qt option -bg, --background has no effect." << endl;
+ if( qtargs->isSet("foreground") )
+ kdWarning() << "The Qt option -fg, --foreground has no effect." << endl;
+ if( qtargs->isSet("button") )
+ kdWarning() << "The Qt option -btn, --button has no effect." << endl;
+ if( qtargs->isSet("font") )
+ kdWarning() << "The Qt option -fn, --font has no effect." << endl;
+
+ KApplication* a = NULL;
+#ifdef COMPOSITE
+ if ( args->isSet("real-transparency")) {
+ char *display = 0;
+ if ( qtargs->isSet("display"))
+ display = qtargs->getOption( "display" ).data();
+
+ Display *dpy = XOpenDisplay( display );
+ if ( !dpy ) {
+ kdError() << "cannot connect to X server " << display << endl;
+ exit( 1 );
+ }
+
+ int screen = DefaultScreen( dpy );
+ Colormap colormap = 0;
+ Visual *visual = 0;
+ int event_base, error_base;
+
+ if ( XRenderQueryExtension( dpy, &event_base, &error_base ) ) {
+ int nvi;
+ XVisualInfo templ;
+ templ.screen = screen;
+ templ.depth = 32;
+ templ.c_class = TrueColor;
+ XVisualInfo *xvi = XGetVisualInfo( dpy, VisualScreenMask | VisualDepthMask
+ | VisualClassMask, &templ, &nvi );
+
+ for ( int i = 0; i < nvi; i++ ) {
+ XRenderPictFormat *format = XRenderFindVisualFormat( dpy, xvi[i].visual );
+ if ( format->type == PictTypeDirect && format->direct.alphaMask ) {
+ visual = xvi[i].visual;
+ colormap = XCreateColormap( dpy, RootWindow( dpy, screen ), visual, AllocNone );
+ kdDebug() << "found visual with alpha support" << endl;
+ argb_visual = true;
+ break;
+ }
+ }
+ }
+ // The QApplication ctor used is normally intended for applications not using Qt
+ // as the primary toolkit (e.g. Motif apps also using Qt), with some slightly
+ // unpleasant side effects (e.g. #83974). This code checks if qt-copy patch #0078
+ // is applied, which allows turning this off.
+ bool* qt_no_foreign_hack = static_cast< bool* >( dlsym( RTLD_DEFAULT, "qt_no_foreign_hack" ));
+ if( qt_no_foreign_hack )
+ *qt_no_foreign_hack = true;
+ // else argb_visual = false ... ? *shrug*
+
+ if( argb_visual )
+ a = new KApplication( dpy, Qt::HANDLE( visual ), Qt::HANDLE( colormap ) );
+ else
+ XCloseDisplay( dpy );
+ }
+ if( a == NULL )
+ a = new KApplication;
+#else
+ KApplication* a = new KApplication;
+#endif
+
+ QString dataPathBase = KStandardDirs::kde_default("data").append("konsole/");
+ KGlobal::dirs()->addResourceType("wallpaper", dataPathBase + "wallpapers");
+
+ KImageIO::registerFormats(); // add io for additional image formats
+ //2.1 secs
+
+ QString title;
+ if(args->isSet("T")) {
+ title = QFile::decodeName(args->getOption("T"));
+ }
+ if(qtargs->isSet("title")) {
+ title = QFile::decodeName(qtargs->getOption("title"));
+ }
+
+ QString term = "";
+ if(args->isSet("tn")) {
+ term=QString::fromLatin1(args->getOption("tn"));
+ }
+ login_shell = args->isSet("ls");
+
+ QStrList eargs;
+
+ const char* shell = 0;
+ if (!args->getOption("e").isEmpty())
+ {
+ if (args->isSet("ls"))
+ KCmdLineArgs::usage(i18n("You can't use BOTH -ls and -e.\n"));
+ shell = strdup(args->getOption("e"));
+ eargs.append(shell);
+ for(int i=0; i < args->count(); i++)
+ eargs.append( args->arg(i) );
+
+ if (title.isEmpty() &&
+ (kapp->caption() == kapp->aboutData()->programName()))
+ {
+ title = QFile::decodeName(shell); // program executed in the title bar
+ }
+ showtip = false;
+ }
+
+ QCString sz = "";
+ sz = args->getOption("vt_sz");
+ histon = args->isSet("hist");
+ menubaron = args->isSet("menubar");
+ tabbaron = args->isSet("tabbar") && args->isSet("toolbar");
+ frameon = args->isSet("frame");
+ scrollbaron = args->isSet("scrollbar");
+ QCString wname = qtargs->getOption("name");
+ full_script = args->isSet("script");
+ auto_close = args->isSet("close");
+ fixed_size = !args->isSet("resize");
+
+ if (!full_script)
+ a->dcopClient()->setQtBridgeEnabled(false);
+
+ QCString type = "";
+
+ if(args->isSet("type")) {
+ type = args->getOption("type");
+ }
+ if(args->isSet("types")) {
+ QStringList types = KGlobal::dirs()->findAllResources("appdata", "*.desktop", false, true);
+ types.sort();
+ for(QStringList::ConstIterator it = types.begin();
+ it != types.end(); ++it)
+ {
+ QString file = *it;
+ file = file.mid(file.findRev('/')+1);
+ if (file.endsWith(".desktop"))
+ file = file.left(file.length()-8);
+ printf("%s\n", QFile::encodeName(file).data());
+ }
+ return 0;
+ }
+ if(args->isSet("schemas") || args->isSet("schemata")) {
+ ColorSchemaList colors;
+ colors.checkSchemas();
+ for(int i = 0; i < (int) colors.count(); i++)
+ {
+ ColorSchema *schema = colors.find(i);
+ QString relPath = schema->relPath();
+ if (!relPath.isEmpty())
+ printf("%s\n", QFile::encodeName(relPath).data());
+ }
+ return 0;
+ }
+
+ if(args->isSet("keytabs")) {
+ QStringList lst = KGlobal::dirs()->findAllResources("data", "konsole/*.keytab");
+
+ printf("default\n"); // 'buildin' keytab
+ lst.sort();
+ for(QStringList::Iterator it = lst.begin(); it != lst.end(); ++it )
+ {
+ QFileInfo fi(*it);
+ QString file = fi.baseName();
+ printf("%s\n", QFile::encodeName(file).data());
+ }
+ return 0;
+ }
+
+ QString workDir = QFile::decodeName( args->getOption("workdir") );
+
+ QString keytab = "";
+ if (args->isSet("keytab"))
+ keytab = QFile::decodeName(args->getOption("keytab"));
+
+ QString schema = "";
+ if (args->isSet("schema"))
+ schema = args->getOption("schema");
+
+ KConfig * sessionconfig = 0;
+ QString profile = "";
+ if (args->isSet("profile")) {
+ profile = args->getOption("profile");
+ QString path = locate( "data", "konsole/profiles/" + profile );
+ if ( QFile::exists( path ) )
+ sessionconfig=new KConfig( path, true );
+ else
+ profile = "";
+ }
+ if (args->isSet("profiles"))
+ {
+ QStringList profiles = KGlobal::dirs()->findAllResources("data", "konsole/profiles/*", false, true);
+ profiles.sort();
+ for(QStringList::ConstIterator it = profiles.begin();
+ it != profiles.end(); ++it)
+ {
+ QString file = *it;
+ file = file.mid(file.findRev('/')+1);
+ printf("%s\n", QFile::encodeName(file).data());
+ }
+ return 0;
+ }
+
+
+ //FIXME: more: font
+
+ args->clear();
+
+ int c = 0, l = 0;
+ if ( !sz.isEmpty() )
+ {
+ char *ls = (char*)strchr( sz.data(), 'x' );
+ if ( ls != NULL )
+ {
+ *ls='\0';
+ ls++;
+ c=atoi(sz.data());
+ l=atoi(ls);
+ }
+ else
+ {
+ KCmdLineArgs::usage(i18n("expected --vt_sz <#columns>x<#lines> e.g. 80x40\n"));
+ }
+ }
+
+ if (!kapp->authorizeKAction("size"))
+ fixed_size = true;
+
+ // ///////////////////////////////////////////////
+
+ // Ignore SIGHUP so that we don't get killed when
+ // our parent-shell gets closed.
+ signal(SIGHUP, SIG_IGN);
+
+ putenv((char*)"COLORTERM="); // to trigger mc's color detection
+ KonsoleSessionManaged ksm;
+
+ if (a->isRestored() || !profile.isEmpty())
+ {
+ if (!shell)
+ shell = konsole_shell(eargs);
+
+ if (profile.isEmpty())
+ sessionconfig = a->sessionConfig();
+ sessionconfig->setDesktopGroup();
+ int n = 1;
+
+ QString key;
+ QString sTitle;
+ QString sPgm;
+ QString sTerm;
+ QString sIcon;
+ QString sCwd;
+ int n_tabbar;
+
+ // TODO: Session management stores everything in same group,
+ // should use one group / mainwindow
+ while (KMainWindow::canBeRestored(n) || !profile.isEmpty())
+ {
+ sessionconfig->setGroup(QString("%1").arg(n));
+ if (!sessionconfig->hasKey("Pgm0"))
+ sessionconfig->setDesktopGroup(); // Backwards compatible
+
+ int session_count = sessionconfig->readNumEntry("numSes");
+ int counter = 0;
+
+ wname = sessionconfig->readEntry("class",wname).latin1();
+
+ sPgm = sessionconfig->readEntry("Pgm0", shell);
+ sessionconfig->readListEntry("Args0", eargs);
+ sTitle = sessionconfig->readEntry("Title0", title);
+ sTerm = sessionconfig->readEntry("Term0");
+ sIcon = sessionconfig->readEntry("Icon0","konsole");
+ sCwd = sessionconfig->readPathEntry("Cwd0");
+ workDir = sessionconfig->readPathEntry("workdir");
+ n_tabbar = QMIN(sessionconfig->readUnsignedNumEntry("tabbar",Konsole::TabBottom),2);
+ Konsole *m = new Konsole(wname,histon,menubaron,tabbaron,frameon,scrollbaron,0/*type*/,true,n_tabbar, workDir);
+
+ m->newSession(sPgm, eargs, sTerm, sIcon, sTitle, sCwd);
+
+ m->enableFullScripting(full_script);
+ m->enableFixedSize(fixed_size);
+ m->restore(n);
+ sessionconfig->setGroup(QString("%1").arg(n));
+ if (!sessionconfig->hasKey("Pgm0"))
+ sessionconfig->setDesktopGroup(); // Backwards compatible
+ m->makeGUI();
+ m->setEncoding(sessionconfig->readNumEntry("Encoding0"));
+ m->setSchema(sessionconfig->readEntry("Schema0"));
+ // Use konsolerc default as tmpFont instead?
+ QFont tmpFont = KGlobalSettings::fixedFont();
+ m->initSessionFont(sessionconfig->readFontEntry("SessionFont0", &tmpFont));
+ m->initSessionKeyTab(sessionconfig->readEntry("KeyTab0"));
+ m->initMonitorActivity(sessionconfig->readBoolEntry("MonitorActivity0",false));
+ m->initMonitorSilence(sessionconfig->readBoolEntry("MonitorSilence0",false));
+ m->initMasterMode(sessionconfig->readBoolEntry("MasterMode0",false));
+ m->initTabColor(sessionconfig->readColorEntry("TabColor0"));
+ // -1 will be changed to the default history in konsolerc
+ m->initHistory(sessionconfig->readNumEntry("History0", -1),
+ sessionconfig->readBoolEntry("HistoryEnabled0", true));
+ counter++;
+
+ // show() before 2nd+ sessions are created allows --profile to
+ // initialize the TE size correctly.
+ m->show();
+
+ while (counter < session_count)
+ {
+ key = QString("Title%1").arg(counter);
+ sTitle = sessionconfig->readEntry(key, title);
+ key = QString("Args%1").arg(counter);
+ sessionconfig->readListEntry(key, eargs);
+
+ key = QString("Pgm%1").arg(counter);
+
+ // if the -e option is passed on the command line, this overrides the program specified
+ // in the profile file
+ if ( args->isSet("e") )
+ sPgm = (shell ? QFile::decodeName(shell) : QString::null);
+ else
+ sPgm = sessionconfig->readEntry(key, shell);
+
+ key = QString("Term%1").arg(counter);
+ sTerm = sessionconfig->readEntry(key);
+ key = QString("Icon%1").arg(counter);
+ sIcon = sessionconfig->readEntry(key,"konsole");
+ key = QString("Cwd%1").arg(counter);
+ sCwd = sessionconfig->readPathEntry(key);
+ m->newSession(sPgm, eargs, sTerm, sIcon, sTitle, sCwd);
+ m->setSessionTitle(sTitle); // Use title as is
+ key = QString("Schema%1").arg(counter);
+ m->setSchema(sessionconfig->readEntry(key));
+ key = QString("Encoding%1").arg(counter);
+ m->setEncoding(sessionconfig->readNumEntry(key));
+ key = QString("SessionFont%1").arg(counter);
+ QFont tmpFont = KGlobalSettings::fixedFont();
+ m->initSessionFont(sessionconfig->readFontEntry(key, &tmpFont));
+ key = QString("KeyTab%1").arg(counter);
+ m->initSessionKeyTab(sessionconfig->readEntry(key));
+ key = QString("MonitorActivity%1").arg(counter);
+ m->initMonitorActivity(sessionconfig->readBoolEntry(key,false));
+ key = QString("MonitorSilence%1").arg(counter);
+ m->initMonitorSilence(sessionconfig->readBoolEntry(key,false));
+ key = QString("MasterMode%1").arg(counter);
+ m->initMasterMode(sessionconfig->readBoolEntry(key,false));
+ key = QString("TabColor%1").arg(counter);
+ m->initTabColor(sessionconfig->readColorEntry(key));
+ // -1 will be changed to the default history in konsolerc
+ key = QString("History%1").arg(counter);
+ QString key2 = QString("HistoryEnabled%1").arg(counter);
+ m->initHistory(sessionconfig->readNumEntry(key, -1),
+ sessionconfig->readBoolEntry(key2, true));
+ counter++;
+ }
+ m->setDefaultSession( sessionconfig->readEntry("DefaultSession","shell.desktop") );
+
+ m->initFullScreen();
+ if ( !profile.isEmpty() ) {
+ m->callReadPropertiesInternal(sessionconfig,1);
+ profile = "";
+ // Hack to work-around sessions initialized with minimum size
+ for (int i=0;i<counter;i++)
+ m->activateSession( i );
+ m->setColLin(c,l); // will use default height and width if called with (0,0)
+ }
+ // works only for the first one, but there won't be more.
+ n++;
+ m->activateSession( sessionconfig->readNumEntry("ActiveSession",0) );
+ m->setAutoClose(auto_close);
+ }
+ }
+ else
+ {
+ Konsole* m = new Konsole(wname,histon,menubaron,tabbaron,frameon,scrollbaron,type, false, 0, workDir);
+ m->newSession((shell ? QFile::decodeName(shell) : QString::null), eargs, term, QString::null, title, workDir);
+ m->enableFullScripting(full_script);
+ m->enableFixedSize(fixed_size);
+ //3.8 :-(
+ //exit(0);
+
+ if (!keytab.isEmpty())
+ m->initSessionKeyTab(keytab);
+
+ if (!schema.isEmpty()) {
+ if (schema.right(7)!=".schema")
+ schema+=".schema";
+ m->setSchema(schema);
+ m->activateSession(0); // Fixes BR83162, transp. schema + notabbar
+ }
+
+ m->setColLin(c,l); // will use default height and width if called with (0,0)
+
+ m->initFullScreen();
+ m->show();
+ if (showtip)
+ m->showTipOnStart();
+ m->setAutoClose(auto_close);
+ }
+
+ int ret = a->exec();
+
+ //// Temporary code, waiting for Qt to do this properly
+
+ // Delete all toplevel widgets that have WDestructiveClose
+ QWidgetList *list = QApplication::topLevelWidgets();
+ // remove all toplevel widgets that have a parent (i.e. they
+ // got WTopLevel explicitly), they'll be deleted by the parent
+ list->first();
+ while( list->current())
+ {
+ if( list->current()->parentWidget() != NULL || !list->current()->testWFlags( Qt::WDestructiveClose ) )
+ {
+ list->remove();
+ continue;
+ }
+ list->next();
+ }
+ QWidgetListIt it(*list);
+ QWidget * w;
+ while( (w=it.current()) != 0 ) {
+ ++it;
+ delete w;
+ }
+ delete list;
+
+ delete a;
+
+ return ret;
+}
diff --git a/konsole/konsole/printsettings.cpp b/konsole/konsole/printsettings.cpp
new file mode 100644
index 000000000..22997ba28
--- /dev/null
+++ b/konsole/konsole/printsettings.cpp
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the KDE libraries
+ * Copyright (c) 2002 Michael Goffioul <kdeprint@swing.be>
+ * (c) 2003 Waldo Bastian <bastian@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#include "printsettings.h"
+
+#include <klocale.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+
+PrintSettings::PrintSettings(QWidget *parent, const char *name)
+: KPrintDialogPage(parent, name)
+{
+ setTitle(i18n("Options"));
+
+ m_printfriendly = new QCheckBox(i18n("Printer &friendly mode (black text, no background)"), this);
+ m_printfriendly->setChecked(true);
+ m_printexact = new QCheckBox(i18n("&Pixel for pixel"), this);
+ m_printexact->setChecked(false);
+ m_printheader = new QCheckBox(i18n("Print &header"), this);
+ m_printheader->setChecked(true);
+
+ m_printheader->hide(); // Not yet implemented.
+
+ QVBoxLayout *l0 = new QVBoxLayout(this, 0, 10);
+ l0->addWidget(m_printfriendly);
+ l0->addWidget(m_printexact);
+ l0->addWidget(m_printheader);
+ l0->addStretch(1);
+}
+
+PrintSettings::~PrintSettings()
+{
+}
+
+void PrintSettings::getOptions(QMap<QString,QString>& opts, bool /*incldef*/)
+{
+ opts["app-konsole-printfriendly"] = (m_printfriendly->isChecked() ? "true" : "false");
+ opts["app-konsole-printexact"] = (m_printexact->isChecked() ? "true" : "false");
+ opts["app-konsole-printheader"] = (m_printheader->isChecked() ? "true" : "false");
+}
+
+void PrintSettings::setOptions(const QMap<QString,QString>& opts)
+{
+ m_printfriendly->setChecked(opts["app-konsole-printfriendly"] != "false");
+ m_printexact->setChecked(opts["app-konsole-printexact"] == "true");
+ m_printheader->setChecked(opts["app-konsole-printheader"] != "false");
+}
+
+#include "printsettings.moc"
diff --git a/konsole/konsole/printsettings.h b/konsole/konsole/printsettings.h
new file mode 100644
index 000000000..5d2f4389e
--- /dev/null
+++ b/konsole/konsole/printsettings.h
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the KDE libraries
+ * Copyright (c) 2002 Michael Goffioul <kdeprint@swing.be>
+ * Copyright (c) 2003 Waldo Bastian <bastian@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef PRINTSETTINGS_H
+#define PRINTSETTINGS_H
+
+#include <kdeprint/kprintdialogpage.h>
+
+class QCheckBox;
+
+class PrintSettings : public KPrintDialogPage
+{
+ Q_OBJECT
+public:
+ PrintSettings(QWidget *parent = 0, const char *name = 0);
+ ~PrintSettings();
+
+ void getOptions(QMap<QString,QString>& opts, bool incldef = false);
+ void setOptions(const QMap<QString,QString>& opts);
+
+private:
+ QCheckBox *m_printfriendly;
+ QCheckBox *m_printexact;
+ QCheckBox *m_printheader;
+};
+
+#endif
diff --git a/konsole/konsole/schema.cpp b/konsole/konsole/schema.cpp
new file mode 100644
index 000000000..0002e198b
--- /dev/null
+++ b/konsole/konsole/schema.cpp
@@ -0,0 +1,634 @@
+/* schema.C
+**
+** Copyright (C) 1998-1999 by Lars Doelle <lars.doelle@on-line.de>
+** Copyright (C) 2000 by Adriaan de Groot <groot@kde.org>
+**
+** A file that defines the objects for storing color schema's
+** in konsole. This file is part of the KDE project, see
+** http://www.kde.org/
+** for more information.
+*/
+
+/*
+** 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 in a file called COPYING; if not, write to
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+** MA 02110-1301, USA.
+*/
+
+
+/* Lars' comments were the following. They are not true anymore: */
+
+/*
+** This is new stuff, so no docs yet.
+**
+** The identifier is the path. `m_numb' is guarantied to range from 0 to
+** count-1. Note when reloading the path can be assumed to still identify
+** a know schema, while the `m_numb' may vary.
+*/
+
+
+/*
+** NUMB IS NOT GUARANTEED ANYMORE. Since schema's may be created and
+** destroyed as the list is checked, there may be gaps in the serial
+** m_numbers and m_numb may be .. whatever. The default schema always has
+** m_number 0, the rest may vary. Use find(int) to find a schema with
+** a particular m_number, but remember that find may return NULL.
+*/
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include "schema.h"
+#include "kapplication.h"
+
+#include <qdir.h>
+#include <qdatetime.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+
+
+typedef QPtrListIterator<ColorSchema> ColorSchemaListIterator;
+
+
+// Number all the new color schema's (non-default) from 1.
+//
+//
+int ColorSchema::serial = 1;
+
+// Names of all the colors, to be used as group names
+// in the config files. These do not have to be i18n'ed.
+//
+//
+static const char *colornames[TABLE_COLORS] =
+{
+ "fgnormal",
+ "bgnormal",
+ "bg0",
+ "bg1",
+ "bg2",
+ "bg3",
+ "bg4",
+ "bg5",
+ "bg6",
+ "bg7",
+ "fgintense",
+ "bgintense",
+ "bg0i",
+ "bg1i",
+ "bg2i",
+ "bg3i",
+ "bg4i",
+ "bg5i",
+ "bg6i",
+ "bg7i"
+} ;
+
+
+static const ColorEntry default_table[TABLE_COLORS] =
+ // The following are almost IBM standard color codes, with some slight
+ // gamma correction for the dim colors to compensate for bright X screens.
+ // It contains the 8 ansiterm/xterm colors in 2 intensities.
+{
+ ColorEntry( QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry(
+QColor(0xFF,0xFF,0xFF), 1, 0 ), // Dfore, Dback
+ ColorEntry( QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry(
+QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red
+ ColorEntry( QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry(
+QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow
+ ColorEntry( QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry(
+QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta
+ ColorEntry( QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry(
+QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White
+ // intensive
+ ColorEntry( QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry(
+QColor(0xFF,0xFF,0xFF), 1, 0 ),
+ ColorEntry( QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry(
+QColor(0xFF,0x54,0x54), 0, 0 ),
+ ColorEntry( QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry(
+QColor(0xFF,0xFF,0x54), 0, 0 ),
+ ColorEntry( QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry(
+QColor(0xFF,0x54,0xFF), 0, 0 ),
+ ColorEntry( QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry(
+QColor(0xFF,0xFF,0xFF), 0, 0 )
+};
+
+ColorSchema::ColorSchema(const QString& pathname)
+:m_fileRead(false)
+,lastRead(new QDateTime())
+{
+ //start with a valid time, aleXXX
+ *lastRead = QDateTime::currentDateTime();
+ QString fPath = pathname.startsWith("/") ? pathname : locate("data", "konsole/"+pathname);
+ if (fPath.isEmpty() || !QFile::exists(fPath))
+ {
+ fRelPath = QString::null;
+ setDefaultSchema();
+ }
+ else
+ {
+ fRelPath = pathname;
+ clearSchema();
+/* this is done on demand, see the headers, aleXXX
+ (void) rereadSchemaFile(); */
+ }
+
+ m_numb = serial++;
+}
+
+ColorSchema::ColorSchema()
+:m_fileRead(false)
+,fRelPath(QString::null)
+,lastRead(0L)
+{
+ setDefaultSchema();
+ m_numb = 0;
+}
+
+ColorSchema::ColorSchema(KConfig& c)
+:m_fileRead(false)
+,fRelPath(QString::null)
+,lastRead(0L)
+{
+ clearSchema();
+
+ c.setGroup("SchemaGeneral");
+
+ m_title = c.readEntry("Title",i18n("[no title]"));
+ m_imagePath = c.readEntry("ImagePath");
+ m_alignment = c.readNumEntry("ImageAlignment",1);
+ m_useTransparency = c.readBoolEntry("UseTransparency",false);
+
+ m_tr_r = c.readNumEntry("TransparentR",0);
+ m_tr_g = c.readNumEntry("TransparentG",0);
+ m_tr_b = c.readNumEntry("TransparentB",0);
+ m_tr_x = c.readDoubleNumEntry("TransparentX",0.0);
+
+ for (int i=0; i < TABLE_COLORS; i++)
+ {
+ readConfigColor(c,colorName(i),m_table[i]);
+ }
+
+ m_numb = serial++;
+}
+
+
+ColorSchema::~ColorSchema()
+{
+ delete lastRead;
+}
+
+void ColorSchema::clearSchema()
+{
+ int i;
+
+ for (i = 0; i < TABLE_COLORS; i++)
+ {
+ m_table[i].color = QColor(0,0,0);
+ m_table[i].transparent = 0;
+ m_table[i].bold = 0;
+ }
+ m_title = i18n("[no title]");
+ m_imagePath = "";
+ m_alignment = 1;
+ m_useTransparency = false;
+ m_tr_x = 0.0;
+ m_tr_r = 0;
+ m_tr_g = 0;
+ m_tr_b = 0;
+}
+
+void ColorSchema::setDefaultSchema()
+{
+ m_numb = 0;
+ m_title = i18n("Konsole Default");
+ m_imagePath = ""; // background pixmap
+ m_alignment = 1; // none
+ m_useTransparency = false; // not use pseudo-transparency by default
+ m_tr_r = m_tr_g = m_tr_b = 0; // just to be on the safe side
+ m_tr_x = 0.0;
+ for (int i = 0; i < TABLE_COLORS; i++)
+ {
+ m_table[i] = default_table[i];
+ }
+}
+
+/* static */ QString ColorSchema::colorName(int i)
+{
+ if ((i<0) || (i>=TABLE_COLORS))
+ {
+ kdWarning() << "Request for color name "
+ << i
+ << " out of range."
+ << endl;
+ return QString::null;
+ }
+
+ return QString(colornames[i]);
+}
+
+void ColorSchema::writeConfigColor(KConfig& c,
+ const QString& name,
+ const ColorEntry& e) const
+{
+ KConfigGroupSaver(&c,name);
+ c.setGroup(name);
+ c.writeEntry("Color",e.color);
+ c.writeEntry("Transparency",(bool) e.transparent);
+ c.writeEntry("Bold",(bool) e.bold);
+}
+
+void ColorSchema::readConfigColor(KConfig& c,
+ const QString& name,
+ ColorEntry& e)
+{
+ KConfigGroupSaver(&c,name);
+ c.setGroup(name);
+
+ e.color = c.readColorEntry("Color");
+ e.transparent = c.readBoolEntry("Transparent",false);
+ e.bold = c.readBoolEntry("Bold",false);
+}
+
+
+void ColorSchema::writeConfig(const QString& path) const
+{
+// KONSOLEDEBUG << "Writing schema " << relPath << " to file " << path << endl;
+
+ KConfig c(path,false,false);
+
+ c.setGroup("SchemaGeneral");
+ c.writeEntry("Title",m_title);
+ c.writeEntry("ImagePath",m_imagePath);
+ c.writeEntry("ImageAlignment",m_alignment);
+ c.writeEntry("UseTransparency",m_useTransparency);
+
+ c.writeEntry("TransparentR",m_tr_r);
+ c.writeEntry("TransparentG",m_tr_g);
+ c.writeEntry("TransparentB",m_tr_b);
+ c.writeEntry("TransparentX",m_tr_x);
+
+ for (int i=0; i < TABLE_COLORS; i++)
+ {
+ writeConfigColor(c,colorName(i),m_table[i]);
+ }
+}
+
+static int random_hue = -1;
+
+bool ColorSchema::rereadSchemaFile()
+{
+ QString fPath = fRelPath.isEmpty() ? "" : (fRelPath.startsWith("/") ? fRelPath : locate("data", "konsole/"+fRelPath));
+ if (fPath.isEmpty() || !QFile::exists(fPath))
+ return false;
+
+ //KONSOLEDEBUG << "Rereading schema file " << fPath << endl;
+
+ FILE *sysin = fopen(QFile::encodeName(fPath),"r");
+ if (!sysin)
+ {
+ int e = errno;
+
+ kdWarning() << "Schema file "
+ << fPath
+ << " could not be opened ("
+ << strerror(e)
+ << ")"
+ << endl;
+ return false;
+ }
+
+ char line[100];
+
+ *lastRead = QDateTime::currentDateTime();
+
+ while (fscanf(sysin,"%80[^\n]\n",line) > 0)
+ {
+ if (strlen(line) > 5)
+ {
+ if (!strncmp(line,"title",5))
+ {
+ m_title = i18n(line+6);
+ }
+ if (!strncmp(line,"image",5))
+ { char rend[100], path[100]; int attr = 1;
+ if (sscanf(line,"image %s %s",rend,path) != 2)
+ continue;
+ if (!strcmp(rend,"tile" )) attr = 2; else
+ if (!strcmp(rend,"center")) attr = 3; else
+ if (!strcmp(rend,"full" )) attr = 4; else
+ continue;
+
+ QString qline(line);
+ m_imagePath = locate("wallpaper", qline.mid( qline.find(" ",7)+1 ) );
+ m_alignment = attr;
+ }
+ if (!strncmp(line,"transparency",12))
+ { float rx;
+ int rr, rg, rb;
+
+ // Transparency needs 4 parameters: fade strength and the 3
+ // components of the fade color.
+ if (sscanf(line,"transparency %g %d %d %d",&rx,&rr,&rg,&rb) != 4)
+ continue;
+ m_useTransparency=true;
+ m_tr_x=rx;
+ m_tr_r=rr;
+ m_tr_g=rg;
+ m_tr_b=rb;
+ }
+ if (!strncmp(line,"rcolor",6))
+ { int fi,ch,cs,cv,tr,bo;
+ if(sscanf(line,"rcolor %d %d %d %d %d",&fi,&cs,&cv,&tr,&bo) != 5)
+ continue;
+ if (!(0 <= fi && fi <= TABLE_COLORS)) continue;
+ if (random_hue == -1)
+ random_hue = (KApplication::random()%32) * 11;
+ ch = random_hue;
+ if (!(0 <= cs && cs <= 255 )) continue;
+ if (!(0 <= cv && cv <= 255 )) continue;
+ if (!(0 <= tr && tr <= 1 )) continue;
+ if (!(0 <= bo && bo <= 1 )) continue;
+ m_table[fi].color = QColor();
+ m_table[fi].color.setHsv(ch,cs,cv);
+ m_table[fi].transparent = tr;
+ m_table[fi].bold = bo;
+ }
+ if (!strncmp(line,"color",5))
+ { int fi,cr,cg,cb,tr,bo;
+ if(sscanf(line,"color %d %d %d %d %d %d",&fi,&cr,&cg,&cb,&tr,&bo) != 6)
+ continue;
+ if (!(0 <= fi && fi <= TABLE_COLORS)) continue;
+ if (!(0 <= cr && cr <= 255 )) continue;
+ if (!(0 <= cg && cg <= 255 )) continue;
+ if (!(0 <= cb && cb <= 255 )) continue;
+ if (!(0 <= tr && tr <= 1 )) continue;
+ if (!(0 <= bo && bo <= 1 )) continue;
+ m_table[fi].color = QColor(cr,cg,cb);
+ m_table[fi].transparent = tr;
+ m_table[fi].bold = bo;
+ }
+ if (!strncmp(line,"sysfg",5))
+ { int fi,tr,bo;
+ if(sscanf(line,"sysfg %d %d %d",&fi,&tr,&bo) != 3)
+ continue;
+ if (!(0 <= fi && fi <= TABLE_COLORS)) continue;
+ if (!(0 <= tr && tr <= 1 )) continue;
+ if (!(0 <= bo && bo <= 1 )) continue;
+ m_table[fi].color = kapp->palette().active().text();
+ m_table[fi].transparent = tr;
+ m_table[fi].bold = bo;
+ }
+ if (!strncmp(line,"sysbg",5))
+ { int fi,tr,bo;
+ if(sscanf(line,"sysbg %d %d %d",&fi,&tr,&bo) != 3)
+ continue;
+ if (!(0 <= fi && fi <= TABLE_COLORS)) continue;
+ if (!(0 <= tr && tr <= 1 )) continue;
+ if (!(0 <= bo && bo <= 1 )) continue;
+ m_table[fi].color = kapp->palette().active().base();
+ m_table[fi].transparent = tr;
+ m_table[fi].bold = bo;
+ }
+ }
+ }
+ fclose(sysin);
+ m_fileRead=true;
+ return true;
+}
+
+bool ColorSchema::hasSchemaFileChanged() const
+{
+ QString fPath = fRelPath.isEmpty() ? "" : locate("data", "konsole/"+fRelPath);
+
+ //KONSOLEDEBUG << "Checking schema file " << fPath << endl;
+
+ // The default color schema never changes.
+ //
+ //
+ if (fPath.isEmpty()) return false;
+
+ QFileInfo i(fPath);
+
+ if (i.exists())
+ {
+ QDateTime written = i.lastModified();
+
+ if (written != (*lastRead))
+ {
+// KONSOLEDEBUG << "Schema file was modified " << written.toString() << endl;
+
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ kdWarning() << "Schema file no longer exists."
+ << endl;
+ return false;
+ }
+}
+
+void ColorSchema::updateLastRead(const QDateTime& dt)
+{
+ if (lastRead)
+ {
+ *lastRead=dt;
+ }
+}
+
+
+ColorSchemaList::ColorSchemaList() :
+ QPtrList<ColorSchema> ()
+{
+// KONSOLEDEBUG << "Got new color list" << endl;
+
+ defaultSchema = new ColorSchema();
+ append(defaultSchema);
+ setAutoDelete(true);
+
+ ColorSchema::serial=1; // Needed for detached sessions
+}
+
+ColorSchemaList::~ColorSchemaList()
+{
+ ColorSchema::serial=1;
+}
+
+
+ColorSchema *ColorSchemaList::find(const QString& path)
+{
+ if (path.isEmpty())
+ return find(0);
+ //KONSOLEDEBUG << "Looking for schema " << path << endl;
+ //kdDebug(1211)<<"ColorSchema::find() count()=="<<count()<<endl;
+ ColorSchemaListIterator it(*this);
+ ColorSchema *c;
+
+ if (path.startsWith("/")) {
+ //KONSOLEDEBUG << " schema given as a full path... " << path << endl;
+ ColorSchema *newSchema = new ColorSchema(path);
+ if (newSchema)
+ append(newSchema);
+ return newSchema;
+ }
+
+ while ((c=it.current()))
+ {
+ if ((*it)->relPath() == path)
+ return *it;
+ ++it;
+ }
+
+ //list is empty except the default schema
+ if (count()==1)
+ {
+ //kdDebug(1211)<<"ColorSchema::find() empty"<<endl;
+ ColorSchema *newSchema = new ColorSchema(path);
+ if (newSchema)
+ append(newSchema);
+ return newSchema;
+ };
+ return 0;
+}
+
+ColorSchema *ColorSchemaList::find(int i)
+{
+ //KONSOLEDEBUG << "Looking for schema m_number " << i << endl;
+
+ ColorSchemaListIterator it(*this);
+ ColorSchema *c;
+
+ while ((c=it.current()))
+ {
+ if ((*it)->numb() == i) return *it;
+ ++it;
+ }
+
+ return 0;
+}
+
+bool ColorSchemaList::updateAllSchemaTimes(const QDateTime& now)
+{
+// KONSOLEDEBUG << "Updating time stamps" << endl;
+
+ QStringList list;
+ KGlobal::dirs()->findAllResources("data", "konsole/*.schema", false, true, list);
+ QStringList::ConstIterator it;
+ bool r = false;
+
+ for (it=list.begin(); it!=list.end(); ++it)
+ {
+ QString filename=*it;
+ int j=filename.findRev('/');
+ if (j>-1)
+ filename = filename.mid(8);
+
+ ColorSchema *sc = find(filename);
+
+ if (!sc)
+ {
+// KONSOLEDEBUG << "Found new schema " << filename << endl;
+
+ ColorSchema *newSchema = new ColorSchema(filename);
+ if (newSchema)
+ {
+ append(newSchema);
+ r=true;
+ }
+ }
+ else
+ {
+ if (sc->hasSchemaFileChanged())
+ {
+ sc->rereadSchemaFile();
+ }
+ else
+ {
+ sc->updateLastRead(now);
+ }
+ }
+ }
+ //this has to be done explicitly now, to avoid reading all schema files on startup, aleXXX
+// sort();
+ return r;
+}
+
+bool ColorSchemaList::deleteOldSchemas(const QDateTime& now)
+{
+// KONSOLEDEBUG << "Checking for vanished schemas" << endl;
+
+ ColorSchemaListIterator it(*this);
+ ColorSchema *p ;
+ bool r = false;
+
+ while ((p=it.current()))
+ {
+ if ((p->getLastRead()) && (*(p->getLastRead())) < now)
+ {
+ KONSOLEDEBUG << "Found deleted schema "
+ << p->relPath()
+ << endl;
+ ++it;
+ remove(p);
+ r=true;
+ if (!it.current())
+ {
+ break;
+ }
+ }
+ else
+ {
+ ++it;
+ }
+ }
+
+ return r;
+}
+
+
+bool ColorSchemaList::checkSchemas()
+{
+// KONSOLEDEBUG << "Checking for new schemas" << endl;
+
+ bool r = false; // Any new schema's found?
+
+ // All schemas whose schema files can still be found
+ // will have their lastRead timestamps updated to
+ // now.
+ //
+ //
+ QDateTime now = QDateTime::currentDateTime();
+
+
+ r = updateAllSchemaTimes(now);
+ r = r || deleteOldSchemas(now);
+
+ return r;
+}
+
+int ColorSchemaList::compareItems(QPtrCollection::Item item1, QPtrCollection::Item item2)
+{
+ ColorSchema* schema1=(ColorSchema*)item1;
+ ColorSchema* schema2=(ColorSchema*)item2;
+ return -1*QString::compare(schema1->title(),schema2->title());
+}
+
+
diff --git a/konsole/konsole/schema.h b/konsole/konsole/schema.h
new file mode 100644
index 000000000..3ba718350
--- /dev/null
+++ b/konsole/konsole/schema.h
@@ -0,0 +1,243 @@
+/* schema.h
+**
+** Copyright (C) 1998-1999 by Lars Doelle <lars.doelle@on-line.de>
+** Copyright (C) 2000 by Adriaan de Groot <groot@kde.org>
+**
+** A file that defines the objects for storing color schema's
+** in konsole. This file is part of the KDE project, see
+** http://www.kde.org/
+** for more information.
+*/
+
+/*
+** 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 in a file called COPYING; if not, write to
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+** MA 02110-1301, USA.
+*/
+
+/*
+** Lars' code has almost completely disappeared from this file.
+** The new setup is more object-oriented and disposes of some
+** nasty static deleters.
+**
+** Basically you want to create a ColorSchemaList and then call
+** checkSchema's to get all the schema's available. Iterate through
+** the items in the list (with a constiterator) and so whatever.
+** The ColorSchemaList inherits protected from QList to prevent you
+** from doing silly things to the elements of the list.
+*/
+
+#ifndef SCHEMA_include
+#define SCHEMA_include
+
+#include <qstring.h>
+#include <qptrlist.h>
+
+#include "TECommon.h"
+
+#ifndef KONSOLEDEBUG
+/*
+** konsole has claimed debug area 1211. This isn't really the right place
+** to define KONSOLEDEBUG but there is no "global.h" or central "konsole.h"
+** file included by all parts of konsole, so this will have to do.
+*/
+#define KONSOLEDEBUG kdDebug(1211)
+#endif
+
+class QDateTime;
+class KConfig;
+
+class ColorSchema
+{
+friend class ColorSchemaList; //only for resetting serial to one when deleting the list
+
+public:
+ /**
+ * Create ColorSchema from the given pathname.
+ * If the given pathname does not exist, a ColorSchema
+ * with the same settings as the default schema is returned.
+ */
+ ColorSchema(const QString& pathname);
+ ~ColorSchema();
+ /**
+ * Construct a color schema from the given config file.
+ * (This is different from the constructor with a pathname
+ * because that reads the hackneyed schema file syntax and
+ * this is a KDE config file)
+ */
+ ColorSchema(KConfig&);
+
+ /**
+ * Constructor for the default schema (with no path).
+ */
+ ColorSchema();
+
+ QString relPath() const { return fRelPath; } ;
+
+ /**
+ * Check if the schema file whose pathname was given
+ * to the constructor has changed since it was last read.
+ */
+ bool hasSchemaFileChanged() const;
+
+ /**
+ * Actually read a schema file (using the path given
+ * to the constructor of the ColorSchema).
+ */
+ bool rereadSchemaFile();
+
+ /**
+ * Writes a ColorSchema to a config file with the
+ * given name.
+ */
+ void writeConfig(const QString& filename) const;
+
+ /**
+ * Returns the (non-i18n) name of the i'th color,
+ * or QString::null if i is not a color name. This
+ * should be used as a group name to store the
+ * information about the i'th color.
+ */
+ static QString colorName(int i);
+
+ /**
+ * Update the timestamp in the color schema indicating
+ * when the schema's file whas last checked and read.
+ */
+ void updateLastRead(const QDateTime& dt);
+
+
+protected:
+ /**
+ * Clear a schema. Used by constructors to clean up the
+ * data members before filling them.
+ */
+ void clearSchema();
+
+ /**
+ * Set the data members' values to those of the
+ * default schema.
+ */
+ void setDefaultSchema();
+
+
+ /**
+ * Write a single ColorEntry to the config file
+ * under the given name (ie. in the group name).
+ */
+ void writeConfigColor(KConfig& c,
+ const QString& name,
+ const ColorEntry& e) const;
+ /**
+ * Read a single ColorEntry from the config file.
+ */
+ void readConfigColor(KConfig& c,
+ const QString& name,
+ ColorEntry& e) ;
+
+ public:
+ int numb() {if (!m_fileRead) rereadSchemaFile();return m_numb;};
+ const QString& title() {if (!m_fileRead) rereadSchemaFile();return m_title;};
+ const QString& imagePath() {if (!m_fileRead) rereadSchemaFile();return m_imagePath;};
+ int alignment() {if (!m_fileRead) rereadSchemaFile();return m_alignment;};
+ const ColorEntry* table() {if (!m_fileRead) rereadSchemaFile();return m_table;};
+ bool useTransparency() {if (!m_fileRead) rereadSchemaFile();return m_useTransparency;};
+ double tr_x() {if (!m_fileRead) rereadSchemaFile();return m_tr_x;};
+ int tr_r() {if (!m_fileRead) rereadSchemaFile();return m_tr_r;};
+ int tr_g() {if (!m_fileRead) rereadSchemaFile();return m_tr_g;};
+ int tr_b() {if (!m_fileRead) rereadSchemaFile();return m_tr_b;};
+ QDateTime* getLastRead() {return lastRead;}; // Time last checked for updates
+
+ private:
+ int m_numb;
+ int m_tr_r, m_tr_g, m_tr_b;
+ int m_alignment;
+ QString m_title;
+ QString m_imagePath;
+ ColorEntry m_table[TABLE_COLORS];
+ bool m_useTransparency:1;
+ bool m_fileRead:1;
+ double m_tr_x;
+ QString fRelPath; // File name of schema file
+ QDateTime *lastRead; // Time last checked for updates
+ static int serial; // Serial number so that every
+ // ColorSchema has a unique number.
+};
+
+class ColorSchemaList : protected QPtrList<ColorSchema>
+{
+public:
+ /**
+ * The following functions are redeclared public since
+ * they're needed, but we still want to inherit protected
+ * from QPtrList to prevent unsightly -- and perhaps dangerous --
+ * tampering with the ColorSchemaList.
+ */
+ uint count() const { return QPtrList<ColorSchema>::count(); } ;
+ const ColorSchema *at(unsigned int i)
+ { return QPtrList<ColorSchema>::at(i); } ;
+
+ void sort() {QPtrList<ColorSchema>::sort();};
+
+ ColorSchemaList();
+ virtual ~ColorSchemaList();
+ /**
+ * Check if any new color schema files have been added since
+ * the last time checkSchemas() was called. Any new files
+ * are added to the list of schemas automatically.
+ *
+ * @return true if there were any changes to the list of schemas
+ * @return false otherwise
+ */
+ bool checkSchemas();
+
+ /**
+ * Returns the color schema read from the given path,
+ * or NULL if no color schema with the given path is found.
+ */
+ ColorSchema *find(const QString & path);
+ /**
+ * Returns the serial number of the color schema
+ * with the given serial number, or NULL if there is none.
+ */
+ ColorSchema *find(int);
+ ColorSchema *findAny(const QString& path)
+ {
+ ColorSchema *p = find(path);
+ if (p) return p;
+ return defaultSchema;
+ } ;
+protected:
+ virtual int compareItems(QPtrCollection::Item item1, QPtrCollection::Item item2);
+
+private:
+ /**
+ * These next two functions are used internally by
+ * checkSchemas. updateAllSchemaTimes sets the timestamp
+ * on all the ColorSchema's whose config / schema file
+ * can still be found, and deleteOldSchema's does the
+ * actual removal of schema's without a config file.
+ */
+ bool updateAllSchemaTimes(const QDateTime&);
+ bool deleteOldSchemas(const QDateTime&);
+
+ /**
+ * This isn't really used, but it could be. A newly
+ * constructed ColorSchemaList contains one element:
+ * the defaultSchema, with serial number 0.
+ */
+ ColorSchema *defaultSchema;
+} ;
+
+#endif
diff --git a/konsole/konsole/session.cpp b/konsole/konsole/session.cpp
new file mode 100644
index 000000000..2310255a8
--- /dev/null
+++ b/konsole/konsole/session.cpp
@@ -0,0 +1,838 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#include "session.h"
+#include "zmodem_dialog.h"
+
+#include <kdebug.h>
+#include <dcopclient.h>
+#include <kmessagebox.h>
+#include <knotifyclient.h>
+#include <klocale.h>
+#include <kprocio.h>
+#include <krun.h>
+#include <kshell.h>
+#include <kstandarddirs.h>
+
+#include <stdlib.h>
+#include <qfile.h>
+#include <qdir.h>
+#include <qregexp.h>
+#include <qtextedit.h>
+
+/*! \class TESession
+
+ Sessions are combinations of TEPTy and Emulations.
+
+ The stuff in here does not belong to the terminal emulation framework,
+ but to main.cpp. It serves it's duty by providing a single reference
+ to TEPTy/Emulation pairs. In fact, it is only there to demonstrate one
+ of the abilities of the framework - multible sessions.
+*/
+
+TESession::TESession(TEWidget* _te, const QString &_term, ulong _winId, const QString &_sessionId, const QString &_initial_cwd)
+ : DCOPObject( _sessionId.latin1() )
+ , sh(0)
+ , connected(true)
+ , monitorActivity(false)
+ , monitorSilence(false)
+ , notifiedActivity(false)
+ , masterMode(false)
+ , autoClose(true)
+ , wantedClose(false)
+ , schema_no(0)
+ , font_no(3)
+ , silence_seconds(10)
+ , add_to_utmp(true)
+ , xon_xoff(false)
+ , pgm(QString())
+ , args(QStrList())
+ , sessionId(_sessionId)
+ , cwd("")
+ , initial_cwd(_initial_cwd)
+ , zmodemBusy(false)
+ , zmodemProc(0)
+ , zmodemProgress(0)
+ , encoding_no(0)
+{
+ //kdDebug(1211)<<"TESession ctor() new TEPty"<<endl;
+ te = _te;
+ //kdDebug(1211)<<"TESession ctor() new TEmuVt102"<<endl;
+ em = new TEmuVt102(te);
+ font_h = te-> fontHeight();
+ font_w = te-> fontWidth();
+ QObject::connect(te,SIGNAL(changedContentSizeSignal(int,int)),
+ this,SLOT(onContentSizeChange(int,int)));
+ QObject::connect(te,SIGNAL(changedFontMetricSignal(int,int)),
+ this,SLOT(onFontMetricChange(int,int)));
+
+ term = _term;
+ winId = _winId;
+ iconName = "konsole";
+
+ setPty( new TEPty() );
+
+ connect( em, SIGNAL( changeTitle( int, const QString & ) ),
+ this, SLOT( setUserTitle( int, const QString & ) ) );
+ connect( em, SIGNAL( notifySessionState(int) ),
+ this, SLOT( notifySessionState(int) ) );
+ monitorTimer = new QTimer(this);
+ connect(monitorTimer, SIGNAL(timeout()), this, SLOT(monitorTimerDone()));
+
+ connect( em, SIGNAL( zmodemDetected() ), this, SLOT(slotZModemDetected()));
+
+ connect( em, SIGNAL( changeTabTextColor( int ) ),
+ this, SLOT( changeTabTextColor( int ) ) );
+
+ //kdDebug(1211)<<"TESession ctor() done"<<endl;
+}
+
+void TESession::setPty(TEPty *_sh)
+{
+ if ( sh ) {
+ delete sh;
+ }
+ sh = _sh;
+ connect( sh, SIGNAL( forkedChild() ),
+ this, SIGNAL( forkedChild() ));
+
+ //kdDebug(1211)<<"TESession ctor() sh->setSize()"<<endl;
+ sh->setSize(te->Lines(),te->Columns()); // not absolutely nessesary
+ sh->useUtf8(em->utf8());
+ //kdDebug(1211)<<"TESession ctor() connecting"<<endl;
+ connect( sh,SIGNAL(block_in(const char*,int)),this,SLOT(onRcvBlock(const char*,int)) );
+
+ connect( em,SIGNAL(sndBlock(const char*,int)),sh,SLOT(send_bytes(const char*,int)) );
+ connect( em,SIGNAL(lockPty(bool)),sh,SLOT(lockPty(bool)) );
+ connect( em,SIGNAL(useUtf8(bool)),sh,SLOT(useUtf8(bool)) );
+
+ connect( sh,SIGNAL(done(int)), this,SLOT(done(int)) );
+
+ if (!sh->error().isEmpty())
+ QTimer::singleShot(0, this, SLOT(ptyError()));
+}
+
+void TESession::ptyError()
+{
+ // FIXME: sh->error() is always empty
+ if ( sh->error().isEmpty() )
+ KMessageBox::error( te->topLevelWidget(),
+ i18n("Konsole is unable to open a PTY (pseudo teletype). It is likely that this is due to an incorrect configuration of the PTY devices. Konsole needs to have read/write access to the PTY devices."),
+ i18n("A Fatal Error Has Occurred") );
+ else
+ KMessageBox::error(te->topLevelWidget(), sh->error());
+ emit done(this);
+}
+
+void TESession::changeWidget(TEWidget* w)
+{
+ QObject::disconnect(te,SIGNAL(changedContentSizeSignal(int,int)),
+ this,SLOT(onContentSizeChange(int,int)));
+ QObject::disconnect(te,SIGNAL(changedFontMetricSignal(int,int)),
+ this,SLOT(onFontMetricChange(int,int)));
+ te=w;
+ em->changeGUI(w);
+ font_h = te->fontHeight();
+ font_w = te->fontWidth();
+ sh->setSize(te->Lines(),te->Columns()); // not absolutely nessesary
+
+ te->setDefaultBackColor(modifiedBackground);
+
+ QObject::connect(te,SIGNAL(changedContentSizeSignal(int,int)),
+ this,SLOT(onContentSizeChange(int,int)));
+ QObject::connect(te,SIGNAL(changedFontMetricSignal(int,int)),
+ this,SLOT(onFontMetricChange(int,int)));
+}
+
+void TESession::setProgram( const QString &_pgm, const QStrList &_args )
+{
+ pgm = _pgm;
+ args = _args;
+}
+
+void TESession::run()
+{
+ // Upon a KPty error, there is no description on what that error was...
+ // Check to see if the given program is executable.
+ QString exec = QFile::encodeName(pgm);
+ exec = KRun::binaryName(exec, false);
+ exec = KShell::tildeExpand(exec);
+ QString pexec = KGlobal::dirs()->findExe(exec);
+ if ( pexec.isEmpty() ) {
+ kdError()<<"can not execute "<<exec<<endl;
+ QTimer::singleShot(1, this, SLOT(done()));
+ return;
+ }
+
+ QString appId=kapp->dcopClient()->appId();
+
+ QString cwd_save = QDir::currentDirPath();
+ if (!initial_cwd.isEmpty())
+ QDir::setCurrent(initial_cwd);
+ sh->setXonXoff(xon_xoff);
+
+ int result = sh->run(QFile::encodeName(pgm), args, term.latin1(),
+ winId, add_to_utmp,
+ ("DCOPRef("+appId+",konsole)").latin1(),
+ ("DCOPRef("+appId+","+sessionId+")").latin1());
+ if (result < 0) { // Error in opening pseudo teletype
+ kdWarning()<<"Unable to open a pseudo teletype!"<<endl;
+ QTimer::singleShot(0, this, SLOT(ptyError()));
+ }
+ sh->setErase(em->getErase());
+
+ if (!initial_cwd.isEmpty())
+ QDir::setCurrent(cwd_save);
+ else
+ initial_cwd=cwd_save;
+
+ sh->setWriteable(false); // We are reachable via kwrited.
+}
+
+void TESession::changeTabTextColor( int color )
+{
+ emit changeTabTextColor( this, color );
+}
+
+void TESession::setUserTitle( int what, const QString &caption )
+{
+ // (btw: what=0 changes title and icon, what=1 only icon, what=2 only title
+ if ((what == 0) || (what == 2))
+ userTitle = caption;
+ if ((what == 0) || (what == 1))
+ iconText = caption;
+ if (what == 11) {
+ QString colorString = caption.section(';',0,0);
+ QColor backColor = QColor(colorString);
+ if (backColor.isValid()){// change color via \033]11;Color\007
+ if (backColor != modifiedBackground) {
+ modifiedBackground = backColor;
+ te->setDefaultBackColor(backColor);
+ }
+ }
+ }
+ if (what == 30)
+ renameSession(caption);
+ if (what == 31) {
+ cwd=caption;
+ cwd=cwd.replace( QRegExp("^~"), QDir::homeDirPath() );
+ emit openURLRequest(cwd);
+ }
+ if (what == 32) { // change icon via \033]32;Icon\007
+ iconName = caption;
+ te->update();
+ }
+
+ emit updateTitle(this);
+}
+
+QString TESession::fullTitle() const
+{
+ QString res = title;
+ if ( !userTitle.isEmpty() )
+ res = userTitle + " - " + res;
+ return res;
+}
+
+void TESession::monitorTimerDone()
+{
+ if (monitorSilence) {
+ KNotifyClient::event(winId, "Silence", i18n("Silence in session '%1'").arg(title));
+ emit notifySessionState(this,NOTIFYSILENCE);
+ }
+ notifiedActivity=false;
+}
+
+void TESession::notifySessionState(int state)
+{
+ if (state==NOTIFYBELL) {
+ te->Bell(em->isConnected(),i18n("Bell in session '%1'").arg(title));
+ } else if (state==NOTIFYACTIVITY) {
+ if (monitorSilence) {
+ monitorTimer->start(silence_seconds*1000,true);
+ }
+ if (!monitorActivity)
+ return;
+ if (!notifiedActivity) {
+ KNotifyClient::event(winId, "Activity", i18n("Activity in session '%1'").arg(title));
+ notifiedActivity=true;
+ monitorTimer->start(silence_seconds*1000,true);
+ }
+ }
+
+ emit notifySessionState(this, state);
+}
+
+void TESession::onContentSizeChange(int height, int width)
+{
+ // ensure that image is at least one line high by one column wide
+ const int columns = QMAX( width/font_w , 1 );
+ const int lines = QMAX( height/font_h , 1 );
+
+ em->onImageSizeChange( lines , columns );
+ sh->setSize( lines , columns );
+}
+
+void TESession::onFontMetricChange(int height, int width)
+{
+ //kdDebug(1211)<<"TESession::onFontMetricChange " << height << " " << width << endl;
+ if (connected) {
+ font_h = height;
+ font_w = width;
+ }
+}
+
+bool TESession::sendSignal(int signal)
+{
+ return sh->kill(signal);
+}
+
+bool TESession::closeSession()
+{
+ autoClose = true;
+ wantedClose = true;
+ if (!sh->isRunning() || !sendSignal(SIGHUP))
+ {
+ // Forced close.
+ QTimer::singleShot(1, this, SLOT(done()));
+ }
+ return true;
+}
+
+void TESession::feedSession(const QString &text)
+{
+ emit disableMasterModeConnections();
+ setListenToKeyPress(true);
+ te->emitText(text);
+ setListenToKeyPress(false);
+ emit enableMasterModeConnections();
+}
+
+void TESession::sendSession(const QString &text)
+{
+ QString newtext=text;
+ newtext.append("\r");
+ feedSession(newtext);
+}
+
+void TESession::renameSession(const QString &name)
+{
+ title=name;
+ emit renameSession(this,name);
+}
+
+TESession::~TESession()
+{
+ //kdDebug(1211) << "disconnnecting..." << endl;
+ QObject::disconnect( sh, SIGNAL( done(int) ),
+ this, SLOT( done(int) ) );
+ delete em;
+ delete sh;
+
+ delete zmodemProc;
+}
+
+void TESession::setConnect(bool c)
+{
+ connected=c;
+ em->setConnect(c);
+ setListenToKeyPress(c);
+}
+
+void TESession::setListenToKeyPress(bool l)
+{
+ em->setListenToKeyPress(l);
+}
+
+void TESession::done() {
+ emit processExited(sh);
+ emit done(this);
+}
+
+void TESession::done(int exitStatus)
+{
+ if (!autoClose)
+ {
+ userTitle = i18n("<Finished>");
+ emit updateTitle(this);
+ return;
+ }
+ if (!wantedClose && (exitStatus || sh->signalled()))
+ {
+ if (sh->normalExit())
+ KNotifyClient::event(winId, "Finished", i18n("Session '%1' exited with status %2.").arg(title).arg(exitStatus));
+ else if (sh->signalled())
+ {
+ if (sh->coreDumped())
+ KNotifyClient::event(winId, "Finished", i18n("Session '%1' exited with signal %2 and dumped core.").arg(title).arg(sh->exitSignal()));
+ else
+ KNotifyClient::event(winId, "Finished", i18n("Session '%1' exited with signal %2.").arg(title).arg(sh->exitSignal()));
+ }
+ else
+ KNotifyClient::event(winId, "Finished", i18n("Session '%1' exited unexpectedly.").arg(title));
+ }
+ emit processExited(sh);
+ emit done(this);
+}
+
+void TESession::terminate()
+{
+ delete this;
+}
+
+TEmulation* TESession::getEmulation()
+{
+ return em;
+}
+
+// following interfaces might be misplaced ///
+
+int TESession::schemaNo()
+{
+ return schema_no;
+}
+
+int TESession::encodingNo()
+{
+ return encoding_no;
+}
+
+int TESession::keymapNo()
+{
+ return em->keymapNo();
+}
+
+QString TESession::keymap()
+{
+ return em->keymap();
+}
+
+int TESession::fontNo()
+{
+ return font_no;
+}
+
+const QString & TESession::Term()
+{
+ return term;
+}
+
+const QString & TESession::SessionId()
+{
+ return sessionId;
+}
+
+void TESession::setSchemaNo(int sn)
+{
+ schema_no = sn;
+}
+
+void TESession::setEncodingNo(int index)
+{
+ encoding_no = index;
+}
+
+void TESession::setKeymapNo(int kn)
+{
+ em->setKeymap(kn);
+}
+
+void TESession::setKeymap(const QString &id)
+{
+ em->setKeymap(id);
+}
+
+void TESession::setFontNo(int fn)
+{
+ font_no = fn;
+}
+
+void TESession::setTitle(const QString& _title)
+{
+ title = _title;
+ //kdDebug(1211)<<"Session setTitle " << title <<endl;
+}
+
+const QString& TESession::Title()
+{
+ return title;
+}
+
+void TESession::setIconName(const QString& _iconName)
+{
+ iconName = _iconName;
+}
+
+void TESession::setIconText(const QString& _iconText)
+{
+ iconText = _iconText;
+ //kdDebug(1211)<<"Session setIconText " << iconText <<endl;
+}
+
+const QString& TESession::IconName()
+{
+ return iconName;
+}
+
+const QString& TESession::IconText()
+{
+ return iconText;
+}
+
+bool TESession::testAndSetStateIconName (const QString& newname)
+{
+ if (newname != stateIconName)
+ {
+ stateIconName = newname;
+ return true;
+ }
+ return false;
+}
+
+void TESession::setHistory(const HistoryType &hType)
+{
+ em->setHistory(hType);
+}
+
+const HistoryType& TESession::history()
+{
+ return em->history();
+}
+
+void TESession::clearHistory()
+{
+ if (history().isOn()) {
+ int histSize = history().getSize();
+ setHistory(HistoryTypeNone());
+ if (histSize)
+ setHistory(HistoryTypeBuffer(histSize));
+ else
+ setHistory(HistoryTypeFile());
+ }
+}
+
+QStrList TESession::getArgs()
+{
+ return args;
+}
+
+QString TESession::getPgm()
+{
+ return pgm;
+}
+
+QString TESession::getCwd()
+{
+#ifdef HAVE_PROC_CWD
+ if (cwd.isEmpty()) {
+ QFileInfo Cwd(QString("/proc/%1/cwd").arg(sh->pid()));
+ if(Cwd.isSymLink())
+ return Cwd.readLink();
+ }
+#endif /* HAVE_PROC_CWD */
+ return cwd;
+}
+
+bool TESession::isMonitorActivity() { return monitorActivity; }
+bool TESession::isMonitorSilence() { return monitorSilence; }
+bool TESession::isMasterMode() { return masterMode; }
+
+void TESession::setMonitorActivity(bool _monitor)
+{
+ monitorActivity=_monitor;
+ notifiedActivity=false;
+}
+
+void TESession::setMonitorSilence(bool _monitor)
+{
+ if (monitorSilence==_monitor)
+ return;
+
+ monitorSilence=_monitor;
+ if (monitorSilence)
+ monitorTimer->start(silence_seconds*1000,true);
+ else
+ monitorTimer->stop();
+}
+
+void TESession::setMonitorSilenceSeconds(int seconds)
+{
+ silence_seconds=seconds;
+ if (monitorSilence) {
+ monitorTimer->start(silence_seconds*1000,true);
+ }
+}
+
+void TESession::setMasterMode(bool _master)
+{
+ masterMode=_master;
+}
+
+void TESession::setAddToUtmp(bool set)
+{
+ add_to_utmp = set;
+}
+
+void TESession::setXonXoff(bool set)
+{
+ xon_xoff = set;
+}
+
+void TESession::slotZModemDetected()
+{
+ if (!zmodemBusy)
+ {
+ QTimer::singleShot(10, this, SLOT(emitZModemDetected()));
+ zmodemBusy = true;
+ }
+}
+
+void TESession::emitZModemDetected()
+{
+ emit zmodemDetected(this);
+}
+
+void TESession::cancelZModem()
+{
+ sh->send_bytes("\030\030\030\030", 4); // Abort
+ zmodemBusy = false;
+}
+
+void TESession::startZModem(const QString &zmodem, const QString &dir, const QStringList &list)
+{
+ zmodemBusy = true;
+ zmodemProc = new KProcIO;
+
+ (*zmodemProc) << zmodem << "-v";
+ for(QStringList::ConstIterator it = list.begin();
+ it != list.end();
+ ++it)
+ {
+ (*zmodemProc) << (*it);
+ }
+
+ if (!dir.isEmpty())
+ zmodemProc->setWorkingDirectory(dir);
+ zmodemProc->start(KProcIO::NotifyOnExit, false);
+
+ // Override the read-processing of KProcIO
+ disconnect(zmodemProc,SIGNAL (receivedStdout (KProcess *, char *, int)), 0, 0);
+ connect(zmodemProc,SIGNAL (receivedStdout (KProcess *, char *, int)),
+ this, SLOT(zmodemSendBlock(KProcess *, char *, int)));
+ connect(zmodemProc,SIGNAL (receivedStderr (KProcess *, char *, int)),
+ this, SLOT(zmodemStatus(KProcess *, char *, int)));
+ connect(zmodemProc,SIGNAL (processExited(KProcess *)),
+ this, SLOT(zmodemDone()));
+
+ disconnect( sh,SIGNAL(block_in(const char*,int)), this, SLOT(onRcvBlock(const char*,int)) );
+ connect( sh,SIGNAL(block_in(const char*,int)), this, SLOT(zmodemRcvBlock(const char*,int)) );
+ connect( sh,SIGNAL(buffer_empty()), this, SLOT(zmodemContinue()));
+
+ zmodemProgress = new ZModemDialog(te->topLevelWidget(), false,
+ i18n("ZModem Progress"));
+
+ connect(zmodemProgress, SIGNAL(user1Clicked()),
+ this, SLOT(zmodemDone()));
+
+ zmodemProgress->show();
+}
+
+void TESession::zmodemSendBlock(KProcess *, char *data, int len)
+{
+ sh->send_bytes(data, len);
+// qWarning("<-- %d bytes", len);
+ if (sh->buffer_full())
+ {
+ zmodemProc->suspend();
+// qWarning("ZModem suspend");
+ }
+}
+
+void TESession::zmodemContinue()
+{
+ zmodemProc->resume();
+// qWarning("ZModem resume");
+}
+
+void TESession::zmodemStatus(KProcess *, char *data, int len)
+{
+ QCString msg(data, len+1);
+ while(!msg.isEmpty())
+ {
+ int i = msg.find('\015');
+ int j = msg.find('\012');
+ QCString txt;
+ if ((i != -1) && ((j == -1) || (i < j)))
+ {
+ msg = msg.mid(i+1);
+ }
+ else if (j != -1)
+ {
+ txt = msg.left(j);
+ msg = msg.mid(j+1);
+ }
+ else
+ {
+ txt = msg;
+ msg.truncate(0);
+ }
+ if (!txt.isEmpty())
+ zmodemProgress->addProgressText(QString::fromLocal8Bit(txt));
+ }
+}
+
+void TESession::zmodemRcvBlock(const char *data, int len)
+{
+ QByteArray ba;
+ ba.duplicate(data, len);
+ zmodemProc->writeStdin(ba);
+// qWarning("--> %d bytes", len);
+}
+
+void TESession::zmodemDone()
+{
+ if (zmodemProc)
+ {
+ delete zmodemProc;
+ zmodemProc = 0;
+ zmodemBusy = false;
+
+ disconnect( sh,SIGNAL(block_in(const char*,int)), this ,SLOT(zmodemRcvBlock(const char*,int)) );
+ disconnect( sh,SIGNAL(buffer_empty()), this, SLOT(zmodemContinue()));
+ connect( sh,SIGNAL(block_in(const char*,int)), this, SLOT(onRcvBlock(const char*,int)) );
+
+ sh->send_bytes("\030\030\030\030", 4); // Abort
+ sh->send_bytes("\001\013\n", 3); // Try to get prompt back
+ zmodemProgress->done();
+ }
+}
+
+
+bool TESession::processDynamic(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData)
+{
+ if (fullScripting)
+ {
+ if (fun == "feedSession(QString)")
+ {
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ feedSession(arg0);
+ replyType = "void";
+ return true;
+ }
+ else if (fun == "sendSession(QString)")
+ {
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ sendSession(arg0);
+ replyType = "void";
+ return true;
+ }
+ }
+ return SessionIface::processDynamic(fun, data, replyType, replyData);
+
+}
+
+QCStringList TESession::functionsDynamic()
+{
+ QCStringList funcs = SessionIface::functionsDynamic();
+ if (fullScripting)
+ {
+ funcs << "void feedSession(QString text)";
+ funcs << "void sendSession(QString text)";
+ }
+ return funcs;
+}
+
+
+void TESession::onRcvBlock( const char* buf, int len )
+{
+ em->onRcvBlock( buf, len );
+ emit receivedData( QString::fromLatin1( buf, len ) );
+}
+
+void TESession::print( QPainter &paint, bool friendly, bool exact )
+{
+ te->print(paint, friendly, exact);
+}
+
+QString TESession::schema()
+{
+ QString currentSchema;
+ emit getSessionSchema(this, currentSchema);
+ return currentSchema;
+}
+
+void TESession::setSchema(const QString &schema)
+{
+ emit setSessionSchema(this, schema);
+}
+
+QString TESession::font()
+{
+ return te->getVTFont().toString();
+}
+
+void TESession::setFont(const QString &font)
+{
+ QFont tmp;
+ if (tmp.fromString(font))
+ te->setVTFont(tmp);
+ else
+ kdWarning()<<"unknown font: "<<font<<endl;
+}
+
+QString TESession::encoding()
+{
+ return em->codec()->name();
+}
+
+void TESession::setEncoding(const QString &encoding)
+{
+ emit setSessionEncoding(this, encoding);
+}
+
+QString TESession::keytab()
+{
+ return keymap();
+}
+
+void TESession::setKeytab(const QString &keytab)
+{
+ setKeymap(keytab);
+ emit updateSessionConfig(this);
+}
+
+QSize TESession::size()
+{
+ return em->imageSize();
+}
+
+void TESession::setSize(QSize size)
+{
+ if ((size.width() <= 1) || (size.height() <= 1))
+ return;
+
+ emit resizeSession(this, size);
+}
+
+#include "session.moc"
diff --git a/konsole/konsole/session.h b/konsole/konsole/session.h
new file mode 100644
index 000000000..90352cb5e
--- /dev/null
+++ b/konsole/konsole/session.h
@@ -0,0 +1,232 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef SESSION_H
+#define SESSION_H
+
+#include <kapplication.h>
+#include <kmainwindow.h>
+#include <qstrlist.h>
+
+#include "TEPty.h"
+#include "TEWidget.h"
+#include "TEmuVt102.h"
+
+#include "sessioniface.h"
+
+class KProcIO;
+class KProcess;
+class ZModemDialog;
+
+class TESession : public QObject, virtual public SessionIface
+{ Q_OBJECT
+
+public:
+
+ TESession(TEWidget* w,
+ const QString &term, ulong winId, const QString &sessionId="session-1",
+ const QString &initial_cwd = QString::null);
+ void changeWidget(TEWidget* w);
+ void setPty( TEPty *_sh );
+ TEWidget* widget() { return te; }
+ ~TESession();
+
+ void setConnect(bool r); // calls setListenToKeyPress(r)
+ void setListenToKeyPress(bool l);
+ TEmulation* getEmulation(); // to control emulation
+ bool isSecure();
+ bool isMonitorActivity();
+ bool isMonitorSilence();
+ bool isMasterMode();
+ int schemaNo();
+ int encodingNo();
+ int fontNo();
+ const QString& Term();
+ const QString& SessionId();
+ const QString& Title();
+ const QString& IconName();
+ const QString& IconText();
+ QString fullTitle() const;
+ int keymapNo();
+ QString keymap();
+ QStrList getArgs();
+ QString getPgm();
+ QString getCwd();
+ QString getInitial_cwd() { return initial_cwd; }
+ void setInitial_cwd(const QString& _cwd) { initial_cwd=_cwd; }
+
+ void setHistory(const HistoryType&);
+ const HistoryType& history();
+
+ void setMonitorActivity(bool);
+ void setMonitorSilence(bool);
+ void setMonitorSilenceSeconds(int seconds);
+ void setMasterMode(bool);
+ void setSchemaNo(int sn);
+ void setEncodingNo(int index);
+ void setKeymapNo(int kn);
+ void setKeymap(const QString& _id);
+ void setFontNo(int fn);
+ void setTitle(const QString& _title);
+ void setIconName(const QString& _iconName);
+ void setIconText(const QString& _iconText);
+ void setAddToUtmp(bool);
+ void setXonXoff(bool);
+ bool testAndSetStateIconName (const QString& newname);
+ bool sendSignal(int signal);
+
+ void setAutoClose(bool b) { autoClose = b; }
+
+ // Additional functions for DCOP
+ bool closeSession();
+ void clearHistory();
+ void feedSession(const QString &text);
+ void sendSession(const QString &text);
+ void renameSession(const QString &name);
+ QString sessionName() { return title; }
+ int sessionPID() { return sh->pid(); }
+
+ virtual bool processDynamic(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData);
+ virtual QCStringList functionsDynamic();
+ void enableFullScripting(bool b) { fullScripting = b; }
+
+ void startZModem(const QString &rz, const QString &dir, const QStringList &list);
+ void cancelZModem();
+ bool zmodemIsBusy() { return zmodemBusy; }
+
+ void print(QPainter &paint, bool friendly, bool exact);
+
+ QString schema();
+ void setSchema(const QString &schema);
+ QString encoding();
+ void setEncoding(const QString &encoding);
+ QString keytab();
+ void setKeytab(const QString &keytab);
+ QSize size();
+ void setSize(QSize size);
+ void setFont(const QString &font);
+ QString font();
+
+public slots:
+
+ void run();
+ void setProgram( const QString &_pgm, const QStrList &_args );
+ void done();
+ void done(int);
+ void terminate();
+ void setUserTitle( int, const QString &caption );
+ void changeTabTextColor( int );
+ void ptyError();
+ void slotZModemDetected();
+ void emitZModemDetected();
+
+ void zmodemStatus(KProcess *, char *data, int len);
+ void zmodemSendBlock(KProcess *, char *data, int len);
+ void zmodemRcvBlock(const char *data, int len);
+ void zmodemDone();
+ void zmodemContinue();
+
+signals:
+
+ void processExited(KProcess *);
+ void forkedChild();
+ void receivedData( const QString& text );
+ void done(TESession*);
+ void updateTitle(TESession*);
+ void notifySessionState(TESession* session, int state);
+ void changeTabTextColor( TESession*, int );
+
+ void disableMasterModeConnections();
+ void enableMasterModeConnections();
+ void renameSession(TESession* ses, const QString &name);
+
+ void openURLRequest(const QString &cwd);
+
+ void zmodemDetected(TESession *);
+ void updateSessionConfig(TESession *);
+ void resizeSession(TESession *session, QSize size);
+ void setSessionEncoding(TESession *session, const QString &encoding);
+ void getSessionSchema(TESession *session, QString &schema);
+ void setSessionSchema(TESession *session, const QString &schema);
+
+private slots:
+ void onRcvBlock( const char* buf, int len );
+ void monitorTimerDone();
+ void notifySessionState(int state);
+ void onContentSizeChange(int height, int width);
+ void onFontMetricChange(int height, int width);
+
+private:
+
+ TEPty* sh;
+ TEWidget* te;
+ TEmulation* em;
+
+ bool connected;
+ bool monitorActivity;
+ bool monitorSilence;
+ bool notifiedActivity;
+ bool masterMode;
+ bool autoClose;
+ bool wantedClose;
+ QTimer* monitorTimer;
+
+ //FIXME: using the indices here
+ // is propably very bad. We should
+ // use a persistent reference instead.
+ int schema_no;
+ int font_no;
+ int silence_seconds;
+
+ int font_h;
+ int font_w;
+
+ QString title;
+ QString userTitle;
+ QString iconName;
+ QString iconText; // as set by: echo -en '\033]1;IconText\007
+ bool add_to_utmp;
+ bool xon_xoff;
+ bool fullScripting;
+
+ QString stateIconName;
+
+ QString pgm;
+ QStrList args;
+
+ QString term;
+ ulong winId;
+ QString sessionId;
+
+ QString cwd;
+ QString initial_cwd;
+
+ // ZModem
+ bool zmodemBusy;
+ KProcIO* zmodemProc;
+ ZModemDialog* zmodemProgress;
+
+ // Color/Font Changes by ESC Sequences
+
+ QColor modifiedBackground; // as set by: echo -en '\033]11;Color\007
+ int encoding_no;
+};
+
+#endif
diff --git a/konsole/konsole/sessioniface.h b/konsole/konsole/sessioniface.h
new file mode 100644
index 000000000..51ee5ca80
--- /dev/null
+++ b/konsole/konsole/sessioniface.h
@@ -0,0 +1,51 @@
+/*
+ This file is part of Konsole, an X terminal.
+ Copyright (C) 2001 by Stephan Binner <binner@kde.org>
+
+ 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+*/
+
+#ifndef SESSIONIFACE_H
+#define SESSIONIFACE_H
+
+#include <dcopobject.h>
+
+class SessionIface : virtual public DCOPObject
+{
+ K_DCOP
+ k_dcop:
+
+ virtual bool closeSession() =0;
+ virtual bool sendSignal(int signal) =0;
+
+ virtual void clearHistory() =0;
+ virtual void renameSession(const QString &name) =0;
+ virtual QString sessionName() =0;
+ virtual int sessionPID() =0;
+
+ virtual QString schema() =0;
+ virtual void setSchema(const QString &schema) =0;
+ virtual QString encoding() =0;
+ virtual void setEncoding(const QString &encoding) =0;
+ virtual QString keytab() =0;
+ virtual void setKeytab(const QString &keyboard) =0;
+ virtual QSize size() =0;
+ virtual void setSize(QSize size) =0;
+ virtual QString font() =0;
+ virtual void setFont(const QString &font) =0;
+};
+
+#endif // SESSIONIFACE_H
diff --git a/konsole/konsole/x-konsole.desktop b/konsole/konsole/x-konsole.desktop
new file mode 100644
index 000000000..e70d77e47
--- /dev/null
+++ b/konsole/konsole/x-konsole.desktop
@@ -0,0 +1,74 @@
+[Desktop Entry]
+Type=MimeType
+MimeType=application/x-konsole
+X-KDE-AutoEmbed=true
+Icon=konsole
+Patterns=*.shell;
+Comment=File to Open a Shell
+Comment[af]=Lêer om 'n tolk mee oop te maak
+Comment[ar]=مل٠لÙتح محارة
+Comment[az]=Qabığı Açacaq Fayl
+Comment[be]=Файл Ð°Ð´ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ð°Ð±Ð°Ð»Ð¾Ð½ÐºÑ–
+Comment[bg]=Файл за отварÑне в конзолата
+Comment[bn]=শেল খোলার জনà§à¦¯ ফাইল
+Comment[bs]=Datoteka za otvaranje shella
+Comment[ca]=Fitxer per a obrir una shell
+Comment[cs]=Soubor k otevření příkazové řádky
+Comment[csb]=Lopk do òtemkniãcô pòwłoczi
+Comment[da]=Fil som skal åbnes i en skal
+Comment[de]=Datei zum Öffnen einer Shell
+Comment[el]=ΑÏχείο για άνοιγμα ενός κελÏφους
+Comment[eo]=Dosiero por malfermi komandinterpretilon
+Comment[es]=Archivo para abrir un intérprete de órdenes
+Comment[et]=Shelli avamise rakendus
+Comment[eu]=Shella irekitzeko fitxategia
+Comment[fa]=پرونده برای باز کردن پوسته
+Comment[fi]=Tiedosto, joka avaa komentoikkunan
+Comment[fr]=Fichier pour ouvrir un « shell »
+Comment[fy]=Triem om in flues te iepenjen
+Comment[ga]=Comhad a osclaíonn blaosc
+Comment[gl]=Ficheiro para abrir unha shell
+Comment[he]=קובץ לפתיחת מעטפת
+Comment[hi]=शैल खोलने हेतॠफ़ाइल
+Comment[hr]=Otvaranje ljuske nije uspjelo
+Comment[hu]=Parancsértelmező megnyitási fájlja
+Comment[is]=Skrá sem opnar skel
+Comment[it]=File per aprire una shell
+Comment[ja]=シェルを開ãファイル
+Comment[ka]=გáƒáƒ áƒ¡áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლი ფáƒáƒ˜áƒšáƒ˜
+Comment[kk]=Қоршау-ортада ашатын файл
+Comment[km]=ឯកសារ​ដើម្បី​បើក​សែល​មួយ
+Comment[lt]=Byla apvalkalo atidarymui
+Comment[lv]=Fails Äaulas atvÄ“rÅ¡anai
+Comment[mk]=Датотека за отворање на школка
+Comment[ms]=Fail untuk Buka Shell
+Comment[mt]=Fajl biex jiftaħ shell
+Comment[nb]=Fil for å åpne et skall
+Comment[nds]=Datei för't Opmaken vun en Konsool
+Comment[ne]=शेल खोलà¥à¤¨à¥‡ फाइल
+Comment[nl]=Bestand om een shell te openen
+Comment[nn]=Fil for opning av skal
+Comment[pa]=ਇੱਕ ਸੈੱਲ ਖੋਲਣ ਲਈ ਫਾਇਲ
+Comment[pl]=Plik do otwarcia powłoki
+Comment[pt]=Ficheiro para Abrir uma Consola
+Comment[pt_BR]=Arquivo para Abrir um Shell
+Comment[ro]=Fișier pentru execuția unui interpretor
+Comment[ru]=Файл Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ¸
+Comment[rw]=Idosiye yo Gufungura Sheli
+Comment[se]=Fiila mainna rahpá skálžžu
+Comment[sk]=Súbor na otvorenie shellu
+Comment[sl]=Datoteka za odprtje lupine
+Comment[sr]=Фајл за отварање шкољке
+Comment[sr@Latn]=Fajl za otvaranje Å¡koljke
+Comment[sv]=Fil som ska öppnas i ett skal
+Comment[ta]=ஷெலà¯à®²à¯ˆ திறபà¯à®ªà®¤à®±à¯à®•à¯ கோபà¯à®ªà¯
+Comment[th]=à¹à¸Ÿà¹‰à¸¡à¸—ี่จะใช้เปิดเชลล์
+Comment[tr]=Kabuk'a Açılacak Dosya
+Comment[tt]=Qabıq Açu öçen Birem
+Comment[uk]=Файл, Ñкий треба відкрити у оболонці
+Comment[uz]=Shelni ochish uchun fayl
+Comment[uz@cyrillic]=Шелни очиш учун файл
+Comment[vi]=Tập tin để Mở một Trình giao diện
+Comment[wa]=Fitchî a drovi dins on shell
+Comment[zh_CN]=打开 Shell 的文件
+Comment[zh_TW]=è¦æ‰“é–‹ shell 的檔案
diff --git a/konsole/konsole/zmodem_dialog.cpp b/konsole/konsole/zmodem_dialog.cpp
new file mode 100644
index 000000000..31148ddc6
--- /dev/null
+++ b/konsole/konsole/zmodem_dialog.cpp
@@ -0,0 +1,56 @@
+/* This file is part of the KDE libraries
+ * Copyright (C) 2002 Waldo Bastian <bastian@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation;
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#include "zmodem_dialog.h"
+
+#include <qtextedit.h>
+
+#include <klocale.h>
+
+ZModemDialog::ZModemDialog(QWidget *parent, bool modal, const QString &caption)
+ : KDialogBase(parent, "zmodem_progress", modal, caption,
+ User1|Close, User1, true,
+ i18n("&Stop"))
+{
+ setEscapeButton(User1);
+ enableButton(Close, false);
+ textEdit = new QTextEdit(this);
+ textEdit->setMinimumSize(400, 100);
+ setMainWidget(textEdit);
+ connect(this, SIGNAL(user1Clicked()), this, SLOT(slotClose()));
+}
+
+void ZModemDialog::addProgressText(const QString &txt)
+{
+ int p = textEdit->paragraphs();
+ textEdit->insertParagraph(txt, p);
+}
+
+void ZModemDialog::done()
+{
+ enableButton(Close, true);
+ enableButton(User1, false);
+}
+
+void ZModemDialog::slotClose()
+{
+ KDialogBase::slotClose();
+ delayedDestruct();
+}
+
+#include "zmodem_dialog.moc"
diff --git a/konsole/konsole/zmodem_dialog.h b/konsole/konsole/zmodem_dialog.h
new file mode 100644
index 000000000..045e1c566
--- /dev/null
+++ b/konsole/konsole/zmodem_dialog.h
@@ -0,0 +1,49 @@
+/* This file is part of the KDE libraries
+ * Copyright (C) 2002 Waldo Bastian <bastian@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation;
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef ZMODEM_DIALOG_H
+#define ZMODEM_DIALOG_H
+
+#include <kdialogbase.h>
+
+class QTextEdit;
+
+class ZModemDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ ZModemDialog(QWidget *parent, bool modal, const QString &caption);
+
+ /**
+ * Adds a line of text to the progress window
+ */
+ void addProgressText(const QString &);
+
+ /**
+ * To indicate the process is finished.
+ */
+ void done();
+
+public slots:
+ void slotClose();
+
+private:
+ QTextEdit *textEdit;
+};
+
+#endif
diff --git a/konsole/konsolehere.desktop b/konsole/konsolehere.desktop
new file mode 100644
index 000000000..c2e113653
--- /dev/null
+++ b/konsole/konsolehere.desktop
@@ -0,0 +1,125 @@
+[Desktop Entry]
+ServiceTypes=inode/directory
+Actions=openTerminalHere;
+X-KDE-AuthorizeAction=shell_access
+Type=Application
+
+Name=Konsole
+Name[ar]=طرÙية التحكم
+Name[az]=Konsol
+Name[be]=КанÑоль
+Name[bg]=Конзола
+Name[bn]=কনসোল
+Name[bs]=Konzola
+Name[ca]=Consola
+Name[csb]=Kònsola
+Name[el]=Κονσόλα
+Name[eo]=Konzolo
+Name[et]=Konsool
+Name[eu]=Kontsola
+Name[he]=מסוף
+Name[hi]=कंसोल
+Name[hr]=Konzola
+Name[is]=Skjáhermir
+Name[ka]=კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Name[lo]=ຄອນໂຊລ - K
+Name[mk]=Конзола
+Name[mn]=КонÑол
+Name[nb]=Konsoll
+Name[ne]=कनà¥à¤¸à¥‹à¤²
+Name[nn]=Konsoll
+Name[pa]=ਕੰਨਸੋਲ
+Name[pl]=Konsola
+Name[ro]=Consolă
+Name[se]=Konsolla
+Name[sk]=Konzola
+Name[sl]=Konzola
+Name[ta]=கானà¯à®šà¯‹à®²à¯
+Name[te]=కానà±à°¸à±‹à°²à±
+Name[tg]=КонÑол
+Name[th]=คอนโซล K
+Name[zu]=Ikhonsoli
+
+[Desktop Action openTerminalHere]
+Name=Open Terminal Here
+Name[af]=Maak Terminaal Hier Oop
+Name[ar]=Ø¥Ùتح مطرا٠سطر الأوامر هنا
+Name[az]=Terminalı Burada Aç
+Name[be]=Ðдкрыць Ñ‚Ñрмінал тут
+Name[bg]=ОтварÑне на конзола тук
+Name[bn]=à¦à¦–ানে টারà§à¦®à¦¿à¦¨à¦¾à¦² খোলো
+Name[br]=Digeriñ un termenell amañ
+Name[bs]=Otvori terminal ovdje
+Name[ca]=Obre un terminal aquí
+Name[cs]=Otevřít terminál zde
+Name[csb]=Òtemknij tuwò terminal
+Name[cy]=Agor Terfynell Yma
+Name[da]=Ã…bn terminal her
+Name[de]=Terminal öffnen
+Name[el]=Άνοιγμα τεÏÎ¼Î±Ï„Î¹ÎºÎ¿Ï ÎµÎ´ÏŽ
+Name[eo]=Lanĉu terminalon ĉi tie
+Name[es]=Abrir terminal aquí
+Name[et]=Ava siin terminal
+Name[eu]=Ireki terminala hemen
+Name[fa]=باز کردن پایانه در اینجا
+Name[fi]=Avaa komentoikkuna tähän
+Name[fr]=Ouvrir un terminal ici
+Name[fy]=Terminal iepenje
+Name[ga]=Oscail Teirminéal Anseo
+Name[gl]=Abrir Terminal Aqui
+Name[he]=פתח מסוף ×›×ן
+Name[hi]=टरà¥à¤®à¤¿à¤¨à¤² यहाठखोलें
+Name[hr]=Ovdje otvori terminal
+Name[hu]=Parancsértelmező megnyitása itt
+Name[is]=Opna skjáhermi hér
+Name[it]=Apri terminale qui
+Name[ja]=ã“ã“ã§ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ã‚’é–‹ã
+Name[ka]=ტერმინáƒáƒšáƒ˜áƒ¡ áƒáƒ¥ გáƒáƒ®áƒ¡áƒœáƒ
+Name[kk]=Терминалды ашу
+Name[km]=បើក​ស្ážáž¶áž“ីយ​ទីនáŸáŸ‡
+Name[ko]=여기ì—ì„œ í„°ë¯¸ë„ ì—´ê¸°
+Name[lo]=ເທີມິເນລຂອງ X
+Name[lt]=Atverti Äia terminalÄ…
+Name[lv]=AtvÄ“rt terminÄli Å¡eit
+Name[mk]=Отвори терминал тука
+Name[mn]=Терминал нÑÑÑ…
+Name[ms]=Buka Terminal Di Sini
+Name[mt]=Iftaħ terminal hawn
+Name[nb]=Ã…pne terminal her
+Name[nds]=Terminal hier opmaken
+Name[ne]=यहाठटरà¥à¤®à¤¿à¤¨à¤² खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥
+Name[nl]=Terminal openen
+Name[nn]=Opna terminal her
+Name[nso]=Bula mafelelo Mo
+Name[pa]=ਟਰਮੀਨਲ ਇੱਥੇ ਖੋਲੋ
+Name[pl]=Otwórz tutaj terminal
+Name[pt]=Abrir um Terminal Aqui
+Name[pt_BR]=Abrir Terminal Aqui
+Name[ro]=Deschide un terminal aici
+Name[ru]=Открыть терминал в Ñтой папке
+Name[rw]= Gufungura Igihera Hano
+Name[se]=Raba terminála dáppe
+Name[sk]=Tu otvoriť terminál
+Name[sl]=Tu odpri terminal
+Name[sr]=Отвори терминал овде
+Name[sr@Latn]=Otvori terminal ovde
+Name[ss]=Vula sikhungo lapha
+Name[sv]=Öppna terminal här
+Name[ta]=à®®à¯à®©à¯ˆà®¯ இஙà¯à®•à¯‡ திற
+Name[te]=టెరà±à°®à°¿à°¨à°²à± నౠఇకà±à°•à°¡ తెరà±à°µà±
+Name[tg]=Терминалро дар инҷо боз кунед
+Name[th]=เปิดเทอร์มินัลที่นี่
+Name[tr]=Terminali Burada Aç
+Name[tt]=Terminalnı Monda Açası
+Name[uk]=Відкрити термінал
+Name[uz]=Terminalni shu yerda ochish
+Name[uz@cyrillic]=Терминални шу ерда очиш
+Name[ven]=Vulani theminala hafhano
+Name[vi]=Mở má»™t Thiết bị cuối ở Äây
+Name[wa]=Drovi on terminå chal
+Name[xh]=Vula Isiphelo Sendlela Apha
+Name[zh_CN]=在此打开终端
+Name[zh_TW]=在這裡開啟終端機
+Name[zu]=Vula ithuluzi langaphandle lapha
+Icon=konsole
+Exec=konsole --workdir %f
diff --git a/konsole/konsolepart.desktop b/konsole/konsolepart.desktop
new file mode 100644
index 000000000..ed49a8373
--- /dev/null
+++ b/konsole/konsolepart.desktop
@@ -0,0 +1,95 @@
+[Desktop Entry]
+Type=Service
+Icon=konsole
+ServiceTypes=KParts/ReadOnlyPart,Browser/View,inode/directory,TerminalEmulator
+
+X-KDE-Library=libkonsolepart
+X-KDE-BrowserView-AllowAsDefault=false
+X-KDE-BrowserView-HideFromMenus=true
+X-KDE-BrowserView-Toggable=true
+X-KDE-BrowserView-ToggableView-Orientation=horizontal
+X-KDE-BrowserView-FollowActive=true
+
+Name=Terminal Emulator
+Name[af]=Terminaal Emulasie
+Name[ar]=مضاه٠مطراÙ
+Name[az]=Terminal Emulyasiyası
+Name[be]=ЭмулÑтар Ñ‚Ñрміналу
+Name[bg]=Конзолна програма
+Name[bn]=টারà§à¦®à¦¿à¦¨à¦¾à¦² à¦à¦®à§à¦²à§‡à¦Ÿà¦°
+Name[br]=Kendarvanerezh termenell
+Name[bs]=Simulator terminala
+Name[ca]=Emulador de terminal
+Name[cs]=Emulátor terminálu
+Name[csb]=Emùlator terminala
+Name[cy]=Efelychydd Terfynell
+Name[da]=terminalemulator
+Name[de]=Terminal-Emulator
+Name[el]=ΠÏοσομοιωτής τεÏματικοÏ
+Name[eo]=Terminalimitaĵo
+Name[es]=Emulador de terminal
+Name[et]=Terminaliemulaator
+Name[eu]=Terminal emuladorea
+Name[fa]=مقلد پایانه
+Name[fi]=Komentoikkuna
+Name[fo]=Útstøðshermari
+Name[fr]=Émulateur de terminal
+Name[fy]=Terminal
+Name[ga]=Aithriseoir Teirminéil
+Name[gl]=Emulador de Terminal
+Name[he]=הדמיית מסוף
+Name[hi]=टरà¥à¤®à¤¿à¤¨à¤² à¤à¤®à¥à¤²à¥‡à¤Ÿà¤°
+Name[hr]=Emulator terminala
+Name[hu]=Parancsértelmező
+Name[id]=Emulator Terminal
+Name[is]=Skjáhermir KDE
+Name[it]=Emulatore di terminale
+Name[ja]=ターミナルエミュレータ
+Name[ka]=ტერმინáƒáƒšáƒ˜áƒ¡ ემულáƒáƒ¢áƒáƒ áƒ˜
+Name[kk]=Терминал ÑмулÑторы
+Name[km]=ážœážáŸ’ážáž»â€‹ážáŸ’រាប់​ážáž¶áž˜â€‹ážŸáŸ’ážáž¶áž“ីយ
+Name[ko]=í„°ë¯¸ë„ ì—뮬레ì´í„°
+Name[lo]=ຕົວຈຳລອງເທີມີນອນ
+Name[lt]=Terminalo emuliatorius
+Name[lv]=TerminÄla Emulators
+Name[mk]=ТерминалÑки емулатор
+Name[mn]=Терминал-Эмулатор
+Name[ms]=Pelagak Terminal
+Name[mt]=Emulatur ta' terminal
+Name[nb]=Terminalemulator
+Name[nds]=Terminal-Emulator
+Name[ne]=टरà¥à¤®à¤¿à¤¨à¤² इमà¥à¤²à¥‡à¤Ÿà¤°
+Name[nl]=Terminal
+Name[nn]=Terminalemulator
+Name[nso]=Moekisi wa Terminal
+Name[pa]=ਟਰਮੀਨਲ ਸਮਰੂਪ
+Name[pl]=Emulator terminala
+Name[pt]=Emulador de Terminal
+Name[pt_BR]=Emulador de Terminal
+Name[ro]=Emulator de terminal
+Name[ru]=ЭмулÑтор терминала
+Name[rw]= Mukuruzi Ihera
+Name[se]=Terminálemuláhtor
+Name[sk]=Emulátor terminálu
+Name[sl]=Terminalski emulator
+Name[sr]=Емулатор терминала
+Name[sr@Latn]=Emulator terminala
+Name[ss]=Silingiseli sesikhungo
+Name[sv]=Terminalemulator
+Name[ta]=கடைசி போடà¯à®Ÿà®¿à®¯à®¾à®³à®°à¯
+Name[te]=టెరà±à°®à°¿à°¨à°²à± à°Žà°®à±à°²à±‡à°Ÿà°°à±
+Name[tg]=ЭмулÑтори поёна
+Name[th]=โปรà¹à¸à¸£à¸¡à¸ˆà¸³à¸¥à¸­à¸‡à¹€à¸—อร์มินัล
+Name[tr]=Uçbirim Emülasyonu
+Name[tt]=Terminal Emulatorı
+Name[uk]=ЕмулÑÑ†Ñ–Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ð»Ñƒ
+Name[uz]=Terminal emulyatori
+Name[uz@cyrillic]=Терминал ÑмулÑтори
+Name[ven]=Mulingedzisi wa theminala
+Name[vi]=Mô phá»ng thiết bị cuối
+Name[wa]=Terminå
+Name[xh]=Umzami kulinganisela ngokulinganayo Wendlela yesiphelo
+Name[zh_CN]=终端仿真器
+Name[zh_TW]=終端機模擬程å¼
+Name[zu]=Umlingisi wangaphandle
+X-KDE-AuthorizeAction=shell_access
diff --git a/konsole/konsolesu.desktop b/konsole/konsolesu.desktop
new file mode 100644
index 000000000..010d90fe5
--- /dev/null
+++ b/konsole/konsolesu.desktop
@@ -0,0 +1,83 @@
+[Desktop Entry]
+Type=Application
+Exec=konsole --type su
+Icon=konsole
+DocPath=konsole/index.html
+MimeType=application/x-konsole;
+Terminal=false
+
+Name=Terminal Program - Super User Mode
+Name[af]=Terminaal Program - Super Gebruiker Modus
+Name[ar]=برنامج الشاشة الطرÙÙŠÙŽØ© - نمط المستخدم الجذري
+Name[az]=Terminal Programı - Ali İstifadəçi Modu
+Name[be]=ТÑрмінал - Ñ€Ñжым адмініÑтратара
+Name[bg]=Конзола - админиÑтратор
+Name[bn]=টারà§à¦®à¦¿à¦¨à¦¾à¦² পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® - অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¸à§à¦Ÿà§à¦°à§‡à¦Ÿà¦° মোড
+Name[br]=Gouvel termenell - Doare gourarveriad
+Name[bs]=Terminalski program - Administratorski režim
+Name[ca]=Programa de terminal - Mode superusuari
+Name[cs]=Terminál - superuživatelský režim
+Name[csb]=Terminal - Trib sprôwnika
+Name[cy]=Rhaglen Derfynell - Modd Uwch-ddefnyddiwr
+Name[da]=Terminalprogram (superbruger-tilstand)
+Name[de]=Terminal (Systemverwaltungsmodus)
+Name[el]=ΠÏόγÏαμμα τεÏÎ¼Î±Ï„Î¹ÎºÎ¿Ï - ΛειτουÏγία ως root
+Name[eo]=Terminalprogramo - Superuzanta maniero
+Name[es]=Programa de terminal - Modo de superusuario
+Name[et]=Terminali rakendus (administraator)
+Name[eu]=Terminaleko programa (root era)
+Name[fa]=برنامۀ پایانه - حالت ابرکاربر
+Name[fi]=Komentotulkki - pääkäyttäjätila
+Name[fr]=Programme terminal - mode superutilisateur
+Name[fy]=Terminalprogramma (yn systeembehearmodus)
+Name[ga]=Clár Teirminéil - Mód Forúsáideora
+Name[gl]=Programa de Terminal - Modo Super-Usuario
+Name[he]=מסוף - מצב משתמש־על
+Name[hi]=टरà¥à¤®à¤¿à¤¨à¤² पà¥à¤°à¤¬à¤‚धक- सà¥à¤ªà¤° यूज़र मोड
+Name[hr]=Terminalski program - za administratora
+Name[hu]=Konsole (rendszergazdai mód)
+Name[is]=Skjáhermir (sem kerfisstjóri)
+Name[it]=Programma emulazione terminale - modalità super utente
+Name[ja]=ターミナルエミュレータ - スーパーユーザモード
+Name[ka]=ტერმინáƒáƒšáƒ˜ - ზემáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის რეჟიმი
+Name[kk]=Терминал (root құқықлы)
+Name[km]=កម្មវិធី​ស្ážáž¶áž“ីយ - របៀប​អ្នក​ប្រើ​ជាន់​ážáŸ’ពស់
+Name[ko]=íŒŒì¼ ê´€ë¦¬ìž - 슈í¼ìœ ì € 모드
+Name[lt]=Terminalo programa – super naudotojo veiksena
+Name[lv]=TerminÄla programma - SuperlietotÄja režīms
+Name[mk]=ТерминалÑка програма - режим root
+Name[mn]=Терминал програм (СиÑтемийн удирдлагын-Горим)
+Name[ms]=Program Terminal - Mod Pengguna Super
+Name[mt]=Terminal (modalità Super User)
+Name[nb]=Terminalprogram – superbrukermodus
+Name[nds]=Terminalprogramm - Systeempleegbedrief
+Name[ne]=टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤® - सà¥à¤ªà¤° पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ मोड
+Name[nl]=Terminalprogramma (in systeembeheermodus)
+Name[nn]=Terminalprogram – Superbrukarmodus
+Name[pa]=ਟਰਮੀਨਲ - ਮੈਨੇਜਰੀ ਢੰਗ(Super User)
+Name[pl]=Terminal - Tryb administratora
+Name[pt]=Terminal - Modo de Super Utilizador
+Name[pt_BR]=Terminal - Modo Super-Usuário
+Name[ro]=Program terminal - mod superutilizator
+Name[ru]=Терминал - режим ÑуперпользователÑ
+Name[rw]=Porogaramu y'Impera - Uburyo Ukoresha Mukuru
+Name[se]=Terminálprográmma – Hálddašanmodus
+Name[sk]=Terminál - Super-používateľský mód
+Name[sl]=Terminalski program - SkrbniÅ¡ki naÄin
+Name[sr]=ТерминалÑки програм — режим Ñупер кориÑника
+Name[sr@Latn]=Terminalski program — režim super korisnika
+Name[sv]=Terminalprogram - Administratörsläge
+Name[ta]=கடைசி நிரலி - சிறநà¯à®¤ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®ªà®µà®°à¯ வழி
+Name[te]=టెరà±à°®à°¿à°¨à°²à± కారà±à°¯à°•à±à°°à°®à°‚ - సూపరౠయూజరౠసà±à°¥à°¿à°¤à°¿
+Name[th]=จัดà¸à¸²à¸£à¹à¸Ÿà¹‰à¸¡ - โหมดผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š
+Name[tr]=Terminal Programı - Süper Kullanıcı Kipi
+Name[tt]=Terminal Yazılımı (root ısulı)
+Name[uk]=Програма терміналу (режим адмініÑтратора)
+Name[uz]=Terminal dasturi (root)
+Name[uz@cyrillic]=Терминал даÑтури (root)
+Name[vi]=ChÆ°Æ¡ng trình đầu cuối - Dành cho ngÆ°á»i quản lý
+Name[wa]=Terminå - Môde super uzeu (root)
+Name[zh_CN]=ç»ˆç«¯ç¨‹åº - 超级用户模å¼
+Name[zh_TW]=çµ‚ç«¯æ©Ÿç¨‹å¼ - 超級使用者模å¼
+X-KDE-AuthorizeAction=shell_access
+Categories=Qt;KDE;System;TerminalEmulator;X-KDE-More;
diff --git a/konsole/kwrited.desktop b/konsole/kwrited.desktop
new file mode 100644
index 000000000..d5bc977c4
--- /dev/null
+++ b/konsole/kwrited.desktop
@@ -0,0 +1,145 @@
+[Desktop Entry]
+Name=KDE Write Daemon
+Name[af]=KDE Skryf Bediener
+Name[ar]=مرقب الكتابة Ù„Ùــ KDE
+Name[az]=KDE Write Demonu
+Name[be]=ДÑман запіÑу KDE
+Name[bn]=কে.ডি.ই. রাইট ডিমন
+Name[br]=Diaoul skrivañ KDE
+Name[ca]=Dimoni d'escriptura del KDE
+Name[cs]=Zapisovací démon KDE
+Name[csb]=Demóna zôpisu KDE
+Name[cy]=Daemon KDE Write
+Name[da]=KDE Skrivedæmon
+Name[de]=Write-Dienst
+Name[el]=Δαίμονας Write του KDE
+Name[eo]=Diskskrib-demono
+Name[es]=Demonio de escritura de KDE
+Name[et]=KDE Write deemon
+Name[eu]=KDEren idazketa deabrua
+Name[fa]=شبح نوشتن KDE
+Name[fi]=KDE-kirjoituspalvelin
+Name[fr]=Démon de commande Write de KDE
+Name[fy]=KDE Skriuwdaemon
+Name[ga]=Deamhan Scríofa KDE
+Name[gl]=Demo de Escritura de KDE
+Name[he]=תהליך הרקע Write של KDE
+Name[hi]=केडीई राइट डेमन
+Name[hr]=KDE demon za pisanje
+Name[hu]=KDE adatkiíró szolgáltatás
+Name[is]=KDE skriftarpúki
+Name[it]=Demone write di KDE
+Name[ja]=KDE Write デーモン
+Name[ka]=KDE Writed გუშáƒáƒ’ი
+Name[kk]=KDE Write қызметі
+Name[ko]=KDE Write ë°ëª¬
+Name[lo]=ເດມອນ Write ຂອງ KDE
+Name[lt]=KDE Write tarnyba
+Name[lv]=KDE Write DÄ“mons
+Name[mn]=KDE Write-Ð¥Ñвтүүл
+Name[ms]=Daemon Tulis KDE
+Name[mt]=Daemon tal-KDE għal Write
+Name[nb]=KDEs skrivingsnisse
+Name[nds]=KDE Write-Dämoon
+Name[ne]=KDE लेखà¥à¤¨à¥‡ डेइमन
+Name[nl]=KDE Schrijfdaemon
+Name[nn]=KDE Skrivingsdemon
+Name[nso]=Daemon ya Mongwalo ya KDE
+Name[pa]=KDE ਲਿਖਣ ਡਾਈਮੋਨ
+Name[pl]=Demon zapisu KDE
+Name[pt]=Servidor do Write do KDE
+Name[pt_BR]=Serviço de escrita do KDE
+Name[ro]=Demon "write" KDE
+Name[ru]=Чат локальной Ñети
+Name[rw]= KDE Kwandika Dayimoni
+Name[se]=KDE Äállinbálvá
+Name[sk]=KDE Write démon
+Name[sl]=Pisalni strežnik za KDE
+Name[sr]=KDE Write демон
+Name[sr@Latn]=KDE Write demon
+Name[sv]=KDE-skrivdemon
+Name[te]=కెడిఈ à°µà±à°°à±ˆà°Ÿà± డెమనà±
+Name[tg]=Барномаи навиштани KDE
+Name[th]=เดมอน Write ของ KDE
+Name[tr]=KDEWrite Programı
+Name[tt]=KDE'nıñ Yazışu Xezmäte
+Name[uk]=Демон запиÑу KDE
+Name[uz]=KDE write demoni
+Name[uz@cyrillic]=KDE write демони
+Name[ven]=Daemon yau nwala ya KDE
+Name[vi]=Trình ná»n Write KDE
+Name[wa]=Demon scrijheu di KDE
+Name[zh_CN]=KDE Write 守护程åº
+Name[zh_TW]=KDE Write 伺æœç¨‹å¼
+Name[zu]=I-Daemon Yokubhala ye-KDE
+Comment=Watch for messages from local users sent with write(1) or wall(1)
+Comment[af]=Kyk uit vir boodskappe vanaf plaaslike gebruikers wat met write(1) of wall(1) gestuur is
+Comment[ar]=راقب رسائل من المستخدمين المحلّيين المرسلة بواسطة write(1) أو wall(1)
+Comment[be]=Ðазірае за паведамленнÑмі ад мÑÑцовых карыÑтальнікаў, даÑланымі праз write(1) ці wall(1)
+Comment[bg]=Ðаблюдение за ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ локални потребители, изпратени Ñ write(1) или wall(1)
+Comment[bs]=Prati poruke od lokalnih korisnika poslane koristeći write(1) ili wall(1)
+Comment[ca]=Fes atenció als missatges dels usuaris locals enviats amb write(1) o wall(1)
+Comment[cs]=Sledování zpráv od místních uživatelů poslaných pomocí write(1) nebo wall(1)
+Comment[csb]=Dozérô wiadłów òd môlowëch brëkòwników wësłónëch przez write(1) abò wall(1)
+Comment[cy]=Gwylio am negeseuon oddiwrth defnyddwyr lleol a anfonwyd efo write(1) neu wall(1)
+Comment[da]=Kig efter beskeder fra lokale brugere sendt med write(1) eller wall(1)
+Comment[de]=Ãœberwacht Meldungen lokaler Benutzer, die mittels write(1) oder wall(1) gesendet wurden
+Comment[el]=Έλεγχος μηνυμάτων από τοπικοÏÏ‚ χÏήστες που στάλθηκαν με write(1) η wall(1)
+Comment[eo]=Rigardu pri mesaÄoj de ĉi-lokaj uzantoj, senditaj per write(1) aÅ­ wall(1)
+Comment[es]=Ver los mensajes de usuarios locales enviados con write(1) o wall(1)
+Comment[et]=Jälgib kohalike kasutajate write(1) või wall(1) abil saadetud teateid
+Comment[eu]=Begiratu write(1) edo wall(1)-ekin bidalitako erabiltzaile lokalen mezuak
+Comment[fa]=منتظر پیامهای کاربران محلی ارسال‌شده توسط write(1) یا wall(1)
+Comment[fi]=Seuraa viestejä, joita paikalliset käyttäjät lähettävät write(1) tai wall(1) -komennoilla
+Comment[fr]=Afficher les messages écrits par les autres utilisateurs locaux à l'aide de la commande « write(1) » ou « wall(1) »
+Comment[fy]=Berjochten fan lokale brûkers ferstjoerd mei write(1) of wall(1) observearje
+Comment[gl]=Buscar mensaxes de usuarios locais enviadas con write(1) ou wall(1)
+Comment[he]=תפוס הודעות הנשלחות על ידי ×ž×©×ª×ž×©×™× ×ž×§×•×ž×™×™×, שנשלחו על ידי write(1) ×ו wall(1)
+Comment[hi]=सà¥à¤¥à¤¾à¤¨à¥€à¤¯ उपयोकà¥à¤¤à¤¾à¤“ं दà¥à¤µà¤¾à¤°à¤¾ राइट(1) या वाल(1) के जरिठभेजे गठसंदेशों के लिठदेखें
+Comment[hr]=Praćenje poruka lokalnih korisnika poslanih putem write(1) ili wall(1)
+Comment[hu]=Helyi üzenetek figyelése (a write(1) és wall(1) segítségével)
+Comment[is]=Fylgjast með skilaboðum frá notendum sem senda með write(1) eða wall(1)
+Comment[it]=Controlla l'arrivo di messaggi da utenti locali inviati con write(1) o wall(1)
+Comment[ja]= write(1) ã‹ wall(1) ã§ãƒ­ãƒ¼ã‚«ãƒ«ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰é€ä¿¡ã•ã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’監視
+Comment[ka]=ბრძáƒáƒœáƒ”ბრwrite(1) áƒáƒœ wall(1)-ით ლáƒáƒ™áƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლებისგáƒáƒœ გáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒš შეტყáƒáƒ‘ინებებს იღებს
+Comment[kk]=Жергілікті пайдаланушылардан write(1) және wall(1) командалармен жіберілген хабарларды қабылдайды
+Comment[km]=ឃ្លាំមើល​សារ​ពី​អ្នក​ប្រើ​ក្នុង​បណ្ដាញ ដែល​បាន​ផ្ញើ​ដោយ​ប្រើ write(1) ឬ wall(1)
+Comment[ko]=write(1)ì´ë‚˜ wall(1)ì„ í†µí•´ 사용ìžê°€ 보낸 메시지 ê°ì‹œí•˜ê¸°
+Comment[lt]=Stebėti vietinių naudotojų išsiųstus laiškus su write(1) arba wall(1)
+Comment[lv]=NovÄ“ro ziņojumus no lokÄlajiem lietotÄjiem, kuri sÅ«tÄ«ti izmantojot write(1) vai wall(1)
+Comment[mk]=Следи за пораки од локалните кориÑници пратени Ñо write(1) или wall(1)
+Comment[ms]=Perhatikan mesej dari pengguna setempat yang dihantar dengan arahan write(1) atau wall(1)
+Comment[mt]=Għarrex għal messaġġi minn users lokali mibgħuta b'write jew wall
+Comment[nb]=Se etter meldinger fra lokale brukere sendt med write(1) eller wall(1)
+Comment[nds]=Kiekt na Narichten vun lokale Brukers, sendt mit write(1) oder wall(1)
+Comment[ne]=सनà¥à¤¦à¥‡à¤¶à¤•à¤¾ लागि सà¥à¤¥à¤¾à¤¨à¥€à¤¯ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¬à¤¾à¤Ÿ पठाà¤à¤•à¤¾ लेख(१) वा वाल(१) हेरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥
+Comment[nl]=Observeer berichten van lokale gebruikers verzonden met write(1) of wall(1)
+Comment[nn]=Sjå etter meldingar frå lokale brukarar sende med write(1) eller wall(1)
+Comment[pa]=ਸਥਾਨਕ ਉਪਭੋਗੀ ਰਾਹੀਂ write(1) or wall(1) ਨਾਲ ਭੇਜੇ ਸà©à¨¨à©‡à¨¹à©‡ ਵੇਖੋ
+Comment[pl]=Śledzi wiadomości od użytkowników lokalnych wysyłane za pomocą write(1) lub wall(1)
+Comment[pt]=Escutar as mensagens dos utilizadores locais, enviadas com o write(1) ou o wall(1)
+Comment[pt_BR]=Observa mensagens de usuários locais, enviadas com o write(1) ou o wall(1)
+Comment[ro]=Așteaptă mesaje de la utilizatori, trimise cu write(1) sau wall(1)
+Comment[ru]=Приём ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ локальной Ñети, отправленных командами write(1) или wall(1)
+Comment[rw]=Kugenzura ubutumwa buva ku bakoresha bahafi bwoherejwe hakoreshejwe kwandika(1) cyangwa urukuta(1)
+Comment[se]=Gozit dieđuid mat báikkalaš geavaheaddjit sáddejit «write» dahje «wall»
+Comment[sk]=Sledovanie správ od lokálnych používateľov poslaných pomocou príkazu write (1) alebo wall (1)
+Comment[sl]=Opazuj sporoÄila od krajevnih uporabnikov, poslanih z write(1) ali wall(1)
+Comment[sr]=Чека поруке од локалних кориÑника поÑлатих помоћу write(1) или wall(1)
+Comment[sr@Latn]=Čeka poruke od lokalnih korisnika poslatih pomoću write(1) ili wall(1)
+Comment[sv]=Titta efter meddelanden från lokala användare som skickas med write(1) eller wall(1)
+Comment[ta]=உள௠பயனர௠அணà¯à®ªà¯à®ªà®¿à®¯à®¤à¯à®Ÿà®©à¯ write(1) or wall(1) அதிலிரà¯à®¨à¯à®¤à¯ பாரà¯à®•à¯à®•à®µà¯‡à®£à¯à®Ÿà®¿à®¯ தகவலà¯à®•à®³à¯
+Comment[th]=เà¸à¹‰à¸²à¸”ูข้อความจาà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸—้องถิ่นที่ถูà¸à¸ªà¹ˆà¸‡à¸¡à¸²à¸”้วย write(1) หรือ wall(1)
+Comment[tr]=Yerel kullanıcılarda write(1) veya wall(1) ile gönderilmiş mesajları izle
+Comment[tt]=Cirle qullanuçılar tarafınnan write(1)/wall(1) aşa cibärelgän xäbärlär kötä
+Comment[uk]=СпоÑÑ‚ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð·Ð°  повідомленнÑми від локальних кориÑтувачів, відіÑланих через write(1) або wall(1)
+Comment[vi]=Theo dõi các thông báo từ ngÆ°á»i dùng trên máy được gá»­i bằng lệnh write(1) hay wall(1)
+Comment[wa]=Riwaite après les messaedjes des locås uzeus evoyîs avou write (1) oudonbén wall(1)
+Comment[zh_CN]=监视本地用户å‘出的 write(1) 或 wall(1)
+Comment[zh_TW]=監控本地使用者以 write(1) 或 wall(1) 傳é€çš„郵件
+Type=Service
+ServiceTypes=KDEDModule
+X-KDE-Library=kwrited
+X-KDE-FactoryName=kwrited
+X-KDE-Kded-autoload=true
+X-KDE-Kded-load-on-demand=true
diff --git a/konsole/other/2shells b/konsole/other/2shells
new file mode 100644
index 000000000..91920bf85
--- /dev/null
+++ b/konsole/other/2shells
@@ -0,0 +1,11 @@
+[Profile]
+Name=Two consoles
+
+[Desktop Entry]
+numSes=2
+Title0=Shell
+Title1=Shell No. 2
+
+[konsole-mainwindow#1 Toolbar style]
+IconText=IconTextRight
+Position=Bottom
diff --git a/konsole/other/3shells b/konsole/other/3shells
new file mode 100644
index 000000000..a0f8c77a2
--- /dev/null
+++ b/konsole/other/3shells
@@ -0,0 +1,12 @@
+[Profile]
+Name=Three consoles
+
+[Desktop Entry]
+numSes=3
+Title0=Shell
+Title1=Shell No. 2
+Title2=Shell No. 3
+
+[konsole-mainwindow#1 Toolbar style]
+IconText=IconTextRight
+Position=Bottom
diff --git a/konsole/other/4shells b/konsole/other/4shells
new file mode 100644
index 000000000..608619139
--- /dev/null
+++ b/konsole/other/4shells
@@ -0,0 +1,13 @@
+[Profile]
+Name=Four consoles
+
+[Desktop Entry]
+numSes=4
+Title0=Shell
+Title1=Shell No. 2
+Title2=Shell No. 3
+Title3=Shell No. 4
+
+[konsole-mainwindow#1 Toolbar style]
+IconText=IconTextRight
+Position=Bottom
diff --git a/konsole/other/5shells b/konsole/other/5shells
new file mode 100644
index 000000000..e50437114
--- /dev/null
+++ b/konsole/other/5shells
@@ -0,0 +1,14 @@
+[Profile]
+Name=Five consoles
+
+[Desktop Entry]
+numSes=5
+Title0=Shell
+Title1=Shell No. 2
+Title2=Shell No. 3
+Title3=Shell No. 4
+Title4=Shell No. 5
+
+[konsole-mainwindow#1 Toolbar style]
+IconText=IconTextRight
+Position=Bottom
diff --git a/konsole/other/BlackOnLightColor.schema b/konsole/other/BlackOnLightColor.schema
new file mode 100644
index 000000000..92e598a71
--- /dev/null
+++ b/konsole/other/BlackOnLightColor.schema
@@ -0,0 +1,42 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Black on Light Color
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+rcolor 1 30 255 1 0 # regular background color (Light Color)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 221 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/BlackOnLightYellow.schema b/konsole/other/BlackOnLightYellow.schema
new file mode 100644
index 000000000..251a696db
--- /dev/null
+++ b/konsole/other/BlackOnLightYellow.schema
@@ -0,0 +1,42 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Black on Light Yellow
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 221 1 0 # regular background color (Light Yellow)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 221 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/BlackOnWhite.schema b/konsole/other/BlackOnWhite.schema
new file mode 100644
index 000000000..11853e6ca
--- /dev/null
+++ b/konsole/other/BlackOnWhite.schema
@@ -0,0 +1,42 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Black on White
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/DarkPicture.schema b/konsole/other/DarkPicture.schema
new file mode 100644
index 000000000..78ab3df34
--- /dev/null
+++ b/konsole/other/DarkPicture.schema
@@ -0,0 +1,44 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Marble
+
+image tile Blkmarble.jpg
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 255 255 255 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 1 # intensive foreground color
+color 11 0 0 0 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Example.Schema b/konsole/other/Example.Schema
new file mode 100644
index 000000000..8611d441e
--- /dev/null
+++ b/konsole/other/Example.Schema
@@ -0,0 +1,47 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Ugly 1
+
+# add a wallpaper, if you like. Second word one of { tile,center,full }
+
+image tile /opt/kde/share/wallpapers/dancy_pants.jpg
+
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 255 0 0 0 0 # regular color 1 Red
+color 4 0 255 0 0 0 # regular color 2 Green
+color 5 255 255 0 0 0 # regular color 3 Yellow
+color 6 0 0 255 0 0 # regular color 4 Blue
+color 7 255 0 255 0 0 # regular color 5 Magenta
+color 8 0 255 255 0 0 # regular color 6 Cyan
+color 9 255 255 255 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 1 # intensive background color
+
+color 12 0 0 0 0 1 # intensive color 0
+color 13 255 0 0 0 1 # intensive color 1
+color 14 0 255 0 0 1 # intensive color 2
+color 15 255 255 0 0 1 # intensive color 3
+color 16 0 0 255 0 1 # intensive color 4
+color 17 255 0 255 0 1 # intensive color 5
+color 18 0 255 255 0 1 # intensive color 6
+color 19 255 255 255 0 1 # intensive color 7
diff --git a/konsole/other/GreenOnBlack.schema b/konsole/other/GreenOnBlack.schema
new file mode 100644
index 000000000..8f19c5b6f
--- /dev/null
+++ b/konsole/other/GreenOnBlack.schema
@@ -0,0 +1,42 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Green on Black
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 24 240 24 0 0 # regular foreground color (Green)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 24 240 24 0 1 # intensive foreground color
+color 11 0 0 0 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/GreenTint.schema b/konsole/other/GreenTint.schema
new file mode 100644
index 000000000..2786678c4
--- /dev/null
+++ b/konsole/other/GreenTint.schema
@@ -0,0 +1,49 @@
+# linux color schema for konsole
+
+title Green Tint
+
+transparency 0.3 0 150 0
+
+# FIXME
+#
+# The flaw in this schema is that "blick" comes out on the
+# Linux console as intensive background, really.
+# Since this is not used in clients you'll hardly notice
+# it in practice.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 178 178 178 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/GreenTint_MC.schema b/konsole/other/GreenTint_MC.schema
new file mode 100644
index 000000000..954755e26
--- /dev/null
+++ b/konsole/other/GreenTint_MC.schema
@@ -0,0 +1,49 @@
+# linux color schema for konsole
+
+title Green Tint with Transparent MC
+
+transparency 0.3 0 150 0
+
+# FIXME
+#
+# The flaw in this schema is that "blick" comes out on the
+# Linux console as intensive background, really.
+# Since this is not used in clients you'll hardly notice
+# it in practice.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 178 178 178 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 0 0 0 1 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/LightPaper.schema b/konsole/other/LightPaper.schema
new file mode 100644
index 000000000..9b6a8892d
--- /dev/null
+++ b/konsole/other/LightPaper.schema
@@ -0,0 +1,44 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Paper, Light
+
+image tile gray02.jpg
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/LightPicture.schema b/konsole/other/LightPicture.schema
new file mode 100644
index 000000000..6acd7a835
--- /dev/null
+++ b/konsole/other/LightPicture.schema
@@ -0,0 +1,44 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title Paper
+
+image tile Paper01.jpg
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Linux.schema b/konsole/other/Linux.schema
new file mode 100644
index 000000000..a2515d922
--- /dev/null
+++ b/konsole/other/Linux.schema
@@ -0,0 +1,47 @@
+# linux color schema for konsole
+
+title Linux Colors
+
+# FIXME
+#
+# The flaw in this schema is that "blick" comes out on the
+# Linux console as intensive background, really.
+# Since this is not used in clients you'll hardly notice
+# it in practice.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 178 178 178 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Makefile.am b/konsole/other/Makefile.am
new file mode 100644
index 000000000..2f8cbdf91
--- /dev/null
+++ b/konsole/other/Makefile.am
@@ -0,0 +1,20 @@
+SUBDIRS= icons wallpapers
+
+konsole_other_datadir = $(kde_datadir)/konsole
+konsole_other_data_DATA = BlackOnLightColor.schema BlackOnLightYellow.schema BlackOnWhite.schema \
+ Example.Schema GreenOnBlack.schema WhiteOnBlack.schema \
+ README.default.Schema syscolor.schema Linux.schema XTerm.schema vim.schema \
+ DarkPicture.schema LightPicture.schema Transparent.schema GreenTint.schema \
+ Transparent_MC.schema GreenTint_MC.schema \
+ Transparent_lightbg.schema \
+ Transparent_darkbg.schema LightPaper.schema \
+ linux.desktop mc.desktop shell.desktop su.desktop sumc.desktop \
+ linux.keytab vt100.keytab vt420pc.keytab x11r5.keytab solaris.keytab \
+ README.Schema README.KeyTab README.default.Keytab screen.desktop
+
+profiledir = $(kde_datadir)/konsole/profiles
+profile_DATA = 2shells 3shells 4shells 5shells
+
+KDE_ICON = AUTO
+
+EXTRA_DIST = $(konsole_other_data_DATA)
diff --git a/konsole/other/README b/konsole/other/README
new file mode 100644
index 000000000..f7fec06b2
--- /dev/null
+++ b/konsole/other/README
@@ -0,0 +1,15 @@
+[README]
+
+Beside a few png pictures you find
+
+- *.schema : README.Schema
+- *.keytab : README.KeyTab
+- *.desktop : README.Desktop
+
+files here.
+
+Please consult the indicated READMEs
+to learn about their syntax and purpose.
+
+kcmkonsole.C, brightness.png, colorness.png, contrast.png
+is an old attempt to write a configurator for these files.
diff --git a/konsole/other/README.Desktop b/konsole/other/README.Desktop
new file mode 100644
index 000000000..b9600ace3
--- /dev/null
+++ b/konsole/other/README.Desktop
@@ -0,0 +1,6 @@
+[README.Desktop]
+
+The session offered to be created in the File menu are
+taken from from configurations files with a *.desktop
+pattern either located in $KDEDIR/share/apps/konsole
+or ~/.kde/share/apps/konsole.
diff --git a/konsole/other/README.KeyTab b/konsole/other/README.KeyTab
new file mode 100644
index 000000000..4e94e5e50
--- /dev/null
+++ b/konsole/other/README.KeyTab
@@ -0,0 +1,72 @@
+[README.KeyTab]
+
+The keytabs offered in the Options/Keyboard menu are
+taken from from configurations files with a *.keytab
+pattern either located in $KDEDIR/share/apps/konsole
+or ~/.kde/share/apps/konsole.
+
+Keytabs allow to configure the behavior of konsole
+on keyboard events, especially for functions keys.
+Please have a look into the README.keyboard file, too.
+
+The syntax is that each entry has the form :
+
+ "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
+
+Keynames are those defined in <qnamespace.h> with the
+"Qt::Key_" prefix removed.
+
+Mode names are:
+
+ - Shift : Shift Key pressed
+ - Alt : Alt Key pressed
+ - Control : Control Key pressed
+
+ ( The VT100 emulation has modes that can affect the
+ sequences emitted by certain keys. These modes are
+ under control of the client program.
+
+ - Newline : effects Return and Enter key.
+ - Application : effects Up and Down key.
+ - Ansi : effects Up and Down key (This is for VT52, really).
+
+ Since sending a state to a program that has set the state
+ itself is positivly wrong and obsolete design, better forget
+ about this nasty detail. I may well remove this "feature"
+ in a future clean up round. )
+
+ A "+" preceeding a Modename means the Key is pressed.
+ A "-" preceeding a Modename means the Key is not pressed.
+ If no mode is given it means don't care.
+
+ Note that the combination of Key and Modes (set/reset)
+ has to be unique. This means, that
+
+ key A + Shift : "A"
+ key A : "a"
+
+ will not accept the small letter "a" rule as expected,
+ one has to add a "- Shift" to the last clause. Use
+ the stdout/stderr dianostics of konsole when modifying
+ keytabs to find problems like this.
+
+Operations are
+
+ - scrollUpLine : scroll up one line in the history log
+ - scrollUpPage : scroll up one page in the history log
+ - scrollDownLine : scroll down one line in the history log
+ - scrollDownPage : scroll down one page in the history log
+ - emitClipboard : "paste" the current clipboard
+ - emitSelection : "paste" the current selection
+
+Strings have the syntax of C strings,
+one may use the following escapes:
+
+ - \E - escape
+ - \\ - backslash
+ - \" - double quote
+ - \t - tab
+ - \r - return
+ - \n - newline
+ - \b - backspace
+ - \xHH - where HH are two hex digits
diff --git a/konsole/other/README.Schema b/konsole/other/README.Schema
new file mode 100644
index 000000000..f737c1439
--- /dev/null
+++ b/konsole/other/README.Schema
@@ -0,0 +1,132 @@
+[README.Schema]
+
+The schemata offered in the Options/Schema menu are
+taken from from configurations files with a *.schema
+pattern either located in $KDEDIR/share/apps/konsole
+or ~/.kde/share/apps/konsole.
+
+Schemata allow to configure the color set that konsole
+uses, together with some more information on rendition
+processing.
+
+Syntax
+
+ File
+ :: { [Line] ['#' Comment] '\n' }
+
+ Line
+ :: "title" Title
+ :: "image" Usage PathToPictureFile
+ :: "transparency" Fade Red Green Blue
+ :: "color" Slot Red Green Blue Transparent Bold
+ :: "rcolor" Slot Saturation Value Transparent Bold
+ :: "sysfg" Slot Transparent Bold
+ :: "sysbg" Slot Transparent Bold
+
+Meaning
+
+ - Title is the text to appear in the Option/Schema menu.
+ It should be unique among all other schemata therefore.
+
+ - The "image" clause allows to place an image on the
+ konsole's background.
+
+ - Usage can be either
+ - "tile" - the image is tilewise replicated.
+ - "center" - the image is centered.
+ - "full" - the image is stretched to fit the window size.
+
+ - The Path of the picture can both be relative
+ (to kde wallpapers) or absolute.
+
+ When a schema uses a background image (or transparency)
+ one has to make at least one color slot transparent to
+ achive any visible effect. Please read below about the
+ "Transparent" field in color,sysbg,sysfg.
+
+ - The "transparency" clause picks and uses the background
+ of the desktop as if it where an image together with
+ a fade effect. This effect will fade the background
+ to the specified color.
+
+ The "Fade" is a real value between 0 and 1, indicating
+ the strength of the fade. A value of 0 will not change
+ the image, a value of 1 will make it the fade color
+ everywhere, and in between. This will make the "glas"
+ of the window be of the color given in the clause and
+ being more(1) or less(0) intransparent.
+
+ - The remaining clauses (color,sysbg,sysfg) are used
+ to setup konsoles rendition system.
+
+ To this end, konsole offers 20 color slots.
+
+ Slot Meaning
+ ----- --------------------------
+ 0 regular foreground color
+ 1 regular background color
+ 2-9 regular bgr color 0-7
+ 10 intensive foreground color
+ 11 intensive background color
+ 12-19 intensive bgr color 0-7
+
+ The traditional meaning of the "bgr" color codes
+ has a bitwise interpretation of an additive three
+ primary color scheme inherited from early EGA
+ color terminals.
+
+ Color Bits Colors
+ ----- ---- -------
+ 0 000 Black
+ 1 001 Red
+ 2 010 Green
+ 3 011 Yellow
+ 4 100 Blue
+ 5 101 Magenta
+ 6 110 Cyan
+ 7 111 White
+
+ One may or may not stick to this tradition.
+ Konsole allows to assign colors freely to slots.
+
+ The slots fall apart into two groups, regular
+ and intensive colors. The later are used when
+ BOLD rendition is used by the client.
+
+ Each of the groups have a default fore- and
+ background color and the said bgr colors.
+ Normal terminal processing will simply use
+ the default colors.
+
+ The color desired for a slot is indicated
+ in the Red Green Blue fields of the color
+ clause. Use the sysfg or the sysbg clause
+ to indicate the default fore and background
+ colors of the desktop.
+
+ To specify randomized color for a slot use
+ the clause rcolor. The two parameters to it
+ being Saturation - the amount of colour,
+ and Value, the darkness of the colour.
+
+ To use transparency/images and to simulate
+ the behavior of the xterm, one can supply
+ two additional tags to each slot:
+ - Transparent (0/1) meaning to show the
+ background picture, if any.
+ - Bold (0/1) to render characters bold.
+
+
+If you know about the escape codes, you might have
+noticed that intensive and bold rendition are sort
+of confused. This is inherited by the xterm which
+konsole is simulating.
+
+One can use the colortest.sh script supplied
+with the konsole source distribution to test
+a schema.
+
+The schema installed with konsole are more or
+less demonstrations and not really beauty,
+beside the Linux.schema, perhaps, which is
+made after the VGA colors.
diff --git a/konsole/other/README.default.Keytab b/konsole/other/README.default.Keytab
new file mode 100644
index 000000000..5ddd45982
--- /dev/null
+++ b/konsole/other/README.default.Keytab
@@ -0,0 +1,137 @@
+# [README.default.Keytab] Buildin Keyboard Table
+
+# --------------------------------------------------------------
+#
+# This file is used to create the buildin keyboard table.
+# It is included for reference purpose with the *.keytab
+# files that are loaded dynamically.
+#
+# Modifying it does not have any effect (unless you
+# derive the default.keytab.h and recompile konsole).
+#
+# To customize your keyboard, copy this file to something
+# ending with .keytab and change it to meet you needs.
+# Please read the README.KeyTab and the README.keyboard
+# in this case.
+#
+# --------------------------------------------------------------
+
+keyboard "XTerm (XFree 4.x.x)"
+
+# --------------------------------------------------------------
+#
+# Note that this particular table is a "risc" version made to
+# ease customization without bothering with obsolete details.
+# See VT100.keytab for the more hairy stuff.
+#
+# --------------------------------------------------------------
+
+# common keys
+
+key Escape : "\E"
+
+key Tab -Shift : "\t"
+key Tab +Shift+Ansi : "\E[Z"
+key Tab +Shift-Ansi : "\t"
+key Backtab +Ansi : "\E[Z"
+key Backtab -Ansi : "\t"
+
+key Return-Shift-NewLine : "\r"
+key Return-Shift+NewLine : "\r\n"
+
+key Return+Shift : "\EOM"
+
+# Backspace and Delete codes are preserving CTRL-H.
+
+key Backspace : "\x7f"
+
+# Arrow keys in VT52 mode
+# shift up/down are reserved for scrolling.
+# shift left/right are reserved for switching between tabs (this is hardcoded).
+
+key Up -Shift-Ansi : "\EA"
+key Down -Shift-Ansi : "\EB"
+key Right-Shift-Ansi : "\EC"
+key Left -Shift-Ansi : "\ED"
+
+# Arrow keys in ANSI mode with Application - and Normal Cursor Mode)
+
+key Up -Shift-AnyMod+Ansi+AppCuKeys : "\EOA"
+key Down -Shift-AnyMod+Ansi+AppCuKeys : "\EOB"
+key Right -Shift-AnyMod+Ansi+AppCuKeys : "\EOC"
+key Left -Shift-AnyMod+Ansi+AppCuKeys : "\EOD"
+
+key Up -Shift-AnyMod+Ansi-AppCuKeys : "\E[A"
+key Down -Shift-AnyMod+Ansi-AppCuKeys : "\E[B"
+key Right -Shift-AnyMod+Ansi-AppCuKeys : "\E[C"
+key Left -Shift-AnyMod+Ansi-AppCuKeys : "\E[D"
+
+key Up -Shift+AnyMod+Ansi : "\E[1;*A"
+key Down -Shift+AnyMod+Ansi : "\E[1;*B"
+key Right -Shift+AnyMod+Ansi : "\E[1;*C"
+key Left -Shift+AnyMod+Ansi : "\E[1;*D"
+
+# other grey PC keys
+
+key Enter+NewLine : "\r\n"
+key Enter-NewLine : "\r"
+
+key Home -AnyMod -AppCuKeys : "\E[H"
+key End -AnyMod -AppCuKeys : "\E[F"
+key Home -AnyMod +AppCuKeys : "\EOH"
+key End -AnyMod +AppCuKeys : "\EOF"
+key Home +AnyMod : "\E[1;*H"
+key End +AnyMod : "\E[1;*F"
+
+key Insert -AnyMod : "\E[2~"
+key Delete -AnyMod : "\E[3~"
+key Insert +AnyMod : "\E[2;*~"
+key Delete +AnyMod : "\E[3;*~"
+
+key Prior -Shift-AnyMod : "\E[5~"
+key Next -Shift-AnyMod : "\E[6~"
+key Prior -Shift+AnyMod : "\E[5;*~"
+key Next -Shift+AnyMod : "\E[6;*~"
+
+# Function keys
+key F1 -AnyMod : "\EOP"
+key F2 -AnyMod : "\EOQ"
+key F3 -AnyMod : "\EOR"
+key F4 -AnyMod : "\EOS"
+key F5 -AnyMod : "\E[15~"
+key F6 -AnyMod : "\E[17~"
+key F7 -AnyMod : "\E[18~"
+key F8 -AnyMod : "\E[19~"
+key F9 -AnyMod : "\E[20~"
+key F10 -AnyMod : "\E[21~"
+key F11 -AnyMod : "\E[23~"
+key F12 -AnyMod : "\E[24~"
+
+key F1 +AnyMod : "\EO*P"
+key F2 +AnyMod : "\EO*Q"
+key F3 +AnyMod : "\EO*R"
+key F4 +AnyMod : "\EO*S"
+key F5 +AnyMod : "\E[15;*~"
+key F6 +AnyMod : "\E[17;*~"
+key F7 +AnyMod : "\E[18;*~"
+key F8 +AnyMod : "\E[19;*~"
+key F9 +AnyMod : "\E[20;*~"
+key F10 +AnyMod : "\E[21;*~"
+key F11 +AnyMod : "\E[23;*~"
+key F12 +AnyMod : "\E[24;*~"
+
+# Work around dead keys
+
+key Space +Control : "\x00"
+
+# Some keys are used by konsole to cause operations.
+# The scroll* operations refer to the history buffer.
+
+key Up +Shift-AppScreen : scrollLineUp
+key Prior +Shift-AppScreen : scrollPageUp
+key Down +Shift-AppScreen : scrollLineDown
+key Next +Shift-AppScreen : scrollPageDown
+
+key ScrollLock : scrollLock
+
+# keypad characters are not offered differently by Qt.
diff --git a/konsole/other/README.default.Schema b/konsole/other/README.default.Schema
new file mode 100644
index 000000000..e024e5ac5
--- /dev/null
+++ b/konsole/other/README.default.Schema
@@ -0,0 +1,44 @@
+# default scheme for konsole (only here for documentation purposes)
+
+# the title is to appear in the menu.
+
+title Konsole Defaults
+
+# image tile /opt/kde/share/wallpapers/gray2.jpg
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Transparent.schema b/konsole/other/Transparent.schema
new file mode 100644
index 000000000..41f8dc0ea
--- /dev/null
+++ b/konsole/other/Transparent.schema
@@ -0,0 +1,49 @@
+# linux color schema for konsole
+
+title Transparent Konsole
+
+transparency 0.35 0 0 0
+
+# FIXME
+#
+# The flaw in this schema is that "blick" comes out on the
+# Linux console as intensive background, really.
+# Since this is not used in clients you'll hardly notice
+# it in practice.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 178 178 178 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Transparent_MC.schema b/konsole/other/Transparent_MC.schema
new file mode 100644
index 000000000..8991b9af5
--- /dev/null
+++ b/konsole/other/Transparent_MC.schema
@@ -0,0 +1,51 @@
+# linux color schema for konsole
+
+title Transparent for MC
+
+transparency 0.35 0 0 0
+
+# FIXME
+#
+# The flaw in this schema is that "blick" comes out on the
+# Linux console as intensive background, really.
+# Since this is not used in clients you'll hardly notice
+# it in practice.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 178 178 178 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+#color 6 24 24 178 0 0 # regular color 4 Blue
+color 6 0 0 0 1 0 # regular color 4 Blue
+
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Transparent_darkbg.schema b/konsole/other/Transparent_darkbg.schema
new file mode 100644
index 000000000..61792fa4e
--- /dev/null
+++ b/konsole/other/Transparent_darkbg.schema
@@ -0,0 +1,42 @@
+# linux color schema for konsole
+
+title Transparent, Dark Background
+
+transparency 0.75 0 0 0
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 255 255 255 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 0 # intensive foreground color
+color 11 104 104 104 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/Transparent_lightbg.schema b/konsole/other/Transparent_lightbg.schema
new file mode 100644
index 000000000..ce201f290
--- /dev/null
+++ b/konsole/other/Transparent_lightbg.schema
@@ -0,0 +1,51 @@
+# linux color schema for konsole
+
+title Transparent, Light Background
+
+transparency 0.1 0 0 0
+
+# This is a schema for very light backgrounds. It makes some
+# hacks about the colors to make Midnight Commander transparent
+# and with suitable colors.
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 50 50 50 0 0 # regular foreground color (DarkGray)
+color 1 200 200 200 1 0 # regular background color (White)
+
+# color 2 0 0 0 0 0 # regular color 0 Black
+color 2 200 200 200 1 0 # regular background color (White)
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+#color 6 24 24 178 0 0 # regular color 4 Blue
+color 6 0 0 0 1 0 # regular color 4 Blue
+# Blue is transparent, to make MC transparent
+
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+# color 9 178 178 178 0 0 # regular color 7 White
+color 9 50 50 50 0 0 # regular foreground color (DarkGray)
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 0 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/WhiteOnBlack.schema b/konsole/other/WhiteOnBlack.schema
new file mode 100644
index 000000000..05c5bc08b
--- /dev/null
+++ b/konsole/other/WhiteOnBlack.schema
@@ -0,0 +1,42 @@
+# example scheme for konsole
+
+# the title is to appear in the menu.
+
+title White on Black
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+color 0 255 255 255 0 0 # regular foreground color (White)
+color 1 0 0 0 1 0 # regular background color (Black)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 255 255 255 0 1 # intensive foreground color
+color 11 0 0 0 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/XTerm.schema b/konsole/other/XTerm.schema
new file mode 100644
index 000000000..3ff787df0
--- /dev/null
+++ b/konsole/other/XTerm.schema
@@ -0,0 +1,46 @@
+# xterm color schema for konsole
+
+# xterm colors can be configured (almost) like
+# konsole colors can. This is the uncustomized
+# xterm schema.
+# Please refere to your local xterm setup files
+# if this schema differs.
+
+title XTerm Colors
+
+# foreground colors -------------------------------
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 205 0 0 0 0 # regular color 1 Red
+color 4 0 205 0 0 0 # regular color 2 Green
+color 5 205 205 0 0 0 # regular color 3 Yellow
+color 6 0 0 205 0 0 # regular color 4 Blue
+color 7 205 0 205 0 0 # regular color 5 Magenta
+color 8 0 205 205 0 0 # regular color 6 Cyan
+color 9 229 229 229 0 0 # regular color 7 White
+
+# intensive colors -------------------------------------------
+
+# for some strange reason, intensive colors are bold, also.
+
+color 10 77 77 77 0 1 # intensive foreground color
+color 11 255 255 255 1 1 # intensive background color
+
+color 12 77 77 77 0 1 # intensive color 0
+color 13 255 0 0 0 1 # intensive color 1
+color 14 0 255 0 0 1 # intensive color 2
+color 15 255 255 0 0 1 # intensive color 3
+color 16 0 0 255 0 1 # intensive color 4
+color 17 255 0 255 0 1 # intensive color 5
+color 18 0 255 255 0 1 # intensive color 6
+color 19 255 255 255 0 1 # intensive color 7
diff --git a/konsole/other/hi128-app-konsole.png b/konsole/other/hi128-app-konsole.png
new file mode 100644
index 000000000..a7f21faa5
--- /dev/null
+++ b/konsole/other/hi128-app-konsole.png
Binary files differ
diff --git a/konsole/other/hi16-app-konsole.png b/konsole/other/hi16-app-konsole.png
new file mode 100644
index 000000000..e4fabb297
--- /dev/null
+++ b/konsole/other/hi16-app-konsole.png
Binary files differ
diff --git a/konsole/other/hi22-app-konsole.png b/konsole/other/hi22-app-konsole.png
new file mode 100644
index 000000000..9033d420f
--- /dev/null
+++ b/konsole/other/hi22-app-konsole.png
Binary files differ
diff --git a/konsole/other/hi32-app-konsole.png b/konsole/other/hi32-app-konsole.png
new file mode 100644
index 000000000..81b85b5c4
--- /dev/null
+++ b/konsole/other/hi32-app-konsole.png
Binary files differ
diff --git a/konsole/other/hi48-app-konsole.png b/konsole/other/hi48-app-konsole.png
new file mode 100644
index 000000000..97498f6d3
--- /dev/null
+++ b/konsole/other/hi48-app-konsole.png
Binary files differ
diff --git a/konsole/other/hi64-app-konsole.png b/konsole/other/hi64-app-konsole.png
new file mode 100644
index 000000000..0b443d5ad
--- /dev/null
+++ b/konsole/other/hi64-app-konsole.png
Binary files differ
diff --git a/konsole/other/hisc-app-konsole.svgz b/konsole/other/hisc-app-konsole.svgz
new file mode 100644
index 000000000..1e802ec6a
--- /dev/null
+++ b/konsole/other/hisc-app-konsole.svgz
Binary files differ
diff --git a/konsole/other/icons/Makefile.am b/konsole/other/icons/Makefile.am
new file mode 100644
index 000000000..44043b089
--- /dev/null
+++ b/konsole/other/icons/Makefile.am
@@ -0,0 +1,3 @@
+konsoleiconsdir = $(kde_datadir)/konsole/icons
+konsoleicons_ICON = AUTO
+
diff --git a/konsole/other/icons/cr16-action-activity.png b/konsole/other/icons/cr16-action-activity.png
new file mode 100644
index 000000000..8d72794dd
--- /dev/null
+++ b/konsole/other/icons/cr16-action-activity.png
Binary files differ
diff --git a/konsole/other/icons/cr16-action-konsoleblue.png b/konsole/other/icons/cr16-action-konsoleblue.png
new file mode 100644
index 000000000..eb53b8ece
--- /dev/null
+++ b/konsole/other/icons/cr16-action-konsoleblue.png
Binary files differ
diff --git a/konsole/other/icons/cr16-action-konsolered.png b/konsole/other/icons/cr16-action-konsolered.png
new file mode 100644
index 000000000..7b8a66a00
--- /dev/null
+++ b/konsole/other/icons/cr16-action-konsolered.png
Binary files differ
diff --git a/konsole/other/icons/cr16-action-opentermblue.png b/konsole/other/icons/cr16-action-opentermblue.png
new file mode 100644
index 000000000..36d9a28ff
--- /dev/null
+++ b/konsole/other/icons/cr16-action-opentermblue.png
Binary files differ
diff --git a/konsole/other/icons/cr16-action-opentermred.png b/konsole/other/icons/cr16-action-opentermred.png
new file mode 100644
index 000000000..49ff19fe3
--- /dev/null
+++ b/konsole/other/icons/cr16-action-opentermred.png
Binary files differ
diff --git a/konsole/other/icons/cr16-action-silence.png b/konsole/other/icons/cr16-action-silence.png
new file mode 100644
index 000000000..a89226b3b
--- /dev/null
+++ b/konsole/other/icons/cr16-action-silence.png
Binary files differ
diff --git a/konsole/other/icons/cr22-action-konsoleblue.png b/konsole/other/icons/cr22-action-konsoleblue.png
new file mode 100644
index 000000000..5c463804f
--- /dev/null
+++ b/konsole/other/icons/cr22-action-konsoleblue.png
Binary files differ
diff --git a/konsole/other/icons/cr22-action-konsolered.png b/konsole/other/icons/cr22-action-konsolered.png
new file mode 100644
index 000000000..2602d9842
--- /dev/null
+++ b/konsole/other/icons/cr22-action-konsolered.png
Binary files differ
diff --git a/konsole/other/icons/cr22-action-opentermblue.png b/konsole/other/icons/cr22-action-opentermblue.png
new file mode 100644
index 000000000..54051f6d5
--- /dev/null
+++ b/konsole/other/icons/cr22-action-opentermblue.png
Binary files differ
diff --git a/konsole/other/icons/cr22-action-opentermred.png b/konsole/other/icons/cr22-action-opentermred.png
new file mode 100644
index 000000000..a349d4376
--- /dev/null
+++ b/konsole/other/icons/cr22-action-opentermred.png
Binary files differ
diff --git a/konsole/other/icons/cr32-action-konsoleblue.png b/konsole/other/icons/cr32-action-konsoleblue.png
new file mode 100644
index 000000000..778cafb25
--- /dev/null
+++ b/konsole/other/icons/cr32-action-konsoleblue.png
Binary files differ
diff --git a/konsole/other/icons/cr32-action-konsolered.png b/konsole/other/icons/cr32-action-konsolered.png
new file mode 100644
index 000000000..6776c141d
--- /dev/null
+++ b/konsole/other/icons/cr32-action-konsolered.png
Binary files differ
diff --git a/konsole/other/icons/cr32-action-opentermblue.png b/konsole/other/icons/cr32-action-opentermblue.png
new file mode 100644
index 000000000..a394401dd
--- /dev/null
+++ b/konsole/other/icons/cr32-action-opentermblue.png
Binary files differ
diff --git a/konsole/other/icons/cr32-action-opentermred.png b/konsole/other/icons/cr32-action-opentermred.png
new file mode 100644
index 000000000..e7e6134d2
--- /dev/null
+++ b/konsole/other/icons/cr32-action-opentermred.png
Binary files differ
diff --git a/konsole/other/linux.desktop b/konsole/other/linux.desktop
new file mode 100644
index 000000000..c8e7c5d6e
--- /dev/null
+++ b/konsole/other/linux.desktop
@@ -0,0 +1,161 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Linux Console
+Name[af]=Linux Konsole
+Name[ar]=لوحة أوامر لينكس
+Name[az]=Linuks Konsolu
+Name[be]=КанÑоль Linux
+Name[bn]=লিনাকà§à¦¸ কনসোল
+Name[br]=Letrin Linux
+Name[bs]=Linux konzola
+Name[ca]=Consola Linux
+Name[cs]=Linuxová konzole
+Name[csb]=Linuksowô kònsola
+Name[cy]=Terfynell Linux
+Name[da]=Linux-konsol
+Name[de]=Linux-Konsole
+Name[el]=Κονσόλα Linux
+Name[eo]=Linuks-konzolo
+Name[es]=Consola de Linux
+Name[et]=Linuxi konsool
+Name[eu]=Linux kontsola
+Name[fa]=پیشانۀ لینوکس
+Name[fi]=Linux-istunto
+Name[fr]=Console Linux
+Name[fy]=Linux Konsole
+Name[ga]=Consól Linux
+Name[gl]=Consola de Linux
+Name[he]=מסוף לינוקס
+Name[hi]=लिनकà¥à¤¸ कंसोल
+Name[hr]=Linux konzola
+Name[hu]=Parancsértelmező (Linux-emuláció)
+Name[is]=Aðalskjár Linux
+Name[it]=Console Linux
+Name[ja]=Linux コンソール
+Name[ka]=Linux-ის კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Name[kk]=Linux конÑоль
+Name[km]=កុងសូល Linux
+Name[lo]=ຄອນໂà»àºŠàº¥àº¥àºµàº™àº¸àº
+Name[lt]=Linux konsolÄ—
+Name[lv]=Linux Konsole
+Name[mk]=ЛинукÑ-конзола
+Name[mn]=ЛинукÑ-КонÑол
+Name[mt]=Konsol tal-Linux
+Name[nb]=Linux-konsoll
+Name[nds]=Linux-Konsool
+Name[ne]=लिनकà¥à¤¸ कनà¥à¤¸à¥‹à¤²
+Name[nn]=Linux-konsoll
+Name[pa]=ਲੀਨਕਸ ਕੰਨਸੋਲ
+Name[pl]=Konsola linuksowa
+Name[pt]=Consola do Linux
+Name[pt_BR]=Console do Linux
+Name[ro]=Consolă Linux
+Name[ru]=КонÑоль Linux
+Name[rw]=Konsole Linux
+Name[se]=Linux-konsolla
+Name[sk]=Linuxová konzola
+Name[sl]=Konzola za Linux
+Name[sr]=Linux конзола
+Name[sr@Latn]=Linux konzola
+Name[ss]=i-console ku Linux
+Name[sv]=Linux-konsoll
+Name[ta]=லினகà¯à®šà¯ கானà¯à®šà¯‹à®²à¯
+Name[te]=లినకà±à°¸à± కంసోలà±
+Name[tg]=Ð›Ð¸Ð½ÑƒÐºÑ console
+Name[th]=คอนโซลลีนุà¸à¸‹à¹Œ
+Name[tr]=Linux Konsolu
+Name[tt]=Linux Konsole
+Name[uk]=КонÑоль Linux
+Name[uz]=Linuks terminali
+Name[uz@cyrillic]=Ð›Ð¸Ð½ÑƒÐºÑ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð¸
+Name[vi]=Thiết bị cuối Linux
+Name[wa]=Conzôle Linux
+Name[zh_CN]=Linux 控制å°
+Name[zh_TW]=Linux 主控å°
+Name[zu]=Ikhonsoli we-Linux
+Comment=New Linux Console
+Comment[af]=Nuwe Linux Konsole
+Comment[ar]=مطرا٠تحكم Linux جديد
+Comment[az]=Yeni Linuks Konsolu
+Comment[be]=ÐÐ¾Ð²Ð°Ñ ÐºÐ°Ð½Ñоль Linux
+Comment[bg]=Ðова Ð›Ð¸Ð½ÑƒÐºÑ ÐºÐ¾Ð½Ð·Ð¾Ð»Ð°
+Comment[bn]=নতà§à¦¨ লিনাকà§à¦¸ কনসোল
+Comment[br]=Letrin Linux nevez
+Comment[bs]=Nova Linux konzola
+Comment[ca]=Nova consola Linux
+Comment[cs]=Nová Linuxová konzole
+Comment[csb]=Nowô linuksowô kònsola
+Comment[cy]=Terfynell Linux Newydd
+Comment[da]=Ny Linux-konsol
+Comment[de]=Neue Linux-Konsole
+Comment[el]=Îέα κονσόλα Linux
+Comment[eo]=Nova Linuks-konzolo
+Comment[es]=Nueva consola de Linux
+Comment[et]=Uus Linuxi konsool
+Comment[eu]=Linux kontsola berria
+Comment[fa]=پیشانۀ جدید لینوکس
+Comment[fi]=Uusi Linux-istunto
+Comment[fr]=Nouvelle console Linux
+Comment[fy]=Nije linuxkonsole
+Comment[ga]=Consól Linux Nua
+Comment[gl]=Nova Consola de Linux
+Comment[he]=מסוף לינוקס חדש
+Comment[hi]=नया लिनकà¥à¤¸ कंसोल
+Comment[hr]=Nova Linux konzola
+Comment[hu]=Új parancsértelmező (Linux-emuláció)
+Comment[is]=Aðalskjár Linux
+Comment[it]=Nuova console Linux
+Comment[ja]=æ–°è¦ Linux コンソール
+Comment[ka]=áƒáƒ®áƒáƒšáƒ˜ კáƒáƒœáƒ¡áƒáƒšáƒ˜
+Comment[kk]=Жаңа Linux конÑолін ашу
+Comment[km]=កុងសូល Linux ážáŸ’មី
+Comment[lo]=ເປີດຄອນໂà»àºŠàº¥àº¥àºµàº™àº¸àºà»ƒàº«àº¡à»ˆ
+Comment[lt]=Nauja Linux konsolÄ—
+Comment[lv]=Jauna Linux Konsole
+Comment[mk]=Ðова ЛинукÑ-конзола
+Comment[mn]=Ð¨Ð¸Ð½Ñ Ð›Ð¸Ð½ÑƒÐºÑ-КонÑол
+Comment[ms]= Linux Console Baru
+Comment[mt]=Konsol Ä¡did tal-Linux
+Comment[nb]=Nytt Linux-konsoll
+Comment[nds]=Niege Linux-Konsool
+Comment[ne]=नयाठलिनकà¥à¤¸ कनà¥à¤¸à¥‹à¤²
+Comment[nl]=Nieuwe linuxconsole
+Comment[nn]=Ny Linux-konsoll
+Comment[nso]=Console ye Ntshwa ya Linux
+Comment[pa]=ਨਵੀਂ ਲੀਨਕਸ ਕੋਂਨਸੋਲ
+Comment[pl]=Konsola linuksowa (nowa)
+Comment[pt]=Nova Consola de Linux
+Comment[pt_BR]=Novo Console do Linux
+Comment[ro]=Consolă Linux nouă
+Comment[ru]=ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð½Ñоль Linux
+Comment[rw]=Konsole Linux Nshya
+Comment[se]=OÄ‘Ä‘a Linux-konsolla
+Comment[sk]=Nová linuxová konzola
+Comment[sl]=Nova konzola za Linux
+Comment[sr]=Ðова Linux конзола
+Comment[sr@Latn]=Nova Linux konzola
+Comment[ss]=I-console lensha ku Linux
+Comment[sv]=Ny Linux-konsoll
+Comment[ta]=பà¯à®¤à®¿à®¯ லினகà¯à®¸à¯ கானà¯à®šà¯‹à®²à¯
+Comment[te]=కొతà±à°¤ లినకà±à°¸à± కంసోలà±
+Comment[tg]=Ðави Ð›Ð¸Ð½ÑƒÐºÑ Console
+Comment[th]=เปิดคอนโซลลีนุà¸à¸‹à¹Œà¹ƒà¸«à¸¡à¹ˆ
+Comment[tr]=Yeni Linux Konsolu
+Comment[tt]=Yaña Linux-Konsol
+Comment[uk]=Ðова конÑоль Linux
+Comment[uz]=Yangi Linuks terminali
+Comment[uz@cyrillic]=Янги Ð›Ð¸Ð½ÑƒÐºÑ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð¸
+Comment[ven]=Linux Console ntswa
+Comment[vi]=Mở một Thiết bị cuối Linux mới
+Comment[wa]=Novele conzôle linux
+Comment[xh]=Konsole Entsha ye Linux
+Comment[zh_CN]=新建 Linux 控制å°
+Comment[zh_TW]=新增 Linux 主控å°
+Comment[zu]=Ikhonsoli Entsha ye-Linux
+Exec=bash
+Schema=Linux.schema
+#VGA
+#Font=6
+Term=linux
+KeyTab=linux
+Cwd=
diff --git a/konsole/other/linux.keytab b/konsole/other/linux.keytab
new file mode 100644
index 000000000..d5149c3c8
--- /dev/null
+++ b/konsole/other/linux.keytab
@@ -0,0 +1,133 @@
+# [linux.keytab] Konsole Keyboard Table (Linux console keys)
+#
+# --------------------------------------------------------------
+
+# NOT TESTED, MAY NEED SOME CLEANUPS
+keyboard "linux console"
+
+# --------------------------------------------------------------
+#
+# This configuration table allows to customize the
+# meaning of the keys.
+#
+# The syntax is that each entry has the form :
+#
+# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
+#
+# Keynames are those defined in <qnamespace.h> with the
+# "Qt::Key_" removed. (We'd better insert the list here)
+#
+# Mode names are :
+#
+# - Shift
+# - Alt
+# - Control
+#
+# The VT100 emulation has two modes that can affect the
+# sequences emitted by certain keys. These modes are
+# under control of the client program.
+#
+# - Newline : effects Return and Enter key.
+# - Application : effects Up and Down key.
+#
+# - Ansi : effects Up and Down key (This is for VT52, really).
+#
+# Operations are
+#
+# - scrollUpLine
+# - scrollUpPage
+# - scrollDownLine
+# - scrollDownPage
+#
+# - emitSelection
+#
+# If the key is not found here, the text of the
+# key event as provided by QT is emitted, possibly
+# preceeded by ESC if the Alt key is pressed.
+#
+# --------------------------------------------------------------
+
+key Escape : "\E"
+key Tab : "\t"
+
+# VT100 can add an extra \n after return.
+# The NewLine mode is set by an escape sequence.
+
+key Return-NewLine : "\r"
+key Return+NewLine : "\r\n"
+
+# Some desperately try to save the ^H.
+
+key Backspace : "\x7f"
+key Delete : "\E[3~"
+
+# These codes are for the VT52 mode of VT100
+# The Ansi mode (i.e. VT100 mode) is set by
+# an escape sequence
+
+key Up -Shift-Ansi : "\EA"
+key Down -Shift-Ansi : "\EB"
+key Right-Shift-Ansi : "\EC"
+key Left -Shift-Ansi : "\ED"
+
+# VT100 emits a mode bit together
+# with the arrow keys.The AppCuKeys
+# mode is set by an escape sequence.
+
+key Up -Shift+Ansi+AppCuKeys : "\EOA"
+key Down -Shift+Ansi+AppCuKeys : "\EOB"
+key Right-Shift+Ansi+AppCuKeys : "\EOC"
+key Left -Shift+Ansi+AppCuKeys : "\EOD"
+
+key Up -Shift+Ansi-AppCuKeys : "\E[A"
+key Down -Shift+Ansi-AppCuKeys : "\E[B"
+key Right-Shift+Ansi-AppCuKeys : "\E[C"
+key Left -Shift+Ansi-AppCuKeys : "\E[D"
+
+# linux functions keys F1-F5 differ from xterm
+
+key F1 : "\E[[A"
+key F2 : "\E[[B"
+key F3 : "\E[[C"
+key F4 : "\E[[D"
+key F5 : "\E[[E"
+
+key F6 : "\E[17~"
+key F7 : "\E[18~"
+key F8 : "\E[19~"
+key F9 : "\E[20~"
+key F10 : "\E[21~"
+key F11 : "\E[23~"
+key F12 : "\E[24~"
+
+key Home : "\E[1~"
+key End : "\E[4~"
+
+key Prior -Shift : "\E[5~"
+key Next -Shift : "\E[6~"
+key Insert-Shift : "\E[2~"
+
+# Keypad-Enter. See comment on Return above.
+
+key Enter+NewLine : "\r\n"
+key Enter-NewLine : "\r"
+
+key Space +Control : "\x00"
+
+# some of keys are used by konsole.
+
+key Up +Shift : scrollLineUp
+key Prior +Shift : scrollPageUp
+key Down +Shift : scrollLineDown
+key Next +Shift : scrollPageDown
+
+key ScrollLock : scrollLock
+
+#----------------------------------------------------------
+
+# keypad characters as offered by Qt
+# cannot be recognized as such.
+
+#----------------------------------------------------------
+
+# Following other strings as emitted by konsole.
diff --git a/konsole/other/mc.desktop b/konsole/other/mc.desktop
new file mode 100644
index 000000000..4d998dd01
--- /dev/null
+++ b/konsole/other/mc.desktop
@@ -0,0 +1,103 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Midnight Commander
+Name[bn]=মিডনাইট কমানà§à¦¡à¦¾à¦°
+Name[eo]=Meznokta komandanto
+Name[fa]=Ùرماندۀ نیمه‌شب
+Name[hi]=मिडनाइट कमांडर
+Name[km]=ពាក្យ​បញ្ជា Midnight
+Name[ko]=미드나잇 커맨ë”
+Name[lo]=ມິດໄນຄອມມານເດີ
+Name[lv]=Pusnakts Komandieris
+Name[ms]=Pemberi Arahan Tengah Malam
+Name[ne]=मिडनाइट आदेश
+Name[nso]=Molaedi wa Bosegogare
+Name[pa]=ਮਿਡਨਾਇਟ ਕਮਾਂਡਰ
+Name[rw]=Mutangabwiriza Hagati-Ijoro
+Name[ta]=நட௠இரவ௠கடà¯à®Ÿà®³à¯ˆ
+Name[tg]=Фармондиҳандаи нимаи шаб
+Name[th]=มิดไนท์คอมมานเดอร์
+Name[ven]=Muhulwane wa vhukati ha vhusiku
+Name[xh]=Umyaleli Waphakathi kobusuku
+Name[zu]=Umyaleli waphakathi nobusuku
+Icon=konsoleblue
+Comment=New Midnight Commander
+Comment[af]=Nuwe Midnight Commander
+Comment[ar]=Midnight Commander جديد
+Comment[az]=Yeni Midnight Commander
+Comment[be]=Ðовы Midnight Commander
+Comment[bg]=Ðов Midnight Commander
+Comment[bn]=নতà§à¦¨ মিডনাইট কমানà§à¦¡à¦¾à¦°
+Comment[br]=Midnight Commander Nevez
+Comment[bs]=Novi Midnight Commander
+Comment[ca]=Nou Midnight Commander
+Comment[cs]=Nový Midnight Commander
+Comment[csb]=Nowi Midnight Commander
+Comment[cy]=Midnight Commander Newydd
+Comment[da]=Ny Midnight Commander
+Comment[de]=Neuer Midnight Commander
+Comment[el]=Îέος Midnight Commander
+Comment[eo]=Dosieradministrilo "Meznokta komandanto"
+Comment[es]=Nuevo Midnight Commander
+Comment[et]=Uus Midnight Commander
+Comment[eu]=Midnight Commander berria
+Comment[fa]=Ùرماندۀ نیمه ‌شب جدید
+Comment[fi]=Uusi Midnight Commander -istunto
+Comment[fr]=Nouveau Midnight Commander
+Comment[fy]=nije Midnight Kommander
+Comment[ga]=Midnight Commander Nua
+Comment[gl]=Novo Midnight Commander
+Comment[he]=משימת Midnight Commander חדשה
+Comment[hi]=नया मिडनाइट कमांडर
+Comment[hr]=Novi Midnight Commander
+Comment[hu]=Új Midnight Commander
+Comment[is]=Midnight Commander
+Comment[it]=Nuovo Midnight Commander
+Comment[ja]=æ–°è¦ Midnight Commander
+Comment[ka]=Midnight Commander-ის áƒáƒ®áƒáƒšáƒ˜ ფáƒáƒœáƒ¯áƒáƒ áƒ
+Comment[kk]=Жаңа Midnight Commander терезеÑін ашу
+Comment[km]=ពាក្យ​បញ្ជា Midnight ážáŸ’មី
+Comment[ko]=미드나잇 커맨ë”
+Comment[lo]=ມິດໄນທຄອນມານເດີ à»àºšàºšàºªàº´àº”ຜູ້ດູà»àº¥àº¥àº°àºšàº»àºš
+Comment[lt]=Naujas Midnight Commander
+Comment[lv]=Jauns Pusnakts Komandieris
+Comment[mk]=Ðов Midnight Commander
+Comment[mn]=Ð¨Ð¸Ð½Ñ Midnight Commander
+Comment[ms]=Pemberi Arahan Tengah Malam Baru
+Comment[mt]=Midnight Commander Ä¡did
+Comment[nb]=Ny «Midnight Commander»
+Comment[nds]=Niegen Midnight Commander
+Comment[ne]=नयाठमिडनाइट आदेशकरà¥à¤¤à¤¾
+Comment[nl]=nieuwe Midnight Commander
+Comment[nn]=Ny Midnight Commander
+Comment[nso]=Moladi yo Moswa wa Bosegogare
+Comment[pa]=ਨਵਾਂ ਮਿਡਨਾਈਟ ਕਮਾਂਡਰ
+Comment[pl]=Midnight Commander
+Comment[pt]=Novo Midnight Commander
+Comment[pt_BR]=Novo Midnight Commander
+Comment[ro]=Midnight Commander nou
+Comment[ru]=Ðовое окно Midnight Commander
+Comment[rw]=Mutangabwiriza IjoroHagati Mushya
+Comment[se]=OÄ‘Ä‘a Midnight Commander
+Comment[sk]=Nový Midnight Commander
+Comment[sl]=Novi Midnight Commander
+Comment[sr]=Ðови Midnight Commander
+Comment[sr@Latn]=Novi Midnight Commander
+Comment[sv]=Ny Midnight Commander
+Comment[ta]=பà¯à®¤à®¿à®¯ நடà¯à®‡à®°à®µà¯ கடà¯à®Ÿà®³à¯ˆ
+Comment[tg]=Фармондиҳандаи намашаб
+Comment[th]=เปิดมิดไนท์คอมมานเดอร์ใหม่
+Comment[tr]=Yeni Midnight Commander
+Comment[tt]=Yaña Midnight Commander
+Comment[uk]=Ðовий Midnight Commander
+Comment[uz]=Yangi Midnight Commander
+Comment[uz@cyrillic]=Янги Midnight Commander
+Comment[ven]=Muhulwane wa vhukati ha vhusiku
+Comment[vi]=Mở một Midnight Commander mới
+Comment[wa]=Novea Midnight Commander
+Comment[zh_CN]=新建 Midnight Commander
+Comment[zh_TW]=新增 Midnight Commander
+Comment[zu]=Umyaleli Waphakathi nobusuku Omusha
+Exec=mc -c
+Cwd=
+Tips=false
diff --git a/konsole/other/screen.desktop b/konsole/other/screen.desktop
new file mode 100644
index 000000000..422f1f5d2
--- /dev/null
+++ b/konsole/other/screen.desktop
@@ -0,0 +1,155 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Screen Session
+Name[af]=Screen Sessie
+Name[ar]=جلسة الشاشة
+Name[az]=Screen İclası
+Name[be]=СеÑÑ–Ñ Screen
+Name[bn]=সà§à¦•à§à¦°à§€à¦¨ সেশন
+Name[br]=Dalc'h Screen
+Name[bs]=Sesija ekrana
+Name[ca]=Sessió de la pantalla
+Name[cs]=Screen relace
+Name[csb]=Sesëjô screena
+Name[cy]=Sesiwn Sgrîn
+Name[da]=Skærmsession
+Name[de]=Screen-Sitzung
+Name[el]=ΣυνεδÏία screen
+Name[eo]=Seanco de komandinterpretilo "Screen"
+Name[es]=Sesión de Screen
+Name[et]=Screen'i seanss
+Name[eu]=Pantailako saioa
+Name[fa]=نشست پرده
+Name[fi]=Screen-istunto
+Name[fr]=Session Screen
+Name[fy]=Skerm-sesje
+Name[ga]=Seisiún Scáileáin
+Name[gl]=Sesión de Pantalla
+Name[he]=מנהל מסכי×
+Name[hi]=सà¥à¤•à¥à¤°à¥€à¤¨ सतà¥à¤°
+Name[hr]=Zaslonska sesija
+Name[hu]='Screen'-munkafolyamat
+Name[is]=Skjáseta
+Name[it]=Sessione di Screen
+Name[ja]=スクリーンセッション
+Name[ka]=ეკრáƒáƒœáƒ˜áƒ¡ სეáƒáƒœáƒ¡áƒ˜
+Name[kk]=Screen ÑеанÑÑ‹
+Name[km]=សមáŸáž™â€‹áž¢áŸáž€áŸ’រង់
+Name[lt]=Screen sesija
+Name[lv]=Screen Sesija
+Name[mk]=ЕкранÑка ÑеÑија
+Name[mn]=Screen-Суулт
+Name[ms]=Sesi Skrin
+Name[mt]=Sessjoni ta' skrin
+Name[nb]=Skjermøkt
+Name[nds]=Screen-Törn
+Name[ne]=परà¥à¤¦à¤¾ सतà¥à¤°
+Name[nl]=Screen-sessie
+Name[nn]=Skjermøkt
+Name[nso]=Tiragalo ya Pontsho
+Name[pa]=ਸਕਰੀਨ ਸ਼ੈਸ਼ਨ
+Name[pl]=Sesja screena
+Name[pt]=Sessão do Screen
+Name[pt_BR]=Sessão do Screen
+Name[ro]=Sesiune "screen"
+Name[ru]=Ð¡ÐµÐ°Ð½Ñ Screen
+Name[rw]=Umukoro wa Mugaragaza
+Name[se]=Å earbmabargovuorru
+Name[sk]=Relácia screen
+Name[sl]=Zaslonska seja
+Name[sr]=ЕкранÑка ÑеÑија
+Name[sr@Latn]=Ekranska sesija
+Name[sv]=Session med screen
+Name[ta]=திரை கால அளவà¯
+Name[te]=తెర సెషనà±
+Name[tg]=ÐишаÑти Ñафҳа
+Name[th]=เซสชันหน้าจอ
+Name[tr]=Ekran Oturumu
+Name[tt]=Screen Sessise
+Name[uk]=Ð¡ÐµÐ°Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°
+Name[uz]=Screen seansi
+Name[uz@cyrillic]=Screen ÑеанÑи
+Name[ven]=Tshipida tsha tshikirini
+Name[vi]=Phiên chạy Màn hình
+Name[wa]=Session «screen»
+Name[xh]=Isiqendu Sekhusi
+Name[zh_CN]=å±å¹•ä¼šè¯
+Name[zh_TW]=螢幕工作階段
+Name[zu]=Isiqendu seskrini
+Comment=New Screen Session
+Comment[af]=Nuwe Screen Sessie
+Comment[ar]=جلسة شاشة جديدة
+Comment[az]=Yeni Screen İclası
+Comment[be]=ÐÐ¾Ð²Ð°Ñ ÑеÑÑ–Ñ Screen
+Comment[bg]=Ðова ÑеÑиÑ
+Comment[bn]=নতà§à¦¨ সà§à¦•à§à¦°à§€à¦¨ সেশন
+Comment[br]=Dalc'h Screen nevez
+Comment[bs]=Nova sesija ekrana
+Comment[ca]=Nova pantalla de la sessió
+Comment[cs]=Nová 'screen' relace
+Comment[csb]=Nowô sesëjô programë "screen"
+Comment[cy]=Sesiwn Sgrîn Newydd
+Comment[da]=Ny skærmsession
+Comment[de]=Neue Sitzung des Terminalprogramms Screen
+Comment[el]=Îέα συνεδÏία screen
+Comment[eo]=Nova seanco de programo "Screen"
+Comment[es]=Nueva sesión de Screen
+Comment[et]=Uus screen'i seanss
+Comment[eu]=Pantailako saio berria
+Comment[fa]=نشست پردۀ جدید
+Comment[fi]=Uusi Screen-istunto
+Comment[fr]=Nouvelle session Screen
+Comment[fy]=Nije Skerm-sesje
+Comment[ga]=Seisiún Nua Scáileáin
+Comment[gl]=Nova Sesión de Pantalla
+Comment[he]=מנהל ×ž×¡×›×™× ×—×“×©
+Comment[hr]=Nova zaslonska sesija
+Comment[hu]=Új 'Screen'
+Comment[is]=Ný skjáseta
+Comment[it]=Nuova sessione di Screen
+Comment[ja]=æ–°è¦ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚»ãƒƒã‚·ãƒ§ãƒ³
+Comment[kk]=Жаңа Screen ÑеанÑÑ‚Ñ‹ ашу
+Comment[km]=សមáŸáž™â€‹áž¢áŸáž€áŸ’រង់​ážáŸ’មី
+Comment[lt]=Nauja Screen sesija
+Comment[lv]=Jauna Screen Sesija
+Comment[mk]=Ðова екранÑка ÑеÑија
+Comment[mn]=Терминал-програмын ÑˆÐ¸Ð½Ñ Screen Ñуулт
+Comment[ms]=Sesi Skrin Baru
+Comment[mt]=Sessjoni Ä¡dida ta' skrin
+Comment[nb]=Ny skjermøkt
+Comment[nds]=Niegen Screen-Törn
+Comment[ne]=नयाठपरà¥à¤¦à¤¾ सतà¥à¤°
+Comment[nl]=nieuwe Screen-sessie
+Comment[nn]=Ny skjermøkt
+Comment[nso]=Tiragalo ye Ntshwa ya Pontsho
+Comment[pa]=ਨਵਾਂ ਸਕਰੀਨ ਸ਼ੈਸ਼ਨ
+Comment[pl]=Nowa sesja programu "screen"
+Comment[pt]=Nova Sessão do Screen
+Comment[pt_BR]=Nova Sessão do Screen
+Comment[ro]=Sesiune "screen" nouă
+Comment[ru]=Ðовое окно Screen
+Comment[rw]=Umukoro wa Mugaragaza Mushya
+Comment[se]=OÄ‘Ä‘a Å¡earbmabargovuorru
+Comment[sk]=Nová relácia screen
+Comment[sl]=Nova zaslonska seja
+Comment[sr]=Ðова екранÑка ÑеÑија
+Comment[sr@Latn]=Nova ekranska sesija
+Comment[ss]=Sigceme seskrini lesisha
+Comment[sv]=Ny session med screen
+Comment[ta]=பà¯à®¤à®¿à®¯ திரை கால அளவà¯
+Comment[te]=కొతà±à°¤ తెర సెషనà±
+Comment[tg]=Ðави нишаÑти Ñафҳа
+Comment[th]=เปิดเซสชันหน้าจอใหม่
+Comment[tr]=Yeni Ekran Oturumu
+Comment[tt]=Yaña Screen-Sessi
+Comment[uk]=Ðовий ÑÐµÐ°Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°
+Comment[uz]=Yangi screen seansi
+Comment[uz@cyrillic]=Янги screen ÑеанÑи
+Comment[ven]=Tshipida tsha tshikirini tshiswa
+Comment[vi]=Mở một Phiên chạy Màn hình mới
+Comment[wa]=Novele session «screen»
+Comment[zh_CN]=新建å±å¹•ä¼šè¯
+Comment[zh_TW]=新增螢幕工作階段
+Comment[zu]=Isiqendu Seskrini Esisha
+Exec=screen
+Cwd=
diff --git a/konsole/other/shell.desktop b/konsole/other/shell.desktop
new file mode 100644
index 000000000..36143bd34
--- /dev/null
+++ b/konsole/other/shell.desktop
@@ -0,0 +1,145 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Shell
+Name[af]=Tolk
+Name[ar]=المحارة
+Name[az]=Qabıq
+Name[be]=Ðбалонка
+Name[bn]=শেল
+Name[ca]=Intèrpret de comandaments
+Name[csb]=Pòwłoka
+Name[cy]=Plisgyn
+Name[da]=Skal
+Name[de]=Befehlsfenster
+Name[el]=Κέλυφος
+Name[eo]=Åœelo
+Name[es]=Terminal
+Name[eu]=Shella
+Name[fa]=پوسته
+Name[fi]=Komentotulkki
+Name[fr]=Terminal
+Name[fy]=Flues
+Name[ga]=Blaosc
+Name[he]=מעטפת
+Name[hi]=शैल
+Name[hr]=Ljuska
+Name[hu]=Parancsértelmező
+Name[is]=Skel
+Name[ja]=シェル
+Name[kk]=Қоршау-орта
+Name[km]=សែល
+Name[ko]=ì…¸
+Name[lo]=ເຊລ
+Name[lt]=Apvalkalas
+Name[lv]=ÄŒaula
+Name[mk]=Школка
+Name[mn]=Бүрхүүл
+Name[nb]=Skall
+Name[nds]=Befehlsfinster
+Name[ne]=शेल
+Name[nn]=Skal
+Name[nso]=Legapi
+Name[pa]=ਸੈੱਲ
+Name[pl]=Powłoka
+Name[pt]=Linha de Comandos
+Name[ro]=Interpretor
+Name[ru]=КонÑоль
+Name[rw]=Sheli
+Name[se]=Skálžu
+Name[sl]=Ukazna lupina
+Name[sr]=Шкољка
+Name[sr@Latn]=Å koljka
+Name[sv]=Skal
+Name[ta]=ஓடà¯
+Name[te]=షెలà±
+Name[tg]=ПӯÑта
+Name[th]=เชลล์
+Name[tr]=Kabuk
+Name[tt]=Qabıq
+Name[uk]=Командний Ñ€Ñдок
+Name[uz]=Terminal
+Name[uz@cyrillic]=Терминал
+Name[vi]=Trình giao diện
+Name[xh]=Iqokobhe
+Name[zu]=Igobolodo
+Comment=New Shell
+Comment[af]=Nuwe Tolk
+Comment[ar]=محارة جديد
+Comment[az]=Yeni Qabıq
+Comment[be]=ÐÐ¾Ð²Ð°Ñ Ð°Ð±Ð°Ð»Ð¾Ð½ÐºÐ°
+Comment[bg]=Ðов Shell
+Comment[bn]=নতà§à¦¨ শেল
+Comment[br]=Shell Nevez
+Comment[bs]=Novi shell
+Comment[ca]=Nou intèrpret de comandaments
+Comment[cs]=Nový shell
+Comment[csb]=Nowô pòwłoka
+Comment[cy]=Plisgyn Newydd
+Comment[da]=Ny skal
+Comment[de]=Neues Befehlsfenster
+Comment[el]=Îέο κέλυφος
+Comment[eo]=Nova komandinterpretilo
+Comment[es]=Nuevo intérprete
+Comment[et]=Uus shell
+Comment[eu]=Shell berria
+Comment[fa]=پوستۀ جدید
+Comment[fi]=Uusi komentotulkki
+Comment[fr]=Nouveau shell
+Comment[fy]=Nije Flues
+Comment[ga]=Blaosc Nua
+Comment[gl]=Nova Shell
+Comment[he]=מעטפת חדשה
+Comment[hi]=नया शैल
+Comment[hr]=Nova ljuska
+Comment[hu]=Új parancsértelmező
+Comment[is]=Ný skel
+Comment[it]=Nuova shell
+Comment[ja]=æ–°è¦ã‚·ã‚§ãƒ«
+Comment[ka]=Shell - áƒáƒ®áƒáƒšáƒ˜ ფáƒáƒœáƒ¯áƒáƒ áƒ
+Comment[kk]=Жаңа көршауды ашу
+Comment[km]=សែល​ážáŸ’មី
+Comment[lo]=ເຊລໃຫມ່
+Comment[lt]=Naujas apvalkalas
+Comment[lv]=Jauna ÄŒaula
+Comment[mk]=Ðова школка
+Comment[mn]=Ð¨Ð¸Ð½Ñ Ð±Ò¯Ñ€Ñ…Ò¯Ò¯Ð»
+Comment[ms]=Shell Baru
+Comment[mt]=Shell Ä¡did
+Comment[nb]=Nytt skall
+Comment[nds]=Nieg Befehlsfinster
+Comment[ne]=नयाठशेल
+Comment[nl]=Nieuwe shell
+Comment[nn]=Nytt skal
+Comment[nso]=Legapi le Leswa
+Comment[pa]=ਨਵੀਂ ਸੈੱਲ
+Comment[pl]=Powłoka
+Comment[pt]=Nova Linha de Comandos
+Comment[pt_BR]=Novo Shell
+Comment[ro]=Interpretor nou
+Comment[ru]=ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð½Ñоль
+Comment[rw]=Sheli Nshya
+Comment[se]=Ođđa skálžu
+Comment[sk]=Nový shell
+Comment[sl]=Nova ukazna lupina
+Comment[sr]=Ðова шкољка
+Comment[sr@Latn]=Nova Å¡koljka
+Comment[ss]=I-Shell lensha
+Comment[sv]=Nytt skal
+Comment[ta]=பà¯à®¤à®¿à®¯ ஓடà¯
+Comment[te]=కొతà±à°¤ షెలà±
+Comment[tg]=Ðави пӯÑта
+Comment[th]=เชลล์ใหม่
+Comment[tr]=Yeni Kabuk
+Comment[tt]=Yaña Qabıq
+Comment[uk]=Ðовий командний Ñ€Ñдок
+Comment[uz]=Yangi terminal
+Comment[uz@cyrillic]=Янги терминал
+Comment[ven]=Shell ntswa
+Comment[vi]=Mở một Trình giao diện mới
+Comment[wa]=Novea shell
+Comment[xh]=Iqokobhe Elitsha
+Comment[zh_CN]=新建 Shell
+Comment[zh_TW]=新增 Shell
+Comment[zu]=Igobolodo Elisha
+Exec=
+Cwd=
diff --git a/konsole/other/solaris.keytab b/konsole/other/solaris.keytab
new file mode 100644
index 000000000..cb0626be9
--- /dev/null
+++ b/konsole/other/solaris.keytab
@@ -0,0 +1,108 @@
+# [solaris.keytab] Konsole Keyboard Table
+#
+
+keyboard "Solaris"
+
+# --------------------------------------------------------------
+#
+# This configuration table allows to customize the
+# meaning of the keys.
+#
+# The syntax is that each entry has the form :
+#
+# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
+#
+# Keynames are those defined in <qnamespace.h> with the
+# "Qt::Key_" removed. (We'd better insert the list here)
+#
+# Mode names are :
+#
+# - Shift
+# - Alt
+# - Control
+#
+# The VT100 emulation has two modes that can affect the
+# sequences emitted by certain keys. These modes are
+# under control of the client program.
+#
+#
+# - Newline : effects Return and Enter key.
+# - Application : effects Up and Down key.
+#
+# - Ansi : effects Up and Down key (This is for VT52, really).
+#
+# Operations are
+#
+# - scrollUpLine
+# - scrollUpPage
+# - scrollDownLine
+# - scrollDownPage
+#
+# - emitSelection
+#
+# If the key is not found here, the text of the
+# key event as provided by QT is emitted, possibly
+# preceeded by ESC if the Alt key is pressed.
+#
+# --------------------------------------------------------------
+
+key Escape : "\E"
+key Tab : "\t"
+
+key Return-Alt : "\r"
+key Return+Alt : "\E\r"
+
+# Backspace and Delete codes are preserving CTRL-H.
+
+key Backspace : "\x08"
+#key Delete : "\x7F"
+
+# cursor keys
+
+key Up -Shift : "\EOA"
+key Down -Shift : "\EOB"
+key Right -Shift : "\EOC"
+key Left -Shift : "\EOD"
+
+# other grey PC keys
+
+key Enter : "\r"
+
+key Home : "\E[1~"
+key Insert-Shift : "\E[2~"
+key Delete : "\E[3~"
+key End : "\E[4~"
+key Prior -Shift : "\E[5~"
+key Next -Shift : "\E[6~"
+
+# function keys
+
+key F1 : "\E[11~"
+key F2 : "\E[12~"
+key F3 : "\E[13~"
+key F4 : "\E[14~"
+key F5 : "\E[15~"
+key F6 : "\E[17~"
+key F7 : "\E[18~"
+key F8 : "\E[19~"
+key F9 : "\E[20~"
+key F10 : "\E[21~"
+key F11 : "\E[23~"
+key F12 : "\E[24~"
+
+# Work around dead keys
+
+key Space +Control : "\x00"
+
+# Some keys are used by konsole to cause operations.
+# The scroll* operations refer to the history buffer.
+
+#key Left +Shift : prevSession
+#key Right +Shift : nextSession
+key Up +Shift : scrollLineUp
+key Prior +Shift : scrollPageUp
+key Down +Shift : scrollLineDown
+key Next +Shift : scrollPageDown
+#key Insert+Shift : emitSelection
+
+# keypad characters are not offered differently by Qt.
diff --git a/konsole/other/su.desktop b/konsole/other/su.desktop
new file mode 100644
index 000000000..1a2b89844
--- /dev/null
+++ b/konsole/other/su.desktop
@@ -0,0 +1,132 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Root Shell
+Name[af]=Root tolk
+Name[ar]=محارة الجذر
+Name[be]=Ðбалонка адмініÑтратара
+Name[bn]=রà§à¦Ÿ শেল
+Name[br]=Shell gwrizienn
+Name[ca]=Intèrpret de comandaments root
+Name[cs]=Root shell
+Name[csb]=Pòwłoka sprôwnika (root)
+Name[da]=Root-skal
+Name[de]=Befehlsfenster (Systemverwaltungsmodus)
+Name[el]=Κέλυφος υπεÏχÏήστη
+Name[eo]=Radika Åœelo
+Name[es]=Intérprete de órdenes de root
+Name[et]=Administraatori shell
+Name[eu]=Root shella
+Name[fa]=پوستۀ کاربر ارشد
+Name[fi]=Pääkäyttäjän komentotulkki
+Name[fr]=Shell superutilisateur
+Name[ga]=Blaosc Fhorúsáideora
+Name[gl]=Shell de Root
+Name[he]=מעטפת root
+Name[hr]=Korijenska ljuska
+Name[hu]=Parancsértelmező (rendszergazdaként)
+Name[is]=Skel
+Name[it]=Shell di root
+Name[ja]=シェル (root)
+Name[kk]=Root қоршау-ортаÑÑ‹
+Name[km]=សែល Root
+Name[lt]=Root apvalkalas
+Name[mk]=Школка за root
+Name[ms]=Shell Root
+Name[nb]=Rotskall
+Name[nds]=Plegerkonsool
+Name[ne]=रà¥à¤Ÿ शेल
+Name[nl]=Root-shell
+Name[nn]=Rotskal
+Name[pa]=root ਸੈੱਲ
+Name[pl]=Powłoka administratora
+Name[pt]=Linha de Comandos Root
+Name[pt_BR]=Shell do Root
+Name[ro]=Interpretor "root"
+Name[ru]=КонÑоль Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ root
+Name[rw]=Sheli Umuzi
+Name[se]=Ruohtasskálžu
+Name[sl]=Korenska lupina
+Name[sr]=Корена шкољка
+Name[sr@Latn]=Korena Å¡koljka
+Name[sv]=Skal för root
+Name[ta]=ஓட௠ஷெலà¯
+Name[te]=రూటౠషెలà±
+Name[th]=เชลล์ของผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š
+Name[tr]=Root Kabuk
+Name[tt]=Root Qabığı
+Name[uk]=Командна оболонка з правами root
+Name[vi]=Trình giao diện Gốc
+Name[wa]=Shell root
+Icon=konsolered
+Comment=New Root Shell
+Comment[af]=Nuwe Root Tolk
+Comment[ar]=محارة جذر جديدة
+Comment[be]=ÐÐ¾Ð²Ð°Ñ Ð°Ð±Ð°Ð»Ð¾Ð½ÐºÐ° адмініÑтратара
+Comment[bg]=Ðов Root Shell
+Comment[bn]=নতà§à¦¨ রà§à¦Ÿ শেল
+Comment[br]=Shell gwrizienn nevez
+Comment[bs]=Novi root shell
+Comment[ca]=Nou intèrpret de comandaments root
+Comment[cs]=Nový root shell
+Comment[csb]=Nowô pòwłoka sprôwnika
+Comment[da]=Ny root-skal
+Comment[de]=Neues Befehlsfenster (Systemverwaltungsmodus)
+Comment[el]=Îέο κέλυφος υπεÏχÏήστη
+Comment[eo]=Nova radika Åelo
+Comment[es]=Nuevo intérprete de root
+Comment[et]=Uus administraatori shell
+Comment[eu]=Root shell berria
+Comment[fa]=پوستۀ کاربر ارشد جدید
+Comment[fi]=Uusi pääkäyttäjän komentotulkki
+Comment[fr]=Nouveau shell superutilisateur
+Comment[fy]=Nije Root Shell
+Comment[ga]=Blaosc Nua an Fhorúsáideora
+Comment[gl]=Nova Shell de Root
+Comment[he]=מעטפת root חדשה
+Comment[hr]=Nova korijenska ljuska
+Comment[hu]=Új parancsértelmező (rendszergazdaként)
+Comment[is]=Ný skel
+Comment[it]=Nuova shell di root
+Comment[ja]=æ–°è¦ã‚·ã‚§ãƒ« (root)
+Comment[ka]=áƒáƒ®áƒáƒšáƒ˜ გáƒáƒ áƒ¡áƒ˜ ზემáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პრივილეგიებით
+Comment[kk]=Жаңа Root қоршау-ортаны ашу
+Comment[km]=សែល Root ážáŸ’មី
+Comment[lt]=Naujas Root apvalkalas
+Comment[mk]=Ðова школка за root
+Comment[ms]=Shell Root Baru
+Comment[nb]=Nytt rotskall
+Comment[nds]=Niege Plegerkonsool
+Comment[ne]=नयाठरà¥à¤Ÿ शेल
+Comment[nl]=Nieuwe root-shell
+Comment[nn]=Nytt rotskal
+Comment[pa]=ਨਵੀਂ root ਸੈੱਲ
+Comment[pl]=Nowa powłoka administratora
+Comment[pt]=Nova Linha de Comandos Root
+Comment[pt_BR]=Novo Shell do Root
+Comment[ro]=Interpretor "roo" nou
+Comment[ru]=ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð½Ñоль Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ root
+Comment[rw]=Sheli Umuzi Nshya
+Comment[se]=Ođđa ruohtasskálžu
+Comment[sk]=Nový Root shell
+Comment[sl]=Nova korenska lupina
+Comment[sr]=Ðова корена шкољка
+Comment[sr@Latn]=Nova korena Å¡koljka
+Comment[sv]=Nytt skal för root
+Comment[ta]=பà¯à®¤à®¿à®¯ ஓட௠ஷெலà¯
+Comment[te]=కొతà±à°¤ రూటౠషెలà±
+Comment[tg]=Root Shell -и нав
+Comment[th]=เชลล์ใหม่ของผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š
+Comment[tr]=Yeni Root Kabuk
+Comment[tt]=Yaña Root Qabığı
+Comment[uk]=Ðовий командна оболонка з правами root
+Comment[vi]=Mở một Trình giao diện Gốc mới
+Comment[wa]=Novea shell root
+Comment[zh_CN]=新建 Root Shell
+Comment[zh_TW]=新增 Root Shell
+Exec=su -
+Schema=BlackOnLightYellow.schema
+#Schema=Linux.schema
+#VGA
+#Font=6
+Cwd=
+Tips=false
diff --git a/konsole/other/sumc.desktop b/konsole/other/sumc.desktop
new file mode 100644
index 000000000..04daff141
--- /dev/null
+++ b/konsole/other/sumc.desktop
@@ -0,0 +1,147 @@
+[Desktop Entry]
+Type=KonsoleApplication
+Name=Root Midnight Commander
+Name[ar]=Midnight Commander للمستخدم الجذر
+Name[az]=Ali İstifadəçi Modunda Midnight Commander
+Name[be]=Midnight Commander Ð´Ð»Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратара
+Name[bn]=রà§à¦Ÿ মিডনাইট কমানà§à¦¡à¦¾à¦°
+Name[br]=Midnight Commander gwrizienn
+Name[ca]=Midnight Commander root
+Name[cs]=Midnight Commander (root)
+Name[csb]=Midnight Commander - trib sprôwnika
+Name[cy]=Midnight Commander Gwraidd
+Name[de]=Midnight Commander (Systemverwaltungsmodus)
+Name[el]=Midnight Commander υπεÏχÏήστη
+Name[eo]=Meznokta komandanto kiel sistemestro
+Name[es]=Midnight Commander para root
+Name[et]=Midnight Commander (administraator)
+Name[eu]=Root-en Midnight Commander
+Name[fa]=Ùرماندۀ نیمه‌شب کاربر ارشد
+Name[fi]=Pääkäyttäjän Midnight Commander
+Name[fr]=Midnight Commander en tant que superutilisateur
+Name[fy]=Root Midnight Kommander
+Name[gl]=Midnight Commander como Root
+Name[hi]=रूट मिडनाइट कमांडर
+Name[hr]=Midnight Commander - za administratora
+Name[hu]=Midnight Commander (rendszergazdaként)
+Name[is]=Midnight Commander kerfisstjóri
+Name[it]=Midnight Commander di root
+Name[ja]=Midnight Commander (root)
+Name[km]=ពាក្យ​បញ្ជា Midnight Root
+Name[ko]=미드나잇 커맨ë”
+Name[lo]=ມິດໄນຄອມມານເດີຜູ້ດູà»àº¥àº¥àº°àºšàº»àºš
+Name[lv]=Root Pusnakts Komandieris
+Name[mn]=ЭзÑн Midnight Commander
+Name[ms]=Pemberi Arahan Tengah Malam Root
+Name[mt]=Midnight Commander bħala root
+Name[nb]=«Midnight Commander» for root
+Name[nds]=Pleger-MC
+Name[ne]=रà¥à¤Ÿ मिडनाइट आदेशकरà¥à¤¤à¤¾
+Name[nn]=Midnight Commander for root
+Name[nso]=Molaedi wa Bosegogare wa Modu
+Name[pa]=root ਮਿਡਨਾਇਟ ਕਮਾਂਡਰ
+Name[pl]=Midnight Commander - tryb administratora
+Name[pt]=Midnight Commander como Root
+Name[pt_BR]=Midnight Commander - Root
+Name[ro]=Midnight Commander "root"
+Name[ru]=Midnight Commander c правами root
+Name[rw]=Mutangabwiriza Hagati-Ijoro y'Umuzi
+Name[se]=Midnight Commander root geavaheaddji várás
+Name[sl]=Midnight Commander za root
+Name[sr]=Корени Midnight Commander
+Name[sr@Latn]=Koreni Midnight Commander
+Name[sv]=Midnight Commander för root
+Name[ta]=ஆரமà¯à®ª நட௠இரவ௠கடà¯à®Ÿà®³à¯ˆ
+Name[tg]=Фармондиҳандаи нимашаби реша
+Name[th]=มิดไนท์คอมมานเดอร์ผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š
+Name[tr]=Midnight Commander (Root)
+Name[uk]=Midnight Commander Ð´Ð»Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора
+Name[uz]=Midnight Commander (root)
+Name[uz@cyrillic]=Midnight Commander (root)
+Name[ven]=Muhulwane wa mudzi wa vhukati ha vhusiku
+Name[vi]=Midnight Commander Gốc
+Name[wa]=Midnight Commander e môde root
+Name[zu]=Umyaleli Waphakathi nobusuku
+Icon=konsolered
+Comment=New Root Midnight Commander
+Comment[af]=Nuwe Root Midnight Commander
+Comment[ar]=Midnight Commander جديد للمستخدم الجذر
+Comment[az]=Yeni Ali İstifadəçi Modunda Midnight Commander
+Comment[be]=Ðовы Midnight Commander Ð´Ð»Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратара
+Comment[bg]=Ðов Root Midnight Commander
+Comment[bn]=নতà§à¦¨ রà§à¦Ÿ মিডনাইট কমানà§à¦¡à¦¾à¦°
+Comment[br]=Midnight Commander gwrizienn nevez
+Comment[bs]=Novi Root Midnight Commander
+Comment[ca]=Nou Midnight Commander root
+Comment[cs]=Nový Midnight Commander pro superuživatele
+Comment[csb]=Nowi Midnight Commander - trib sprôwnika
+Comment[cy]=Midnight Commander Gwraidd Newydd
+Comment[da]=Ny root Midnight Commander
+Comment[de]=Neuer Midnight Commander für Benutzer root
+Comment[el]=Îέο Midnight Commander υπεÏχÏήστη
+Comment[eo]=Nova Meznokta komandanto kiel sistemestro
+Comment[es]=Nuevo Midnight Commander de root
+Comment[et]=Uus administraatori Midnight Commander
+Comment[eu]=Root-en Midnight Commander berria
+Comment[fa]=Ùرماندۀ نیمه ‌شب کاربر ارشد جدید
+Comment[fi]=Uusi pääkäyttäjän Midnight Commander -istunto
+Comment[fr]=Nouveau Midnight Commander en tant que superutilisateur
+Comment[fy]=Nije Root Midnight Kommander
+Comment[gl]=Novo Midnight Commander como Root
+Comment[he]=משימת Root Midnight Commander חדשה
+Comment[hi]=नया रूट मिडनाइट कमांडर
+Comment[hr]=Novi Midnight Commander - za administratora
+Comment[hu]=Új Midnight Commander (rendszergazdaként)
+Comment[is]=Nýr Midnight Commander fyrir kerfisstjóra
+Comment[it]=Nuovo Midnight Commander di root
+Comment[ja]=æ–°è¦ Midnight Commander (root)
+Comment[ka]=áƒáƒ®áƒáƒšáƒ˜ Root Midnight Commander
+Comment[kk]=Жаңа Root Midnight Commander терезеÑін ашу
+Comment[km]=ពាក្យ​បញ្ជា Midnight Root ážáŸ’មី
+Comment[ko]=미드나잇 커맨ë”
+Comment[lo]=ມິດໄນຄອມມານເດີà»àºšàºšàºªàº´àº”ຜູ້ດູà»àº¥àº¥àº°àºšàº»àºš
+Comment[lt]=Naujas Root Midnight Commander
+Comment[lv]=Jauns Root Pusnakts Komandieris
+Comment[mk]=Ðов Root Midnight Commander
+Comment[mn]=Ð¨Ð¸Ð½Ñ Midnight Commander (ЭзÑн Ñ…ÑÑ€ÑглÑгч)
+Comment[ms]=Pemberi Arahan Tengah Malam Baru
+Comment[mt]=Midnight Commander ġdid bħala root
+Comment[nb]=Ny «Midnight Commander» for root
+Comment[nds]=Niegen Midnight Commander mit Systeemplegerverlöven
+Comment[ne]=नयाठरà¥à¤Ÿ मिडनाइट आदेशकरà¥à¤¤à¤¾
+Comment[nl]=Nieuwe root Midnight Commander
+Comment[nn]=Ny Midnight Commander for root
+Comment[nso]=Molaediwa yo Moswa wa Bosegogare wa Modu
+Comment[pa]=ਨਵਾਂ root ਮਿਡਨਾਇਟ ਕਮਾਂਡਰ
+Comment[pl]=Midnight Commander - tryb administratora
+Comment[pt]=Novo Midnight Commander como Root
+Comment[pt_BR]=Nova Janela do Midnight Commander- Root
+Comment[ro]=Consolă Midnight Commander "root" nouă
+Comment[ru]=Ðовое окно Midnight Commander Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ root
+Comment[rw]=Mutangabwiriza Hagati-Ijoro y'Umuzi Nshya
+Comment[se]=Ođđa Midnight Commander root geavadeaddji várás
+Comment[sk]=Nový root Midnight Commander
+Comment[sl]=Novi Midnight Commander za root
+Comment[sr]=Ðови корени Midnight Commander
+Comment[sr@Latn]=Novi koreni Midnight Commander
+Comment[sv]=Ny Midnight Commander för root
+Comment[ta]=பà¯à®¤à®¿à®¯ ஆரமà¯à®ª நட௠இரவ௠கடà¯à®Ÿà®³à¯ˆ
+Comment[tg]=Ðави фармондиҳандаи нимашаби реша
+Comment[th]=มิดไนท์คอมมานเดอร์à¹à¸šà¸šà¸ªà¸´à¸—ธิ์ผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š
+Comment[tr]=Yeni Midnight Commander (Root)
+Comment[tt]=Yaña Midnight Commander (root ısulı)
+Comment[uk]=Ðовий Midnight Commander Ð´Ð»Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора
+Comment[uz]=Yangi Midnight Commander (root)
+Comment[uz@cyrillic]=Янги Midnight Commander (root)
+Comment[ven]=Muhulwane wa mudzi wa vhukati ha vhusiku
+Comment[vi]=Mở một Midnight Commander Gốc mới
+Comment[wa]=Novea «Midnight Commander» e môde root
+Comment[zh_CN]=新建 Root Midnight Commander
+Comment[zh_TW]=新增 Root Midnight Commander
+Comment[zu]=Umyaleli Waphakathi nobusuku Wempande Entsha
+Exec=su -c 'mc -c'
+Schema=BlackOnLightYellow.schema
+#VGA
+#Font=6
+Cwd=
+Tips=false
diff --git a/konsole/other/syscolor.schema b/konsole/other/syscolor.schema
new file mode 100644
index 000000000..a9a65eafd
--- /dev/null
+++ b/konsole/other/syscolor.schema
@@ -0,0 +1,44 @@
+# schema that uses system colors
+
+# the title is to appear in the menu.
+
+title System Colors
+
+# image none
+
+# foreground colors
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | | |
+# V V--color--V V V
+
+sysfg 0 0 0 # regular foreground color (system)
+sysbg 1 1 0 # regular background color (system)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 178 24 24 0 0 # regular color 1 Red
+color 4 24 178 24 0 0 # regular color 2 Green
+color 5 178 104 24 0 0 # regular color 3 Yellow
+color 6 24 24 178 0 0 # regular color 4 Blue
+color 7 178 24 178 0 0 # regular color 5 Magenta
+color 8 24 178 178 0 0 # regular color 6 Cyan
+color 9 178 178 178 0 0 # regular color 7 White
+
+# intensive colors
+
+# instead of changing the colors, we've flaged the text to become bold
+
+color 10 0 0 0 0 1 # intensive foreground color
+color 11 255 255 255 1 0 # intensive background color
+
+color 12 104 104 104 0 0 # intensive color 0
+color 13 255 84 84 0 0 # intensive color 1
+color 14 84 255 84 0 0 # intensive color 2
+color 15 255 255 84 0 0 # intensive color 3
+color 16 84 84 255 0 0 # intensive color 4
+color 17 255 84 255 0 0 # intensive color 5
+color 18 84 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/vim.schema b/konsole/other/vim.schema
new file mode 100644
index 000000000..f29e3f7d7
--- /dev/null
+++ b/konsole/other/vim.schema
@@ -0,0 +1,40 @@
+# VIM-recommended color schema for konsole
+
+# VIM (VI improved) in "help xiterm" recommends these colors for xterm.
+
+title VIM Colors
+
+# foreground colors -------------------------------
+
+# note that the default background color is flagged
+# to become transparent when an image is present.
+
+# slot transparent bold
+# | red grn blu | |
+# V V--color--V V V
+
+color 0 0 0 0 0 0 # regular foreground color (Black)
+color 1 255 255 255 1 0 # regular background color (White)
+
+color 2 0 0 0 0 0 # regular color 0 Black
+color 3 192 0 0 0 0 # regular color 1 Red
+color 4 0 128 0 0 0 # regular color 2 Green
+color 5 128 128 0 0 0 # regular color 3 Yellow
+color 6 0 0 192 0 0 # regular color 4 Blue
+color 7 192 0 192 0 0 # regular color 5 Magenta
+color 8 0 128 128 0 0 # regular color 6 Cyan
+color 9 192 192 192 0 0 # regular color 7 White
+
+# intensive colors -------------------------------------------
+
+color 10 77 77 77 0 1 # intensive foreground color
+color 11 255 255 255 1 1 # intensive background color
+
+color 12 128 128 128 0 0 # intensive color 0
+color 13 255 96 96 0 0 # intensive color 1
+color 14 0 255 0 0 0 # intensive color 2
+color 15 255 255 0 0 0 # intensive color 3
+color 16 128 128 255 0 0 # intensive color 4
+color 17 255 64 255 0 0 # intensive color 5
+color 18 0 255 255 0 0 # intensive color 6
+color 19 255 255 255 0 0 # intensive color 7
diff --git a/konsole/other/vt100.keytab b/konsole/other/vt100.keytab
new file mode 100644
index 000000000..dec49baac
--- /dev/null
+++ b/konsole/other/vt100.keytab
@@ -0,0 +1,133 @@
+# [vt100.keytab] Konsole Keyboard Table (VT100 keys)
+#
+# --------------------------------------------------------------
+
+keyboard "vt100 (historical)"
+
+# --------------------------------------------------------------
+#
+# This configuration table allows to customize the
+# meaning of the keys.
+#
+# The syntax is that each entry has the form :
+#
+# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
+#
+# Keynames are those defined in <qnamespace.h> with the
+# "Qt::Key_" removed. (We'd better insert the list here)
+#
+# Mode names are :
+#
+# - Shift
+# - Alt
+# - Control
+#
+# The VT100 emulation has two modes that can affect the
+# sequences emitted by certain keys. These modes are
+# under control of the client program.
+#
+# - Newline : effects Return and Enter key.
+# - Application : effects Up and Down key.
+#
+# - Ansi : effects Up and Down key (This is for VT52, really).
+#
+# Operations are
+#
+# - scrollUpLine
+# - scrollUpPage
+# - scrollDownLine
+# - scrollDownPage
+#
+# - emitSelection
+#
+# If the key is not found here, the text of the
+# key event as provided by QT is emitted, possibly
+# preceeded by ESC if the Alt key is pressed.
+#
+# --------------------------------------------------------------
+
+key Escape : "\E"
+key Tab : "\t"
+
+# VT100 can add an extra \n after return.
+# The NewLine mode is set by an escape sequence.
+
+key Return-NewLine : "\r"
+key Return+NewLine : "\r\n"
+
+# Some desperately try to save the ^H.
+
+key Backspace : "\x7f"
+key Delete : "\E[3~"
+
+# These codes are for the VT52 mode of VT100
+# The Ansi mode (i.e. VT100 mode) is set by
+# an escape sequence
+
+key Up -Shift-Ansi : "\EA"
+key Down -Shift-Ansi : "\EB"
+key Right-Shift-Ansi : "\EC"
+key Left -Shift-Ansi : "\ED"
+
+# VT100 emits a mode bit together
+# with the arrow keys.The AppCuKeys
+# mode is set by an escape sequence.
+
+key Up -Shift+Ansi+AppCuKeys : "\EOA"
+key Down -Shift+Ansi+AppCuKeys : "\EOB"
+key Right-Shift+Ansi+AppCuKeys : "\EOC"
+key Left -Shift+Ansi+AppCuKeys : "\EOD"
+
+key Up -Shift+Ansi-AppCuKeys : "\E[A"
+key Down -Shift+Ansi-AppCuKeys : "\E[B"
+key Right-Shift+Ansi-AppCuKeys : "\E[C"
+key Left -Shift+Ansi-AppCuKeys : "\E[D"
+
+# function keys (FIXME: make pf1-pf4)
+
+key F1 : "\E[11~"
+key F2 : "\E[12~"
+key F3 : "\E[13~"
+key F4 : "\E[14~"
+key F5 : "\E[15~"
+
+key F6 : "\E[17~"
+key F7 : "\E[18~"
+key F8 : "\E[19~"
+key F9 : "\E[20~"
+key F10 : "\E[21~"
+key F11 : "\E[23~"
+key F12 : "\E[24~"
+
+key Home : "\E[H"
+key End : "\E[F"
+
+key Prior -Shift : "\E[5~"
+key Next -Shift : "\E[6~"
+key Insert-Shift : "\E[2~"
+
+# Keypad-Enter. See comment on Return above.
+
+key Enter+NewLine : "\r\n"
+key Enter-NewLine : "\r"
+
+key Space +Control : "\x00"
+
+# some of keys are used by konsole.
+
+key Up +Shift : scrollLineUp
+key Prior +Shift : scrollPageUp
+key Down +Shift : scrollLineDown
+key Next +Shift : scrollPageDown
+
+key ScrollLock : scrollLock
+
+
+#----------------------------------------------------------
+
+# keypad characters as offered by Qt
+# cannot be recognized as such.
+
+#----------------------------------------------------------
+
+# Following other strings as emitted by konsole.
diff --git a/konsole/other/vt420pc.keytab b/konsole/other/vt420pc.keytab
new file mode 100644
index 000000000..d132797b1
--- /dev/null
+++ b/konsole/other/vt420pc.keytab
@@ -0,0 +1,163 @@
+# [vt420pc.keytab] Konsole Keyboard Table (VT420pc keys)
+# adapted by ferdinand gassauer f.gassauer@aon.at
+# Nov 2000
+#
+################################################################
+#
+# The escape sequences emmited by the
+# keys Shift+F1 to Shift+F12 might not fit your needs
+#
+################# IMPORTANT NOTICE #############################
+# the key bindings (Kcontrol -> look and feel -> keybindgs)
+# overrule the settings in this file. The key bindings might be
+# changed by the user WITHOUT notification of the maintainer of
+# the keytab file. Konsole will not work as expected by
+# the maintainer of the keytab file.
+################################################################
+#
+# --------------------------------------------------------------
+
+keyboard "VT420PC"
+
+# --------------------------------------------------------------
+#
+# This configuration table allows to customize the
+# meaning of the keys.
+#
+# The syntax is that each entry has the form :
+#
+# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
+#
+# Keynames are those defined in <qnamespace.h> with the
+# "Qt::Key_" removed. (We'd better insert the list here)
+#
+# Mode names are :
+#
+# - Shift
+# - Alt
+# - Control
+#
+# The VT100 emulation has two modes that can affect the
+# sequences emitted by certain keys. These modes are
+# under control of the client program.
+#
+# - Newline : effects Return and Enter key.
+# - Application : effects Up and Down key.
+#
+# - Ansi : effects Up and Down key (This is for VT52, really).
+#
+# Operations are
+#
+# - scrollUpLine
+# - scrollUpPage
+# - scrollDownLine
+# - scrollDownPage
+#
+# - emitSelection
+#
+# If the key is not found here, the text of the
+# key event as provided by QT is emitted, possibly
+# preceeded by ESC if the Alt key is pressed.
+#
+# --------------------------------------------------------------
+
+key Escape : "\E"
+key Tab : "\t"
+key Backtab: "\E[Z"
+
+# VT100 can add an extra \n after return.
+# The NewLine mode is set by an escape sequence.
+
+key Return-NewLine : "\r"
+key Return+NewLine : "\r\n"
+
+# Some desperately try to save the ^H.
+# may be not everyone wants this
+
+key Backspace : "\x08" # Control H
+key Delete : "\x7f"
+
+# These codes are for the VT420pc
+# The Ansi mode (i.e. VT100 mode) is set by
+# an escape sequence
+
+key Up -Shift-Ansi : "\EA"
+key Down -Shift-Ansi : "\EB"
+key Right-Shift-Ansi : "\EC"
+key Left -Shift-Ansi : "\ED"
+
+# VT100 emits a mode bit together
+# with the arrow keys.The AppCuKeys
+# mode is set by an escape sequence.
+
+key Up -Shift+Ansi+AppCuKeys : "\EOA"
+key Down -Shift+Ansi+AppCuKeys : "\EOB"
+key Right-Shift+Ansi+AppCuKeys : "\EOC"
+key Left -Shift+Ansi+AppCuKeys : "\EOD"
+
+key Up -Shift+Ansi-AppCuKeys : "\E[A"
+key Down -Shift+Ansi-AppCuKeys : "\E[B"
+key Right-Shift+Ansi-AppCuKeys : "\E[C"
+key Left -Shift+Ansi-AppCuKeys : "\E[D"
+
+# function keys
+
+key F1 -Shift : "\E[11~"
+key F2 -Shift : "\E[12~"
+key F3 -Shift : "\E[13~"
+key F4 -Shift : "\E[14~"
+key F5 -Shift : "\E[15~"
+key F6 -Shift : "\E[17~"
+key F7 -Shift : "\E[18~"
+key F8 -Shift : "\E[19~"
+key F9 -Shift : "\E[20~"
+key F10-Shift : "\E[21~"
+key F11-Shift : "\E[23~"
+key F12-Shift : "\E[24~"
+#
+# Shift F1-F12
+#
+key F1 +Shift : "\E[11;2~"
+key F2 +Shift : "\E[12;2~"
+key F3 +Shift : "\E[13;2~"
+key F4 +Shift : "\E[14;2~"
+key F5 +Shift : "\E[15;2~"
+key F6 +Shift : "\E[17;2~"
+key F7 +Shift : "\E[18;2~"
+key F8 +Shift : "\E[19;2~"
+key F9 +Shift : "\E[20;2~"
+key F10+Shift : "\E[21;2~"
+key F11+Shift : "\E[23;2~"
+key F12+Shift : "\E[24;2~"
+
+key Home : "\E[H"
+key End : "\E[F"
+
+key Prior -Shift : "\E[5~"
+key Next -Shift : "\E[6~"
+key Insert-Shift : "\E[2~"
+
+# Keypad-Enter. See comment on Return above.
+
+key Enter+NewLine : "\r\n"
+key Enter-NewLine : "\r"
+
+key Space +Control : "\x00"
+
+# some of keys are used by konsole.
+
+key Up +Shift : scrollLineUp
+key Prior +Shift : scrollPageUp
+key Down +Shift : scrollLineDown
+key Next +Shift : scrollPageDown
+
+key ScrollLock : scrollLock
+
+#----------------------------------------------------------
+
+# keypad characters as offered by Qt
+# cannot be recognized as such.
+
+#----------------------------------------------------------
+
+# Following other strings as emitted by konsole.
diff --git a/konsole/other/wallpapers/Blkmarble.jpg b/konsole/other/wallpapers/Blkmarble.jpg
new file mode 100644
index 000000000..b9e9da016
--- /dev/null
+++ b/konsole/other/wallpapers/Blkmarble.jpg
Binary files differ
diff --git a/konsole/other/wallpapers/Makefile.am b/konsole/other/wallpapers/Makefile.am
new file mode 100644
index 000000000..4ed75919b
--- /dev/null
+++ b/konsole/other/wallpapers/Makefile.am
@@ -0,0 +1,7 @@
+
+konsole_wallpaper_data_DATA = Paper01.jpg Blkmarble.jpg gray02.jpg Metric-Monospace-14.png
+
+konsole_wallpaper_datadir = $(kde_datadir)/konsole/wallpapers
+
+EXTRA_DIST = $(konsole_wallpaper_data_DATA)
+
diff --git a/konsole/other/wallpapers/Metric-Monospace-14.png b/konsole/other/wallpapers/Metric-Monospace-14.png
new file mode 100644
index 000000000..2cdb9eedf
--- /dev/null
+++ b/konsole/other/wallpapers/Metric-Monospace-14.png
Binary files differ
diff --git a/konsole/other/wallpapers/Paper01.jpg b/konsole/other/wallpapers/Paper01.jpg
new file mode 100644
index 000000000..5dadeb021
--- /dev/null
+++ b/konsole/other/wallpapers/Paper01.jpg
Binary files differ
diff --git a/konsole/other/wallpapers/gray02.jpg b/konsole/other/wallpapers/gray02.jpg
new file mode 100644
index 000000000..53dad4a2e
--- /dev/null
+++ b/konsole/other/wallpapers/gray02.jpg
Binary files differ
diff --git a/konsole/other/x11r5.keytab b/konsole/other/x11r5.keytab
new file mode 100644
index 000000000..75ba06ec4
--- /dev/null
+++ b/konsole/other/x11r5.keytab
@@ -0,0 +1,71 @@
+# [x11r5.Keytab] Keyboard Table for X11 R5
+
+keyboard "XTerm (XFree 3.x.x)"
+
+# --------------------------------------------------------------
+#
+# Note that this particular table is a "risc" version made to
+# ease customization without bothering with obsolete details.
+# See VT100.keytab for the more hairy stuff.
+#
+# --------------------------------------------------------------
+
+# common keys
+
+key Escape : "\E"
+key Tab : "\t"
+
+key Return : "\r"
+
+# Backspace and Delete codes are preserving CTRL-H.
+
+key Backspace : "\x7f"
+
+# cursor keys
+
+key Up -Shift : "\EOA"
+key Down -Shift : "\EOB"
+key Right -Shift : "\EOC"
+key Left -Shift : "\EOD"
+
+# other grey PC keys
+
+key Enter : "\r"
+
+key Home : "\E[1~"
+key Insert-Shift : "\E[2~"
+key Delete : "\E[3~"
+key End : "\E[4~"
+key Prior -Shift : "\E[5~"
+key Next -Shift : "\E[6~"
+
+# function keys
+
+key F1 : "\E[11~"
+key F2 : "\E[12~"
+key F3 : "\E[13~"
+key F4 : "\E[14~"
+key F5 : "\E[15~"
+key F6 : "\E[17~"
+key F7 : "\E[18~"
+key F8 : "\E[19~"
+key F9 : "\E[20~"
+key F10 : "\E[21~"
+key F11 : "\E[23~"
+key F12 : "\E[24~"
+
+# Work around dead keys
+
+key Space +Control : "\x00"
+
+# Some keys are used by konsole to cause operations.
+# The scroll* operations refer to the history buffer.
+
+key Up +Shift : scrollLineUp
+key Prior +Shift : scrollPageUp
+key Down +Shift : scrollLineDown
+key Next +Shift : scrollPageDown
+
+key ScrollLock : scrollLock
+
+# keypad characters are not offered differently by Qt.
diff --git a/konsole/schemaStrip.pl b/konsole/schemaStrip.pl
new file mode 100755
index 000000000..d6a2edc95
--- /dev/null
+++ b/konsole/schemaStrip.pl
@@ -0,0 +1,8 @@
+#!/usr/bin/perl
+foreach (<>) {
+ if(/^schema=.*\/(.*)$/) {
+ print "schema=$1\n";
+ next;
+ }
+ print $_;
+}
diff --git a/konsole/terminalemulator.desktop b/konsole/terminalemulator.desktop
new file mode 100644
index 000000000..5e2a8af66
--- /dev/null
+++ b/konsole/terminalemulator.desktop
@@ -0,0 +1,86 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=TerminalEmulator
+X-KDE-Derived=KParts/ReadOnlyPart
+Name=Terminal Emulator
+Name[af]=Terminaal Emulasie
+Name[ar]=مضاه٠مطراÙ
+Name[az]=Terminal Emulyasiyası
+Name[be]=ЭмулÑтар Ñ‚Ñрміналу
+Name[bg]=Конзолна програма
+Name[bn]=টারà§à¦®à¦¿à¦¨à¦¾à¦² à¦à¦®à§à¦²à§‡à¦Ÿà¦°
+Name[br]=Kendarvanerezh termenell
+Name[bs]=Simulator terminala
+Name[ca]=Emulador de terminal
+Name[cs]=Emulátor terminálu
+Name[csb]=Emùlator terminala
+Name[cy]=Efelychydd Terfynell
+Name[da]=terminalemulator
+Name[de]=Terminal-Emulator
+Name[el]=ΠÏοσομοιωτής τεÏματικοÏ
+Name[eo]=Terminalimitaĵo
+Name[es]=Emulador de terminal
+Name[et]=Terminaliemulaator
+Name[eu]=Terminal emuladorea
+Name[fa]=مقلد پایانه
+Name[fi]=Komentoikkuna
+Name[fo]=Útstøðshermari
+Name[fr]=Émulateur de terminal
+Name[fy]=Terminal
+Name[ga]=Aithriseoir Teirminéil
+Name[gl]=Emulador de Terminal
+Name[he]=הדמיית מסוף
+Name[hi]=टरà¥à¤®à¤¿à¤¨à¤² à¤à¤®à¥à¤²à¥‡à¤Ÿà¤°
+Name[hr]=Emulator terminala
+Name[hu]=Parancsértelmező
+Name[id]=Emulator Terminal
+Name[is]=Skjáhermir KDE
+Name[it]=Emulatore di terminale
+Name[ja]=ターミナルエミュレータ
+Name[ka]=ტერმინáƒáƒšáƒ˜áƒ¡ ემულáƒáƒ¢áƒáƒ áƒ˜
+Name[kk]=Терминал ÑмулÑторы
+Name[km]=ážœážáŸ’ážáž»â€‹ážáŸ’រាប់​ážáž¶áž˜â€‹ážŸáŸ’ážáž¶áž“ីយ
+Name[ko]=í„°ë¯¸ë„ ì—뮬레ì´í„°
+Name[lo]=ຕົວຈຳລອງເທີມີນອນ
+Name[lt]=Terminalo emuliatorius
+Name[lv]=TerminÄla Emulators
+Name[mk]=ТерминалÑки емулатор
+Name[mn]=Терминал-Эмулатор
+Name[ms]=Pelagak Terminal
+Name[mt]=Emulatur ta' terminal
+Name[nb]=Terminalemulator
+Name[nds]=Terminal-Emulator
+Name[ne]=टरà¥à¤®à¤¿à¤¨à¤² इमà¥à¤²à¥‡à¤Ÿà¤°
+Name[nl]=Terminal
+Name[nn]=Terminalemulator
+Name[nso]=Moekisi wa Terminal
+Name[pa]=ਟਰਮੀਨਲ ਸਮਰੂਪ
+Name[pl]=Emulator terminala
+Name[pt]=Emulador de Terminal
+Name[pt_BR]=Emulador de Terminal
+Name[ro]=Emulator de terminal
+Name[ru]=ЭмулÑтор терминала
+Name[rw]= Mukuruzi Ihera
+Name[se]=Terminálemuláhtor
+Name[sk]=Emulátor terminálu
+Name[sl]=Terminalski emulator
+Name[sr]=Емулатор терминала
+Name[sr@Latn]=Emulator terminala
+Name[ss]=Silingiseli sesikhungo
+Name[sv]=Terminalemulator
+Name[ta]=கடைசி போடà¯à®Ÿà®¿à®¯à®¾à®³à®°à¯
+Name[te]=టెరà±à°®à°¿à°¨à°²à± à°Žà°®à±à°²à±‡à°Ÿà°°à±
+Name[tg]=ЭмулÑтори поёна
+Name[th]=โปรà¹à¸à¸£à¸¡à¸ˆà¸³à¸¥à¸­à¸‡à¹€à¸—อร์มินัล
+Name[tr]=Uçbirim Emülasyonu
+Name[tt]=Terminal Emulatorı
+Name[uk]=ЕмулÑÑ†Ñ–Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ð»Ñƒ
+Name[uz]=Terminal emulyatori
+Name[uz@cyrillic]=Терминал ÑмулÑтори
+Name[ven]=Mulingedzisi wa theminala
+Name[vi]=Mô phá»ng thiết bị cuối
+Name[wa]=Terminå
+Name[xh]=Umzami kulinganisela ngokulinganayo Wendlela yesiphelo
+Name[zh_CN]=终端仿真器
+Name[zh_TW]=終端機模擬程å¼
+Name[zu]=Umlingisi wangaphandle
diff --git a/konsole/tests/9x15.repertoire-utf8 b/konsole/tests/9x15.repertoire-utf8
new file mode 100644
index 000000000..f3c76b9d0
--- /dev/null
+++ b/konsole/tests/9x15.repertoire-utf8
@@ -0,0 +1,219 @@
+Characters available in 9x15, encoded in UTF-8 (RFC 2279):
+
+Basic Latin (U+0000-U+007F):
+
+ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
+`abcdefghijklmnopqrstuvwxyz{|}~
+
+Latin-1 Supplement (U+0080-U+00FF):
+
+ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ×ØÙÚÛÜÃÞß
+àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
+
+Latin Extended-A (U+0100-U+017F):
+
+Ä€ÄĂ㥹ĆćĈĉĊċČÄÄŽÄÄđĒēĔĕĖėĘęĚěĜÄĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ
+Å€ÅłŃńŅņŇňʼnŊŋŌÅÅŽÅÅőŒœŔŕŖŗŘřŚśŜÅŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
+
+Latin Extended-B (U+0180-U+024F):
+
+Æ€ÆƂƃƄƅƆƇƈƉƊƋƌÆÆŽÆÆƑƒƓƔƕƖƗƘƙƚƛƜÆƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ
+Ç€ÇǂǃDŽDždžLJLjljNJNjnjÇÇŽÇÇǑǒǓǔǕǖǗǘǙǚǛǜÇǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ
+È€ÈȂȃȄȅȆȇȈȉȊȋȌÈÈŽÈÈȑȒȓȔȕȖȗȘșȚțȜÈȞȟȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳ
+
+IPA Extensions (U+0250-U+02AF):
+
+ÉɑɒɓɔɕɖɗɘəɚɛɜÉɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀÊʂʃʄʅʆʇʈʉʊʋʌÊÊŽÊ
+ÊʑʒʓʔʕʖʗʘʙʚʛʜÊʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭ
+
+Spacing Modifier Letters (U+02B0-U+02FF):
+
+ʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿˀË˂˃˄˅ˆˇˈˉˊˋˌËËŽËËˑ˒˓˔˕˖˗˘˙˚˛˜Ë˞˟ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ
+
+Combining Diacritical Marks (U+0300-U+036F):
+
+Ì€Ì̂̃̄̅̆̇̈̉̊̋̌ÌÌŽÌÌ̛̖̗̘̙̜̑̒̓̔̕̚Ì̴̵̶̷̸̡̢̧̨̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾̿
+Í€Í͇͈͉͂̓̈́͆͊͋͌ͅÍÍŽÍ Í¡Í¢
+
+Greek (U+0370-U+03FF):
+
+ʹ͵ͺ;΄΅Ά·ΈΉΊΌΎÎÎΑΒΓΔΕΖΗΘΙΚΛΜÎΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπÏÏ‚
+στυφχψωϊϋόÏÏŽÏϑϒϓϔϕϖϗϚϛϜÏϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ
+
+Cyrillic (U+0400-U+04FF):
+
+ЀÐЂЃЄЅІЇЈЉЊЋЌÐÐŽÐÐБВГДЕЖЗИЙКЛМÐОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп
+Ñ€ÑтуфхцчшщъыьÑÑŽÑÑёђѓєѕіїјљњћќÑўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ
+Ò€ÒÒ‚ÒƒÒ„Ò…Ò†ÒˆÒ‰ÒŒÒÒŽÒÒÒ‘Ò’Ò“Ò”Ò•Ò–Ò—Ò˜Ò™ÒšÒ›ÒœÒÒžÒŸÒ Ò¡Ò¢Ò£Ò¤Ò¥Ò¦Ò§Ò¨Ò©ÒªÒ«Ò¬Ò­Ò®Ò¯Ò°Ò±Ò²Ò³Ò´ÒµÒ¶Ò·Ò¸Ò¹ÒºÒ»Ò¼Ò½Ò¾Ò¿Ó€ÓÓ‚
+ÓƒÓ„Ó‡ÓˆÓ‹ÓŒÓÓ‘Ó’Ó“Ó”Ó•Ó–Ó—Ó˜Ó™ÓšÓ›ÓœÓÓžÓŸÓ Ó¡Ó¢Ó£Ó¤Ó¥Ó¦Ó§Ó¨Ó©ÓªÓ«Ó¬Ó­Ó®Ó¯Ó°Ó±Ó²Ó³Ó´ÓµÓ¸Ó¹
+
+Armenian (U+0530-U+058F):
+
+Ô±Ô²Ô³Ô´ÔµÔ¶Ô·Ô¸Ô¹ÔºÔ»Ô¼Ô½Ô¾Ô¿Õ€ÕÕ‚ÕƒÕ„Õ…Õ†Õ‡ÕˆÕ‰ÕŠÕ‹ÕŒÕÕŽÕÕÕ‘Õ’Õ“Õ”Õ•Õ–Õ™ÕšÕ›ÕœÕÕžÕŸÕ¡Õ¢Õ£Õ¤Õ¥Õ¦Õ§Õ¨Õ©ÕªÕ«Õ¬Õ­Õ®Õ¯Õ°Õ±Õ²Õ³
+Õ´ÕµÕ¶Õ·Õ¸Õ¹ÕºÕ»Õ¼Õ½Õ¾Õ¿Ö€ÖÖ‚ÖƒÖ„Ö…Ö†Ö‡Ö‰ÖŠ
+
+Hebrew (U+0590-U+05FF):
+
+Ö°Ö±Ö²Ö³Ö´ÖµÖ¶Ö·Ö¸Ö¹Ö»Ö¼Ö½Ö¾Ö¿×€×ׂ׃ׄ×בגדהוזחטיךכל×מןנסעףפץצקרשתװױײ׳״
+
+Thai (U+0E00-U+0E7F):
+
+à¸à¸‚ฃคฅฆงจฉชซฌà¸à¸Žà¸à¸à¸‘ฒณดตถทธนบปผà¸à¸žà¸Ÿà¸ à¸¡à¸¢à¸£à¸¤à¸¥à¸¦à¸§à¸¨à¸©à¸ªà¸«à¸¬à¸­à¸®à¸¯à¸°à¸±à¸²à¸³à¸´à¸µà¸¶à¸·à¸¸à¸¹à¸ºà¸¿à¹€à¹à¹‚ใไ
+ๅๆ็่้๊๋์à¹à¹Žà¹à¹à¹‘๒๓๔๕๖๗๘๙๚๛
+
+Lao (U+0E80-U+0EFF):
+
+àºàº‚ຄງຈຊàºàº”ຕຖທນບປຜàºàºžàºŸàº¡àº¢àº£àº¥àº§àºªàº«àº­àº®àº¯àº°àº±àº²àº³àº´àºµàº¶àº·àº»àº¼àº½à»€à»à»‚ໃໄໆ່້໊໋à»à»à»‘໒໓໔໕໖໗໘໙ໜà»
+
+Georgian (U+10A0-U+10FF):
+
+ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀáƒáƒ‚ჃჄჅáƒáƒ‘გდევზთიკლმნáƒáƒžáƒŸáƒ áƒ¡áƒ¢áƒ£áƒ¤áƒ¥áƒ¦áƒ§áƒ¨áƒ©
+ცძწჭხჯჰჱჲჳჴჵჶ჻
+
+Ethiopic (U+1200-U+137F):
+
+ሀáˆáˆ‚ሃሄህሆለሉሊላሌáˆáˆŽáˆáˆáˆ‘ሒሓሔሕሖሗመሙሚማሜáˆáˆžáˆŸáˆ áˆ¡áˆ¢áˆ£áˆ¤áˆ¥áˆ¦áˆ§áˆ¨áˆ©áˆªáˆ«áˆ¬áˆ­áˆ®áˆ¯áˆ°áˆ±áˆ²áˆ³áˆ´áˆµáˆ¶áˆ·áˆ¸áˆ¹áˆºáˆ»áˆ¼áˆ½áˆ¾áˆ¿á‰€
+á‰á‰‚ቃቄቅቆቈቊቋቌá‰á‰á‰‘ቒቓቔቕቖቘቚቛቜá‰á‰ á‰¡á‰¢á‰£á‰¤á‰¥á‰¦á‰§á‰¨á‰©á‰ªá‰«á‰¬á‰­á‰®á‰¯á‰°á‰±á‰²á‰³á‰´á‰µá‰¶á‰·á‰¸á‰¹á‰ºá‰»á‰¼á‰½á‰¾á‰¿áŠ€áŠáŠ‚ኃኄኅኆኈኊ
+ኋኌáŠáŠáŠ‘ኒናኔንኖኗኘኙኚኛኜáŠáŠžáŠŸáŠ áŠ¡áŠ¢áŠ£áŠ¤áŠ¥áŠ¦áŠ§áŠ¨áŠ©áŠªáŠ«áŠ¬áŠ­áŠ®áŠ°áŠ²áŠ³áŠ´áŠµáŠ¸áŠ¹áŠºáŠ»áŠ¼áŠ½áŠ¾á‹€á‹‚ዃዄዅወዉዊዋዌá‹á‹Žá‹á‹‘ዒዓዔዕ
+ዖዘዙዚዛዜá‹á‹žá‹Ÿá‹ á‹¡á‹¢á‹£á‹¤á‹¥á‹¦á‹§á‹¨á‹©á‹ªá‹«á‹¬á‹­á‹®á‹°á‹±á‹²á‹³á‹´á‹µá‹¶á‹·á‹¸á‹¹á‹ºá‹»á‹¼á‹½á‹¾á‹¿áŒ€áŒáŒ‚ጃጄጅጆጇገጉጊጋጌáŒáŒŽáŒáŒ’ጓጔጕጘጙጚጛ
+ጜáŒáŒžáŒ áŒ¡áŒ¢áŒ£áŒ¤áŒ¥áŒ¦áŒ§áŒ¨áŒ©áŒªáŒ«áŒ¬áŒ­áŒ®áŒ¯áŒ°áŒ±áŒ²áŒ³áŒ´áŒµáŒ¶áŒ·áŒ¸áŒ¹áŒºáŒ»áŒ¼áŒ½áŒ¾áŒ¿á€áá‚áƒá„á…á†áˆá‰áŠá‹áŒááŽááá‘á’á“á”á•á–á—á˜á™ášá¡á¢á£
+á¤á¥á¦á§á¨á©áªá«á¬á­á®á¯á°á±á²á³á´áµá¶á·á¸á¹áºá»á¼
+
+Runic (U+16A0-U+16FF):
+
+ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀá›á›‚ᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌá›á›Žá›á›á›‘ᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜá›á›žá›Ÿ
+ᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ᛫᛬᛭ᛮᛯᛰ
+
+Latin Extended Additional (U+1E00-U+1EFF):
+
+Ḁá¸á¸‚ḃḄḅḆḇḈḉḊḋḌá¸á¸Žá¸á¸á¸‘ḒḓḔḕḖḗḘḙḚḛḜá¸á¸žá¸Ÿá¸ á¸¡á¸¢á¸£á¸¤á¸¥á¸¦á¸§á¸¨á¸©á¸ªá¸«á¸¬á¸­á¸®á¸¯á¸°á¸±á¸²á¸³á¸´á¸µá¸¶á¸·á¸¸á¸¹á¸ºá¸»á¸¼á¸½á¸¾á¸¿
+á¹€á¹á¹‚ṃṄṅṆṇṈṉṊṋṌá¹á¹Žá¹á¹á¹‘ṒṓṔṕṖṗṘṙṚṛṜá¹á¹žá¹Ÿá¹ á¹¡á¹¢á¹£á¹¤á¹¥á¹¦á¹§á¹¨á¹©á¹ªá¹«á¹¬á¹­á¹®á¹¯á¹°á¹±á¹²á¹³á¹´á¹µá¹¶á¹·á¹¸á¹¹á¹ºá¹»á¹¼á¹½á¹¾á¹¿
+Ẁáºáº‚ẃẄẅẆẇẈẉẊẋẌáºáºŽáºáºáº‘ẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀá»á»‚ể
+ỄễỆệỈỉỊịỌá»á»Žá»á»á»‘ỒồỔổỖỗỘộỚớỜá»á»žá»Ÿá» á»¡á»¢á»£á»¤á»¥á»¦á»§á»¨á»©á»ªá»«á»¬á»­á»®á»¯á»°á»±á»²á»³á»´á»µá»¶á»·á»¸á»¹
+
+Greek Extended (U+1F00-U+1FFF):
+
+á¼€á¼á¼‚ἃἄἅἆἇἈἉἊἋἌá¼á¼Žá¼á¼á¼‘ἒἓἔἕἘἙἚἛἜá¼á¼ á¼¡á¼¢á¼£á¼¤á¼¥á¼¦á¼§á¼¨á¼©á¼ªá¼«á¼¬á¼­á¼®á¼¯á¼°á¼±á¼²á¼³á¼´á¼µá¼¶á¼·á¼¸á¼¹á¼ºá¼»á¼¼á¼½á¼¾á¼¿á½€á½á½‚ὃ
+ὄὅὈὉὊὋὌá½á½á½‘ὒὓὔὕὖὗὙὛá½á½Ÿá½ á½¡á½¢á½£á½¤á½¥á½¦á½§á½¨á½©á½ªá½«á½¬á½­á½®á½¯á½°á½±á½²á½³á½´á½µá½¶á½·á½¸á½¹á½ºá½»á½¼á½½á¾€á¾á¾‚ᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌá¾
+ᾎá¾á¾á¾‘ᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜá¾á¾žá¾Ÿá¾ á¾¡á¾¢á¾£á¾¤á¾¥á¾¦á¾§á¾¨á¾©á¾ªá¾«á¾¬á¾­á¾®á¾¯á¾°á¾±á¾²á¾³á¾´á¾¶á¾·á¾¸á¾¹á¾ºá¾»á¾¼á¾½á¾¾á¾¿á¿€á¿á¿‚ῃῄῆῇῈΈῊΉῌá¿á¿Žá¿
+á¿á¿‘ῒΐῖῗῘῙῚΊá¿á¿žá¿Ÿá¿ á¿¡á¿¢á¿£á¿¤á¿¥á¿¦á¿§á¿¨á¿©á¿ªá¿«á¿¬á¿­á¿®á¿¯á¿²á¿³á¿´á¿¶á¿·á¿¸á¿¹á¿ºá¿»á¿¼á¿½á¿¾
+
+General Punctuation (U+2000-U+206F):
+
+ â€â€‚        â€â€‘‒–—―‖‗‘’‚‛“â€â€žâ€Ÿâ€ â€¡â€¢â€£â€¤â€¥â€¦â€§â€¯â€°â€±â€²â€³â€´â€µâ€¶â€·â€¸â€¹â€ºâ€»â€¼â€½â€¾â€¿â€ââ‚âƒâ„â…â†âˆâ‰âŠâ‹âŒ
+
+Superscripts and Subscripts (U+2070-U+209F):
+
+â°â´âµâ¶â·â¸â¹âºâ»â¼â½â¾â¿â‚€â‚₂₃₄₅₆₇₈₉₊₋₌â‚â‚Ž
+
+Currency Symbols (U+20A0-U+20CF):
+
+₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯
+
+Combining Marks for Symbols (U+20D0-U+20FF):
+
+âƒâƒ‘⃒⃓⃘⃙⃚⃔⃕⃖⃗⃛⃜âƒâƒžâƒŸâƒ âƒ¡âƒ¢âƒ£
+
+Letterlike Symbols (U+2100-U+214F):
+
+â„€â„ℂ℃℄℅℆ℇ℈℉ℊℋℌâ„â„Žâ„â„ℑℒℓ℔ℕ№℗℘ℙℚℛℜâ„℞℟℠℡™℣ℤ℥Ω℧ℨ℩KÅℬℭ℮ℯℰℱℲℳℴℵℶℷℸℹ℺
+
+Number Forms (U+2150-U+218F):
+
+⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜â…⅞⅟ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀâ†â†‚Ↄ
+
+Arrows (U+2190-U+21FF):
+
+â†â†‘→↓↔↕↖↗↘↙↚↛↜â†â†žâ†Ÿâ† â†¡â†¢â†£â†¤â†¥â†¦â†§â†¨â†©â†ªâ†«â†¬â†­â†®â†¯â†°â†±â†²â†³â†´â†µâ†¶â†·â†¸â†¹â†ºâ†»â†¼â†½â†¾â†¿â‡€â‡â‡‚⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌â‡â‡Žâ‡
+â‡â‡‘⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜â‡â‡žâ‡Ÿâ‡ â‡¡â‡¢â‡£â‡¤â‡¥â‡¦â‡§â‡¨â‡©â‡ªâ‡«â‡¬â‡­â‡®â‡¯â‡°â‡±â‡²â‡³
+
+Mathematical Operators (U+2200-U+22FF):
+
+∀âˆâˆ‚∃∄∅∆∇∈∉∊∋∌âˆâˆŽâˆâˆâˆ‘−∓∔∕∖∗∘∙√∛∜âˆâˆžâˆŸâˆ âˆ¡âˆ¢âˆ£âˆ¤âˆ¥âˆ¦âˆ§âˆ¨âˆ©âˆªâˆ«âˆ¬âˆ­âˆ®âˆ¯âˆ°âˆ±âˆ²âˆ³âˆ´âˆµâˆ¶âˆ·âˆ¸âˆ¹âˆºâˆ»âˆ¼âˆ½âˆ¾âˆ¿
+≀â‰â‰‚≃≄≅≆≇≈≉≊≋≌â‰â‰Žâ‰â‰â‰‘≒≓≔≕≖≗≘≙≚≛≜â‰â‰žâ‰Ÿâ‰ â‰¡â‰¢â‰£â‰¤â‰¥â‰¦â‰§â‰¨â‰©â‰ªâ‰«â‰¬â‰­â‰®â‰¯â‰°â‰±â‰²â‰³â‰´â‰µâ‰¶â‰·â‰¸â‰¹â‰ºâ‰»â‰¼â‰½â‰¾â‰¿
+⊀âŠâŠ‚⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌âŠâŠŽâŠâŠâŠ‘⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜âŠâŠžâŠŸâŠ âŠ¡âŠ¢âŠ£âŠ¤âŠ¥âŠ¦âŠ§âŠ¨âŠ©âŠªâŠ«âŠ¬âŠ­âŠ®âŠ¯âŠ°âŠ±âŠ²âŠ³âŠ´âŠµâŠ¶âŠ·âŠ¸âŠ¹âŠºâŠ»âŠ¼âŠ½âŠ¾âŠ¿
+â‹€â‹â‹‚⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌â‹â‹Žâ‹â‹â‹‘⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜â‹â‹žâ‹Ÿâ‹ â‹¡â‹¢â‹£â‹¤â‹¥â‹¦â‹§â‹¨â‹©â‹ªâ‹«â‹¬â‹­â‹®â‹¯â‹°â‹±
+
+Miscellaneous Technical (U+2300-U+23FF):
+
+⌀âŒâŒ‚⌃⌄⌅⌆⌇⌈⌉⌊⌋⌌âŒâŒŽâŒâŒâŒ‘⌒⌓⌔⌕⌖⌗⌘⌙⌚⌛⌜âŒâŒžâŒŸâŒ âŒ¡âŒ¢âŒ£âŒ¤âŒ¥âŒ¦âŒ§âŒ¨âŒ©âŒªâŒ«âŒ¬âŒ­âŒ®âŒ¯âŒ°âŒ±âŒ²âŒ³âŒ´âŒµâŒ¶âŒ·âŒ¸âŒ¹âŒºâŒ»âŒ¼âŒ½âŒ¾âŒ¿
+â€ââ‚âƒâ„â…â†â‡âˆâ‰âŠâ‹âŒââŽâââ‘â’â“â”â•â–â—â˜â™âšâ›âœââžâŸâ â¡â¢â£â¤â¥â¦â§â¨â©âªâ«â¬â­â®â¯â°â±â²â³â´âµâ¶â·â¸â¹âºâ»â½â¾â¿âŽ€
+âŽâŽ‚⎃⎄⎅⎆⎇⎈⎉⎊⎋⎌âŽâŽŽâŽâŽâŽ‘⎒⎓⎔⎕⎖⎗⎘⎙⎚
+
+Control Pictures (U+2400-U+243F):
+
+â€ââ‚âƒâ„â…â†â‡âˆâ‰âŠâ‹âŒââŽâââ‘â’â“â”â•â–â—â˜â™âšâ›âœââžâŸâ â¡â¢â£â¤â¥â¦
+
+Optical Character Recognition (U+2440-U+245F):
+
+â‘€â‘⑂⑃⑄⑅⑆⑇⑈⑉⑊
+
+Enclosed Alphanumerics (U+2460-U+24FF):
+
+①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀â’⒂⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌â’â’Žâ’â’⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⒜â’â’žâ’Ÿ
+⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀâ“ⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌâ“â“Žâ“â“ⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜâ“â“žâ“Ÿ
+ⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ⓪
+
+Box Drawing (U+2500-U+257F):
+
+─â”│┃┄┅┆┇┈┉┊┋┌â”┎â”â”┑┒┓└┕┖┗┘┙┚┛├â”┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿
+â•€â•â•‚╃╄╅╆╇╈╉╊╋╌â•â•Žâ•â•â•‘╒╓╔╕╖╗╘╙╚╛╜â•â•žâ•Ÿâ• â•¡â•¢â•£â•¤â•¥â•¦â•§â•¨â•©â•ªâ•«â•¬â•­â•®â•¯â•°â•±â•²â•³â•´â•µâ•¶â•·â•¸â•¹â•ºâ•»â•¼â•½â•¾â•¿
+
+Block Elements (U+2580-U+259F):
+
+â–€â–▂▃▄▅▆▇█▉▊▋▌â–â–Žâ–â–░▒▓▔▕
+
+Geometric Shapes (U+25A0-U+25FF):
+
+■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱▲△▴▵▶▷▸▹►▻▼▽▾▿◀â—◂◃◄◅◆◇◈◉◊○◌â—â—Žâ—â—◑◒◓◔◕◖◗◘◙◚◛◜â—â—žâ—Ÿ
+◠◡◢◣◤◥◦◧◨◩◪◫◬◭◮◯◰◱◲◳◴◵◶◷
+
+Miscellaneous Symbols (U+2600-U+26FF):
+
+☀â˜â˜‚☃☄★☆☇☈☉☊☋☌â˜â˜Žâ˜â˜â˜‘☒☓☙☚☛☜â˜â˜žâ˜Ÿâ˜ â˜¡â˜¢â˜£â˜¤â˜¥â˜¦â˜§â˜¨â˜©â˜ªâ˜«â˜¬â˜­â˜®â˜¯â˜°â˜±â˜²â˜³â˜´â˜µâ˜¶â˜·â˜¸â˜¹â˜ºâ˜»â˜¼â˜½â˜¾â˜¿â™€â™â™‚♃♄
+♅♆♇♈♉♊♋♌â™â™Žâ™â™â™‘♒♓♔♕♖♗♘♙♚♛♜â™â™žâ™Ÿâ™ â™¡â™¢â™£â™¤â™¥â™¦â™§â™¨â™©â™ªâ™«â™¬â™­â™®â™¯â™°â™±
+
+Dingbats (U+2700-U+27BF):
+
+âœâœ‚✃✄✆✇✈✉✑✒✓✔✕✖✗✘✙✚✛✜âœâœžâœŸâœ âœ¡âœ¢âœ£âœ¤âœ¥âœ¦âœ§âœ©âœªâœ«âœ¬âœ­âœ®âœ¯âœ°âœ±âœ²âœ³âœ´âœµâœ¶âœ·âœ¸âœ¹âœºâœ»âœ¼âœ½âœ¾âœ¿âƒâ„â…â†â‡âˆâ‰âŠâ‹â
+âââ‘â’â–â˜â™âšâ›âœââžâ¡â¢â£â¤â¥â¦â§â¶â·â¸â¹âºâ»â¼â½â¾â¿âž€âžâž‚➃➄➅➆➇➈➉➊➋➌âžâžŽâžâžâž‘➒➓➔➘➙➚➛➜âžâžžâžŸâž âž¡âž¢âž£âž¤âž¥
+➦➧➨➩➪➫➬➭➮➯➱➲➳➴➵➶➷➸➹➺➻➼➽➾
+
+Braille Patterns (U+2800-U+28FF):
+
+â €â â ‚⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌â â Žâ â â ‘⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜â â žâ Ÿâ  â ¡â ¢â £â ¤â ¥â ¦â §â ¨â ©â ªâ «â ¬â ­â ®â ¯â °â ±â ²â ³â ´â µâ ¶â ·â ¸â ¹â ºâ »â ¼â ½â ¾â ¿
+â¡€â¡â¡‚⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌â¡â¡Žâ¡â¡â¡‘⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜â¡â¡žâ¡Ÿâ¡ â¡¡â¡¢â¡£â¡¤â¡¥â¡¦â¡§â¡¨â¡©â¡ªâ¡«â¡¬â¡­â¡®â¡¯â¡°â¡±â¡²â¡³â¡´â¡µâ¡¶â¡·â¡¸â¡¹â¡ºâ¡»â¡¼â¡½â¡¾â¡¿
+⢀â¢â¢‚⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌â¢â¢Žâ¢â¢â¢‘⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜â¢â¢žâ¢Ÿâ¢ â¢¡â¢¢â¢£â¢¤â¢¥â¢¦â¢§â¢¨â¢©â¢ªâ¢«â¢¬â¢­â¢®â¢¯â¢°â¢±â¢²â¢³â¢´â¢µâ¢¶â¢·â¢¸â¢¹â¢ºâ¢»â¢¼â¢½â¢¾â¢¿
+⣀â£â£‚⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌â£â£Žâ£â£â£‘⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜â£â£žâ£Ÿâ£ â£¡â£¢â££â£¤â£¥â£¦â£§â£¨â£©â£ªâ£«â£¬â£­â£®â£¯â£°â£±â£²â£³â£´â£µâ£¶â£·â£¸â£¹â£ºâ£»â£¼â£½â£¾â£¿
+
+CJK Symbols and Punctuation (U+3000-U+303F):
+
+ã€ã€‚《》〓〚〛〜〿
+
+Hiragana (U+3040-U+309F):
+
+ãã‚ãƒã„ã…ã†ã‡ãˆã‰ãŠã‹ãŒããŽããã‘ã’ã“ã”ã•ã–ã—ã˜ã™ãšã›ãœããžãŸã 
+ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ã­ã®ã¯ã°ã±ã²ã³ã´ãµã¶ã·ã¸ã¹ãºã»ã¼ã½ã¾ã¿ã‚€
+ã‚もゃやゅゆょよらりるれã‚ã‚Žã‚ã‚ゑをんゔ゙゚゛゜ã‚ã‚ž
+
+Private Use (U+E000-U+F8FF):
+
+î€î€‚î€î€Žî€î€î€‘îœîœ‚îœîœŽîœîœîœ‘îœîœžîœŸîœ îœ¡îœ¢îœ£îœ¤îœ¥
+
+
+Alphabetic Presentation Forms (U+FB00-U+FB4F):
+
+ffï¬ï¬‚ffifflſtstﬓﬔﬕﬖﬗï¬ï¬žï¬Ÿï¬ ï¬¡ï¬¢ï¬£ï¬¤ï¬¥ï¬¦ï¬§ï¬¨ï¬©ï¬ªï¬«ï¬¬ï¬­ï¬®ï¬¯ï¬°ï¬±ï¬²ï¬³ï¬´ï¬µï¬¶ï¬¸ï¬¹ï¬ºï¬»ï¬¼ï¬¾ï­€ï­ï­ƒï­„צּקּרּשּתּוֹבֿï­ï­Žï­
+
+Combining Half Marks (U+FE20-U+FE2F):
+
+︠︡︢︣
+
+Halfwidth and Fullwidth Forms (U+FF00-U+FFEF):
+
+。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタï¾ï¾‚テトナニヌネノハヒフï¾ï¾Žï¾ï¾ï¾‘メモヤユヨラリルレロワï¾ï¾žï¾Ÿ
+
+Specials (U+FFF0-U+FFFD):
+
+�
diff --git a/konsole/tests/Makefile b/konsole/tests/Makefile
new file mode 100644
index 000000000..e6ff84064
--- /dev/null
+++ b/konsole/tests/Makefile
@@ -0,0 +1,15 @@
+CFLAGS = -O
+OBJS = main.o esc.o
+
+all: vttest quote
+
+vttest: $(OBJS)
+ cc $(CFLAGS) -o vttest $(OBJS)
+
+install: vttest
+ cp vttest.1 /usr/man/man1/vttest.1
+ cp vttest /usr/local/bin/vttest
+ strip /usr/local/bin/vttest
+
+clean:
+ rm -f $(OBJS) vttest foo core lint tags a.out
diff --git a/konsole/tests/README.vttest b/konsole/tests/README.vttest
new file mode 100644
index 000000000..f233a7ee5
--- /dev/null
+++ b/konsole/tests/README.vttest
@@ -0,0 +1,57 @@
+NOTES FROM THE MOD.SOURCES MODERATOR:
+I split the source up into the three separate pieces it now is.
+In doing this, I put lines like "int reading;" in a header file
+that both C modules include. If your Unix requires one of these
+to be "extern int reading;" then you will have some editing to do.
+Also note that this program uses FIONREAD, which must be implemented
+differently in SystemV, etc., and check out the setjmp() call...
+ /Rich $alz
+Oh, yeah: I also wrote the Makefile and manpage, such as they are.
+-------------------------------------------------------------------
+
+This is a program to test the compatibility (or to demonstrate the
+non-compatibility) of so-called "VT100-compatible" terminals. In
+conformance of the good old hacker traditions, the only documentation
+of this program is the source code itself. To understand it, you also
+need a copy of the original VT100 manual from DEC.
+
+Comments and bug reports: Since this is a release (via USENET) to the
+whole world, a lot of people are going to have opinions and fresh
+ideas about it. (What -- bugs in MY program? Aww...) I can't deal
+with everyone sending me a hacked version, but if you have found a
+serious bug, or ported it to VMS, do tell me. I can't promise any new
+version release, though. From this version on (1.7b) VTTEST will have
+to live its own life without its father holding its hand.
+
+My address is:
+
+Network-mail address: (mcvax,seismo)!enea!suadb!lindberg
+
+Real-world-mail address: Per Lindberg
+ QZ, Stockholm University Computing Center
+ Box 27322
+ S - 102 54 Stockholm
+ SWEDEN
+
+The original version of this program is written for the Sargasso C
+compiler for the DECsystem-10. Many thanks to all sales persons with
+quote VT100-compatible unquote terminals, who prompted me to write
+this program, and also to:
+
+-- Bo Kleve, LIDAC, Linkoping University, Sweden
+ for the portation to DECSYSTEM-20 with the Sargasso C compiler
+
+-- Johan Widen, TTDS, Royal Institute of Technology, Stockholm, Sweden
+ for the portation to various UNIX systems (incl. System III and Xenix)
+
+-- Russ Herman, AES Data Inc., Missisauga, Ont. Canada
+ for fixes and code for the VT102 test
+
+Thanx also to JMR "Gremlin" at KTH, and Goran Wallberg at QZ
+for suggestions, bug fixes, etc.
+
+This program does not have support for all the different variations
+of VT100, like VT125, VT131 nor the new VT200 series. Feel free to
+add that yourself. Happy Hacking!
+
+ /TMP
diff --git a/konsole/tests/audit.c b/konsole/tests/audit.c
new file mode 100644
index 000000000..7a98e9b30
--- /dev/null
+++ b/konsole/tests/audit.c
@@ -0,0 +1,53 @@
+/*
+
+ This is a tiny test program that can be used to track down
+ strange effects of the emulation.
+
+ Make:
+
+ - gcc -o audit audit.c
+
+ Usage:
+
+ - In TEShell.C let syslog be stdout.
+ - konsole > ttt
+ - produce the effect in question.
+ - run this program.
+ pressing any key advances the audit
+ ^C terminates.
+
+ You need to make sure that the size of the screen matches
+ the one being debugged.
+
+*/
+
+
+#include <stdio.h>
+#include <termios.h>
+#include <unistd.h>
+
+struct termios save;
+struct termios curr;
+
+#define HERE fprintf(stderr,"%s(%d): here.\n",__FILE__,__LINE__)
+
+main()
+{ int cc;
+ FILE* sysin = fopen("ttt","r");
+ tcgetattr(0, &save);
+ tcgetattr(0, &curr);
+ cfmakeraw(&curr);
+ tcsetattr(0, TCSANOW, &curr);
+ cc = fgetc(sysin);
+ while( cc > 0 )
+ { int tmp;
+ while (cc > 0)
+ {
+ fputc(cc,stdout); cc = fgetc(sysin);
+ if (cc == 0x1b) break;
+ }
+ tmp = fgetc(stdin);
+ if (tmp == 3) break;
+ }
+ tcsetattr(0, TCSANOW, &save);
+}
diff --git a/konsole/tests/bulktest.sh b/konsole/tests/bulktest.sh
new file mode 100755
index 000000000..a56348b12
--- /dev/null
+++ b/konsole/tests/bulktest.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+while true; do echo -n x; done
diff --git a/konsole/tests/color-spaces.pl b/konsole/tests/color-spaces.pl
new file mode 100644
index 000000000..8774c0446
--- /dev/null
+++ b/konsole/tests/color-spaces.pl
@@ -0,0 +1,67 @@
+#!/usr/bin/perl
+# Author: Todd Larason <jtl@molehill.org>
+# $XFree86: xc/programs/xterm/vttests/256colors2.pl,v 1.1 1999/07/11 08:49:54 dawes Exp $
+
+print "256 color mode\n\n";
+
+# display back ground colors
+
+for ($fgbg = 38; $fgbg <= 48; $fgbg +=10) {
+
+# first the system ones:
+print "System colors:\n";
+for ($color = 0; $color < 8; $color++) {
+ print "\x1b[${fgbg};5;${color}m::";
+}
+print "\x1b[0m\n";
+for ($color = 8; $color < 16; $color++) {
+ print "\x1b[${fgbg};5;${color}m::";
+}
+print "\x1b[0m\n\n";
+
+# now the color cube
+print "Color cube, 6x6x6:\n";
+for ($green = 0; $green < 6; $green++) {
+ for ($red = 0; $red < 6; $red++) {
+ for ($blue = 0; $blue < 6; $blue++) {
+ $color = 16 + ($red * 36) + ($green * 6) + $blue;
+ print "\x1b[${fgbg};5;${color}m::";
+ }
+ print "\x1b[0m ";
+ }
+ print "\n";
+}
+
+# now the grayscale ramp
+print "Grayscale ramp:\n";
+for ($color = 232; $color < 256; $color++) {
+ print "\x1b[${fgbg};5;${color}m::";
+}
+print "\x1b[0m\n\n";
+
+}
+
+print "Examples for the 3-byte color mode\n\n";
+
+for ($fgbg = 38; $fgbg <= 48; $fgbg +=10) {
+
+# now the color cube
+print "Color cube\n";
+for ($green = 0; $green < 256; $green+=51) {
+ for ($red = 0; $red < 256; $red+=51) {
+ for ($blue = 0; $blue < 256; $blue+=51) {
+ print "\x1b[${fgbg};2;${red};${green};${blue}m::";
+ }
+ print "\x1b[0m ";
+ }
+ print "\n";
+}
+
+# now the grayscale ramp
+print "Grayscale ramp:\n";
+for ($gray = 8; $gray < 256; $gray+=10) {
+ print "\x1b[${fgbg};2;${gray};${gray};${gray}m::";
+}
+print "\x1b[0m\n\n";
+
+}
diff --git a/konsole/tests/colortest.sh b/konsole/tests/colortest.sh
new file mode 100755
index 000000000..36a1336dc
--- /dev/null
+++ b/konsole/tests/colortest.sh
@@ -0,0 +1,31 @@
+#!/bin/bash --
+#
+# display ANSI colours and test bold/blink attributes
+# orginates from Eterm distribution
+#-------------------------------------------------------------------------
+
+ESC=$'\x1b'
+CSI="${ESC}["
+RST="${CSI}m"
+
+echo ""; echo "${RST}"
+echo " 40 41 42 43 44 45 46 47 49"
+echo " 40 41 42 43 44 45 46 47 49"
+for fg in 30 31 32 33 34 35 36 37 39 90 91 92 93 94 95 96 97
+do
+ l1="$fg ";
+ l2=" ";
+ l3=" ";
+ l4=" ";
+ for bg in 40 41 42 43 44 45 46 47 49
+ do
+ l1="${l1}${CSI}${fg};${bg}m Normal ${RST}"
+ l2="${l2}${CSI}${fg};${bg};1m Bold ${RST}"
+ l3="${l3}${CSI}${fg};${bg};5m Blink ${RST}"
+ l4="${l4}${CSI}${fg};${bg};1;5m Bold! ${RST}"
+ done
+ echo "$l1"
+ echo "$l2"
+ echo "$l3"
+ echo "$l4"
+done
diff --git a/konsole/tests/ct2 b/konsole/tests/ct2
new file mode 100755
index 000000000..8a654eda6
--- /dev/null
+++ b/konsole/tests/ct2
@@ -0,0 +1,20 @@
+#!/bin/sh --
+#
+# display ANSI colours and test bold/blink attributes
+# orginates from Eterm distribution
+#-------------------------------------------------------------------------
+
+echo ""; echo ""
+echo " 40 41 42 43 44 45 46 47 49"
+for fg in 30 31 32 33 34 35 36 37 39
+do
+ l1=" $fg ";
+ l2=" $fg ";
+ for bg in 40 41 42 43 44 45 46 47 49
+ do
+ l1="${l1}[${fg};${bg}m xx "
+ l2="${l2}[${fg};${bg};1m XX "
+ done
+ echo "$l1"
+ echo "$l2"
+done
diff --git a/konsole/tests/esc.c b/konsole/tests/esc.c
new file mode 100644
index 000000000..520946b50
--- /dev/null
+++ b/konsole/tests/esc.c
@@ -0,0 +1,398 @@
+#include "header.h"
+
+println(s) char *s; {
+ printf("%s\n", s);
+}
+
+esc(s) char *s; {
+ printf("%c%s", 27, s);
+}
+
+esc2(s1, s2) char s1, s2; {
+ printf("%c%s%s", 27, s1, s2);
+}
+
+brcstr(ps, c) char *ps, c; {
+ printf("%c[%s%c", 27, ps, c);
+}
+
+brc(pn,c) int pn; char c; {
+ printf("%c[%d%c", 27, pn, c);
+}
+
+brc2(pn1, pn2 ,c) int pn1, pn2; char c; {
+ printf("%c[%d;%d%c", 27, pn1, pn2, c);
+}
+
+cub(pn) int pn; { /* Cursor Backward */
+ brc(pn,'D');
+}
+cud(pn) int pn; { /* Cursor Down */
+ brc(pn,'B');
+}
+cuf(pn) int pn; { /* Cursor Forward */
+ brc(pn,'C');
+}
+cup(pn1, pn2) int pn1, pn2; { /* Cursor Position */
+ brc2(pn1, pn2, 'H');
+}
+cuu(pn) int pn; { /* Cursor Up */
+ brc(pn,'A');
+}
+da() { /* Device Attributes */
+ brc(0,'c');
+}
+decaln() { /* Screen Alignment Display */
+ esc("#8");
+}
+decdhl(lower) int lower; { /* Double Height Line (also double width) */
+ if (lower) esc("#4");
+ else esc("#3");
+}
+decdwl() { /* Double Wide Line */
+ esc("#6");
+}
+deckpam() { /* Keypad Application Mode */
+ esc("=");
+}
+deckpnm() { /* Keypad Numeric Mode */
+ esc(">");
+}
+decll(ps) char *ps; { /* Load LEDs */
+ brcstr(ps, 'q');
+}
+decrc() { /* Restore Cursor */
+ esc("8");
+}
+decreqtparm(pn) int pn; { /* Request Terminal Parameters */
+ brc(pn,'x');
+}
+decsc() { /* Save Cursor */
+ esc("7");
+}
+decstbm(pn1, pn2) int pn1, pn2; { /* Set Top and Bottom Margins */
+ if (pn1 || pn2) brc2(pn1, pn2, 'r');
+ else esc("[r");
+ /* Good for >24-line terminals */
+}
+decswl() { /* Single With Line */
+ esc("#5");
+}
+dectst(pn) int pn; { /* Invoke Confidence Test */
+ brc2(2, pn, 'y');
+}
+dsr(pn) int pn; { /* Device Status Report */
+ brc(pn, 'n');
+}
+ed(pn) int pn; { /* Erase in Display */
+ brc(pn, 'J');
+}
+el(pn) int pn; { /* Erase in Line */
+ brc(pn,'K');
+}
+hts() { /* Horizontal Tabulation Set */
+ esc("H");
+}
+hvp(pn1, pn2) int pn1, pn2; { /* Horizontal and Vertical Position */
+ brc2(pn1, pn2, 'f');
+}
+ind() { /* Index */
+ esc("D");
+}
+nel() { /* Next Line */
+ esc("E");
+}
+ri() { /* Reverse Index */
+ esc("M");
+}
+ris() { /* Reset to Initial State */
+ esc("c");
+}
+rm(ps) char *ps; { /* Reset Mode */
+ brcstr(ps, 'l');
+}
+scs(g,c) int g; char c; { /* Select character Set */
+ printf("%c%c%c%c%c%c%c", 27, g ? ')' : '(', c,
+ 27, g ? '(' : ')', 'B',
+ g ? 14 : 15);
+}
+sgr(ps) char *ps; { /* Select Graphic Rendition */
+ brcstr(ps, 'm');
+}
+sm(ps) char *ps; { /* Set Mode */
+ brcstr(ps, 'h');
+}
+tbc(pn) int pn; { /* Tabulation Clear */
+ brc(pn, 'g');
+}
+
+vt52cup(l,c) int l,c; {
+ printf("%cY%c%c", 27, l + 31, c + 31);
+}
+
+char inchar() {
+
+ /*
+ * Wait until a character is typed on the terminal
+ * then read it, without waiting for CR.
+ */
+
+#ifdef UNIX
+ int lval, waittime, getpid(); static int val; char ch;
+
+ fflush(stdout);
+ lval = val;
+ brkrd = 0;
+ reading = 1;
+ read(0,&ch,1);
+ reading = 0;
+ if (brkrd)
+ val = 0177;
+ else
+ val = ch;
+ if ((val==0177) && (val==lval))
+ kill(getpid(), (int) SIGTERM);
+#endif
+#ifdef SARG10
+ int val, waittime;
+
+ waittime = 0;
+ while(!uuo(051,2,&val)) { /* TTCALL 2, (INCHRS) */
+ zleep(100); /* Wait 0.1 seconds */
+ if ((waittime += ttymode) > 600) /* Time-out, in case */
+ return('\177'); /* of hung in ttybin(1) */
+ }
+#endif
+#ifdef SARG20 /* try to fix a time-out function */
+ int val, waittime;
+
+ waittime = 0;
+ while(jsys(SIBE,2,_PRIIN) == 0) { /* Is input empty? */
+ zleep(100);
+ if ((waittime += ttymode) > 600)
+ return('\177');
+ }
+ ejsys(BIN,_PRIIN);
+ val = jsac[2];
+#endif
+ return(val);
+}
+
+char *instr() {
+
+ /*
+ * Get an unfinished string from the terminal:
+ * wait until a character is typed on the terminal,
+ * then read it, and all other available characters.
+ * Return a pointer to that string.
+ */
+
+
+ int i, val, crflag; long l1; char ch;
+ static char result[80];
+
+ i = 0;
+ result[i++] = inchar();
+/* Wait 0.1 seconds (1 second in vanilla UNIX) */
+#ifdef SARG10
+ if (trmop(01031,0) < 5) zleep(500); /* wait longer if low speed */
+ else zleep(100);
+#else
+ zleep(100);
+#endif
+#ifdef UNIX
+ fflush(stdout);
+#ifdef XENIX
+ while(rdchk(0)) {
+ read(0,result+i,1);
+ if (i++ == 78) break;
+ }
+#else
+#ifdef SIII
+ while(read(2,result+i,1) == 1)
+ if (i++ == 78) break;
+#else
+ while(ioctl(0,FIONREAD,&l1), l1 > 0L) {
+ while(l1-- > 0L) {
+ read(0,result+i,1);
+ if (i++ == 78) goto out1;
+ }
+ }
+out1:
+#endif
+#endif
+#endif
+#ifdef SARG10
+ while(uuo(051,2,&val)) { /* TTCALL 2, (INCHRS) */
+ if (!(val == '\012' && crflag)) /* TOPS-10 adds LF to CR */
+ result[i++] = val;
+ crflag = val == '\015';
+ if (i == 79) break;
+ zleep(50); /* Wait 0.05 seconds */
+ }
+#endif
+#ifdef SARG20
+ while(jsys(SIBE,2,_PRIIN) != 0) { /* read input until buffer is empty */
+ ejsys(BIN,_PRIIN);
+ result[i++] = jsac[2];
+ if (i == 79) break;
+ zleep(50); /* Wait 0.05 seconds */
+ }
+#endif
+ result[i] = '\0';
+ return(result);
+}
+
+ttybin(bin) int bin; {
+#ifdef SARG10
+ #define OPEN 050
+ #define IO_MOD 0000017
+ #define _IOPIM 2
+ #define _IOASC 0
+ #define _TOPAG 01021
+ #define _TOSET 01000
+
+ int v;
+ static int arglst[] = {
+ _IOPIM,
+ `TTY`,
+ 0
+ };
+ arglst[0] = bin ? _IOPIM : _IOASC;
+ v = uuo(OPEN, 1, &arglst[0]);
+ if (!v) { printf("OPEN failed"); exit(); }
+ trmop(_TOPAG + _TOSET, bin ? 0 : 1);
+ ttymode = bin;
+#endif
+#ifdef SARG20
+ /* TTYBIN will set the line in BINARY/ASCII mode
+ * BINARY mode is needed to send control characters
+ * Bit 28 must be 0 (we don't flip it).
+ * Bit 29 is used for the mode change.
+ */
+
+ #define _TTASC 0000100
+ #define _MOXOF 0000043
+
+ int v;
+
+ ejsys(RFMOD,_CTTRM);
+ v = ejsys(SFMOD,_CTTRM, bin ? (~_TTASC & jsac[2]) : (_TTASC | jsac[2]));
+ if (v) { printf("SFMOD failed"); exit(); }
+ v = ejsys(MTOPR,_CTTRM,_MOXOF,0);
+ if (v) { printf("MTOPR failed"); exit(); }
+#endif
+}
+
+#ifdef SARG20
+/*
+ * SUPERBIN turns off/on all input character interrupts
+ * This affects ^C, ^O, ^T
+ * Beware where and how you use it !!!!!!!
+ */
+
+superbin(bin) int bin; {
+ int v;
+
+ v = ejsys(STIW,(0//-5), bin ? 0 : -1);
+ if (v) { printf("STIW superbinary setting failed"); exit(); }
+ ttymode = bin;
+}
+
+/*
+ * PAGE affects the ^S/^Q handshake.
+ * Set bit 34 to turn it on. Clear it for off.
+ */
+
+page(bin) int bin; {
+ int v;
+
+ #define TT_PGM 0000002
+
+ ejsys(RFMOD,_CTTRM); /* Get the current terminal status */
+ v = ejsys(STPAR,_CTTRM, bin ? (TT_PGM | jsac[2]) : (~TT_PGM & jsac[2]));
+ if (v) { printf("STPAR failed"); exit(); }
+}
+#endif
+
+trmop(fc,arg) int fc, arg; {
+#ifdef SARG10
+ int retvalp;
+ int arglst[3];
+
+ /* TRMOP is a TOPS-10 monitor call that does things to the terminal. */
+
+ /* Find out TTY nbr (PA1050 barfs if TRMOP get -1 instead of udx) */
+ /* A TRMNO monitor call returns the udx (Universal Device Index) */
+
+ arglst[0] = fc; /* function code */
+ arglst[1] = calli(0115, -1); /* udx, TRMNO. UUO */
+ arglst[2] = arg; /* Optional argument */
+
+ if (calli(0116, 3 // &arglst[0], &retvalp)) /* TRMOP. UUO */
+ return (retvalp);
+ else {
+ printf("?Error return in TRMOP.");
+ exit();
+ }
+#endif
+}
+
+inputline(s) char *s; {
+ scanf("%s",s);
+#ifdef SARG10
+ readnl();
+#endif
+#ifdef SARG20
+ readnl();
+#endif
+}
+
+inflush() {
+
+ /*
+ * Flush input buffer, make sure no pending input character
+ */
+
+ int val;
+
+#ifdef UNIX
+#ifdef XENIX
+ while(rdchk(0)) read(0,&val,1);
+#else
+#ifdef SIII
+ while(read(2,&val,1));
+#else
+ long l1;
+ ioctl (0, FIONREAD, &l1);
+ while(l1-- > 0L) read(0,&val,1);
+#endif
+#endif
+#endif
+#ifdef SARG10
+ while(uuo(051,2,&val)) /* TTCALL 2, (INCHRS) */
+ ;
+#endif
+#ifdef SARG20
+ ejsys(CFIBF,_PRIIN); /* Clear input buffer */
+#endif
+}
+
+zleep(t) int t; {
+
+/*
+ * Sleep and do nothing (don't waste CPU) for t milliseconds
+ */
+
+#ifdef SARG10
+ calli(072,t); /* (HIBER) t milliseconds */
+#endif
+#ifdef SARG20
+ ejsys(DISMS,t); /* DISMISS for t milliseconds */
+#endif
+#ifdef UNIX
+ t = t / 1000;
+ if (t == 0) t = 1;
+ sleep(t); /* UNIX can only sleep whole seconds */
+#endif
+}
diff --git a/konsole/tests/header.h b/konsole/tests/header.h
new file mode 100644
index 000000000..1c35a2add
--- /dev/null
+++ b/konsole/tests/header.h
@@ -0,0 +1,54 @@
+#define VERSION "1.7b 1985-04-19"
+
+/* Choose one of these */
+
+/* #define XENIX /* XENIX implies UNIX */
+/* #define SIII /* SIII implies UNIX, (NDELAY a la System III) */
+#define UNIX /* UNIX */
+#define TERMIO
+/* #define VMS /* VMS not done yet -- send me your version!!!! */
+/* #define SARG20 /* Sargasso C for TOPS-20 */
+/* #define SARG10 /* Sargasso C for TOPS-10 */
+
+/* These #ifdef:s are implementation dependent stuff for the Sargasso C */
+/* Unix C barfs on directives like "#strings", so we keep them */
+/* indented. Then unix c can't find them, but Sargasso C *can*. */
+/* Admittedly kludgey, but it works...) */
+#ifdef SARG10
+ #define _UNIXCON /* Make UNIX-flavored I/O on TOPS */
+ #strings low /* put strings in lowseg mem so we can modify them. */
+#endif
+#ifdef SARG20
+ #define _UNIXCON /* Make UNIX-flavored I/O on TOPS */
+ #strings low /* put strings in lowseg mem so we can modify them. */
+ #include <TOPS20.HDR>
+#endif
+
+#include <stdio.h>
+
+
+#ifdef UNIX
+#include <ctype.h>
+#ifdef TERMIO
+# include <termio.h>
+#else
+# include <sgtty.h>
+#endif
+#include <signal.h>
+#include <setjmp.h>
+jmp_buf intrenv;
+
+#ifdef TERMIO
+struct termio termioOrg, termioNew;
+#else
+struct sgttyb sgttyOrg, sgttyNew;
+#endif
+
+char stdioBuf[BUFSIZ];
+int brkrd, reading;
+extern onterm(), onbrk();
+#ifdef SIII
+#include <fcntl.h>
+#endif
+#endif
+int ttymode;
diff --git a/konsole/tests/main.c b/konsole/tests/main.c
new file mode 100644
index 000000000..c80b0426c
--- /dev/null
+++ b/konsole/tests/main.c
@@ -0,0 +1,2083 @@
+/*
+ VTTEST.C
+
+ Written Novemeber 1983 - July 1984 by Per Lindberg,
+ Stockholm University Computer Center (QZ), Sweden.
+
+ THE MAD PROGRAMMER STRIKES AGAIN!
+
+ This software is (c) 1984 by QZ
+ Non-commercial use and copying allowed.
+
+If you are developing a commercial product, and use this program to do
+it, and that product is successful, please send a sum of money of your
+choice to the address below.
+
+*/
+
+#include "header.h"
+
+char inchar(), *instr(), *lookup();
+
+struct table {
+ int key;
+ char *msg;
+} paritytable[] = {
+ { 1, "NONE" },
+ { 4, "ODD" },
+ { 5, "EVEN" },
+ { -1, "" }
+},nbitstable[] = {
+ { 1, "8" },
+ { 2, "7" },
+ { -1,"" }
+},speedtable[] = {
+ { 0, "50" },
+ { 8, "75" },
+ { 16, "110" },
+ { 24, "132.5"},
+ { 32, "150" },
+ { 40, "200" },
+ { 48, "300" },
+ { 56, "600" },
+ { 64, "1200" },
+ { 72, "1800" },
+ { 80, "2000" },
+ { 88, "2400" },
+ { 96, "3600" },
+ { 104, "4800" },
+ { 112, "9600" },
+ { 120, "19200" },
+ { -1, "" }
+};
+
+main() {
+
+ int menuchoice;
+
+ static char *mainmenu[] = {
+ "Exit",
+ "Test of cursor movements",
+ "Test of screen features",
+ "Test of character sets",
+ "Test of double-sized characters",
+ "Test of keyboard",
+ "Test of terminal reports",
+ "Test of VT52 mode",
+ "Test of VT102 features (Insert/Delete Char/Line)",
+ "Test of known bugs",
+ "Test of reset and self-test",
+ ""
+ };
+
+#ifdef UNIX
+ initterminal(setjmp(intrenv));
+ signal(SIGINT, onbrk);
+ signal(SIGTERM, onterm);
+ reading = 0;
+#else
+ initterminal(0);
+#endif
+ do {
+#ifdef SARG20
+ ttybin(1); /* set line to binary mode again. It's reset somehow!! */
+#endif
+ ed(2);
+ cup(5,10); printf("VT100 test program, version %s", VERSION);
+ cup(7,10); println("Choose test type:");
+ menuchoice = menu(mainmenu);
+ switch (menuchoice) {
+ case 1: tst_movements(); break;
+ case 2: tst_screen(); break;
+ case 3: tst_characters(); break;
+ case 4: tst_doublesize(); break;
+ case 5: tst_keyboard(); break;
+ case 6: tst_reports(); break;
+ case 7: tst_vt52(); break;
+ case 8: tst_insdel(); break;
+ case 9: tst_bugs(); break;
+ case 10: tst_rst(); break;
+ }
+ } while (menuchoice);
+ bye();
+}
+
+tst_movements() {
+
+ /* Test of:
+ CUF (Cursor Forward)
+ CUB (Cursor Backward)
+ CUD (Cursor Down) IND (Index) NEL (Next Line)
+ CUU (Cursor Up) RI (Reverse Index)
+ CUP (Cursor Position) HVP (Horizontal and Vertical Position)
+ ED (Erase in Display)
+ EL (Erase in Line)
+ DECALN (Screen Alignment Display)
+ <CR> <BS>
+ Cursor control characters inside CSI sequences
+ */
+
+ int i, row, col, pass, width, hlfxtra;
+ char c, *ctext = "This is a correct sentence";
+
+ for (pass = 0; pass <= 1; pass++) {
+ if (pass == 0) { rm("?3"); width = 80; hlfxtra = 0; }
+ else { sm("?3"); width = 132; hlfxtra = 26; }
+
+ decaln();
+ cup( 9,10+hlfxtra); ed(1);
+ cup(18,60+hlfxtra); ed(0); el(1);
+ cup( 9,71+hlfxtra); el(0);
+ for (row = 10; row <= 16; row++) {
+ cup(row, 10+hlfxtra); el(1);
+ cup(row, 71+hlfxtra); el(0);
+ }
+ cup(17,30); el(2);
+ for (col = 1; col <= width; col++) {
+ hvp(24, col); printf("*");
+ hvp( 1, col); printf("*");
+ }
+ cup(2,2);
+ for (row = 2; row <= 23; row++) {
+ printf("+");
+ cub(1);
+ ind();
+ }
+ cup(23,width-1);
+ for (row = 23; row >=2; row--) {
+ printf("+");
+ cub(1); ri();
+ }
+ cup(2,1);
+ for (row = 2; row <= 23; row++) {
+ printf("*"); cup(row, width);
+ printf("*");
+ cub(10);
+ if (row < 10) nel();
+ else printf("\n");
+ }
+ cup(2,10);
+ cub(42+hlfxtra); cuf(2);
+ for (col = 3; col <= width-2; col++) {
+ printf("+");
+ cuf(0); cub(2); cuf(1);
+ }
+ cup(23,70+hlfxtra);
+ cuf(42+hlfxtra); cub(2);
+ for (col = width-2; col >= 3; col--) {
+ printf("+");
+ cub(1); cuf(1); cub(0); printf("%c", 8);
+ }
+ cup( 1, 1); cuu(10); cuu(1); cuu(0);
+ cup(24,width); cud(10); cud(1); cud(0);
+
+ cup(10,12+hlfxtra);
+ for (row = 10; row <= 15; row++) {
+ for (col = 12+hlfxtra; col <= 69+hlfxtra; col++) printf(" ");
+ cud(1); cub(58);
+ }
+ cuu(5); cuf(1);
+ printf("The screen should be cleared, and have an unbroken bor-");
+ cup(12,13+hlfxtra);
+ printf("der of *'s and +'s around the edge, and exactly in the");
+ cup(13,13+hlfxtra);
+ printf("middle there should be a frame of E's around this text");
+ cup(14,13+hlfxtra);
+ printf("with one (1) free position around it. ");
+ holdit();
+ }
+ rm("?3");
+
+ ed(2);
+ cup(1,1);
+ println("Test of cursor-control characters inside ESC sequences.");
+ println("Below should be two identical lines:");
+ println("");
+ println("A B C D E F G H I J K L M N O P Q R S");
+ for (i = 1; i < 20; i++) {
+ printf("%c", 64 + i);
+ brcstr("2\010", 'C'); /* Two forward, one backspace */
+ }
+ println("");
+ println("");
+ holdit();
+
+ ed(2);
+ cup(1,1);
+ println("Test of leading zeros in ESC sequences.");
+ printf("Two lines below you should see the sentence \"%s\".",ctext);
+ for (col = 1; *ctext; col++)
+ printf("\033[00000000004;00000000%dH%c",col,*ctext++);
+ cup(20,1);
+ holdit();
+}
+
+tst_screen() {
+
+ /* Test of:
+ - DECSTBM (Set Top and Bottom Margins)
+ - TBC (Tabulation Clear)
+ - HTS (Horizontal Tabulation Set)
+ - SM RM (Set/Reset mode): - 80/132 chars
+ - Origin: Realtive/absolute
+ - Scroll: Smooth/jump
+ - Wraparound
+ - SGR (Select Graphic Rendition)
+ - SM RM (Set/Reset Mode) - Inverse
+ - DECSC (Save Cursor)
+ - DECRC (Restore Cursor)
+ */
+
+ int i, j, cset, row, col, down, soft, background;
+
+ static char *tststr = "*qx`";
+ static char *attr[5] = { ";0", ";1", ";4", ";5", ";7" };
+
+ cup(1,1);
+ sm("?7"); /* Wrap Around ON */
+ for (col = 1; col <= 160; col++) printf("*");
+ rm("?7"); /* Wrap Around OFF */
+ cup(3,1);
+ for (col = 1; col <= 160; col++) printf("*");
+ sm("?7"); /* Wrap Around ON */
+ cup(5,1);
+ println("This should be three identical lines of *'s completely filling");
+ println("the top of the screen without any empty lines between.");
+ println("(Test of WRAP AROUND mode setting.)");
+ holdit();
+
+ ed(2);
+ tbc(3);
+ cup(1,1);
+ for (col = 1; col <= 78; col += 3) {
+ cuf(3); hts();
+ }
+ cup(1,4);
+ for (col = 4; col <= 78; col += 6) {
+ tbc(0); cuf(6);
+ }
+ cup(1,7); tbc(1); tbc(2); /* no-op */
+ cup(1,1); for (col = 1; col <= 78; col += 6) printf("\t*");
+ cup(2,2); for (col = 2; col <= 78; col += 6) printf(" *");
+ cup(4,1);
+ println("Test of TAB setting/resetting. These two lines");
+ printf("should look the same. ");
+ holdit();
+ for (background = 0; background <= 1; background++) {
+ if (background) rm("?5");
+ else sm("?5");
+ sm("?3"); /* 132 cols */
+ ed(2); /* VT100 clears screen on SM3/RM3, but not obviously, so... */
+ cup(1,1); tbc(3);
+ for (col = 1; col <= 132; col += 8) {
+ cuf(8); hts();
+ }
+ cup(1,1); for (col = 1; col <= 130; col += 10) printf("1234567890");
+ printf("12");
+ for (row = 3; row <= 20; row++) {
+ cup(row,row);
+ printf("This is 132 column mode, %s background.",
+ background ? "dark" : "light");
+ }
+ holdit();
+ rm("?3"); /* 80 cols */
+ ed(2); /* VT100 clears screen on SM3/RM3, but not obviously, so... */
+ cup(1,1); for (col = 1; col <= 80; col += 10) printf("1234567890");
+ for (row = 3; row <= 20; row++) {
+ cup(row,row);
+ printf("This is 80 column mode, %s background.",
+ background ? "dark" : "light");
+ }
+ holdit();
+ }
+ ed(2);
+ sm("?6"); /* Origin mode (relative) */
+ for (soft = -1; soft <= 0; soft++) {
+ if (soft) sm("?4");
+ else rm("?4");
+ for (row = 12; row >= 1; row -= 11) {
+ decstbm(row, 24-row+1);
+ ed(2);
+ for (down = 0; down >= -1; down--) {
+ if (down) cuu(24);
+ else cud(24);
+ for (i = 1; i <= 30; i++) {
+ printf("%s scroll %s region %d Line %d\n",
+ soft ? "Soft" : "Jump",
+ down ? "down" : "up",
+ 2*(13-row), i);
+ if (down) { ri(); ri(); }
+ }
+ }
+ holdit();
+ }
+ }
+ ed(2);
+ decstbm(23,24);
+ printf(
+ "\nOrigin mode test. This line should be at the bottom of the screen.");
+ cup(1,1);
+ printf("%s",
+ "This line should be the one above the bottom of the screeen. ");
+ holdit();
+ ed(2);
+ rm("?6"); /* Origin mode (absolute) */
+ cup(24,1);
+ printf(
+ "Origin mode test. This line should be at the bottom of the screen.");
+ cup(1,1);
+ printf("%s", "This line should be at the top if the screen. ");
+ holdit();
+ decstbm(1,24);
+
+ ed(2);
+ cup( 1,20); printf("Graphic rendition test pattern:");
+ cup( 4, 1); sgr("0"); printf("vanilla");
+ cup( 4,40); sgr("0;1"); printf("bold");
+ cup( 6, 6); sgr(";4"); printf("underline");
+ cup( 6,45);sgr(";1");sgr("4");printf("bold underline");
+ cup( 8, 1); sgr("0;5"); printf("blink");
+ cup( 8,40); sgr("0;5;1"); printf("bold blink");
+ cup(10, 6); sgr("0;4;5"); printf("underline blink");
+ cup(10,45); sgr("0;1;4;5"); printf("bold underline blink");
+ cup(12, 1); sgr("1;4;5;0;7"); printf("negative");
+ cup(12,40); sgr("0;1;7"); printf("bold negative");
+ cup(14, 6); sgr("0;4;7"); printf("underline negative");
+ cup(14,45); sgr("0;1;4;7"); printf("bold underline negative");
+ cup(16, 1); sgr("1;4;;5;7"); printf("blink negative");
+ cup(16,40); sgr("0;1;5;7"); printf("bold blink negative");
+ cup(18, 6); sgr("0;4;5;7"); printf("underline blink negative");
+ cup(18,45); sgr("0;1;4;5;7"); printf("bold underline blink negative");
+ sgr("");
+
+ rm("?5"); /* Inverse video off */
+ cup(23,1); el(0); printf("Dark background. "); holdit();
+ sm("?5"); /* Inverse video */
+ cup(23,1); el(0); printf("Light background. "); holdit();
+ rm("?5");
+ ed(2);
+ cup(8,12); printf("normal");
+ cup(8,24); printf("bold");
+ cup(8,36); printf("underscored");
+ cup(8,48); printf("blinking");
+ cup(8,60); printf("reversed");
+ cup(10,1); printf("stars:");
+ cup(12,1); printf("line:");
+ cup(14,1); printf("x'es:");
+ cup(16,1); printf("diamonds:");
+ for (cset = 0; cset <= 3; cset++) {
+ for (i = 0; i <= 4; i++) {
+ cup(10 + 2 * cset, 12 + 12 * i);
+ sgr(attr[i]);
+ if (cset == 0 || cset == 2) scs(0,'B');
+ else scs(0,'0');
+ for (j = 0; j <= 4; j++) {
+ printf("%c", tststr[cset]);
+ }
+ decsc();
+ cup(cset + 1, i + 1); sgr(""); scs(0,'B'); printf("A");
+ decrc();
+ for (j = 0; j <= 4; j++) {
+ printf("%c", tststr[cset]);
+ }
+ }
+ }
+ sgr("0"); scs(0,'B'); cup(21,1);
+ println("Test of the SAVE/RESTORE CURSOR feature. There should");
+ println("be ten characters of each flavour, and a rectangle");
+ println("of 5 x 4 A's filling the top left of the screen.");
+ holdit();
+}
+
+tst_characters() {
+ /* Test of:
+ SCS (Select character Set)
+ */
+
+ int i, j, g, cset;
+ char chcode[5], *setmsg[5];
+
+ chcode[0] = 'A';
+ chcode[1] = 'B';
+ chcode[2] = '0';
+ chcode[3] = '1';
+ chcode[4] = '2';
+ setmsg[0] = "UK / national";
+ setmsg[1] = "US ASCII";
+ setmsg[2] = "Special graphics and line drawing";
+ setmsg[3] = "Alternate character ROM standard characters";
+ setmsg[4] = "Alternate character ROM special graphics";
+
+ cup(1,10); printf("Selected as G0 (with SI)");
+ cup(1,48); printf("Selected as G1 (with SO)");
+ for (cset = 0; cset <= 4; cset++) {
+ scs(1,'B');
+ cup(3 + 4 * cset, 1);
+ sgr("1");
+ printf("Character set %c (%s)",chcode[cset], setmsg[cset]);
+ sgr("0");
+ for (g = 0; g <= 1; g++) {
+ scs(g,chcode[cset]);
+ for (i = 1; i <= 3; i++) {
+ cup(3 + 4 * cset + i, 10 + 38 * g);
+ for (j = 0; j <= 31; j++) {
+ printf("%c", i * 32 + j);
+ }
+ }
+ }
+ }
+ scs(1,'B');
+ cup(24,1); printf("These are the installed character sets. ");
+ holdit();
+}
+
+tst_doublesize() {
+ /* Test of:
+ DECSWL (Single Width Line)
+ DECDWL (Double Width Line)
+ DECDHL (Double Height Line) (also implicit double width)
+ */
+
+ int col, i, w, w1;
+
+ /* Print the test pattern in both 80 and 132 character width */
+
+ for(w = 0; w <= 1; w++) {
+ w1 = 13 * w;
+
+ ed(2);
+ cup(1, 1);
+ if (w) { sm("?3"); printf("132 column mode"); }
+ else { rm("?3"); printf(" 80 column mode"); }
+
+ cup( 5, 3 + 2 * w1);
+ printf("v------- left margin");
+
+ cup( 7, 3 + 2 * w1);
+ printf("This is a normal-sized line");
+ decdhl(0); decdhl(1); decdwl(); decswl();
+
+ cup( 9, 2 + w1);
+ printf("This is a Double-width line");
+ decswl(); decdhl(0); decdhl(1); decdwl();
+
+ cup(11, 2 + w1);
+ decdwl(); decswl(); decdhl(1); decdhl(0);
+ printf("This is a Double-width-and-height line");
+ cup(12, 2 + w1);
+ decdwl(); decswl(); decdhl(0); decdhl(1);
+ printf("This is a Double-width-and-height line");
+
+ cup(14, 2 + w1);
+ decdwl(); decswl(); decdhl(1); decdhl(0); el(2);
+ printf("This is another such line");
+ cup(15, 2 + w1);
+ decdwl(); decswl(); decdhl(0); decdhl(1);
+ printf("This is another such line");
+
+ cup(17, 3 + 2 * w1);
+ printf("^------- left margin");
+
+ cup(21, 1);
+ printf("This is not a double-width line");
+ for (i = 0; i <= 1; i++) {
+ cup(21,6);
+ if (i) { printf("**is**"); decdwl(); }
+ else { printf("is not"); decswl(); }
+ cup(23,1); holdit();
+ }
+ }
+ /* Set vanilla tabs for next test */
+ cup(1,1); tbc(3); for (col = 1; col <= 132; col += 8) { cuf(8); hts(); }
+ rm("?3");
+ ed(2);
+ scs(0,'0');
+
+ cup( 8,1); decdhl(0); printf("lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk");
+ cup( 9,1); decdhl(1); printf("lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk");
+ cup(10,1); decdhl(0); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(11,1); decdhl(1); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(12,1); decdhl(0); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(13,1); decdhl(1); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(14,1); decdhl(0); printf("x x");
+ cup(15,1); decdhl(1); printf("x x");
+ cup(16,1); decdhl(0); printf("mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj");
+ cup(17,1); decdhl(1); printf("mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj");
+ scs(0,'B'); sgr("1;5");
+ cup(12,3);
+ printf("* The mad programmer strikes again * ");
+ cup(13,3); printf("%c",9); cub(6);
+ printf("* The mad programmer strikes again *");
+ sgr("0");
+ cup(22,1);
+ println("Another test pattern... a frame with blinking bold text,");
+ printf("all in double-height double-width size. ");
+ holdit();
+
+ decstbm(8,24); /* Absolute origin mode, so cursor is set at (1,1) */
+ cup(8,1);
+ for (i = 1; i <= 12; i++)
+ ri();
+ decstbm(0,0); /* No scroll region */
+ cup(1,1);
+ printf("%s", "Exactly half of the box should remain. ");
+ holdit();
+}
+
+tst_keyboard() {
+
+/* Test of:
+ - DECLL (Load LEDs)
+ - Keyboard return messages
+ - SM RM (Set/Reset Mode) - Cursor Keys
+ - Auto repeat
+ - DECKPAM (Keypad Application Mode)
+ - DECKPNM (Keypad Numeric Mode)
+
+The standard VT100 keayboard layout:
+
+ UP DN LE RI
+
+ESC 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ BS
+
+TAB* qQ wW eE rR tT yY uU iI oO pP [{ ]} DEL
+
+** ** aA sS dD fF gG hH jJ kK lL ;: ," RETN \|
+
+** **** zZ xX cC vV bB nN mM ,< .> /? **** LF
+
+ ****************SPACE BAR****************
+
+ PF1 PF2 PF3 PF4
+
+ *7* *8* *9* *-*
+
+ *4* *5* *6* *,*
+
+ *1* *2* *3*
+
+ ***0*** *.* ENT
+*/
+
+ char *ledmsg[6], *ledseq[6];
+
+ int i, j, okflag;
+ int kblayout;
+ int ckeymode;
+ int fkeymode;
+ char kbdc;
+ char kbds[2];
+ char *curkeystr, *fnkeystr, *abmstr;
+ char arptstring[500];
+
+ static struct key {
+ char c;
+ int row;
+ int col;
+ char *symbol;
+ } keytab [] = {
+ { 27, 1, 0, "ESC" },
+ { '1', 1, 6, "1" }, { '!', 1, 7, "!" },
+ { '2', 1, 11, "2" }, { '@', 1, 12, "@" },
+ { '3', 1, 16, "3" }, { '#', 1, 17, "#" },
+ { '4', 1, 21, "4" }, { '$', 1, 22, "$" },
+ { '5', 1, 26, "5" }, { '%', 1, 27, "%" },
+ { '6', 1, 31, "6" }, { '^', 1, 32, "^" },
+ { '7', 1, 36, "7" }, { '&', 1, 37, "&" },
+ { '8', 1, 41, "8" }, { '*', 1, 42, "*" },
+ { '9', 1, 46, "9" }, { '(', 1, 47, "(" },
+ { '0', 1, 51, "0" }, { ')', 1, 52, ")" },
+ { '-', 1, 56, "-" }, { '_', 1, 57, "_" },
+ { '=', 1, 61, "=" }, { '+', 1, 62, "+" },
+ { '`', 1, 66, "`" }, { '~', 1, 67, "~" },
+ { 8, 1, 70, "BS" },
+ { 9, 2, 0, " TAB " },
+ { 'q', 2, 8, "q" }, { 'Q', 2, 9, "Q" },
+ { 'w', 2, 13, "w" }, { 'W', 2, 14, "W" },
+ { 'e', 2, 18, "e" }, { 'E', 2, 19, "E" },
+ { 'r', 2, 23, "r" }, { 'R', 2, 24, "R" },
+ { 't', 2, 28, "t" }, { 'T', 2, 29, "T" },
+ { 'y', 2, 33, "y" }, { 'Y', 2, 34, "Y" },
+ { 'u', 2, 38, "u" }, { 'U', 2, 39, "U" },
+ { 'i', 2, 43, "i" }, { 'I', 2, 44, "I" },
+ { 'o', 2, 48, "o" }, { 'O', 2, 49, "O" },
+ { 'p', 2, 53, "p" }, { 'P', 2, 54, "P" },
+ { '[', 2, 58, "[" }, { '{', 2, 59, "{" },
+ { ']', 2, 63, "]" }, { '}', 2, 64, "}" },
+ { 127, 2, 71, "DEL" },
+ { 'a', 3, 10, "a" }, { 'A', 3, 11, "A" },
+ { 's', 3, 15, "s" }, { 'S', 3, 16, "S" },
+ { 'd', 3, 20, "d" }, { 'D', 3, 21, "D" },
+ { 'f', 3, 25, "f" }, { 'F', 3, 26, "F" },
+ { 'g', 3, 30, "g" }, { 'G', 3, 31, "G" },
+ { 'h', 3, 35, "h" }, { 'H', 3, 36, "H" },
+ { 'j', 3, 40, "j" }, { 'J', 3, 41, "J" },
+ { 'k', 3, 45, "k" }, { 'K', 3, 46, "K" },
+ { 'l', 3, 50, "l" }, { 'L', 3, 51, "L" },
+ { ';', 3, 55, ";" }, { ':', 3, 56, ":" },
+ {'\'', 3, 60, "'" }, { '"', 3, 61,"\"" },
+ { 13, 3, 65, "RETN"},
+ {'\\', 3, 71,"\\" }, { '|', 3, 72, "|" },
+ { 'z', 4, 12, "z" }, { 'Z', 4, 13, "Z" },
+ { 'x', 4, 17, "x" }, { 'X', 4, 18, "X" },
+ { 'c', 4, 22, "c" }, { 'C', 4, 23, "C" },
+ { 'v', 4, 27, "v" }, { 'V', 4, 28, "V" },
+ { 'b', 4, 32, "b" }, { 'B', 4, 33, "B" },
+ { 'n', 4, 37, "n" }, { 'N', 4, 38, "N" },
+ { 'm', 4, 42, "m" }, { 'M', 4, 43, "M" },
+ { ',', 4, 47, "," }, { '<', 4, 48, "<" },
+ { '.', 4, 52, "." }, { '>', 4, 53, ">" },
+ { '/', 4, 57, "/" }, { '?', 4, 58, "?" },
+ { 10, 4, 69, "LF" },
+ { ' ', 5, 13, " SPACE BAR "},
+ {'\0', 0, 0, "" }
+ };
+
+ static struct natkey {
+ char natc;
+ int natrow;
+ int natcol;
+ char *natsymbol;
+ } natkeytab [][29] = {
+ {
+ { '"', 1, 12, "\""},
+ { '&', 1, 32, "&" },
+ { '/', 1, 37, "/" },
+ { '(', 1, 42, "(" },
+ { ')', 1, 47, ")" },
+ { '=', 1, 52, "=" },
+ { '+', 1, 56, "+" }, { '?', 1, 57, "?" },
+ { '`', 1, 61, "`" }, { '@', 1, 62, "@" },
+ { '<', 1, 66, "<" }, { '>', 1, 67, ">" },
+ { '}', 2, 58, "}" }, { ']', 2, 59, "]" },
+ { '^', 2, 63, "^" }, { '~', 2, 64, "~" },
+ { '|', 3, 55, "|" }, {'\\', 3, 56,"\\" },
+ { '{', 3, 60, "{" }, { '[', 3, 61, "[" },
+ {'\'', 3, 71, "'" }, { '*', 3, 72, "*" },
+ { ',', 4, 47, "," }, { ';', 4, 48, ";" },
+ { '.', 4, 52, "." }, { ':', 4, 53, ":" },
+ { '-', 4, 57, "-" }, { '_', 4, 58, "_" },
+ {'\0', 0, 0, "" }
+ },
+ {
+ { '"', 1, 12, "\""},
+ { '&', 1, 32, "&" },
+ { '/', 1, 37, "/" },
+ { '(', 1, 42, "(" },
+ { ')', 1, 47, ")" },
+ { '=', 1, 52, "=" },
+ { '+', 1, 56, "+" }, { '?', 1, 57, "?" },
+ { '`', 1, 61, "`" }, { '@', 1, 62, "@" },
+ { '<', 1, 66, "<" }, { '>', 1, 67, ">" },
+ { '}', 2, 58, "}" }, { ']', 2, 59, "]" },
+ { '~', 2, 63, "~" }, { '^', 2, 64, "^" },
+ { '|', 3, 55, "|" }, {'\\', 3, 56,"\\" },
+ { '{', 3, 60, "{" }, { '[', 3, 61, "[" },
+ {'\'', 3, 71, "'" }, { '*', 3, 72, "*" },
+ { ',', 4, 47, "," }, { ';', 4, 48, ";" },
+ { '.', 4, 52, "." }, { ':', 4, 53, ":" },
+ { '-', 4, 57, "-" }, { '_', 4, 58, "_" },
+ {'\0', 0, 0, "" }
+ }
+ };
+
+ static struct curkey {
+ char *curkeymsg[3];
+ int curkeyrow;
+ int curkeycol;
+ char *curkeysymbol;
+ char *curkeyname;
+ } curkeytab [] = {
+
+ /* A Reset, A Set, VT52 */
+
+ {{"\033[A","\033OA","\033A"}, 0, 56, "UP", "Up arrow" },
+ {{"\033[B","\033OB","\033B"}, 0, 61, "DN", "Down arrow" },
+ {{"\033[D","\033OD","\033D"}, 0, 66, "LT", "Left arrow" },
+ {{"\033[C","\033OC","\033C"}, 0, 71, "RT", "Right arrow"},
+ {{"", "", "" }, 0, 0, "", "" }
+ };
+
+ static struct fnkey {
+ char *fnkeymsg[4];
+ int fnkeyrow;
+ int fnkeycol;
+ char *fnkeysymbol;
+ char *fnkeyname;
+ } fnkeytab [] = {
+
+ /* ANSI-num,ANSI-app,VT52-nu,VT52-ap, r, c, symb name */
+
+ {{"\033OP","\033OP","\033P","\033P" }, 6, 59, "PF1", "PF1" },
+ {{"\033OQ","\033OQ","\033Q","\033Q" }, 6, 63, "PF2", "PF2" },
+ {{"\033OR","\033OR","\033R","\033R" }, 6, 67, "PF3", "PF3" },
+ {{"\033OS","\033OS","\033S","\033S" }, 6, 71, "PF4", "PF4" },
+ {{"7", "\033Ow","7", "\033?w"}, 7, 59, " 7 ", "Numeric 7" },
+ {{"8", "\033Ox","8", "\033?x"}, 7, 63, " 8 ", "Numeric 8" },
+ {{"9", "\033Oy","9", "\033?y"}, 7, 67, " 9 ", "Numeric 9" },
+ {{"-", "\033Om","-", "\033?m"}, 7, 71, " - ", "Minus" },
+ {{"4", "\033Ot","4", "\033?t"}, 8, 59, " 4 ", "Numeric 4" },
+ {{"5", "\033Ou","5", "\033?u"}, 8, 63, " 5 ", "Numeric 5" },
+ {{"6", "\033Ov","6", "\033?v"}, 8, 67, " 6 ", "Numeric 6" },
+ {{",", "\033Ol",",", "\033?l"}, 8, 71, " , ", "Comma" },
+ {{"1", "\033Oq","1", "\033?q"}, 9, 59, " 1 ", "Numeric 1" },
+ {{"2", "\033Or","2", "\033?r"}, 9, 63, " 2 ", "Numeric 2" },
+ {{"3", "\033Os","3", "\033?s"}, 9, 67, " 3 ", "Numeric 3" },
+ {{"0", "\033Op","0", "\033?p"},10, 59," O ","Numeric 0"},
+ {{".", "\033On",".", "\033?n"},10, 67, " . ", "Point" },
+ {{"\015", "\033OM","\015", "\033?M"},10, 71, "ENT", "ENTER" },
+ {{"","","",""}, 0, 0, "", "" }
+ };
+
+ static struct ckey {
+ int ccount;
+ char *csymbol;
+ } ckeytab [] = {
+ { 0, "NUL (CTRL-@ or CTRL-Space)" },
+ { 0, "SOH (CTRL-A)" },
+ { 0, "STX (CTRL-B)" },
+ { 0, "ETX (CTRL-C)" },
+ { 0, "EOT (CTRL-D)" },
+ { 0, "ENQ (CTRL-E)" },
+ { 0, "ACK (CTRL-F)" },
+ { 0, "BEL (CTRL-G)" },
+ { 0, "BS (CTRL-H) (BACK SPACE)" },
+ { 0, "HT (CTRL-I) (TAB)" },
+ { 0, "LF (CTRL-J) (LINE FEED)" },
+ { 0, "VT (CTRL-K)" },
+ { 0, "FF (CTRL-L)" },
+ { 0, "CR (CTRL-M) (RETURN)" },
+ { 0, "SO (CTRL-N)" },
+ { 0, "SI (CTRL-O)" },
+ { 0, "DLE (CTRL-P)" },
+ { 0, "DC1 (CTRL-Q) (X-On)" },
+ { 0, "DC2 (CTRL-R)" },
+ { 0, "DC3 (CTRL-S) (X-Off)" },
+ { 0, "DC4 (CTRL-T)" },
+ { 0, "NAK (CTRL-U)" },
+ { 0, "SYN (CTRL-V)" },
+ { 0, "ETB (CTRL-W)" },
+ { 0, "CAN (CTRL-X)" },
+ { 0, "EM (CTRL-Y)" },
+ { 0, "SUB (CTRL-Z)" },
+ { 0, "ESC (CTRL-[) (ESCAPE)" },
+ { 0, "FS (CTRL-\\ or CTRL-? or CTRL-_)" },
+ { 0, "GS (CTRL-])" },
+ { 0, "RS (CTRL-^ or CTRL-~ or CTRL-`)" },
+ { 0, "US (CTRL-_ or CTRL-?)" }
+ };
+
+ static char *keyboardmenu[] = {
+ "Standard American ASCII layout",
+ "Swedish national layout D47",
+ "Swedish national layout E47",
+ /* add new keyboard layouts here */
+ ""
+ };
+
+ static char *curkeymodes[3] = {
+ "ANSI / Cursor key mode RESET",
+ "ANSI / Cursor key mode SET",
+ "VT52 Mode"
+ };
+
+ static char *fnkeymodes[4] = {
+ "ANSI Numeric mode",
+ "ANSI Application mode",
+ "VT52 Numeric mode",
+ "VT52 Application mode"
+ };
+
+ ledmsg[0] = "L1 L2 L3 L4"; ledseq[0] = "1;2;3;4";
+ ledmsg[1] = " L2 L3 L4"; ledseq[1] = "1;0;4;3;2";
+ ledmsg[2] = " L2 L3"; ledseq[2] = "1;4;;2;3";
+ ledmsg[3] = "L1 L2"; ledseq[3] = ";;2;1";
+ ledmsg[4] = "L1"; ledseq[4] = "1";
+ ledmsg[5] = ""; ledseq[5] = "";
+
+#ifdef UNIX
+ fflush(stdout);
+#endif
+
+ ed(2);
+ cup(10,1);
+ println("These LEDs (\"lamps\") on the keyboard should be on:");
+ for (i = 0; i <= 5; i++) {
+ cup(10,52); el(0); printf("%s", ledmsg[i]);
+ decll("0");
+ decll(ledseq[i]);
+ cup(12,1); holdit();
+ }
+
+ ed(2);
+ cup(10,1);
+ println("Test of the AUTO REPEAT feature");
+ println("");
+ println("Hold down an alphanumeric key for a while, then push RETURN.");
+ printf("%s", "Auto Repeat OFF: ");
+ rm("?8");
+ inputline(arptstring);
+ if (strlen(arptstring) == 0) println("No characters read!??");
+ else if (strlen(arptstring) == 1) println("OK.");
+ else println("Too many characters read.");
+ println("");
+ println("Hold down an alphanumeric key for a while, then push RETURN.");
+ printf("%s", "Auto Repeat ON: ");
+ sm("?8");
+ inputline(arptstring);
+ if (strlen(arptstring) == 0) println("No characters read!??");
+ else if (strlen(arptstring) == 1) println("Not enough characters read.");
+ else println("OK.");
+ println("");
+ holdit();
+
+ ed(2);
+ cup(5,10);
+ println("Choose keyboard layout:");
+ kblayout = menu(keyboardmenu);
+ if (kblayout) {
+ kblayout--;
+ for (j = 0; natkeytab[kblayout][j].natc != '\0'; j++) {
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ if (keytab[i].row == natkeytab[kblayout][j].natrow &&
+ keytab[i].col == natkeytab[kblayout][j].natcol) {
+ keytab[i].c = natkeytab[kblayout][j].natc;
+ keytab[i].symbol = natkeytab[kblayout][j].natsymbol;
+ break;
+ }
+ }
+ }
+ }
+
+ ed(2);
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ cup(1 + 2 * keytab[i].row, 1 + keytab[i].col);
+ sgr("7");
+ printf("%s", keytab[i].symbol);
+ sgr("");
+ }
+ cup(22,1);
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag &= (~ICRNL);
+ termioNew.c_oflag &= (~ONLCR);
+ termioNew.c_lflag &= (~ECHO & ~ECHOE & ~ECHOK & ~ECHONL);
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags &= ~CRMOD;
+ sgttyNew.sg_flags &= ~ECHO;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ inflush();
+ printf("Press each key, both shifted and unshifted. Finish with RETURN:");
+ do { /* while (kbdc != 13) */
+ cup(23,1); kbdc = inchar();
+ cup(23,1); el(0);
+ sprintf(kbds, "%c", kbdc);
+ chrprint(kbds);
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ if (keytab[i].c == kbdc) {
+ cup(1 + 2 * keytab[i].row, 1 + keytab[i].col);
+ printf("%s", keytab[i].symbol);
+ break;
+ }
+ }
+ } while (kbdc != 13);
+#ifdef SARG10
+ inchar(); /* Local hack: Read LF that TOPS-10 adds to CR */
+#endif
+ cup(23,1); el(0);
+
+ for (ckeymode = 0; ckeymode <= 2; ckeymode++) {
+ if (ckeymode) sm("?1");
+ else rm("?1");
+ for (i = 0; curkeytab[i].curkeysymbol[0] != '\0'; i++) {
+ cup(1 + 2 * curkeytab[i].curkeyrow, 1 + curkeytab[i].curkeycol);
+ sgr("7");
+ printf("%s", curkeytab[i].curkeysymbol);
+ sgr("");
+ }
+ cup(20,1); printf("<%s>%20s", curkeymodes[ckeymode], "");
+ cup(22,1); el(0);
+ cup(22,1); printf("%s", "Press each cursor key. Finish with TAB.");
+ for(;;) {
+ cup(23,1);
+ if (ckeymode == 2) rm("?2"); /* VT52 mode */
+ curkeystr = instr();
+ esc("<"); /* ANSI mode */
+ cup(23,1); el(0);
+ cup(23,1); chrprint(curkeystr);
+ if (!strcmp(curkeystr,"\t")) break;
+ for (i = 0; curkeytab[i].curkeysymbol[0] != '\0'; i++) {
+ if (!strcmp(curkeystr,curkeytab[i].curkeymsg[ckeymode])) {
+ sgr("7");
+ printf(" (%s key) ", curkeytab[i].curkeyname);
+ sgr("");
+ cup(1 + 2 * curkeytab[i].curkeyrow,
+ 1 + curkeytab[i].curkeycol);
+ printf("%s", curkeytab[i].curkeysymbol);
+ break;
+ }
+ }
+ if (i == sizeof(curkeytab) / sizeof(struct curkey) - 1) {
+ sgr("7");
+ printf("%s", " (Unknown cursor key) ");
+ sgr("");
+ }
+ }
+ }
+
+ for (fkeymode = 0; fkeymode <= 3; fkeymode++) {
+ for (i = 0; fnkeytab[i].fnkeysymbol[0] != '\0'; i++) {
+ cup(1 + 2 * fnkeytab[i].fnkeyrow, 1 + fnkeytab[i].fnkeycol);
+ sgr("7");
+ printf("%s", fnkeytab[i].fnkeysymbol);
+ sgr("");
+ }
+ cup(20,1); printf("<%s>%20s", fnkeymodes[fkeymode], "");
+ cup(22,1); el(0);
+ cup(22,1); printf("%s", "Press each function key. Finish with TAB.");
+ for(;;) {
+ cup(23,1);
+ if (fkeymode >= 2) rm("?2"); /* VT52 mode */
+ if (fkeymode % 2) deckpam(); /* Application mode */
+ else deckpnm(); /* Numeric mode */
+ fnkeystr = instr();
+ esc("<"); /* ANSI mode */
+ cup(23,1); el(0);
+ cup(23,1); chrprint(fnkeystr);
+ if (!strcmp(fnkeystr,"\t")) break;
+ for (i = 0; fnkeytab[i].fnkeysymbol[0] != '\0'; i++) {
+ if (!strcmp(fnkeystr,fnkeytab[i].fnkeymsg[fkeymode])) {
+ sgr("7");
+ printf(" (%s key) ", fnkeytab[i].fnkeyname);
+ sgr("");
+ cup(1 + 2 * fnkeytab[i].fnkeyrow, 1 + fnkeytab[i].fnkeycol);
+ printf("%s", fnkeytab[i].fnkeysymbol);
+ break;
+ }
+ }
+ if (i == sizeof(fnkeytab) / sizeof(struct fnkey) - 1) {
+ sgr("7");
+ printf("%s", " (Unknown function key) ");
+ sgr("");
+ }
+ }
+ }
+
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag |= ICRNL;
+ termioNew.c_oflag |= ONLCR;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags |= CRMOD;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ ed(2);
+ cup(5,1);
+ println("Finally, a check of the ANSWERBACK MESSAGE, which can be sent");
+ println("by pressing CTRL-BREAK. The answerback message can be loaded");
+ println("in SET-UP B by pressing SHIFT-A and typing e.g.");
+ println("");
+ println(" \" H e l l o , w o r l d Return \"");
+ println("");
+ println("(the double-quote characters included). Do that, and then try");
+ println("to send an answerback message with CTRL-BREAK. If it works,");
+ println("the answerback message should be displayed in reverse mode.");
+ println("Finish with a single RETURN.");
+
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag &= ~ICRNL;
+ termioNew.c_oflag &= ~ONLCR;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags &= ~CRMOD;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ do {
+ cup(17,1);
+ inflush();
+ abmstr = instr();
+ cup(17,1);
+ el(0);
+ chrprint(abmstr);
+ } while (strcmp(abmstr,"\r"));
+
+ ed(2);
+ for (i = 0; i < 32; i++) {
+ cup(1 + (i % 16), 1 + 40 * (i / 16));
+ sgr("7");
+ printf("%s", ckeytab[i].csymbol);
+ sgr("0");
+ }
+ cup(19,1);
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag |= ICRNL;
+ termioNew.c_oflag |= ONLCR;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags |= CRMOD;
+ stty(0, &sgttyNew);
+# endif
+#endif
+
+ println(
+ "Push each CTRL-key TWICE. Note that you should be able to send *all*");
+ println(
+ "CTRL-codes twice, including CTRL-S (X-Off) and CTRL-Q (X-Off)!");
+ println(
+ "Finish with DEL (also called DELETE or RUB OUT), or wait 1 minute.");
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag &= ~(ICRNL|IXON);
+ termioNew.c_lflag &= ~(ICANON|ISIG);
+ termioNew.c_cc[VMIN] = 1;
+ termioNew.c_cc[VTIME] = 0;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+# ifdef SIII
+ sgttyNew.sg_flags &= ~CBREAK;
+ stty(0, &sgttyNew);
+# endif
+ sgttyNew.sg_flags |= RAW;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ ttybin(1);
+#ifdef SARG20
+ page(0); /* Turn off all character processing at input */
+ superbin(1); /* Turn off ^C (among others). Keep your fingers crossed!! */
+#endif
+ do {
+ cup(23,1); kbdc = inchar();
+ cup(23,1); el(0);
+ if (kbdc < 32) printf(" %s", ckeytab[kbdc].csymbol);
+ else {
+ sprintf(kbds, "%c", kbdc);
+ chrprint(kbds);
+ printf("%s", " -- not a CTRL key");
+ }
+ if (kbdc < 32) ckeytab[kbdc].ccount++;
+ if (ckeytab[kbdc].ccount == 2) {
+ cup(1 + (kbdc % 16), 1 + 40 * (kbdc / 16));
+ printf("%s", ckeytab[kbdc].csymbol);
+ }
+ } while (kbdc != '\177');
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag |= (IGNBRK|BRKINT|ICRNL|IXON);
+ termioNew.c_lflag |= (ICANON|ECHO|ISIG);
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags &= ~RAW;
+ sgttyNew.sg_flags |= ECHO;
+ stty(0, &sgttyNew);
+# ifdef SIII
+ sgttyNew.sg_flags |= CBREAK;
+ stty(0, &sgttyNew);
+# endif
+# endif
+#endif
+ ttybin(0);
+#ifdef SARG20
+ superbin(0); /* Puuuh! We made it!? */
+ page(1); /* Back to normal input processing */
+ ttybin(1); /* This must be the mode for DEC20 */
+#endif
+ cup(24,1);
+ okflag = 1;
+ for (i = 0; i < 32; i++) if (ckeytab[i].ccount < 2) okflag = 0;
+ if (okflag) printf("%s", "OK. ");
+ else printf("%s", "You have not been able to send all CTRL keys! ");
+ holdit();
+}
+
+tst_reports() {
+ /* Test of:
+ <ENQ> (AnswerBack Message)
+ SM RM (Set/Reset Mode) - LineFeed / Newline
+ DSR (Device Status Report)
+ DA (Device Attributes)
+ DECREQTPARM (Request Terminal Parameters)
+ */
+
+ int parity, nbits, xspeed, rspeed, clkmul, flags;
+ int i, reportpos;
+ char *report, *report2;
+ static char *attributes[][2] = {
+ { "\033[?1;0c", "No options (vanilla VT100)" },
+ { "\033[?1;1c", "VT100 with STP" },
+ { "\033[?1;2c", "VT100 with AVO (could be a VT102)" },
+ { "\033[?1;3c", "VT100 with STP and AVO" },
+ { "\033[?1;4c", "VT100 with GPO" },
+ { "\033[?1;5c", "VT100 with STP and GPO" },
+ { "\033[?1;6c", "VT100 with AVO and GPO" },
+ { "\033[?1;7c", "VT100 with STP, AVO and GPO" },
+ { "\033[?1;11c", "VT100 with PP and AVO" },
+ { "\033[?1;15c", "VT100 with PP, GPO and AVO" },
+ { "\033[?4;2c", "VT132 with AVO" },
+ { "\033[?4;3c", "VT132 with AVO and STP" },
+ { "\033[?4;6c", "VT132 with GPO and AVO" },
+ { "\033[?4;7c", "VT132 with GPO, AVO, and STP" },
+ { "\033[?4;11c", "VT132 with PP and AVO" },
+ { "\033[?4;15c", "VT132 with PP, GPO and AVO" },
+ { "\033[?7c", "VT131" },
+ { "\033[?12;5c", "VT125" }, /* VT125 also has ROM version */
+ { "\033[?12;7c", "VT125 with AVO" }, /* number, so this won't work */
+ { "\033[?5;0c", "VK100 (GIGI)" },
+ { "\033[?5c", "VK100 (GIGI)" },
+ { "", "" }
+ };
+
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_lflag &= ~ECHO;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags &= ~ECHO;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ cup(5,1);
+ println("This is a test of the ANSWERBACK MESSAGE. (To load the A.B.M.");
+ println("see the TEST KEYBOARD part of this program). Below here, the");
+ println("current answerback message in your terminal should be");
+ println("displayed. Finish this test with RETURN.");
+ cup(10,1);
+ inflush();
+ printf("%c", 5); /* ENQ */
+ report = instr();
+ cup(10,1);
+ chrprint(report);
+ cup(12,1);
+ holdit();
+
+ ed(2);
+ cup(1,1);
+ println("Test of LineFeed/NewLine mode.");
+ cup(3,1);
+ sm("20");
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag &= ~ICRNL;
+ termioNew.c_oflag &= ~ONLCR;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags &= ~CRMOD;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ printf("NewLine mode set. Push the RETURN key: ");
+ report = instr();
+ cup(4,1);
+ el(0);
+ chrprint(report);
+ if (!strcmp(report, "\015\012")) printf(" -- OK");
+ else printf(" -- Not expected");
+ cup(6,1);
+ rm("20");
+ printf("NewLine mode reset. Push the RETURN key: ");
+ report = instr();
+ cup(7,1);
+ el(0);
+ chrprint(report);
+ if (!strcmp(report, "\015")) printf(" -- OK");
+ else printf(" -- Not expected");
+ cup(9,1);
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_iflag |= ICRNL;
+ termioNew.c_oflag |= ONLCR;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags |= CRMOD;
+ stty(0, &sgttyNew);
+# endif
+#endif
+ holdit();
+
+ ed(2);
+ cup(1,1);
+ printf("Test of Device Status Report 5 (report terminal status).");
+ cup(2,1);
+ dsr(5);
+ report = instr();
+ cup(2,1);
+ el(0);
+ printf("Report is: ");
+ chrprint(report);
+ if (!strcmp(report,"\033[0n")) printf(" -- means \"TERMINAL OK\"");
+ else if (!strcmp(report,"\033[3n")) printf(" -- means \"TERMINAL OK\"");
+ else printf(" -- Unknown response!");
+
+ cup(4,1);
+ println("Test of Device Status Report 6 (report cursor position).");
+ cup(5,1);
+ dsr(6);
+ report = instr();
+ cup(5,1);
+ el(0);
+ printf("Report is: ");
+ chrprint(report);
+ if (!strcmp(report,"\033[5;1R")) printf(" -- OK");
+ else printf(" -- Unknown response!");
+
+ cup(7,1);
+ println("Test of Device Attributes report (what are you)");
+ cup(8,1);
+ da(0);
+ report = instr();
+ cup(8,1);
+ el(0);
+ printf("Report is: ");
+ chrprint(report);
+ for (i = 0; *attributes[i][0] != '\0'; i++) {
+ if (!strcmp(report,attributes[i][0])) break;
+ }
+ if (*attributes[i][0] == '\0')
+ printf(" -- Unknown response, refer to the manual");
+ else {
+ printf(" -- means %s", attributes[i][1]);
+ if (i) {
+ cup(9,1);
+ println("Legend: STP = Processor Option");
+ println(" AVO = Advanced Video Option");
+ println(" GPO = Graphics Processor Option");
+ println(" PP = Printer Port");
+ }
+ }
+
+ cup(14,1);
+ println("Test of the \"Request Terminal Parameters\" feature, argument 0.");
+ cup(15,1);
+ decreqtparm(0);
+ report = instr();
+ cup(15,1);
+ el(0);
+ printf("Report is: ");
+ chrprint(report);
+ if (strlen(report) < 16
+ || report[0] != '\033'
+ || report[1] != '['
+ || report[2] != '2'
+ || report[3] != ';')
+ println(" -- Bad format");
+ else {
+ reportpos = 4;
+ parity = scanto(report, &reportpos, ';');
+ nbits = scanto(report, &reportpos, ';');
+ xspeed = scanto(report, &reportpos, ';');
+ rspeed = scanto(report, &reportpos, ';');
+ clkmul = scanto(report, &reportpos, ';');
+ flags = scanto(report, &reportpos, 'x');
+ if (parity == 0 || nbits == 0 || clkmul == 0) println(" -- Bad format");
+ else println(" -- OK");
+ printf(
+ "This means: Parity %s, %s bits, xmitspeed %s, recvspeed %s.\n",
+ lookup(paritytable, parity),
+ lookup(nbitstable, nbits),
+ lookup(speedtable, xspeed),
+ lookup(speedtable, rspeed));
+ printf("(CLoCk MULtiplier = %d, STP option flags = %d)\n", clkmul, flags);
+ }
+
+ cup(19,1);
+ println("Test of the \"Request Terminal Parameters\" feature, argument 1.");
+ cup(20,1);
+ decreqtparm(1); /* Does the same as decreqtparm(0), reports "3" */
+ report2 = instr();
+ cup(20,1);
+ el(0);
+ printf("Report is: ");
+ chrprint(report2);
+ if (strlen(report2) < 3
+ || report2[2] != '3')
+ println(" -- Bad format");
+ else {
+ report2[2] = '2';
+ if (!strcmp(report,report2)) println(" -- OK");
+ else println(" -- Bad format");
+ }
+ cup(24,1);
+ holdit();
+#ifdef UNIX
+# ifdef TERMIO
+ termioNew.c_lflag |= ECHO;
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ sgttyNew.sg_flags |= ECHO;
+ stty(0, &sgttyNew);
+# endif
+#endif
+}
+
+tst_vt52() {
+
+ static struct rtabl {
+ char *rcode;
+ char *rmsg;
+ } resptable[] = {
+ { "\033/K", " -- OK (means Standard VT52)" },
+ { "\033/Z", " -- OK (means VT100 emulating VT52)" },
+ { "", " -- Unknown response"}
+ };
+
+ int i,j;
+ char *response;
+
+ rm("?2"); /* Reset ANSI (VT100) mode, Set VT52 mode */
+ esc("H"); /* Cursor home */
+ esc("J"); /* Erase to end of screen */
+ esc("H"); /* Cursor home */
+ for (i = 0; i <= 23; i++) {
+ for (j = 0; j <= 9; j++)
+ printf("%s", "FooBar ");
+ println("Bletch");
+ }
+ esc("H"); /* Cursor home */
+ esc("J"); /* Erase to end of screen */
+
+ vt52cup(7,47);
+ printf("nothing more.");
+ for (i = 1; i <= 10; i++) printf("THIS SHOULD GO AWAY! ");
+ for (i = 1; i <= 5; i++) {
+ vt52cup(1,1);
+ printf("%s", "Back scroll (this should go away)");
+ esc("I"); /* Reverse LineFeed (with backscroll!) */
+ }
+ vt52cup(12,60);
+ esc("J"); /* Erase to end of screen */
+ for (i = 2; i <= 6; i++) {
+ vt52cup(i,1);
+ esc("K"); /* Erase to end of line */
+ }
+
+ for (i = 2; i <= 23; i++) {
+ vt52cup(i,70); printf("%s", "**Foobar");
+ }
+ vt52cup(23,10);
+ for (i = 23; i >= 2; i--) {
+ printf("%s", "*");
+ printf("%c", 8); /* BS */
+ esc("I"); /* Reverse LineFeed (LineStarve) */
+ }
+ vt52cup(1,70);
+ for (i = 70; i >= 10; i--) {
+ printf("%s", "*");
+ esc("D"); esc("D"); /* Cursor Left */
+ }
+ vt52cup(24,10);
+ for (i = 10; i <= 70; i++) {
+ printf("%s", "*");
+ printf("%c", 8); /* BS */
+ esc("C"); /* Cursor Right */
+ }
+ vt52cup(2,11);
+ for (i = 2; i <= 23; i++) {
+ printf("%s", "!");
+ printf("%c", 8); /* BS */
+ esc("B"); /* Cursor Down */
+ }
+ vt52cup(23,69);
+ for (i = 23; i >= 2; i--) {
+ printf("%s", "!");
+ printf("%c", 8); /* BS */
+ esc("A"); /* Cursor Up */
+ }
+ for (i = 2; i <= 23; i++) {
+ vt52cup(i,71);
+ esc("K"); /* Erase to end of line */
+ }
+
+ vt52cup(10,16);
+ printf("%s", "The screen should be cleared, and have a centered");
+ vt52cup(11,16);
+ printf("%s", "rectangle of \"*\"s with \"!\"s on the inside to the");
+ vt52cup(12,16);
+ printf("%s", "left and right. Only this, and");
+ vt52cup(13,16);
+ holdit();
+
+ esc("H"); /* Cursor home */
+ esc("J"); /* Erase to end of screen */
+ printf("%s", "This is the normal character set:");
+ for (j = 0; j <= 1; j++) {
+ vt52cup(3 + j, 16);
+ for (i = 0; i <= 47; i++)
+ printf("%c", 32 + i + 48 * j);
+ }
+ vt52cup(6,1);
+ printf("%s", "This is the special graphics character set:");
+ esc("F"); /* Select Special Graphics character set */
+ for (j = 0; j <= 1; j++) {
+ vt52cup(8 + j, 16);
+ for (i = 0; i <= 47; i++)
+ printf("%c", 32 + i + 48 * j);
+ }
+ esc("G"); /* Select ASCII character set */
+ vt52cup(12,1);
+ holdit();
+
+ esc("H"); /* Cursor home */
+ esc("J"); /* Erase to end of screen */
+ println("Test of terminal response to IDENTIFY command");
+ esc("Z"); /* Identify */
+ response = instr();
+ println("");
+ printf("Response was");
+ esc("<"); /* Enter ANSI mode (VT100 mode) */
+ chrprint(response);
+ for(i = 0; resptable[i].rcode[0] != '\0'; i++)
+ if (!strcmp(response, resptable[i].rcode))
+ break;
+ printf("%s", resptable[i].rmsg);
+ println("");
+ println("");
+ holdit();
+}
+
+tst_insdel() {
+
+ /* Test of:
+ SM/RM(4) (= IRM (Insertion/replacement mode))
+ ICH (Insert Character)
+ DCH (Delete character)
+ IL (Insert line)
+ DL (Delete line)
+ */
+
+ int i, row, col, sw, dblchr, scr132;
+
+ for(scr132 = 0; scr132 <= 1; scr132++) {
+ if (scr132) { sm("?3"); sw = 132; }
+ else { rm("?3"); sw = 80; }
+ ed(2);
+ cup(1,1);
+ for (row=1; row<=24; row++) {
+ cup(row,1);
+ for (col=1; col<=sw; col++)
+ printf("%c", 'A'-1+row);
+ }
+ cup(4,1);
+ printf("Screen accordion test (Insert & Delete Line). "); holdit();
+ ri(); el(2);
+ decstbm( 2,23);
+ sm("?6");
+ cup(1,1);
+ for (row=1; row<=24; row++) {
+ il(row);
+ dl(row);
+ }
+ rm("?6");
+ decstbm( 0, 0);
+ cup(2,1);
+ printf(
+ "Top line: A's, bottom line: X's, this line, nothing more. ");
+ holdit();
+ cup(2,1); ed(0);
+ cup(1,2);
+ printf("B");
+ cub(1);
+ sm("4");
+ for (col=2; col<=sw-1; col++)
+ printf("*");
+ rm("4");
+ cup(4,1);
+ printf("Test of 'Insert Mode'. The top line should be 'A*** ... ***B'. ");
+ holdit(); ri(); el(2);
+ cup(1,2);
+ dch(sw-2);
+ cup(4,1);
+ printf("Test of 'Delete Character'. The top line should be 'AB'. ");
+ holdit();
+
+ for(dblchr = 1; dblchr <= 2; dblchr++) {
+ ed(2);
+ for (row=1; row<=24; row++) {
+ cup(row,1);
+ if (dblchr == 2) decdwl();
+ for (col=1; col<=sw/dblchr; col++)
+ printf("%c", 'A'-1+row);
+ cup(row,sw/dblchr-row);
+ dch(row);
+ }
+ cup(4,1);
+ println("The right column should be staggered ");
+ printf("by one. ");
+ holdit();
+ }
+ ed(2);
+ cup(1,1);
+ println("If your terminal has the ANSI 'Insert Character' function");
+ println("(the VT102 does not), then you should see a line like this");
+ println(" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z");
+ println("below:");
+ println("");
+ for (i = 'Z'; i >= 'A'; i--) {
+ printf("%c\010",i);
+ ich(2);
+ }
+ cup(10,1);
+ holdit();
+
+ if (sw == 132) rm("?3");
+ }
+}
+
+dch(pn) int pn; { brc(pn, 'P'); } /* Delete character */
+ich(pn) int pn; { brc(pn, '@'); } /* Insert character -- not in VT102 */
+dl(pn) int pn; { brc(pn, 'M'); } /* Delete line */
+il(pn) int pn; { brc(pn, 'L'); } /* Insert line */
+
+/* Test of some known VT100 bugs and misfeatures */
+
+tst_bugs() {
+
+ int i, menuchoice;
+
+ static char *menutable[] = {
+ "Exit to main menu",
+ "Bug A: Smooth scroll to jump scroll",
+ "Bug B: Scrolling region",
+ "Bug C: Wide to narrow screen",
+ "Bug D: Narrow to wide screen",
+ "Bug E: Cursor move from double- to single-wide line",
+ "Bug F: Column mode escape sequence",
+ "Wrap around with cursor addressing",
+ "Erase right half of double width lines",
+ "Funny scroll regions",
+ /* Add more here */
+ ""
+ };
+
+ static char *hmsg[] = {
+ "Test of known bugs in the DEC VT100 series. The numbering of some of",
+ "the bugs (A-F) refers to the article 'VT100 MAGIC' by Sami Tabih in",
+ "the 'Proceedings of the DEC Users Society' at St. Louis, Missouri, May",
+ "1983. To understand some of the tests, you have to look at the source",
+ "code or the article. Of course, a good VT100-compatible terminal",
+ "should not have these bugs (or have some means of disabling them)! If",
+ "a bug appears, you might want to RESET the terminal before continuing",
+ "the test. There is a test of the RESET function in the main menu.",
+ "" };
+
+ do {
+ ed(2); cup(1,1);
+ for (i = 0; *hmsg[i]; i++) println(hmsg[i]);
+ println("");
+ println(" Choose bug test number:");
+ menuchoice = menu(menutable);
+ switch (menuchoice) {
+ case 1: bug_a(); break;
+ case 2: bug_b(); break;
+ case 3: bug_c(); break;
+ case 4: bug_d(); break;
+ case 5: bug_e(); break;
+ case 6: bug_f(); break;
+ case 7: bug_w(); break;
+ case 8: bug_l(); break;
+ case 9: bug_s(); break;
+ }
+ } while (menuchoice);
+}
+
+/* Bug A: Smooth scroll to jump scroll */
+
+bug_a() {
+ int i;
+
+ cup (10, 1);
+ println("This is a test of the VT100 'Scroll while toggle softscroll'");
+ println("bug. The cursor may disappear, or move UP the screen, or");
+ println("multiple copies of some lines may appear.");
+ holdit();
+
+ /* Invoke the bug */
+
+ esc ("[24H"); /* Simplified cursor movement */
+ rm("?4"); for (i = 1; i <= 20; i++) printf("\n");
+ sm("?4"); for (i = 1; i <= 10; i++) printf("\n");
+ rm("?4"); for (i = 1; i <= 5; i++) printf("\n");
+
+ /* That should be enough to show the bug. But we'll try another way: */
+ sm ("?4"); /* Set soft scroll */
+ nel (); /* "NextLine", move down */
+ rm ("?4"); /* Reset soft scroll */
+ nel (); /* "NextLine", move down */
+ for (i = 1; i <= 10; i++) { /* Show the bug */
+ printf ("Softscroll bug test, line %d. ", i);
+ holdit();
+ }
+ println("That should have been enough to show the bug, if present.");
+ holdit();
+}
+
+/* Bug B: Scrolling region */
+
+bug_b() {
+ char c;
+
+ decaln();
+ cup( 1,1); el(0);
+ printf("Line 11 should be double-wide, line 12 should be cleared.");
+ cup( 2,1); el(0);
+ printf("Then, the letters A-P should be written at the beginning");
+ cup( 3,1); el(0);
+ printf("of lines 12-24, and the empty line and A-E are scrolled away.");
+ cup( 4,1); el(0);
+ printf("If the bug is present, some lines are confused, look at K-P.");
+ cup(11,1); decdwl();
+ decstbm(12,24);
+ cup(12,1); el(0); printf("Here we go... "); holdit();
+ cup(12,1); ri(); /* Bug comes here */
+ for (c = 'A'; c <= 'P'; c++) printf("%c\n",c); /* Bug shows here */
+ holdit();
+ decstbm(0,0); /* No scr. region */
+}
+
+/* Bug C: Wide to narrow screen */
+
+bug_c() {
+ sm("?3"); /* 132 column mode */
+ cup(1,81);
+ rm("?3"); /* 80 column mode */
+ cup(12,5);
+ printf("Except for this line, the screen should be blank. ");
+ holdit();
+}
+
+/* Bug D: Narrow to wide screen */
+
+bug_d() {
+ int i;
+ char result;
+ /* Make the bug appear */
+ do {
+ cup(14,1);
+
+ /* The original code in the article says
+ * PRINT ESC$; "[13;1H"; CHR$(10%);
+ * but I guess a cup(14,1); would do.
+ * (To output a pure LF might be tricky).
+ */
+
+ sm("?3"); /* Make the bug visible */
+ cup(1,9); decdwl();
+ println("You should see blinking text at the bottom line.");
+ cup(3,9); decdwl();
+ println("Enter 0 to exit, 1 to try to invoke the bug again.");
+ cup(24,9); decdwl(); sgr("1;5;7");
+ printf("If you can see this then the bug did not appear."); sgr("");
+ cup(4,9); decdwl();
+ result = inchar(); readnl();
+ rm("?3");
+ } while (result == '1');
+ sm("?4"); /* Syrup scroll */
+ cup(23,1);
+ for (i = 1; i <= 5; i++)
+ println("If the bug is present, this should make things much worse!");
+ holdit();
+ rm("?4"); /* Jump scroll */
+}
+
+/* Bug E: Cursor move from double- to single-wide line */
+
+bug_e() {
+ int i;
+ static char *rend[2] = { "\033[m", "\033[7m" };
+ sm("?3");
+ cup(1,1); decdwl();
+ println("This test should put an 'X' at line 3 column 100.");
+ for (i = 1; i <= 12; i++) printf("1234567890%s",rend[i & 1]);
+ cup(1,1); /* The bug appears when we jump from a dobule-wide line */
+ cup(3,100); /* to a single-wide line, column > 66. */
+ printf("X");
+ cup(4, 66); printf("! !");
+ cup(5,1);
+ printf("--------------------------- The 'X' should NOT be above here -");
+ printf("---+------------ but above here -----+");
+ cup(10,1); decdwl(); holdit();
+ rm("?3");
+}
+
+/* Bug F: Column mode escape sequence */
+
+bug_f() {
+ int i, row, col;
+
+ /*
+ * VT100 "toggle origin mode, forget rest" bug. If you try to set
+ * (or clear) parameters and one of them is the "origin mode"
+ * ("?6") parameter, parameters that appear after the "?6"
+ * remain unaffected. This is also true on CIT-101 terminals.
+ */
+ sm ("?5"); /* Set reverse mode */
+ sm ("?3"); /* Set 132 column mode */
+ println("Test VT100 'Toggle origin mode, forget rest' bug, part 1.");
+ println("The screen should be in reverse, 132 column mode.");
+ holdit();
+ ed (2);
+ rm ("?6;5;3"); /* Reset (origin, reverse, 132 col) */
+ println("Test VT100 'Toggle origin mode, forget rest' bug, part 2.\n");
+ println("The screen should be in non-reverse, 80 column mode.");
+ holdit();
+}
+
+ /* Bug W:
+ * The dreaded "wraparound" bug! You CUP to col 80, write a char,
+ * CUP to another line in col 80, write a char. And the brain-damaged
+ * terminal thinks that "Hokay, so he's written a char in col 80, so
+ * I stay in col 80 and wait for next character. Let's see now, here
+ * comes another character, and I'm still in col 80, so I must make
+ * a NewLine first." -- It doesn't clear that "still in col 80" flag
+ * on a CUP. Argh!
+ */
+
+bug_w() {
+ int row, col;
+
+ cup (16,1);
+ println(" This illustrates the \"wrap around bug\" which exists on a");
+ println(" standard VT100. At the top of the screen there should be");
+ println(" a row of +'s, and the rightmost column should be filled");
+ println(" with *'s. But if the bug is present, some of the *'s may");
+ println(" be placed in other places, e.g. in the leftmost column,");
+ println(" and the top line of +'s may be scrolled away.");
+
+ cup(1,1);
+ for (col = 1; col <= 79; col++)
+ printf ("+");
+ for (row = 1; row <= 24; row++) {
+ hvp (row, 80);
+ printf ("*");
+ }
+ cup(24,1);
+ holdit();
+}
+
+ /* Bug L:
+ * Check if the right half of double-width lines comes back
+ * when a line is first set to single-width, filled with stuff,
+ * set to double-width, and finally reset to single-width.
+ *
+ * A VT100 has this misfeature, and many others. Foo!
+ */
+
+bug_l() {
+ cup(15, 1);
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ cup(1, 1);
+ printf("This is a test of what happens to the right half of double-width");
+ println(" lines.");
+ printf("A common misfeature is that the right half does not come back");
+ println(" when a long");
+ printf("single-width line is set to double-width and then reset to");
+ println(" single-width.");
+
+ cup(5, 1);
+ println("Now the line below should contain 80 characters in single width.");
+ holdit();
+ cup(15, 1); decdwl();
+ cup(8, 1);
+ println("Now the line below should contain 40 characters in double width.");
+ holdit();
+ cup(15, 1); decswl();
+ cup(11, 1);
+ println("Now the line below should contain 80 characters in single width.");
+ holdit();
+
+ /* ...and in 132 column mode */
+
+ sm("?3");
+ ed(2);
+ cup(15, 1);
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("ending-here-");
+
+ cup(1, 1);
+ printf("This is the same test in 132 column mode.");
+
+ cup(5, 1);
+ println("Now the line below should contain 132 characters in single width.");
+ holdit();
+ cup(15, 1); decdwl();
+ cup(8, 1);
+ println("Now the line below should contain 66 characters in double width.");
+ holdit();
+ cup(15, 1); decswl();
+ cup(11, 1);
+ println("Now the line below should contain 132 characters in single width.");
+ holdit();
+ rm("?3");
+}
+
+bug_s() {
+ int i;
+ decstbm(20,10); /* 20-10=-10, < 2, so no scroll region. */
+ cup(1,1);
+ for (i=1; i<=20; i++)
+ printf("This is 20 lines of text (line %d), no scroll region.\n", i);
+ holdit();
+ ed(2);
+ decstbm(0,1); /* Should be interpreted as decstbm(1,1) = none */
+ cup(1,1);
+ for (i=1; i<=20; i++)
+ printf("This is 20 lines of text (line %d), no scroll region.\n", i);
+ holdit();
+ decstbm(0,0); /* No scroll region (just in case...) */
+}
+
+tst_rst() {
+
+ /*
+ * Test of
+ * - RIS (Reset to Initial State)
+ * - DECTST (invoke terminal test)
+ */
+
+ cup(10,1);
+ printf ("The terminal will now be RESET. ");
+ holdit();
+ ris();
+#ifdef UNIX
+ fflush(stdout);
+#endif
+ zleep(5000); /* Wait 5.0 seconds */
+ cup(10,1);
+ println("The terminal is now RESET. Next, the built-in confidence test");
+ printf("%s", "will be invoked. ");
+ holdit();
+ ed(2);
+ dectst(1);
+#ifdef UNIX
+ fflush(stdout);
+#endif
+ zleep(5000); /* Wait 5.0 seconds */
+ cup(10,1);
+ println("If the built-in confidence test found any errors, a code");
+ printf("%s", "is visible above. ");
+ holdit();
+}
+
+initterminal(pn) int pn; {
+
+
+#ifdef UNIX
+# ifdef TERMIO
+ if (pn==0) {
+ fflush(stdout);
+ (void) ioctl(0, TCGETA, &termioOrg);
+ (void) ioctl(0, TCGETA, &termioNew);
+ termioNew.c_lflag &= ~ICANON;
+ termioNew.c_cc[VMIN] = 1;
+ termioNew.c_cc[VTIME] = 0;
+ (void) ioctl(0, TCSETAW, &termioNew);
+ }
+ else {
+ fflush(stdout);
+ inflush();
+ sleep(2);
+ termioNew.c_lflag = termioOrg.c_lflag & ~ICANON;
+ termioNew.c_cc[VMIN] = 1;
+ termioNew.c_cc[VTIME] = 0;
+ }
+ (void) ioctl(0, TCSETAW, &termioNew);
+# else
+ if (pn==0) {
+ fflush(stdout);
+ gtty(0,&sgttyOrg);
+ gtty(0,&sgttyNew);
+ sgttyNew.sg_flags |= CBREAK;
+ }
+ else {
+ fflush(stdout);
+ inflush();
+ sleep(2);
+ sgttyNew.sg_flags = sgttyOrg.sg_flags | CBREAK;
+ }
+ stty(0,&sgttyNew);
+# endif
+#ifdef SIII
+ close(2);
+ open("/dev/tty",O_RDWR|O_NDELAY);
+#endif
+#endif
+
+#ifdef SARG10
+ /* Set up neccesary TOPS-10 terminal parameters */
+
+ trmop(02041, `VT100`); /* tty type vt100 */
+ trmop(02002, 0); /* tty no tape */
+ trmop(02003, 0); /* tty lc */
+ trmop(02005, 1); /* tty tab */
+ trmop(02010, 1); /* tty no crlf */
+ trmop(02020, 0); /* tty no tape */
+ trmop(02021, 1); /* tty page */
+ trmop(02025, 0); /* tty blanks */
+ trmop(02026, 1); /* tty no alt */
+ trmop(02040, 1); /* tty defer */
+#endif
+#ifdef SARG20
+ ttybin(1); /* set line to binary mode */
+#endif
+ /* Set up my personal prejudices */
+
+ esc("<"); /* Enter ANSI mode (if in VT52 mode) */
+ rm("?1"); /* cursor keys normal */
+ rm("?3"); /* 80 col mode */
+ rm("?4"); /* Jump scroll */
+ rm("?5"); /* Normal screen */
+ rm("?6"); /* Absolute origin mode */
+ sm("?7"); /* Wrap around on */
+ rm("?8"); /* Auto repeat off */
+ decstbm(0,0); /* No scroll region */
+ sgr("0"); /* Normal character attributes */
+
+}
+
+bye () {
+ /* Force my personal prejudices upon the poor luser */
+
+ esc("<"); /* Enter ANSI mode (if in VT52 mode) */
+ rm("?1"); /* cursor keys normal */
+ rm("?3"); /* 80 col mode */
+ rm("?5"); /* Normal screen */
+ rm("?6"); /* Absolute origin mode */
+ sm("?7"); /* Wrap around on */
+ sm("?8"); /* Auto repeat on */
+ decstbm(0,0); /* No scroll region */
+ sgr("0"); /* Normal character attributes */
+
+ /* Say goodbye */
+
+ ed(2);
+ cup(12,30);
+ printf("That's all, folks!\n");
+ printf("\n\n\n");
+ inflush();
+#ifdef SARG20
+ ttybin(0); /* reset line to normal mode */
+#endif
+#ifdef UNIX
+#ifdef TERMIO
+ (void) ioctl(0, TCSETAW, &termioOrg);
+#else
+ stty(0,&sgttyOrg);
+#endif
+#endif
+ exit(0);
+}
+
+#ifdef UNIX
+onbrk() {
+ signal(SIGINT, onbrk);
+ if (reading)
+ brkrd = 1;
+ else
+ longjmp(intrenv, 1);
+}
+
+onterm() {
+ signal(SIGTERM, onterm);
+ longjmp(intrenv, 1);
+}
+#endif
+
+holdit() {
+ inflush();
+ printf("Push <RETURN>");
+ readnl();
+}
+
+readnl() {
+#ifdef UNIX
+ char ch;
+ fflush(stdout);
+ brkrd = 0;
+ reading = 1;
+ do { read(0,&ch,1); } while(ch != '\n' && !brkrd);
+ if (brkrd)
+ kill(getpid(), SIGTERM);
+ reading = 0;
+#endif
+#ifdef SARG10
+ while (getchar() != '\n')
+ ;
+#endif
+#ifdef SARG20
+ while (getchar() != '\n')
+ ;
+#endif
+}
+
+scanto(str, pos, toc) char *str; int *pos; char toc; {
+ char c;
+ int result = 0;
+
+ while (toc != (c = str[(*pos)++])) {
+ if (isdigit(c)) result = result * 10 + c - '0';
+ else break;
+ }
+ if (c == toc) return(result);
+ else return(0);
+}
+
+char *lookup(t, k) struct table t[]; int k; {
+
+ int i;
+ for (i = 0; t[i].key != -1; i++) {
+ if (t[i].key == k) return(t[i].msg);
+ }
+ return("BAD VALUE");
+}
+
+menu(table) char *table[]; {
+
+ int i, tablesize, choice;
+ char c;
+ char storage[80];
+ char *s = storage;
+ println("");
+ tablesize = 0;
+ for (i = 0; *table[i] != '\0'; i++) {
+ printf(" %d. %s\n", i, table[i]);
+ tablesize++;
+ }
+ tablesize--;
+
+ printf("\n Enter choice number (0 - %d): ", tablesize);
+ for(;;) {
+ inputline(s);
+ choice = 0;
+ while (c = *s++) choice = 10 * choice + c - '0';
+ if (choice >= 0 && choice <= tablesize) {
+ ed(2);
+ return (choice);
+ }
+ printf(" Bad choice, try again: ");
+ }
+}
+
+chrprint (s) char *s; {
+
+ int i;
+
+ printf(" ");
+ sgr("7");
+ printf(" ");
+ for (i = 0; s[i] != '\0'; i++) {
+ if (s[i] <= ' ' || s[i] == '\177')
+ printf("<%d> ", s[i]);
+ else printf("%c ", s[i]);
+ }
+ sgr("");
+}
diff --git a/konsole/tests/quote.c b/konsole/tests/quote.c
new file mode 100644
index 000000000..61cf2ac4f
--- /dev/null
+++ b/konsole/tests/quote.c
@@ -0,0 +1,50 @@
+// a silly quotation utitility
+
+#include <stdio.h>
+#include <strings.h>
+
+int skip = 0;
+int empty = 1;
+
+void pchr(int c, int indent)
+{
+ if (skip)
+ {
+ skip = (c != '\n');
+ return;
+ }
+ switch(c)
+ {
+ case '\n':
+ if (!empty)
+ printf("\\n\"\n%*s\"",indent,"");
+ empty = 1;
+ break;
+ case '#' :
+ skip = 1;
+ break;
+ case '"' : case '\\':
+ printf("\\");
+ // fallthrough
+ default:
+ printf("%c",c);
+ empty = 0;
+ break;
+ }
+}
+
+#define INDENT 2
+
+int main(int argc, char* argv[])
+{ int cc; FILE *sysin;
+ if (argc < 2) { fprintf(stderr,"usage: %s filename\n",argv[0]); return 1; }
+ sysin = fopen(argv[1],"r");
+ if (!sysin) { fprintf(stderr,"cannot open %s\n",argv[1]); perror("reason: "); return 1; }
+ printf("%*s/* generated by '%s %s' */\n\n",INDENT,"",argv[0],argv[1]);
+ printf("%*s\"",INDENT,"");
+ while( (cc = fgetc(sysin)) > 0)
+ {
+ pchr(cc,INDENT);
+ }
+ printf("\"\n");
+}
diff --git a/konsole/tests/ripple.c b/konsole/tests/ripple.c
new file mode 100644
index 000000000..7047c7f94
--- /dev/null
+++ b/konsole/tests/ripple.c
@@ -0,0 +1,29 @@
+/*
+ Ripple test.
+ Usage: ripple [ w [ l ] ]
+ w = screen line width, default 80, must be > 0, max 132.
+ l = how many lines to display, default 1000, must be > 0.
+ Author: Frank da Cruz, Columbia University, 1995.
+*/
+char *crlf = "\015\012";
+char *p = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\
+^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH\
+IJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./012\
+3456789:;<=>?@ABCD";
+
+main(argc,argv) int argc; char *argv[]; {
+ int i, j, w = 80, l = 1000;
+
+ if (argc > 1) /* User-specified width */
+ w = atoi(argv[1]);
+ if (argc > 2) /* User-specified number of lines */
+ l = atoi(argv[2]);
+ if (w < 1 || l < 1 || w > 132) /* Quit upon conversion error */
+ exit(1);
+
+ for (j = i = 0; i < l; i++) { /* Ripple loop */
+ write(1, p+j, w);
+ write(1, crlf, 2);
+ if (++j > 94) j = 0;
+ }
+}
diff --git a/konsole/tests/sesstest b/konsole/tests/sesstest
new file mode 100755
index 000000000..27127173a
--- /dev/null
+++ b/konsole/tests/sesstest
@@ -0,0 +1,2 @@
+#!/bin/sh
+while true; do date; sleep 1; done
diff --git a/konsole/tests/titletest.sh b/konsole/tests/titletest.sh
new file mode 100755
index 000000000..3c03d8efd
--- /dev/null
+++ b/konsole/tests/titletest.sh
@@ -0,0 +1,5 @@
+#!/bin/sh --
+#
+# display [user@host/path] in title
+
+export PS1="\\[]2;\\u@\\H\\w\\]$ "
diff --git a/konsole/tests/utf8.sh b/konsole/tests/utf8.sh
new file mode 100755
index 000000000..26d669d3d
--- /dev/null
+++ b/konsole/tests/utf8.sh
@@ -0,0 +1,11 @@
+#!/bin/bash --
+#
+# Switch utf-8 mode
+#
+#-------------------------------------------------------------------------
+
+case $1 in
+ on) echo $'\033%G'"UTF-8 on";;
+ off) echo $'\033%@'"UTF-8 off";;
+ *) echo "usage: $0 [on|off]";;
+esac
diff --git a/konsole/tests/vttest.1 b/konsole/tests/vttest.1
new file mode 100644
index 000000000..c4104925d
--- /dev/null
+++ b/konsole/tests/vttest.1
@@ -0,0 +1,13 @@
+.TH VTTEST 1 "LOCAL"
+.SH NAME
+vttest \- test VT100-type terminal
+.SH SYNOPSIS
+.B vttest
+.SH DESCRIPTION
+.I Vttest
+is a program designed to test the functionality of a VT100 terminal
+(or emulator thereof).
+It tests both display (escape sequence handling) and keyboard.
+.PP
+The program is menu\-driven and contains full on\-line operating
+instructions.
diff --git a/konsole/tips b/konsole/tips
new file mode 100644
index 000000000..9e95bf4a9
--- /dev/null
+++ b/konsole/tips
@@ -0,0 +1,240 @@
+
+<tip category="Konsole|Tab">
+<html>
+<p>...that right-clicking on any tab allows for the changing of the tab text color?
+</html>
+</tip>
+
+<tip category="Konsole|Tab">
+<html>
+<p>...that the tab text color can be changed with the code \e[28;COLORt (COLOR: 0-16,777,215)?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that the code \e[8;ROW;COLUMNt will resize Konsole?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can start a new standard session by pressing the "New" button in the tabbar?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that pressing and holding the "New" button on the tabbar will display a menu of sessions to select?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that pressing Ctrl+Alt+N will start a new standard session?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can cycle through the Konsole sessions by holding down the Shift key and
+pressing the Left or Right Arrow keys?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can get a 'Linux console-like' terminal?
+<p>Hide Konsole's menubar, tabbar and scrollbar, select the Linux font
+and the Linux Colors schema and apply the full-screen mode. You might also
+want to set the KDE panel to auto-hide.
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can rename your Konsole sessions by clicking with the right mouse
+button and selecting "Rename session"? The change will be reflected in the
+Konsole tabbar, making it easier to remember the content of the session.
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can rename a Konsole session by double-clicking its tab?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can activate the menu with the Ctrl+Alt+M shortcut?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can rename your current Konsole session with the Ctrl+Alt+S shortcut?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can create your own session types by using the session
+editor which you can find under "Settings->Configure Konsole..."?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can create your own color schemes by using the schema editor
+which you can find under "Settings->Configure Konsole..."?
+</p>
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can move a session by holding down the middle mouse button over the tab?
+</p>
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can reorder the session tabs with "View->Move Session Left/Right" menu
+commands or by holding down the Shift and Ctrl keys and pressing the Left or Right
+Arrow keys?
+</p>
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can scroll pagewise in the history by holding down the Shift key
+and pressing the Page Up or Page Down keys?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can scroll linewise in the history by holding down the Shift key
+and pressing the Up or Down Arrow keys?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can insert the clipboard by holding down the Shift key and
+pressing the Insert key?
+</html>
+</tip>
+
+<tip category="Konsole|Keyboard">
+<html>
+<p>...that you can insert the X selection by holding down the Shift and
+Ctrl keys and pressing the Insert key?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that pressing Ctrl while pasting the selection with the middle mouse
+button will append a carriage return after pasting the selection buffer?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can turn off the terminal size hint under "Settings->Configure Konsole..."?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that pressing Ctrl while selecting text will let Konsole ignore line breaks?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that pressing the Ctrl and Alt keys while selecting text will let Konsole select columns?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that when a program evaluates the right mouse button you can still
+get the right mouse button pop-up menu while pressing the Shift key?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that when a program evaluates the left mouse button you can still select
+text while pressing the Shift key?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can let Konsole set the current directory as the window title?
+For Bash, put 'export PS1=$PS1"\[\e]0;\H:\w\a\]"' in your ~/.bashrc .
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that you can let Konsole set the current directory as the session name?
+For Bash, put 'export PS1=$PS1"\[\e]30;\H:\w\a\]"' in your ~/.bashrc .
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that if you let your shell pass the current directory to Konsole within the prompt
+variable, e.g. for Bash with 'export PS1=$PS1"\[\e]31;\w\a\]"' in your ~/.bashrc, then
+Konsole can bookmark it, and session management will remember your current working directory
+on non-Linux systems too?
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that double-clicking will select a whole word?
+<p>When you don't release the mouse button after the second click you
+can extend your selection by additional words when moving the mouse.
+</html>
+</tip>
+
+<tip category="Konsole">
+<html>
+<p>...that triple-clicking will select a whole line?
+<p>When you don't release the mouse button after the third click you
+can extend your selection by additional lines when moving the mouse.
+</html>
+</tip>
+
+
+<tip category="Konsole">
+<html>
+<p>...that if you drag &amp; drop a URL into a Konsole window you are presented with a
+menu giving the option to copy or move the specified file into the current working directory,
+as well as just pasting the URL as text.
+<p>This works with any type of URL which KDE supports.
+</html>
+</tip>
+
+
+<tip category="Konsole">
+<html>
+<p>...that the "Settings->Configure Shortcuts..." dialog allows you to define keyboard shortcuts for actions
+not shown in the menu, like activating menu, changing font and for listing and switching sessions?
+</html>
+</tip>
+
+
+<tip category="Konsole">
+<html>
+<p>...that right-clicking over the "New" button in the left corner of the tabbar or in an empty tabbar space displays a menu where you can set several tab options?
+</html>
+</tip>